Gierige Algorithmen. Seminar Hallo Welt! für Fortgeschrittene. Daniel Ziegler Daniel Ziegler Gierige Algorithmen

Größe: px
Ab Seite anzeigen:

Download "Gierige Algorithmen. Seminar Hallo Welt! für Fortgeschrittene. Daniel Ziegler Daniel Ziegler Gierige Algorithmen"

Transkript

1 Gierige Algorithmen Seminar Hallo Welt! für Fortgeschrittene Daniel Ziegler Daniel Ziegler Gierige Algorithmen / 48

2 Inhalt 1 Einführung Allgemeines Wichtige Eigenschaften Gierige-Strategie vs. dynamische Programmierung Vor- und Nachteile 2 Beispiel Probleme Münzwechselproblem Fractional Knapsack Scheduling Probleme Offline Caching Tankstellenproblem Weitere Algorithmen 3 Quellen Daniel Ziegler Gierige Algorithmen / 48

3 Inhalt 1 Einführung Allgemeines Wichtige Eigenschaften Gierige-Strategie vs. dynamische Programmierung Vor- und Nachteile 2 Beispiel Probleme Münzwechselproblem Fractional Knapsack Scheduling Probleme Offline Caching Tankstellenproblem Weitere Algorithmen 3 Quellen Daniel Ziegler Gierige Algorithmen / 48

4 Allgemeines Anwendung Zur Lösung von Optimierungsproblemen Ein Algorithmus dafür durchläuft meist eine Abfolge von Schritten, in denen jeweils Entscheidungen zu treffen sind. Definition Ein gieriger Algorithmus wählt in jedem Schritt die lokal optimale Lösung. Daniel Ziegler Gierige Algorithmen / 48

5 Wichtige Eigenschaften - I Optimale-Teilstruktur-Eigenschaft Jede optimale Lösung des Problems beinhaltet optimale Lösungen von Teilproblemen Wesentlich für die Anwendbarkeit von gierigen Algorithmen und dynamischer Programmierung Daniel Ziegler Gierige Algorithmen / 48

6 Wichtige Eigenschaften - II Greedy-Choice-Property Global optimale Lösung wird durch schrittweise Wahl des lokalen Optimums erreicht Zu lösendes Teilproblem wird in jedem Schritt kleiner Entscheidungen werden nicht rückgängig gemacht Unterschied zur dynamischen Programmierung Vorverarbeitung der Daten für eine effiziente Auswahl meist sinnvoll (z.b. Sortieren) Daniel Ziegler Gierige Algorithmen / 48

7 Gierige-Strategie vs. DP DP Auswahl hängt in jedem Schritt von der Lösung der Teilprobleme ab bottom-up oft rekursiv aufwändigere Vorgehen Überlegung zum benötigt zusätzlichen Speicherplatz (Memoization) Gierige-Strategie Wahl der lokale optimale Lösung in jedem Schritt top-down meist iterativ eher intuitiver Ansatz kaum zusätzlicher Speicherplatz Daniel Ziegler Gierige Algorithmen / 48

8 Vor- und Nachteile Vorteile Intuitives Verfahren und Vorgehen Schnelle Laufzeit (oft O(n log(n))) Nachteile Nicht alle Optimierungsprobleme sind gierig lösbar Anwendbarkeit und Korrektheit muss bewiesen werden! Daniel Ziegler Gierige Algorithmen / 48

9 Inhalt 1 Einführung Allgemeines Wichtige Eigenschaften Gierige-Strategie vs. dynamische Programmierung Vor- und Nachteile 2 Beispiel Probleme Münzwechselproblem Fractional Knapsack Scheduling Probleme Offline Caching Tankstellenproblem Weitere Algorithmen 3 Quellen Daniel Ziegler Gierige Algorithmen / 48

10 Münzwechselproblem Aufgabenstellung Ein gegebener Geldbetrag soll durch möglichst wenige Münzen ausgezahlt werden. Als Währung verwenden wir Euro: Daniel Ziegler Gierige Algorithmen / 48

11 Münzwechselproblem Lösung 1: Restbetrag := Betrag 2: sortiere Münzen absteigend nach Wert w i 3: gehe Münzen der Reihe nach durch: 4: Anzahl i := Restbetrag w i 5: Restbetrag := Restbetrag (Anzahl i w i ) Anzahl i : wie oft Münze mit Wert w i in optimaler Lösung vorkommt Laufzeit: O(m log(m)), wobei m = Anzahl der Münzen Daniel Ziegler Gierige Algorithmen / 48

12 Münzwechselproblem - Beispiel Beispiel Auszahlen des Betrags von 3,45 e Daniel Ziegler Gierige Algorithmen / 48

13 Münzwechselproblem - Beispiel Beispiel Auszahlen des Betrags von 3,45 e Restbetrag: 3,45 e Daniel Ziegler Gierige Algorithmen / 48

14 Münzwechselproblem - Beispiel Beispiel Auszahlen des Betrags von 3,45 e Restbetrag: 1,45 e Daniel Ziegler Gierige Algorithmen / 48

15 Mu nzwechselproblem - Beispiel Beispiel Auszahlen des Betrags von 3,45 e Restbetrag: 0,45 e Daniel Ziegler Gierige Algorithmen / 48

16 Mu nzwechselproblem - Beispiel Beispiel Auszahlen des Betrags von 3,45 e Restbetrag: 0,05 e Daniel Ziegler Gierige Algorithmen / 48

17 Mu nzwechselproblem - Beispiel Beispiel Auszahlen des Betrags von 3,45 e Restbetrag: 0,00 e Daniel Ziegler Gierige Algorithmen / 48

18 Münzwechselproblem II Was passiert wenn wir eine andere Währung wählen? Daniel Ziegler Gierige Algorithmen / 48

19 Münzwechselproblem II Was passiert wenn wir eine andere Währung wählen? Deutsche Goldmark Daniel Ziegler Gierige Algorithmen / 48

20 Münzwechselproblem II Auszahlen des Betrags von 1,42 Mark Daniel Ziegler Gierige Algorithmen / 48

21 Münzwechselproblem II Auszahlen des Betrags von 1,42 Mark Gierige Lösung Restbetrag: 1,42 Mark Daniel Ziegler Gierige Algorithmen / 48

22 Münzwechselproblem II Auszahlen des Betrags von 1,42 Mark Gierige Lösung Restbetrag: 0,42 Mark Daniel Ziegler Gierige Algorithmen / 48

23 Münzwechselproblem II Auszahlen des Betrags von 1,42 Mark Gierige Lösung Restbetrag: 0,17 Mark Daniel Ziegler Gierige Algorithmen / 48

24 Münzwechselproblem II Auszahlen des Betrags von 1,42 Mark Gierige Lösung Restbetrag: 0,07 Mark Daniel Ziegler Gierige Algorithmen / 48

25 Münzwechselproblem II Auszahlen des Betrags von 1,42 Mark Gierige Lösung Restbetrag: 0,02 Mark Daniel Ziegler Gierige Algorithmen / 48

