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

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

iti.cs.tu.bs.de
von iti.cs.tu.bs.de Mehr von diesem Publisher
18.09.2013 Aufrufe

182 KAPITEL 6. KOMPLEXITÄT VON ALGORITHMEN 4: Tm := Sopt(i)=m ti 5: end for 6: for i = r + 1 to n do 7: m := ein Index mit Tm = min{T1, . . . , Tk} 8: S(i) := m 9: Tm := Tm + ti 10: end for Korrektheit: klar Zeitkomplexität: Für jede Konstante r hat dieser Algorithmus dieselbe Zeitkomplexität O(n · log n) wie oben in Beispiel 3. Genauer: der Algorithmus braucht die Zeit O(n log n + k r+1 ). Für jede Konstante r ist dies einfach O(n log n). Wenn aber ε in (1) gegen Null geht, wächst r und die Zeitkomplexität steigt exponentiell. In der Tat kann die optimale Zuordnung in Zeile 2 wie folgt gefunden werden: wir durchsuchen alle k r möglichen Zurodnungen: für jede Zuordnung S berechnen wir in der Zeit O(k) die gesamte Bearbeitungszeit T(S), die die m Arbeiten unter der Planung S dauern, und dann finden wir in der Zeit O(k r ) das Minimum aller T(S). Schritt 2 dauert also O(k · k r ) Zeiteinheiten. O(k k/ε ) Zeiteinheiten und der Algorithmus hat also die Zeitkomplexität O(n·log n+k M+1 ). Approximierung: Wir beweisen, dass unser Algorithmus ε-approximierbar ist, falls (1) gilt: (2) aus r ≥ k ε folgt T − Topt Topt Beweis. T sei der Zeitbedarf der Zuordnung, die unser Algorithmus findet. Es muß mindestens eine Aufgabe Wi geben, die genau zur Zeit T beendet wird. Falls i ≤ r, ist Wi eine der optimal zugeordneten Aufgaben W1, . . . , Wr – also stimmt der Zeitbedarf T (zufällig) mit dem (optimalen) Zeitbedarf für die ersten r Aufgaben überein und ist folglich selber optimal, T = Topt, was (2) beweist. Wir können also (3) i > r annehmen. Also erfolgt die Zuordnung der Aufgabe Wi durch den obigen Algorithmus A. Die Aufgabe Wi beginnt zur Zeit T −ti. Daraus folgt, dass alle k Maschinen im Zeitraum [0, T −ti) durchgängig beschäftigt sind. Falls es nämlich eine Maschine geben sollte, deren Tätigkeit zur Zeit T0 < T − ti aufhört, würde der Algorithmus A die Aufgabe Wi auf dieser Maschine zum Zeitpunkt T0 beginnen lassen (denn A bevorzugt die weniger beschäftigten Maschinen) und somit würde Wi nicht zur Zeit T enden. Die Gesamtarbeitszeit aller k Maschinen im Zeitraum [0, T −ti), also einem Intervall der Länge T − ti, beträgt also k(T − ti). Aber der Algorithmus A verplant nur Aufgaben Wj mit j < i in diesem Zeitraum (da Wi selbst erst zur Zeit T − ti anfängt). Im Intervall [0, T − ti) werden also nur die Aufgaben W1, . . . , Wi−1 bearbeitet. Die Gesamtarbeitszeit k(T − ti) ist also höchstens so groß wie die Zeit t1 + · · · + ti−1, die die Bearbeitung der Aufgaben W1, . . . , Wi−1 verlangt: (4) k(T − ti) ≤ t1 + · · · + ti−1. Es gilt also (5) T ≤ t1 + · · · + ti−1 k + ti. ≤ ε

6.11. APPROXIMATION VON OPTIMIERUNGSPROBLEMEN 183 Anderseits dauern alle n Aufgaben insgesamt t1 + · · · + tn Zeiteinheiten. Die optimale Zuordnung ergibt einen Zeitbedarf von Topt Zeiteinheiten, dabei sind die k Maschinen maximal kTopt Zeiteinheiten aktiv (falls alle die ganze Zeit beschäftigt sind). Daraus folgt (6) kTopt ≥ t1 + · · · + tn. Dann gilt (7) Topt ≥ t1 + · · · + tn k Die Kombination von (5) und (7) ergibt T − Topt ≤ t1 + · · · + ti−1 k Aus (2) wissen wir, dass ti ≤ tr (denn i > r), also (8) T − Topt ≤ tr. ≥ t1 + · · · + ti−1 . k + ti − t1 + · · · + ti−1 k Jetzt benutzen wir (6) nochmals: da t1 ≥ t2 · · · ≥ tn, gilt Topt ≥ t1 + · · · + tn k und kombiniert mit (8), bekommen wir (9) Da r ≥ k ε T − Topt Topt ≥ t1 + · · · + tr k ≤ tr r·tr k = k r . ≥ r · tr k = ti k ist, folgt r ≤ ε, also ist (9) die gewünschte Ungleichung. Satz 1. Für kein ε > 0 gibt es einen ε-approximierenden Algorithmus für TSP, falls P = N P. Beweis. Wir wissen, dass HAMILTONSCHER KREIS ein N P-vollständiges Problem ist. Wir beweisen, dass wir einen Algorithmus A der Klasse P für HAMIL- TONSCHER KREIS finden können, falls ein ε-approximierender Algorithmus Aε für TSP gegeben ist – es folgt, dass P = N P. Ein ungerichteter Graph G als Eingabe wird von A wie folgt bearbeitet: Der Algorithmus Aε wird auf das TSP angewendet mit n Städten und 1 falls (i, j) eine Kante von G ist di,j = 2 + ⌈εn⌉ falls nicht, wobei ⌈εn⌉ die kleinste ganze Zahl ≥ εn ist. Bezeichnen wir mit c die Kosten der Tour, die Aε findet. Der Algorithmus A liefert die Antwort JA genau dann, wenn c ≤ (1 + ε)n. Korrektheit des Algorithmus A: wir beweisen In der Tat: G hat einen Hamiltonschen Kreis ⇐⇒ c ≤ (1 + ε)n.

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

