Next: Sequenzierung
Up: Verschiedene Methoden für MSA
Previous: Carillo-Lipman Bounding
Die Strategie der GDUS (Goal-directed-unidirectional-search),
auch unter dem Namen
-Algorithmus
bekannt, kommt
aus dem Bereich des Maschinenlernens und des VLSI-Designs.
Sie versucht, Information zu verwenden, um die Berechung eines
kürzesten Pfades zielgerichteter zu einem Zielknoten t zu gestalten.
Dies geschieht mit Hilfe einer unteren Schranke
.
Zuerst definiert man die Kosten einer Kante (q,r) wie folgt neu:
wobei
eine untere Schranke für die Kosten
eines kürzesten Pfades von q nach r ist.
Wenn l() die Konsistenz-Bedingung erfüllt:
dann kann man zeigen, daß die Umgewichtung der Kantenkosten nichts
am optimalen Pfad ändert und die Kantengewichte immer noch positiv
sind, also immer noch Dijkstras Algorithmus angewandt werden kann.
Wir werden
als untere Schranke benutzen. L erfüllt
die Konsistenz-Bedingung:
Man kann sich vorstellen, daß eine bessere untere Schranke
die Suche zielgerichteter zu t macht. Im Extremfall, wenn L
scharf ist, so wird aus der priority queue immer nur der nächste
Knoten auf einem optimalen Pfad extrahiert.
Im anderen Extremfall, wenn L=0, haben wir genau den Fall
des Standard-Boundings.
Wir wenden nun Standard-Bounding auf den Grid-Graph mit umdefinierten
Kantengewichten an.
Mit den neuen Kantengewichten hat ein kürzester Pfad
von s nach q
die Kosten
.
Da der Wert
eine vorberechnete Konstante ist, lassen wir ihn weg und
fügen einen Nachbarknoten
r mit dem Wert
in die
priority queue Q ein, wobei
Wenn wir nun das Standard-Bounding anwenden, so müssen wir nicht immer
einen Knoten r in Q einfügen, nämlich genau dann dann nicht wenn
wobei
U eine obere Schranke für
.
Die Argumentation ist wie oben, da
eine untere Schranke für den Wert eines kürzesten
Pfades von s nach t durch
q und r ist.
Dies schließt nicht aus, daß r eventuell später in Q eingefügt
wird, wenn es von einem anderen Nachbarknoten q' aus besucht wird.
Wenn r jedoch nie in Q eingefügt wird, d.h., wenn
,
dann nennen wir r U-ungültig,
anderenfalls U-gültig.
Der folgende Satz wurde unabhängig von Lermen in [Ler97] und Horton und
Lawler in [Hor97] bewiesen.
Satz 12
CL-Ungültigkeit impliziert U-Ungültigkeit.
Beweis:
Wenn also CL
i,j(q)>U für alle i,j dann ist auch PRIO(q)>U,
das heißt q ist insbesondere U-ungültig, wenn es CL-ungültig ist.
Next: Sequenzierung
Up: Verschiedene Methoden für MSA
Previous: Carillo-Lipman Bounding
Knut Reinert
1998-03-09