Logique flou
Dernière mise à jour
Cet article vous a-t-il été utile ?
Dernière mise à jour
Cet article vous a-t-il été utile ?
Encore de la logique ?!
Et oui, il y a beaucoup d'autres logiques, allant de celles simples comme celle des propositions à la logique dynamique introduisant la notion d'action en plus (par exemle ), utilisé pour la vérification de programme informatique.
Néanmoins, la plupart de ces logiques sont qualifiées de crisp (oui, oui, comme les gâteux apéro) : ils prennent une valeur de vérité dans un interval discret sémantisé a priori, généralement {0
,1
}, avec 0 = FAUX
et 1 = VRAI
.
Les ensembles flous et la logique floue s'établissent plutôt en rupture de toutes ces logiques crisp. L'idée est de travailler avec un intervalle continu de valeur comprise entre [0;1]
, qui représente l'appartenance d'un concept à un ensemble donné.
Intuitivement, pour comprendre le besoin, l'on peut se poser la question du tas de sable : À quel moment, en empilant un par un les grains de sables, l'on peut parler de tas de sable ? La logique floue apporte une modélisation mathématique à cette question.
Exemple :
La variable
Bob
appartient à l'ensemblegrand
, t.q. grand(Bob), avec un degré de 0.67, et la variableAnna
avec un degré de 0.35. Avec ces information, l'on peut commencer à faire du raisonnement.
Le notion de degré est différente de celle de probabilité ! La probabilité est crisp ! En effet, si vous avez t.q. cela signifie que a 67% de chance d'être grand (i.e. que ce soit vrai), et 23% de chance d'être faux. En fuzzy, il est, pour une unité, "0.67 grand et 0.23 petit".
Pour définir le degré d'appartenance d'une variable (e.g. une mesure), on procède à une fuzzification. On peut ensuite faire des opérations mathématiques simulant les connecteurs vue dans la ZOL et la FOL. Néanmoins, il n'est pas possible d'interpréter avec des valeurs de vérité les résultats : il faut tout d'abord les faire sortir de ces ensembles flous, ce que l'on appelle la defuzzification, pour ensuite leur attribuer une valeur de vérité.
Les connecteurs logiques ne sont plus définis universellement !
Dans les grandes lignes, on définit comme des ensemble flous, t.q. (l'ensemble de nos ensembles flous). On définit également , la fonction d'appartenance à l'ensemble flou (membership function) comme .
La fonction de fuzzification consiste à prendre une variable et la projeter dans nos ensembles flous, pour définir un degré d'appartenance pour chacun des ensembles.
Avec cette approche, les informations deviennent humainement interprétables. Il est même possible d'introduire des modificateurs sémantiques (e.g. peu, énormément,etc.).
Pour pouvoir faire de la logique avec ces ensembles, il faut définir nos connecteurs. Comme spécifié dans l'Introduction, les connecteurs ne sont plus universels. Aussi, accordons nous sur leur définition :
AND
OR
Maintenant que nos connecteurs sont définis, on a tout le pipeline nécessaire pour réaliser de la logique flou :
Définir nos ensembles flous
Définir nos règles logiques (e.g. si le service est mauvais ou la nourriture mauvaise, alors le pourboire sera faible)
Fuzzifier les variables (e.g. la qualité de service et la qualité de la nourriture)
Appliquer les opérateurs logiques
Défuzzifier (là encore, ce n'est pas défini universellement)
Grâce à cela, on est capable de raisonner dans l'incertitude, et prendre des décisions à l'échelle de la compréhension humaine, plutôt que de travailler avec des métriques abstraites.
La qualité d'un modèle logique floue est reportée sur l'élaboration de ses ensembles flous et des fonctions d'appartenances associées. Il est parfois difficile de modéliser correctement ces fonctions dû à la complexité inhérente des concepts ; des fois il est possible de les éclater en sous concept.
Deux trois ressources intéressantes :