Einführung in die Methoden der Künstlichen Intelligenz - Goethe ...
Einführung in die Methoden der Künstlichen Intelligenz - Goethe ...
Einführung in die Methoden der Künstlichen Intelligenz - Goethe ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
2 Suchverfahren<br />
da man doch e<strong>in</strong>en besseren Weg gefunden hat. Die Expansionsreihenfolge ist:<br />
expan<strong>die</strong>rt Nachfolger Open Closed<br />
S A,B S<br />
A C A,B S<br />
C D B,C S,A<br />
B C B,D S,A,C<br />
C D C,D S,A,B<br />
...<br />
Dies tritt beim Knoten C auf.<br />
Diese Schätzfunktion kann nicht monoton se<strong>in</strong>. Es gilt 8 = h(B) > g(B, C) + h(C) = 5.<br />
Was <strong>die</strong>ses Beispiel auch noch zeigt, ist dass <strong>der</strong> Reparaturmechanismus, <strong>der</strong> dynamisch h zu<br />
e<strong>in</strong>er monotonen Schätzfunktion verbessert, das Verhalten des Algorithmus nicht so verbessert,<br />
dass Aussage 2.3.20 gilt, denn <strong>die</strong> Aussage gilt nicht für <strong>die</strong>ses Beispiel unter <strong>der</strong> Annahme <strong>der</strong><br />
nachträglichen Korrektur von h.<br />
2.3.3 IDA ∗ -Algorithmus und SMA ∗ -Algorithmus<br />
Da <strong>der</strong> A ∗ -Algorithmus sich alle jemals besuchten Knoten merkt, wird er oft an <strong>die</strong> Speichergrenze<br />
stoßen und aufgeben. Um das zu umgehen, nimmt man e<strong>in</strong>e Komb<strong>in</strong>ation<br />
des abgeschwächten A ∗ -Algorithmus und des iterativen Vertiefens. Die Rolle <strong>der</strong> Grenze<br />
spielt <strong>in</strong> <strong>die</strong>sem Fall <strong>der</strong> maximale Wert d e<strong>in</strong>es Weges, <strong>der</strong> schon erzeugt wurde.<br />
IDA ∗ mit Grenze d:<br />
• Ist analog zu A ∗ .<br />
• es gibt ke<strong>in</strong>e Open/Closed-Listen, nur e<strong>in</strong>en Stack mit Knoten und Wegekosten.<br />
• <strong>der</strong> Wert g(N) wird bei gerichteten Graphen nicht per Update verbessert.<br />
• Der Knoten N wird nicht expan<strong>die</strong>rt, wenn f(N) > d.<br />
• das M<strong>in</strong>imum <strong>der</strong> Werte f(N) mit f(N) > d wird das d <strong>in</strong> <strong>der</strong> nächsten Iteration.<br />
Dieser Algorithmus benötigt nur l<strong>in</strong>earen Platz <strong>in</strong> <strong>der</strong> Länge des optimalen Weges, da<br />
er nur e<strong>in</strong>en Stack (Rekursions-Stack des aktuellen Weges) verwalten muss.<br />
Da <strong>die</strong>ser Algorithmus <strong>in</strong> e<strong>in</strong>em gerichteten Graphen möglicherweise e<strong>in</strong>e exponentielle<br />
Anzahl von Wegen absuchen muss, obwohl das beim A ∗ -Algorithmus durch Update<br />
zu vermeiden ist, gibt es e<strong>in</strong>e pragmatische Variante, den SMA ∗ -Algorithmus, <strong>der</strong> wie <strong>der</strong><br />
A ∗ -Algorithmus arbeitet, aber im Fall, dass <strong>der</strong> Speicher nicht reicht, bereits gespeicherte<br />
Knoten löscht. Der Algorithmus nutzt hierzu <strong>die</strong> verfügbare Information und löscht<br />
<strong>die</strong> Knoten, <strong>der</strong> am ehesten nicht zu e<strong>in</strong>em optimalen Weg beiträgt. Das s<strong>in</strong>d Knoten, <strong>die</strong><br />
hohe f-Werte haben. Es gibt weitere Optimierungen hierzu (siehe Russel-Norvig).<br />
Stand: 19. Oktober 2012 52 M. Schmidt-Schauß & D. Sabel, Skript KI, WS 2012/13