prolog die rose ist rot. die tulpe ist gelb. die nelke ist weiss. das vergissmeinnicht ist blau. das...

16
PROLOG Die Rose ist rot. Die Tulpe ist gelb. Die Nelke ist weiss. Das Vergissmeinnicht ist blau. Das Veilchen ist blau.

Upload: achmad-bodner

Post on 05-Apr-2015

112 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: PROLOG Die Rose ist rot. Die Tulpe ist gelb. Die Nelke ist weiss. Das Vergissmeinnicht ist blau. Das Veilchen ist blau

PROLOG

Die Rose ist rot.

Die Tulpe ist gelb.

Die Nelke ist weiss.

Das Vergissmeinnicht ist blau.

Das Veilchen ist blau.

Page 2: PROLOG Die Rose ist rot. Die Tulpe ist gelb. Die Nelke ist weiss. Das Vergissmeinnicht ist blau. Das Veilchen ist blau

Umgangssprache PROLOG

Die Rose ist rot.

Die Tulpe ist gelb.

Die Nelke ist weiss.

Das Vergissmeinnicht ist blau.

Das Veilchen ist blau.

rot(rose).

gelb(tulpe).

weiss(nelke).

blau(vergissmeinnicht)

blau(veilchen).

Page 3: PROLOG Die Rose ist rot. Die Tulpe ist gelb. Die Nelke ist weiss. Das Vergissmeinnicht ist blau. Das Veilchen ist blau

Syntax

• Objekte u. Prädikate werden klein geschrieben

• Am Ende Punkt, Return

• Variablen werden groß geschrieben

• UND als Komma

• ODER als Semikolon

Page 4: PROLOG Die Rose ist rot. Die Tulpe ist gelb. Die Nelke ist weiss. Das Vergissmeinnicht ist blau. Das Veilchen ist blau

Regeln zur Definition von Prädikaten

• Y ist Mutter von x, falls Y ElternteilvonX ist und Y weiblich ist.

• Y ist Kind von X, falls X Elternteil von Y ist.

• mutter(X,Y):- elter(X,Y), weibl(Y).

• kind(X,Y):- elter(Y,X).

Page 5: PROLOG Die Rose ist rot. Die Tulpe ist gelb. Die Nelke ist weiss. Das Vergissmeinnicht ist blau. Das Veilchen ist blau

Regeln zur Mitteilung von neuen Fakten

• Opa mag alles was Oma hasst

• Romeo fährt über-all hin, wo Beate hinfährt

• mag(opa,X):- hasst(oma,X).

• faehrt_nach(romeo,X):- faehrt_nach(beate,X).

Page 6: PROLOG Die Rose ist rot. Die Tulpe ist gelb. Die Nelke ist weiss. Das Vergissmeinnicht ist blau. Das Veilchen ist blau

Regeln zum Formulieren von Problemen

• 4 Gebiete sollen mit drei Farben (rot, gelb, blau) eingefärbt werden, so dass keine zwei gleichfarbenen Gebiete längs einer Linie aneinander grenzen.

1 2

34

Page 7: PROLOG Die Rose ist rot. Die Tulpe ist gelb. Die Nelke ist weiss. Das Vergissmeinnicht ist blau. Das Veilchen ist blau

Prolog-Programm

farbe(rot).farbe(gelb).farbe(blau).einfaerbung(F1,F2,F3,F

4):-farbe(F1), farbe(F2), farbe(F3), farbe(F4),F1\=F2, F1\=F3, F2\=F3, F2\=F4, F3\=F4.

1 2

34

Page 8: PROLOG Die Rose ist rot. Die Tulpe ist gelb. Die Nelke ist weiss. Das Vergissmeinnicht ist blau. Das Veilchen ist blau

Aufgabe 51

Fritz, Hans, Karl.

Der Besitzer des roten Autos ist Vetter von Fritz.

Hans hat kein grünes Auto.

Fritz streitet mit dem Besitzer des grünen Autos.

• junge(fritz).junge(hans).junge(karl).

• loesung(Rot,Gruen,Blau):- junge(Rot), junge(Gruen), junge(Blau), Rot\=Gruen, Rot\=Blau, Gruen\=Blau, Rot\=fritz, hans\=Gruen, Gruen\=fritz.

Page 9: PROLOG Die Rose ist rot. Die Tulpe ist gelb. Die Nelke ist weiss. Das Vergissmeinnicht ist blau. Das Veilchen ist blau

4.4 So arbeitet PROLOG

Page 10: PROLOG Die Rose ist rot. Die Tulpe ist gelb. Die Nelke ist weiss. Das Vergissmeinnicht ist blau. Das Veilchen ist blau

Suche per Computer

schuhgr(adelheid,34).

schuhgr(agnes,28).

schuhgr(aschenputtel,26).

schuhgr(brunhilde,44).

schuhgr(kunigunde,28).

schuhgr(walburga,38).

schuhgr(aschenputtel,26).

Page 11: PROLOG Die Rose ist rot. Die Tulpe ist gelb. Die Nelke ist weiss. Das Vergissmeinnicht ist blau. Das Veilchen ist blau

Suche per Computer

schuhgr(adelheid,34).

schuhgr(agnes,28).

schuhgr(aschenputtel,26).

schuhgr(brunhilde,44).

schuhgr(kunigunde,28).

schuhgr(walburga,38).

schuhgr(aschenputtel,26).

Page 12: PROLOG Die Rose ist rot. Die Tulpe ist gelb. Die Nelke ist weiss. Das Vergissmeinnicht ist blau. Das Veilchen ist blau

Suche per Computer

schuhgr(adelheid,34).schuhgr(agnes,28).schuhgr(aschenputtel,26).schuhgr(brunhilde,44).schuhgr(kunigunde,28).schuhgr(walburga,38).

schuhgr(aschenputtel,26).

Yes

Page 13: PROLOG Die Rose ist rot. Die Tulpe ist gelb. Die Nelke ist weiss. Das Vergissmeinnicht ist blau. Das Veilchen ist blau

Suche per Computer

schuhgr(adelheid,34).

schuhgr(agnes,28).

schuhgr(aschenputtel,26).

schuhgr(brunhilde,44).

schuhgr(kunigunde,28).

schuhgr(walburga,38).

schuhgr(Gesuchte,26).

Page 14: PROLOG Die Rose ist rot. Die Tulpe ist gelb. Die Nelke ist weiss. Das Vergissmeinnicht ist blau. Das Veilchen ist blau

Suche per Computer

schuhgr(adelheid,34).

schuhgr(agnes,28).

schuhgr(aschenputtel,26).

schuhgr(brunhilde,44).

schuhgr(kunigunde,28).

schuhgr(walburga,38).

schuhgr(Gesuchte,26).

Page 15: PROLOG Die Rose ist rot. Die Tulpe ist gelb. Die Nelke ist weiss. Das Vergissmeinnicht ist blau. Das Veilchen ist blau

Suche per Computer

schuhgr(adelheid,34).schuhgr(agnes,28).schuhgr(aschenputtel,26).schuhgr(brunhilde,44).schuhgr(kunigunde,28).schuhgr(walburga,38).

schuhgr(Gesuchte,26).

Gesuchte = aschenputtel

Page 16: PROLOG Die Rose ist rot. Die Tulpe ist gelb. Die Nelke ist weiss. Das Vergissmeinnicht ist blau. Das Veilchen ist blau

Suche nach der Mutter von daisy

• ?- elter(daisy,X), weibl(X).

• Der Interpreter versucht zu matchen (anzupassen).

• Gelingt das nicht, wird die Variable wieder freigegeben und eine andere versucht (Backtracking).