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.

Transcript of PROLOG Die Rose ist rot. Die Tulpe ist gelb. Die Nelke ist weiss. Das Vergissmeinnicht ist blau. Das...

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).