Question

Je travaille avec quelques algorithmes AI à l'école et je trouve les gens utilisent les mots pour expliquer la logique floue toute situation qu'ils peuvent résoudre avec quelques cas. Quand je reviens aux livres que je viens de lire sur la façon dont au lieu d'un état allant de On à Off, il est une ligne diagonale et quelque chose peut être dans les deux Etats, mais dans les différents « niveaux ».

J'ai lu l'entrée wikipedia et quelques tutoriels et même des trucs programmés que « utilise la logique floue » (un détecteur de bord et un robot auto-contrôle 1 roues) et encore je trouve très confus allant de la théorie à la code ... pour vous, dans la définition moins compliquée, ce qui est logique floue?

Était-ce utile?

La solution

La logique floue est une logique où l'appartenance de l'État est, essentiellement, un flotteur avec une plage 0..1 au lieu d'un int 0 ou 1. Le kilométrage vous en sortir est que des choses comme, par exemple, les modifications que vous apportez dans un système de contrôle sont un peu naturellement plus fine que ce que vous obtiendriez avec la logique binaire naïve.

Un exemple pourrait être logique qui étrangle l'activité du système de retour en fonction des connexions TCP actives. Supposons que vous définissez « un peu trop de » l'état des connexions TCP sur votre machine 1000 et « beaucoup trop » en 2000. À un moment donné, votre système a un « trop grand nombre de connexions TCP » de 0 (<= 1000) à 1 (> = 2000), que vous pouvez utiliser comme coefficient dans l'application de tout mécanisme d'étranglement dont vous disposez. Cela est beaucoup plus tolérant et sensible au comportement du système de logique binaire naïf qui ne sait comment déterminer « trop », et accélérer brusquement et complètement, ou « pas trop », et non étrangle du tout.

Autres conseils

Je voudrais ajouter aux réponses (qui ont été modded vers le haut) qui, une bonne façon de visualiser la logique floue est la suivante:

Traditionnellement, la logique binaire que vous avez un graphique dont la fonction d'appartenance est vrai ou faux alors que dans un système logique floue, la fonction d'appartenance est pas.

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

Supposons un instant que la fonction est « aime arachides »

a. kinda likes peanuts
b. really likes peanuts
c. kinda likes peanuts
d. doesn't like peanuts

