• Aucun résultat trouvé

Introduction à la logique floue

N/A
N/A
Protected

Academic year: 2022

Partager "Introduction à la logique floue"

Copied!
17
0
0

Texte intégral

(1)

Par Franck Dernoncourt

www.openclassrooms.com

Licence Creative Commons 6 2.0 Dernière mise à jour le 13/04/2012

(2)

Sommaire

2 Sommaire ...

1 Lire aussi ...

3 Introduction à la logique floue ...

3 Introduction ...

4 Rappels sur les ensembles classiques ...

5 Les sous-ensembles flous ...

8 Les variables linguistiques ...

10 Les opérateurs flous ...

12 Le raisonnement en logique floue ...

13 La défuzzification ...

15 Conclusion ...

16 Implémentations et perspectives ...

17 Partager ...

(3)

Mise à jour : 13/04/2012

Difficulté : Intermédiaire Durée d'étude : 1 heure, 30 minutes

La logique floue est une extension de la logique classique qui permet la modélisation des imperfections des données et se rapproche dans une certaine mesure de la flexibilité du raisonnement humain. Rien que cela

La logique floue présente ainsi de nombreuses applications concrètes, allant des jeux vidéo (programmation des bots) aux pilotes automatiques en passant par le micro-onde. Oui, sans que vous le sachiez, elle vous entoure !

Dans ce cours d'introduction, nous définirons les notions de base de la logique floue en les illustrant par un exemple qui sera gardé tout au long du cours. Cet exemple sera la décision du montant du pourboire à l'issue d'un repas au restaurant, en fonction de la qualité du service ressentie ainsi que de la qualité de la nourriture (exemple souvent utilisé pour introduire à la logique floue).

Prérequis : connaissances de base sur les ensembles classiques et la logique classique (booléenne) Sommaire du tutoriel :

Introduction

Rappels sur les ensembles classiques Les sous-ensembles flous

Les variables linguistiques Les opérateurs flous

Le raisonnement en logique floue La défuzzification

Conclusion

Implémentations et perspectives

Introduction

La logique floue est une extension de la logique booléenne créée par Lotfi Zadeh en 1965 en se basant sur sa théorie

mathématique des ensembles flous, qui est une généralisation de la théorie des ensembles classiques. En introduisant la notion de degré dans la vérification d'une condition, nous permettons à une condition d'être dans un autre état que vrai ou faux. La logique floue confère ainsi une flexibilité très appréciable aux raisonnements qui l'utilisent, ce qui rend possible la prise en compte des imprécisions et des incertitudes.

Un des intérêts de la logique floue pour formaliser le raisonnement humain est que les règles sont énoncées en langage naturel.

Voici par exemple quelques règles de conduite qu'un conducteur suit, en supposant qu'il tienne à son permis

Si le feu est rouge... si ma vitesse est élevée... et si le feu est proche... alors je freine fort.

Si le feu est rouge... si ma vitesse est faible... et si le feu est loin... alors je maintiens ma vitesse.

Si le feu est orange... si ma vitesse est moyenne... et si le feu est loin... alors je freine doucement.

Si le feu est vert... si ma vitesse est faible... et si le feu est proche... alors j'accélère.

Intuitivement, il semble donc que les variables d'entrée à l'instar de cet exemple sont appréciées par le cerveau de manière

(4)

approximative, correspondant ainsi au degré de vérification d'une condition de la logique floue. Un système complet de règles basées sur la logique floue et permettant de prendre des décisions est appelé un système d'inférence flou.

Afin d'illustrer chacune des définitions, nous allons concevoir au fil de ce cours un système d'inférence flou. L'objectif sera de décider du pourboire à donner à la fin d'un repas au restaurant en fonction de la qualité du service ainsi que de la qualité de la nourriture

Rappels sur les ensembles classiques

Pour commencer, quelques petits rappels sur les ensembles classiques s'imposent