26 Münzwechselproblem II Auszahlen des Betrags von 1,42 Mark Gierige Lösung Restbetrag: 0,00 Mark Daniel Ziegler Gierige Algorithmen / 48

27 Münzwechselproblem II Gierige Lösung (1,42 Mark) Optimale Lösung (1,42 Mark) Daniel Ziegler Gierige Algorithmen / 48

28 Inhalt 1 Einführung Allgemeines Wichtige Eigenschaften Gierige-Strategie vs. dynamische Programmierung Vor- und Nachteile 2 Beispiel Probleme Münzwechselproblem Fractional Knapsack Scheduling Probleme Offline Caching Tankstellenproblem Weitere Algorithmen 3 Quellen Daniel Ziegler Gierige Algorithmen / 48

29 Fractional Knapsack Aufgabenstellung Gegeben: Menge M von n Gegenständen mit Gewichten g i und Wert w i (w i, g i N) Rucksack mit Fassungsvermögen g R Gesucht: Faktoren α i [0, 1] sodass n k=1 α k g k g R und n k=1 α k w k maximal (Man kann also Teilmengen von den Gegenständen einpacken) Daniel Ziegler Gierige Algorithmen / 48

30 Fractional Knapsack Lösung 1: berechne Verhältnisse c i := w i g i 2: sortiere Gegenstände absteigend nach c i 3: g rest := g R 4: gehe Gegenstände durch, solange g rest > 0 5: k sei der aktuelle Gegenstand 6: α k := min(g k, g rest ) g k 7: g rest := g rest α k g k Laufzeit: O(n log(n)) Daniel Ziegler Gierige Algorithmen / 48

31 Fractional Knapsack Rucksack 30kg 10kg 15kg 20kg 20kg 100e 120e 100e 140e 0e e kg Daniel Ziegler Gierige Algorithmen / 48

32 Fractional Knapsack Rucksack 30kg 10kg 15kg 20kg 20kg 100e 120e 100e 140e 0e 10 e kg 8 e kg 5 e kg 7 e kg Daniel Ziegler Gierige Algorithmen / 48

33 Fractional Knapsack Rucksack 30kg 10kg 15kg 20kg 20kg 100e 120e 140e 100e 0e 10 e kg 8 e kg 7 e kg 5 e kg Daniel Ziegler Gierige Algorithmen / 48

34 Fractional Knapsack Rucksack 20kg 15kg 20kg 20kg 10kg 10 e kg 120e 140e 100e 100e 8 e kg 7 e kg 5 e kg Daniel Ziegler Gierige Algorithmen / 48

35 Fractional Knapsack Rucksack 5kg 20kg 20kg 15kg 10kg 10 e kg 140e 100e 220e 7 e kg 5 e kg Daniel Ziegler Gierige Algorithmen / 48

36 Fractional Knapsack Rucksack 5kg 15kg 20kg 15kg 10kg 10 e kg 105e 100e 255e 7 e kg 5 e kg Daniel Ziegler Gierige Algorithmen / 48

37 0-1 Knapsack Was passiert wenn die Gegenstände nicht mehr teilbar sind? Faktoren α i nun also aus {0, 1} Daniel Ziegler Gierige Algorithmen / 48

38 0-1 Knapsack Rucksack 30kg 10kg 15kg 20kg 20kg 100e 120e 100e 140e 0e 10 e kg 8 e kg 5 e kg 7 e kg Daniel Ziegler Gierige Algorithmen / 48

39 0-1 Knapsack Rucksack 30kg 10kg 15kg 20kg 20kg 100e 120e 140e 100e 0e 10 e kg 8 e kg 7 e kg 5 e kg Daniel Ziegler Gierige Algorithmen / 48

40 0-1 Knapsack Rucksack 20kg 15kg 20kg 20kg 10kg 10 e kg 120e 140e 100e 100e 8 e kg 7 e kg 5 e kg Daniel Ziegler Gierige Algorithmen / 48

41 0-1 Knapsack Rucksack 5kg 20kg 20kg 15kg 10kg 10 e kg 140e 100e 220e 7 e kg 5 e kg Daniel Ziegler Gierige Algorithmen / 48

42 0-1 Knapsack gierige Lösung optimale Lösung 15kg 20kg 10kg 220e 10kg 240e Daniel Ziegler Gierige Algorithmen / 48

43 Inhalt 1 Einführung Allgemeines Wichtige Eigenschaften Gierige-Strategie vs. dynamische Programmierung Vor- und Nachteile 2 Beispiel Probleme Münzwechselproblem Fractional Knapsack Scheduling Probleme Offline Caching Tankstellenproblem Weitere Algorithmen 3 Quellen Daniel Ziegler Gierige Algorithmen / 48

44 Scheduling Probleme Allgemeines Gegeben: Menge an Aktivitäten oder Tasks Gesucht: Ein hinsichtlich bestimmter Eigenschaften optimaler Ablaufplan Betrachtete Scheduling Probleme Aktivitäten-Auswahl-Problem Mittlere Fertigstellungszeit Unit-Time-Tasks Daniel Ziegler Gierige Algorithmen / 48

45 Aktivitäten-Auswahl-Problem Aufgabenstellung Gegeben: Menge an Aktivitäten (z.b. Vorlesungen), jeweils mit einem Start- und Endzeitpunkt Aktivitäten konkurrieren um die exklusive Nutzung einer gemeinsamen Ressource (z.b. Hörsaal) Gesucht: Maximale Menge S max von sich zeitlich nicht überschneidenden Aktivitäten Daniel Ziegler Gierige Algorithmen / 48

46 Aktivitäten-Auswahl-Problem Nach welchem Kriterium soll man die Aktivitäten sortieren? Daniel Ziegler Gierige Algorithmen / 48

47 Aktivitäten-Auswahl-Problem Nach welchem Kriterium soll man die Aktivitäten sortieren? Startzeitpunkt? Daniel Ziegler Gierige Algorithmen / 48

48 Aktivitäten-Auswahl-Problem Nach welchem Kriterium soll man die Aktivitäten sortieren? Startzeitpunkt? t Daniel Ziegler Gierige Algorithmen / 48

49 Aktivitäten-Auswahl-Problem Nach welchem Kriterium soll man die Aktivitäten sortieren? Startzeitpunkt - nein Dauer? Daniel Ziegler Gierige Algorithmen / 48

50 Aktivitäten-Auswahl-Problem Nach welchem Kriterium soll man die Aktivitäten sortieren? Startzeitpunkt - nein Dauer? t Daniel Ziegler Gierige Algorithmen / 48

51 Aktivitäten-Auswahl-Problem Nach welchem Kriterium soll man die Aktivitäten sortieren? Startzeitpunkt - nein Dauer - nein Anzahl Konflikte? Daniel Ziegler Gierige Algorithmen / 48

52 Aktivitäten-Auswahl-Problem Nach welchem Kriterium soll man die Aktivitäten sortieren? Startzeitpunkt - nein Dauer - nein Anzahl Konflikte? t Daniel Ziegler Gierige Algorithmen / 48

