Approximations Algorithmen

26
Approximative Algorithmen Robert B. Inhalt Einleitung Grundlegende Eigenschaften ute/Performance Approximationsklass Beispiel JS Algorithmus Analyse Ergebnis Fragen Approximative Algorithmen ”Wie genau ist ungef¨ ahr?” Robert Bahmann Hochschule RheinMain University of Applied Sciences Wiesbaden R¨ usselsheim Geisenheim July 23, 2009 1 / 20

description

 

Transcript of Approximations Algorithmen

Page 1: Approximations Algorithmen

ApproximativeAlgorithmen

Robert B.

Inhalt

Einleitung

GrundlegendeEigenschaften

Gute/Performance

Approximationsklassen

Beispiel

JS Algorithmus

Analyse

Ergebnis

Fragen

Approximative Algorithmen”Wie genau ist ungefahr?”

Robert Bahmann

Hochschule RheinMain University of Applied SciencesWiesbaden Russelsheim Geisenheim

July 23, 2009

1 / 20

Page 2: Approximations Algorithmen

ApproximativeAlgorithmen

Robert B.

Inhalt

Einleitung

GrundlegendeEigenschaften

Gute/Performance

Approximationsklassen

Beispiel

JS Algorithmus

Analyse

Ergebnis

Fragen

1 Einleitung

2 Grundlegende EigenschaftenGute/PerformanceApproximationsklassen

3 BeispielJS AlgorithmusAnalyseErgebnis

4 Fragen

2 / 20

Page 3: Approximations Algorithmen

ApproximativeAlgorithmen

Robert B.

Inhalt

Einleitung

GrundlegendeEigenschaften

Gute/Performance

Approximationsklassen

Beispiel

JS Algorithmus

Analyse

Ergebnis

Fragen

Viele Probleme sind nicht effizient exakt losbarsolange P 6= NP

3 / 20

Page 4: Approximations Algorithmen

ApproximativeAlgorithmen

Robert B.

Inhalt

Einleitung

GrundlegendeEigenschaften

Gute/Performance

Approximationsklassen

Beispiel

JS Algorithmus

Analyse

Ergebnis

Fragen

Approximationsalgorithmen

Warum Approximationsalgorithmen?

arbeiten in polynomieller Zeit

produzieren Losungen mit garantierter Gute

4 / 20

Page 5: Approximations Algorithmen

ApproximativeAlgorithmen

Robert B.

Inhalt

Einleitung

GrundlegendeEigenschaften

Gute/Performance

Approximationsklassen

Beispiel

JS Algorithmus

Analyse

Ergebnis

Fragen

Gute/Performance

Gute/Performance

Absolut AGA(I) = |A(I)− OPT(I)|

Relativ RGA(I) = max{

A(I)OPT (I) ,

OPT (I)A(I)

}

5 / 20

Page 6: Approximations Algorithmen

ApproximativeAlgorithmen

Robert B.

Inhalt

Einleitung

GrundlegendeEigenschaften

Gute/Performance

Approximationsklassen

Beispiel

JS Algorithmus

Analyse

Ergebnis

Fragen

Approximationsklassen

APXApproximable - Gut approximierbare Probleme.

6 / 20

Page 7: Approximations Algorithmen

ApproximativeAlgorithmen

Robert B.

Inhalt

Einleitung

GrundlegendeEigenschaften

Gute/Performance

Approximationsklassen

Beispiel

JS Algorithmus

Analyse

Ergebnis

Fragen

PTASPolynomial Time Approximation SchemeBeliebig gut Approximierbar auf Kosten des Fehlers.

7 / 20

Page 8: Approximations Algorithmen

ApproximativeAlgorithmen

Robert B.

Inhalt

Einleitung

GrundlegendeEigenschaften

Gute/Performance

Approximationsklassen

Beispiel

JS Algorithmus

Analyse

Ergebnis

Fragen

FPTASFully Polynomial Time Approximation SchemeBeliebig gut und schnell Approximierbar auf Kosten desFehlers un der Laufzeit.

8 / 20

Page 9: Approximations Algorithmen

ApproximativeAlgorithmen

Robert B.

Inhalt

Einleitung

GrundlegendeEigenschaften

Gute/Performance

Approximationsklassen

Beispiel

JS Algorithmus

Analyse

Ergebnis

Fragen

Job Scheduling

Job Scheduling

Auf p Prozessoren (P1, P2, ...,Pn) sollen t Tasks(T1, T2, ...,Ti ) verteilt werden. Dabei hat jeder Tasks eineLaufzeit li die der Prozessor benotigt, um diesenabzuarbeiten.

9 / 20

Page 10: Approximations Algorithmen

ApproximativeAlgorithmen

Robert B.

Inhalt