La fonction elle-même ne doit pas être triangulaire et est souvent (il est juste plus facile avec l'art ascii).

Un flou système probablement beaucoup d'entre eux, certains même se chevauchent (même opposés) comme ceci:

1|   A    B
 |   /\  /\      A = Likes Peanuts
 |  /  \/  \     B = Doesn't Like Peanuts
 | /   /\   \
0|/   /  \   \
 ------------
  a  b  c d

maintenant c est « type aime les arachides, un peu comme ne arachides pas » et d est « ne pas vraiment peanuts »

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

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

La meilleure définition de la logique floue est donnée par son inventeur Lotfi Zadeh :

  

« moyen de logique floue de représenter des problèmes aux ordinateurs d'une manière semblable à la façon de résoudre humain eux et l'essence de la logique floue est que tout est une question de degré ».

Le sens de la résolution des problèmes avec des ordinateurs semblables à la résolution humaine de manière peut facilement être expliquée par un exemple simple d'un jeu de basket-ball; si un joueur veut garder un autre joueur d'abord, il doit considérer la façon dont il est grand et comment ses compétences en jeu sont. Tout simplement si le joueur qu'il veut garder est grand et joue très lent par rapport à lui, alors il utilisera son instinct pour déterminer de se demander s'il doit garder ce joueur car il y a une incertitude pour lui. Dans cet exemple, le point important est les propriétés sont par rapport au joueur et il y a un degré pour la hauteur et l'habileté à jouer pour le joueur rival. La logique floue est un moyen déterministe de cette situation incertaine.

Il y a des étapes pour traiter la logique floue (Figure 1). Ces étapes sont; d'une part fuzzyfication où les entrées nettes sont converties aux entrées floues d'autre part ces entrées se traitées avec des règles floues pour créer une sortie floue et defuzzification enfin ce qui se traduit par le degré de résultat que dans la logique floue, il peut être plus d'un résultat avec des degrés différents.

image004

Figure 1 - Étapes du processus Fuzzy (David M. Bourg p.192)

Pour illustrer les étapes du processus flou, la précédente situation de jeu de basket-ball pourrait être utilisé. Comme mentionné dans l'exemple le joueur rival est grand avec 1,87 mètres, ce qui est assez grand par rapport à notre joueur et peut ruisseler avec 3 m / s qui est lent par rapport à notre lecteur. Outre ces données certaines règles sont nécessaires pour considérer que l'on appelle des 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

image007

Figure 3- la vitesse

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

image009

Figure 4-sortie ensembles flous

Dans la dernière étape, defuzzication , utilise pour créer une sortie nette 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 courante pour créer la sortie. Sur cette phase, les poids pour calculer le point moyen est dépend entièrement de la mise en œuvre. Sur cette application, il est considéré comme donner haut poids pour garder ou non la garde, mais un faible poids donné parfois garde. (David M. Bourg, 2004)

image012

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

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

En conséquence logique floue utilise dans l'incertitude pour prendre une décision et de connaître le degré de décision. Le problème de la logique floue est que le nombre d'entrées 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 vérifier cela

Pour construire hors du chaos' réponse, une logique formelle est rien, mais un ensemble défini inductivement qui mappe phrases pour une évaluation. Au moins, c'est comme un théoricien du modèle pense de la logique. Dans le cas d'une logique booléenne sentential:

 (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.

seraient définis par induction d'un changement de logique floue:

 (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.

Notez que la seule différence dans la logique sous-jacente est la permission d'é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é. Est de demander:. Pour une valuation v (A), pour quelle valeur D est le cas le v (A)> D signifie que A est satisfait

Si vous voulez vraiment trouver plus sur des logiques non classiques comme la logique floue, je recommanderais soit introduction à la logique non classique: de Si Is ou Possibilités et Paradox

Mettre mon chapeau de codeur de retour, je serais prudent avec l'utilisation de la logique floue dans la vraie programmation mondiale, en raison de la tendance à une logique floue pour être indécidable. Peut-être qu'il est trop complexe pour peu de gain. Par exemple, une logique supervaluational peut faire tout aussi bien pour aider un vague modèle de programme. Ou peut-être la probabilité serait assez bon. En bref, je dois être convaincu que le modèle de domaine va de pair avec une logique floue.

Peut-être un exemple efface ce que les avantages peuvent être:

Disons que vous voulez faire un thermostat et vous voulez qu'il soit 24 degrés.


Voici comment vous mettre en œuvre à l'aide d'une fonction logique:

  • Règle1: chauffer à pleine puissance lorsque il est plus froid que 21 degrés.
  • Règle2: refroidir à pleine puissance quand il est plus chaud que 27 degrés.

Un tel système qu'une seule fois et un moment de 24 degrés, et il sera très inefficace.


Maintenant, en utilisant la logique floue, ce serait quelque chose comme ceci:

  • Règle1. Pour chaque degré qu'il est plus froid que 24 degrés, tourner le chauffage d'un cran (0 à 24)
  • Règle2. Pour chaque degré qu'il est plus chaud que 24 degress, tourner le refroidisseur d'un cran (0 à 24)

Ce système sera toujours quelque part autour de 24 degrés, et qu'une fois et sera qu'une seule fois et un certain temps à un ajustement minuscule. Il sera également plus économe en énergie.

Eh bien, vous pouvez lire les œuvres de Bart Kosko , l'un des « pères fondateurs ». ' Pensée floue: la nouvelle science de logique floue à partir de 1994 est lisible ( et disponible à moindre coût tout à fait secondaire par Amazon). Apparemment, il a un livre récent « bruit » de 2006, qui est également tout à fait accessible.

En fait si (dans ma paraphrase - ne pas avoir lu le premier de ces livres depuis plusieurs années), la logique floue est sur la façon de traiter avec le monde où quelque chose est peut-être 10% frais, 50% au chaud, et 10% à chaud , où différentes décisions peuvent être prises sur le degré auquel les différents états sont vraies (et non, ce ne fut pas tout à fait un hasard si ces pourcentages ne correspondent pas à 100% - bien que je l'accepte correction si nécessaire).

Une très bonne explication, avec une aide de Machines à laver logique floue .

Je sais ce que vous voulez dire à ce sujet étant difficile de passer du concept à code. J'écris un système de notation qui se penche sur les valeurs de sysinfo et / proc sur les systèmes Linux et vient avec un nombre compris entre 0 et 10, 10 étant le pire absolu. Un exemple simple:

Vous avez 3 moyennes de charge (1, 5, 15 minutes) avec (au moins) trois états possibles, bon, faire mal, mal. L'expansion, vous pourriez avoir six états possibles par moyenne, en ajoutant « sur le point » aux trois que je viens de le mentionner. Cependant, le résultat de l'ensemble des 18 possibilités ne peut déduire 1 de la partition. Répétez cela avec le swap consommé, VM alloué (commis) réelle mémoire et d'autres choses .. et vous avez un grand bol de spaghetti conditionnel:)

Son autant une définition qu'il est un art, comment vous mettre en œuvre le processus de prise de décision est toujours plus intéressant que le paradigme lui-même .. alors que dans un monde booléen, son plutôt coupé et sec.

Il me serait très facile de dire si CHARGER1 <2 Déduire 1, mais pas très précis du tout.

Si vous pouvez enseigner un programme à faire ce que vous feriez pour évaluer un certain ensemble de circonstances et de garder le code lisible, vous avez mis en place un bon exemple de la logique floue.

logique floue est une méthode de résolution des problèmes qui se prête à la mise en œuvre dans des systèmes allant de simples, petites, micro-contrôleurs embarqués à grande, en réseau, PC multi-canal ou acquisition de données poste de travail et des systèmes de contrôle. Il peut être mis en œuvre dans le matériel, le logiciel, ou une combinaison des deux. La logique floue offre un moyen simple d'arriver à une conclusion définitive sur la base d'informations d'entrée vagues, ambiguës, imprécise, bruyante, ou manquant. approche logique floue pour contrôler les problèmes mimétiques comment une personne pourrait prendre des décisions, seulement beaucoup plus rapide.

La logique floue est révélée être particulièrement utile dans le système expert et d'autres applications d'intelligence artificielle. Il est également utilisé dans certains correcteurs d'orthographe suggérer une liste de mots probables pour remplacer un mal orthographié.

Pour en savoir plus, il suffit de cocher: http://en.wikipedia.org/wiki/Fuzzy_logic .

Ce qui suit est en quelque sorte une réponse empirique.

Un simple (peut-être simpliste réponse) est que « logique floue » est une logique qui renvoie des valeurs autres que droites vrai / faux, ou 1 / 0. Il y a beaucoup de variations sur ce point et ils ont tendance à être très domaine spécifique .

Par exemple, dans ma vie précédente, je l'ai fait les moteurs de recherche qui ont utilisé « la recherche de similarité de contenu » par opposition à alors commune « recherche booléenne ». Notre système de similarité utilisé le coefficient Cosinus de vecteurs attributs pondérés représentant la requête et les documents et les valeurs produites dans la gamme 0..1. Les utilisateurs fourniraient « de pertinence » qui a été utilisé pour déplacer le vecteur de requête dans le sens des documents souhaitables. Ceci est quelque peu liée à la formation fait dans certains systèmes d'IA où la logique se « récompensé » ou « puni » pour les résultats des courses d'essai.

En ce moment, Netflix organise un concours pour trouver un meilleur algorithme de suggestion pour leur entreprise. Voir http://www.netflixprize.com/ . En effet tous les algorithmes pouvaient être considérées comme « logique floue »

La logique floue calcule algorithme basé sur l'homme comme façon de penser. Il est particulièrement utile quand il y a un grand nombre de variables d'entrée. Une calculatrice de logique floue en ligne pour l'entrée deux variables est donnée:

http://www.cirvirlab.com/simulation/fuzzy_logic_calculator.php

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top