53 Aktivitäten-Auswahl-Problem Nach welchem Kriterium soll man die Aktivitäten sortieren? Startzeitpunkt - nein Dauer - nein Anzahl Konflikte - nein Endzeitpunkt? Daniel Ziegler Gierige Algorithmen / 48

54 Aktivitäten-Auswahl-Problem Nach welchem Kriterium soll man die Aktivitäten sortieren? Startzeitpunkt - nein Dauer - nein Anzahl Konflikte - nein Endzeitpunkt - ja Daniel Ziegler Gierige Algorithmen / 48

55 Aktivitäten-Auswahl-Problem Lösung 1: Aktivitäten aufsteigend nach Endzeitpunkt sortieren 2: S max := {A 0 } 3: A lastinsert := A 0 4: gehe Aktivitäten A i, i 1 der Reihe nach durch: 5: falls sich A i nicht mit A lastinsert überschneidet: 6: S max := S max {A i } 7: A lastinsert := A i 8: sonst: ignoriere A i 9: return S max Laufzeit: O(n log(n)) Daniel Ziegler Gierige Algorithmen / 48

56 Aktivitäten-Auswahl-Problem a b c d e f g Daniel Ziegler Gierige Algorithmen / 48

57 Aktivitäten-Auswahl-Problem b d c e a g f Daniel Ziegler Gierige Algorithmen / 48

58 Aktivitäten-Auswahl-Problem b d c e a g f Daniel Ziegler Gierige Algorithmen / 48

59 Aktivitäten-Auswahl-Problem b d c e a g f Daniel Ziegler Gierige Algorithmen / 48

60 Aktivitäten-Auswahl-Problem b d c e a g f Daniel Ziegler Gierige Algorithmen / 48

61 Aktivitäten-Auswahl-Problem b d c e a g f Daniel Ziegler Gierige Algorithmen / 48

62 Aktivitäten-Auswahl-Problem b d c e a g f Daniel Ziegler Gierige Algorithmen / 48

63 Aktivitäten-Auswahl-Problem b d c e a g f Daniel Ziegler Gierige Algorithmen / 48

64 Aktivitäten-Auswahl-Problem b d c e a g f Daniel Ziegler Gierige Algorithmen / 48

65 Mittlere Fertigstellungszeit Aufgabestellung Gegeben: Menge M von n Tasks Jeder Task benötigt d i Zeiteinheiten zur Ausführung Zu jedem Zeitpunkt kann nur ein Task ausgeführt werden Gesucht: Ein Ablaufplan mit minimaler mittlere Fertigstellungszeit der Tasks Daniel Ziegler Gierige Algorithmen / 48

66 Mittlere Fertigstellungszeit Lösung 1: sortiere Tasks aufsteigend nach Dauer d i 2: gib dies als Ablaufplan aus Laufzeit: O(n log(n)) Daniel Ziegler Gierige Algorithmen / 48

67 Mittlere Fertigstellungszeit Tasks Task a b c d e f g Dauer Sortierte Task Task b a f d e g c Dauer Ende mittlere Fertigstellungszeit: = 11 Daniel Ziegler Gierige Algorithmen / 48

68 Unit-Time-Task Aufgabenstellung Gegeben: Menge M von n Tasks jeweils mit einem Termin und einer Strafe (zu zahlen, wenn Termin nicht eingehalten wird) Alle Tasks benötigen zur Ausführung eine Zeiteinheit Gesucht: Ablaufplan für die Tasks, sodass die zu zahlende Strafe minimal ist Daniel Ziegler Gierige Algorithmen / 48

69 Unit-Time-Task Lösung 1: sortiere Tasks absteigend nach Strafe 2: S toolate := 3: gehe Tasks t i der Sortierung nach durch: 4: falls es freien Slot vor Frist von Task t i gibt: 5: wähle davon den spätest möglichen 6: sonst: S toolate := S toolate {t i } 7: verteile alle Tasks aus S toolate beliebig auf die noch freien Slots Laufzeit O(n log(n)) Daniel Ziegler Gierige Algorithmen / 48

70 Unit-Time-Task Tasks Task a b c d e f g Frist Strafe Sortierte Tasks Task d a e b g f c Frist Strafe Daniel Ziegler Gierige Algorithmen / 48

71 Unit-Time-Task Vollständiger Ablaufplan Slot Task a d g b c e f Frist Strafe Daniel Ziegler Gierige Algorithmen / 48

72 Inhalt 1 Einführung Allgemeines Wichtige Eigenschaften Gierige-Strategie vs. dynamische Programmierung Vor- und Nachteile 2 Beispiel Probleme Münzwechselproblem Fractional Knapsack Scheduling Probleme Offline Caching Tankstellenproblem Weitere Algorithmen 3 Quellen Daniel Ziegler Gierige Algorithmen / 48

73 Offline Caching Aufgabenstellung Gegeben: Vollassoziativer Cache der Größe n Vorbestimmte Abfolge von Speicherzugriffen Gesucht: Cache-Strategie, sodass Anzahl der Cache-Misses minimal ist Daniel Ziegler Gierige Algorithmen / 48

74 Offline Caching Lösung Wenn ein Cache-Miss auftritt: Falls Cache nicht voll belegt: lade Datum in den Cache Sonst: verdränge Datum, auf das am längsten nicht mehr zugegriffen wird (am besten nie mehr) Sonst: nichts zu tun, da Datum schon im Cache Daniel Ziegler Gierige Algorithmen / 48

75 Offline Caching Referenzfolge 0xA, 0xB, 0xD, 0xF, 0xE, 0xF, 0xB, 0xA, 0xD Cache Daniel Ziegler Gierige Algorithmen / 48

76 Offline Caching Referenzfolge 0xA, 0xB, 0xD, 0xF, 0xE, 0xF, 0xB, 0xA, 0xD Cache Daniel Ziegler Gierige Algorithmen / 48

77 Offline Caching Referenzfolge 0xA, 0xB, 0xD, 0xF, 0xE, 0xF, 0xB, 0xA, 0xD 0xA Cache Daniel Ziegler Gierige Algorithmen / 48

78 Offline Caching Referenzfolge 0xA, 0xB, 0xD, 0xF, 0xE, 0xF, 0xB, 0xA, 0xD 0xB 0xA Cache Daniel Ziegler Gierige Algorithmen / 48

79 Offline Caching Referenzfolge 0xA, 0xB, 0xD, 0xF, 0xE, 0xF, 0xB, 0xA, 0xD 0xB 0xA 0xD Cache Daniel Ziegler Gierige Algorithmen / 48

80 Offline Caching Referenzfolge 0xA, 0xB, 0xD, 0xF, 0xE, 0xF, 0xB, 0xA, 0xD 0xB 0xF 0xA 0xD Cache Daniel Ziegler Gierige Algorithmen / 48

81 Offline Caching Referenzfolge 0xA, 0xB, 0xD, 0xF, 0xE, 0xF, 0xB, 0xA, 0xD 0xB 0xF 0xA 0xE Cache Daniel Ziegler Gierige Algorithmen / 48

82 Offline Caching Referenzfolge 0xA, 0xB, 0xD, 0xF, 0xE, 0xF, 0xB, 0xA, 0xD 0xB 0xF 0xA 0xE Cache Daniel Ziegler Gierige Algorithmen / 48

83 Offline Caching Referenzfolge 0xA, 0xB, 0xD, 0xF, 0xE, 0xF, 0xB, 0xA, 0xD 0xB 0xF 0xA 0xE Cache Daniel Ziegler Gierige Algorithmen / 48

84 Offline Caching Referenzfolge 0xA, 0xB, 0xD, 0xF, 0xE, 0xF, 0xB, 0xA, 0xD 0xB 0xF 0xA 0xE Cache Daniel Ziegler Gierige Algorithmen / 48

85 Offline Caching Referenzfolge 0xA, 0xB, 0xD, 0xF, 0xE, 0xF, 0xB, 0xA, 0xD 0xB 0xF 0xD 0xE Cache Daniel Ziegler Gierige Algorithmen / 48

86 Inhalt 1 Einführung Allgemeines Wichtige Eigenschaften Gierige-Strategie vs. dynamische Programmierung Vor- und Nachteile 2 Beispiel Probleme Münzwechselproblem Fractional Knapsack Scheduling Probleme Offline Caching Tankstellenproblem Weitere Algorithmen 3 Quellen Daniel Ziegler Gierige Algorithmen / 48

87 Tankstellenproblem Aufgabenstellung Gegeben: Mit einem Auto zurückzulegende Wegstrecke der Länge l Reichweite r mit vollem Tank Positionen p i der Tankstellen entlang des Weges Gesucht: Minimale Auswahl an Tankstellen um die Strecke zurücklegen zu können Daniel Ziegler Gierige Algorithmen / 48

88 Tankstellenproblem Lösung Wähle als nächste Tankstelle immer die am weitesten entfernte und mit der Reichweite noch erreichbare. Beispiel Länge der Strecke: l = 1000 km Reichweite: r = 300 km Positionen der Tankstellen: {200,400,500,700,800,900} (jeweils in km) Daniel Ziegler Gierige Algorithmen / 48

89 Tankstellenproblem km Daniel Ziegler Gierige Algorithmen / 48

90 Tankstellenproblem km Daniel Ziegler Gierige Algorithmen / 48

91 Tankstellenproblem km Daniel Ziegler Gierige Algorithmen / 48

92 Tankstellenproblem km Daniel Ziegler Gierige Algorithmen / 48

93 Tankstellenproblem km Daniel Ziegler Gierige Algorithmen / 48

94 Tankstellenproblem - Java 1 void compute ( int [] stations, List < Integer > sol, int range, int end ){ 2 Arrays. sort ( stations ); 3 int currange = range ; 4 int laststation = -1; 5 6 while ( currange < end ){ 7 int farestposstation = -1; 8 for ( int i= laststation +1; i< stations. length && stations [i] <= currange ; i ++) { 9 farestposstation = i; 10 } 11 sol. add ( stations [ farestposstation ]); 12 currange = stations [ farestposstation ] + range ; 13 laststation = farestposstation ; 14 } 15 } Daniel Ziegler Gierige Algorithmen / 48

95 Inhalt 1 Einführung Allgemeines Wichtige Eigenschaften Gierige-Strategie vs. dynamische Programmierung Vor- und Nachteile 2 Beispiel Probleme Münzwechselproblem Fractional Knapsack Scheduling Probleme Offline Caching Tankstellenproblem Weitere Algorithmen 3 Quellen Daniel Ziegler Gierige Algorithmen / 48

96 Weitere Algorithmen Huffman Codierung (Datenkompression) Graphenalgorithmen: Dijkstra-Algorithmus (kürzester Pfad) Algoritmus von Prim (minimaler Spannbaum) Algoritmus von Kruskal (minimaler Spannbaum) Daniel Ziegler Gierige Algorithmen / 48

97 Inhalt 1 Einführung Allgemeines Wichtige Eigenschaften Gierige-Strategie vs. dynamische Programmierung Vor- und Nachteile 2 Beispiel Probleme Münzwechselproblem Fractional Knapsack Scheduling Probleme Offline Caching Tankstellenproblem Weitere Algorithmen 3 Quellen Daniel Ziegler Gierige Algorithmen / 48

98 Quellen Algorithmen - Eine Einführung, Thomas H. Cormen, Charles E. Leiserson, Ronald Rivest, Clifford Stein; Oldenbourg Verlag, 2013 Introduction to The Design and Analysis of Algorithms, Anany Levitin, Pearson, 2007 Hallo Welt! Vortragsfolien von früheren Semestern threadid=698567&start=0&mc=2 Bilder: coins of the German Empire station.svg Daniel Ziegler Gierige Algorithmen / 48

Gierige Algorithmen. Seminar Hallo Welt! für Fortgeschrittene. Daniel Danner. 11. Juni Daniel Danner Gierige Algorithmen

Gierige Algorithmen. Seminar Hallo Welt! für Fortgeschrittene. Daniel Danner. 11. Juni Daniel Danner Gierige Algorithmen Gierige Algorithmen Seminar Hallo Welt! für Fortgeschrittene Daniel Danner 11. Juni 2010 Daniel Danner Gierige Algorithmen 11.06.2010 1 / 33 Überblick 1 Einführung Definition und Anwendung Abgrenzung zu

Mehr

Gierige Algorithmen. Seminar Hallo Welt! für Fortgeschrittene. Jennifer Naumann. 11.Juni 2013

Gierige Algorithmen. Seminar Hallo Welt! für Fortgeschrittene. Jennifer Naumann. 11.Juni 2013 Gierige Algorithmen Seminar Hallo Welt! für Fortgeschrittene Jennifer Naumann 11.Juni 2013 Jennifer Naumann Gierige Algorithmen 11.Juni 2013 1 / 44 Übersicht 1 Einführung Definition Wann darf man gierige

Mehr

Hallo Welt für Fortgeschrittene

Hallo Welt für Fortgeschrittene Hallo Welt für Fortgeschrittene Gierige Algorithmen Alexander Dietsch Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Inhalt Grundlagen Definition und Anwendung Gierige Algorithmen vs. Dynamische

Mehr

Hallo Welt für Fortgeschrittene

Hallo Welt für Fortgeschrittene Hallo Welt für Fortgeschrittene Gierige Algorithmen Michael Baer Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Gliederung Einführung Definition Verwendung und Grenzen Abgrenzung zur DP

Mehr

Gierige Algorithmen Marcel Henninger. Hallo Welt -Seminar - LS 2 Gierige Algorithmen

Gierige Algorithmen Marcel Henninger. Hallo Welt -Seminar - LS 2 Gierige Algorithmen Gierige Algorithmen Hallo Hallo Welt! Welt! für für Fortgeschrittene Fortgeschrittene 31.05.2017 Marcel Henninger 1 Inhalt Einführung Allgemeines Greedy-Choice-Property Greedy vs Dynamic Vor- und Nachteile