La théorie des ensembles classiques, malgré son nom compliqué, désigne simplement la branche des mathématiques qui étudie les ensembles. Par exemple, {5; 10; 7; 6; 9} est un ensemble d'entiers. {0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10} est l'ensemble des entiers compris entre 0 et 10. {'s'; 'd'; 'z'; 'a'} est un ensemble de caractères. {"Site"; "du"; "zéro"} est un ensemble de mots. Nous pouvons également créer des ensembles de fonctions, d'hypothèses, de définitions, des ensembles d'individus (c'est-à-dire une population), etc. et même des ensembles d'ensembles !

À noter que dans un ensemble, l'ordre n'a pas d'importance : {7; 6; 9} désigne le même ensemble que {9; 7; 6}. Néanmoins, afin d'améliorer la lisibilité, il est pratique de classer les éléments par ordre croissant, en l'occurrence {6; 7; 9}. Usuellement, un ensemble est désigné par une lettre en majuscule : ainsi, nous écrirons A = {6; 7; 9}. L'ensemble vide est noté : c'est un ensemble remarquable car il ne contient aucun élément. Cela semble inutile à première vue, mais en fait, nous allons souvent le croiser !

Les ensembles sont souvent représentés sous forme graphique, typiquement par des cercles :

Représentation graphique de l'ensemble {1; 5; 6; 7; 10}

Le concept d'appartenance est primordial dans la théorie des ensembles : il désigne le fait qu'un élément fasse partie ou non d'un ensemble. Par exemple, l'entier 7 appartient à l'ensemble {6; 7; 9}. A contrario, l'entier 5 n'appartient pas à l'ensemble {6; 7; 9}.

Pour simplifier les choses, l'appartenance est symbolisée par le caractère et la non-appartenance par le même symbole, mais

barré . Ainsi, nous avons et .

Une fonction d'appartenance (également appelée fonction indicatrice ou encore fonction caractéristique) est une fonction qui explicite l’appartenance ou non à un ensemble E. Soit f la fonction caractéristique de l'ensemble , et x un entier quelconque :

Cette notion d'appartenance est très importante pour notre cours car la logique floue se base sur le concept

d'appartenance floue. Cela signifie simplement que l'on peut appartenir par exemple à 0,8 à un ensemble, contrairement à la théorie des ensembles classiques où comme nous venons de le voir l'appartenance est soit 0 (n'appartient pas) ou 1 (appartient).

Afin de pouvoir manipuler les ensembles classiques et d'en faire quelque chose d'intéressant, nous définissons un ensemble d'opérations, lesquelles sont très intuitives :

(5)

Réunion de 2 ensembles, notée . correspond à la partie en bleu.

Par exemple, si et , alors .

Intersection de 2 ensembles, notée

Par exemple, si et , alors .

Voici la représentation graphique des ensembles et .

Nous voyons tout de suite que et . Pratique non ?

Mais détailler la théorie des ensembles classiques n'est pas l'objet de ce cours, donc nous nous arrêtons ici

Néanmoins, comme la logique floue se base sur le concept d'appartenance floue, nous voyons dès maintenant le genre de problèmes auxquels nous allons faire face et que nous allons résoudre dans les prochaines sections : comment définir par exemple une union si les appartenances ne sont pas clairement 0 ou 1 ?

Les sous-ensembles flous

La logique floue repose sur la théorie des ensembles flous, qui est une généralisation de la théorie des ensembles classiques.

Dire que la théorie des ensembles flous est une généralisation de la théorie des ensembles classiques signifie que cette dernière

(6)

n'est qu'un cas particulier la théorie des ensembles flous. Pour faire une métaphore en langage ensembliste, la théorie des ensembles classiques n'est qu'un sous-ensemble de la théorie des ensembles flous

"La théorie des ensembles classiques n'est qu'un sous-ensemble de la théorie des ensembles flous"

Par abus de langage, suivant les us de la littérature, nous utiliserons indifféremment les termes sous-ensembles flous et ensembles flous. Les ensembles classiques sont également appelés ensembles nets, par opposition à flous, et de même la logique classique est également appelée logique booléenne ou binaire.

Voici une figure montrant la fonction d'appartenance choisie pour caractériser le sous-ensemble 'bon' de la qualité du service :

Fonction d'appartenance caractérisant le sous-ensemble 'bon' de la qualité du service

DEFINITION : Soit X un ensemble. Un sous-ensemble flou A de X est caractérisé par une fonction d'appartenance

