134
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

  • Upload
    len

  • View
    22

  • Download
    1

Embed Size (px)

DESCRIPTION

Datenstrukturen, Algorithmen und Programmierung 2 (DAP2). Organisatorisches. Heimübungsblatt 4 Aufgabe 1 wurde ausgetauscht Falls Sie die alte 1 bereits gemacht haben, geben Sie sie mit ab Praktikum - PowerPoint PPT Presentation

Citation preview

Page 1: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

Page 2: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

2

Organisatorisches

Heimübungsblatt 4 Aufgabe 1 wurde ausgetauscht Falls Sie die alte 1 bereits gemacht haben, geben Sie sie mit ab

Praktikum Ab dem nächsten Blatt (Blatt 9) fließt nur noch eine Aufgabe der

Präsenzübung in die Wertung ein Weitere Aufgaben sind optional

Page 3: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

3

Stand der Dinge

Gierige Algorithmen Konstruiere Lösung Schritt für Schritt In jedem Schritt: Optimiere ein einfaches, lokales Kriterium

Beobachtung Man kann viele unterschiedliche gierige Algorithmen für ein Problem

entwickeln Nicht jeder dieser Algorithmen löst das Problem korrekt

Page 4: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

4

Gierige Algorithmen

Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)

• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll

Deadline 6

Länge 1

Länge 2

Länge 3

Deadline 2

Deadline 41

2

3

Aufgabe 1

Aufgabe 2

Aufgabe 3

Page 5: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

5

Gierige Algorithmen

Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)

• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll

Deadline 6

Länge 1

Länge 2

Länge 3

Deadline 2

Deadline 41

2

3

Aufgabe 1

Aufgabe 2

Aufgabe 3

O.b.d.A. Resource steht ab Zeitpunkt 0 zur Verfügung

O.b.d.A. Resource steht ab Zeitpunkt 0 zur Verfügung

Page 6: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

6

Gierige Algorithmen

Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)

• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll

Deadline 6

Länge 1

Länge 2

Länge 3

Deadline 2

Deadline 41

2

3

Aufgabe 1

Aufgabe 2

Aufgabe 3

Aufgabe 1: Fertig zu Zeitpunkt 1

Aufgabe 1: Fertig zu Zeitpunkt 1

1

Page 7: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

7

Gierige Algorithmen

Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)

• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll

Deadline 6

Länge 1

Länge 2

Länge 3

Deadline 2

Deadline 41

2

3

Aufgabe 1

Aufgabe 2

Aufgabe 3

Aufgabe 1: Fertig zu Zeitpunkt 1

Aufgabe 1: Fertig zu Zeitpunkt 1

Aufgabe 2: Fertig zu Zeitpunkt 3

Aufgabe 2: Fertig zu Zeitpunkt 3

1 2

Page 8: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

8

Gierige Algorithmen

Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)

• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll

Deadline 6

Länge 1

Länge 2

Länge 3

Deadline 2

Deadline 41

2

3

Aufgabe 1

Aufgabe 2

Aufgabe 3

Aufgabe 1: Fertig zu Zeitpunkt 1

Aufgabe 1: Fertig zu Zeitpunkt 1

Aufgabe 2: Fertig zu Zeitpunkt 3

Aufgabe 2: Fertig zu Zeitpunkt 3

1 2

Aufgabe 3: Fertig zu Zeitpunkt 6

Aufgabe 3: Fertig zu Zeitpunkt 6

3

Page 9: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

9

Gierige Algorithmen

Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)

• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll

Deadline 6

Länge 1

Länge 2

Länge 3

Deadline 2

Deadline 41

2

3

Aufgabe 1

Aufgabe 2

Aufgabe 3

Aufgabe 1: Fertig zu Zeitpunkt 1

Aufgabe 1: Fertig zu Zeitpunkt 1

Aufgabe 2: Fertig zu Zeitpunkt 3

Aufgabe 2: Fertig zu Zeitpunkt 3

1 2

Aufgabe 3: Fertig zu Zeitpunkt 6

Aufgabe 3: Fertig zu Zeitpunkt 6

3

Alle Aufgaben sind rechtzeitig fertig!Alle Aufgaben sind rechtzeitig fertig!

Page 10: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

10

Gierige Algorithmen

Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)

• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll

Deadline 6

Länge 1

Länge 2

Länge 3

Deadline 4

Deadline 4

2

3

Aufgabe 1

Aufgabe 2

Aufgabe 3

1

Page 11: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

11

Gierige Algorithmen

Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)

• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll

Deadline 6

Länge 1

Länge 2

Länge 3

Deadline 4

Deadline 4

2

3

Aufgabe 1

Aufgabe 2

Aufgabe 3

1

1

Page 12: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

12

Stand der Dinge

Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)

• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll

Deadline 6

Länge 1

Länge 2

Länge 3

Deadline 4

Deadline 4

2

3

Aufgabe 1

Aufgabe 2

Aufgabe 3

1

1 2

Page 13: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

13

Stand der Dinge

Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)

• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll

Deadline 6

Länge 1

Länge 2

Länge 3

Deadline 4

Deadline 4

2

3

Aufgabe 1

Aufgabe 2

Aufgabe 3

1

1 2

Aufgabe 2 wird zu spät

beendet

Aufgabe 2 wird zu spät

beendet

Page 14: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

14