Mehr

Übersicht. Aktivitäten-Auswahl-Problem. Greedy Algorithmen. Aktivitäten-Auswahl-Problem. Aktivitäten-Auswahl-Problem. Datenstrukturen & Algorithmen

Übersicht. Aktivitäten-Auswahl-Problem. Greedy Algorithmen. Aktivitäten-Auswahl-Problem. Aktivitäten-Auswahl-Problem. Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Übersicht Greedy Algorithmen Einführung Aktivitäten-Auswahl-Problem Huffman Codierung Matthias Zwicker Universität Bern Frühling 2009 2 Greedy Algorithmen Entwurfsstrategie

Mehr

Gierige Algorithmen. Tilman Adler Tilman Adler Gierige Algorithmen / 46

Gierige Algorithmen. Tilman Adler Tilman Adler Gierige Algorithmen / 46 Gierige Algorithmen Tilman Adler 13.06.2012 Tilman Adler Gierige Algorithmen 13.06.2012 1 / 46 Ziel Nach diesem Vortrag solltet ihr verstanden haben: Was gierige Algorithmen von stupider DP abgrenzt Wie

Mehr

21. Greedy Algorithmen. Aktivitätenauswahl, Fractional Knapsack Problem, Huffman Coding Cormen et al, Kap. 16.1, 16.3

21. Greedy Algorithmen. Aktivitätenauswahl, Fractional Knapsack Problem, Huffman Coding Cormen et al, Kap. 16.1, 16.3 581 21. Greedy Algorithmen Aktivitätenauswahl, Fractional Knapsack Problem, Huffman Coding Cormen et al, Kap. 16.1, 16.3 Aktivitäten Auswahl 582 Koordination von Aktivitäten, die gemeinsame Resource exklusiv

Mehr

Hallo Welt für Fortgeschrittene

Hallo Welt für Fortgeschrittene Hallo Welt für Fortgeschrittene Gierige Algorithmen Christoph Merdes Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Gliederung Einführung - Ein simples Beispiel - Definition - Abgrenzung

Mehr

Algorithmentheorie. 10 Greedy Verfahren

Algorithmentheorie. 10 Greedy Verfahren Algorithmentheorie 0 Greedy Verfahren Prof. Dr. S. Albers Greedy Verfahren. Allgemeine Vorbemerkungen 2. Einfache Beispiele Münzwechselproblem Handlungsreisenden-Problem 3. Das Aktivitäten Auswahlproblem

Mehr

9 Minimum Spanning Trees

9 Minimum Spanning Trees Im Folgenden wollen wir uns genauer mit dem Minimum Spanning Tree -Problem auseinandersetzen. 9.1 MST-Problem Gegeben ein ungerichteter Graph G = (V,E) und eine Gewichtsfunktion w w : E R Man berechne

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Minimale Spannbäume Maike Buchin 18.7., 20.7.2017 Einführung Motivation: Verbinde Inseln mit Fähren oder Städte mit Schienen und verbrauche dabei möglichst wenig Länge. Problem:

Mehr

Informatik II Greedy-Algorithmen

Informatik II Greedy-Algorithmen lausthal Informatik II reedy-algorithmen. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Erinnerung: Dynamische Programmierung Zusammenfassung der grundlegenden Idee: Optimale Sub-Struktur:

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 6 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 16. Mai 2018 [Letzte Aktualisierung: 18/05/2018,

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale

Mehr

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität 1 Klausur Wichtige Hinweise: 2.7.07, Beginn 9 Uhr Bitte spätestens 8:4 Uhr vor Ort sein Sporthalle + Audimax Informationen

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 4 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 24. April 2019 [Letzte Aktualisierung: 24/04/2019,

Mehr

Effiziente Algorithmen (SS2015)

Effiziente Algorithmen (SS2015) Effiziente Algorithmen (SS205) Kapitel 5 Approximation II Walter Unger Lehrstuhl für Informatik 2.06.205 07:59 5 Inhaltsverzeichnis < > Walter Unger 5.7.205 :3 SS205 Z Inhalt I Set Cover Einleitung Approximation

Mehr

Algorithmen & Komplexität

Algorithmen & Komplexität Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Kürzeste Pfade Problem Gegeben Netzwerk: Graph G = (V, E), Gewichtsfunktion w: E N Zwei Knoten: s, t Kantenzug/Weg

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 robert.legenstein@igi.tugraz.at 1 Kapitel 2 Algorithmische robert.legenstein@igi.tugraz.at 2 2. Algorithmische 1) Iterative Algorithmen 2) Rekursive Algorithmen

Mehr

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Aufgabe 1. / 15 P Hinweise: 1) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern

Mehr

ADS 2: Algorithmen und Datenstrukturen

ADS 2: Algorithmen und Datenstrukturen ADS 2: Algorithmen und Datenstrukturen Teil I Prof. Peter F. Stadler & Sebastian Will Bioinformatik/IZBI Institut für Informatik & Interdisziplinäres Zentrum für Bioinformatik Universität Leipzig 9. April

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2012/13 25. Vorlesung Dynamisches Programmieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Klausurvorbereitung Tipp: Schreiben Sie sich alle Fragen

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen Lerneinheit : Dynamisches Programmieren Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester.. Einleitung Diese Lerneinheit widmet sich einer

Mehr

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47 Graphalgorithmen Dominik Paulus.0.01 Dominik Paulus Graphalgorithmen.0.01 1 / 7 1 Spannbäume Kruskal Prim Edmonds/Chu-Liu Datenstrukturen Fibonacci-Heap Union/Find Kürzeste Pfade Dijkstra Bellman-Ford

Mehr

ÜBUNGSKLAUSUR Studienhalbjahr: 2. Semester. Datum: 20. Juli 2016 Bearbeitungszeit: 90 Minuten. Modul: T2INF Dozent: Stephan Schulz

ÜBUNGSKLAUSUR Studienhalbjahr: 2. Semester. Datum: 20. Juli 2016 Bearbeitungszeit: 90 Minuten. Modul: T2INF Dozent: Stephan Schulz Matrikelnummer: Fakultät Studiengang: Jahrgang / Kurs : Technik Angewandte Informatik 01 B/C/K ÜBUNGSKLAUSUR Studienhalbjahr:. Semester Datum: 0. Juli 01 Bearbeitungszeit: 90 Minuten Modul: TINF100.1 Dozent:

Mehr

Algorithmen und Datenstrukturen. Organisatorisches. Christian Komusiewicz Ernst-Abbe-Platz 2, R3315

Algorithmen und Datenstrukturen. Organisatorisches. Christian Komusiewicz Ernst-Abbe-Platz 2, R3315 Algorithmen und Datenstrukturen Christian Komusiewicz Ernst-Abbe-Platz 2, R3315 christian.komusiewicz@uni-jena.de Friedrich-Schiller-Universität Jena Institut für Informatik http://users.fmi.uni-jena.de/