. Cette notation veut simplement dire que quel que soit l'entrée X donnée à la fonction , sa sortie est un réel entre 0 et 1. En théorie, il est possible que la sortie soit supérieure à 1, mais en pratique cela n'est quasiment jamais utilisé.

Note : cette fonction d'appartenance est l'équivalent de la fonction caractéristique d'un ensemble classique.

Dans notre exemple du pourboire, il nous faudra redéfinir des fonctions d'appartenance pour chaque sous-ensemble flou de chacune de nos trois variables :

Input 1 : qualité du service. Sous-ensembles : mauvais, bon et excellent.

Input 2 : qualité de la nourriture. Sous-ensembles : exécrable et délicieux.

Output : montant du pourboire. Sous-ensembles : faible, moyen et élevé.

La forme de la fonction d'appartenance est choisie arbitrairement en suivant les conseils de l'expert ou en faisant des études statistiques : formes sigmoïde, tangente hyperbolique, exponentielle, gaussienne ou de toute autre nature sont utilisables.

Cette figure montre graphiquement la différence entre un ensemble classique et l'ensemble flou correspondant à une nourriture délicieuse :

(7)

Représentation graphique d'un ensemble classique (à gauche) et d'un ensemble flou (à droite)

Cette figure compare les deux fonctions d'appartenance correspondant aux ensembles précédents :

Comparaison entre fonction caractéristique d'un ensemble classique (graphique du haut) et fonction d'appartenance d'un ensemble flou (graphique du bas)

Pour pouvoir définir les caractéristiques des ensembles flous, nous redéfinissons et étendons les caractéristiques usuelles des ensembles classiques.

Les ensembles flous comporte un certain nombre de propriétés. Voici les définitions des propriétés les plus importantes, elles ne sont néanmoins énoncées qu'à titre informatif car non nécessaire pour la compréhension du cours. Si vous le souhaitez, vous pouvez donc passer dès maintenant à la section suivante.

Soit X un ensemble, A un sous-ensemble flou de X et la fonction d'appartenance le caractérisant.

(8)

DEFINITION : La hauteur de A, notée , correspond à la borne supérieure de l'ensemble d'arrivée de sa fonction

d'appartenance : .

DEFINITION : A est dit normalisé si et seulement si . En pratique, il est extrêmement rare de travailler sur des ensembles flous non normalisés.

DEFINITION : Le support de A est l'ensemble des éléments de X appartenant au moins un peu à A. Autrement dit, c'est

l'ensemble .

DEFINITION : Le noyau de A est l'ensemble des éléments de X appartenant totalement à A. Autrement dit, c'est l'ensemble

. Par construction, .

DEFINITION : Une -coupe de A est le sous-ensemble classique des éléments ayant un degré d'appartenance supérieur ou égal

à : .

Voici une autre fonction d'appartenance pour un pourboire moyen sur lequel nous avons fait figurer les propriétés précédentes :

Propriétés d'un ensemble flou

Nous remarquons que si A était un ensemble classique, nous aurions simplement et (ou si ). Nos définitions permettent donc bien de retrouver les propriétés usuelles des ensembles classiques.