Gierige Algorithmen

Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)

• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll

Deadline 6

Länge 1

Länge 2

Länge 3

Deadline 4

Deadline 4

2

3

Aufgabe 1

Aufgabe 2

Aufgabe 3

1

2

Page 15: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

15

Gierige Algorithmen

Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)

• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll

Deadline 6

Länge 1

Länge 2

Länge 3

Deadline 4

Deadline 4

2

3

Aufgabe 1

Aufgabe 2

Aufgabe 3

1

2 1

Aufgabe 1 wird zu spät

beendet

Aufgabe 1 wird zu spät

beendet

Page 16: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

16

Gierige Algorithmen

Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)

• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll

Deadline 6

Länge 1

Länge 2

Länge 3

Deadline 4

Deadline 4

2

3

Aufgabe 1

Aufgabe 2

Aufgabe 3

1

Wir können nicht alle Aufgaben bearbeiten und gleichzeitig die

Deadlines einhalten!

Wir können nicht alle Aufgaben bearbeiten und gleichzeitig die

Deadlines einhalten!

Page 17: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

17

Gierige Algorithmen

Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)

• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll

Deadline 6

Länge 1

Länge 2

Länge 3

Deadline 4

Deadline 4

2

3

Aufgabe 1

Aufgabe 2

Aufgabe 3

1

Wir können nicht alle Aufgaben bearbeiten und gleichzeitig die

Deadlines einhalten!

Wir können nicht alle Aufgaben bearbeiten und gleichzeitig die

Deadlines einhalten!

1

Page 18: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

18

Gierige Algorithmen

Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)

• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll

Deadline 6

Länge 1

Länge 2

Länge 3

Deadline 4

Deadline 4

2

3

Aufgabe 1

Aufgabe 2

Aufgabe 3

1

Wir können nicht alle Aufgaben bearbeiten und gleichzeitig die

Deadlines einhalten!

Wir können nicht alle Aufgaben bearbeiten und gleichzeitig die

Deadlines einhalten!

1 2

Page 19: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

19

Gierige Algorithmen

Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)

• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll

Deadline 6

Länge 1

Länge 2

Länge 3

Deadline 4

Deadline 4

2

3

Aufgabe 1

Aufgabe 2

Aufgabe 3

1

Wir können nicht alle Aufgaben bearbeiten und gleichzeitig die

Deadlines einhalten!

Wir können nicht alle Aufgaben bearbeiten und gleichzeitig die

Deadlines einhalten!

1 2

Aufgabe 2:Verspätung 1

Page 20: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

20

Gierige Algorithmen

Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)

• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll

Deadline 6

Länge 1

Länge 2

Länge 3

Deadline 4

Deadline 4

2

3

Aufgabe 1

Aufgabe 2

Aufgabe 3

1

Wir können nicht alle Aufgaben bearbeiten und gleichzeitig die

Deadlines einhalten!

Wir können nicht alle Aufgaben bearbeiten und gleichzeitig die

Deadlines einhalten!

1 2

Aufgabe 2:Verspätung 1

3

Page 21: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

21

Gierige Algorithmen

Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)

• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll

Deadline 6

Länge 1

Länge 2

Länge 3

Deadline 4

Deadline 4

2

3

Aufgabe 1

Aufgabe 2

Aufgabe 3

1

Wir können nicht alle Aufgaben bearbeiten und gleichzeitig die

Deadlines einhalten!

Wir können nicht alle Aufgaben bearbeiten und gleichzeitig die

Deadlines einhalten!

1 2

Aufgabe 2:Verspätung 1

3

Aufgabe 3:Verspätung 2

Page 22: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

22

Gierige Algorithmen

Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)

• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll

Deadline 6

Länge 1

Länge 2

Länge 3

Deadline 4

Deadline 4

2

3

Aufgabe 1

Aufgabe 2

Aufgabe 3

1

1 2

Aufgabe 2:Verspätung 1

3

Aufgabe 3:Verspätung 2

Ziel:Minimiere maximale Verspätung

Ziel:Minimiere maximale Verspätung

Page 23: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

23

Gierige Algorithmen

Strategie 1 Bearbeite die Jobs nach ansteigender Länge

2

6

1

5

3

4

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

Page 24: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

24

Gierige Algorithmen

Strategie 1 Bearbeite die Jobs nach ansteigender Länge

2

6

1

5

3

4

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

Keine Verspätung

Keine Verspätung

1

Page 25: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

25

Gierige Algorithmen

Strategie 1 Bearbeite die Jobs nach ansteigender Länge

2

6

1

5

3

4

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

Keine Verspätung

Keine Verspätung

1 5

Page 26: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

26

Gierige Algorithmen

Strategie 1 Bearbeite die Jobs nach ansteigender Länge

2

6

1

5

3

4

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

Keine Verspätung

Keine Verspätung

1 5 3

Page 27: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

27

Gierige Algorithmen

Strategie 1 Bearbeite die Jobs nach ansteigender Länge

2

6

1

5

3

4

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

Keine Verspätung

Keine Verspätung

1 5 3 4

Page 28: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

28

Gierige Algorithmen

Strategie 1 Bearbeite die Jobs nach ansteigender Länge

2

6

1

5

3

4

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

1 5 3 4 2

Verspätung 5

Page 29: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

29

Gierige Algorithmen

