2010-11-29 7 views
10

Ich weiß, dass es seltsam klingen mag, aber ich würde gerne eine Sache in dieser neuen Welt wissen, in die Microsoft Visual F # hineinkommt. Es gibt viele Anwendungen dieser Sprache, ich werde lernen, in Bezug auf Parsing, funktionale Programmierung, strukturierte Programmierung ... Aber was ist mit künstlicher Intelligenz?F # und Fuzzy Logic

Gibt es Anwendungen für Fuzzy Logic? Ist F # eine gute Sprache für Fuzzy Logic-Anwendungen?

An der Universität studieren wir Prolog und ähnliche Sprachen. Prolog ist in der Lage, komplexe Abfragen in sehr einfachen und kurzen Expresionen zu erstellen (indem Prädikate und Fakten ausgenutzt werden). Kann F # das?

Vielen Dank im Voraus.

Antwort

8

Fuzzy-Logik. F # bietet keine Typen zum Implementieren von Fuzzy-Logic-Berechnungen, aber es ist sicherlich möglich, F # in dieser Domäne zu verwenden. Die Kürze von F # und die Möglichkeit, benutzerdefiniert überladene Operatoren zu definieren, sollten Code, der auf Fuzzy-Logik basiert, ziemlich gut machen. Ich habe eine schnelle Suche und entdeckt ein paar Artikel Fuzzy-Logik in F # Umsetzung:

Prolog ist ein bisschen anders Frage. Die Stärke (und auch die Schwäche) von Prolog kommt von der Tatsache, dass Backtracking direkt in der Sprache aufgebaut ist. Dies macht es sehr gut, Suchalgorithmen basierend auf Backtracking zu implementieren, aber auch eine Einschränkung.

F # hat keine direkte Unterstützung für Backtracking, aber es ist ziemlich einfach, Algorithmen basierend auf Backtracking mit Rekursion zu schreiben (dies ist der wichtigste Kontrollflussmechanismus in F # und Prolog).

Es ist auch möglich, domänenspezifische Sprache für die logische Programmierung in F # zu implementieren. Das bedeutet, dass Sie etwas wie Prolog in F # implementieren und dann Ihre Suchalgorithmen mit dieser Minisprache in F # schreiben (möglicherweise mit anderen F # -Features, falls erforderlich). Weitere Informationen zu ähnlichen Problemen finden Sie unter this question.

+0

Danke ... Ich habe schon die Artikel gesehen, die Sie gefunden haben, wollte aber nur eine Meinung von jemand anderem über dieses Argument. Ich denke auch, dass F # ein sehr mächtiges Werkzeug ist, wie ich es in diesen Tagen entdecken werde ... :) Nun, ich danke Ihnen für Ihre Hinweise und Bemühungen, meine Frage zu beantworten. – Andry

+0

Ah, tut mir leid, noch eine Frage ... Was meinst du mit Minisprachen? – Andry

+3

Ich möchte hinzufügen, dass, obwohl ich es nicht in meinem Blog erkunde, F # eine ausgezeichnete Wahl für das Experimentieren mit parallelen Implementierungen von Fuzzy-Logik wäre, einschließlich Implementierungen mit Grafikkarten. F # ist in dieser Hinsicht nicht einzigartig, bietet aber hervorragende Möglichkeiten, Parallelität mit domänenspezifischen Sprachen zu kombinieren. – TechNeilogy

3

F # ist eine allgemeine Sprache mit einigen netten Sprachfunktionen wie Berechnungsausdruck/Monade und Zitat. Sie können davon ausgehen, dass es ungefähr die gleiche Leistung wie C# hat.

Es ist nicht wie Matlab oder R, wo viele vor-implementierte Bibliotheken eingebaut sind. Wenn Sie eine Fuzzy Logic-Bibliothek oder andere KI-Algorithmen von Grund auf neu implementieren möchten, ist F # eine sehr gute Sprache für Sie, da die Sprachfunktionen das Leben erleichtern.

Wenn Sie jedoch nur eine Fuzzy-Logic-Bibliothek verwenden möchten, ist die Verwendung anderer Sprachen oder spezieller Systeme sinnvoller, da F # oder .Net im Allgemeinen in diesem Aspekt keine Bibliotheken mit sehr guter Qualität haben.

+0

Vielen Dank Yin Zhu ... Ich erwartete F # einige Bibliotheken für Fuzzy, aber es ist ok auch wenn es nicht ... das gute ist, dass ich sowieso viele algorithmen in f # für fuzzy machen kann. Okay ich werde es versuchen. Danke noch einmal. – Andry