Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
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 />
≤ ε