Frage

Ich arbeite in der Schule mit einigen KI-Algorithmen und stelle fest, dass die Leute die Worte „Fuzzy Logic“ verwenden, um jede Situation zu erklären, die sie mit ein paar Fällen lösen können.Wenn ich mir die Bücher noch einmal anschaue, lese ich gerade, dass es sich bei dem Zustand, der von „Ein“ nach „Aus“ geht, nicht um eine diagonale Linie handelt und dass sich etwas in beiden Zuständen befinden kann, aber auf unterschiedlichen „Ebenen“.

Ich habe den Wikipedia-Eintrag und ein paar Tutorials gelesen und sogar Dinge programmiert, die „Fuzzy-Logik verwenden“ (ein Kantendetektor und ein selbstgesteuerter 1-Rad-Roboter) und finde es immer noch sehr verwirrend, von der Theorie zum Code zu gelangen. .Was ist für Sie in der weniger komplizierten Definition Fuzzy-Logik?

War es hilfreich?

Lösung

Die Fuzzy-Logik ist die Logik in dem Zustand Mitgliedschaft ist im Wesentlichen ein Schwimmer mit Bereich 0..1 anstelle eines int 0 oder 1. Der Kilometer Sie aus ihm heraus ist, dass Dinge wie zum Beispiel die Änderungen, die Sie in ein Steuersystem ist etwas natürlich mehr fein abgestimmt als das, was Sie mit dem naiven binärer Logik bekommen würden.

Ein Beispiel könnte Logik sein, die Systemaktivität drosselt zurück basierend auf dem aktiven TCP-Verbindungen. Angenommen, Sie definieren „ein bisschen zu viele“ TCP-Verbindungen auf Ihrem Rechner als 1000 und „viel zu viele“, wie 2000. Zu jeder Zeit, das System mit einem „zu vielen TCP-Verbindungen“ Zustand von 0 (<= 1000) hat bis 1 (> = 2000), das als Koeffizient können Sie bei der Anwendung, was Drosselmechanismen verwenden Sie zur Verfügung haben. Das ist viel mehr zu vergeben und als Reaktion auf das Systemverhalten als naive binäre Logik, die nur weiß, wie „zu viele“, um zu bestimmen, und drosseln vollständig oder „nicht zu viele“, und schon gar nicht drosseln.

Andere Tipps

würde ich auf die Antworten hinzufügen möchte (die modded worden war), dass ein guter Weg, Fuzzy-Logik sichtbar zu machen ist folgende:

Traditionell mit binärer Logik würden Sie einen Graphen, das haben Zugehörigkeitsfunktion wahr oder falsch ist, während in einem Fuzzy-Logik-System, ist die Zugehörigkeitsfunktion nicht.

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

für eine Sekunde angenommen, dass die Funktion „mag Erdnüsse“

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

Die Funktion selbst muss nicht dreieckig sein und werden oft nicht (es ist nur einfacher, mit ascii art).

Ein Fuzzy System wird wahrscheinlich viele von ihnen, einige sogar überlappend (auch Gegensätze) wie folgt:

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

so jetzt c „Art mag Erdnüsse, irgendwie nicht Erdnüsse mag“ und d „wirklich nicht wie Erdnüsse“

Und Sie können entsprechend auf dieser Info-basiertes Programm.

Hope, das hilft für die visuellen Lerner gibt.

Die beste Definition der Fuzzy-Logik wird von seinem Erfinder gegeben Lotfi Zadeh :

  

„Fuzzy-Logik mittels Probleme auf Computern in einer Art und Weise ähnlich der Art und Weise menschliche lösen sie und das Wesen der Fuzzy-Logik darstellt, ist, dass alles eine Frage des Grades ist.“