Einleitung

GrundlegendeEigenschaften

Gute/Performance

Approximationsklassen

Beispiel

JS Algorithmus

Analyse

Ergebnis

Fragen

Job Scheduling - Beispiel

Auf einem Rechner mit einem Dual-Core mussen folgendeTasks abgearbeitet werden:

Task Zeit

1 1

2 2

3 2

4 4

5 1

10 / 20

Page 11: Approximations Algorithmen

ApproximativeAlgorithmen

Robert B.

Inhalt

Einleitung

GrundlegendeEigenschaften

Gute/Performance

Approximationsklassen

Beispiel

JS Algorithmus

Analyse

Ergebnis

Fragen

Job Scheduling - Beispiel

Core 1: (0, P1), (1, P3), (3, P2)

Core 2: (0, P4), (4, P5)

11 / 20

Page 12: Approximations Algorithmen

ApproximativeAlgorithmen

Robert B.

Inhalt

Einleitung

GrundlegendeEigenschaften

Gute/Performance

Approximationsklassen

Beispiel

JS Algorithmus

Analyse

Ergebnis

Fragen

Job Scheduling - Algorithmus

Algorithmus 1 : Job Schedule

Input : p Prozessoren,t Taks und die Laufzeiten li fur jedenTask

Output : Eine Prozessorbelegung S mit minimalenMakespan

S = null ;for i = 1 to m do

ai = null;

for k = 1 to n doBerechne das kleinste i mit ai = min{aj ; j ∈ {1..., m}};Sk = ai ;ai = ai + pk ;S = S ∪ {(Sk , Mi )}

return S ;

12 / 20

Page 13: Approximations Algorithmen

ApproximativeAlgorithmen

Robert B.

Inhalt

Einleitung

GrundlegendeEigenschaften

Gute/Performance

Approximationsklassen

Beispiel

JS Algorithmus

Analyse

Ergebnis

Fragen

Job Scheduling - Ausgabe

Algorithmusausgabe

Core 1: (0, P1), (1, P3), (4, P5)

Core 2: (0, P2), (2, P4)

13 / 20

Page 14: Approximations Algorithmen

ApproximativeAlgorithmen

Robert B.

Inhalt

Einleitung

GrundlegendeEigenschaften

Gute/Performance

Approximationsklassen

Beispiel

JS Algorithmus

Analyse

Ergebnis

Fragen

Job Scheduling - Ausgabe

Algorithmusausgabe

Core 1: (0, P1), (1, P3), (4, P5)

Core 2: (0, P2), (2, P4)

13 / 20

Page 15: Approximations Algorithmen

ApproximativeAlgorithmen

Robert B.

Inhalt

Einleitung

GrundlegendeEigenschaften

Gute/Performance

Approximationsklassen

Beispiel

JS Algorithmus

Analyse

Ergebnis

Fragen

Analyse

Sei Zk = sk + lk die Zeit in der der k-te Task endet.

Sei Tlast der Task der als letztes beendet wird.

Dann ist die Gesamtlaufzeit Zgesamt = slast + llast

14 / 20

Page 16: Approximations Algorithmen

ApproximativeAlgorithmen

Robert B.

Inhalt

Einleitung

GrundlegendeEigenschaften

Gute/Performance

Approximationsklassen

Beispiel

JS Algorithmus

Analyse

Ergebnis

Fragen

Analyse

Sei Zk = sk + lk die Zeit in der der k-te Task endet.

Sei Tlast der Task der als letztes beendet wird.

Dann ist die Gesamtlaufzeit Zgesamt = slast + llast

14 / 20

Page 17: Approximations Algorithmen

ApproximativeAlgorithmen

Robert B.

Inhalt

Einleitung

GrundlegendeEigenschaften

Gute/Performance

Approximationsklassen

Beispiel

JS Algorithmus

Analyse

Ergebnis

Fragen

Analyse

Sei Zk = sk + lk die Zeit in der der k-te Task endet.

Sei Tlast der Task der als letztes beendet wird.

Dann ist die Gesamtlaufzeit Zgesamt = slast + llast

14 / 20

Page 18: Approximations Algorithmen

ApproximativeAlgorithmen

Robert B.

Inhalt

Einleitung

GrundlegendeEigenschaften

Gute/Performance

Approximationsklassen

Beispiel

JS Algorithmus

Analyse

Ergebnis

Fragen

Analyse

Sei Zk = sk + lk die Zeit in der der k-te Task endet.

Sei Tlast der Task der als letztes beendet wird.

Dann ist die Gesamtlaufzeit Zgesamt = slast + llast

14 / 20

Page 19: Approximations Algorithmen

ApproximativeAlgorithmen

Robert B.

Inhalt

Einleitung

GrundlegendeEigenschaften

