28.11.2014 Aufrufe

Allgemeine Hinweise 1 Prolog Aussagenlogik und Resolution

Allgemeine Hinweise 1 Prolog Aussagenlogik und Resolution

Allgemeine Hinweise 1 Prolog Aussagenlogik und Resolution

MEHR ANZEIGEN
WENIGER ANZEIGEN

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.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!