2. Programmstruktur – Teil 2 Prolog Programmieren in Logik 2. Programmstruktur – Teil 2 GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz
Inhalt - Programmstruktur • Einführung • Fakten • Datenbasis • Fragen an die Datenbasis • Regeln • Verbesserung der Ausgabe GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz
Regeln In den bisherigen Beispielen waren einige Grundbegriffe wie weiblich durch die Datenbasis erklärt, andere Begriffe wie Vater mussten bei der Anfrage in die Grundbegriffe übersetzt werden: ?- weiblich(hera). ?- elternteil(E,aplollon),maennlich(E). , bedeutet und Dieses umständliche Verfahren kann vereinfacht werden, wenn zu den Fakten der Datenbasis noch Regeln hinzugefügt werden. GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz
Regeln Die Regel für Mutter lautet: Y ist Mutter von X, wenn Y Elternteil von X ist und Y weiblich ist. In PROLOG: mutter(X,Y) :- elternteil(X,Y),weiblich(X). Kopf der Regel falls, wenn Rumpf der Regel GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz
Regeln Die Regel für Bruder lautet: Y ist Bruder von X, wenn X und Y die gleiche Mutter und den gleichen Vater haben, Y männlich ist und ungleich X ist. In PROLOG: bruder(X,Y):- vater(X,V),mutter(X,M), vater(Y,V),mutter(Y,M), maennlich(Y), Y\=X. \= bedeutet ungleich GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz
Klauseln Sowohl Fakten als auch Regeln bezeichnen wir als Klauseln. Die Gesamtheit aller Klauseln bildet ein PROLOG-Programm. Dieses wird mit Hilfe des Editors als Datei angelegt. GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz
Goal Statt Frage sagt man auch Ziel oder Goal, weil es sozusagen Ziel des PROLOG-Systems ist, die Frage zu beantworten. GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz
Prädikate mit mehreren Regeln Ein Prädikat minimum zur Berechnung der kleineren zweier natürlicher Zahlen ist gesucht. Das Minimum min(X,Y) zweier Zahlen X, Y genügt folgender Regel: Wenn X=<Y Dann min(X,Y)=X Sonst min(X,Y)=Y. GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz
Prädikate mit mehreren Regeln In PROLOG definieren wir ein dreistelliges Prädikat minimum(X,Y,Z), das in Z das Minimum von X und Y liefert. Dazu brauchen wir (mindestens) zwei Regeln: minimum(X,Y,X) :- X=<Y. minimum(X,Y,Y) :- X>Y. GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz
Beispiel 2 Das nebenstehende Rechteck besteht aus 4 Gebieten, die mit den drei Farben rot, gelb und blau so eingefärbt werden sollen, dass keine gleichfarbigen Gebiete längs einer Linie aneinandergrenzen. GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz
Beispiel 2 Wir definieren die Farben (Fakten): farbe(rot). farbe(gelb). farbe(blau). Dann definieren wir eine Regel: einfaerbung(F1,F2,F3,F4). Diese Regel bedeutet, dass die Farben F1, F2, F3, F4 eine erlaubte Einfärbung des Rechtecks sind. GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz
Beispiel 2 Diese Regel lautet: einfaerbung(F1,F2,F3,F4):- farbe(F1),farbe(F2),farbe(F3),farbe(F4), F1\=F2,F1\=F4,F2\=F3,F2\=F4,F3\=F4. GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz
Aufgaben Lösen Sie die Aufgaben 3 bis 7. GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz