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