Künstlichen Intelligenz

Slides:



Advertisements
Ähnliche Präsentationen
Programmieren in Logik
Advertisements

g²HANDEL Auftragsverwaltung für Handelsvertretungen
g²FAHRZEUG Auftragsverwaltung für den Fahrzeughandel
Blue J.
... für alle, die mal Ihren IQ testen wollen!
Einführung in Prolog Copyright © 1999 by Michael Neumann
Objektorientierte Programmierung
Datenbanken Einführung.
2. Programmstruktur – Teil 2
Programmieren in Logik
Imperative Programmierung -Entwicklungswerkzeuge
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung versteht Java Programmcode versteht Java Programmcode Für die Entwicklung eigener Software.
Prolog und Prädikatenlogik I
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg1/7 Datenbanken werden als Anhäufung von Werten eines Wertebereiches aufgefasst und Datenbankabfragen.
Algorithmus. Ein Kochrezept, zum Beispiel: Kartoffelbrei.
C- Syntax. Bestandteile der Sprache C: Ausdrücke Anweisungen.
Der Präprozessor. Bevor der Compiler das Programm in Maschinencode übersetzt (nur dieser kann von der CPU, dem Herz des Computers, bearbeitet werden)
Kapitel 5 Stetigkeit.
Kapitel 1 Die natürlichen und die ganze Zahlen. Kapitel 1: Die natürlichen und die ganzen Zahlen © Beutelspacher/Zschiegner April 2005 Seite 2 Inhalt.
Semantik von Prolog & Unifikation
Syntax von Prolog & Familiendatenbasis
Fakten, Regeln und Anfragen
Lexikalisch-Funktionale-Grammatik
PROLOG Die Rose ist rot. Die Tulpe ist gelb. Die Nelke ist weiss.
Das Java-Hamstermodell
Batch-Programmierung Grundlagen
Folie 1 Kapitel II. Vom Raumbegriff zu algebraischen Strukturen Neubeginn: Herleitung des Begriffs Vektorraum aus intuitiven Vorstellungen über den Raumbegriff.
Einleitung Suse Linux (System- und Software-Entwicklung) Allgemein:
Programmieren mit MS Small Basic
SOFTWARE.
Anlegen von Ordnern, speichern und Öffnen von Bildern und Briefen
? Was ist Informatik? Was ist Informatik? Alexander Lange
Java ohne Kara. Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen.
Dateien Datei = File (engl.) Mögliche Inhalte einer Datei
Entwicklung der Programmiersprachen
Intelligente Dateisysteme
Effiziente Algorithmen
§23 Basiswechsel und allgemeine lineare Gruppe
§3 Allgemeine lineare Gleichungssysteme
1. Entwicklungsumgebung 2. Kontextmenü 3. Compile 4. Objekt 5. Attribut 6. Klasse 7. Deklaration 8. Intialisierung.
Dr. Rolf Haenni, University of KonstanzNovember 28, 2002 Page 1/15 Aspekte eine echten Informationstheorie 1.Einführung 2.Informationsalgebren 3.Unsicherheit.
Datenbanken Dantenbanksystem Data Base System Datenbasis (Daten)
HotPotatoes Eine einfache Möglichkeit, internetfähige Tests zu erstellen.
Baum-Simulation mit Lindenmayer-System
Programmierung 1. Einführung Seite 1
1. Entwicklungsumgebung 2. Kontextmenü 3. Compile 4. Objekt 5. Attribut 6. Klasse 7. Deklaration 8. Intialisierung.
Java Programmierung.
Einführung in PROLOG StD G. Noll f ( x ) f ( ) g ( ) g ( x ) barbara
Die Götter der Alten Griechen
Sind Sie intelligent ? Diese Frage ist wichtig (da man ja denkt, dass man intelligenter ist als der Idiot von einem Nachbarn) Hier nun vier Fragen, die.
Erste Schritte in DELPHI
Programmieren ... in C++ Prof. Dr.-Ing. Franz-Josef Behr, HfT Stuttgart Programmeiren I.
Petrinetze 1. Einführung Informatik : wesentlich Modellierung von
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
11. Wissenbasis und Regelsysteme Sebastian Linek.
Dokumente meistern Dokumente anlegen Dokumente speichern
Einführung Blue J. Inhaltsverzeichnis  Definition  Vokabeln.
Einführung in die logische Programmierung mit PROLOG
Logische Programmierung
Das Java-Hamster-Modell
7. Formale Sprachen und Grammatiken
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Pool Informatik, Sj 11/12 GZG FN W.Seyboldt 1 Pool Informatik 5 GZG FN Sj. 11/12 Kopieren, Daten, Programme.
Vom Konzept zur Datenbank
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
 Präsentation transkript:

Künstlichen Intelligenz PROLOG __ Eine Sprache der Künstlichen Intelligenz GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Programmieren in Logik Prolog Programmieren in Logik 1. Einführung GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Inhalt - Einführung Historisches Charakterisierung Einordnung Das PROLOG-System Wichtige Interpreter-Befehle PROLOG-Quellcode GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

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 GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Charakterisierung Prolog ist eine deskriptive (beschreibende) Sprache: 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 GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Einordnung Beziehung zwischen PROLOG und anderen Programmiersprachen aus objektorientierter Sicht: GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

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. GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

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 GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Der SWI-PROLOG-Editor GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

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! GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

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. GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Programmieren in Logik Prolog Programmieren in Logik 2. Programmstruktur GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Inhalt - Programmstruktur Einführung Fakten Datenbasis Fragen an die Datenbasis Aufgaben GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Einführung Um einen Gegenstandsbereich zu beschreiben, benutzen wir Aussagen - und zwar von zweierlei Art: GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

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) GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

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 GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Einführung Ist das Wissen über den betrachteten Gegenstandsbereich als Sammlung von Fakten und Regeln dargestellt, so können wir Fragen stellen – in der Erwartung, dass sich diese aufgrund des in Fakten und Regeln ausgedrückten Wissens beantworten lassen. GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

} } 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. GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Der SWI-PROLOG-Editor Datenbasis (Wissen) Auswertungsprogramm GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Fakten Ein Faktum ist 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). GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Datenbasis Eine endliche Menge von Fakten bildet bereits ein PROLOG-Programm. Wir werden eine solche Menge im folgenden auch Datenbasis nennen. GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

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. GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

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

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). GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

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. GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

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. GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Entscheidungsfragen Frage: Ist Zeus männlich? ?- maennlich(zeus). Antwort: Yes. GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

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. GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

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? GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

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. GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz