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.

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!