Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)"—  Präsentation transkript:

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

2 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

3 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

4 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 Aufgabe 1 Aufgabe 2 Aufgabe 3

5 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 Aufgabe 1 Aufgabe 2 Aufgabe 3 O.b.d.A. Resource steht ab Zeitpunkt 0 zur Verfügung

6 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 Aufgabe 1 Aufgabe 2 Aufgabe 3 Aufgabe 1: Fertig zu Zeitpunkt 1 1

7 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 Aufgabe 1 Aufgabe 2 Aufgabe 3 Aufgabe 1: Fertig zu Zeitpunkt 1 Aufgabe 2: Fertig zu Zeitpunkt 3 1 2

8 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 Aufgabe 1 Aufgabe 2 Aufgabe 3 Aufgabe 1: Fertig zu Zeitpunkt 1 Aufgabe 2: Fertig zu Zeitpunkt Aufgabe 3: Fertig zu Zeitpunkt 6 3

9 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 Aufgabe 1 Aufgabe 2 Aufgabe 3 Aufgabe 1: Fertig zu Zeitpunkt 1 Aufgabe 2: Fertig zu Zeitpunkt Aufgabe 3: Fertig zu Zeitpunkt 6 3 Alle Aufgaben sind rechtzeitig fertig!

10 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 Aufgabe 1 Aufgabe 2 Aufgabe 3 1

11 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 Aufgabe 1 Aufgabe 2 Aufgabe 3 1 1

12 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 Aufgabe 1 Aufgabe 2 Aufgabe

13 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 Aufgabe 1 Aufgabe 2 Aufgabe Aufgabe 2 wird zu spät beendet

14 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 Aufgabe 1 Aufgabe 2 Aufgabe 3 1 2

15 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 Aufgabe 1 Aufgabe 2 Aufgabe Aufgabe 1 wird zu spät beendet

16 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 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!

17 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 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

18 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 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

19 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 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

20 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 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

21 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 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

22 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 Aufgabe 1 Aufgabe 2 Aufgabe Aufgabe 2: Verspätung 1 3 Aufgabe 3: Verspätung 2 Ziel: Minimiere maximale Verspätung Ziel: Minimiere maximale Verspätung

23 LS 2 / Informatik 23 Gierige Algorithmen Strategie 1 Bearbeite die Jobs nach ansteigender Länge Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline 9

24 LS 2 / Informatik 24 Gierige Algorithmen Strategie 1 Bearbeite die Jobs nach ansteigender Länge Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline 9 Keine Verspätung 1

25 LS 2 / Informatik 25 Gierige Algorithmen Strategie 1 Bearbeite die Jobs nach ansteigender Länge Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline 9 Keine Verspätung 1 5

26 LS 2 / Informatik 26 Gierige Algorithmen Strategie 1 Bearbeite die Jobs nach ansteigender Länge Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline 9 Keine Verspätung 1 53

27 LS 2 / Informatik 27 Gierige Algorithmen Strategie 1 Bearbeite die Jobs nach ansteigender Länge Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline 9 Keine Verspätung 1 534

28 LS 2 / Informatik 28 Gierige Algorithmen Strategie 1 Bearbeite die Jobs nach ansteigender Länge Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline Verspätung 5

29 LS 2 / Informatik 29 Gierige Algorithmen Strategie 1 Bearbeite die Jobs nach ansteigender Länge Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline Verspätung 3

30 LS 2 / Informatik 30 Gierige Algorithmen Strategie 1 Bearbeite die Jobs nach ansteigender Länge Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline Maximale Verspätung durch Aufgabe 2 (5 Zeiteinheiten) Maximale Verspätung durch Aufgabe 2 (5 Zeiteinheiten)

31 LS 2 / Informatik 31 Gierige Algorithmen Strategie 1 Bearbeite die Jobs nach ansteigender Länge Optimalität? Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline Maximale Verspätung durch Aufgabe 2 (5 Zeiteinheiten) Maximale Verspätung durch Aufgabe 2 (5 Zeiteinheiten)

32 LS 2 / Informatik 32 Gierige Algorithmen Strategie 1 Bearbeite die Jobs nach ansteigender Länge Optimalität? Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline 9 5 Keine Verspätung

