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.

Diese Überlegungen führen zu dem in Algorithmus 66 angegebenen Verfahren, welches die<br />

Kosten einer kürzesten Rundreise bestimmt. Hierzu werden die Werte Cost(W,v) zunächst <strong>für</strong><br />

alle einelementigen KnotenmengenW ⊆V \{s}, dann <strong>für</strong> alle zweielementigen Knotenmengen,<br />

dann <strong>für</strong> alle dreielementigen Knotenmengen, usw. berechnet. In der letzten Iteration erhält man<br />

die Werte Cost(V \{s},v) <strong>für</strong> alle Knoten v ∈ V \{s}, aus denen sich der gesuchte Wert mincost<br />

mit der oben genannten Formel ergibt.<br />

Algorithmus 66 Algorithmus <strong>für</strong> das TSP (dynamisches Programmieren)<br />

(* s ist ein fest gewählter Startknoten, in dem die Rundreise beginnt. *)<br />

FOR ALL Knoten v DO<br />

Cost({v},v) := δ(s,v)<br />

OD<br />

FOR ALL ℓ = 2,...,|V| − 1 DO<br />

FOR ALL ℓ-elementige Teilmengen W von V \ {s} DO<br />

FOR ALL v ∈ W DO<br />

Cost(W,v) := min (Cost(W \ {v},w)+δ(w,v)); (* siehe Lemma 5.5.12 *)<br />

w∈W\{v}<br />

OD<br />

OD<br />

OD<br />

mincost := min (Cost(V \ {s},v)+δ(v,s)); (* Kosten einer kürzesten Rundreise *)<br />

v∈V \{s}<br />

Berechnung einer kürzesten Rundreise. Algorithmus 66 wurde so formuliert, dass nur die<br />

Kosten einer kürzesten Rundreise ermittelt werden, nicht aber eine kürzeste Rundreise selbst.<br />

Zur Berechnung einer kürzesten Rundreise kann wie folgt verfahren werden. Für jedes Paar<br />

(W,v) bestehend aus einer Teilmenge W von V \ {s} und einem Knoten v ∈ W bestimmen wir<br />

einen Knoten Last(W,v) = w, <strong>für</strong> den (w,v) die letzte Kante eines kürzesten Pfads<br />

π(W,v) ∈ Paths(W,v)<br />

ist. Ist also Last(W,v) = w, so gibt es eine kürzeste Reise π(W,v) ∈ Paths(W,v) von der Form<br />

π(W,v) = s,...,w,v. Die Berechnung derartiger Knoten Last(W,v) kann wie folgt in Algorithmus<br />

66 eingebaut werden:<br />

• Ist W = {v} einelementig, dann ist Last({v},v) = s.<br />

• Ist W mindestens zweielementig, dann kann man Last(W,v) = w setzen, wobei w ein<br />

Knoten in W \ {v} ein Knoten ist, <strong>für</strong> den Cost(W,v) = Cost(W \ {v},w)+δ(w,v) gilt.<br />

254

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!