Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
6.11. APPROXIMATION VON OPTIMIERUNGSPROBLEMEN 181<br />
für die die Zahl<br />
m<strong>in</strong>imal ist.<br />
T = max{ <br />
S(i)=1<br />
ti, . . ., <br />
S(i)=k<br />
E<strong>in</strong> 1/3-approximierender Algorithmus A für SIT(k)<br />
Der folgende Algorithmus erledigt erst die längsten Arbeiten und erst dann die<br />
kürzeren. Außerdem zieht er die am wenigsten benutzten Masch<strong>in</strong>en vor. Wir benutzen<br />
die Hilfsvariable<br />
E<strong>in</strong>gabe: Zahlen t1, . . . , tk<br />
ti}<br />
Tm = die Zeit, die Masch<strong>in</strong>e m bisher gearbeitet hat<br />
Ausgabe: Funktion S : {1, . . ., n} → {1, . . ., k}<br />
1: sortiere die gegebenen Zeiten, so dass t1 ≥ t2 ≥ · · · ≥ tn<br />
2: for m = 1 to k do<br />
3: Tm := 0<br />
4: end for<br />
5: for i = 1 to n do<br />
6: m := e<strong>in</strong> Index mit Tm = m<strong>in</strong>{T1, . . . , Tk}<br />
7: S(i) := m<br />
8: Tm := Tm + ti<br />
9: end for<br />
Korrektheit: In der zweiten Schleife ab Zeile 5 wird jede Aufgabe Wi e<strong>in</strong>er Masch<strong>in</strong>e<br />
S(i) zugeordnet.<br />
Zeitkomplexität: Das Sortieren <strong>in</strong> Zeile 1 dauert O(n·log n) Zeite<strong>in</strong>heiten, die Initialisierung<br />
<strong>in</strong> Zeilen 2–4 dauert O(1) E<strong>in</strong>heiten, jeder der n Durchläufe der Schleife ab<br />
Zeile 5 dauert O(1) Zeite<strong>in</strong>heiten (<strong>in</strong>sbesondere besitzt die Menge, deren M<strong>in</strong>imum<br />
<strong>in</strong> Zeile 6 zu bestimmen ist, immer k Elemente). Insgesamt wird der Zeitbedarf des<br />
Algorithmus durch das Sortieren <strong>in</strong> Zeile 1 dom<strong>in</strong>iert und betragt<br />
O(n log n).<br />
Dies ist also e<strong>in</strong> Algorithmus der Klasse P.<br />
Approximierung: Dieser Algorithmus ist 1/3-approximierend. Anstatt dies hier zu<br />
beweisen, zeigen wir (für e<strong>in</strong> beliebig kle<strong>in</strong>es ε > 0) e<strong>in</strong>en ε-approximierenden Algorithmus<br />
für SIT(k).<br />
Beispiel 4 (E<strong>in</strong> ε-approximierender Algorithmus für SIT(k)). Die Idee ist e<strong>in</strong>fach:<br />
wir wählen e<strong>in</strong>e ” geeignete“ Konstante und verteilen die ersten r (längsten) Aufgaben<br />
optimal – z.B. suchen wir aus allen k r möglichen Zuordnungen die beste aus.<br />
Den Rest berechnen wir mit dem Algorithmus aus Beispiel 3. Wir werden zeigen,<br />
dass jede Wahl<br />
(1) r ><br />
k − 1<br />
ε<br />
e<strong>in</strong>en ε-approximierbaren Algorithmus ergibt. Für e<strong>in</strong>e ausgewählte Konstante r<br />
beschreiben wir also den entsprechenden Algorithmus.<br />
Approximierender Algorithmus Ar für SIT(k):<br />
1: sortiere t1 ≥ t2 ≥ · · · ≥ tn<br />
2: f<strong>in</strong>de für die E<strong>in</strong>gabe t1, . . .,tr die optimale Planung Sopt : {1, . . .,r} → {1, . . .,k}<br />
3: for m = 1 to k do