43 votes

Quelle est la logique floue?

Je travaille avec un couple d'algorithmes d'IA à l'école et je trouve que les gens utilisent les mots de la Logique Floue pour expliquer une situation qu'ils peuvent résoudre avec un couple de cas. Quand je retourne les livres que je viens de lire sur la façon au lieu d'un état passe de on à Off, c'est une ligne diagonale et quelque chose peut être dans deux états, mais dans les différents "niveaux".

J'ai lu l'article de wikipédia et un couple de tutoriels et même programmé des trucs qui "utilise la logique floue" (un détecteur de bord et 1 roue de l'auto-contrôlé robot) et encore je trouve qu'il est très déroutant aller de la Théorie à Code... pour vous, dans le moins compliqué définition, ce qui est logique floue?

38voto

chaos Points 69029

La logique floue est la logique de l'état d'adhésion est, essentiellement, un flotteur avec la gamme 0..1 au lieu d'un int 0 ou 1. Le kilométrage que vous sortir de cela est que des choses comme, par exemple, les modifications que vous effectuez dans un système de contrôle sont en quelque sorte naturellement plus affinée que ce que vous obtiendriez avec naïve de la logique binaire.

Un exemple pourrait être logique qui annule la limitation de l'activité du système basé sur les connexions TCP actives. Dites-vous définir "un peu trop grand nombre de connexions TCP sur votre machine en tant que 1000 et "beaucoup trop", en 2000. À un moment donné, votre système a un "trop grand nombre de connexions TCP" état 0 (<= 1000) à 1 (>= 2000), que vous pouvez utiliser comme un coefficient à appliquer quelle que soit la limitation des mécanismes disponibles. C'est beaucoup plus tolérant et sensible de comportement du système que naïfs logique binaire qui ne sait comment faire pour déterminer "trop", et la manette des gaz complètement, ou "pas trop", et pas de gaz en tous.

37voto

SnOrfus Points 6457

Je tiens à ajouter aux réponses (qui ont été modded up), une bonne façon de visualiser la logique floue est la suivante:

Traditionnellement, avec une logique binaire, vous auriez un graphe dont les membres de la fonction est vrai ou faux alors que dans une logique floue système, les membres de la fonction ne l'est pas.

1|
 | /\
 | / \
 | / \
0|/ \
------------
 a b c d

Supposer une seconde que la fonction est "j'aime les cacahuètes"

un. kinda aime les cacahuètes
b. aime vraiment les arachides
c. kinda aime les cacahuètes
d. n'aime pas les cacahuètes

La fonction elle-même n'a pas à être de forme triangulaire n'est pas souvent (c'est plus facile avec l'ascii art).

Un flou système aura probablement beaucoup de ceux-ci, certains peuvent même se chevaucher (voire opposés) comme suit:

1| UN B
 | /\ /\ A = Aime Les Cacahuètes
 | / \/ \ B = N'Aime pas les Cacahuètes
 | / /\ \
0|/ / \ \
------------
 a b c d

alors maintenant, c est "la nature aime les cacahuètes, un peu n'aime pas les cacahuètes" et d "n'est pas vraiment comme les arachides"

Et vous pouvez les programmer en conséquence en fonction de cette info.

Espérons que cela aide pour les apprenants visuels là-bas.

11voto

hevi Points 523

La meilleure définition de la logique floue est donné par son inventeur, Lotfi Zadeh; la "logique Floue moyens de représenter des problèmes pour les ordinateurs d'une manière semblable à la façon dont les humains à les régler et à l'essence de la logique floue, c'est que tout est une question de degré."

Le sens de la résolution de problèmes avec les ordinateurs semblable à la façon dont les humains résoudre peut facilement être expliqué par un exemple simple d'un jeu de basket-ball; si un joueur veut à la garde d'un autre joueur tout d'abord, il devrait envisager de quelle hauteur il est et comment ses compétences de jeu sont. Simplement, si le joueur qu'il veut la garde est grand et joue très lent par rapport à lui, alors il va utiliser son instinct afin de déterminer à prendre en compte s'il devait se garder de ce joueur comme il y a une incertitude pour lui. Dans cet exemple, le point important est que les propriétés sont relatives au joueur et il y a un degré de la hauteur et de compétences de lecture pour le joueur rival. La logique floue fournit de façon déterministe, pour cette situation incertaine.

Il ya quelques étapes de processus de la logique floue (Figure-1). Ces étapes sont: premièrement fuzzification où croustillant entrées converties floue entrées deuxièmement, ces entrées peuvent être traités avec des règles floues pour créer des flous de sortie et enfin defuzzification dont les résultats avec degré de résultat comme en logique floue il peut y avoir plus d'un résultat avec des degrés différents.

image004 Figure 1 – Floue Étapes Du Processus (David M. Bourg P. 192)

Pour illustrer le flou procee étapes, le précédent jeu de basket-ball, la situation pourrait être utilisé. Comme mentionné dans l'exemple, le joueur rival est grande avec de 1,87 mètres qui est assez grande, par rapport à notre joueur et peut jouent avec des avec 3 m/s qui est lent par rapport à notre joueur. Outre ces données, certaines règles sont nécessaires pour envisager qui sont appelés les règles floues telles que;

if player is short but not  fast then guard,
if player is fast but not short then don't guard
If player is tall then don't guard
If player is average tall and average fast guard

image005 Figure 2 – quelle est la taille de

image007 Figure 3 - comment rapide

Selon les règles et les données d'entrée, de sortie sera créé par floue système tels que; le degré de garde est de 0,7, le degré de parfois de la garde est de 0,4 et de ne jamais la garde est de 0,2.

image009

Figure 4-sortie des ensembles flous

Sur la dernière étape, defuzzication, est à l'aide pour la création d'un croustillant de sortie qui est un nombre qui peut déterminer l'énergie que nous devrions utiliser pour garder le joueur pendant le jeu. Le centre de masse est une méthode commune pour créer la sortie. Sur cette phase, le poids pour calculer la moyenne de point est dépend totalement de la mise en œuvre. Sur cette application, il est envisagé de donner un poids important à la garde ou ne garde mais de faible poids parfois de la garde. (David M. Bourg, 2004)

image012

Figure 5 - flou de sortie (David M. Bourg P. 204)

Sortie = [0.7 * (-10) + 0.4 * 1 + 0.2 * 10] / (0.7 + 0.4 + 0.2) ≈ -3.5

Comme une suite logique floue est l'utilisation dans des conditions d'incertitude à prendre une décision et le degré de la décision. Le problème de la logique floue est que le nombre d'entrées d'augmenter le nombre de règles augmentation exponentielle.

pour plus d'informations et son application possible dans un jeu, j'ai écrit un petit article pour vérifier cela

6voto

Alan Points 4249

Pour se développer à partir du chaos " réponse, une logique formelle n'est rien, mais un ensemble défini de façon inductive que les cartes des phrases à une évaluation. Au moins, c'est comment un modèle théoricien de la pense de la logique. Dans le cas d'un sentential la logique booléenne:

 (basis clause) For all A, v(A) in {0,1}
 (iterative) For the following connectives,
   v(!A) = 1 - v(A)
   v(A & B) = min{v(A), v(B)}
   v(A | B) = max{v(A), v(B)}
 (closure) All sentences in a boolean sentential logic are evaluated per above.

Une logique floue changements seraient inductif définis:

 (basis clause) For all A, v(A) between [0,1]
 (iterative) For the following connectives,
   v(!A) = 1 - v(A)
   v(A & B) = min{v(A), v(B)}
   v(A | B) = max{v(A), v(B)}
 (closure) All sentences in a fuzzy sentential logic are evaluated per above.

Avis la seule différence dans la logique sous-jacente est l'autorisation pour évaluer une phrase comme ayant la "valeur de vérité" de 0.5. Une question importante pour un modèle de logique floue est le seuil qui compte pour la satisfaction de la vérité. C'est à se demander: pour une valuation v(A), pour quelle valeur de D, c'est le cas de la v(A) > D signifie que l'Un est satisfait.

Si vous voulez vraiment plus au sujet de non classiques logiques comme la logique floue, je vous recommande soit Une Introduction à la Non-Classique de la Logique: De Si pour Est ou de Possibilités et Paradoxe

En mettant mon codeur chapeau sur le dos, je serais prudent avec l'utilisation de la logique floue dans le monde réel de la programmation, en raison de la tendance d'une logique floue pour être indécidable. C'est peut-être trop de complexité pour peu de gain. Par exemple, un supervaluational logique peut faire tout aussi bien à l'aide d'un modèle de programme d'imprécision. Ou peut-être de probabilité serait assez bon. En bref, j'ai besoin d'être convaincu que le modèle de domaine s'articule avec une logique floue.

3voto

Jonathan Leffler Points 299946

Eh bien, vous avez pu lire les œuvres de Bart Kosko, l'un des " pères fondateurs. 'Flou de la Pensée: La Nouvelle Science de la Logique Floue"de 1994 est lisible (et disponible à peu de frais d'occasion via Amazon). Apparemment, il a un nouveau livre 'le Bruit' a partir de 2006, ce qui est également tout à fait abordable.

En gros (je paraphrase - ne pas avoir lu le premier de ces livres depuis plusieurs années maintenant), la logique floue est sur la façon de traiter avec le monde où quelque chose est peut-être 10% cool, 50% au chaud, et 10% à chaud, où les différentes décisions peuvent être faites sur le degré auquel les différents états sont vraies (et non, elle n'était pas totalement un hasard que ces pourcentages ne pas ajouter jusqu'à 100% - si j'avais accepter la correction si nécessaire).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X