Strategie 1 Bearbeite die Jobs nach ansteigender Länge

2

6

1

5

3

4

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

1 5 3 4 2 6

Verspätung 3

Page 30: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

30

Gierige Algorithmen

Strategie 1 Bearbeite die Jobs nach ansteigender Länge

2

6

1

5

3

4

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

1 5 3 4 2 6

Maximale Verspätung durch Aufgabe 2 (5 Zeiteinheiten)

Maximale Verspätung durch Aufgabe 2 (5 Zeiteinheiten)

Page 31: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

31

Gierige Algorithmen

Strategie 1 Bearbeite die Jobs nach ansteigender Länge Optimalität?

2

6

1

5

3

4

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

1 5 3 4 2 6

Maximale Verspätung durch Aufgabe 2 (5 Zeiteinheiten)

Maximale Verspätung durch Aufgabe 2 (5 Zeiteinheiten)

Page 32: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

32

Gierige Algorithmen

Strategie 1 Bearbeite die Jobs nach ansteigender Länge Optimalität?

2

6

1

5

3

4

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

5

Keine Verspätung

Keine Verspätung

Page 33: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

33

Gierige Algorithmen

Strategie 1 Bearbeite die Jobs nach ansteigender Länge Optimalität?

2

6

1

5

3

4

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

5

Keine Verspätung

Keine Verspätung

2

Page 34: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

34

Gierige Algorithmen

Strategie 1 Bearbeite die Jobs nach ansteigender Länge Optimalität?

2

6

1

5

3

4

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

5

Keine Verspätung

Keine Verspätung

2 3

Page 35: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

35

Gierige Algorithmen

Strategie 1 Bearbeite die Jobs nach ansteigender Länge Optimalität?

2

6

1

5

3

4

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

5 2 3 4

Verspätung 2

Page 36: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

36

Gierige Algorithmen

Strategie 1 Bearbeite die Jobs nach ansteigender Länge Optimalität?

2

6

1

5

3

4

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

5 2 3 4 1

Keine Verspätung

Keine Verspätung

Page 37: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

37

Gierige Algorithmen

Strategie 1 Bearbeite die Jobs nach ansteigender Länge Optimalität?

2

6

1

5

3

4

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

5 2 3 4 1 6

Maximale Verspätung durch Aufgabe 6 (3 Zeiteinheiten)

Maximale Verspätung durch Aufgabe 6 (3 Zeiteinheiten)

Page 38: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

38

Gierige Algorithmen

Strategie 1 Bearbeite die Jobs nach ansteigender Länge Optimalität? Problem: Ignoriert Deadlines völlig

2

6

1

5

3

4

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

5 2 3 4 1 6

Maximale Verspätung durch Aufgabe 6 (3 Zeiteinheiten)

Maximale Verspätung durch Aufgabe 6 (3 Zeiteinheiten)

Page 39: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

39

Gierige Algorithmen

Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t

2

6

1

5

3

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

4

Page 40: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

40

Gierige Algorithmen

Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t

2

6

1

5

3

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

4

Spielraum 8

Page 41: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

41

Gierige Algorithmen

Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t

2

6

1

5

3

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

4

Spielraum 4

Page 42: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

42

Gierige Algorithmen

Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t

2

6

1

5

3

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

4

Spielraum 1

2

Page 43: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

43

Gierige Algorithmen

Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t

2

6

1

5

3

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

4Spielraum 2

52

Page 44: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

44

Gierige Algorithmen

Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t

2

6

1

5

3

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

4

52

Spielraum 4

3

Page 45: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

45

Gierige Algorithmen

Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t

2

6

1

5

3

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

4

52 3

Spielraum 4

4

Page 46: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

46

Gierige Algorithmen

Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t

2

6

1

5

3

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

4

52 3 4

Spielraum 6

6

Page 47: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

47

Gierige Algorithmen

Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t

2

6

1

5

3

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

4

52 3 4 6 1

Spielraum 8

Page 48: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

48

Gierige Algorithmen

Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t

2

6

1

5

3

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

4

52 3 4 6 1

Verspätung 3

Page 49: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

49

Gierige Algorithmen

Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t

2

6

1

5

3

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

4

52 3 4 6 1

Verspätung 3

Optimal für unsere Eingabe

Optimal für unsere Eingabe

Page 50: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

50

Gierige Algorithmen

Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t Optimalität?

2

1

Deadline 9

Deadline 3Spielraum 2

Spielraum 0

Page 51: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

51

Gierige Algorithmen

Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t Optimalität?

2

1

Deadline 9

Deadline 3Spielraum 2

Spielraum 02

Page 52: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

52

Gierige Algorithmen

Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t Optimalität?

2

1

Deadline 9

Deadline 3Spielraum 2

Spielraum 02 1

Verspätung 7

Page 53: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

53

Gierige Algorithmen

Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t Optimalität?

2

1

Deadline 9

Deadline 3Spielraum 2

Spielraum 01 2

Optimale Lösung hat nur Verspätung 1

Optimale Lösung hat nur Verspätung 1

Verspätung 1

Page 54: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

54

Gierige Algorithmen

Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline

2

6

1

5

3

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

4

Page 55: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

55

Gierige Algorithmen

Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline

2

6

1

5

3

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

4

5

Page 56: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

56

Gierige Algorithmen

Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline

2

6

1

5

3

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

4

5 2

Page 57: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

57

