On entend de plus en plus souvent parler de la logique floue comme d'une méthode offrant des performances hors du commun, permettant de gérer des systèmes complexes de façon intuitive. Certaines boutiques ont même utilisé la logique floue comme outil marketing ; ne vous est-il jamais arrivé de voir sur une machine à laver, une étiquette Fuzzy Technology Inside ??
Néanmoins, comme toute méthode, la logique floue apporte son lot d'avantages, mais aussi d’inconvénients. Dans cet article, j'expliquerai le principe de la logique floue comparé à la logique classique. Je mettrai en avant les différents domaines d'applications ainsi que les avantages et inconvénients de l'application d'une telle méthode.

La logique floue VS. la logique classique

La logique classique est un pan des mathématiques relativement bien connu du public. C'est sur son principe que fonctionne les ordinateurs, calculateurs et la plupart des machines numériques. En logique classique, les décisions sont binaires : soit vraies, soient fausses. C'est sur ce point que la logique floue va se distinguer de la logique classique. En logique floue, une décision peut être à la fois vraie et fausse en même temps, avec un certain degré d'appartenance à chacune de ces deux croyances.

Par exemple, considérons ces deux règles d'inférences :

  • Si l'objet est à moins de 20 mètres, alors il est proche
  • Si l'objet est à plus de 20 mètres, alors il est loin

En logique classique, un objet ne pourra être que proche ou que loin. Si la distance à l'objet est de 19 mètres, alors celui-ci sera proche. En logique floue par contre, l'objet sera à la fois proche et loin en même temps. Ici, l'objet qui se situe à 19 mètres, sera par exemple proche à 60% et loin à 40%.

On se rend compte qu'en logique floue, un fait n'a plus une appartenance stricte à une croyance, mais une appartenance "floue"

La logique floue a été développée et formalisée par Lofti Zahed en 1965. Cette théorie se base sur la théorie des ensembles flous et la logique. Elle généralise notamment le Modus Ponens de la logique classique.

  • En logique classique, le Modus Ponens stipule que sachant A, si A implique B, alors on en déduit B. (A, A \Rightarrow B \vdash B)
  • En logique floue, le Modus Ponens est formulé différemment : sachant que x est A', si x est A implique y est B, alors on en déduit y est B'. (x=A', x=A \Rightarrow y=B \vdash y=B')

Avec un exemple un peu plus concret, si l'on sait qu'une tomate est mûre si elle est rouge. Si l'on voit une tomate très rouge, alors ça veut dire qu'elle est très mûre.

Les avantages et inconvénients de la logique floue

La logique floue permet de raisonner non pas sur des variables numériques, mais sur des variables linguistiques, c'est-à-dire, sur des variables qualitatives (grand, petit, moyen, loin, près, fort, etc.). Le fait de raisonner sur ces variables linguistiques va permettre de pouvoir manipuler des connaissances en langage naturel. Tout ce que l'on a à rentrer au système, ce sont des règles d'inférences exprimées en langage naturel. Par exemple :

  • Si le feu est rouge et que je suis proche du feu et que ma vitesse est élevée, alors je freine fort
  • Si le feu est rouge et que je suis loin du feu et que ma vitesse est élevée, alors je freine peu fort
  • Si le feu est rouge et que je suis loin du feu et que ma vitesse est moyenne, alors je garde ma vitesse
  • Si le feu est rouge et que je suis loin du feu et que ma vitesse est faible, alors j'accélère
  • etc.

Il y a donc un avantage certain à travailler en logique floue. Cette méthode est très utile lorsque l'on se trouve confronté à des systèmes qui ne sont pas, ou difficilement modélisable.
De même, cette méthode est très avantageuse si l'on possède un bon niveau d'expertise humaine. En effet, il faut fournir au système flou toute une base de règle exprimé en langage naturel pour permettre de raisonner et de tirer des conclusions. Plus l'expertise humaine d'un système est importante et plus on est capable d'ajouter des règles d'inférences au système.

La logique floue permet donc de contrôler des systèmes complexes non forcement modélisable de façon "intuitive". Néanmoins, cette méthode présente divers inconvénients. Tout d'abord, le fait d'exprimer ses connaissances sous la forme de règles en langage naturel (et donc qualitative) ne permet pas de prouver que le système aura un comportement optimal. Tous les réglages que le programmeur doit entrer au système se fait de façon totalement ad-hoc. Cette méthode ne peut donc pas garantir que le système soit stable, précis ou optimal, ni même qu'elle ne peut garantir que les règles entrées par le programmeur ne soient pas contradictoire.

C'est une méthode ad-hoc basée sur le savoir qu'un humain peut acquérir sur un système. Les performances sont donc mesurées a posteriori et ne peuvent être calculées a priori. Les réglages se font donc par essais/erreurs.

Les domaines d'applications de la logique floue

Les domaines d'applications de la logique floue sont très nombreux. On la retrouve :

  • En automatique, pour faire de la commande et de la régulation floue, etc.
  • En traitement du signal, pour faire de la fusion de données, de la classification, de la reconnaissance de forme ou de la recherche d'information, etc.
  • En robotique, pour faire de la planification de trajectoire, etc.
  • En traitement d'image, pour atténuer le bruit d'une image, pour faire de l’interpolation, etc.
  • etc.

