Warum wird Lisp für AI verwendet?
Habe ich gelernt Lisp, meinen Horizont zu erweitern, denn ich habe gehört, dass es in der KI-Programmierung. Nachdem ich einige Ausflüge habe ich noch nicht gefunden, AI Beispiele oder irgendetwas in der Sprache, die es machen würde, mehr geneigt in Richtung zu ihm.
Wurde Lisp in der Vergangenheit verwendet, weil es verfügbar war, oder ist es etwas, das ich bin gerade fehlt?
InformationsquelleAutor der Frage Cristián Romo | 2008-09-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lisp WURDE in AI bis Ende der 1980er-Jahre. In den 80er Jahren, obwohl, Common Lisp war überverkauft, die die business-Welt als die "KI-Sprache"; die Gegenreaktion gezwungen, die meisten KI-Programmierer C++ für ein paar Jahre. In diesen Tagen, Prototypen sind in der Regel schriftliche, in einem jüngeren dynamischen Sprache (Perl, Python, Ruby, etc.) und Umsetzungen für erfolgreiche Forschung ist in der Regel in C oder C++ (manchmal auch Java).
Wenn Sie neugierig auf die 70 ' s...gut, ich war nicht da. Aber ich denke, Lisp war erfolgreich in der KI-Forschung aus drei Gründen (in der Reihenfolge der Wichtigkeit):
Habe ich nicht Peter Norvig ist die alte KI-Buchaber es ist eigentlich ein guter Weg, um zu lernen, um Programm KI-algorithmen in Lisp.
Disclaimer: ich bin a grad student in computational linguistics. Ich weiß das Unterfeld der Verarbeitung natürlicher Sprache viel besser als die anderen Felder. Vielleicht Lisp verwendet wird, mehr in den anderen Teildisziplinen.
InformationsquelleAutor der Antwort Nathan Shively-Sanders
Lisp verwendet wird, für die KI, denn es unterstützt die Implementierung von software, die berechnet, mit Symbolen sehr gut. Symbole, symbolische Ausdrücke und rechnen mit diesen ist der Kern von Lisp.
Typische AI-Bereiche für das rechnen mit Symbolen sind/waren: computer algebra, theorem proving, Planungs-Systeme, Diagnose, rewrite-Systeme, Wissensrepräsentation und reasoning, logic, languages, machine translation, expert-Systeme und mehr.
Ist es dann kein Wunder, dass viele berühmte AI-Anwendungen in diesen Bereichen wurden geschrieben in Lisp:
Gibt es Tausende von Anwendungen in diesen Bereichen, die sind geschrieben in Lisp. Sehr Häufig für diese ist, dass Sie brauchen Besondere Fähigkeiten im Bereich der symbolischen Verarbeitung. Man setzt spezielle Sprachen, die spezielle Interpreter/Compiler in diesen Bereichen auf der Oberseite von Lisp. Lisp erlaubt es, erstellen Sie symbolische Darstellungen für Daten und Programme und implementieren können alle Arten von Maschinen zu manipulieren, diese Ausdrücken (mathematische Formeln, Logik-Formeln, Pläne, ...).
(Beachten Sie, dass viele andere Allzweck-Programmiersprachen sind in der KI, auch. Ich habe versucht zu beantworten, warum gerade Lisp verwendet wird, im AI.)
InformationsquelleAutor der Antwort Rainer Joswig
Ein Grund dafür ist, dass es ermöglicht Ihnen die Erweiterung der Sprache mit Konstrukten, die spezifisch für Ihre domain, so dass es effektiv ist, eine domain specific language. Diese Technik ist unglaublich kraftvoll, wie Sie können Sie auf Grund über die problem Sie die Lösung, anstatt zu Schlurfen bits.
InformationsquelleAutor der Antwort dsm
Meine Vermutung war immer, dass, als eine funktionale Sprache, macht es keinen Unterschied zwischen code und Daten. Alles, einschließlich der Funktions-Definitionen und Funktionsaufrufe behandelt werden können als Listen und verändert, wie jedes andere Stück von Daten.
Also selbst-Kontrolle, selbst-modifizierender code kann leicht geschrieben werden.
InformationsquelleAutor der Antwort aib
Eine mögliche Antwort ist, dass die AI ist eine Sammlung von sehr harten Probleme, und Lisp ist eine gute Sprache für die Lösung der schwierigen Probleme, nicht nur AI.
Als zu, warum das so ist: Makros, generische Funktionen und ein reichhaltiges Introspektion ermöglichen präzise code und einfache Einführung von domain-Abstraktionen — es ist eine Sprache, die Sie stärker machen. Für eine Menge Probleme, das ist unnötig, und es kommt mit seiner eigenen Kosten, sondern auch für andere Probleme, die Leistung benötigt wird, um jeden Vorsprung.
InformationsquelleAutor der Antwort Rich
Ich denke, es ist falsch zu denken, diese im Hinblick auf die AI nur. Dinge wie die KI-winter und kommerzielle Effekte auf common lisp störend sind, wenn Sie sich Fragen, warum war es für die KI, nicht, warum es nicht oft verwendet, jetzt ...
Jedenfalls denke ich, dass es ist, weil die meisten von der KI code wurde im wesentlichen Forschung-code. Lisp ist eine großartige Sprache für explorative Programmierung zur Implementierung von algorithmen schwierig, für sich selbst ändern und oft geänderten code. In anderen Worten, für die Forschung-code.
Ich benutze lisp heute für einige meiner Forschung-code (Mathematik, Signalverarbeitung), weil es flexibler und leistungsfähiger als die meisten Sprachen, während Sie noch generiert effizienteren code als die meisten Sprachen. Ich kann in der Regel erhalten Leistung innerhalb ein Faktor von +/- 2 sagen, dass c++ - Geschwindigkeit, aber ich implementieren kann, die Dinge viel schneller, und mit Komplexität umzugehen, die mich nehmen würde weit mehr Zeit als ich haben, wenn ich verwendet, c++, java, c#.
Dass die wandernden off topic aber. Ich glaube, der KI code wurde hauptsächlich geschrieben in common lisp für eine Weile, denn es ist ein leistungsfähiger Ansatz für die Forschung-code. Es ist immer noch; aber als " AI " algorithmen wurde besser verstanden und untersucht, und Teile von Ihnen waren viel leichter zu lehren und zu nutzen, so zeigten Sie sich in Geschmack-of-the-Jahres-Sprachen im Grundstudium. Von dort aus wird es ein Problem, was die Leute bereits wissen, welche Bibliotheken gibt es und welche eignet sich gut für große Gruppen.
InformationsquelleAutor der Antwort simon
Ich würde vermuten, dass ein wichtiger Grund dafür war die Flexibilität der Listen als grundlegender Datenstruktur.
in der Zeit, in der Lage zu drehen, Sie in allen Arten von zusammengesetzten Objekten, und neue Dinge wie Nachricht, Wege und polimorphism, machte es die Sprache der Wahl, die nicht speziell für die KI, aber für große, komplexe, Aufgaben. vor allem, wenn Sie experimentierten mit Konzepten.
InformationsquelleAutor der Antwort Javier
Ich denke, du hast Recht: Lisp war ein handliches Werkzeug für Hacker, die Dinge. Dies ist, weil es nicht unterscheiden sehr zwischen Programm und Daten. Diese erlaubt Hackern zu manipulieren, funktioniert ganz einfach, genau wie die Daten.
Aber lisp ist ziemlich schwierig für den Menschen zu Lesen, mit seinen Klammern und nicht-Unterscheidung zwischen Daten und Programm. Heute werde ich nicht verwenden, lisp für jede Produktion AI-code (oder vielleicht sogar prototyping), würde aber viel lieber in python-scripting.
Andere Sache zu prüfen ist, die vorhandenen Bibliotheken/tools in/im Zusammenhang mit der Sprache. Ich bin nicht in einer position zu vergleichen, lisp-Bibliotheken mit python-Bibliotheken, aber ich denke, Bibliotheken und open-source-Angelegenheit viel mehr jetzt als vorher.
Dieser Antwort wurde inspiriert durch den folgenden Vergleich zwischen lisp und python: http://amitp.blogspot.com/2007/04/lisp-vs-python-syntax.html
InformationsquelleAutor der Antwort amit_grepclub
Ich erinnere mich, zu hören, dass sich eine funktionale Sprache, Lisp war eine sehr gute Wahl für die Umsetzung von rekursiven algorithmen. Zu verfolgen, einen Baum zu und arbeiten Sie Ihren Weg zurück ist wesentlich bei der Betrachtung der Entscheidungsprozesse (traversal) und Endergebnis (Blatt-Knoten).
Dies erzählte während einer AI-Kurs an der Universität, wo wir studierten Lisp.
InformationsquelleAutor der Antwort mlambie
Eine zynische Antwort könnte", weil es verloren, eine politische KI Krieg zwischen Japan und den USA in den 1980er Jahren". Es ist ein Spaß blog-post, dass, spekuliert über die Auswirkungen der Fünften Generation Computer Systems Ableben auf dem Prolog.
InformationsquelleAutor der Antwort Anon