Mehr

Erinnerung VL

Erinnerung VL Erinnerung VL 04.07.2016 Union-Find-Datenstruktur (für Kruskals Algorithmus) Ackermann-Funktion (in der Analyse) Optimierungsprobleme (Beispiel: Rucksackproblem) Im Allgemeinen (NP-)schwer Z.B. für unteilbare

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2007 11. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Das Rucksack-Problem Ein Dieb, der einen Safe

Mehr

Optimale Lösungen mit Greedy-Strategie erfordern Optimalität der Greedy-Wahl. Beispiele für optimale Greedy-Lösungen

Optimale Lösungen mit Greedy-Strategie erfordern Optimalität der Greedy-Wahl. Beispiele für optimale Greedy-Lösungen Wiederholung Optimale Lösungen mit Greedy-Strategie erfordern Optimalität der Greedy-Wahl unabhängig von Subproblemen Optimalität der Subprobleme Beispiele für optimale Greedy-Lösungen Scheduling Problem

Mehr

Top-down Bottom-up Divide & Conquer Dynamisches Programmieren Caching (Memoization) Branch-and-Bound Greedy

Top-down Bottom-up Divide & Conquer Dynamisches Programmieren Caching (Memoization) Branch-and-Bound Greedy 2.2 Entwurfsparadigmen Top-down Bottom-up Divide & Conquer Dynamisches Programmieren Caching (Memoization) Branch-and-Bound Greedy 1 Top-Down Zerlege das gegebene Problem in Teilschritte Zerlege Teilschritte

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Prof. Dr. Erika Ábrahám Datenstrukturen und Algorithmen 1/1 Datenstrukturen und Algorithmen Vorlesung 14: Prof. Dr. Erika Ábrahám Theorie Hybrider Systeme Informatik 2 http://ths.rwth-aachen.de/teaching/ss-14/

Mehr

Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS Oktober 2016

Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS Oktober 2016 Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithms and Complexity Group 186.815 Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS 2016 5. Oktober 2016 Machen Sie

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Lerneinheit 3: Greedy Algorithmen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 2016 10.5.2016 Einleitung Einleitung Diese Lerneinheit

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2012/13 26. Vorlesung Greedy- und Approximationsalgorithmen Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Operations Research Optimierung für Wirtschaftsabläufe:

Mehr

Klausur Algorithmentheorie

Klausur Algorithmentheorie Prof. Dr. G. Schnitger Frankfurt, den 06.04.2009 Klausur Algorithmentheorie WS 2008/2009 Name: Vorname: Geburtsdatum: Studiengang: BITTE GENAU LESEN Die Klausur besteht aus 4 Aufgaben, in denen maximal

Mehr

Methoden für den Entwurf von Algorithmen

Methoden für den Entwurf von Algorithmen Methoden für den Entwurf von Algorithmen Greedy Algorithmen: - Löse ein einfaches Optimierungsproblem durch eine Folge vernünftiger Entscheidungen. - Eine getroffene Entscheidung wird nie zurückgenommen.

Mehr

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme Theoretische Informatik Exkurs Rainer Schrader Exkurs: Komplexität von n Institut für Informatik 13. Mai 2009 1 / 34 2 / 34 Gliederung Entscheidungs- und Approximationen und Gütegarantien zwei Greedy-Strategien

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2009 11. Vorlesung Uwe Quasthoff Universität Leipzig Institut für Informatik quasthoff@informatik.uni-leipzig.de Das Rucksack-Problem Ein Dieb, der einen

Mehr

Wiederholung. Divide & Conquer Strategie

Wiederholung. Divide & Conquer Strategie Wiederholung Divide & Conquer Strategie Binäre Suche O(log n) Rekursives Suchen im linken oder rechten Teilintervall Insertion-Sort O(n 2 ) Rekursives Sortieren von a[1..n-1], a[n] Einfügen von a[n] in

Mehr

Institut für Programmierung und Reaktive Systeme 31. Mai Programmieren II. 12. Übungsblatt

Institut für Programmierung und Reaktive Systeme 31. Mai Programmieren II. 12. Übungsblatt Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 1. Mai 01 Programmieren II 1. Übungsblatt Hinweis: Dieses Übungsblatt enthält die dritte Pflichtaufgabe.

Mehr

Übersicht. Datenstrukturen und Algorithmen. Divide-and-Conquer. Übersicht. Vorlesung 9: Quicksort (K7)

Übersicht. Datenstrukturen und Algorithmen. Divide-and-Conquer. Übersicht. Vorlesung 9: Quicksort (K7) Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Algorithmus Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-5/dsal/ 2 7.

Mehr

Algorithmen I - Tutorium 28 Nr. 11

Algorithmen I - Tutorium 28 Nr. 11 Algorithmen I - Tutorium 28 Nr. 11 13.07.2017: Spaß mit Schnitten, Kreisen und minimalen Spannbäumen Marc Leinweber marc.leinweber@student.kit.edu INSTITUT FÜR THEORETISCHE INFORMATIK (ITI), PROF. DR.

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 22 (20.7.2016) Greedy Algorithmen - Datenkompression Algorithmen und Komplexität Greedy Algorithmen Greedy Algorithmen sind eine Algorithmenmethode,

Mehr

Hallo Welt für Fortgeschrittene

Hallo Welt für Fortgeschrittene Hallo Welt für Fortgeschrittene Gierige Algorithmen Sarah Nuißl Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Gliederung Einführung Gierige Algorithmen vs. Dynamisches Programmieren Beispiele

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 208 (Algorithmen & Datenstrukturen) Vorlesung 4 (..208) Graphenalgorithmen III Algorithmen und Komplexität Bäume Gegeben: Zusammenhängender, ungerichteter Graph G = V, E Baum: Zusammenhängender,

Mehr

Institut für Programmierung und Reaktive Systeme 27. Mai Programmieren II. 12. Übungsblatt

Institut für Programmierung und Reaktive Systeme 27. Mai Programmieren II. 12. Übungsblatt Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 27. Mai 206 Programmieren II 2. Übungsblatt Hinweis: Auf diesem und den folgenden Übungsblättern

Mehr

Klausur Algorithmen und Datenstrukturen II 01. Agust 2016

Klausur Algorithmen und Datenstrukturen II 01. Agust 2016 Technische Universität Braunschweig Sommersemester 2016 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Dr. Christian Scheffer Klausur Algorithmen und Datenstrukturen

Mehr

Informatik II, SS 2018

Informatik II, SS 2018 Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 21 (11.7.2018) String Matching (Textsuche) II Greedy Algorithmen I Algorithmen und Komplexität Textsuche / String Matching Gegeben: Zwei

Mehr

QuickSort ist ein Sortieralgorithmus, der auf der Idee des Teile & Beherrsche beruht, und das gegebene Array an Ort und Stelle (in place) sortiert