4: Tm := <br />

Sopt(i)=m ti<br />

5: end for<br />

6: for i = r + 1 to n do<br />

7: m := e<strong>in</strong> Index mit Tm = m<strong>in</strong>{T1, . . . , Tk}<br />

8: S(i) := m<br />

9: Tm := Tm + ti<br />

10: end for<br />

Korrektheit: klar<br />

Zeitkomplexität: Für jede Konstante r hat dieser Algorithmus dieselbe Zeitkomplexität<br />

O(n · log n) wie oben <strong>in</strong> Beispiel 3. Genauer: der Algorithmus braucht die<br />

Zeit<br />

O(n log n + k r+1 ).<br />

Für jede Konstante r ist dies e<strong>in</strong>fach O(n log n). Wenn aber ε <strong>in</strong> (1) gegen Null<br />

geht, wächst r und die Zeitkomplexität steigt exponentiell.<br />

In der Tat kann die optimale Zuordnung <strong>in</strong> Zeile 2 wie folgt gefunden werden: wir<br />

durchsuchen alle k r möglichen Zurodnungen: für jede Zuordnung S berechnen wir<br />

<strong>in</strong> der Zeit O(k) die gesamte Bearbeitungszeit T(S), die die m Arbeiten unter der<br />

Planung S dauern, und dann f<strong>in</strong>den wir <strong>in</strong> der Zeit O(k r ) das M<strong>in</strong>imum aller T(S).<br />

Schritt 2 dauert also O(k · k r ) Zeite<strong>in</strong>heiten.<br />

O(k k/ε )<br />

Zeite<strong>in</strong>heiten und der Algorithmus hat also die Zeitkomplexität O(n·log n+k M+1 ).<br />

Approximierung: Wir beweisen, dass unser Algorithmus ε-approximierbar ist, falls<br />

(1) gilt:<br />

(2) aus r ≥ k<br />

ε<br />

folgt T − Topt<br />

Topt<br />

Beweis. T sei der Zeitbedarf der Zuordnung, die unser Algorithmus f<strong>in</strong>det. Es<br />

muß m<strong>in</strong>destens e<strong>in</strong>e Aufgabe Wi geben, die genau zur Zeit T beendet wird. Falls<br />

i ≤ r, ist Wi e<strong>in</strong>e der optimal zugeordneten Aufgaben W1, . . . , Wr – also stimmt der<br />

Zeitbedarf T (zufällig) mit dem (optimalen) Zeitbedarf für die ersten r Aufgaben<br />

übere<strong>in</strong> und ist folglich selber optimal, T = Topt, was (2) beweist. Wir können also<br />

(3) i > r<br />

annehmen. Also erfolgt die Zuordnung der Aufgabe Wi durch den obigen Algorithmus<br />

A. Die Aufgabe Wi beg<strong>in</strong>nt zur Zeit T −ti. Daraus folgt, dass alle k Masch<strong>in</strong>en<br />

im Zeitraum [0, T −ti) durchgängig beschäftigt s<strong>in</strong>d. Falls es nämlich e<strong>in</strong>e Masch<strong>in</strong>e<br />

geben sollte, deren Tätigkeit zur Zeit T0 < T − ti aufhört, würde der Algorithmus<br />

A die Aufgabe Wi auf dieser Masch<strong>in</strong>e zum Zeitpunkt T0 beg<strong>in</strong>nen lassen (denn<br />

A bevorzugt die weniger beschäftigten Masch<strong>in</strong>en) und somit würde Wi nicht zur<br />

Zeit T enden. Die Gesamtarbeitszeit aller k Masch<strong>in</strong>en im Zeitraum [0, T −ti), also<br />

e<strong>in</strong>em Intervall der Länge T − ti, beträgt also k(T − ti). Aber der Algorithmus A<br />

verplant nur Aufgaben Wj mit j < i <strong>in</strong> diesem Zeitraum (da Wi selbst erst zur Zeit<br />

T − ti anfängt). Im Intervall [0, T − ti) werden also nur die Aufgaben W1, . . . , Wi−1<br />

bearbeitet. Die Gesamtarbeitszeit k(T − ti) ist also höchstens so groß wie die Zeit<br />

t1 + · · · + ti−1, die die Bearbeitung der Aufgaben W1, . . . , Wi−1 verlangt:<br />

(4) k(T − ti) ≤ t1 + · · · + ti−1.<br />

Es gilt also<br />

(5) T ≤ t1 + · · · + ti−1<br />

k<br />

+ ti.<br />

≤ ε

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!