1 / 30

PROLOG

PROLOG. __ Eine Sprache der Künstlichen Intelligenz. Pro log. Pro grammieren in Log ik 1. Einführung. Inhalt - Einführung. Historisches Charakterisierung Einordnung Das PROLOG-System Wichtige Interpreter-Befehle PROLOG-Quellcode. Historisches.

Download Presentation

PROLOG

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PROLOG __ Eine Sprache der Künstlichen Intelligenz PROLOG – Eine Sprache der Künstlichen Intelligenz

  2. Prolog • Programmieren in Logik • 1. Einführung PROLOG – Eine Sprache der Künstlichen Intelligenz

  3. Inhalt - Einführung • Historisches • Charakterisierung • Einordnung • Das PROLOG-System • Wichtige Interpreter-Befehle • PROLOG-Quellcode PROLOG – Eine Sprache der Künstlichen Intelligenz

  4. Historisches • 1972: ALAIN COLMERAUER (Marseille) und ROBERT KOWALSKI (London) entwickeln PROLOG • Mitte 70er: DAVID D.H. WARREN baut den ersten lauffähigen Compiler, wonach sich der heutige DEC-10 Standard richtet (Edinburgh-Standard) • 80er Jahre: Eine ganze Reihe kommerzieller PROLOG-Systeme etablieren sich PROLOG – Eine Sprache der Künstlichen Intelligenz

  5. Charakterisierung • ein Problem wird formal beschrieben (spezifiziert) • der Lösungsweg wird nicht durch Anweisungen einzeln festgelegt • das Prolog-System sucht eine vorgelegte Frage selbständig zu beantworten Prologist eine deskriptive (beschreibende) Sprache: PROLOG – Eine Sprache der Künstlichen Intelligenz

  6. Einordnung • Beziehung zwischen PROLOG und anderen Programmiersprachen aus objektorientierter Sicht: PROLOG – Eine Sprache der Künstlichen Intelligenz

  7. Einordnung • Für Theoretiker: • PROLOG kann als spezielle Schreibweise der Prädikatenlogik erster Ordnung aufgefasst werden. • Für Praktiker: • PROLOG ist eine sehr intelligente relationale Datenbasis, die durch Fakten zur Wissensbasis wird. PROLOG – Eine Sprache der Künstlichen Intelligenz

  8. Das PROLOG-System • Benötigt werden: • ein Texteditor zum Schreiben der PROLOG-Programme • z.B.: Notepad • ein PROLOG-Interpreter zum Beantworten der Anfragen • z.B.: SWI-PROLOG PROLOG – Eine Sprache der Künstlichen Intelligenz

  9. Der SWI-PROLOG-Editor PROLOG – Eine Sprache der Künstlichen Intelligenz

  10. Wichtige Interpreter-Befehle • chdir ('D:\\Verz1\\Verz2'). • wechselt das aktuelle Verzeichnis • consult (Dateiname). • lädt das Programm in den Speicher • mit den Tasten  und  kann man durch die letzten • Eingaben scrollen Eingaben sind stets mit einem Punkt abzuschließen; kommen Sonderzeichen vor, Hochkommas verwenden! PROLOG – Eine Sprache der Künstlichen Intelligenz

  11. PROLOG-Quellcode • Der PROLOG-Quellcode wird mit einem ASCII-Editor • geschrieben und als PROLOG-File mit der Endung '.pl' • gespeichert. • Ein PROLOG-Programm kann in verschiedene Dateien • zerlegt werden (Module -> Wiederverwendbarkeit); im • "Hauptprogramm" werden die einzelnen Module wie folgt • geladen: • ?- ensure_loaded(Dateiname1). • ?- ensure_loaded(Dateiname2). • usw. PROLOG – Eine Sprache der Künstlichen Intelligenz

  12. Prolog • Programmieren in Logik • 2.Programmstruktur PROLOG – Eine Sprache der Künstlichen Intelligenz

  13. Inhalt - Programmstruktur • Einführung • Fakten • Datenbasis • Fragen an die Datenbasis • Aufgaben PROLOG – Eine Sprache der Künstlichen Intelligenz

  14. Einführung • Um einen Gegenstandsbereich zu beschreiben, benutzen wir Aussagen - und zwar von zweierlei Art: PROLOG – Eine Sprache der Künstlichen Intelligenz

  15. Einführung • Aussagen, die Eigenschaften von Objekten oder • Beziehungen zwischen Objekten zum Ausdruck bringen: • • Eisen ist ein Metall • • Sokrates lebte von 469 bis 399 v. Chr. •  Fakten (wahre Sachverhalte, Tatsachen) PROLOG – Eine Sprache der Künstlichen Intelligenz

  16. Einführung • Aussagen, die allgemeine Gesetze, d.h. Beziehungen zwischen Fakten ausdrücken: • • Metalle leiten elektrischen Strom • oder besser • • Wenn X ein Metall ist, dann leitet X elektrischen Strom • Regeln PROLOG – Eine Sprache der Künstlichen Intelligenz

  17. Einführung • Ist das Wissen über den betrachteten Gegenstandsbereich als Sammlung von Faktenund Regelndargestellt, so können wir Fragenstellen – in der Erwartung, dass sich diese aufgrund des in Fakten und Regeln ausgedrückten Wissens beantworten lassen. PROLOG – Eine Sprache der Künstlichen Intelligenz

  18. Einführung • Ein PROLOG-Programm sieht also so aus: • • Fakten • • Regeln • • Fragen } Datenbasis (Wissen) } Auswertungsprogramm Fakten, Regeln und Fragen sind die wesentlichen Elemente des Programmierens in PROLOG. PROLOG – Eine Sprache der Künstlichen Intelligenz

  19. Der SWI-PROLOG-Editor Datenbasis (Wissen) Auswertungsprogramm PROLOG – Eine Sprache der Künstlichen Intelligenz

  20. Fakten • Ein Faktumist eine Aussage, die eine Eigenschaft eines Objektes oder eine Beziehung zwischen Objekten ausdrückt: • Jupiter ist ein Planet • ?- planet(jupiter). • Objekte werden klein geschrieben ! • Paris ist die Hauptstadt von Frankreich • ?- hauptstadt(paris,frankreich). PROLOG – Eine Sprache der Künstlichen Intelligenz

  21. Datenbasis • Eine endliche Menge von Fakten bildet bereits ein PROLOG-Programm. Wir werden eine solche Menge im folgenden auch Datenbasisnennen. PROLOG – Eine Sprache der Künstlichen Intelligenz

  22. Beispiel 1 • Eine PROLOG-Datenbasis soll erstellt werden, die Verwandtschaftsbeziehungen griechischer Götter ausdrückt. • Zunächst werden die Götter nach ihrem Geschlecht klassifiziert: • ?- maennlich(apollon). • ?- weiblich(hera). • Dies sind sog. einstellige Prädikatsymbole. PROLOG – Eine Sprache der Künstlichen Intelligenz

  23. Beispiel 1 • Dann führen wir die Beziehung „Elternteil“ ein: • ?- elternteil(zeus,apollon). • ?- elternteil(metis,athene). • Dies sind sog. zweistellige Prädikatsymbole. PROLOG – Eine Sprache der Künstlichen Intelligenz

  24. Beispiel 1 • Damit sieht die Datenbasis so aus (beispiel1.pl): • maennlich(zeus). • maennlich(apollon). • maennlich(ares). • weiblich(hera). • weiblich(leto). • weiblich(metis). • weiblich(athene). elternteil(zeus,ares). elternteil(hera,ares). elternteil(zeus,apollon). elternteil(leto,apollon). elternteil(zeus,athene). elternteil(metis,athene). PROLOG – Eine Sprache der Künstlichen Intelligenz

  25. Beispiel 1 im SWI-PROLOG-Editor 1. Eingabe der Fakten im oberen Teil des SWI-PROLOG-Editors. 2. consulten Die Datenbasis (das Wissen) wird an das Auswertungsprogramm übergeben. 3. Frage formulieren im unteren Teil des SWI-PROLOG-Editors. PROLOG – Eine Sprache der Künstlichen Intelligenz

  26. Fragen • Wir können nun Fragen an das System stellen und damit das in der Datenbasis gespeicherte Wissen abrufen. • Zuvor muss die Datenbasis in einem Editor erstellt, gespeichert und dann in den PROLOG-Interpreter geladen • werden. PROLOG – Eine Sprache der Künstlichen Intelligenz

  27. Entscheidungsfragen • Frage: Ist Zeus männlich? • ?- maennlich(zeus). • Antwort: Yes. PROLOG – Eine Sprache der Künstlichen Intelligenz

  28. Ergänzungsfragen • Frage: Wie heißen die Eltern von Athene? • ?- elternteil(E,athene). • Variablen werden groß geschrieben! • Antwort: E = zeus ; • E = metis ; • No Durch das Drücken des Semikolons „;“ bzw. der ENTER-Taste ““ erhält man die weiteren Antworten. PROLOG – Eine Sprache der Künstlichen Intelligenz

  29. AUFGABE 1: • Übersetzen Sie die folgenden Sätze in eine PROLOG-Datenbasis: • Peter liebt Susi. Hans liebt Susi und Sabine. Sabine liebt Peter und hasst Hans. Susi liebt Peter und Felix. Susi hasst Sabine. Peter hasst Felix. Felix liebt sich selbst. • Stellen Sie folgende Anfragen: • Wen liebt Sabine? Wer liebt Sabine? Wer liebt wen? Wer liebt jemanden, der ihn auch liebt? Wessen Liebe wird mit Hass vergolten? PROLOG – Eine Sprache der Künstlichen Intelligenz

  30. AUFGABE 2: • In einem Restaurant gibt es ein Menü bestehend aus Vorspeise, Hauptgericht und Nachspeise: • Vorspeisen: Tomatensuppe, Lauchsuppe, Fleischbrühe • Hauptgerichte: Sauerbraten mit Spätzle, Leberkäse mit • Kartoffeln, Hackbraten mit Reis • Nachspeisen: Eis, Obstsalat, Bienenstich. • Schreiben Sie ein PROLOG-Programm, das ein zweistelliges Prädikat menue enthält. Dieses Prädikat soll Menüvorschläge überprüfen und erzeugen können. PROLOG – Eine Sprache der Künstlichen Intelligenz

More Related