On retrouve donc naturellement la logique floue dans de nombreux secteurs d'activités :

  • Médecine (aide au diagnostique, guidage de systèmes chirurgicaux (laser chirurgie de l’œil par exemple), etc.)
  • Contrôle aérien
  • Gestions des feux de circulations
  • Assurances et finances (préventions des risques, aide à la décision)
  • Environnement (météo, etc.)
  • Robotique (freins ABS, machines à laver, etc.)
  • etc.

En conclusion, on peut dire que la logique floue possède l'avantage d'être intuitive et de pouvoir faire fonctionner une quantité importante de systèmes différents possédant une forte expertise humaine. Néanmoins, il faut garder à l'esprit qu'en logique floue, il est impossible de prédire les performances d'un système. Si le réglage des paramètres est fin, les performances seront au rendez-vous, mais s'il y a un manque de précision au niveau des réglages, les performances laisseront surement à désirer...

En logique floue, c'est le développeur qui fait la qualité de la méthode.

Pour apprendre à designer un système flou, n'hésitez pas à lire cet article : Les systèmes flous : Le fonctionnement

10 commentaires à “La logique floue : intérêts et limites”

  1. Article super intéressant.
    J'me demandais si tu avais des sources concernant l'utilisation de ce type de système en banque et assurance.

    PS : Tu as fait quelques fautes de frappes dans l'article. fer = feu. prédit= prédire.

    • Merci de m'avoir corrigé Sami !
      Je n'ai pas d'exemple d'applications vraiment concrètes à te donner pour les banques et assurances. Souvent, c'est pour de l'aide à la décision.
      Tu pourrais imaginer un cas de recrutement où chaque candidat est noté selon plusieurs critères : son age, sa formation, son expérience, son indépendance, sa capacité à collaborer, etc.
      Si tu as besoin d'un candidat jeune qui ait soit une bonne expérience, soit une bonne formation et qui soit capable soit de travailler en équipe soit qui soit indépendant, tu peux créer un système flou à une seule règle d'inférence qui serait : "age ET (formation OU expérience) ET (indépendant OU collaborateur)".

      Il suffit de bien choisir les opérateurs et le système fusionnera les informations sur le candidat pour te donner une note finale qui correspond à tes attentes.

      Pour les banques, on peut utiliser le même système pour noter un candidat à un prêt par exemple. En fonction d'un certain nombre de règles (règles sont sont dressées à partir de l'expertise humaine), tu peux ainsi savoir si un candidat est éligible à un prêt ou alors s'il y a des chances pour qu'il ne puisse pas le rembourser.

  2. Merci pour l'article,
    c'est bien détaillé

  3. Merci c'est très enrichissant et surtout bien détaillé (y)

  4. Merci pour ce bel article ! C'est très bien vulgarisé.

  5. très intéressant merci

  6. Merci pour cet intéressant article. C'est vraiment bien détaillé

  7. Merci pour cet article très bien résumé et de bon niveau pédagogique. Il existe actuellement deux méthodes d'inférence (la méthode Mamdani et la méthode Sugeno) que l'on peut utiliser pour la conception d'application en logique floue. La méthode Sugeno est utile lorsque nous voulons connaître mathématiquement les performances du système de manière à permettre une optimisation contrôlée tandis que la méthode Mamdani est celle qui serait liée à votre résumé.

    Merci

  8. Un des intérêts de la logique floue c'est de pouvoir "emprunter" le savoir faire d'un opérateur expert dans tel domaine pour, quelque temps plus tard, mettre ce qu'il faut de capteurs et d'actionneurs (plus si nécessaire d'autres domaines de l'IA) pour le remplacer.
    En général, l'opérateur flatté que l'on s'intéresse à son travail, ne cache rien de ses observations, de leurs interprétations et des actions qui en découle… Bref il remplit lui-même le(s) tableau(x) de règles… et son avis de licenciement.
    Ce n'est pas la logique floue qui est responsable, naturellement.

    Mais dans les relations humains/"travail" un "méchant" virage se présente (est sous nos roues)… serons-nous le négocier sans casse ???
    Je n'ai pas la réponse.

    Christian.

    note: Bon travail pédagogique, merci.
    Juste une suggestion au sujet de la comparaison graphique logique "classique" vs floue; plutôt que 2 cercles de couleurs uniformes ou pas, je verrais bien 2 carrés [cxc] disjoints (un blanc codé 0 et l'autre noir codé 1) à côté d'un rectangle de dimension cx2c divisé en quelques bandes (3 à 5) teintées du blanc au noir en passant par un ou 3 gris. Avec, bien entendu pour le cas 5 bandes, les "codages" 1,0.75,0.5,0.25,0. (vive les dessins !)

  9. Bonjour,
    Je découvre votre site (ainsi que votre parcours brillant^^)...
    Merci pour votre explication, j'avais besoin de connaître un peu plus cette notion pour mieux appréhender les systèmes experts médicaux.
    Bonne continuation à vous

Laisser un commentaire

Vous pouvez utiliser ces tags et attributs HTML&nsbp;: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

© 2011-2012 Ferdinand Piette