18.09.2013 Aufrufe

Skript in PDF - Theoretische Informatik - Technische Universität ...

Skript in PDF - Theoretische Informatik - Technische Universität ...

Skript in PDF - Theoretische Informatik - Technische Universität ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

180 KAPITEL 6. KOMPLEXITÄT VON ALGORITHMEN<br />

6: E := E − {v : v e<strong>in</strong>e Kante mit Endknoten x oder y}<br />

7: od<br />

Korrektheit: Wir konstruieren hier e<strong>in</strong>e Menge D von Knoten mit der Eigenschaft,<br />

dass jede im Schritt 6 entfernte Kante e<strong>in</strong>en Endknoten <strong>in</strong> D hat. Da am Ende alle<br />

Kanten entfernt worden s<strong>in</strong>d, ist D e<strong>in</strong>e Knotenüberdeckung.<br />

Zeitkomplexität ist l<strong>in</strong>ear, denn jede Kante des Graphen wird von dem Algorithmus<br />

nur e<strong>in</strong>mal besucht.<br />

Beziehung zum Optimum: Bezeichnen wir für jeden Graphen G mit opt(G) die m<strong>in</strong>imale<br />

Größe e<strong>in</strong>er Knoten-Überdeckung und mit c(G) die Größe der Überdeckung,<br />

die unser Algorithmus konstruiert. Es gilt<br />

c(G) ≤ 2opt(G).<br />

In der Tat hat der Algorithmus die folgende Eigenschaft: D wird mittels paarweise<br />

disjunkter Kanten des Graphen G konstruiert. Jede Überdeckung D0 muß wenigsten<br />

e<strong>in</strong>en Endknoten von jeder dieser Kanten enthalten, also muß D0 m<strong>in</strong>destens<br />

halbsoviele Elemente wie D haben.<br />

Def<strong>in</strong>ition. Sei (Σ, E, A, L, c) e<strong>in</strong> Optimierungsproblem. E<strong>in</strong> ε-approximierender<br />

Algorithmus (ε ≥ 0 e<strong>in</strong>e reelle Zahl) ist e<strong>in</strong> Algorithmus der Klasse P, der für jede<br />

E<strong>in</strong>gabe w ∈ E e<strong>in</strong>e Ausgabe v ∈ A mit vLw berechnet, so dass der relative Fehler<br />

von c(w, v) im Vergleich zum optimalen Wert opt(w) kle<strong>in</strong>er gleich ε ist; d.h., es gilt<br />

c(w, v) − opt(w)<br />

opt(w)<br />

Beispiel 2. Für MINIMALE KNOTEN-ÜBERDECKUNG haben wir e<strong>in</strong>en 1approximierenden<br />

Algorithmus gefunden: es gilt c(w, v) ≤ 2opt(v), also<br />

c(w, v) − opt(w)<br />

opt(w)<br />

≤ ε.<br />

≤ 1.<br />

Dieser Algorithmus ist nicht ε-approximierend für ε < 1, denn schon für den Graphen<br />

mit zwei Knoten und e<strong>in</strong>er Kante gilt opt = 1, c(w, v) = 2.<br />

Beispiel 3 (SIT (Schedul<strong>in</strong>g Independent Tasks)). Es sollen Aufgaben W1, . . . , Wn<br />

mit gegebener zeitlicher Dauer t1, . . .,tn durch k Masch<strong>in</strong>en bewältigt werden. Wir<br />

nehmen an, dass jede Masch<strong>in</strong>e unabhängig von den anderen jede Aufgabe bearbeiten<br />

kann. Unsere Ziel ist es, e<strong>in</strong>en Plan (schedule) zu erstellen, d.h. jeder Arbeit Wi<br />

(i = 1, . . .,n) e<strong>in</strong>e Masch<strong>in</strong>e S(i) = 1, . . .,k zuzuordnen, so dass der Zeitbedarf T<br />

zur Erledigung aller Aufgaben m<strong>in</strong>imal ist. Die Laufzeit der Masch<strong>in</strong>e m(= 1, . . .,k)<br />

beträgt ti, wobei über alle i mit S(i) = m summiert wird. Der Zeitbedarf ist somit<br />

T = max{ <br />

S(i)=1<br />

ti, . . . , <br />

S(i)=k<br />

Da die Zahl k der Masch<strong>in</strong>en konstant ist, bezeichnen wir das Problem als SIT(k).<br />

Wir haben also:<br />

E<strong>in</strong>gabe von SIT(k): Zahlen t1, . . . , tn.<br />

Ausgabe von SIT(k): e<strong>in</strong>e Funktion<br />

S : {1, . . .,n} → {1, . . .,k},<br />

ti}.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!