Heuristische Suche

Werbung
PD Dr. Stefan Edelkamp
Dipl. Inform. Tilman Mehler
Dortmund, den 11.11.2003
Musterlösungen zur Vorlesung
Heuristische Suche
Wintersemester 2003/2004
Aufgabenblatt 1
Aufgabe 1.1 (Semesteraufgabe)
Als Beispiel finden Sie eine Lösung für das 15-Puzzle mit A* und IDA* Suche unter:
http://ls5-www.cs.uni-dortmund.de/~edelkamp/lectures/hs/software
Aufgabe 1.2 (Zulässigkeit und Konsistenz)
Es genügt dir Konsistenz zu beweisen, da die Zulässigkeit direkt daraus folgt.
Sei h∗i (s) die minimale Lösungslänge von einem Zustand s in einem der Problemräume Pi , i ∈ {1, . . . , n}. Für
ein beliebigen Zustand u ∈ S und Nachfolger v ∈ S gilt per Definition: vi = ui oder vi = o(ui ) mit o ∈ Oi .
Da hi (u) = h∗i (ui ) gilt hi (u) ≤ hi (v) + 1 genau dann, wenn h∗i (ui ) ≤ h∗i (vi ) + 1, wobei vi = ui , oder vi ein
unmittelbarer Nachfolger von ui in Si ist. Für ui = vi gilt die Ungleichung trivialerweise.
0 ) ein Lösungspfad minimaler
Angenommen, für ui 6= vi gilt h∗i (ui ) > h∗i (vi ) + 1. Es sei p = (vi , v10 , . . . , vm
0
∗
0
0
0 ) ein Lösungspfad von u
Länge von vi zu vm ∈ Gi . Es gilt also hi (vi ) = m. Dann ist p = (ui , vi , v1 , . . . , vm
i
0 ∈ G mit |p0 | = h∗ (v ) + 1 (Widerspruch).
nach vm
i
i
i
Aufgabe 1.3 (Exploration)
a) Abbildung 1 zeigt die Suchbäume für Breiten- und Tiefensuche. Fur Breitensuche betragen die Pfadkosten 472, für Tiefensuche 452. Expandierten Knoten wird eine römische Zahl zugewiesen, die ihre
Position in der Expansionsreihenfolge angibt.
a
II
V
b
c
III
f
d
a
I
e
g
IV
c
d
I
e
g
b
II
III
IV
Abbildung 1: Suchbäume für Breitensuche (links) und Tiefensuche (rechts)
0
81.3
a
I
120
167.8
d
II
160
217.5
c
III
188
242.0
e
IV
220
259.3
f
V
232
267.4
g
VI
268
268.0
b
VII
224
f=220
f=(356), 268
0.0L
60
f
48
30.4L
39.3L
b
f=120
47.8L
236
c
f=(248), 160
57.5L
248
305.5
40
d
c
356
356.0
e
248
120
168
b
240
294.5
68
g
f=232
35.4L
44
e
240
a
f=0
81.3L
f=(240), 188
54.0L
Abbildung 2: Dijkstra und A∗
b)+c) Abbildung 1 zeigt links die Graphendarstellung des Straßennetzes in dem das Ergebnis für den Algorithmus von Dijkstra abzulesen ist. An den Knoten ist jeweils die Folge der f -Werte abgetraten. Zusätzlich
steht an jedem Knoten noch der Luftlinienabstand zu b - mit angehängtem ’L’. Auf der rechten Seite von
Abbildung 1 ist der Suchbaum für beide Verfahren dargestellt. An jedem Knoten stehen die berechneten
f-Werte für Dijkstra (oben) und A∗ (unten). Die römischen Zahlen deuten wiederum die Expansionsreihenfolge an, welche beim vorliegenden Suchraum für Dijkstra und A∗ identisch ist. Beide Verfahren
liefern den optimalen Pfad a, d, c, f, b mit den Kosten 268.
Aufgabe 1.4 (Komplexität von Planungsproblemen)
a) PLANSAT liegt in PSPACE, weil eine Operatorensequenz nichtdeterministisch gewählt werden kann,
und die Größe eines Zustandes durch die Anzahl der Propositionen beschränkt ist. D.h. für n Propositionen ist die Länge des kürzesten Lösungspfades kleiner als 2n . Anderenfalls müßte die Lösung Schleifen
enthalten, in denen Zustände doppelt besucht werden. Derartige Schleifen können entfernt werden. Nach
maximal 2n Schritten muß das Verfahren also einen Zielzustand gefünden haben, wenn dieser erreichbar
ist. P SP ACE = N P SP ACE folgt, daß PLANSAT in PSPACE liegt.
Zum Beweis der PSPACE-Härte kodieren wir eine polynomial platzbeschränkte Turingmaschine (TM)
als Planungsproblem, wie folgt: in(i, x) bedeutet, daß das Symbol x in der Bandzelle i steht, at(i, q), daß
die TM bereit ist, die Transition für die aktuelle Position i und den Zustand q auszuführen. Die Proposition do(i, q, x) bedeutet, daß die Transition an der i-ten Position für Zustand q auf das Symbol x angewand
wird und accept heißt, daß die TM die Bandeingabe akzeptiert. Wenn nun q0 der Startzustand der TM ist,
x1 , . . . , xn die Eingabe, und der Platz den die TM benötigt durch m beschränkt ist, so können Start- und
Zielzustand beschrieben werden als: I = {at(1, q0 ), in(0, ]), in(1, x1 ), in(2, x2 ), . . . , in(n, xn ), in(n +
1, ]), . . . , in(m − 1, ])} und G = accept. Die Transitionen werden nun durch folgende Operatoren kodiert:
at(i, q) ∧ in(i, x) ⇒ do(i, q, x) ∧ at(i, q)
do(i, q, x) ∧ in(i, x) ⇒ in(i, y) ∧ in(i, x)
do(i, q, x) ∧ in(i, y) ⇒ at(i + 1, q 0 ) ∧ do(i, q, x)
Somit hält die TM genau dann, wenn es eine Lösung für das wie oben konstruierte Planungsproblem
gibt. Da es nur polynomiell viele (i,q,x)-Kombinationen gibt, so auch polynomiell viele Propositionen
und Operatoren. Somit kann jede polynomiell platzbeschränkte TM mit polynomiellem Platzbedarf auf
ein Planungsproblem reduziert werden.
b) Ohne negative Effekte stellt ein Nachfolgezustand stets eine Obermenge des Vorgängers dar. Die Länge
des minimalen Lösungspfades ist daher linear beschränkt, d.h. wir kommen mir einer linearen Anzahl
nichtdeterministischer Entscheidungen aus. Somit ist PLANSAT+ ∈ N P . Zum Beweis der NP-Härte
verwenden wir eine Reduktion von 3Sat: Sei F eine propositionale Formel in 3Sat-Form und U =
u1 , . . . , um die in F verwendeten Variablen und n die Anzahl der Klauseln in F. Für jede Variable ui
führen wir die Propositionen T (i) und F (i) ein, die bedeuten, daß ui auf wahr bzw. f alsch gesetzt
ist. C(j) bedeutet, daß die j-te Klausel in F erfüllt ist. Die Initial- und Zielzustände sind definiert als
I = ∅ und G = {C(1), . . . , C(n)}. Für jede Variable ui definieren wir die Operatoren F (i) ⇒ T (i)
und T (i) ⇒ F (i). Für jede Klausel C(j), die eine nichtnegierte Variable ui enthält, definieren wir
T (i) ⇒ C(j) und analog F (i) ⇒ C(j) für negierte Variablen. Offensichtlich existiert ein Lösungspfad
von von I nach G, genau dann wenn es eine Variablenbelegung gibt, so daß F war wird. Somit ist
PLANSAT+ NP-hart.
1+
1+
c) Da PLANSAT+
1 in N P ist (siehe Teilaufgabe d), so auch PLANMIN1+ . PLANMIN1+ kann wie folgt
auf 3SAT reduziert werden. Es sei U = {u1 , . . . , um } die Menge der verwendeten Variablen in einer 3SAT Formel F und n die Anzahl der Klauseln. Wir definieren wieder die Propositionen T (i), F (i), C(j),
welche bedeuten daß ui auf wahr oder falsch gesetzt ist, bzw. daß die j-te Klausel erfüllt ist. Zusätzlich
definieren wir noch V (i), welches angibt, daß eine Belegung für Variable ui gewählt wurde. Der Initialund Zielzustand kann nun definiert werden als: I = ∅ und G = V (1) ∧ . . . ∧ V (m) ∧ C(1) ∧ . . . ∧ C(n).
Für jede Variable ui benötigen wir 4 Operatoren:
⇒ T (i)
⇒ F (i)
T (i) ⇒ V (i)
F (i) ⇒ V (i)
D.h. wir haben Operatoren, die Variablen Werte zuweisen, und solche die sicherstellen, daß einer Variable
ein Wert zugewiesen wurde. Für jede Klausel j, die eine Variable negiert bzw. nicht-negiert enthält,
benötigen wir die Operatoren T (i) ⇒ C(j) bzw. F (i) ⇒ C(j). Wenn nun F erfüllbar ist, so muss
für jede Variable nur ein Wert gesetzt werden (m Operatoren), weitere m Operatoren werden beötigt,
um die V (i)’s zu setzen und n Operatoren für die C(j)’s. Somit ist F erfüllbar, genau dann wenn das
konstruierte Planungsproblem in k = 2m + n Schritten lösbar ist.
d) Hierzu genügt es, Pfade zu berachten, die anfangs nur Propositionen wahr machen und im Folgenden
nur Propositionen falsch machen. Nehmen wir eine Operatorenfolge an, in der es zwei benachbarte Operatoren oi und oi+1 gibt, so daß oi ’s Effekt negativ und oi+1 ’s Effekt positiv ist. Sei pi oi ’s positiver
Effekt und pi+1 oi+1 ’s negativer Effekt. Falls pi = pi+1 , kann oi entfernt werden, da oi+1 seinen Effekt
rückgängig macht. Anderenfalls können oi und oi+1 vertauscht werden. Da alle Vorbedingungen von
oi+1 wahr sind gilt dies insbesondere, wenn man pi wahr lässt. Analog muss oi+i die Vorbedingung von
oi erhalten, da es eine zusätzliche Proposition wahr macht. Die beschriebene Prozedur kann wiederholt
werden, bis man eine äquivalente Operatorenfolge erhält die zuerst nur positive und danach nur negative
Effekte hat. Existiert nun eine Lösung, so muss es einen Zwischenzustand Si mit G+ ⊆ Si geben, der
zunächst von I aus nur durch Operatoren mit positiven Effekten erreicht werden kann und von dem aus
Si \G− nur durch Operatoren mit negativen Effekten erreichbar ist. Das Entscheidungsverfahren muss
nun genau einen solchen Zwischenzustand finden. Hierzu benötigen wir die folgenden zwei Teilroutinen: Die Routine T URNON (X) erhält als Parameter eine Menge von Propositionen X und liefert den
maximalen Zustand S ⊆ AP \X, der von I aus erreicht werden kann.
T URNON ( X )
S←I
repeat
temp ← S
for o ∈ O do
if(S ⊂ Result(S, o)) ∧ (X ∩ Result(S, o) = ∅)
then S ← Results(S, o)
until S = temp
return S
Für n Propositionen und m Operatoren ist T URNON O(mn2 ). Die zweite benötigte Routine ist T URNOFF (S),
die als Paramter einen Zustand S erhält und den maximalen Zustand S 0 ⊆ S liefert, so daß S\G− von
S 0 erreichbar ist.
T URNOFF (S)
S 0 ← S\G−
repeat
temp ← S 0
for o ∈ O do
if(o− ⊆ S) ∧ (Result(S 0 ∪ o− , o) = S 0 )
then S 0 ← S 0 ∪ o−
until S = temp
return S
T URNOFF sucht von S\G− ausgehend rückwärts, um festzustellen, welche Operatoren verwendet werden können solange jeder Operator nur Vorbedingungen aus S benötigt. Es gibt einen eindeutigen maximalen Zustand S 0 , da die Rückwärtsuche stets Propositionen hinzufügt, was mehr Operatoren anwendbar
machen kann, niemals aber weniger. T URNOFF ist ebenfalls O(mn2 ). Die Routine S ATISFY prüft unter
der Verwendung der beiden Teilroutinen, ob eine Lösung existiert.
S ATISFY
X←∅
loop
S ←T URNON (X )
if G+ 6⊆ S then return reject
S 0 ← T URNOFF (S)
if S = S 0 then return accept
X ← X ∪ (S\S 0 )
if X ∩ I 6= ∅ then return reject
In der ersten Iteration wird S auf T URNON (∅) gesetz, d.h. auf alle Propositionen, die wahr gemacht werden können. Wenn S zu diesem Zeitpunkt die die positiven Zielpropositionen nicht enthält, so gibt es
keine Lösung. Anderenfalls wird S 0 auf T URNOFF (S) gesetzt, d.h. S 0 ist die maximale Teilmenge von
S, die die negativen Ziele erreichen kann. Da keine weiteren Propositionen wahr gemacht werden können, ist S 0 auch die maximale Teilmenge von AP , die die negativen Zielbedingungen erreichen kann.
Falls S = S 0 , so existiert eine Lösung und es wird accept zurückgegeben. Anderenfalls muss es negative Zielbedingungen geben geben, die verhindern, daß der Zielzustand erreicht werden kann. Damit ein
Zielzustand erreicht werden kann, dürfen diese Propositionen niemals wahr werden. Daher werden sie zu
X hinzugefügt. Falls mindestens eine solche Proposition im Initialzustand wahr ist, wird reject zurückgegeben. Die nächste Iteration verläuft wie die vorhergehende, mit dem Unterschied, daß kein Element
von X wahr gemacht wird. Diese Iteration kann weitere Propositionen entdecken, die - falls sie wahr
gemacht werden - verhindern, daß das Ziel erreicht wird. Diese werden wiederum zu X hinzugefügt. In
aufeinanderfolgenden Iterationen werden entweder neue Propositionen zu X hinzugefügt, oder es wird
accept/reject zurückgegeben. Da |X| monoton wächst und durch n = |AP | begrenzt ist, wird die Schleife höchstens n-mal durchlaufen. Da T URNON und T URNOFF O(mn2 ) sind, folgt daß S ATISFY O(mn3 )
ist.
Herunterladen