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.

Aufgabe 1<br />

Schreiben Sie ein Programm, dass das 8-Damen-Problem löst.<br />

Aufgabe 2<br />

Statt dem 8-Damen-Problem, schreiben Sie das Programm generischer für das N-Damen-Problem (N ist die<br />

größe des Schachbrettes <strong>und</strong> die Anzahl der Damen).<br />

Aufgabe 3<br />

Versuchen Sie ein möglichst effizientes Programm zu schreiben.<br />

Puzzles<br />

Aufgabe 1<br />

Zum Warmwerden beschäftigen wir uns mit dem 15-Puzzle. Bei dem Puzzle sollen die Zahlen durch Verschieben<br />

sortiert werden.<br />

Schreiben Sie ein Programm, dass das 15-Puzzle-Problem löst.<br />

Die Datenstruktur für ein 15-Puzzle soll folgendermaßen aussehen:<br />

% Die Datenstruktur ist ein Prädikat c mit drei Listen, die die Zahlen 1-15 <strong>und</strong> x enthalten:<br />

% c([x, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]).<br />

Dann definieren Sie eine Übergangs-Funktion (Successor-Function), die das Puzzle von einem Zustand zum<br />

nächsten überführt, also z.B.:<br />

?- s(c([x, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]), R).<br />

R = c([4, 1, 2, 3], [x, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]) ;<br />

R = c([1, x, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]) .<br />

Implementieren Sie nun ein Programm zur Lösungsfindung, dass den “konventionellen” Weg beschreitet: Sie<br />

suchen eine potentielle Lösung <strong>und</strong> lassen <strong>Prolog</strong> diese Lösung testen. Wie können Sie sicherstellen, dass das<br />

Programm immer eine Lösung findet, angenommen dass es eine gibt? Wie bewerten Sie die Performance?<br />

Aufgabe 2<br />

Nun wollen wir eine Lösung implementieren, die A* nutzt. Um A* zu implementieren, benötigen Sie eine pathcost-function<br />

g(x) <strong>und</strong> eine heuristic-function h(x). Implementieren Sie g(x) <strong>und</strong> h(x) Ihrer Wahl - aber nicht<br />

die in Aufgabe 3 geforderte!

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!