PD Dr. Stefan Edelkamp Dipl. Inform. Tilman Mehler Dortmund, den 7.11.2003 Übungen zur Vorlesung Heuristische Suche Wintersemester 2003/2004 Aufgabenblatt 2 Abgabe am 21.11.2003, in der Vorlesung. Besprechung am 25.11.2003. Aufgabe 1.1 (Gewichtungen in A∗ ) Algorithmus A* aktualisiert dynamisch die Gesamtschätzungen f (n) = g(n) + h(n), wobei g(n) die Länge (Kosten) des Generierungspfades ist und h(n) der Schätzwert der Länge (Kosten) von n zum Ziel ist. Parametrisiert man fl (n) = l · h(n) + (1 − l) · g(n) mit l ∈ [0, 1] so erhält man Algorithmen Al . Zeigen Sie: a) In uniformen Zustandsräumen entspricht A0 einer Breitensuche. b) Bei gleicher Behandlung von gleichbewerteten Knoten (tie-breaking) expandiert Algorithmus A0.5 die Knoten in der gleichen Reihenfolge wie A∗ . c) Für konsistente Heuristiken und l ≤ 0.5 ist fl monoton. Damit terminiert Algorithmus Al mit einer optimalen Lösung. Aufgabe 1.2 (Dynamische Gewichtung) Ein Algorithmus ist -optimal, wenn er mit einer Lösung mit maximalen Kosten (1 + ) · δ(s, T ) terminiert. Zeigen Sie: a) A* mit f (u) = g(u) + h(u) + [1 − d(u)/N ] · h(u) ist -optimal. Hierbei sei d(u) die derzeitige und N die antizipierte optimale Suchtiefe. b) Sei F = {n | f (n) ≤ (1 + ) · minn0 ∈Open f (n0 )}. Dann liefert die Entnahme des Knotens mit minimalem h-Wert in F einen -optimalen Algorithmus. Nutzen Sie in beiden Fällen Invarianz (I), die besagt, dass es in Open einen Knoten u auf einem optimalen Zielpfad mit Bewertung f (u) = δ(s, u) + h(u) gibt. Aufgabe 1.3 (Priority Queues) Es sei folgende Instanz des 2 × 3-Puzzles gegeben: 1 5 4 3 2 Verwenden Sie die A*-Suche mit der Manhattan-Distanz zur Lösung des Puzzles, wobei Open als 1-Level Bucket realisiert sein soll. Halten Sie nach jeder Expansion bildlich fest, welche Zustände im Dial gespeichert sind. Wieviele Schritte sind nötig? Aufgabe 1.4 (Hashing) Zeigen Sie, wie die Idee zum Algorithmus von Rabin und Karp eingesetzt werden kann, um den Hashwert eines Zustandes im 15-Puzzle inkrementell zu berechnen. Welche Aussage könne Sie generell darüber machen, wann diese Art der Hashberechnung möglich und sinnvoll ist?