Die Bedeutung von Problemen mit Computern verwendet mit dem Weg menschlichen Lösung lösen kann leicht mit einem einfachen Beispiel von einem Basketball-Spiel erklärt werden; wenn ein Spieler einen anderen Spieler schützen will, zunächst sollte er überlegen, wie groß er ist und wie seine spielerischen Fähigkeiten sind. Einfach, wenn der Spieler, dass er groß schützen will und spielt sehr langsam im Verhältnis zu ihm, dann wird er seinen Instinkt zu prüfen, um zu bestimmen, verwenden, wenn er diesen Spieler schützen sollte, da es eine Unsicherheit für ihn ist. In diesem Beispiel ist der wichtige Punkt ist, sind die Eigenschaften in Bezug auf die Spieler, und es gibt ein gewisses Maß für die Höhe und spielt Geschick für den rivalisierenden Spieler. Fuzzy-Logik bietet eine deterministische Art und Weise für diese unsichere Situation.

Es gibt einige Schritte, um die Fuzzy-Logik (Fig-1) zu verarbeiten. Diese Schritte sind; zunächst Entschärfungs wo scharfe Eingaben Fuzzy-Eingaben konvertiert werden zweitens diese Eingänge mit Fuzzy-Regeln verarbeitet bekommen Fuzzy-Ausgabe und schließlich Defuzzifikations zu schaffen, die wie in Fuzzy-Logik mit dem Grad der Folge ergibt sich mit unterschiedlichen Grad mehr als ein Ergebnis sein.

image004

1 - Fuzzy Verfahrensschritte (David M. Bourg S.192)

Um die Fuzzy-Prozessschritte, die frühere Basketball-Spiel Situation verwendet wird, veranschaulichen könnte. Wie in dem genannten Beispiel ist der Rivale Spieler mit 1,87 Metern hoch, was zu unserem Spieler ziemlich groß ist relativ und mit 3 m / s tröpfeln kann, die langsam im Vergleich zu unseren Spielern sind. Zusätzlich zu diesen Daten sind einige Regeln erforderlich zu prüfen, welche Fuzzy-Regeln genannt werden wie;

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

Abbildung 2 - wie groß

image007

Abbildung 3, wie schnell

Nach den Regeln und die Eingangsdaten eine Ausgabe wird durch Fuzzy-System erstellt werden, wie zum Beispiel; der Grad für die Wache ist 0,7 Grad für manchmal guard 0,4 und schützt nie 0,2 ist.

image009

Abbildung 4-Ausgabe Fuzzy-Sets

Im letzten Schritt, defuzzication , für wird mit einem scharfen Ausgang zu schaffen, das eine Zahl ist, die die Energie bestimmen können, dass wir die Spieler zu schützen während des Spiels verwenden sollten. Die Mitte der Masse ist eine gängige Methode die Ausgabe zu erzeugen. Auf dieser Phase werden die Gewichte der mittleren Punkt zu berechnen, ist völlig abhängig von der Implementierung. Auf dieser Anwendung wird es als hohe Gewicht manchmal Wache gegeben zu schützen oder nicht Wache aber geringes Gewicht zu geben. (David M. Bourg, 2004)

image012

Abbildung 5- Fuzzy-Ausgabe (David M. Bourg S.204)

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

Als Ergebnis Fuzzy-Logik wird unter Unsicherheit mit einer Entscheidung zu treffen und den Grad der Entscheidung zu erfahren. Das Problem der Fuzzy-Logik ist als die Anzahl der Eingänge die Anzahl der Regeln erhöhen exponentiell erhöhen.

Für weitere Informationen und ihre mögliche Anwendung in einem Spiel habe ich ein wenig Artikel check this out

Um auf der Antwort von Chaos aufzubauen: Eine formale Logik ist nichts anderes als eine induktiv definierte Menge, die Sätze einer Bewertung zuordnet.Zumindest denkt ein Modelltheoretiker so über Logik.Im Fall einer sententialen booleschen Logik:

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

Eine Fuzzy-Logik würde Änderungen induktiv definieren:

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

