17.09.2013 Aufrufe

5 Entwurfsmethoden für Algorithmen

5 Entwurfsmethoden für Algorithmen

5 Entwurfsmethoden für Algorithmen

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!