Gierige Algorithmen

Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline

2

6

1

5

3

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

4

5 2 3

Page 58: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

58

Gierige Algorithmen

Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline

2

6

1

5

3

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

4

5 2 3 4

Page 59: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

59

Gierige Algorithmen

Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline

2

6

1

5

3

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

4

5 2 3 4 6

Page 60: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

60

Gierige Algorithmen

Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline

2

6

1

5

3

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

4

5 2 3 4 6 1

Verspätung 3

Page 61: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

61

Gierige Algorithmen

Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline

2

6

1

5

3

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

4

5 2 3 4 6 1

Verspätung 3

Lösung optimal!Lösung optimal!

Page 62: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

62

Gierige Algorithmen

Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline Algorithmus ist optimal!

2

6

1

5

3

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

4

5 2 3 4 6 1

Verspätung 3

Lösung optimal!Lösung optimal!

Page 63: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

63

Gierige Algorithmen

Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline Algorithmus ist optimal!

2

6

1

5

3

Deadline 9

Deadline 4

Deadline 6

Deadline 6

Deadline 3Deadline 9

4

5 2 3 4 6 1

Verspätung 3

Komisch, da Strategie unabhängig von der Länge

der Aufträge

Komisch, da Strategie unabhängig von der Länge

der Aufträge

Page 64: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

64

Gierige Algorithmen

Formale Problemformulierung Problem: Scheduling mit Deadline Eingabe: Felder t und d

t[i] enthält Länge des i-ten Intervals d[i] enthält Deadline

Ausgabe: Startzeitpunkte der Intervalle

Wichtige Annahme Eingabe sortiert nach Deadlines d[1]d[2]…d[n]

Page 65: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

65

Gierige Algorithmen

LatenessScheduling(t,d)

1. n length[t]

2. new array A[1..n]

3. z 0

4. for i 1 to n do

5. A[i] z

6. z z + t[i]

7. return A

1

3

2

t 1 4 2

d 3 4 6

Page 66: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

66

Gierige Algorithmen

LatenessScheduling(t,d)

1. n length[t]

2. new array A[1..n]

3. z 0

4. for i 1 to n do

5. A[i] z

6. z z + t[i]

7. return A

1

3

2

t 1 4 2

d 3 4 6

Page 67: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

67

Gierige Algorithmen

LatenessScheduling(t,d)

1. n length[t]

2. new array A[1..n]

3. z 0

4. for i 1 to n do

5. A[i] z

6. z z + t[i]

7. return A

1

3

2

t 1 4 2

d 3 4 6

Page 68: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

68

Gierige Algorithmen

LatenessScheduling(t,d)

1. n length[t]

2. new array A[1..n]

3. z 0

4. for i 1 to n do

5. A[i] z

6. z z + t[i]

7. return A

1

3

2

t 1 4 2

d 3 4 6

z

Page 69: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

69

LatenessScheduling(t,d)

1. n length[t]

2. new array A[1..n]

3. z 0

4. for i 1 to n do

5. A[i] z

6. z z + t[i]

7. return A

Gierige Algorithmen

1

3

2

t 1 4 2

d 3 4 6

z

i

Page 70: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

70

LatenessScheduling(t,d)

1. n length[t]

2. new array A[1..n]

3. z 0

4. for i 1 to n do

5. A[i] z

6. z z + t[i]

7. return A

Gierige Algorithmen

1

3

2

t 1 4 2

d 3 4 6

z

i

1

Page 71: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

71

LatenessScheduling(t,d)

1. n length[t]

2. new array A[1..n]

3. z 0

4. for i 1 to n do

5. A[i] z

6. z z + t[i]

7. return A

Gierige Algorithmen

1

3

2

t 1 4 2

d 3 4 6

z

i

1

Page 72: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

72

LatenessScheduling(t,d)

1. n length[t]

2. new array A[1..n]

3. z 0

4. for i 1 to n do

5. A[i] z

6. z z + t[i]

7. return A

Gierige Algorithmen

1

3

2

t 1 4 2

d 3 4 6

z

i

1

Page 73: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

73

LatenessScheduling(t,d)

1. n length[t]

2. new array A[1..n]

3. z 0

4. for i 1 to n do

5. A[i] z

6. z z + t[i]

7. return A

Gierige Algorithmen

1

3

2

t 1 4 2

d 3 4 6

z

i

1 2

Page 74: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

74

LatenessScheduling(t,d)

1. n length[t]

2. new array A[1..n]

3. z 0

4. for i 1 to n do

5. A[i] z

6. z z + t[i]

7. return A

Gierige Algorithmen

1

3

2

t 1 4 2

d 3 4 6

z

i

1 2

Page 75: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

75

LatenessScheduling(t,d)

1. n length[t]

2. new array A[1..n]

3. z 0

4. for i 1 to n do

5. A[i] z

6. z z + t[i]

7. return A

Gierige Algorithmen

1

3

2

t 1 4 2

d 3 4 6

z

i

1 2

Page 76: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

76

LatenessScheduling(t,d)

1. n length[t]

2. new array A[1..n]

3. z 0

4. for i 1 to n do

5. A[i] z

6. z z + t[i]

7. return A

Gierige Algorithmen

1

3

2

t 1 4 2

d 3 4 6

z

i

1 2 3

Page 77: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

77

LatenessScheduling(t,d)

1. n length[t]