33 LS 2 / Informatik 33 Gierige Algorithmen Strategie 1 Bearbeite die Jobs nach ansteigender Länge Optimalität? Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline 9 5 Keine Verspätung 2

34 LS 2 / Informatik 34 Gierige Algorithmen Strategie 1 Bearbeite die Jobs nach ansteigender Länge Optimalität? Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline 9 5 Keine Verspätung 2 3

35 LS 2 / Informatik 35 Gierige Algorithmen Strategie 1 Bearbeite die Jobs nach ansteigender Länge Optimalität? Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline Verspätung 2

36 LS 2 / Informatik 36 Gierige Algorithmen Strategie 1 Bearbeite die Jobs nach ansteigender Länge Optimalität? Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline Keine Verspätung

37 LS 2 / Informatik 37 Gierige Algorithmen Strategie 1 Bearbeite die Jobs nach ansteigender Länge Optimalität? Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline Maximale Verspätung durch Aufgabe 6 (3 Zeiteinheiten) Maximale Verspätung durch Aufgabe 6 (3 Zeiteinheiten)

38 LS 2 / Informatik 38 Gierige Algorithmen Strategie 1 Bearbeite die Jobs nach ansteigender Länge Optimalität? Problem: Ignoriert Deadlines völlig Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline Maximale Verspätung durch Aufgabe 6 (3 Zeiteinheiten) Maximale Verspätung durch Aufgabe 6 (3 Zeiteinheiten)

39 LS 2 / Informatik 39 Gierige Algorithmen Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline 9 4

40 LS 2 / Informatik 40 Gierige Algorithmen Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline 9 4 Spielraum 8

41 LS 2 / Informatik 41 Gierige Algorithmen Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline 9 4 Spielraum 4

42 LS 2 / Informatik 42 Gierige Algorithmen Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline 9 4 Spielraum 1 2

43 LS 2 / Informatik 43 Gierige Algorithmen Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline 9 4 Spielraum 2 5 2

44 LS 2 / Informatik 44 Gierige Algorithmen Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline Spielraum 4 3

45 LS 2 / Informatik 45 Gierige Algorithmen Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline Spielraum 4 4

46 LS 2 / Informatik 46 Gierige Algorithmen Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline Spielraum 6 6

47 LS 2 / Informatik 47 Gierige Algorithmen Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline Spielraum 8

48 LS 2 / Informatik 48 Gierige Algorithmen Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline Verspätung 3

49 LS 2 / Informatik 49 Gierige Algorithmen Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline Verspätung 3 Optimal für unsere Eingabe

50 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 3 Spielraum 2 Spielraum 0

51 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 3 Spielraum 2 Spielraum 0 2

52 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 3 Spielraum 2 Spielraum Verspätung 7

53 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 3 Spielraum 2 Spielraum Optimale Lösung hat nur Verspätung 1 Verspätung 1

54 LS 2 / Informatik 54 Gierige Algorithmen Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline 9 4

55 LS 2 / Informatik 55 Gierige Algorithmen Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline 9 4 5

56 LS 2 / Informatik 56 Gierige Algorithmen Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline

57 LS 2 / Informatik 57 Gierige Algorithmen Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline

58 LS 2 / Informatik 58 Gierige Algorithmen Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline

59 LS 2 / Informatik 59 Gierige Algorithmen Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline

60 LS 2 / Informatik 60 Gierige Algorithmen Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline Verspätung 3

61 LS 2 / Informatik 61 Gierige Algorithmen Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline Verspätung 3 Lösung optimal!

62 LS 2 / Informatik 62 Gierige Algorithmen Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline Algorithmus ist optimal! Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline Verspätung 3 Lösung optimal!

63 LS 2 / Informatik 63 Gierige Algorithmen Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline Algorithmus ist optimal! Deadline 9 Deadline 4 Deadline 6 Deadline 3 Deadline Verspätung 3 Komisch, da Strategie unabhängig von der Länge der Aufträge

64 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]

65 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 t142 d346

66 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 t142 d346

67 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 t142 d346

68 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 t142 d346 z

69 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 t142 d346 z i