QuickSort ist ein Sortieralgorithmus, der auf der Idee des Teile & Beherrsche beruht, und das gegebene Array an Ort und Stelle (in place) sortiert 4.3.6 QuickSort QuickSort ist ein Sortieralgorithmus, der auf der Idee des Teile & Beherrsche beruht, und das gegebene Array an Ort und Stelle (in place) sortiert QuickSort teilt das gegebene Array anhand

Mehr

Übersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr.

Übersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr. Übersicht Datenstrukturen und Vorlesung 1: Prof. Dr. Erika Ábrahám Theorie Hybrider Systeme Informatik 2 http://ths.rwth-aachen.de/teaching/ss-14/ datenstrukturen-und-algorithmen/ Diese Präsentation verwendet

Mehr

21. Dynamic Programming III

21. Dynamic Programming III Approximation 21. Dynamic Programming III FPTAS [Ottman/Widmayer, Kap. 7.2, 7.3, Cormen et al, Kap. 15,35.5] Sei ein ε (, 1) gegeben. Sei I eine bestmögliche Auswahl. Suchen eine gültige Auswahl I mit

Mehr

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Übung zu Algorithmen und Datenstrukturen (für ET/IT) Übung zu Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Jakob Vogel Computer-Aided Medical Procedures Technische Universität München Komplexität von Programmen Laufzeit kann näherungsweise

