5 Entwurfsmethoden für Algorithmen
5 Entwurfsmethoden für Algorithmen
5 Entwurfsmethoden für Algorithmen
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Algorithmus 54 Schema der Least Cost-Methode <strong>für</strong> Maximierungsprobleme<br />
(*T sei der Aufzählungsbaum <strong>für</strong> ein Maximierungsproblem *)<br />
Initialisiere eine Priority Queue (Maximumsheap) Q, die den Wurzelknoten vonT als einziges<br />
Element enthält;<br />
(* Ordnung der Elemente von Q ist durch die oberen Schranken ub(·) gegeben *)<br />
WHILE Q = /0 DO<br />
v := EXTRACT_MAX(Q);<br />
IF v ist ein Blatt THEN<br />
gib ub(v) aus und halte an<br />
FI<br />
FOR ALL Söhne w von v inT DO<br />
berechne ub(w) und füge w in Q ein<br />
OD<br />
OD<br />
(* v stellt eine optimale Lösung dar *)<br />
(* Expandiere Knoten v, d.h. *)<br />
(*generiere die Söhne von v *)<br />
Satz 5.2.10 (Partielle Korrektheit der LC-Methode). Unter den obigen Voraussetzungen (1) und<br />
(2) stellt das erste Blatt, welches die LC-Methode der Priority Queue entnimmt, eine optimale<br />
Lösung dar.<br />
Beweis. Sei z das erste Blatt, welches die LC-Methode findet und y ein beliebiges anderes Blatt<br />
im Aufzählungsbaum. Zu zeigen ist, dass value(y) ≤ value(z).<br />
Die BFS-ähnliche Vorgehensweise der LC-Methode, mit der jeder innere Knoten v, welcher<br />
der Priority Queue Q entnommen wird, durch seine Söhne ersetzt wird, stellt sicher, dass es zu<br />
jedem noch nicht besuchten Knoten w einen Knoten x in Q gibt, so dass sich w im Teilbaum<br />
von x befindet. Wir wenden diese Aussage auf das Blatt w = y an.<br />
Nach Definition von opt(x) ist<br />
z<br />
opt(x) = max value(y ′ ) : y ′ ist Blatt im Teilbaum von x ≥ value(y).<br />
194<br />
x<br />
y