130 likes | 206 Views
Pro log. Pro grammieren in Log ik 2. Programmstruktur – Teil 2. Inhalt - Programmstruktur. • Einführung • Fakten • Datenbasis • Fragen an die Datenbasis • Regeln • Verbesserung der Ausgabe. Regeln.
E N D
Prolog • Programmieren in Logik • 2.Programmstruktur – Teil 2 PROLOG – Eine Sprache der Künstlichen Intelligenz
Inhalt - Programmstruktur • • Einführung • • Fakten • • Datenbasis • • Fragen an die Datenbasis • • Regeln • • Verbesserung der Ausgabe 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 Regelnhinzugefügt werden. 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). falls, wenn Rumpf der Regel Kopf der Regel 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 PROLOG – Eine Sprache der Künstlichen Intelligenz
Klauseln • Sowohl Faktenals auch Regelnbezeichnen wir als Klauseln. • Die Gesamtheit aller Klauseln bildet ein PROLOG-Programm. • Dieses wird mit Hilfe des Editors als Datei angelegt. PROLOG – Eine Sprache der Künstlichen Intelligenz
Goal • Statt Frage sagt man auch Zieloder Goal, weil es sozusagen Ziel des PROLOG-Systems ist, die Frage zu • beantworten. 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. 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. 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. 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. 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. PROLOG – Eine Sprache der Künstlichen Intelligenz
Aufgaben • Lösen Sie die Aufgaben 3 bis 7. PROLOG – Eine Sprache der Künstlichen Intelligenz