Logique floue
La logique floue (fuzzy logic, en anglais) est une technique utilisée en intelligence artificielle. Elle a été formalisée par Lotfi Zadeh en 1965 et utilisée dans des domaines aussi variés que l'automatisme (freins ABS), la robotique (reconnaissance de formes), le gestion de la circulation routière (feux rouges), le contrôle aérien, l'environnement (météorologie, climatologie, sismologie), la médecine (aide au diagnostic) et bien d'autres. En fait, le simple fait de noter, déjà sous Jules Ferry, un élève dans différentes disciplines et de lui calculer un rang par application de coefficients à ses notes était déjà faire de la logique floue sans le savoir.
Elle s'appuie sur la théorie mathématique des sous-ensembles flous. Cette théorie, introduite par Zadeh, est une extension de la théorie des ensembles classiques pour la prise en compte d'ensembles définis de façon imprécise. C'est une théorie formelle et mathématique dans le sens où Zadeh en partant du concept de fonction d'appartenance pour modéliser la définition d'un sous-ensemble d'un univers donné, a élaboré un modèle complet de propriétés et de définitions formelles. Il a aussi montré que cette théorie des sous-ensembles flous se réduit effectivement à la théorie des sous-ensembles classiques dans le cas où les fonctions d'appartenance considérées prennent des valeurs binaires ({0,1}).
| Sommaire |
Principe
A l'inverse de la logique booléenne, la logique floue permet à une condition d'être en un autre état que vrai ou faux. Il y a des degrés dans la vérification d'une condition.
Considérons par exemple la vitesse d'un véhicule sur une route nationale. La vitesse normale est de 90 km/h. Une vitesse peut être considérée comme élevée au-dessus de 100 km/h, et comme plus du tout élevée en dessous de 80 km/h.
| Image manquante Fuzzy0.png image:fuzzy0.png fig. 1 |
La logique booléenne envisagerait les choses de la manière suivante (voir fig. 1) :
- La vitesse est considérée à 100% comme élevée à partir de 100 km/h, et à 0% en dessous.
La logique floue, à l'inverse, permet des degrés de vérification de la condition « La vitesse est-elle élevée ? » (voir fig. 2) :
- La vitesse est considérée comme pas du tout élevée en dessous de 80 km/h. On peut donc dire qu'en dessous de 80 km/h, la vitesse est élevée à 0%.
| Image manquante Fuzzy1.png image:fuzzy1.png fig. 2 |
- La vitesse est considérée comme élevée au-dessus de 100 km/h. La vitesse est donc élevée à 100% au-dessus de 100 km/h.
- La vitesse est donc élevée à 50% à 90 km/h, et à 25% à 85 km/h.
De la même manière, la fonction « La vitesse est-elle peu élevée ? » sera évaluée de la manière suivante (voir fig. 3) :
- La vitesse est considérée comme peu élevée en dessous de 80 km/h. Elle est donc peu élevée à 100%.
| Image manquante Fuzzy2.png image:fuzzy2.png fig. 3 |
- La vitesse est considérée comme pas du tout peu élevée au-dessus de 100 km/h. Elle est donc peu élevée à 0%.
- La vitesse est donc peu élevée à 50% à 90km/h, et à 75% à 85 km/h.
On peut également définir une fonction « La vitesse est-elle moyenne ? » (voir fig. 4) :
- La vitesse est moyenne à 90 km/h. À cette allure, la vitesse est moyenne à 100%.
| Image manquante Fuzzy3.png image:fuzzy3.png fig. 4 |
- La vitesse n'est pas du tout moyenne en dessous de 80 km/h et au-dessus de 100 km/h. Hors de cet intervalle, la vitesse est moyenne à 0%.
- La vitesse est donc moyenne à 50% à 85 km/h et 95 km/h.
Il n'est pas obligatoire que la transition soit linéaire. Des transitions hyperboliques (comme une sigmoïde ou une tangente hyperbolique), exponentielle, gaussienne (dans le cas d'un état moyen) ou de toute autre nature sont utilisables (voir fig. 5).
| Image manquante Fuzzy4.png image:fuzzy4.png Image manquante Fuzzy5.png image:fuzzy5.png Image manquante Fuzzy6.png image:fuzzy6.png fig. 5 |
Combinaison de plusieurs entrées
Dans le cas d'une combinaison de plusieurs entrées (« Si le ciel est bleu et si j'ai le temps »), deux cas se présentent :
- Les entrées sont liées par une fonction logique « ET » : dans ce cas, on peut considérer comme première approche seulement l'entrée ayant le degré de vérification le plus faible. En fait il suffit de choisir un opérateur
tel que
où
est appelée une t-norme. min est la plus optimiste des t-normes
- Les entrées sont liées par une fonction logique « OU » : dans ce cas, on peut considérer comme première approche seulement l'entrée ayant le degré de vérification le plus élevé. En fait il suffit de choisir un opérateur
tel que
où
est appelée une t-conorme. max est la plus pessimiste des t-conormes
Il est techniquement possible de représenter toutes les opérations binaires de bases en se basant sur la logique floue. En effet, à partir des opérateurs ET, OU et NON (AND, OR, NOT), on peut représenter les 8 opérations de base :
- OU (OR) : A OR B = max(A, B)
- ET (AND) : A AND B = min(A, B)
- NON (NOT) : NOT A = 1 - A
- XOR : A XOR B = (A OR B) AND NOT (A AND B) = A + B - 2 × min(A, B)
- NON-OU (NOR) : A NOR B = 1 - max(A, B)
- NON-ET (NAND) : A NAND B = 1 - min(A, B)
- NON-XOR (NXR) : A NXR B = 1 + 2 × min(A, B) - (A + B)
- SUIVEUR (NOP) : NOP A = A
Par ailleurs, la dimension décimale des variables de la logique floue permet d'effectuer des combinaisons non binaires :
- Le produit : A.B ou A × B (équivalent en binaire à l'opération AND)
- L'addition : A + B (équivalent en binaire à l'opération OR)
Commande floue
Une fois évaluée la valeur de l'entrée (« La vitesse est-elle élevée ? »), une valeur peut être déterminée pour une fonction de sortie. Considérons la fonction « Si la fièvre est forte, alors administrer de l'aspirine ». Une telle fonction est appelée commande floue. Elle est composée de deux parties :
- Une entrée : « La fièvre est-elle forte ? ». On considère qu'une fièvre n'est pas forte en dessous de 38°C, et qu'elle est forte au-dessus de 40°C.
- Une sortie : « Administrer de l'aspirine »
Ces deux parties sont liées. On peut les représenter ensemble comme sur la fig. 6.
| Image manquante Fuzzy7.png image:fuzzy7.png fig. 6 |
Il existe plusieurs techniques pour déterminer la valeur de la sortie (dans l'exemple : la quantité d'aspirine à administrer) :
- La droite ayant la même ordonnée que le point de la courbe de départ ayant pour abscisse la valeur de l'entrée coupe la courbe de sortie. L'abscisse de ce point d'intersection est une valeur de sortie possible (fig. 7).
| Image manquante Fuzzy8.png image:fuzzy8.png fig. 7 |
- La droite ayant la même ordonnée que le point de la courbe de départ ayant pour abscisse la valeur de l'entrée délimite un trapèze au niveau de la sortie. Le centre de gravité de ce trapèze est également une valeur de sortie possible (fig. 8).
| Image manquante Fuzzy9.png image:fuzzy9.png fig. 8 |
Insuffisances en tant que théorie
La théorie des ensembles flous présente la particularité de n'avoir aucun théorème à proposer. C'est dire que si elle peut rendre quelques services techniques elle ne peut pour autant prétendre à un quelconque statut de science, et moins encore de théorie.
Toutefois, le théorème de Cox-Jaynes montre que
- l'on peut représenter un état de connaissance flou par une probabilité
- que tout moyen utilisé pour prendre des décisions sera soit isomorphe à la théorie des probabilités, soit incohérent.
Comme on souhaite en général une modélisation cohérente, on aura quelque intérêt à modeler le flou par des valeurs de probabilité (à une normalisation près).
