Fuzzy Logic
La logique floue attribue des valeurs de vérité entre 0 et 1 afin que les systèmes à base de règles puissent raisonner avec des termes vagues comme « chaud » ou « proche ». Présentation des contrôleurs et du code.
La logique floue est une forme de logique multivaluée dans laquelle une proposition peut être partiellement vraie, avec un degré de vérité compris entre 0 et 1, au lieu d’être simplement vraie ou fausse. Elle trouve son origine dans l’article de Lotfi Zadeh de 1965 sur les ensembles flous, à l’Université de Californie à Berkeley, et permet aux ordinateurs d’utiliser des termes humains vagues comme « chaud », « proche » ou « rapide » dans des calculs précis. Un système flou encode les connaissances des experts sous forme de règles conditionnelles simples et combine les règles qui s’appliquent partiellement ; sa sortie évolue ainsi progressivement avec ses entrées. Cette propriété a fait de la logique floue un élément essentiel de l’ingénierie de commande, du freinage des trains aux machines à laver, et elle reste présente dans les systèmes d’intelligence artificielle (IA) qui ont besoin de règles interprétables et ajustables manuellement.
Ensembles flous et fonctions d’appartenance#
Dans la théorie classique des ensembles, un élément appartient ou n’appartient pas à un ensemble. Un ensemble flou attribue à chaque élément un degré d’appartenance compris entre 0 et 1 au moyen d’une fonction d’appartenance, généralement une courbe triangulaire, trapézoïdale ou gaussienne sur la plage d’entrée. Les ensembles voisins se chevauchent ; une pièce à 24 °C peut donc être à la fois « chaude » à 0.6 et « brûlante » à 0.2, et l’étiquette change progressivement au lieu de basculer à un seuil. Les opérateurs logiques s’étendent aux degrés : les définitions originales de Zadeh prennent le minimum de deux degrés pour ET, le maximum pour OU et 1 moins le degré pour NON ; d’autres choix, comme le produit pour ET, appartiennent à une famille appelée normes triangulaires.
Fonctionnement d’un système d’inférence floue#
Un contrôleur flou transforme des mesures de capteurs continues en une commande continue en quatre étapes :
- Fuzzification : associer à chaque valeur d’entrée son degré d’appartenance à chaque ensemble flou, par exemple déterminer à quel point un obstacle est « proche », « à distance moyenne » ou « éloigné ».
- Évaluation des règles : déclencher chaque règle conditionnelle, par exemple « si la distance est faible, le freinage est puissant », selon le degré auquel sa condition est satisfaite.
- Agrégation : écrêter l’ensemble de sortie de chaque règle à son degré d’activation et combiner les ensembles écrêtés, généralement en prenant leur maximum.
- Défuzzification : réduire l’ensemble combiné à un seul nombre, le plus souvent son centroïde.
Ce schéma correspond à la méthode de Mamdani, nommée d’après Ebrahim Mamdani, qui l’a utilisée avec Sedrak Assilian pour contrôler une machine à vapeur de laboratoire en 1975. Les systèmes Takagi-Sugeno remplacent les ensembles de sortie par des formules des entrées et en calculent la moyenne ; leur calcul est moins coûteux et leur réglage à partir des données plus facile. Cet exemple implémente un contrôleur Mamdani à trois règles qui définit la force de freinage en fonction de la distance à un obstacle :
import numpy as np
# Output fuzzy sets over braking force (0-100%)
force = np.linspace(0, 100, 501)
gentle = np.interp(force, [0, 40], [1, 0])
firm = np.interp(force, [20, 50, 80], [0, 1, 0])
hard = np.interp(force, [60, 100], [0, 1])
for distance in [8, 15, 22, 35]:
# Fuzzification: how near, medium, and far the obstacle is (meters)
near = np.interp(distance, [5, 20], [1, 0])
medium = np.interp(distance, [10, 20, 30], [0, 1, 0])
far = np.interp(distance, [20, 40], [0, 1])
# Rules: near -> hard, medium -> firm, far -> gentle; clip each set (min), combine (max)
combined = np.maximum.reduce([np.minimum(near, hard), np.minimum(medium, firm), np.minimum(far, gentle)])
# Defuzzification: the centroid of the combined set is the crisp braking command
print(f"{distance:>2} m -> brake {np.sum(force * combined) / np.sum(combined):.0f}%")Le script affiche des forces de freinage de 86 %, 60 %, 47 % et 14 % pour des distances de 8, 15, 22 et 35 mètres. À 15 mètres, l’obstacle est « proche » à 0.33 et à « distance moyenne » à 0.5 ; les règles de freinage puissant et soutenu s’activent donc toutes deux partiellement, et leur combinaison donne 60 %. Trois règles produisent une courbe de freinage progressive, sans seuil où la commande ferait un bond.
Applications#
- Systèmes de commande : le système de conduite automatique floue de Hitachi contrôlait l’accélération et le freinage sur la ligne Namboku du métro de Sendai à son ouverture en 1987, offrant des trajets plus doux et des arrêts plus précis. Les contrôleurs flous ajustent également des appareils grand public comme les machines à laver, les cuiseurs à riz et les climatiseurs à partir de mesures imprécises de capteurs.
- Segmentation d’images : le fuzzy c-means, une version souple du clustering k-means, attribue à chaque pixel un degré d’appartenance à chaque groupe. Cette méthode est largement utilisée en analyse d’images médicales, par exemple pour séparer les types de tissus cérébraux dans les examens IRM, où un pixel à la frontière peut contenir les deux tissus.
- Décisions guidées par la vision : la solution d’estimation de vitesse d’Ultralytics suit les véhicules avec un modèle YOLO26 et indique la vitesse de chacun en km/h ; il s’agit d’une entrée continue qu’une base de règles floues peut classer comme lente, modérée ou rapide avant de définir un niveau d’alerte ou la durée d’un feu.
- Systèmes neuro-flous : le système adaptatif d’inférence neuro-floue (ANFIS), présenté par Jyh-Shing Roger Jang en 1993, apprend les fonctions d’appartenance et les paramètres des règles à partir des données, au moyen de méthodes d’entraînement de réseaux neuronaux, tout en conservant des règles lisibles.
Logique floue, probabilité et IA symbolique#
La logique floue et la probabilité utilisent toutes deux des nombres compris entre 0 et 1, mais décrivent différents types d’incertitude. Une probabilité, la quantité sur laquelle raisonnent les réseaux bayésiens, exprime la vraisemblance d’un événement défini sans ambiguïté, comme une probabilité de 30 % qu’il pleuve demain. Une appartenance floue exprime à quel point une description vague correspond à un état connu, comme une tasse de café à 50 °C qui est « chaude » à 0.7. Par rapport à l’IA symbolique classique, les bases de règles floues conservent la structure lisible en « si-alors » des systèmes experts, tout en remplaçant la condition binaire de chaque règle par un degré, ce qui permet à plusieurs règles de contribuer simultanément à une décision.