Beachten Sie, dass der einzige Unterschied in der zugrunde liegenden Logik die Erlaubnis ist, einen Satz mit dem „Wahrheitswert“ von 0,5 zu bewerten.Eine wichtige Frage für ein Fuzzy-Logic-Modell ist der Schwellenwert, der für die Wahrheitszufriedenheit zählt.Das ist zu fragen:für eine Bewertung v(A), für welchen Wert D gilt, dass v(A) > D bedeutet, dass A erfüllt ist.

Wenn Sie wirklich mehr über nicht-klassische Logiken wie Fuzzy-Logik erfahren möchten, würde ich Ihnen beides empfehlen Eine Einführung in die nichtklassische Logik:Vom Wenn bis zum Ist oder Möglichkeiten und Paradoxon

Wenn ich meinen Coder-Hut wieder aufsetze, würde ich mit der Verwendung von Fuzzy-Logik in der realen Programmierung vorsichtig sein, da eine Fuzzy-Logik dazu neigt, unentscheidbar zu sein.Vielleicht ist es zu viel Komplexität für wenig Gewinn.Beispielsweise kann eine Supervaluationslogik durchaus dazu beitragen, die Unbestimmtheit eines Programms zu modellieren.Oder vielleicht wäre die Wahrscheinlichkeit gut genug.Kurz gesagt, ich muss davon überzeugt werden, dass das Domänenmodell mit einer Fuzzy-Logik kompatibel ist.

Vielleicht löscht ein Beispiel, was die Vorteile sein kann:

Angenommen, Sie möchten einen Thermostat machen und Sie wollen es 24 Grad sein.


Dies ist, wie Sie es mit der Booleschen Logik implementieren würde:

  • Rule1: Wärme bei voller Leistung, wenn es ist kälter als 21 Grad.
  • Rule2: Kühlen bei voller Leistung nach unten, wenn es wärmer als 27 Grad.

Ein solches System wird nur einmal und eine Weile 24 Grad sein, und es wird sehr ineffizient sein.


Nun, Fuzzy-Logik, es wie etwas so sein würde:

  • Rule1. Für jedes Grad, dass es kälter als 24 Grad ist, die Heizung einer Kerbe aufdrehen (0 24)
  • Rule2. Für jedes Grad, dass es wärmer als 24 degress, den Kühler einer Kerbe aufdrehen (0 24)

Dieses System wird immer irgendwo um die 24 Grad sein, und es nur einmal und nur einmal und eine Weile macht eine kleine Anpassung. Es wird auch energieeffizienter sein.

Nun, könnte man die Werke von Bart Kosko lesen , einer der ‚Gründerväter ‘. ' Fuzzy Denken: Die neue Wissenschaft der Fuzzy Logic ' von 1994 ist lesbar ( und verfügbar ziemlich billig aus zweiter Hand über Amazon). Anscheinend hat er ein neueres Buch ‚ Lärm ‘ aus dem Jahr 2006, die auch recht ist zugänglich.

Im Grunde aber (in meinem paraphrasiert - nicht die erste seit einigen Jahren dieser Bücher gelesen zu haben), Fuzzy-Logik ist, wie mit der Welt zu tun, wo etwas vielleicht 10% cool ist, 50% warm, und 10% heiß kann, in denen unterschiedliche Entscheidungen über den Grad gemacht werden, auf das die verschiedenen Zustände wahr (und nein, es war nicht ganz zufällig, daß diese Prozentsätze addieren sich nicht zu 100% - obwohl ich Korrektur akzeptieren würde, wenn erforderlich).

Eine sehr gute Erklärung, mit Hilfe von Fuzzy Logic Waschmaschinen .

Ich weiß, was du meinst über es schwierig ist vom Konzept bis zum Code zu gehen. Ich schreibe ein Punktesystem, das auf Linux-Systemen bei den Werten von sysinfo und / proc sieht und kommt mit einer Zahl zwischen 0 und 10, 10 den absoluten schlechtesten. Ein einfaches Beispiel:

