Allgemeine Hinweise 1 Prolog Aussagenlogik und Resolution
Allgemeine Hinweise 1 Prolog Aussagenlogik und Resolution
Allgemeine Hinweise 1 Prolog Aussagenlogik und Resolution
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Spaß mit Zahlen<br />
In der Vorlesung haben sie die Beschreibung der natürlichen Zahlen mittels der folgenden zwei Axiome gesehen<br />
(Peano-Arithmetik):<br />
0 ∈ N<br />
∀X X ∈ N → s(X) ∈ N<br />
Eine etwas andere Schreibweise, die wir im folgenden nutzen, ist:<br />
nat(0)<br />
∀X nat(X) → nat(s(X))<br />
Die Addition (add(X, Y, Z): Z ist die Summe von X <strong>und</strong> Y ) wurde folgendermaßen definiert:<br />
• Setzten Sie die Addition in <strong>Prolog</strong> um.<br />
• Definieren Sie die Multiplikation in <strong>Prolog</strong>.<br />
• Definieren Sie “kleiner als”.<br />
• Implementieren Sie Modulo.<br />
2 Unifikation<br />
∀X add(0, X, X)<br />
∀X, Y, Z add(X, Y, Z) → add(s(X), Y, s(Z))<br />
Geben Sie zu den folgenden Paaren von Termen an, ob sie unifizierbar sind <strong>und</strong> –wenn ja– geben sie einen<br />
allgemeinsten Unifkator σ (most general unificator – mgu) an.<br />
1. punkt <strong>und</strong> punkt<br />
2. loves(brad, janet) <strong>und</strong> loves(brad, X)<br />
3. punkt(1, 2, 3) <strong>und</strong> punkt(1, R)<br />
4. nat(nat(X)) <strong>und</strong> nat(Y )<br />
5. greater(nat(0), nat(nat(X))) <strong>und</strong> greater(nat(X), nat(Y ))<br />
6. cons(A, cons(B, nil)) <strong>und</strong> cons(val, cons(C, R))<br />
7. snafu(foo, A) <strong>und</strong> snafu(A, bar)<br />
8. triple(pair(X), pair(Y ), Z) <strong>und</strong> triple(Z, pair(X), pair(Z))<br />
Ein Zoo<br />
Wir betrachten einen Zoo mit den folgenden Tieren: Löwe, Tieger, Papagei, Pinguin, Zebra, Kolibri, Adler,<br />
Nashorn.<br />
1. Entwickeln Sie eine Datenbank, die die Tiere des Zoos verwaltet, es uns also ermöglicht herauszufinden,<br />
ob ein bestimmtes Tier im Zoo ist.<br />
2. Erweitern Sie das Program, so dass wir herausfinden können, ob ein Tier ein Raubtier ist.<br />
3. Wenn Sie nun fragen, ob ein Wolf ein Raubtier ist, welche Antwort bekommen Sie? Warum? Ist es die<br />
erwartete Antwort? Wie könnte man das Programm erweitern, um die erwartete Antwort zu bekommen?<br />
4. Erweitern Sie nun das Program, so dass wir herausfinden können, ob ein Tier ein Vogel ist; erweitern Sie<br />
das Programm, so dass wir herausfinden können, ob ein Tier fliegen kann.<br />
5. Überlegen Sie sich eine elegante Lösung um sicherzustellen, dass ein Pinguin als nicht-fliegender Vogel<br />
erkannt wird.