2. new array A[1..n]

3. z 0

4. for i 1 to n do

5. A[i] z

6. z z + t[i]

7. return A

Gierige Algorithmen

1

3

2

t 1 4 2

d 3 4 6

z

i

1 2 3

Page 78: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

78

LatenessScheduling(t,d)

1. n length[t]

2. new array A[1..n]

3. z 0

4. for i 1 to n do

5. A[i] z

6. z z + t[i]

7. return A

Gierige Algorithmen

1

3

2

t 1 4 2

d 3 4 6

z

i

1 2 3

Page 79: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

79

Gierige Algorithmen

Beobachtung

Es gibt eine optimale Lösung ohne Leerlaufzeit.

1 2 3

Leerlauf

Page 80: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

80

Gierige Algorithmen

Lemma 34

Alle Lösungen ohne Inversionen und Leerlaufzeit haben dieselbe maximale Verzögerung.

Definition

Lösung hat Inversion, wenn Aufgabe i

Mit Deadline d vor Aufgabe j mit

Deadline d < d bearbeitet wird.

1

3

2

1 23

Inversion

i j

j i

i

Page 81: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

81

Gierige Algorithmen

Lemma 34

Alle Lösungen ohne Inversionen und Leerlaufzeit haben dieselbe maximale Verzögerung.

Beweis

• Haben zwei Schedules weder Inversionen noch Leerlaufzeiten, so haben sie zwar nicht notwendigerweise dieselbe Ordnung, aber sie können sich nur in der Ordnung der Aufgaben mit identischer Deadline unterscheiden. Betrachten wir eine solche Deadline d.

Page 82: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

82

Gierige Algorithmen

Lemma 34

Alle Lösungen ohne Inversionen und Leerlaufzeit haben dieselbe maximale Verzögerung.

Beweis

• Haben zwei Schedules weder Inversionen noch Leerlaufzeiten, so haben sie zwar nicht notwendigerweise dieselbe Ordnung, aber sie können sich nur in der Ordnung der Aufgaben mit identischer Deadline unterscheiden. Betrachten wir eine solche Deadline d. In beiden Schedules werden alle Aufgaben mit Deadline d nacheinander ausgeführt.

Page 83: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

83

Gierige Algorithmen

Lemma 34

Alle Lösungen ohne Inversionen und Leerlaufzeit haben dieselbe maximale Verzögerung.

Beweis

• Haben zwei Schedules weder Inversionen noch Leerlaufzeiten, so haben sie zwar nicht notwendigerweise dieselbe Ordnung, aber sie können sich nur in der Ordnung der Aufgaben mit identischer Deadline unterscheiden. Betrachten wir eine solche Deadline d. In beiden Schedules werden alle Aufgaben mit Deadline d nacheinander ausgeführt. Unter den Aufgaben mit Deadline d hat die letzte die größte Verzögerung und diese hängt nicht von der Reihenfolge der Aufgaben ab.

Page 84: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

84

Gierige Algorithmen

Lemma 34

Alle Lösungen ohne Inversionen und Leerlaufzeit haben dieselbe maximale Verzögerung.

Beweis

• Haben zwei Schedules weder Inversionen noch Leerlaufzeiten, so haben sie zwar nicht notwendigerweise dieselbe Ordnung, aber sie können sich nur in der Ordnung der Aufgaben mit identischer Deadline unterscheiden. Betrachten wir eine solche Deadline d. In beiden Schedules werden alle Aufgaben mit Deadline d nacheinander ausgeführt. Unter den Aufgaben mit Deadline d hat die letzte die größte Verzögerung und diese hängt nicht von der Reihenfolge der Aufgaben ab.

Page 85: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

85

Gierige Algorithmen

Lemma 35

Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit.

1

3

2

1 2 3

Page 86: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

86

Gierige Algorithmen

Lemma 35

Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit.

1

3

2

1 2 3Ohne Inversionen

und Leerlauf: Also optimal!

Ohne Inversionen und Leerlauf: Also optimal!

Page 87: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

87

Gierige Algorithmen

Lemma 35

Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit.

Beweis• Sei O ein optimales Schedule ohne Leerlauf. Wir zeigen zunächst

• (a) Wenn O eine Inversion hat, dann gibt es ein Paar Aufgaben i und j, so dass j direkt nach i auftritt und d < d ist. (D.h. eine Inversion von aufeinanderfolgenden Aufgaben)

a b

Deadline 9 Deadline 5

Deadline 9

j i

Page 88: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

88

Gierige Algorithmen

Lemma 35

Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit.

Beweis• Sei O ein optimales Schedule ohne Leerlauf. Wir zeigen zunächst

• (a) Wenn O eine Inversion hat, dann gibt es ein Paar Aufgaben i und j, so dass j direkt nach i auftritt und d < d ist. (D.h. eine Inversion von aufeinanderfolgenden Aufgaben)

a b

Deadline 9 Deadline 5

Deadline 9

j i

Page 89: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

89

Gierige Algorithmen

Lemma 35

Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit.

Beweis• Sei O ein optimales Schedule ohne Leerlauf. Wir zeigen zunächst

• (a) Wenn O eine Inversion hat, dann gibt es ein Paar Aufgaben i und j, so dass j direkt nach i auftritt und d < d ist. (D.h. eine Inversion von aufeinanderfolgenden Aufgaben)

a b

