Fondamentaux de la logique floue. Logique floue - Fondements mathématiques

Logique floue– logique basée sur la théorie des ensembles flous. Son sujet est la construction de modèles de raisonnement humain approximatif et leur utilisation dans systèmes informatiques. En logique floue, la limite d'évaluation a été étendue d'une évaluation à deux valeurs (soit 0 ou 1) à une évaluation illimitée à plusieurs valeurs (sur l'intervalle).

Un ensemble flou A dans un espace complet X est défini via la fonction d'appartenance m A (x) :

La logique de définition du concept d’ensemble flou ne contient aucun flou. Au lieu de spécifier une valeur spécifique (par exemple, 0,8), il est courant d'utiliser des valeurs inférieures et supérieures pour définir des limites d'évaluation acceptables (par exemple).

Dans le cas de la logique floue, vous pouvez créer un nombre illimité d'opérations, elle n'utilise donc pas opérations de base pour enregistrer le reste. Les extensions de NOT, AND, OR aux opérations floues sont particulièrement importantes. Ils sont appelés respectivement négation floue, norme t et norme s. Le nombre d’états étant illimité, il est impossible de décrire ces opérations à l’aide d’une table de vérité. Les opérations sont expliquées à l'aide de fonctions et d'axiomes et représentées à l'aide de graphiques.

Représentation axiomatique des opérations floues :

Déni flou

L'axiome N1 préserve la propriété du NON à double valeur, et N2 préserve la règle de la double négation. N3 – le plus significatif : la négation floue inverse la séquence des évaluations.

Une opération de négation floue typique est la soustraction de 1.

Lorsqu'elle est niée, la valeur 0,5 est centrale et généralement x et xθ prennent des valeurs symétriques par rapport à 0,5.

Norme T.

L'axiome T1 est valable, comme pour I clair. T2 et T3 sont les lois d'intersection et d'union. L'Axiome T4 est une exigence d'ordre.

Une norme t typique est l'opération min ou le produit logique :

Avec un produit logique, le graphique est construit symétriquement par rapport au plan formé par les inclinés x1 et x2.

Norme S.

Une norme s typique est une somme logique, définie par l'opération max.

En plus, il existe une somme algébrique, une somme limite et une somme drastique :

Comme le montrent les figures, l’ordre est inverse à celui de la norme t.

Des exemples de définition floue incluent la température et le fonctionnement des vannes :

Similitudes

La logique floue est une généralisation de la logique claire classique. La logique claire et la logique floue sont basées sur des ensembles et des opérations relationnelles. Les opérations floues sont une extension des opérations de logique précise.

Différences

En logique claire, les variables sont des membres à part entière d’ensembles, et en logique floue, elles ne sont que des membres partiels d’ensembles.

En logique claire, une affirmation est soit vraie, soit fausse, et la loi de l'élimination du milieu y opère. En logique floue, la vérité ou la fausseté n’est plus absolue et les affirmations peuvent être partiellement vraies et partiellement fausses. En logique claire, le nombre d'opérations possibles est fini et dépend du nombre d'entrées, alors qu'en logique floue, le nombre d'opérations possibles est infini.

3. Exemple

Nous allons d’abord considérer l’ensemble X de tous les nombres réels compris entre 0 et 10, que nous appellerons la zone d’étude. Maintenant, définissons un sous-ensemble X de tous les nombres réels compris entre 5 et 8.

UNE=

Imaginons maintenant l'ensemble UN en utilisant une fonction symbolique, c'est-à-dire cette fonction attribue le numéro 1 ou 0 à chaque élément de X, selon que l'élément appartient ou non à un sous-ensemble UN ou non. Cela donne le schéma suivant :

Nous pouvons interpréter les éléments auxquels est attribué le numéro 1 comme en tant qu'éléments qui sont dans l'ensemble A, et les éléments auxquels est attribué le numéro 0, comme éléments ne faisant pas partie de l'ensemble A.

Ce concept est suffisant pour de nombreux domaines d'application. Mais nous pouvons facilement trouver des situations dans lesquelles la flexibilité est perdue. Pour le montrer, considérons l'exemple suivant montrant la différence entre un ensemble flou et un ensemble net :

Dans cet exemple, nous voulons décrire un ensemble de jeunes. Plus formellement, nous pouvons désigner

B = (ensemble de jeunes)

Puisque, en général, l’âge commence à 0, la limite inférieure de cet ensemble doit être zéro. En revanche, la limite supérieure doit être déterminée. Pour la première fois, définissons la limite supérieure de l'ensemble, disons 20 ans. On obtient donc B comme un intervalle clair, à savoir :

B=

Maintenant, la question se pose : pourquoi quelqu'un est-il jeune le jour de son 20e anniversaire, mais pas jeune le lendemain ? Il s’agit évidemment d’un problème structurel, car si nous déplaçons la limite supérieure de 20 à un point arbitraire, nous pouvons poser la même question.

Une façon plus naturelle de décrire un ensemble B est d’assouplir la stricte division entre les jeunes et les non-jeunes. Nous y parviendrons en permettant non seulement une solution (claire) OUI : il/elle est parmi beaucoup de jeunes, ou NON : il/elle ne fait pas partie des jeunes, mais des expressions plus flexibles comme : Bon, il/elle appartient un peu plus au milieu des jeunes ou NON, il n'appartient guère à la multitude des jeunes.

Dans notre premier exemple, nous avons codé tous les éléments de la zone d'étude comme 0 ou 1. Un moyen simple de généraliser ce concept à un ensemble flou consiste à définir plus de valeurs entre 0 et 1. En fait, nous définissons une infinité d'options entre 0 et 1, à savoir l'intervalle unitaire Je =.

L’interprétation des nombres de l’ensemble flou attribué à tous les éléments de la zone d’étude est plus difficile. Bien entendu, encore une fois, le numéro 1 est attribué à l'élément afin d'identifier l'élément qui se trouve dans l'ensemble. B et 0 - la manière dont l'élément n'est pas défini dans l'ensemble B. Toutes les autres valeurs signifient appartenance progressiveà la multitude B.

Pour plus de clarté, nous montrons maintenant l'ensemble des jeunes, comme notre premier exemple, graphiquement à l'aide d'une fonction symbolique.

Avec cette méthode, les personnes de 25 ans continueront à jeune de 50 pour cent (0,5). Vous savez maintenant ce qu'est un ensemble flou.

Le 6 septembre 2017, Lotfi Zadeh, le créateur de la logique floue, est décédé à l'âge de 96 ans.
Le 6 septembre 2017, l'entreprise, basée sur les technologies de logique floue et de réseaux neuronaux, et dans laquelle je travaille actuellement, a entamé de telles transformations qui ne peuvent être décrites que dans le cadre de cette logique très floue. Et à partir de demain, mon contrat sera résilié, même si si à partir du 15 septembre je me retrouve au chômage, cela ne peut être évalué qu'en termes de logique étrange - par 0,28, 0,78 ou 1,58 - la vie nous le dira.
Et il y a deux ans, à l'occasion du 50e anniversaire de la logique floue, Alexandre Malyutine a écrit une note sur le site scientifique éphémère « Perelman rappellera » (nowwow.info). Ce site est désormais mort et l'article doit donc être sauvegardé. Après tout, un journaliste qui dirigeait autrefois les Izvestia a écrit sur une logique étrange. À propos, les blogueuses au foyer ne sont pas obligées de sortir - la logique étrange est expliquée à l'aide d'un exemple Machine à laver. Mieux vaut apprendre auprès des pros à écrire.

AU 50E ANNIVERSAIRE DE L'UN DES TERMES MATHÉMATIQUES LES PLUS RÉUSSIS

La logique floue a un demi-siècle - en juin 1965, l'article fondamental «Fuzzy Sets» a été publié dans la revue Information and Control, écrit par le mathématicien américain d'origine azerbaïdjanaise Lotfi Zadeh. Puisse-t-il vivre longtemps. Il est dommage que le mathématicien britannique d'origine tanzanienne, Ibrahim Mamdani, qui a présenté le premier système réel Contrôle à logique floue - un contrôleur qui surveille le fonctionnement de la machine à vapeur. Après quoi, la technologie a commencé à se développer activement et à trouver des applications dans de nombreux domaines.

Zadeh a été proposé il y a 50 ans description mathématique logique humaine vivante. Dans la logique mathématique ordinaire, il n'y a que « vrai » (également désigné par le chiffre 1) ou « faux » (0). En logique floue, le degré de vérité d'une affirmation peut être n'importe lequel, plus précisément n'importe quel nombre compris entre 0 et 1. Cette fille là-bas est-elle belle ? Ni oui ni non, mais « 0,78 ; qu'elle est belle."

Cela semble inhabituel. Comment pouvons-nous même comprendre cela ? Pour simplifier, nous pouvons supposer que quelqu'un a mené une enquête dans laquelle 78% des personnes interrogées ont qualifié la fille de belle, et les autres ne l'ont pas fait. De telles structures pourraient-elles être d’une utilité pratique ? Assez. Disons que vous devez décider d'envoyer ou non une fille à un concours Miss Something (une dépense importante !), et pour ce faire, vous devez évaluer ses chances de gagner un prix. C'est à ce moment-là que les évaluations non seulement de la beauté, mais aussi d'autres paramètres importants pour la victoire et également flous seront utiles : l'esprit, l'érudition, la gentillesse, etc. Il vous suffit de comprendre d'où obtenir les degrés de vérité et comment opérer avec données floues. Zadeh a compris. Il a développé l'appareil mathématique nécessaire à la pratique en 1973. Mamdani a créé son propre contrôleur basé sur celui-ci.

Le mérite de Lotfi Zadeh n’est pas seulement d’avoir développé une nouvelle théorie. Il l'a extrêmement bien nommé, choisissant un mot couramment utilisé. Si, au lieu de « flou », ils prenaient un terme abstrus, par exemple « logique à valeurs continues » (ce qui est d’ailleurs le cas), il n’aurait aucune chance de devenir largement connu. Les non-spécialistes n’utiliseraient tout simplement pas cette expression, car qui sait ce qu’elle signifie.

C'est une autre affaire quand concept scientifique il existe un homonyme domestique. Ensuite, il semble à la personne moyenne qu’elle comprend de quoi il s’agit, surtout s’il a vu le film à ce sujet. Il existe également de nombreux termes « compréhensibles » en mathématiques et en physique. Trou noir. Carré magique. Horizon des événements. Quark charmé. Théorème sur deux policiers. Et bien sûr – la matrice ! Qui ne sait pas que la matrice, c'est quand Keanu Reeves court au plafond. Et vous n’avez pas besoin de nous parler de certains tableaux contenant des chiffres.

Pour le développement de la science, les idées vulgaires du grand public sont utiles. Mots ordinaires Je devrais même ajouter. Faites plus de films sur l’horizon des événements. N'ayez pas peur des étirements et des erreurs. L'essentiel est que le spectateur ressente une touche à la pointe de la science et de la grandeur de l'humain et, par conséquent, de son esprit personnel. Surtout si les décisions concernant le financement de la recherche dépendent d’un tel spectateur.

L'éminent scientifique nucléaire soviétique Gueorgui Flerov a déclaré : « Vous devez expliquer un problème scientifique aux autorités importantes, non pas de la manière correcte, mais d'une manière qui leur sera compréhensible. C'est un pieux mensonge." Droite. Il n’est pas nécessaire de confondre la gestion avec des conférences sur les « violations spontanées de la symétrie électrofaible ». Parlez-nous mieux de la « particule divine » et du « grand mystère de la gravité ». Soit dit en passant, il n’y a pas de mensonge particulier là-dedans, mais il y a des investissements. Peu importe que les contes de fées pseudo-scientifiques suscitent des attentes exagérées et, par conséquent, une injection excessive d’argent, aboutissant à la ruine. Le bénéfice global l’emporte finalement. La bulle Internet a éclaté en 2001, mais la technologie Internet a reçu un puissant élan.

En ce sens, la logique floue a eu la chance non seulement d'avoir son propre nom, mais aussi d'être incluse dans la liste des sciences et technologies réunies sous le nom d'« intelligence artificielle » - avec les réseaux de neurones, programmation logique, systèmes experts, etc. Il s'agit déjà d'un grand jeu marketing, où les membres de la liste reçoivent l'effet d'un package publicitaire dans le cadre de la promotion d'une méga-marque scientifique unique. Sans blague : l’intelligence artificielle ! C’est une perspective fascinante qui ne pourrait être plus claire. Chaque maison a un serviteur en fer. Laissez les organismes cybernétiques intelligents faire tout le travail, et nous nous contenterons de saisir des codes PIN et de boire des pina coladas. Pour avoir une telle lumière au bout du tunnel, aucun argent n’est épargné.

Le « mensonge blanc » de Flerov utilisant l’intelligence artificielle comme exemple a fonctionné à 100 %. Le gouvernement japonais a dépensé un demi-milliard de dollars entre 1982 et 1992 pour développer un « ordinateur de cinquième génération » doté d’éléments de « réflexion ». Cela ne s'est pas déroulé comme prévu. En particulier, le langage de programmation logique Prolog, qui devait jouer un premier rôle dans les années 1980, a mal tourné. Bien, OK. C’est comme avec les entreprises point-com : dans certains pays, à la fin, on a quand même appris à fabriquer d’excellents robots.

Aujourd'hui, les systèmes cybernétiques voient, entendent et lisent presque comme les gens, battent les grands maîtres d'échecs et gèrent souvent plus efficacement que les spécialistes certifiés. processus de production. Outre les développeurs directs, il convient de remercier pour un développement aussi puissant du sujet les auteurs de la terminologie à succès, ainsi que Isaac Asimov, Arthur Clarke, les frères Wachowski et toute l'équipe du Gorky Film Studio, qui a donné aux enfants soviétiques des images d'interprètes robotiques.

Aucun cyborg intelligent n’a réellement été créé. Il n'est même pas possible d'affirmer avec certitude qu'en essayant de les créer, nous nous dirigeons vers dans la bonne direction. Pour voir cela, regardons comment fonctionne dans les termes les plus généraux une machine à laver « intelligente » qui, grâce à une unité de contrôle à logique floue, peut déterminer quand les vêtements sont « suffisamment propres » pour évacuer l’eau et commencer à essorer. L'exemple est également intéressant car il montre comment un résultat pratique est obtenu à l'intersection de plusieurs disciplines : physique, chimie et mathématiques.
La tâche du dispositif de contrôle de la machine est la suivante. Prendre comme données d'entrée sur le degré de contamination des vêtements et le type de contamination. Analysez-les et générez un paramètre de sortie : le temps de lavage.

Un capteur optique est responsable des deux indicateurs d'entrée, qui déterminent le degré de transparence de la solution de nettoyage. Par son degré de transparence, on peut juger du degré de contamination : plus les vêtements chargés dans la cuve sont sales, moins la solution est transparente. Et le type de contamination est déterminé par le taux de changement de la transparence de la solution. Les substances grasses ne se dissolvent pas bien, donc plus la concentration de la solution change lentement, plus vous devez faire face à une contamination grasse. Ça y est, le capteur a terminé son travail.

Notez qu'il a donné deux paramètres exacts, deux nombres spécifiques : le degré de transparence de la solution et le taux de variation de la transparence de la solution. C’est alors que l’algorithme d’Ibrahim Mamdani commence à fonctionner.

Dans la première étape, appelée fuzzification (introduction du flou), les deux nombres sont transformés en concepts flous. Disons que nous introduisons trois niveaux de pollution : « faible », « moyenne » et « forte ». Ensuite, au lieu du niveau de transparence de la solution, trois jugements flous sur la contamination apparaissent, disons : « 0,3 ; faible", "0,6 ; moyenne", "0,1 ; fort."

Que signifient ces chiffres ? Comme dans le cas de la jeune fille dont nous avons parlé de la beauté floue au début du texte, ils peuvent être considérés comme le résultat d'une sorte de référendum, au cours duquel 30 % des citoyens ont voté que la pollution à un niveau de transparence donné de la solution est faible, 60% - qu'il est moyen, 10% - qu'il est fort. Alors, est-ce que quelqu'un a organisé ce référendum ? Nous pouvons supposer que oui.

Lors du développement du produit, des experts en lavage en machine se sont réunis et ont compris comment les votes des « électeurs » se répartiraient en fonction du niveau de transparence de la solution. N'est-ce pas du charlatanisme, demandez-vous, les mathématiques sont une science exacte, quels sont les autres experts en blanchisserie ? Oui comme ça. Si vous souhaitez sérieusement résoudre un problème, vous trouverez des spécialistes compétents dont les estimations et évaluations seront significatives et utiles.

Nous avons donc un paramètre flou « degré de pollution », il nous en faut maintenant un deuxième : « type de pollution ». Nous organisons un autre « référendum ». Disons qu'il a montré qu'à un tel taux de changement de concentration de la solution que le capteur nous a donné, la contamination devrait être considérée, par exemple, « 0,2 ; faible teneur en matières grasses", "0,5 ; teneur moyenne en matières grasses", "0,3 ; teneur élevée en matières grasses.

Débute la deuxième étape de l’algorithme : l’application de règles floues. Nous discutons désormais avec des experts de la durée de lavage en fonction du degré et du type de salissure. Traverser tout options possibles, on obtient - trois fois trois - neuf règles du type suivant : « si la contamination est forte et moyennement grasse, alors le temps de lavage est long. » Ensuite, selon les lois de la logique (nous les ignorerons pour plus de simplicité), nous calculons le degré de vérité du temps de lavage. Soit le temps de lavage flou résultant : « 0,1 ; petit", "0,7 ; moyenne", "0,2 ; grand." Vous pouvez passer à l'étape finale.

C'est ce qu'on appelle la défuzzification, c'est-à-dire l'élimination du flou. Après tout, nous devons donner à la machine une indication exacte de la durée de rotation du tambour. Il existe différentes approches, l’une des plus courantes consiste à calculer le « centre de gravité ». Disons que les experts disent qu'un temps de lavage court est de 20 minutes, un temps de lavage moyen de 40 minutes et un temps de lavage long de 60 minutes. Ensuite, en tenant compte du « poids » de chaque valeur, on obtient le paramètre final : 20*0,1 + 40*0,7 + 60*0,2 = 42. Les vêtements seront « assez propres » après 42 minutes de lavage. Hourra.

Ibrahim Mamdani a inventé une belle chose, n'est-ce pas ? À première vue, c’est presque du chamanisme. Vous avez des nombres initiaux exacts et vous devez en obtenir d’autres nombres exacts. Mais vous ne vous penchez pas sur la dérivation des formules, mais vous vous plongez dans le monde des concepts flous, vous travaillez d'une manière ou d'une autre avec eux, puis vous revenez au monde « précis » - avec une réponse toute prête entre vos mains.

Les fabricants de machines à laver ont même commencé à annoncer l'utilisation de la logique floue et à écrire Fuzzy Logic, Fuzzy Control, Logic Control directement sur les produits ou dans les instructions. Les hommes d’affaires sont des gens pragmatiques et ne placent pas de mots au hasard sur leurs produits. Ainsi, si vous voyez l’inscription Fuzzy Logic sur une voiture, cela signifie : elle « vend » un produit. La technologie en plus de son aspect purement propriétés de consommation Il hypnotise également l'acheteur avec son nom, le motivant à se séparer d'une centaine de dollars supplémentaires. Je ne sais pas si Lotfi Zadeh en reçoit des redevances, mais ce serait juste. Aucune autre branche des mathématiques sur appareils ménagers pas mentionné.

Mais vous avez probablement remarqué qu'en décrivant le fonctionnement d'une machine à laver avec une logique floue, il n'y avait pas un seul endroit où l'on pouvait soupçonner que la machine avait son propre esprit. Uniquement des instructions comme celles de service, résolvant uniquement des problèmes programmés. La machine vidangera l'eau à temps. Mais elle ne comprendra pas ce qu’elle fait et pourquoi. L’idée d’arrêter de laver et de provoquer une inondation dans la salle de bain pour le plaisir ne viendra jamais dans sa tête de microprocesseur. À moins que cette pensée vienne à un programmeur qui, juste pour s'amuser, intégrera une autre Funny Logic dans la machine. La machine elle-même ne peut pas penser à une telle chose.

Voilà pour l’intelligence artificielle. Les robots apprennent seulement à imiter les activités humaines, même celles pour lesquelles nous déployons désormais des efforts intellectuels, par exemple traduire depuis une autre langue. Même s’ils traduisent mieux. Vous n’êtes pas offensé par la grue parce qu’elle est plus forte que vous. Et l’avènement des grues n’a pas entraîné la disparition des haltérophiles. Ce n'est que maintenant que soulever des poids est un sport et un plaisir, et il n'est plus nécessaire de transporter des sacs de ciment sur un chantier de construction. C'est la même chose avec les traductions. Le programme n'est pas plus intelligent que nous, nous avons simplement pu formaliser et y intégrer efficacement certaines de nos compétences, et maintenant nous ne pouvons plus gaspiller nos efforts intellectuels en traductions techniques, mais plutôt travailler, disons, sur Shakespeare.
Croire que les machines acquièrent de l’intelligence grâce à une cybernétique avancée, c’est comme croire au culte du cargo. Rappelez-vous comment les habitants de l'île perdue, voyant un avion dans le ciel, ont fabriqué la même silhouette en paille et pensaient qu'il volerait ? Ils ne connaissaient alors rien aux métaux et au kérosène, sans parler de la force de levage - et allez-y et expliquez-les.

Il en va de même pour nous avec « l’intelligence artificielle ». Les robots seront bientôt capables de conduire des voitures et battront probablement un jour une équipe de football - d'autant plus que ce moment est rapproché non seulement par les ingénieurs japonais, mais aussi par notre équipe nationale. Mais ce ne sera rien d’autre qu’une imitation d’actions raisonnables sur le terrain. Comme ces autochtones, nous ne connaissons pas encore quelque chose d’essentiel qui nous permettrait de créer un être intelligent.

Selon Stanislav Lem, nous aurons certainement un amplificateur de la capacité de conduire une voiture - tout comme nous avons déjà atteint un amplificateur de la capacité d'arrêter le lavage. Mais l’Intelligence Amplifier, dont l’apparition a été prédite par le grand écrivain de science-fiction, ne fonctionnera pas sur la base des technologies actuelles de « l’intelligence artificielle », y compris la logique floue, malgré toute son élégance et son utilité. La logique floue n'est qu'un moyen de réduire la quantité de calcul lors de la résolution d'une certaine classe de problèmes. Et merci pour ça.

Il n’y a pas lieu d’avoir peur des robots interprètes. Les affres de la créativité, les impulsions nobles, la recherche scientifique, la rêverie, la dignité, le sacrifice de soi, la volonté d'héroïsme, l'aventurisme, l'honneur, l'amitié, l'orgueil, les préjugés, l'envie, l'avidité, le plouc, l'arrogance, la méchanceté, la vulgarité, la dénonciation, les arnaques, les escroqueries , configurations - dans toutes ces nominations, nous obtiendrons de bien meilleurs résultats que nos petits frères semi-conducteurs pendant longtemps encore.

S.D. Shtovba "Introduction à la théorie des ensembles flous et de la logique floue"

1.7. Logique floue

La logique floue est une généralisation de la logique aristotélicienne traditionnelle au cas où la vérité est considérée comme une variable linguistique qui prend des valeurs comme : « très vrai », « plus ou moins vrai », « pas très faux », etc. Les significations linguistiques spécifiées sont représentées par des ensembles flous.

1.7.1. Variables linguistiques

Rappelons qu'une variable linguistique est une variable qui prend des valeurs à partir d'un ensemble de mots ou d'expressions d'une langue naturelle ou artificielle. Un tas de valeurs acceptables une variable linguistique est appelée un ensemble de termes. Définir la valeur d’une variable en mots, sans utiliser de chiffres, est plus naturel pour les humains. Chaque jour, nous prenons des décisions basées sur des informations linguistiques telles que : « très chaleur"; "long voyage"; "réponse rapide"; "beau bouquet"; "goût harmonieux", etc. Les psychologues ont découvert que dans le cerveau humain, presque toutes les informations numériques sont recodées verbalement et stockées sous forme de termes linguistiques. Le concept d'une variable linguistique joue un rôle important dans l'inférence floue et dans la prise de décision basée sur un raisonnement approximatif. Formellement, une variable linguistique est définie comme suit.

Définition 44.Variable linguistique est donné par cinq, où - ; Nom de variable; - ; ensemble de termes, dont chaque élément (terme) est représenté comme un ensemble flou sur l'ensemble universel ; - ; des règles syntaxiques, souvent sous forme de grammaire, donnant naissance aux noms de termes ; - ; des règles sémantiques qui spécifient les fonctions d'appartenance des termes flous générés par des règles syntaxiques.

Exemple 9. Considérons une variable linguistique appelée « température ambiante ». Les quatre autres peuvent alors être définis comme suit :

Tableau 4 - Règles de calcul des fonctions d'appartenance

Des graphiques des fonctions d'appartenance des termes « froid », « pas très froid », « confortable », « plus ou moins confortable », « chaud » et « très chaud » de la variable linguistique « température ambiante » sont présentés dans la Fig. 13.

Figure 13 - Variable linguistique « température ambiante »

1.7.2. Vérité floue

Une place particulière dans la logique floue est occupée par la variable linguistique « vérité ». En logique classique, la vérité ne peut prendre que deux sens : vrai et faux. En logique floue, la vérité est « floue ». La vérité floue est définie de manière axiomatique, et différents auteurs le font de différentes manières. L'intervalle est utilisé comme un ensemble universel pour définir la variable linguistique « vérité ». La vérité ordinaire et claire peut être représentée par des ensembles singleton flous. Dans ce cas, un concept clair correspondra véritablement à la fonction d’adhésion , et le concept clair est faux - ; , .

Pour définir la vérité floue, Zadeh a proposé les fonctions d'appartenance suivantes pour les termes « vrai » et « faux » :

;

Où - ; un paramètre qui détermine les porteuses des ensembles flous « vrai » et « faux ». Pour un ensemble flou « vrai », la porteuse sera l'intervalle , et pour un ensemble flou « faux » - ; .

Les fonctions d'appartenance des termes flous « vrai » et « faux » sont illustrées dans la Fig. 14. Ils sont construits avec la valeur du paramètre . Comme vous pouvez le constater, les graphiques des fonctions d’appartenance des termes « vrai » et « faux » sont des images miroir.

Figure 14 - Variable linguistique « vérité » selon Zadeh

Pour définir la vérité floue, Baldwin a proposé les fonctions d'appartenance suivantes pour le « vrai » et le « faux » flou :

Les quantificateurs « plus ou moins » et « très » sont souvent appliqués aux ensembles flous « vrai » et « faux », obtenant ainsi les termes « très faux », « plus ou moins faux », « plus ou moins vrai », « très vrai", "très, très vrai", "très, très faux", etc. Les fonctions d'appartenance de nouveaux termes sont obtenues en effectuant les opérations de concentration et d'étirement des ensembles flous « vrai » et « faux ». L'opération de concentration correspond à la mise au carré de la fonction d'appartenance, et l'opération d'étirement correspond à son élévation à la puissance ½. Par conséquent, les fonctions d'appartenance des termes « très, très faux », « très faux », « plus ou moins faux », « plus ou moins vrai », « vrai », « très vrai » et « très, très vrai » sont donné comme suit :

Les graphiques des fonctions d'appartenance de ces termes sont présentés dans la Fig. 15.

Figure 15 - Variable linguistique « vérité » selon Baldwin

1.7.3. Flou opérations logiques

Tout d’abord, rappelons brièvement les principes de base de la logique ordinaire (booléenne). Considérons deux affirmations A et B, chacune pouvant être vraie ou fausse, c'est-à-dire : prendre les valeurs "1" ou "0". Pour ces deux déclarations au total, il existe diverses opérations logiques, dont cinq seulement sont interprétées de manière significative : ET (), OU (), OU exclusif (), implication () et équivalence (). Les tables de vérité pour ces opérations sont données dans le tableau. 5.

Tableau 5 - Tables de vérité de la logique booléenne

Supposons qu'un énoncé logique puisse prendre non pas deux valeurs de vérité, mais trois, par exemple : « vrai », « faux » et « incertain ». Dans ce cas, nous n'aurons pas affaire à une logique à deux valeurs, mais à une logique à trois valeurs. Le nombre total d'opérations binaires, et donc de tables de vérité, en logique à trois valeurs est égal à . La logique floue est un type de logique à valeurs multiples dans laquelle les valeurs de vérité sont spécifiées par des variables linguistiques ou des termes de la variable linguistique « vérité ». Les règles permettant d'effectuer des opérations de logique floue sont obtenues à partir d'opérations logiques booléennes utilisant le principe de généralisation.

Définition 45. Notons les variables logiques floues par et , et les fonctions d'appartenance qui spécifient les valeurs de vérité de ces variables par et , . Opérations logiques floues ET(), OU(),
NOT () et implication () sont exécutés selon les règles suivantes :

;

En logique à valeurs multiples, les opérations logiques peuvent être spécifiées par des tables de vérité. En logique floue, le nombre de valeurs de vérité possibles peut être infini, donc en général, une représentation tabulaire des opérations logiques est impossible. Cependant, sous forme de tableau, il est possible de présenter des opérations de logique floue pour Quantité limitée valeurs de vérité, par exemple, pour un ensemble de termes (« vrai », « très vrai », « pas vrai », « plus ou moins faux », « faux »). Pour une logique à trois valeurs avec des valeurs de vérité floues T - ; "vrai", F - ; « faux » et T+F - « inconnu » L. Zade a proposé les tables de vérité linguistiques suivantes :

En appliquant les règles pour effectuer des opérations de logique floue de la définition 45, nous pouvons étendre les tables de vérité pour plus termes Voyons comment procéder à l'aide de l'exemple suivant.

Exemple 10. Les valeurs de vérité floue suivantes sont données :

En appliquant la règle de la définition 45, nous trouvons la vérité floue de l’expression « presque vrai OU vrai » :

Comparons l’ensemble flou obtenu avec l’ensemble flou « plus ou moins vrai ». Ils sont presque égaux, ce qui signifie :

À la suite de l'exécution d'opérations logiques, on obtient souvent un ensemble flou qui n'est équivalent à aucune des valeurs de vérité floues introduites précédemment. Dans ce cas, il faut trouver parmi les valeurs de vérité floue celle qui correspond au maximum au résultat de l'opération logique floue. En d’autres termes, il est nécessaire d’effectuer ce qu’on appelle approximation linguistique, qui peut être considéré comme un analogue de l'approximation d'une distribution statistique empirique avec des fonctions de distribution standard de variables aléatoires. A titre d'exemple, nous présentons les tables de vérité linguistiques proposées par Baldwin pour celles présentées dans la Fig. 15 valeurs de vérité floues :

vague

vague

vague

vague

vague

vague

vague

vague

très vrai

très vrai

plus ou moins vrai

plus ou moins vrai

1.7.3. Base de connaissances floue

Définition 46.Base de connaissances floue est un ensemble de règles floues « Si-alors » qui déterminent la relation entre les entrées et les sorties de l'objet étudié. Le format général des règles floues est :

Sirègles de paquet,Queconclusion de la règle.

La prémisse de la règle ou de l'antécédent est une déclaration comme « x est faible », où « faible » est un terme (signification linguistique) défini par un ensemble flou sur l'ensemble universel de la variable linguistique x. Quantificateurs « très », « plus ou moins », « pas », « presque », etc. peut être utilisé pour modifier les termes antécédents.

La conclusion ou la conséquence d'une règle est une déclaration du type « y est d », dans laquelle la valeur de la variable de sortie (d) peut être donnée :

  1. terme flou : « y est élevé » ;
  2. classe de solutions : « j’ai une bronchite »
  3. une constante claire : "y=5" ;
  4. une fonction claire des variables d'entrée : "y=5+4*x".

Si la valeur de la variable de sortie dans une règle est spécifiée par un ensemble flou, alors la règle peut être représentée par une relation floue. Pour la règle floue « Si x est, alors y est », la relation floue est spécifiée sur le produit cartésien, où - ; ensemble universel de variables d’entrée (sortie). L'implication floue et la norme t peuvent être utilisées pour calculer une relation floue. Lorsqu'on utilise l'opération de recherche du minimum comme norme t, le calcul de la relation floue s'effectue comme suit :

Exemple 11. La base de connaissances floue suivante décrit la relation entre l'âge du conducteur (x) et la possibilité d'un accident de la route (y) :

Six = Jeune,Quey = Élevé ;

Six = Moyenne,Quey = Faible ;

Six = Très vieux,Quey = Élevé.

Soit les fonctions d'appartenance des termes ayant la forme montrée sur la Fig. 16. Alors les relations floues correspondant aux règles de la base de connaissances seront comme sur la Fig. 17.

Figure 16 - Fonctions d'adhésion à terme

Figure 17 - Relations floues correspondant aux règles de la base de connaissances de l'exemple 11

Pour spécifier les dépendances d'entrée-sortie multidimensionnelles, les opérations logiques floues AND et OR sont utilisées. Il est pratique de formuler les règles de telle sorte qu'au sein de chaque règle, les variables soient combinées par l'opération logique ET et que les règles de la base de connaissances soient reliées par l'opération OU. Dans ce cas, la base de connaissances floue reliant les entrées avec output , peut être représenté sous la forme suivante.

Logique floue (logique floue) est apparu comme le moyen le plus pratique de construire des complexes processus technologiques, et a également trouvé une application dans l'électronique grand public, le diagnostic et autres systèmes experts. L'appareil mathématique de logique floue a été développé pour la première fois aux États-Unis au milieu des années 60 du siècle dernier, en développement actif cette méthode a également commencé en Europe.

La logique classique se développe depuis l'Antiquité. Aristote est considéré comme son fondateur. La logique nous est connue comme une science rigoureuse qui a de nombreuses applications appliquées : par exemple, le principe de fonctionnement de tous ordinateurs modernes. En même temps, la logique classique a un inconvénient majeur- avec son aide, il est impossible de décrire de manière adéquate la pensée associative d'une personne. La logique classique fonctionne avec seulement deux concepts : VRAI et FAUX (1 ou 0 logique), et à l'exclusion de tout valeurs intermédiaires. Tout cela est bon pour des ordinateurs, mais essayez d'imaginer le monde entier qui vous entoure uniquement en noir et blanc, en excluant également du langage toute réponse à des questions autres que OUI et NON. Dans une telle situation, on ne peut que sympathiser.

Les mathématiques traditionnelles, avec leurs formulations de lois précises et sans ambiguïté, reposent également sur la logique classique. Et puisque les mathématiques, à leur tour, sont un outil universel pour décrire les phénomènes du monde environnant dans toutes les sciences naturelles (physique, chimie, biologie, etc.) et leurs applications appliquées (par exemple, théorie de la mesure, théorie du contrôle, etc. ), il n’est pas surprenant que toutes ces sciences fonctionnent avec des données mathématiquement précises, telles que : « la vitesse moyenne d’une voiture sur un tronçon de voie de 62 km de long était de 93 km/h ». Mais est-ce qu’une personne pense vraiment selon de telles catégories ? Imaginons que le compteur de vitesse de votre voiture soit en panne. Cela signifie-t-il que vous êtes désormais privé de la capacité d'évaluer la vitesse de votre mouvement et que vous n'êtes pas en mesure de répondre à des questions telles que « êtes-vous rentré rapidement chez vous hier ? Bien sûr que non. Très probablement, vous direz quelque chose en réponse à la réponse : "Oui, assez rapidement". En fait, vous répondrez probablement dans le même esprit, même si le compteur de vitesse de votre voiture était en parfait état, puisque lorsque vous voyagez, vous n'avez pas l'habitude de surveiller en permanence ses lectures en temps réel. Autrement dit, dans notre pensée naturelle, en ce qui concerne la vitesse, nous avons tendance à fonctionner non pas avec des valeurs exactes en km/h ou en m/s, mais avec des estimations approximatives telles que : « lent », « moyen », « rapide ». » et d'innombrables demi-teintes et estimations intermédiaires : « traîné comme une tortue », « roulé lentement », « n'est pas sorti du flux », « a roulé assez vite », « s'est précipité comme un fou », etc.

Si nous essayons d’exprimer graphiquement nos idées intuitives sur la vitesse, nous obtiendrons quelque chose comme la figure ci-dessous.

Ici le long de l'axe X les valeurs de vitesse sont tracées en notation mathématique stricte traditionnelle, et le long de l'axe Oui- soi-disant fonction d'adhésion (varie de 0 à 1) valeur exacte de la vitesse à ensemble flou , désigné par l'une ou l'autre valeur variable linguistique « vitesse » : très faible, faible, moyenne, élevée et très élevée. Il peut y avoir moins ou plus de ces gradations (granules). Plus la granularité des informations floues est grande, plus elles se rapprochent d'une estimation mathématiquement précise (n'oublions pas que les informations de mesure exprimées sous forme traditionnelle comportent toujours une certaine erreur et sont donc, dans un certain sens, également floues). Ainsi, par exemple, une valeur de vitesse de 105 km/h appartient à l’ensemble flou « élevé » avec une valeur de fonction d’appartenance de 0,8, et à l’ensemble « très élevé » avec une valeur de 0,5.

Un autre exemple est l'estimation de l'âge d'une personne. Souvent, nous n'avons absolument aucun information précise sur l'âge de telle ou telle personne que nous connaissons et donc, en répondant à la question correspondante, nous sommes obligés de donner une appréciation vague comme : « il a 30 ans » ou « il a largement plus de 60 ans », etc. De telles valeurs ​​de la variable linguistique « âge » sont particulièrement souvent utilisés comme : « jeune », « d'âge moyen », « vieux », etc. La figure ci-dessous montre une vue graphiquement possible de l'ensemble flou « âge = jeune » (évidemment, du point de vue d'une personne qui elle-même n'a pas plus de 20 ans ;)

Les nombres flous obtenus à la suite de « mesures pas tout à fait précises » sont à bien des égards similaires (mais pas identiques ! Voir l'exemple avec deux bouteilles) aux distributions de la théorie des probabilités, mais sont exempts des inconvénients inhérents à cette dernière : un petit nombre des fonctions de distribution adaptées à l'analyse, la nécessité de forcer leur normalisation, le respect des exigences d'additivité, la difficulté de justifier l'adéquation de l'abstraction mathématique pour décrire le comportement des grandeurs réelles. Par rapport aux méthodes exactes et surtout probabilistes, les méthodes floues de mesure et de contrôle peuvent réduire considérablement la quantité de calculs effectués, ce qui, à son tour, conduit à une augmentation de la vitesse des systèmes flous.

Comme déjà mentionné, l'appartenance de chaque valeur exacte à l'une des valeurs de la variable linguistique est déterminée au moyen d'une fonction d'appartenance. Son apparence peut être complètement arbitraire. Le concept des fonctions d'appartenance standard est désormais né (voir figure ci-dessous).

Caractéristiques standards les accessoires sont facilement applicables pour résoudre la plupart des problèmes. Cependant, si vous devez résoudre un problème spécifique, vous pouvez choisir une forme de fonction d'adhésion plus appropriée et obtenir de meilleurs résultats pour le système qu'en utilisant les fonctions de la forme standard.

Le processus de construction (graphique ou analytique) de la fonction d'appartenance de valeurs exactes dans un ensemble flou est appelé fuzzification données.

Un article standard sur la logique floue souffre généralement de deux choses :

  1. Dans 99% des cas, l'article traite exclusivement de l'application de la logique floue dans le contexte des ensembles flous, ou plutôt de l'inférence floue, et plus précisément encore de l'algorithme de Mamdani. Il semble que ce soit la seule façon d’appliquer la logique floue, mais ce n’est pas le cas.
  2. Presque toujours, l’article est rédigé en langage mathématique. Génial, mais les programmeurs utilisent un langage différent avec des notations différentes. Par conséquent, il s'avère que l'article est tout simplement incompréhensible pour ceux qui, semble-t-il, devraient être utiles.
Tout cela est triste car la logique floue est l'une des les plus grands accomplissements mathématiques du XXe siècle, si l'avantage pratique est pris comme critère. Dans cet article, je vais essayer de montrer à quel point il s'agit d'un outil de programmation simple et puissant - tout aussi simple, mais beaucoup plus puissant qu'un système d'exploitation logique classique.

Le fait le plus remarquable concernant la logique floue est qu’elle est principalement logiques. Depuis les débuts de la logique mathématique, on sait que toute fonction logique peut être représentée par une forme normale disjonctive ou conjonctive, d'où il résulte que pour mettre en œuvre le calcul propositionnel, seules trois opérations suffisent : conjonction (&&), disjonction (||) et négation (!). En logique classique, chacune de ces opérations est spécifiée par une table de vérité :

Un b || un b & & un ! -------- -------- ---- 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 1 1 1
En logique floue, contrairement à la logique classique, au lieu de quantités vrai Et mensonge valeur utilisée degré de vérité, en prenant n'importe quelle valeur d'un ensemble infini de 0 à 1 inclus. Par conséquent, les opérations logiques ne peuvent plus être représentées dans des tableaux. En logique floue, ils sont spécifiés par des fonctions.

Il existe deux manières d'implémenter la disjonction et la conjonction :

Approche #Maximin : un || b => max(a, b) a && b => min(a, b) #Approche colorométrique : a || b => a + b - a * b a && b => a * b
La négation est donnée de la seule manière (ce n’est pas difficile à deviner) :

UNE => 1 - une
Il est facile de vérifier que pour les cas extrêmes - lorsque les valeurs des variables sont exclusivement 1 ou 0 - les fonctions ci-dessus donnent des tables de vérité pour les opérations de logique classique. Prêt! Nous disposons désormais d’une logique avancée incroyablement puissante, simple et pourtant entièrement compatible avec la logique classique dans les cas extrêmes. Ainsi, partout où nous [programmeurs] utilisons des expressions logiques, pouvons-nous utiliser des expressions de logique floue ? Pas vraiment.

Le fait est que tous les opérateurs de langage de programmation nécessitent des conditions claires, donc à un moment donné, vous devez toujours obtenir un critère de déclenchement clair à partir d'un degré de vérité flou. Ceci est similaire à ce qui se passe dans monde quantique: Tant que le système évolue conformément à l'équation de Schrödinger, son état quantique change de manière déterministe et continue, mais dès que nous touchons le système, un saut quantique se produit et le système s'effondre dans l'un des états discrets. En logique floue, cela s’appelle la défuzzification. La nature transforme simplement un état quantique en probabilité et lance les dés, mais de manière générale, il existe différentes méthodes de défuzzification. Je n'approfondirai pas ce sujet, car son volume nécessite un article séparé. Permettez-moi simplement de mentionner que la méthode de défuzzification doit être choisie en tenant compte de la sémantique du problème.

À titre d'exemple, imaginez un système de contrôle de fusée qui utilise une logique floue pour éviter les obstacles. Imaginons que la fusée vole droit vers le haut de la montagne et que le système de contrôle calcule la solution : voler vers la droite - 0,5, voler vers la gauche - 0,5. Si vous utilisez la défuzzification en utilisant la méthode du centre de masse, le système de contrôle donnera l'ordre de voler tout droit. Boom! Évidemment, dans ce cas, la bonne décision est de lancer les dés et de recevoir l'ordre « gauche » ou « droite » avec une probabilité de 50 %.

Dans le cas le plus simple, lorsque vous devez prendre une décision basée sur le degré de vérité, vous pouvez diviser l'ensemble en intervalles et utiliser if-else-if.

Si la logique floue est utilisée pour effectuer une recherche à l’aide d’un critère flou, la défuzzification n’est peut-être pas du tout nécessaire. En effectuant des comparaisons, nous obtiendrons un certain degré de valeur d'égalité pour chaque élément de l'espace de recherche. Nous pouvons définir un certain degré minimum d'égalité, en dessous duquel nous ne nous intéressons pas ; pour les éléments restants, le degré d'égalité sera la pertinence, par ordre décroissant dont nous trierons les résultats et laisserons l'utilisateur décider quel résultat est correct.

A titre d'exemple, je vais donner l'utilisation de la logique floue pour résoudre un problème avec lequel je m'amusais à l'université - c'est le problème de recherche caractère chinois selon l'image.

J'ai immédiatement rejeté l'idée de reconnaître tout gribouillage dessiné par l'utilisateur sur l'écran (c'était alors un écran de PDA). Au lieu de cela, le programme proposait de choisir un type de trait parmi 23 déterminés par les règles de la calligraphie japonaise. Après avoir choisi le type d'entité, l'utilisateur a dessiné un rectangle dans lequel l'entité s'inscrivait. En fait, le hiéroglyphe – à la fois saisi et stocké dans le dictionnaire – était représenté comme un ensemble de rectangles pour lesquels un type était défini.

Comment déterminer l’égalité des hiéroglyphes dans une telle représentation ? Pour commencer, formulons le critère dans un énoncé clair :

Les hiéroglyphes A et B sont égaux si et seulement si pour chaque trait dans A il y a un trait égal dans B et pour chaque trait dans B il y a un trait égal dans A.

Il est implicitement supposé que les hiéroglyphes ne contiennent pas de traits en double, c'est-à-dire que si un certain trait coïncide avec un trait dans un autre hiéroglyphe, il ne peut alors coïncider avec aucun autre trait dans le même hiéroglyphe.

L'égalité des traits peut être définie comme suit :

Les traits sont égaux si et seulement s'ils sont du même type et que leurs rectangles occupent la même surface.

Ces deux définitions nous donnent un système d'instructions suffisant pour mettre en œuvre l'algorithme de recherche.

Tout d’abord, construisons la matrice E comme suit :

Pour i dans 1..n pour j dans 1..n E = A[i] == B[j] end end #A et B sont des hiéroglyphes ; A[i] et B[j] sont leurs caractéristiques, et l'opérateur "==" calcule leur égalité floue. #On suppose que les deux hiéroglyphes ont le même nombre de caractéristiques - n.
Puis on ferme cette matrice dans le vecteur M[n] :

Pour i in 1..n M[i] = E.max_in_row(i) end #La méthode max_in_row calcule la valeur maximale dans une ligne matricielle.
J'utilise l'approche maximin car, en pratique, l'approche colorométrique produit des valeurs trop petites pour les conjonctions. Si nous nous souvenons que max est une disjonction, il s’avère que nous calculons l’énoncé selon lequel i-ème fonctionnalité A est égal au premier coup de B ou au deuxième ou troisième, etc. Ainsi, M est un vecteur de correspondances entre les caractéristiques A et les caractéristiques B.

#Juste une conjonction floue. e = M.min #Ou comme ceci : e = M.sum / M.length #(rapport de la somme des éléments à la longueur du vecteur).
Les deux méthodes fonctionnent, mais de différentes manières, et la deuxième méthode fonctionne même si vous comparez clairement les fonctionnalités. Laquelle est la plus correcte est une question philosophique.

Il faudrait dire quelques mots supplémentaires sur la comparaison des traits. Selon la définition, l'égalité des traits est la conjonction de deux conditions : l'égalité des types et l'égalité des rectangles. Les traits de certains types sont très similaires. Lors de la saisie, l'utilisateur peut facilement les confondre, il vaut donc la peine d'avoir un tableau de similarité dont les valeurs refléteront la similitude de la caractéristique i avec la caractéristique j (il y en aura naturellement sur la diagonale principale). Comme degré d'égalité des rectangles, on peut prendre le rapport de l'aire de leur intersection à l'aire du plus grand rectangle.

En général, le champ d’application de la logique floue est très étendu. Dans n'importe quel algorithme, dans n'importe quel système de règles, essayez de remplacer la vérité et le mensonge par le degré de vérité et, peut-être, ce système de règles ou cet algorithme reflétera plus précisément la réalité. Après tout, nous vivons dans un monde fondamentalement flou.