Nous ne parlerons pas de la cardinalité (c'est-à-dire le nombre d'éléments qu'un ensemble contient) car nous n'utiliserons pas cette notion dans la suite de ce cours.

Les variables linguistiques

Le concept de fonction d'appartenance vu précédemment nous permettra de définir des systèmes flous en langage naturel, la fonction d'appartenance faisant le lien entre logique floue et variable linguistique que nous allons définir à présent.

DEFINITION : Soit V une variable (qualité du service, montant du pourboire, etc.), X la plage de valeurs de la variable (par exemple, entre 0 et 30€ pour le pourboire) et un ensemble fini ou infini de sous-ensembles flous. Une variable linguistique correspond au triplet .

(9)

Variable linguistique 'qualité du service'

Variable linguistique 'qualité de la nourriture'

(10)

Variable linguistique 'montant du pourboire'

Lorsque nous définissons les sous-ensembles flous d'une variable linguistique, l'objectif n'est pas de définir exhaustivement la variable linguistique. Au contraire, nous définirons seulement les sous-ensembles flous qui nous seront utiles plus tard dans la définition des règles que nous appliquerons dessus. C'est par exemple la raison pour laquelle nous n'avons pas défini de sous- ensemble "moyen" pour la qualité de la nourriture. En effet, ce sous-ensemble ne nous sera pas utile dans nos règles ; cela peut être considéré comme étant le fait qu'une nourriture moyenne est considérée comme normale, par conséquent qu'il n'y a rien à signaler en particulier concernant ce fait. De même, c'est également la raison pour laquelle (par exemple) 30 est un pourboire plus élevé que 25, alors que 25 appartient pourtant davantage au sous-ensemble flou "élevé" que 30 : cela est dû au fait que 30 est considéré non pas comme élevé mais très élevé (ou exorbitant si l'on veut changer d'adjectif). Néanmoins, nous n'avons pas créé de sous-ensemble flou "très élevé" car nous n'en avons pas besoin dans nos règles.

Les opérateurs flous

Afin de pouvoir manipuler aisément les ensembles flous, nous redéfinissons les opérateurs de la théorie des ensembles

classiques afin de les adapter aux fonctions d'appartenance propres à la logique floue permettant des valeurs strictement entre 0 et 1.

Contrairement aux définitions des propriétés des ensembles classiques qui sont toujours les mêmes, la définition des opérateurs sur les ensembles flous est choisie, à l'instar des fonctions d'appartenance. Voici les deux ensembles d'opérateurs pour le complément (NON), l'intersection (ET) et l'union (OU) utilisés le plus couramment :

Dénomination Intersection ET : Réunion OU : Complément NON :

Opérateurs de Zadeh MIN/MAX

Probabiliste PROD/PROBOR

Petite remarque pour les cracks des maths : avec les définitions usuelles des opérateurs flous, nous retrouvons toujours les propriétés de commutativité, distributivité et associativité des opérateurs classiques. Cependant, nous relevons deux exceptions notables :

en logique floue, le principe du tiers exclu est contredit : , autrement dit . en logique floue, un élément peut appartenir à A et non A en même temps : , autrement dit

. Notons que ces éléments correspondent à l'ensemble .

(11)

En appliquant la règle PROBOR pour le OU, nous obtenons

.

De même, en appliquant la règle PROD pour le ET, nous obtenons .

Voici ce que ces calculs donnent graphiquement :

Voyons à présent ce que nous aurions obtenu si nous avions utilisé les opérateurs de Zadeh MIN/MAX, toujours avec

En appliquant la règle MAX pour le OU, nous obtenons .

De même, en appliquant la règle MIN pour le ET, nous obtenons .

Voici ce que ces calculs donnent graphiquement :

En résumé, nous constatons que le choix des opérateurs ET et OU influe sur nos résultats. Le tableau récapitulatif suivant met en évidence ces différences :

Dénomination Intersection ET : Réunion OU :

(12)

Opérateurs de Zadeh MIN/MAX

Probabiliste PROD/PROBOR

C'est le concepteur du système flou qui choisira les opérateurs en fonction des connaissances qu'il a sur le système qu'il doit modéliser. Mais bon, ce sont des subtilités

À présent, regardons comment les opérateurs sont utilisés au sein du raisonnement flou !

Le raisonnement en logique floue

Attention, c'est la sous-partie du tuto la plus importante ! C'est l'essence de la logique floue. Un conseil : relisez-la plusieurs fois

En logique classique, les raisonnements sont de la forme :

En logique floue, le raisonnement flou, également appelé raisonnement approximatif, se base sur des règles floues qui sont exprimées en langage naturel en utilisant les variables linguistiques dont nous avons donné la définition précédemment. En logique, une règle est sous la forme :

Si [prémisses] alors [conclusion].

En logique floue, les règles auront des formes telles que :

Si et alors

Si alors

Si ou alors

avec A, B et C des ensembles flous.

Dans notre exemple, cela donnerait :

'Si (la qualité de la nourriture est délicieuse), alors (le pourboire sera élevé)'. (ce qui correspond à la forme Si alors )

La variable 'pourboire' appartient à l'ensemble flou 'élevé' à un degré égal au degré de validité de la prémisse, autrement dit en l'occurrence au degré d'appartenance de la variable 'qualité de la nourriture' à l'ensemble flou 'délicieux'. L'idée sous-jacente est que plus les propositions en prémisse sont vérifiées, plus l'action préconisée pour les sorties doit être respectée. Voici ce que nous obtenons pour la règle floue 'Si (la qualité de la nourriture est délicieuse), alors (le pourboire sera élevé)' lorsque la qualité de la nourriture est notée 8,31 sur 10 :

Application de la règle 'Si (la qualité de la nourriture est délicieuse), alors (le pourboire sera élevé)' avec nourriture = 8,31.

Le résultat de l'application d'une règle floue dépend donc de deux facteurs :

la définition de la fonction d'appartenance de l'ensemble flou de la proposition située en conclusion de la règle floue ; le degré de validité des propositions situées en prémisse.

En lisant que la qualité de la nourriture est notée 8,31 sur 10, vous vous êtes peut-être demandé : comment avons-nous défini la valeur des variables ? Il faut garder en tête que nous nous plaçons dans le cas où le système est capable de

(13)

Comme nous avons défini les opérateurs flous ET, OU et NON, la prémisse d'une règle floue peut très bien être formée d'une conjonction (ET) ou disjonction (OU) de propositions floues. L'ensemble des règles d'un système flou est appelé la matrice des décisions. Voici celui de notre exemple du pourboire :

Si le service est mauvais ou la nourriture est exécrable alors le pourboire est faible.

Si le service est bon alors le pourboire est moyen.

Si le service est excellent ou la nourriture est délicieuse alors le pourboire est élevé.

Nous allons maintenant appliquer l'ensemble des 3 règles de notre matrice des décisions. Pour chacune des règles, nous obtenons un résultat intermédiaire (à droite sur le schéma suivant). Pour les régles utilisant l'opérateur OU (règles 1 et 3), nous utiliserons l'opération MAX (cela correspond aux opérateurs de Zadeh MIN/MAX que nous avons vu dans la sous-partie précédente "les opérateurs flous"). Nous agrégerons ces trois résultats intermédiaires en un résultat final en prenant simplement le maximum. Nous voyons le résultat final en bas à droite sur le schéma suivant :

Exemple d'application de l'ensemble des 3 règles de notre matrice des décisions à l'entrée (service = 7,83 ; nourriture = 7,32)

Comme nous le voyons, il ne nous reste plus qu'à prendre la décision finale, à savoir quel pourboire nous allons réellement donner, sachant que la qualité du service est notée 7,83 sur 10 et la qualité de la nourriture 7,32 sur 10. Cette étape finale, qui permet de passer de l'ensemble flou issu de l'agrégation des conclusions à une décision unique, s'appelle la défuzzification.

Courage, c'est bientôt fini

La défuzzification

Comme pour tous les opérateurs flous, le concepteur du système flou doit choisir parmi plusieurs définitions possibles de défuzzification. Nous allons présenter brièvement les deux principales méthodes de défuzzification : la méthode moyenne des maxima (MM) et la méthode du centre de gravité (COG).

La défuzzification MM définit la sortie (décision du montant du pourboire) comme étant la moyenne des abscisses des maxima de l'ensemble flou issu de l'agrégation des conclusions.

(14)

Pour ceux qui aiment les formules de maths compliquées (pour les autres, vous pouvez les zapper ), la moyenne des abscisses des maxima se définit ainsi :

et R est l'ensemble flou issu de l'agrégation des conclusions.

Défuzzification avec la méthode moyenne des maxima (MM)

La défuzzification COG est plus couramment utilisée. Elle définit la sortie comme correspondant à l'abscisse du centre de gravité de la surface de la fonction d'appartenance caractérisant l'ensemble flou issu de l'agrégation des conclusions.

Pour les cracks des maths curieux, l'abscisse du centre de gravité de la surface se calcule ainsi :

(c'est joli non ? )

(15)

Conclusion

Au cours des définitions, nous avons vu que le concepteur d'un système flou doit faire un nombre de choix important. Ces choix se basent essentiellement sur les conseils de l'expert ou sur l'analyse statistique des données passées, en particulier pour définir les fonctions d'appartenance et la matrice des décisions.

Voici un aperçu synoptique d'un système flou :

Dans notre exemple :

l'input est 'la qualité du service est notée 7,83 sur 10 et la qualité de la nourriture 7,32 sur 10' ;

le fuzzifier correspond aux 3 variables linguistiques 'qualité du service', 'qualité de la nourriture' et 'montant du pourboire'

;

le moteur d'inférence est constitué du choix des opérateurs flous ; la base de connaissances floues est l'ensemble des règles floues ; le defuzzifier est la partie où entre en jeu la méthode de défuzzification ; l'output correspond à la décision finale : 'le montant du pourboire est 25'.

Il est intéressant de voir l'ensemble des décisions en fonction de chacune des variables avec notre système d'inférence flou par rapport au type d'ensemble de décisions que nous obtiendrions en utilisant la logique classique :

(16)

Ensemble des décisions d'un système flou

Ensemble des décisions d'un système se basant sur la logique classique, qui ne peut générer et que des surfaces linéaires Ainsi, toute la puissance de la logique floue est de rendre possible la mise en place de systèmes d'inférence dont les décisions sont sans discontinuité, flexibles et non linéaires, plus proches du comportement humain que ne l'est la logique classique. De plus, les règles de la matrice des décisions sont exprimées en langage naturel. Cela comporte de nombreux avantages, comme inclure des connaissances d'un expert non-informaticien au coeur d'un système décisionnel ou encore modéliser plus finement certains aspects du langage naturel.

Implémentations et perspectives

Si ce cours vous a convaincu d'utiliser un peu de logique floue dans vos applications, voici quelques bibliothèques l'implémentant

C++ : fuzzy-lite, jFuzzyQt Java : jFuzzyLogic

MATLAB : Fuzzy Logic Toolbox (ce que j'ai utilisé pour ce cours !) Octave : Fuzzy Logic Toolkit

Python : pyfuzzy

Je suppose que comme moi beaucoup d'entre vous aiment les jeux vidéo, donc si cela vous intéresse le livre Programming Game AI by Example présente un chapitre entier sur l'application de la logique floue au jeu vidéo avec des exemples de code concrets.

Également pour les curieux, j'ai écrit un mémoire de recherche étudiant plusieurs questions autour de la logique floue :

La logique floue peut-elle expliquer les expériences qui avaient mis à mal les modèles classiques du raisonnement humain au cours du XXe siècle ? Par exemple, le paradoxe sorite qui apparaît lorsque nous posons des questions du genre

(17)

prenne au sérieux !

Bref, si certains d'entre vous se sont déjà demandé ce que signifie concrètement faire de la recherche en intelligence artificielle, voici le genre de questions auxquelles les chercheurs en intelligence artificielle essayent de répondre

Partager

Références

Documents relatifs

La normalisation et la certification de la qualité des processus, des produits et des services marchands soulève de multiples paradoxes: elle contribue à

L’avantage important de la commande par mode glissant flou est que le problème d'analyse et de stabilité des systèmes en boucle fermée peut être abordé dans le

Attractivité de la PF (labélisation IBISA, CNOC et certification ISO 9001) et de la thématique (préservation de l’environnement) pour le monde de la recherche, les étudiants,

Certains de vos employés seront eux aussi des managers, un jour. Si vous leur avez donné l'exemple d'un management orienté vers le client, ils finiront par être convaincus que c'est

Elle permet d’élaborer des référentiels métier, la formation-type du Correspondant Qualité (CQ) de l’organisme ; la communication auprès de la direction de l’organisme ; la

Par ailleurs, les résidents prennent leurs repas à 90% dans les lieux de restauration et un tiers d'entre eux se font servir le petit-déjeuner en chambre et sont satisfaits à 94% de

La dissection virtuelle a démontré son e ff icacité pour l’étude des nerfs des corps érectiles chez l’homme, elle avait retrouvé le même schéma organisationnel chez la femme,

La géométrie grecque mise en forme par Euclide est dans les grandes lignes, celle que nous enseignons dans les programmes de collège en y adjoignant les triangles semblables