Deadline 9 Deadline 5

j i

Spätestens hier Inversion von aufeinander folgenden Aufgaben

Page 90: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

90

Gierige Algorithmen

Lemma 35

Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit.

Beweis• Sei O ein optimales Schedule ohne Leerlauf. Wir zeigen zunächst

• (a) Wenn O eine Inversion hat, dann gibt es ein Paar Aufgaben i und j, so dass j direkt nach i auftritt und d < d ist. (D.h. eine Inversion von aufeinanderfolgenden Aufgaben)

a b

Deadline 9 Deadline 5

j i

Spätestens hier Inversion von aufeinander folgenden Aufgaben

Page 91: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

91

Gierige Algorithmen

Lemma 35

Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit.

Beweis• Sei O ein optimales Schedule ohne Leerlauf. Wir zeigen zunächst

• (b) Nach dem Austauschen von einer benachbarten Inversion i und j erhalten wir ein Schedule mit einer Inversion weniger.

• Es wird die Inversion von i und j durch das Vertauschen aufgehoben und es wird keine neue Inversion wird erzeugt.

Page 92: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

92

Gierige Algorithmen

Lemma 35

Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit.

Beweis• Sei O ein optimales Schedule ohne Leerlauf. Wir zeigen zunächst

• (c) Das Tauschen von i und j erhöht nicht die maximale Verzögerung.

i j

Aufeinander folgende Inversion (i,j)

di

d j

Page 93: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

93

Gierige Algorithmen

Lemma 35

Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit.

Beweis• Sei O ein optimales Schedule ohne Leerlauf. Wir zeigen zunächst

• (c) Das Tauschen von i und j erhöht nicht die maximale Verzögerung.

j i

di

d j

Vertausche i und j

Verzögerung von j wird

kleiner

Verzögerung von j wird

kleiner

Page 94: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

94

Gierige Algorithmen

Lemma 35

Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit.

Beweis• Sei O ein optimales Schedule ohne Leerlauf. Wir zeigen zunächst

• (c) Das Tauschen von i und j erhöht nicht die maximale Verzögerung.

j i

di

d j

Vertausche i und j

Verzögerung von i wird größer!

Verzögerung von i wird größer!

Page 95: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

95

Gierige Algorithmen

Lemma 35

Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit.

Beweis• Sei O ein optimales Schedule ohne Leerlauf. Wir zeigen zunächst

• (c) Das Tauschen von i und j erhöht nicht die maximale Verzögerung.

j i

di

d j

Vertausche i und j

Ist aber kleiner als Verzögerung von j vor Vertauschung!

Ist aber kleiner als Verzögerung von j vor Vertauschung!

Page 96: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

96

Gierige Algorithmen

Lemma 35

Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit.

Beweis• Sei O ein optimales Schedule ohne Leerlauf. Wir zeigen zunächst

• (c) Das Tauschen von i und j erhöht nicht die maximale Verzögerung.

j i

di

d j

Vertausche i und j

Ist aber kleiner als Verzögerung von j vor Vertauschung!

Ist aber kleiner als Verzögerung von j vor Vertauschung!

Page 97: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

97

Gierige Algorithmen

Formaler Beweis von (c)• Notation für O: Aufgabe r wird im Invervall [s(r),f(r)] ausgeführt und hat

Verzögerung l(r). Sei L = max l(r) die maximale Verzögerung dieses Schedules.

• Notation für das Schedule O* nach Austauschen: s*(r), f*(r), l*(r) und L* mit der entsprechenden Bedeutung wie oben.

• s(r), s*(r) heißt Startzeit

• f(r), f*(r) heißt Abarbeitungszeit

r

dr

s(r) f(r)

l(r)

Page 98: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

98

Gierige Algorithmen

Formaler Beweis von (c)• Betrachten wir nun die benachbarte Inversion von i und j. Die

Abarbeitungszeit f(j) von j vor dem Austauschen ist gleich der Abarbeitungszeit f*(i) von i nach dem Austauschen. Daher haben alle anderen Aufgaben vor und nach dem Tauschen dieselbe Abarbeitungszeit.

i j

Aufeinander folgende Inversion (i,j)

di

d j

f(j)f(i)

Page 99: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

99

Gierige Algorithmen

Formaler Beweis von (c)• Betrachten wir nun die benachbarte Inversion von i und j. Die

Abarbeitungszeit f(j) von j vor dem Austauschen ist gleich der Abarbeitungszeit f*(i) von i nach dem Austauschen. Daher haben alle anderen Aufgaben vor und nach dem Tauschen dieselbe Abarbeitungszeit.

• Für Aufgabe j ist das neue Schedule besser, d.h. f*(j)<f(j).

ij

Aufeinander folgende Inversion (i,j)

di

d j

f(j)f(i)f*(i)f*(j)

Page 100: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

100

Gierige Algorithmen

Formaler Beweis von (c)• Betrachte nur Aufgabe i: Nach dem Tauschen ist die Verzögerung

l*(i) = f*(i)-d .

ij

di

d j

f(j)f(i)f*(i)f*(j)

i

l*(i)

Page 101: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

101

Gierige Algorithmen

Formaler Beweis von (c)• Betrachte nur Aufgabe i: Nach dem Tauschen ist die Verzögerung

l*(i) = f*(i)-d .

• Wegen d > d folgt l*(i) = f(j) - d < f(j) - d = l(j).

