Problemlösen durch SuchenVoraussetzung dafür, daß ein Problem
durch Suchen gelöst werden kann, ist, daß der Ausgangspunkt für die Suche,
der Start, und das Ziel der Suche bekannt ist. Der Start- und Zielpunkt
sind Zustände der ,,realen'' Welt. Zusätzlich müssen Aktionen bekannt
sein, die ausgeführt werden können, um vom Start zum Ziel zu gelangen.
Aktionen sind somit Handlungen die zu erlaubten Zwischenzuständen führen.
Ziel der Suche ist es somit, eine Aktionsfolge zu finden, die vom Start
zum Ziel führt. [Russell1995]
Bei der Formulierung des Starts, des Ziels und der Aktionen muß die
,,reale'' Welt bis zu einem bestimmten Grad abstrahiert werden. Ohne diese
Abstraktion würde die Komplexität des Suchproblems zu groß werden. Dies
soll anhand eines Beispiels erklärt werden: Ein Vertreter will von einer
Stadt zu einer anderen Stadt reisen. Denkbare Aktionen, um dieses Problem
zu lösen, wären, bewege den Fuß nach vorne oder schlage das Lenkrad 6 Grad nach links
ein, usw. Diese detailierten Einzelaktionen würden jedoch zu einem zu
komplexen Suchproblem führen. Viel sinnvoller und zielführender ist es das
Problem zu abstrahieren und die Aktionen als Fahrt von einer größeren
Stadt zur einer anderen Stadt, mit der eine direkte Straßenverbindung
besteht, zu definieren. Die reale Welt wird, zur Lösung dieses Problems,
somit zu einer Straßenkarte abstrahiert.
Zusammenfassend kann man sagen, daß das Problemlösen durch Suchen aus
folgenden drei Schritten besteht: [Russell1995]
- Formulierung des Problems:
- Es werden der Start, das Ziel und die erlaubten Aktionen festgelegt.
Dabei wird eine sinnvolle Abstraktion der ,,realen'' Welt
vorgenommen.
- Suche:
- Es wird eine Folge von Aktionen gesucht, die vom Start zum Ziel
führen.
- Ausführung:
- Es wird die Aktionsfolge, die man als Ergebnis der Suche erhalten
hat, Schritt für Schritt abgearbeitet.
In den nachfolgenden
Abschnitten werden nun Algorithmen zur Suche näher beleuchtet. Als
Grundlage für die Erklärung dient das in Abbildung 4.1
dargestellte semantische Netz, das man auch als Graphen bezeichnen kann.
Darin stellt S den Start-Node und G den Ziel-Node dar.
|
Abbildung 4.1: Straßenkarte als
Semantisches Netz dargestellt. Die Städte entsprechen den Nodes, die
Links den Straßen und Link Labels den Kosten, die eine Benützung der
Straße verursacht. Vorstellen kann man sich den
Graphen z.B. als eine Straßenkarte. Die Nodes stellen Städte dar, die
Links Straßen und die Link Labels die Kosten, die eine Benützung dieser
Verbindung verursacht. Erlaubte Aktionen sind somit die Fahrt auf einer
Straße von einer Stadt zur nächsten. Um einen Weg vom Start-Node S zum
Ziel-Node G auf dieser Straßenkarte zu finden, sind zwei Arten von Kosten
zu berücksichtigen [Winston1993]:
- Die Kosten, die für das Auffinden eines Lösungspfades aufgewendet
werden müssen.
- Die Kosten, die durch das Benutzen eines gefundenen Pfades
entstehen.
Muß man häufig von der Stadt S zur Stadt G
reisen, wird man an einem möglichst kurzen und kostensparenden (optimalen)
Lösungspfad interessiert sein. Um diesen zu finden, wird man auch hohe
Suchkosten in Kauf nehmen. Will man jedoch nur einmal von S nach G reisen
und ist es schwer den optimalen Lösungspfad mit den geringsten Kosten zu
finden, wird man sich mit dem ersten gefundenen Lösungspfad
zufriedengeben, auch wenn man weiß, daß es vielleicht bessere gibt. Die in
Abschnitt 4.1
Blinde Suche und 4.2
Heuristische Suche vorgestellten Methoden sind in der Lage einen möglichen
Lösungsweg zu finden. Suchverfahren, die den optimalen Lösungsweg finden,
werden in Abschnitt 4.3
vorgestellt.
Die offensichtlichste Methode einen Weg vom Start zum Ziel zu finden,
ist das Betrachten aller möglichen Wege. Wege die zu Schleifen führen,
werden natürlich nicht mit berücksichtigt. Ausgehend vom Start-Node lassen
sich nun alle möglichen Pfade als Baum darstellen, wie in Abbildung 4.2
gezeigt wird. Dabei ist zu beachten, daß jeder Node im Baum einen Pfad
darstellt. Alle Nodes sind jedoch nur mit dem Buchstaben des Endpunktes
des Pfades gekennzeichnet. [Winston1993]
|
Abbildung 4.2: Der Suchbaum für das
Straßenkartenproblem von Abbildung 4.1.
Jeder Node bezeichnet einen Pfad, der vom Start-Node ausgeht. [Winston1993] Eine
Eigenschaft des so entstandenen Suchbaums ist der Branching-Faktor.
Darunter versteht man die Anzahl der Child-Nodes die von einem Node ausgehen. Damit
entspricht der Branching-Faktor der Anzahl der Nachbar-Nodes im Graphen.
Ist diese Anzahl für alle Nodes im Baum gleich, so spricht man von einem
Baum mit dem Branching-Faktor. Der Branching-Faktor gibt somit eine Auskunft über das
Wachstum des Baumes. Ein Baum mit dem Branching-Faktor besitzt in der Ebene die Anzahl von Child-Nodes. Die Ebenen werden
ausgehend vom Root-Node gezählt, der sich in der Ebene 0 befindet. [Winston1993]
4.1 Blinde SucheUnter blinder Suche versteht man,
daß zur Auffindung eines Lösungspfades keine weiteren Informationen über
das Suchproblem vorliegen, die für einen effektivere Suche herangezogen
werden könnten. In unserem Beispiel könnten das die
Luftlinien-Entfernungen zwischen den einzelnen Städten sein. Zu den
Blinden Suchen gehören die Tiefensuche, die Breitensuche und die
Randomisierte Suche. [Winston1993]
4.1.1 Tiefensuche (depth-first search)Bei der
Tiefensuche wird ausgehend vom Start-Node ein Nachbar-Node besucht. Den
Nachbarn des Start-Nodes im Graphen entsprechen die Children des
Start-Nodes im Suchbaum. Ist dieser Nachbar noch nicht der Ziel-Node, so
wird ein Nachbar dieses Nodes besucht. Dies geschieht solange, bis sich
entweder eine Schleife bildet, oder der Algorithmus in eine Sackgasse
gerät. In diesem Fall geht der Algorithmus soviele Schritte zurück, bis er
einen Node findet, dessen Nachbarn er noch nicht alle besucht hat und
setzt mit einem solchen Nachbarn fort. Abbildung 4.3
zeigt diese Vorgangsweise. Der Algorithmus ist in Abbildung 4.4
dargestellt [Winston1993].
Die Tiefensuche eignet sich damit besonders für Suchbäume, deren Äste eine
vertretbare Länge nicht überschreiten.
|
Abbildung 4.3: Ein Beispiel für eine
Tiefensuche. Mit jedem Schritt wird eine Ebene tiefer untersucht, bis
das Ziel gefunden ist oder man an ein Blatt gelangt ist. In diesem Fall
geht man den Baum soweit zurück, bis man einen Node gefunden hat, dessen
Children noch nicht fertig betrachtet sind.
4.1.2 Breitensuche (breadth-first search)Die
Breitensuche untersucht ausgehend von Start-Node alle Nachbar-Nodes. Ist
der Ziel-Node noch nicht erreicht, werden alle Nachbar-Nodes der bisher
untersuchten Nachbarn betrachtet, usw. Aus der Sicht des Suchbaums
arbeitet man sich somit Ebene für Ebene nach unten, wie dies in Abbildung
4.5
dargestellt wird. Der Algorithmus für die Breitensuche ist in Abbildung 4.6
dargestellt. [Winston1993]
|
Abbildung 4.5: Ein Beispiel für eine
Breitensuche. Der Suchbaum wird Ebene für Ebene
durchsucht.
Welcher
der beiden Algorithmen verwendet werden soll, die Tiefen- oder die
Beitensuche, hängt von der Aufgabenstellung ab. Die Tiefensuche eignet
sich besonders für Suchbäume, deren Äste nach einer vertretbaren Anzahl
von Schritten in eine Sackgasse oder zum Ziel führen. Die Tiefe des Baumes
darf nicht zu groß sein. Besonders schlecht verhält sich die Tiefensuche,
wenn der Suchbaum lange Äste besitzt, die nicht zum Ziel führen.
Die Breitensuche eignet sich auch für Bäume mit großer Tiefe. Jedoch
darf der Suchbaum nicht stark verzweigen. Ein großer Branching-Faktor
führt zur exponentiellen Explosion der Nodes-Anzahl. [Winston1993]
4.1.3 Nichtdeterministische SucheBesitzt man keine
Informationen über den Branching Faktor oder über die voraussichtliche
Tiefe des Suchbaumes, ist es schwer, eine Entscheidung zwischen den beiden
oben vorgestellten Algorithmen zu treffen. Einen Mittelweg für diesen Fall
stellt die Nichtdeterministische Suche dar. Bei diesem Algorithmus wird
durch Zufall bestimmt, von welchem noch nicht fertig abgearbeiteten Node,
die Nachbarn untersucht werden. Der Algorithmus gleicht dem der Breiten-
und Tiefensuche, jedoch werden die untersuchten Pfade an zufälliger Stelle
in die Queue geschrieben. Der Algorithmus ist in Abbildung 4.7
dargestellt [Winston1993].
4.2 Heuristisch informierte SucheBei vielen
Problemen lassen sich die Suchkosten dramatisch verringern, wenn man
zusätzliche Informationen heranzieht, die dabei helfen, den Nachbar-Node
auszuwählen, der als nächstes betrachtet werden soll. Suchverfahren die
solche Informationen in ihre Suchentscheidungen einfließen lassen, heißen
Heuristische4.1 Suchverfahren. In unserem Beispiel sollen
als zusätzlichen Informationen die Luftlinie-Entfernung von den Nodes zum
Ziel-Node herangezogen werden. Für das Straßenkarenproblem sind die
Entfernungen in Abbildung 4.8
angegeben. Anhand dieser Abbildung soll das Hill-Climbing, das Beam Search
und das Best-First Search Verfahren vorgestellt werden. [Winston1993]
|
Abbildung: Zusätzlich zu den Informationen
aus Abbildung 4.1
sind auch die Luftlinie-Entfernungen der Nodes zum Ziel-Node bekannt.
Heuristische Suchverfahren verwenden diese zusätzliche Information, um
die Suche effektiver zu gestalten.
4.2.1 Hill-ClimbingHill-Climbing-Search verhält sich
wie die Tiefensuche, mit dem Unterschied, daß zuerst der Node betrachtet
wird, der die kürzeste Luftlinie-Entfernung zum Ziel hat. Abbildung 4.9
zeigt dieses Vorgehen. Bei der ersten Entscheidung liegt D näher am Ziel
als A. Daher werden zuerst die Children von D untersucht. Der Algorithmus
ist in Abbildung 4.10
dargestellt und gleicht dem der Tiefensuche. Es werden jedoch die Pfade
sortiert, bevor sie in die Queue geschrieben werden. [Winston1993]
|
Abbildung: Der Hill-Climbing Algorithmus
funktioniert wie die Tiefensuche, jedoch wird immer zuerst der scheinbar
beste Pfad weiterverfolgt. Es gibt aber keine Garantie, daß der
scheinbar beste Pfad auch tatsächlich der Beste ist oder überhaupt zum
Ziel führt.
Die
grundsätzliche Vorgehensweise des Hill-Climbe Algorithmus und die Probleme
die bei seiner Anwendung entstehen können, sollen anhand eines anderen
Beispiels erklärt werden. Diese Probleme können auch bei den später
vorgestellten heuristischen Suchverfahren auftreten.
Ein Bergsteiger will einen Gipfel erklimmen. Es ist neblig. Der
Bergsteiger besitzt weder eine Karte, noch befindet er sich auf einem Weg.
Die einzigen Hilfsmittel die er besitzt, sind ein Kompaß und ein
Höhenmesser. Um den Gipfel zu erreichen wird der Bergsteiger von seiner
Position aus einen Schritt nach Norden machen, die Höhe feststellen und
wieder einen Schritt zurück auf seine ursprüngliche Position gehen. Die
selbe Prozedur wiederholt er für die anderen drei Himmelsrichtungen. Dies
entspricht dem Untersuchen der Child-Nodes im Suchbaum. Der Bergsteiger
hat nun für jede Himmelrichtung notiert, in welche Höhe er gelangen kann,
wenn er einen Schritt in dieser Richtung geht und wird sich für die
Richtung entscheiden, in die er die größte Höhe erreicht. Diese
Vorgehensweise ist sehr effektiv. Der Bergsteiger kann jedoch auf
folgenden drei Probleme stoßen. Die Bezeichnungen sind zwar an das
Bergsteigen angelehnt, können aber bei allen heuristischen Suchenverfahren
auftreten [Winston1993]:
- Vorberge: Dieses Problem tritt dann auf, wenn sich auf der
Ebene, auf der sich der Bergsteiger befindet, mehrere lokale Maxima
existierten, wie dies in Abbildung 4.11a
dargestellt ist. Gerät der Hill-Climbe Algorithmus in die Nähe eines
lokalen Maximums, so wird er von diesem angezogen. Er findet damit ein
lokales Maximum, nicht aber das Ziel, ein globales Maximum.
- Platos: Der Bergsteiger befindet sich auf einer Ebene gleich
schlechter Lösungen, weitweg von einem Maximum, das ihn anzieht. Im
Extremfall sind die Maxima ganz scharfkantig ausgeprägt, wie die in
Abbildung 4.11b
Dargestellt ist. Der Hill-Climbe Algorithmus wird somit von keinem
Maximum angezogen.
- Grade: Der Bergsteiger befindet sich auf dem Rücken eines
Grades, der nicht in eine Richtung verläuft, in der sich der Bergsteiger
bewegen kann. Da es in alle Richtungen nur bergab geht, erscheint die
aktuelle Position wie ein Maximum. Eine solche Situation ist in 4.11c
abgebildet.
|
Abbildung 4.11: Probleme, auf die man beim
Hill-Climbing Algorithmus stosen kann: a. Vorberge, b. Ebene, c.
Grade. Die drei oben angeführten Probleme tragen
zwar Bezeichnungen, die aus der Sprache des Bersteigens kommen, sie treten
aber auch bei anderen Anwendungsgebieten auf, die mit heuristischen
Suchverfahren gelöst werden sollen. Beim Beispiel mit der Straßenkarte aus
Abbildung 4.1
wäre der Node C z.B. ein Vorberg. Von diesem lokalen Maximum führt keine
Straße zum Ziel-Node G.
Allgemein formuliert arbeitet der Hill-Climbe Algorithmus nach dem
folgenden Prinzip: Der Algorithmus unternimmt von der aktuellen Position
aus alle machbaren Schritte und mißt und bewertet wie weit ihn die
einzelnen Schritte dem Ziel näher gebracht haben. Anschließend entscheidet
er sich für den Schritt, der ihn scheinbar dem Ziel am nächsten bringt.
Verfängt sich der Algorithmus an einem lokalen Maximum, bei dem man sich
durch alle Schritte vom Ziel weg bewegt, so kann man nichtdeterministisch
fortfahren. Man bewegt sich eine zufällige Anzahl von Schritten in
zufällige Richtungen von der aktuellen Position fort, in der Hoffnung, dem
Einzugsgebiet des lokalen Maximums zu entkommen und setzt den Hill-Climbe
Algorithmus fort. Ähnlich verfährt man, wenn man sich auf einer Ebene
befindet, in der Hoffnung in das Einzugsgebiet eines Maximums zu gelangen
[Winston1993].
4.2.2 Beam SearchBeam Search verhält sich ähnlich wie
die Breitensuche. Der Baum wird Ebene für Ebene abgearbeitet. Jedoch
werden pro Ebene nur die w besten Pfade weiter betrachtet. Der Baum bleibt
somit unabhängig vom Branching Faktor nur Pfade breit und explodiert nicht
exponentiell. Abbildung 4.12
zeigt die Vorgangsweise des Beam Search Algorithmus mit anhand des Straßenkartenproblems.
Es ist möglich, daß der Beam-Search Algorithmus keine Lösung eines
Problems findet, obwohl eine Lösung existiert. Dies ist dann der Fall,
wenn die
scheinbar besten Pfade einer Ebene in weiterer Folge nicht zum Ziel
führen. [Winston1993]
|
Abbildung: Beam-Search mit . Es werden pro Ebene im Suchbaum
nur die scheinbar besten Pfade weiterverfolgt.
4.2.3 Best-First SearchDas Best-First Search
Verfahren verhält sich ähnlich dem Hill-Climbing. Der Unterschied liegt im
Verhalten, wenn sich ein Pfad als Sackgasse herausstellt. Das
Hill-Climbing geht soviel Nodes zurück, bis es zu einen Node gelangt, von
dem aus es noch nicht alle Möglichkeiten untersucht hat. Gerät das
Best-First Verfahren in eine Sackgasse, so betrachtet es die Bewertungen
alle Pfade, die es bereits gegangen ist und setzt den besten gefundenen,
noch nicht besuchten Pfad, fort. Für das Beispiel des
Straßenkartenproblems verhält sich Best-First Search und Hill-Climbing
identisch, da die Suchen in keine Sackgasse gerät, wie Abbildung 4.9
zeigt. [Winston1993]
12 ZusammenfassungDie
oben vorgestellten heuristischen Suchverfahren können nur dann eingesetzt
werden, wenn sich für jeden Node eine Maßzahl bestimmen läßt, die die
Entfernung zum gewünschten Suchziel widerspiegelt. Das Hill-Climbing und
das Beam Search Verfahren arbeiten effektiv, wenn ein Zielpfad unter jenen
Pfaden ist die bei jedem Entscheidungspunkt als die bestmöglichen
erscheinen. Best-First Search arbeitet auch dann noch effektiv, wenn gute
Pfade auf den ersten Blick nicht als solche erscheinen.
4.3 Optimale NetzsucheIn dem Graphen, der in
Abbildung 4.1
dargestellt ist, sind bei den Links zwischen den Nodes Zahlen angegeben,
die Link-Labels. Diese Link-Labels entsprechen den Kosten, die durch eine
Benützung dieses Links entstehen. Ein optimales Suchverfahren hat nun die
Aufgabe, einen Pfad von Start-Node S zum Ziel-Node G zu finden, bei dem
die Summe der Kosten der benutzten Links am geringsten ist. Sieht man den
Graphen aus Abbildung 4.1
als Straßenkarte an, so können die Link-Labels z.B. den Entfernungen
zwischen den einzelne Städten entsprechen. Der gesuchte optimale Pfad wäre
somit die kürzestmögliche Verbindung vom Start zum Ziel. In diesem Kapitel
sollen nun Algorithmen vorgestellt werden, mit deren Hilfe man den
optimalen Lösungspfad suchen kann. Dazu gehören die British Museum
Procedure, Branch-and-Bound Search, Branch-and-Bound Search mit
Abschätzung der Restkosten, Branch-and-Bound Search mit Eliminierung
redundanter Doppelwege und den A
Algorithmus.
4.3.1 British Museum ProcedureEin mögliches Verfahren
dazu ist die British Museum Procedure. Bei diesem Algorithmus werden
zuerst alle möglichen Pfade von Start zum Ziel gesucht und anschließend
der kürzeste daraus ausgewählt. Die Suche nach allen möglichen
Lösungspfaden kann mit Hilfe der Tiefen- oder Breitensuche erfolgen, indem
man den Algorithmus geringfügig ändert. Die Suchschleife soll nicht
abgebrochen werden, sobald eine Lösung gefunden wurde, sondern erst nach
dem für alle möglichen Pfade überprüft wurde, ob sie zum Ziel führen.
Diese Methode eignet sich jedoch nur für sehr kleine Graphen. Für größere
Graphen ist der Aufwand zu groß alle Pfade zu betrachten.
4.3.2 Branch-and-Bound SearchDie Idee, die hinter der
Branch-and-Bound Search steht, ist folgende: Angenommen man weiß von einem
Pfad, daß er vom Start zum Ziel führt und möchte überprüfen, ob es sich um
den optimalen Lösungspfad handelt, so reicht es, alle anderen Pfade nur
soweit zu betrachten, bis deren Kosten größer werden, als die Kosten der
Benützung des optimalen Pfades.
Die Umsetzung dieser Idee in einem Algorithmus sieht dabei wie folgt
aus. Der Algorithmus erzeugt ausgehend vom Start-Node Pfade zu allen
Nachbarn und berechnet die Kosten die eine Benützung des Pfades
verursacht. Anschließend wird der Pfad ausgewählt, der die geringsten
Kosten verursacht. Vom Endpunkt dieses Pfades aus werden nun alle Pfade
erzeugt, die zu den Nachbarn dieses Nodes führen. Im nächsten Schritt
werden die Kosten jedes neuen Pfades bestimmt. Aus der Menge aller Pfade
wird nun der Pfad mit den geringsten Kosten ausgewählt und Pfade zu den
Nachbarn des Endpunktes erzeugt. Diese Vorgehensweise wiederholt sich
solange, bis ein Pfad zum Ziel-Node führt. Somit ist ein scheinbar
optimaler Pfad gefunden. Um zu überprüfen, ob es sich dabei tatsächlich um
den optimalen Pfad handelt, muß man alle anderen Pfade noch solange
betrachten, bis deren Kosten die des scheinbar optimalen Pfades
überschreiten oder mit niedereren Kosten zum Ziel führen. Überschreiten
alle Pfade die Kosten des scheinbar optimalen Pfades, weiß man, daß es
sich bei dem scheinbar optimalen Pfad tatsächlich um den optimalen Pfad
handelt. Findet man jedoch einen Pfad, der niedrigere Kosten verursacht,
so entspricht dieser dem optimalen Pfad. Der in Abbildung 4.13
dargestellte Algorithmus arbeitet besonders effektiv, wenn sich falsche
Pfade schnell hohe Kosten verursachen und sie somit nicht mehr weiter
berücksichtigt werden müssen. Abbildung 4.14
zeigt die Schritte beim Aufbau des Suchbaums des Straßenkartenproblems von
Abbildung 4.1.
[Winston1993]
|
Abbildung: Branch-and-Bound Search
Algorithmus angewandt auf das
Straßenkartenprobelem.
4.3.3 Branch-and-Bound Search mit Abschätzung der
RestkostenDie Effizienz des Branch-and-Bound Search Algorithmus läßt
sich steigern, wenn man eine Abschätzung der Restkosten als Grundlage
verwendet, um zu entscheiden, welcher Pfad als nächstes um einen Schritt
zu allen möglichen Nachbarn erweitert werden soll. Man sagt auch, der Pfad
wird expandiert. Existiert eine gute Schätzung der Restkosten, so stellt
die Summe aus den Kosten des bisher gegangenen Pfades und die geschätzten
Kosten bis zum Ziel, eine gute Schätzung für die Länge des Pfades vom
Start zum Ziel dar. Zum leichteren Verständnis beziehen sich die
Bezeichnungen in den weiteren Erklärungen auf das Straßenkartenproblem von
Abbildung 4.1.
Darum wird anstelle von Kosten, von Weglängen zwischen den Städten
gesprochen. Dabei darf jedoch nicht vergessen werden, daß es sich bei den
Kosten auch um Zeitaufwand, um Geldeinheiten, usw. handeln kann.
Der Algorithmus berechnet nun zu jedem Pfad die Länge des geschätzten
Pfades zum Ziel und expandiert im nächsten Schritt jenen Pfad mit den
geringsten geschätzten Länge. Dies geschieht solange, bis der Algorithmus
beim Expandieren auf den Ziel-Node stößt. Dieser Pfad ist dann der
optimale Lösungspfad, wenn die Schätzung der nachfolgenden Bedingung
genügt. Die Schätzung des Restweges darf nie größer sein, als die
tatsächliche Länge des Pfades zum Ziel. Wäre dies der Fall, so könnte der
Suchalgorithmus dauerhaft vom optimalen Lösungspfad abgebracht werden.
Dadurch kann man sich nicht mehr sicher sein, daß die Suche den optimalen
Pfad als Ergebnis liefert. Unterschätzt die Schätzung den Restweg, im
Extremfall mit der Länge Null, so wird dadurch lediglich die Auswahl der
zunächst expandierten Pfade beeinflußt und die Effizienz sinkt, das
Suchergebnis wird jedoch immer dem optimalen Pfad entsprechen. Der
Algorithmus für die Branch-and-Bound Search mit Restkostenabschätzung ist
in Abbildung 4.15
dargestellt.
Für das
Straßenkartenproblem stellt die Luftlinie-Entfernung zum Ziel eine gute
Schätzung für den Restwert dar. Die Entfernungen sind in Abbildung 4.8
dargestellt. Es ist auch sichergestellt, daß die Schätzung nie größer ist,
als die tatsächliche Entfernung zum Ziel, denn eine Straße kann nie kürzer
sein, als die Luftlinie-Verbindung zwischen zwei Städten. Der schrittweise
Aufbau des Suchbaumes ist in Abbildung 4.16
dargestellt. Der Branch-and-Bound Search Algorithmus mit Abschätzung der
Restkosten arbeitet besonders effektiv, wenn eine gute Schätzung der
Restkosten zur Verfügung steht.
|
Abbildung: Branch-and-Bound Search mit
Abschätzung der Restkosten angewandt auf das
Straßenkartenprobelem.
4.3.4 Branch-and-Bound Search mit Eliminierung längerer
DoppelwegeDer Branch-and-Bound Search Algorithmus mit Eliminierung
längerer Doppelwege soll anhand von Abbildung 4.17
erläutert werden. Im ersten Schritt wurde der Start-Node expandiert und
die beiden Pfade A-S und S-D sind entstanden. Da der Pfad S-A kürzer ist,
wird dieser zuerst weiterbetrachtet. Es entstehen die Pfade S-A-B und
S-A-D. Es stellt sich nun die Frage, ob es überhaupt sinnvoll ist, den
Pfad S-A-D mit der Länge 8 weiter zu betrachten, da bereits ein Pfad
bekannt ist, der mit der Länge 4 zum Node D führt (S-D). Dieser Teilpfad
kann somit sicher nicht zum optimalen Lösungspfad beitragen.
|
Abbildung: Branch-and-Bound Search
Algorithmus mit Eliminierung längerer Doppelwege verfolgt nur den
kürzesen Pfad zu einem Node weiter. Der
Branch-and-Bound Search Algorithmus mit Eliminierung längerer Doppelwege
basiert somit auf der Grundlage, daß er alle Pfade ignoriert, die zu einem
Node führen, der auch durch einen anderen, kürzeren Pfad erreicht werden
kann. Der Algorithmus dazu ist in Abbildung 4.18
dargestellt. Den schrittweisen Aufbau des Suchbaumes findet man in
Abbildung 4.19.
|
Abbildung: Branch-and-Bound Search
Algorithmus mit Eliminierung längerer Doppelwege angewandt auf das
Straßenkartenprobelem.
A
Algorithmus
Der A
Algorithmus stellt einen Branch-and-Bound Search Algorithmus mit
Abschätzung der Restkosten und Eliminierung längerer Doppelwege dar. Die
Auswahl des nächsten expandierten Pfades erfolgt über die
Restwertabschätzung. Zunächst werden längere redundante Doppelwege nicht
mehr weiter berücksichtigt. Bezüglich der Restwertabschätzung gilt auch
die Voraussetzung, daß der Schätzwert nie größer sein darf, als der
tatsächlich verbleibende Weg zum Ziel. Der Algorithmus ist in Abbildung 4.20
dargestellt.
ZusammenfassungZusammenfassend
kann man sagen, daß den British Museum Algorithmus nur für sehr kleine
Suchprobleme anwendbar ist. Der Branch-and-Bound Search Algorithmus hat
seine Stärken, wenn schlechte Pfade sehr schnell hohe Kosten verursachen.
Ergänzt man diesen Algorithmus um die Restwertabschätzung, so steigt die
Effizienz, je besser die Schätzung ist. Der Schätzwert darf jedoch nicht
die tatsächlich verbleibenden Kosten zum Ziel überschreiten. Der
Branch-and-Bound Search Algorithmus mit Eliminierung längerer Doppelwege
arbeitet besonders effektiv, wenn viele Pfade zu einem gleichen Node
führen. Der A
Algorithmus sollte dann eingesetzt werden, wenn sowohl Branch-and-Bound
Search Algorithmus mit Abschätzung der Restkosten und der Branch-and-Bound
Search Algorithmus mit Eliminierung längerer Doppelwege ihre Stärken
aufweisen.
Gerald
Reif 2000-02-01 |