Gute/Performance

Approximationsklassen

Beispiel

JS Algorithmus

Analyse

Ergebnis

Fragen

Analyse

Sei Zk = sk + lk die Zeit in der der k-te Task endet.

Sei Tlast der Task der als letztes beendet wird.

Dann ist die Gesamtlaufzeit Zgesamt = slast + llast

14 / 20

Page 20: Approximations Algorithmen

ApproximativeAlgorithmen

Robert B.

Inhalt

Einleitung

GrundlegendeEigenschaften

Gute/Performance

Approximationsklassen

Beispiel

JS Algorithmus

Analyse

Ergebnis

Fragen

Analyse

1 Sei Zk = sk + lk die Zeit in der der k-te Task endet.

2 Sei Tlast der Task der als letztes beendet wird.

3 Dann ist die Gesamtlaufzeit Zgesamt = slast + llast

4 Damit ist die durchschnittliche Laufzeit bis zum Startdes letzten Jobs hochstens: 1

n

∑k∈{1,..,i}\{last} lk

5 Es existiert also mindestens ein Prozessor dessenGesamtlaufzeit hochstens von dieser Große ist, also:slast ≤ 1

n

∑k∈{1,..,i}\{last} lk

15 / 20

Page 21: Approximations Algorithmen

ApproximativeAlgorithmen

Robert B.

Inhalt

Einleitung

GrundlegendeEigenschaften

Gute/Performance

Approximationsklassen

Beispiel

JS Algorithmus

Analyse

Ergebnis

Fragen

Analyse

1 Sei Zk = sk + lk die Zeit in der der k-te Task endet.

2 Sei Tlast der Task der als letztes beendet wird.

3 Dann ist die Gesamtlaufzeit Zgesamt = slast + llast

4 Damit ist die durchschnittliche Laufzeit bis zum Startdes letzten Jobs hochstens: 1

n

∑k∈{1,..,i}\{last} lk

5 Es existiert also mindestens ein Prozessor dessenGesamtlaufzeit hochstens von dieser Große ist, also:slast ≤ 1

n

∑k∈{1,..,i}\{last} lk

15 / 20

Page 22: Approximations Algorithmen

ApproximativeAlgorithmen

Robert B.

Inhalt

Einleitung

GrundlegendeEigenschaften

Gute/Performance

Approximationsklassen

Beispiel

JS Algorithmus

Analyse

Ergebnis

Fragen

Analyse

1 slast ≤ 1n

∑k∈{1,..,i}\{last} lk

2 offensichtlich gilt: OPT ≥ llast

3 ebenso: OPT ≥ 1n

∑ik=1 lk

16 / 20

Page 23: Approximations Algorithmen

ApproximativeAlgorithmen

Robert B.

Inhalt

Einleitung

GrundlegendeEigenschaften

Gute/Performance

Approximationsklassen

Beispiel

JS Algorithmus

Analyse

Ergebnis

Fragen

Analyse

Zgesamt = Zlast (1)

= slast + llast (2)

≤ 1

n

∑k∈{1,..,i}\{last}

lk + llast (3)

=1

n

i∑k=1

lk +

(1− 1

n

)llast (4)

≤ OPT +

(1− 1

n

)∗ OPT (5)

=

(2− 1

n

)∗ OPT (6)

17 / 20

Page 24: Approximations Algorithmen

ApproximativeAlgorithmen

Robert B.

Inhalt

Einleitung

GrundlegendeEigenschaften

Gute/Performance

Approximationsklassen

Beispiel

JS Algorithmus

Analyse

Ergebnis

Fragen

Ergebnis

Und jetzt?

Wir haben gerade gezeigt das List Schedule einerelative Gute von

(2− 1

n

)hat. (juhu!)

Kann als Basis genutzt werden um List Schedule zuverbessern

Eingabe komplett erfassen und SortierenAlternativ nur vorhandene Eingabe sortieren und denrest nach altem Verfahren sortieren usw.

18 / 20

Page 25: Approximations Algorithmen

ApproximativeAlgorithmen

Robert B.

Inhalt

Einleitung

GrundlegendeEigenschaften

Gute/Performance

Approximationsklassen

Beispiel

JS Algorithmus

Analyse

Ergebnis

Fragen

Fragen?

Fragen?

19 / 20

Page 26: Approximations Algorithmen

ApproximativeAlgorithmen

Robert B.

Inhalt

Einleitung

GrundlegendeEigenschaften

Gute/Performance

Approximationsklassen

Beispiel

JS Algorithmus

Analyse

Ergebnis

Fragen

Ende

Quellen

Diese Prasentation beruht auf der Ausarbeitung im Rahmendieses Fachseminars. Samtliche Quellen sind dort zu finden.

20 / 20