• Damit wird die maximale Verzögerung nicht erhöht.

ij

di

d j

f(j)f(i)f*(i)f*(j)

i

l*(i)

i j i j

Page 102: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

102

Gierige Algorithmen

Lemma 35

Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit.

Beweis• (a) Wenn O eine Inversion hat, dann gibt es ein Paar Aufgaben i und j, so

dass j direkt nach i auftritt und d < d ist.

• (b) Nach dem Austauschen von einer benachbarten Inversion i und j erhalten wir ein Schedule mit einer Inversion weniger.

• (c) Das Tauschen von i und j erhöht nicht die maximale Verzögerung.

• Die Anzahl Inversionen ist zu Beginn höchstens ( ).Wir können (a)-(c) solange anwenden, bis keine Inversionen mehr vorhanden sind.

ij

n2

Page 103: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

103

Gierige Algorithmen

Satz 36

Die Lösung A, die von Algorithmus LatenessScheduling berechnet wird, hat optimale (d.h. minimale) maximale Verzögerung.

Beweis

Aus dem ersten Lemma folgt, dass es ein optimales Schedule ohne Inversionen gibt. Aus dem zweiten Lemma folgt, dass alle Schedules ohne Inversionen dieselbe maximale Verzögerung haben. Damit ist die Lösung des gierigen Algorithmus optimal.

Page 104: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

104

Gierige Algorithmen

Zusammenfassung Löse globales Optimierungsproblem durch lokale Optimierungsstrategie Liefert häufig recht einfache Algorithmen Funktioniert leider nicht immer und es ist manchmal nicht ganz einfach, die

‚richtige‘ Strategie zu finden

Algorithmische Entwurfsmethoden Teile & Herrsche Dynamische Programmierung Gierige Algorithmen

Page 105: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

105

Datenstrukturen

Was ist eine Datenstruktur? Eine Datenstruktur ist eine Anordnung von Daten, die effizienten Zugriff auf

die Daten ermöglicht Datenstrukturen für viele unterschiedliche Anfragen vorstellbar

Page 106: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

106

Datenstrukturen

Ein grundlegendes Datenbank-Problem Speicherung von Datensätzen

Beispiel Kundendaten (Name, Adresse, Wohnort, Kundennummer, offene

Rechnungen, offene Bestellungen,…)

Anforderungen Schneller Zugriff Einfügen neuer Datensätze Löschen bestehender Datensätze

Page 107: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

107

Datenstrukturen

Zugriff auf Daten Jedes Datum (Objekt) hat einen Schlüssel Eingabe des Schlüssels liefert Datensatz Schlüssel sind vergleichbar (es gibt totale Ordnung der Schlüssel)

Beispiel Kundendaten (Name, Adresse, Kundennummer) Schlüssel: Name Totale Ordnung: Lexikographische Ordnung

Page 108: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

108

Datenstrukturen

Zugriff auf Daten Jedes Datum (Objekt) hat einen Schlüssel Eingabe des Schlüssels liefert Datensatz Schlüssel sind vergleichbar (es gibt totale Ordnung der Schlüssel)

Beispiel: Kundendaten (Name, Adresse, Kundennummer) Schlüssel: Kundennummer Totale Ordnung: ‚‘

Page 109: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

109

Datenstrukturen

Problem: Gegeben sind n Objekte O ,.., O mit zugehörigen Schlüsseln s(O )

Operationen: Suche(x); Ausgabe O mit Schlüssel s(O) =x;

nil, falls kein Objekt mit Schlüssel x in Datenbank Einfügen(O); Einfügen von Objekt O in Datenbank Löschen(O); Löschen von Objekt O mit aus der Datenbank

1 n i

Page 110: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

110

Datenstrukturen

Vereinfachung: Schlüssel sind natürliche Zahlen Eingabe nur aus Schlüsseln

Analyse von Datenstrukturen Platzbedarf in - bzw. O-Notation Laufzeit der Operationen in - bzw. O-Notation

Page 111: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

111

Datenstrukturen

Einfaches Feld Feld A[1,…,max] Integer n, 1 n max n bezeichnet Anzahl Elemente in Datenstruktur

13 7 11 6 4 nil nil nil nil nil

n

Page 112: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

112

Datenstrukturen

Einfügen(s)

1. if n=max then Ausgabe „Fehler: Kein Platz in Datenstruktur“

2. else

3. n n+1

4. A[n] s

13 7 11 6 4 nil nil nil nil nil

n

Page 113: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

113

Datenstrukturen

Einfügen(s)

1. if n=max then Ausgabe „Fehler: Kein Platz in Datenstruktur“

2. else

3. n n+1

4. A[n] s

13 7 11 6 4 nil nil nil nil nil

n

Einfügen(2)

Page 114: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

114

Datenstrukturen

Einfügen(s)

1. if n=max then Ausgabe „Fehler: Kein Platz in Datenstruktur“

2. else

3. n n+1

4. A[n] s

13 7 11 6 4 2 nil nil nil nil

n

Einfügen(2)

Page 115: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

115

Datenstrukturen

Suche(x)1. for i 1 to n do

2. if A[i] = x then return i

3. return nil

13 7 11 6 4 2 nil nil nil nil

n

Page 116: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

116

Datenstrukturen

Löschen(i)1. A[i] A[n]