Mehr

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016 Algorithmen und Datenstrukturen 2 Übung 1 Stefan Florian Palkovits, BSc 0926364 e0926364@student.tuwien.ac.at 12. Juni 2016 Aufgabe 1: Es existiert eine Reduktion von Problem A auf Problem B in O(n 3 +

Mehr

Datenstrukturen und Algorithmen (SS 2013)

Datenstrukturen und Algorithmen (SS 2013) Datenstrukturen und Algorithmen (SS 2013) Übungsblatt 10 Abgabe: Montag, 08.07.2013, 14:00 Uhr Die Übungen sollen in Gruppen von zwei bis drei Personen bearbeitet werden. Schreiben Sie die Namen jedes

Mehr

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1 Allgemeines. Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition.. (a) Ein Graph G =(V, E) heißt kreisfrei, wenn er keinen Kreis besitzt. Beispiel: Ein kreisfreier Graph: FG KTuEA, TU Ilmenau

Mehr

Dynamische Programmierung

Dynamische Programmierung Dynamische Programmierung Claudia Gerhold 9.5.6 Claudia Gerhold Dynamische Programmierung 9.5.6 / 4 Agenda Einführung Dynamische Programmierung Top-Down Ansatz mit Memoization Bottom-Up Ansatz 3 Anwendungsbeispiele

Mehr

Algorithmen und Datenstrukturen (AuD) Prof. Dr. Claudia Eckert und Dr. Thomas Stibor

Algorithmen und Datenstrukturen (AuD) Prof. Dr. Claudia Eckert und Dr. Thomas Stibor Algorithmen und Datenstrukturen (AuD) Prof. Dr. Claudia Eckert und Dr. Thomas Stibor Organisatorisches: Vorlesung 4 SWS, Zentralübung 2 SWS: 6 Credit Points Mi 9:45 11:15 Raum 1200 (Vorlesung) Do 8:00

Mehr

Aufgaben zur Klausurvorbereitung

Aufgaben zur Klausurvorbereitung Vorlesung Graphen und Optimierung Sommersemester 2013/14 Prof. S. Lange Aufgaben zur Klausurvorbereitung Hier finden Sie eine Reihe von Übungsaufgaben, die wir an den beiden Vorlesungsterminen am 29.01.2014

Mehr

Algorithmen I. Tutorium Sitzung. Dennis Felsing

Algorithmen I. Tutorium Sitzung. Dennis Felsing Algorithmen I Tutorium 1-12. Sitzung Dennis Felsing dennis.felsing@student.kit.edu www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-07-04 Überblick 1 Dynamische Programmierung Idee Längste gemeinsame Teilfolge

Mehr

Rückblick: Starke Zusammenhangskomponenten

Rückblick: Starke Zusammenhangskomponenten Rückblick: Starke Zusammenhangskomponenten Der Algorithmus von Kosaraju bestimmt die starken Zusammenhangskomponenten eines gerichteten Graphen wie folgt: Schritt 1: Bestimme den transponierten Graphen

Mehr

Klausur Algorithmen und Datenstrukturen II

Klausur Algorithmen und Datenstrukturen II Technische Universität Braunschweig Sommersemester 2017 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Arne Schmidt Klausur Algorithmen und Datenstrukturen

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Kürzeste Wege Maike Buchin 4. und 6.7.2017 Einführung Motivation: Bestimmung von kürzesten Wegen ist in vielen Anwendungen, z.b. Routenplanung, ein wichtiges Problem. Allgemeine

Mehr

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J Greedy-Strategie Definition Paradigma Greedy Der Greedy-Ansatz verwendet die Strategie 1 Top-down Auswahl: Bestimme in jedem Schritt eine lokal optimale Lösung, so dass man eine global optimale Lösung

Mehr

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/54 Datenstrukturen und Algorithmen Vorlesung 1: Algorithmische Komplexität Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification

Mehr

Greedy Algorithms - Gierige Algorithmen

Greedy Algorithms - Gierige Algorithmen Greedy Algorithms - Gierige Algorithmen Marius Burfey 23. Juni 2009 Inhaltsverzeichnis 1 Greedy Algorithms 1 2 Interval Scheduling - Ablaufplanung 2 2.1 Problembeschreibung....................... 2 2.2

Mehr

19. Dynamic Programming I

19. Dynamic Programming I 495 19. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixkettenmultiplikation, Matrixmultiplikation nach Strassen [Ottman/Widmayer, Kap.

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Martin Dietzfelbinger Kurt Mehlhorn Peter Sanders Algorithmen und Datenstrukturen Die Grundwerkzeuge Springer Vieweg 1 Vorspeise: Arithmetik für ganze Zahlen 1 1.1 Addition 2 1.2 Multiplikation: Die Schulmethode

Mehr

5.5 Prioritätswarteschlangen

5.5 Prioritätswarteschlangen 5.5 Prioritätswarteschlangen LIFO- und FIFO-Warteschlangen entfernen Werte aus der Warteschlange in Abhängigkeit davon, wann sie in diese eingefügt wurden Prioritätswartschlangen interpretieren die Werte

Mehr

Grundlagen der Algorithmen und Datenstrukturen Kapitel 12

Grundlagen der Algorithmen und Datenstrukturen Kapitel 12 Grundlagen der Algorithmen und Datenstrukturen Kapitel 12 Christian Scheideler + Helmut Seidl SS 2009 28.06.09 Kapitel 12 1 Generische Optimierungsverfahren Techniken: Systematische Suche lass nichts aus

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2012/13 17. Vorlesung Nächstes Paar Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Problem: Gegeben: Menge P von n Punkten in der Ebene, jeder Punkt

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Rheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik VI Algorithmen und Datenstrukturen Vorlesungsmitschrift zur Vorlesung im SS 2004 Prof. Dr.-Ing. H. Ney Letzte Überarbeitung:

Mehr

Algorithmen und Komplexität

Algorithmen und Komplexität Algorithmen und Komplexität Dynamische Programmierung Markus Ullrich Norbert Baum Fachbereich Informatik - IIb07 Hochschule Zittau/Görlitz 28. Mai 2009 1 / 29 Wie sieht es mit langen Ketten aus? A 1 A

Mehr

Sortieren II / HeapSort Heaps

Sortieren II / HeapSort Heaps Organisatorisches VL-07: Sortieren II: HeapSort (Datenstrukturen und Algorithmen, SS 2017) Vorlesung: Gerhard Woeginger (Zimmer 4024 im E1) Email: dsal-i1@algo.rwth-aachen.de Webseite: http://algo.rwth-aachen.de/lehre/ss17/dsa.php

Mehr

Approximationsalgorithmen. 19. Dezember / 28

Approximationsalgorithmen. 19. Dezember / 28 Approximationsalgorithmen 19. Dezember 2017 1 / 28 Optimierungsprobleme Das Ziel: Bearbeite schwierige Optimierungsprobleme der Form opt y f (x, y) so dass L(x, y). Die Zielfunktion f (x, y) ist zu minimieren

Mehr

Einführung in die Objektorientierte Programmierung Vorlesung 17: Dynamische Programmierung. Sebastian Küpper

Einführung in die Objektorientierte Programmierung Vorlesung 17: Dynamische Programmierung. Sebastian Küpper Einführung in die Objektorientierte Programmierung Vorlesung 17: Dynamische Programmierung Sebastian Küpper Redundanz Rekursiver Lösungen Rekursion kann elegante Bescheibungen zur Problemlösung ergeben

Mehr

Informatik 1 (WS 2018/2019)

Informatik 1 (WS 2018/2019) Informatik 1 (WS 2018/2019) Klaus Berberich (klaus.berberich@htwsaar.de) Wolfgang Braun (wolfgang.braun@htwsaar.de) 0. Organisatorisches Dozenten Klaus Berberich (klaus.berberich@htwsaar.de) Sprechstunde

Mehr

Klausur Algorithmentheorie

Klausur Algorithmentheorie Prof. Dr. G. Schnitger Frankfurt, den 07.04.2011 M. Poloczek Klausur Algorithmentheorie WS 2010/2011 Name: Vorname: Geburtsdatum: Studiengang: BITTE GENAU LESEN Die Klausur besteht aus 4 Aufgaben, in denen

Mehr

Anwendungsbeispiel MinHeap

Anwendungsbeispiel MinHeap Anwendungsbeispiel MinHeap Uns seien n ganze Zahlen gegeben und wir möchten darin die k größten Zahlen bestimmen; zudem gelten, dass n deutlich größer als k ist Wir können das Problem mit Laufzeit in O(n

Mehr

Datenstrukturen und Algorithmen D-INFK

Datenstrukturen und Algorithmen D-INFK Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik Peter Widmayer

Mehr

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 ETH Zürich Institut für Theoretische Informatik Prof. Dr. Angelika Steger Florian Meier, Ralph Keusch HS 2017 Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 Lösungsvorschlag zu Aufgabe 1

Mehr

Lösungen von Übungsblatt 12

Lösungen von Übungsblatt 12 Lösungen von Übungsblatt 12 Algorithmen (WS 2018, Ulrike von Luxburg) Lösungen zu Aufgabe 1 Eine (kanonische) Möglichkeit, die Branch-Schritte auszuführen ergibt sich wie folgt: Das ursprüngliche Problem

Mehr

Klausur Algorithmen und Datenstrukturen II 10. August 2015

Klausur Algorithmen und Datenstrukturen II 10. August 2015 Technische Universität Braunschweig Sommersemester 2015 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Dr. Christian Scheffer Klausur Algorithmen und Datenstrukturen

Mehr

6.1. Ein Approximationsalgorithmus für das Rucksackproblem

6.1. Ein Approximationsalgorithmus für das Rucksackproblem 6.1. Ein Approximationsalgorithmus für das Rucksackproblem Wir erinnern uns an das 0-1-Rucksackproblem: Eingabe: Ganzzahlige Volumina a 1,..., a n > 0, Nutzenwerte c 1,..., c n > 0, ganzzahlige Volumenschranke

Mehr

Informatikgrundlagen (WS 2016/2017)

Informatikgrundlagen (WS 2016/2017) Informatikgrundlagen (WS 2016/2017) Klaus Berberich (klaus.berberich@htwsaar.de) Wolfgang Braun (wolfgang.braun@htwsaar.de) 0. Organisatorisches Dozenten Klaus Berberich (klaus.berberich@htwsaar.de) Sprechstunde

Mehr

19. Dynamic Programming I

19. Dynamic Programming I 495 19. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixkettenmultiplikation, Matrixmultiplikation nach Strassen [Ottman/Widmayer, Kap.

Mehr

Approximationsalgorithmen für NP-harte Optimierungsprobleme

Approximationsalgorithmen für NP-harte Optimierungsprobleme Approximationsalgorithmen für NP-harte Optimierungsprobleme Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 18 Was tun mit NP-harten Problemen? Viele praxisrelevante

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 05 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute Einführung Grundlagen von Algorithmen Grundlagen

Mehr

Approximationsalgorithmen für NP-harte Optimierungsprobleme

Approximationsalgorithmen für NP-harte Optimierungsprobleme Approximationsalgorithmen für NP-harte Optimierungsprobleme Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 4. Januar 2011 Berthold Vöcking, Informatik 1 () Vorlesung

Mehr

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems 4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um

Mehr

Große Lösungsräume. Leon Schmidtchen Hallo Welt Seminar - LS Leon Schmidtchen Große Lösungsräume Hallo Welt Seminar - LS2

Große Lösungsräume. Leon Schmidtchen Hallo Welt Seminar - LS Leon Schmidtchen Große Lösungsräume Hallo Welt Seminar - LS2 Große Lösungsräume Leon Schmidtchen 1.06.201 Hallo Welt Seminar - LS 2!1 Gliederung Motivation Brute Force Backtracking Pruning Leon Schmidtchen Branch & Bound 1.06.201 Hallo Welt Seminar - LS 2 Wann soll

Mehr

Geometrie I. Laura Lawniczak Hallo Welt -Seminar - LS 2

Geometrie I. Laura Lawniczak Hallo Welt -Seminar - LS 2 Geometrie I Laura Lawniczak 12.07.2017 Hallo Welt -Seminar - LS 2 Inhalt Grundlagen Abstandsberechnung Punkt-Gerade Punkt-Segment CCW Polygone Punkt in Polygon Pick s Theorem Konvexe Hülle 12.07.2017 Laura

Mehr

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems 4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2/212 2.9. - 3.9.2 17.1. - 21.1.2 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 3 aus "Abenteuer Informatik" von Jens Gallenbacher

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 07 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Programm heute Einführung Grundlagen von Algorithmen

Mehr