70 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 t142 d346 z i 1

71 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 t142 d346 z i 1

72 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 t142 d346 z i 1

73 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 t142 d346 z i 1 2

74 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 t142 d346 z i 1 2

75 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 t142 d346 z i 1 2

76 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 t142 d346 z i 1 2 3

77 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 t142 d346 z i 1 2 3

78 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 t142 d346 z i 1 2 3

79 LS 2 / Informatik 79 Gierige Algorithmen Beobachtung Es gibt eine optimale Lösung ohne Leerlaufzeit Leerlauf

80 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 Inversion i j j i i

81 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.

82 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.

83 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.

84 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.

85 LS 2 / Informatik 85 Gierige Algorithmen Lemma 35 Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit

86 LS 2 / Informatik 86 Gierige Algorithmen Lemma 35 Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit Ohne Inversionen und Leerlauf: Also optimal! Ohne Inversionen und Leerlauf: Also optimal!

87 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

88 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

89 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

90 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

91 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.

92 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. ij Aufeinander folgende Inversion (i,j) d i d j

93 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. ji d i d j Vertausche i und j Verzögerung von j wird kleiner

94 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. ji d i d j Vertausche i und j Verzögerung von i wird größer!

95 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. ji d i d j Vertausche i und j Ist aber kleiner als Verzögerung von j vor Vertauschung!

96 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. ji d i d j Vertausche i und j Ist aber kleiner als Verzögerung von j vor Vertauschung!

97 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 d r s(r) f(r) l(r)

98 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. ij Aufeinander folgende Inversion (i,j) d i d j f(j) f(i)

99 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)

100 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. i j d i d j f(j) f(i) f*(i)f*(j) i l*(i)

101 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. i j d i d j f(j) f(i) f*(i)f*(j) i l*(i) i j i j

102 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. i j n 2

103 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.

104 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

105 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

106 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

107 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

108 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:

109 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

110 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

111 LS 2 / Informatik 111 Datenstrukturen Einfaches Feld Feld A[1,…,max] Integer n, 1 n max n bezeichnet Anzahl Elemente in Datenstruktur nil n

112 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 nil n

113 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 nil n Einfügen(2)

114 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 nil n Einfügen(2)

115 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 nil n

116 LS 2 / Informatik 116 Datenstrukturen Löschen(i) 1.A[i] A[n] 2.A[n] nil 3.n n nil n Annahme: Wir bekommen Index i des zu löschenden Objekts Annahme: Wir bekommen Index i des zu löschenden Objekts

117 LS 2 / Informatik 117 Datenstrukturen Löschen(i) 1.A[i] A[n] 2.A[n] nil 3.n n nil n Löschen(2)

118 LS 2 / Informatik 118 Datenstrukturen Löschen(i) 1.A[i] A[n] 2.A[n] nil 3.n n nil n Löschen(2)

119 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

120 LS 2 / Informatik 120 Datenstrukturen Datenstruktur sortiertes Feld Sortiertes Feld A[1,…,max] Integer n, 1 n max n bezeichnet Anzahl Elemente in Datenstruktur nil A n

121 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 A[i] s nil n Einfügen(10)

122 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 A[i] s nil n Einfügen(10)

123 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 A[i] s Datenstrukturen nil n Einfügen(10)

124 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 A[i] s Datenstrukturen nil n Einfügen(10)

125 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 A[i] s Datenstrukturen nil n Einfügen(10) Laufzeit O(n)

126 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 nil n Parameter ist der Index des zu löschenden Objekts

127 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 nil n Parameter ist der Index des zu löschenden Objekts Löschen(2)

128 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 nil n Parameter ist der Index des zu löschenden Objekts Löschen(2) i

129 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 nil n Löschen(2) i

130 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 nil n Löschen(2) i

131 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 nil n Löschen(2) i

132 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 nil n Löschen(2) i

133 LS 2 / Informatik 133 Suchen(x) Binäre Suche Laufzeit O(log n) Datenstrukturen nil n Löschen(2) i

134 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


Herunterladen ppt "LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)"

Ähnliche Präsentationen


Google-Anzeigen