Sie haben 3 Last ist (1, 5, 15 Minuten) mit (mindestens) drei möglichen Zuständen, gut, immer schlecht, schlecht. Die Erweiterung dass, könnten Sie haben sechs mögliche Zustände pro Durchschnitt Zugabe ‚etwa zu‘ auf die drei, die ich gerade festgestellt. Doch kann das Ergebnis aller 18 Möglichkeiten nur 1 aus der Partitur abziehen. Wiederholen Sie das mit Swap verbraucht, tatsächlicher VM zugewiesen (stationär), Speicher und andere Sachen .. und Sie haben eine große Schüssel bedingter Spaghetti:)

Es ist so viel eine Definition, wie es eine Kunst ist, wie Sie die Entscheidungsfindung implementieren ist immer interessanter als das Paradigma selbst .. während in einer boolean Welt, seine eher geschnitten und trocken.

Es wäre sehr einfach für mich zu sagen, wenn load1 <2 abziehen 1, aber nicht sehr genau überhaupt.

Wenn Sie ein Programm beibringen kann, zu tun, was Sie tun würden, wenn einige Reihe von Umständen zu bewerten und halten Sie den Code lesbar, Sie ein gutes Beispiel für Fuzzy-Logik implementiert haben.

Fuzzy Logic ist ein Problemlösungsmethodik, die sich in Systemen, die von einfachen, kleinen, eingebetteten Mikrocontrollern bis hin zu großen, vernetzten, Multi-Channel-PC oder Workstation-basierte Datenerfassungs- und Steuerungssysteme bis zur Umsetzung verleiht. Es kann in Hardware, Software oder eine Kombination aus beidem implementiert werden. Fuzzy Logic bietet eine einfache Möglichkeit zu einer bestimmten Schlussfolgerung basiert auf vage, mehrdeutig, ungenau, laut, oder fehlende Eingangsinformationen zu gelangen. Fuzzy Logic Ansatz zu Problemen ahmen zu steuern, wie eine Person Entscheidungen treffen würde, nur viel schneller.

Die Fuzzy-Logik hat sich in Expertensystem und andere Anwendungen der künstlichen Intelligenz als besonders nützlich. Es ist auch in einigen Rechtschreibprüfprogramme verwendet, um eine Liste der wahrscheinlichen Worte zu deuten auf eine falsch geschriebene zu ersetzen.

Um mehr zu erfahren, schauen Sie doch: http://en.wikipedia.org/wiki/Fuzzy_logic .

Die folgende Art einer empirischen Antwort ist.

Eine einfache (möglicherweise verein Antwort) ist, dass „Fuzzy-Logik“ ist jede Logik, die andere Werte als gerade wahr / falsch zurückgibt, oder 1 / 0. Es gibt viele Variationen dieses und sie neigen dazu, sehr Domain spezifisch zu sein .

Zum Beispiel in meinem früheren Leben I Suchmaschinen tat, den „Inhalt Ähnlichkeitssuche“ im Gegensatz zu damals üblichem „boolean search“ verwendet. Unsere Ähnlichkeit System verwendet, um die Kosinus-Koeffizienten von gewichteten Merkmalsvektoren, die die Abfrage und die Dokumente und produzierten Werte im Bereich 0..1. Benutzer würden „Relevanz-Feedback“ liefern, die verwendet wurde, um die Abfrage Vektor in Richtung erwünschter Dokumente zu verschieben. Dies wird etwas auf die Ausbildung im Zusammenhang getan in bestimmten KI-Systemen, wo die Logik wird „belohnt“ oder „bestraft“ für die Ergebnisse der Testläufe.

Im Moment Netflix läuft einen Wettbewerb einen besseren Vorschlag Algorithmus für ihr Unternehmen zu finden. Siehe http://www.netflixprize.com/ . Effektiv alle der Algorithmen als „Fuzzy-Logik“ charakterisiert werden könnte

Fuzzy-Logik-Algorithmus Berechnung auf Basis menschlichen wie Denkweise. Es ist besonders nützlich, wenn eine große Anzahl von Eingangsvariablen ist. Ein Online-Fuzzy-Logik-Rechner für zwei Variablen Eingang gegeben:

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top