|
Nächste Seite: 5. Spielbäume Aufwärts: I. Der Untersuchungsbereich Vorherige Seite: 3. Einführung in die   Inhalt
|
|
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]
|
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 Suche
Unter 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.
|
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]
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 Suche
Besitzt 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 Suche
Bei 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]
|
4.2.1 Hill-Climbing
Hill-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]
|
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.
|
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 Search
Beam 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]
|
4.2.3 Best-First Search
Das 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 Zusammenfassung
Die 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 Netzsuche
In 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 Procedure
Ein 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 Search
Die 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]
4.3.3 Branch-and-Bound Search mit Abschätzung der Restkosten
Die 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.
|
4.3.4 Branch-and-Bound Search mit Eliminierung längerer Doppelwege
Der 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.
|
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.
|
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.
Zusammenfassung
Zusammenfassend 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.
Nächste Seite: 5. Spielbäume Aufwärts: I. Der Untersuchungsbereich Vorherige Seite: 3. Einführung in die   Inhalt Gerald Reif
2000-02-01