2. A[n] nil

3. n n-1

13 7 11 6 4 2 nil nil nil nil

n

Annahme:Wir bekommen Index i des zu löschenden Objekts

Annahme:Wir bekommen Index i des zu löschenden Objekts

Page 117: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

117

Datenstrukturen

Löschen(i)1. A[i] A[n]

2. A[n] nil

3. n n-1

13 7 11 6 4 2 nil nil nil nil

n

Löschen(2)

Page 118: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

118

Datenstrukturen

Löschen(i)1. A[i] A[n]

2. A[n] nil

3. n n-1

13 2 11 6 4 nil nil nil nil nil

n

Löschen(2)

Page 119: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

119

Datenstrukturen

Datenstruktur Feld Platzbedarf (max) Laufzeit Suche: (n) Laufzeit Einfügen/Löschen: (1)

Vorteile Schnelles Einfügen und Löschen

Nachteile Speicherbedarf abhängig von max (nicht vorhersagbar) Hohe Laufzeit für Suche

Page 120: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

120

Datenstrukturen

Datenstruktur „sortiertes Feld“ Sortiertes Feld A[1,…,max] Integer n, 1 n max n bezeichnet Anzahl Elemente in Datenstruktur

2 4 6 7 11 13 nil nil nil nil

A n

Page 121: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

121

Datenstrukturen

Einfügen(s)1. n n+1

2. i n

3. while s < A[i-1] do

4. A[i] A[i-1]

5. i i -1

6. A[i] s

2 4 6 7 11 13 nil nil nil nil

n

Einfügen(10)

Page 122: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

122

Datenstrukturen

Einfügen(s)1. n n+1

2. i n

3. while s < A[i-1] do

4. A[i] A[i-1]

5. i i -1

6. A[i] s

2 4 6 7 11 13 nil nil nil nil

n

Einfügen(10)

Page 123: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

123

Einfügen(s)1. n n+1

2. i n

3. while s < A[i-1] do

4. A[i] A[i-1]

5. i i -1

6. A[i] s

Datenstrukturen

2 4 6 7 11 13 nil nil nil nil

n

Einfügen(10)

Page 124: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

124

Einfügen(s)1. n n+1

2. i n

3. while s < A[i-1] do

4. A[i] A[i-1]

5. i i -1

6. A[i] s

Datenstrukturen

2 4 6 7 11 11 13 nil nil nil

n

Einfügen(10)

Page 125: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

125

Einfügen(s)1. n n+1

2. i n

3. while s < A[i-1] do

4. A[i] A[i-1]

5. i i -1

6. A[i] s

Datenstrukturen

2 4 6 7 10 11 13 nil nil nil

n

Einfügen(10)

Laufzeit O(n)Laufzeit O(n)

Page 126: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

126

Datenstrukturen

Löschen(i)1. for j i to n-1 do

2. A[j] A[j+1]

3. A[n] nil

4. n n-1

2 4 6 7 11 13 nil nil nil nil

n

Parameter ist der Index des zu löschenden Objekts

Parameter ist der Index des zu löschenden Objekts

Page 127: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

127

Datenstrukturen

Löschen(i)1. for j i to n-1 do

2. A[j] A[j+1]

3. A[n] nil

4. n n-1

2 4 6 7 11 13 nil nil nil nil

n

Parameter ist der Index des zu löschenden Objekts

Parameter ist der Index des zu löschenden Objekts

Löschen(2)

Page 128: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

128

Datenstrukturen

Löschen(i)1. for j i to n-1 do

2. A[j] A[j+1]

3. A[n] nil

4. n n-1

2 4 6 7 11 13 nil nil nil nil

n

Parameter ist der Index des zu löschenden Objekts

Parameter ist der Index des zu löschenden Objekts

Löschen(2)

i

Page 129: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

129

Datenstrukturen

Löschen(i)1. for j i to n-1 do

2. A[j] A[j+1]

3. A[n] nil

4. n n-1

2 4 6 7 11 13 nil nil nil nil

n

Löschen(2)

i

Page 130: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

130

Datenstrukturen

Löschen(i)1. for j i to n-1 do

2. A[j] A[j+1]

3. A[n] nil

4. n n-1

2 6 7 11 13 13 nil nil nil nil

n

Löschen(2)

i

Page 131: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

131

Löschen(i)1. for j i to n-1 do

2. A[j] A[j+1]

3. A[n] nil

4. n n-1

Datenstrukturen

2 6 7 11 13 nil nil nil nil nil

n

Löschen(2)

i

Page 132: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

132

Löschen(i)1. for j i to n-1 do

2. A[j] A[j+1]

3. A[n] nil

4. n n-1

Datenstrukturen

2 6 7 11 13 nil nil nil nil nil

n

Löschen(2)

i

Page 133: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

133

Suchen(x) Binäre Suche Laufzeit O(log n)

Datenstrukturen

2 6 7 11 13 nil nil nil nil nil

n

Löschen(2)

i

Page 134: Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

LS 2 / Informatik

134

Datenstrukturen

Datenstruktur sortiertes Feld Platzbedarf (max) Laufzeit Suche: (log n) Laufzeit Einfügen/Löschen: (n)

Vorteile Schnelles Suchen

Nachteile Speicherbedarf abhängig von max (nicht vorhersagbar) Hohe Laufzeit für Einfügen/Löschen