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

Größe: px
Ab Seite anzeigen:

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

Transkript

1 Gierige Algorithmen Hallo Hallo Welt! Welt! für für Fortgeschrittene Fortgeschrittene Marcel Henninger 1

2 Inhalt Einführung Allgemeines Greedy-Choice-Property Greedy vs Dynamic Vor- und Nachteile von GA Beispiele Knapsack Probleme Münzwecheslproblem LKW-Fahrer-Problem Scheduling Load balancing Quellen 2

3 Allgemeines Algorithmen Algorithmen zur zur Lösung Lösung von von Optimierungsproblemen Optimierungsproblemen Vorgehen: Vorgehen: 1: 1: Optimierungsproblem Optimierungsproblem umformen, umformen, sodass sodass man man immer immer eine eine gierige gierige Entscheidung Entscheidung treffen treffen kann kann und und nur nur noch noch ein ein Teilproblem Teilproblem übrig übrig hat hat 2: 2: Gierige Gierige Entscheidung Entscheidung treffen, treffen, also also das das lokale lokale Optimum Optimum wählen wählen 3: 3: Mit Mit Teilproblem Teilproblem weitermachen weitermachen 4: 4: Wenn Wenn kleinstes kleinstes Teilproblem Teilproblem noch noch nicht nicht erreicht erreicht => => GOTO GOTO 22 5: 5: Teillösungen Teillösungen zu zu einer einer Gesamtlösung Gesamtlösung zusammensetzen, zusammensetzen, die die dann dann (hoffentlich) (hoffentlich) ein ein globales globales Optimum Optimum ist ist 3

4 Greedy-Choice-Property Global Global optimale optimale Lösung Lösung wird wird erreicht, erreicht, indem indem man man schrittweise schrittweise immer immer das das lokale lokale Optimum Optimum wählt wählt Die Die Teilprobleme, Teilprobleme, welche welche dabei dabei entstehen, entstehen, werden werden mit mit jedem jedem Schritt Schritt kleiner kleiner Die Die Ergebnisse Ergebnisse der der Unterprobleme Unterprobleme werden werden dabei dabei weder weder rückgängig rückgängig gemacht, gemacht, noch noch beeinflussen beeinflussen sie sie weitere weitere Entscheidungen Entscheidungen Optimal Substructure Die Die optimale optimale Lösung Lösung eines eines Problems Problems liegt liegt in in der der lokalen lokalen Lösung Lösung eines eines Teilproblems Teilproblems 4

5 Matroids Matroids Matroids sind sind eine eine Möglichkeit, Möglichkeit, um um die die Richtigkeit Richtigkeit von von gierigen gierigen Algorithmen Algorithmen zu zu beweisen beweisen Wenn Wenn M M ein ein Matroid Matroid ist, ist, dann dann fuktioniert fuktioniert ein ein gieriger gieriger Algorithmus Algorithmus unabhängig unabhängig von von der der Kostenfunktion Kostenfunktion Definition: Definition: Ein Ein Matroid Matroid M=(X, M=(X, J) J) ist ist ein ein Set Set X X und und ein ein Independent Independent Set Set JJ über über X X Dabei Dabei gelten gelten folgende folgende Beschränkungen: Beschränkungen: 1. X ist ein endliches Set 2. J 3. Wenn I J und B I, dann B J 4.Wenn A, B J und A < B, dann existieren x B A, sodass A {x} J 5

6 Gierige Algorithmen vs Dynamische Programmierung Greedy DP Vergleichsweise Intuitiv Oft aufwändige Überlegungen nötig top-down bottom-up Meistens iterativ Oft rekursiv Lokale Optima werden schrittweise ohne Zwischenergebnisse erreicht Teilprobleme werden gelöst, Zwischenergebnisse werden mitbenutzt Kein zusätzlicher Speicherbedarf Zusätzlicher Speicherbedarf 6

7 Vor-/Nachteile von GA Vorteile Intuitiv Schnell (oft O(n log(n)) durch Sortierung) Nachteile Tatsächlicher Beweis über Korrektheit oft schwer Funktioniert nicht immer Oft kann nur ein loakales Optimum erreicht werden 7

8 Beispiele 8

9 (0-1) Knapsack vs Fractional Knapsack Allgemeines Allgemeines Knapsack Knapsack Problem: Problem: Man Man packt packt einen einen Koffer, Koffer, ein ein Dieb Dieb raubt raubt einen einen Laden Laden aus aus o.ä. o.ä. Dabei Dabei hat hat man man verschiedene verschiedene Gegenstände, Gegenstände, die die man man einpacken einpacken kann kann Jeder Jeder Gegenstand Gegenstand hat hat ein ein Gewicht Gewicht und und eine eine Wertigkeit Wertigkeit und und man man kann kann nur nur ein ein bestimmtes bestimmtes Gewicht Gewicht mitnehmen mitnehmen Ziel: Ziel: Möglichst Möglichst hohen hohen Wert Wert einpacken einpacken (0-1) (0-1) Knapsack: Knapsack: Man Man kann kann sich sich nur nur binär binär entscheiden, entscheiden, also also man man nimmt nimmt ein ein Gegenstand Gegenstand komplett komplett mit mit oder oder gar gar nicht nicht ( Goldbarren ) ( Goldbarren ) Fractional Fractional Knapsack: Knapsack: Man Man kann kann beliebige beliebige Bruchstücke Bruchstücke der der Gegenstände Gegenstände mitnehmen mitnehmen ( Goldstaub ) ( Goldstaub ) 9

10 Fractional Knapsack Tasche, Tasche, die die gg fassen fassen kann kann 33 Gegenstände Gegenstände mit mit unterschiedlichen unterschiedlichen Gewichten Gewichten und und Wertigkeiten Wertigkeiten

11 Fractional Knapsack Jedem Jedem Gegenstand Gegenstand einen einen Wert Wert mit mit /g /g geben geben /10g= 6 /g 80 /20g= 4 /g 150 /30g= 5 /g 11

12 Fractional Knapsack Gegenstände Gegenstände nach nach Wertigkeit Wertigkeit sortieren sortieren /10g= 6 /g 150 /30g= 5 /g 80 /20g= 4 /g 12

13 Fractional Knapsack In In jedem jedem weiteren weiteren Schritt Schritt immer immer den den übrigen übrigen höchstwertigen höchstwertigen Gegenstand Gegenstand einpacken, einpacken, solange solange noch noch Platz Platz ist ist /30g= 5 /g 80 /20g= 4 /g 60 13

14 Fractional Knapsack /20g= 4 /g

15 Fractional Knapsack Beim Beim letzten letzten Gegenstand Gegenstand passt passt nicht nicht mehr mehr der der ganze ganze Gegenstand Gegenstand rein=> rein=> man man packt packt noch noch so so viel viel rein, rein, damit damit die die Tasche Tasche voll voll ist ist Globales Globales Optimum Optimum gefunden gefunden

16 (0-1) Knapsack Hier Hier darf darf man man nun nun nur nur komplette komplette Gegenstände Gegenstände einpacken einpacken Klappt Klappt der der gierige gierige Ansatz Ansatz immer immer noch? noch? /10g= 6 /g 150 /30g= 5 /g 80 /20g= 4 /g 16

17 (0-1) Knapsack /30g= 5 /g 80 /20g= 4 /g 60 17

18 (0-1) Knapsack

19 (0-1) Knapsack Optimal: Greedy: Der Der gierige gierige Algorithmus Algorithmus führt führt hier hier offensichtlich offensichtlich zu zu keinem keinem globalem globalem Optimum Optimum Lösung Lösung muss muss über über DP DP gesucht gesucht werden. werden

20 Münzwechselproblem Problemstellung: Problemstellung: Ein Ein bestimmter bestimmter Betrag Betrag soll soll ausgezahlt ausgezahlt werden werden Es Es sind sind beliebig beliebig viele viele Münzen Münzen einer einer Währung Währung gegeben gegeben z.b. z.b. : : 2, 2, 1, 1, Man Man soll soll nun nun die die minimale minimale Anzahl Anzahl von von Münzen Münzen finden, finden, um um den den Betrag Betrag auszugeben auszugeben z.b.: z.b.: 2,81 2,81 20

21 Münzwechselproblem Gieriger Gieriger Ansatz: Ansatz: Cashier s Cashier s Algorithmus: Algorithmus: solange solange Restbetrag>0: Restbetrag>0: wähle wähle den den größten größten Münzewert, Münzewert, die die noch noch in in den den Restbetrag Restbetrag passt. passt. füge füge die die Münze Münze der der Auswahl Auswahl hinzu. hinzu. ziehe ziehe den den Wert Wert vom vom Restbetrag Restbetrag ab. ab. Gib Gib Sammlung Sammlung aus. aus. Restbetrag: 1,36 0,36 0,16 0,06 0,01 0,00 z.b.: 1,36 21

22 Münzwechselproblem Funktioniert Funktioniert der der gierige gierige Ansatz Ansatz in in allen allen Fällen? Fällen? Nein. Nein. Bekanntestes Bekanntestes Beispiel: Beispiel: US-Briefmarkensystem US-Briefmarkensystem mit mit den den Einheiten: Einheiten: 1, 1, 10, 10, 21 21,34,,34, 70, 70, 100, 100, z.b.: z.b.: 140= = (richtig (richtig wäre wäre 140=70+70) 140=70+70) Noch Noch schwerwiegender: schwerwiegender: der der gierige gierige Algorithmus Algorithmus kann kann auch auch zu zu gar gar keiner keiner Lösung Lösung kommen: kommen: Fiktive Fiktive Währung:5,8,12 Währung:5,8,12 Greedy: Greedy: 18=12+5+??? 18=12+5+??? Optimal=8+5+5 Optimal=

23 Münzwechselproblem Erklärung: Erklärung: Ein Ein Münzsystem Münzsystem kann kann für für einen einen GA GA benutzt benutzt werden, werden, wenn wenn es es kanonisch kanonisch ist. ist. Was Was dann dann erfüllt erfüllt ist, ist, wenn wenn GRD(x) = OPT(x) GRD(x) = OPT(x) gilt gilt für für alle. alle. ( GRD(x) ( GRD(x) ist ist die die Menge Menge der der Münzen Münzen des des gierigen gierigen Algorithmus, Algorithmus, OPT(x) OPT(x) ist ist die die optimalen optimalen Lösung) Lösung) Der Der Gegenbeweis Gegenbeweis ist ist bei bei nicht nicht funktionierenden funktionierenden Systemen Systemen meist meist einfacher: einfacher: z.b. z.b. über über Matroids Matroids bei bei dem dem Briefmarkenbeispiel: Briefmarkenbeispiel: M=(S,J) M=(S,J) S=alle S=alle möglichen möglichen Briefmarkenwerte Briefmarkenwerte JJ enthält enthält alle alle Untermengen Untermengen deren deren Wert Wert ist ist Es Es muss muss eine eine Menge Menge JJ geben, geben, zu zu der der nichts nichts mehr mehr hinzugefügt hinzugefügt werden werden kann kann Menge Menge S={1, S={1, 10, 10, 21 21,34,,34, 70, 70, 100,..}, 100,..}, Untermengen Untermengen A={100], A={100], B={70,70}. B={70,70}. A < B A < B es es existiert existiert x=b\a, x=b\a, sodass sodass A AU U xx in in JJ ist ist Also Also sollte sollte {100,70} {100,70} in in JJ sein, sein, aber aber > >140 => => Widerspruch Widerspruch Also Also M M ist ist kein kein Matroid Matroid und und der der gierige gierige Ansatz Ansatz funktioniert funktioniert nicht nicht 23

24 LKW-Fahrer-Problem Problemstellung: Problemstellung: LKW LKW will will von von A A nach nach B B mit mit möglichst möglichst wenigen wenigen Tankstellenstopps Tankstellenstopps unterwegs unterwegs Gegeben: Gegeben: Strecke Strecke mit mit fester fester Länge Länge Reichweite Reichweite des des LKWs LKWs bei bei vollem vollem Tank Tank (Reichweite (Reichweite min. min. so so groß groß wie wie der der größte größte Abstand Abstand zwischen zwischen 22 Tankstellen) Tankstellen) Liste Liste der der Tankstellen Tankstellen auf auf dem dem Weg Weg Gesucht: Gesucht: Liste Liste der der Tankstellen, Tankstellen, damit damit er er möglichst möglichst selten selten tanken tanken muss muss 24

25 LKW-Fahrer-Problem Pseudocode: Pseudocode: tankstellenlist tankstellenlist wird wird als als verkette verkette Liste Liste angenommen. angenommen. sort(list) sort(list) sortiert sortiert die die Liste Liste aufsteigend. aufsteigend. 1: 1: tankstellenlist tankstellenlist == sort(tankstellenlist); sort(tankstellenlist); 2: 2: tankstelle tankstelle == tankstellenlist[0]; tankstellenlist[0]; 3: 3: strecke strecke == reichweite; reichweite; 4: 4: while while strecke<ziel: strecke<ziel: 5: 5: while while tankstellenlist.next.km tankstellenlist.next.km strecke: strecke: 6: tankstelle 6: tankstelle == tankstellenlist.next; tankstellenlist.next; 7: 7: result result += += tankstelle; tankstelle; 8: 8: strecke strecke == tankstelle.km+reichweite; tankstelle.km+reichweite; 9: 9: return return result; result; 25

26 Interval scheduling Problemstellung: Problemstellung: Man Man möchte möchte seinen seinen Tag Tag planen planen und und hat hat eine eine Liste Liste von vonaktivitäten Aktivitäten von von denen denen man man möglichst möglichst wenige wenige versäumen versäumen will will.. Diese Diese finden finden jedoch jedoch nicht nicht alle alle hintereinander hintereinander statt. statt. Des Des Weiteren Weiteren ist ist es es auch auch nicht nicht möglich möglich sich sich selbst selbst aufzuteilen aufzuteilen und und gleichzeitig gleichzeitig mehrere mehrereaktivitäten Aktivitäten zu zu besuchen. besuchen. Also Also gegeben: gegeben: Aktivitäten Aktivitäten mit mit festen festen StartStart- und und Endzeitpunkt Endzeitpunkt Nur Nur eine eineaktivität Aktivität gleichzeitig gleichzeitig besuchbar besuchbar Aktivitäten Aktivitäten können können sich sich überlappen. überlappen. Gesucht: Gesucht: Maximal MaximalAnzahl Anzahl der deraktivitäten, Aktivitäten, die die besucht besucht werden werden können können 26

27 Interval scheduling Interval Interval scheduling: scheduling: Mögliche Mögliche Sortierreihenfolgen Sortierreihenfolgen für für gierige gierige Ansätze: Ansätze: Frühester Frühester Startzeitpunkt Startzeitpunkt Frühester Frühester Endzeitpunkt Endzeitpunkt Kürzeste Kürzeste Dauer Dauer Wenigste Wenigste Überlappungen Überlappungen 27

28 Interval scheduling Frühester Startzeitpunkt: Kürzeste Dauer: 28

29 Interval scheduling Wenigste Überlappungen: 29

30 Interval scheduling Die Die Liste Liste wird wird nach nach steigendem steigendem Endzeitpunkt Endzeitpunkt sortiert sortiert Bei Bei jedem jedem Schritt Schritt wird wird die die Aktivität Aktivität aufgenommen, aufgenommen, die die mit mit keiner keiner vorherigen vorherigen kollidiert kollidiert Frühester Endzeitpunkt: b a c d e g f 30

31 Interval scheduling Frühester Endzeitpunkt: b b hat früheste Endzeit wird aufgenommen a c d e g f 31

32 Interval scheduling Frühester Endzeitpunkt: b a und c kollidieren mit b, d frühester Endzeitpunkt ohne Kollision d wird aufgenommen a c d e g f 32

33 Interval scheduling Frühester Endzeitpunkt: b e und f kollidieren mit g, g frühester Endzeitpunkt ohne Kollision g wird aufgenommen a c d e g f 33

34 Interval partitioning Problemstellung: Problemstellung: Ein Ein Stundenplan Stundenplan soll soll erstellt erstellt werden. werden. Alle Alle Veranstaltungen Veranstaltungen müssen müssen einen einen Raum Raum zugewiesen zugewiesen bekommen bekommen und und es es können können keine keine zwei zwei Veranstaltungen Veranstaltungen zeitgleich zeitgleich im im selben selben Raum Raum stattfinden. stattfinden. Gegeben: Gegeben: Veranstaltungen Veranstaltungen mit mit festen festen StartStart- und und Endzeitpunkt Endzeitpunkt Jede Jede Veranstaltung Veranstaltung muss muss in in einem einem Raum Raum stattfinden stattfinden Keine Keine zweit zweit Veranstaltungen Veranstaltungen können können gleichzeitig gleichzeitig im im selben selben Raum Raum stattfinden stattfinden Gesucht: Gesucht: Minimale Minimale Anzahl Anzahl von von Räumen, Räumen, die die reserviert reserviert werden werden müssen müssen 34

35 Interval partitioning Frühester Frühester Startzeitpunkt Startzeitpunkt Frühester Frühester Endzeitpunkt Endzeitpunkt Kürzeste Kürzeste Dauer Dauer Wenigste Wenigste Überlappungen Überlappungen 35

36 Interval partitioning Frühester Frühester Startzeitpunkt Startzeitpunkt Frühester Frühester Endzeitpunkt Endzeitpunkt Kürzeste Kürzeste Dauer Dauer Wenigste Wenigste Überlappungen Überlappungen 36

37 Interval partitioning Frühester Startzeitpunkt: Man Man sortiert sortiert die die Liste Liste nach nach aufsteigendem aufsteigendem Startzeitpunkt Startzeitpunkt und und nimmt nimmt in in jedem jedem Schritt Schritt das das erste erste Element Element aus aus der der Liste Liste a 37

38 Interval partitioning Frühester Startzeitpunkt: Bei Bei Kollision Kollision von von zwei zwei Ereignissen Ereignissen wird wird einfach einfach ein ein neuer neuer Raum Raum erzeugt/reserviert erzeugt/reserviert b a Kollidierung von a und b zweiter Raum wird erzeugt 38

39 Interval partitioning Frühester Startzeitpunkt: c b a Kollidierung von c mit a und b dritter Raum wird erzeugt 39

40 Interval partitioning Frühester Startzeitpunkt: c b a d Raum 1 ist nicht mehr durch a belegt d wird zugewießen 40

41 Interval partitioning Frühester Startzeitpunkt: c e b a d e kollidiert mit d und b, c belegt Raum 3 nicht mehr e wird Raum 3 zugewießen 41

42 Interval partitioning Frühester Startzeitpunkt: c e b a d f f kollidiert mit e, aber Raum 1 ist wieder frei f bekommt Raum 3 42

43 Interval partitioning Frühester Startzeitpunkt: c e b a g d f g kollidiert mit f, Raum 2 wieder frei g bekommt Raum 2 43

44 Minimize lateness Problemstellung: Problemstellung: Man Man hat hat verschiedene verschiedene Termine, Termine, die die alle alle eine eine gewisse gewisse Dauer Dauer benötigen benötigen und und eine eine Frist, Frist, die die so so wenig wenig wie wie möglich möglich überschritten überschritten werden werden soll. soll. Gegeben: Gegeben: Liste Liste von von Terminen Terminen Alle Alle Termine Termine haben haben ein ein Fristende Fristende Jeder Jeder Termin Termin braucht braucht eine eine bestimmte bestimmte Zeit Zeit 44

45 Minimize lateness Gesucht: Gesucht: Abarbeitungsreihenfolge Abarbeitungsreihenfolge der der Termine Termine mit mit minimaler minimaler Fristüberschreitung Fristüberschreitung Gierigen Gierigen Ansatz Ansatz suchen suchen 45

46 Minimize lateness Man Man sortiert sortiert alle alle Jobs Jobs aufsteigend aufsteigend nach nach Fristende Fristende und und arbeitet arbeitet einen einen nach nach dem dem anderen anderen ab. ab. 46

47 Load balancing Problemstellung: Problemstellung: Man Man hat hat eine eine Gruppe Gruppe von von Besuchern, Besuchern, die die auf auf Wägen Wägen aufgeteilt aufgeteilt werden werden sollen. sollen. Dabei Dabei sind sind die die Wägen Wägen schon schon ziemlich ziemlich brüchig, brüchig, deshalb deshalb können können sie sie nur nur 0,1 0,1 oder oder 22 Besucher Besucher aufnehmen aufnehmen und und die die Besucher Besucher sollen sollen möglichst möglichst gleichmäßig gleichmäßig auf auf die die Zimmer Zimmer aufgeteilt aufgeteilt werden. werden. Gegeben: Gegeben: Anzahl Anzahl der der Schlafzimmer Schlafzimmer C C Anzahl Anzahl der der Besucher Besucher S S (1 S 2C) (1 S 2C) Liste Liste des des Gewichts Gewichts M M der der einzelnen einzelnen Besucher Besucher Gesucht: Gesucht: I= I= Ʃ( X-A ) Ʃ( X-A ) soll soll möglichst möglichst gering gering bleiben bleiben (X=Gewicht (X=Gewicht in in einem einem Wagen, Wagen, A=durchschnittliches A=durchschnittliches Gesamtgewicht Gesamtgewicht in in einem einem Raum) Raum) 47

48 Load balancing Beispiel: Beispiel: 33 Wägen, Wägen, 44 Menschen Menschen mit mit Gewichten Gewichten (7,2,1,5) (7,2,1,5) A A wäre wäre hier hier 55 (=( )/3) (=( )/3) C1 C2 C3 A

49 Load balancing II == (7+5)-5) =14 (7+5)-5) =14 (Nicht (Nicht gut) gut) 5 C1 C2 C3 A

50 Load balancing 22 Beobachtunge Beobachtunge kann kann man man jetzt jetzt hier hier machen: machen: 1.: 1.: Die Die Lösung Lösung wird wird niemals niemals schlechter schlechter wenn wenn man man aus aus einem einem Wagen Wagen mit mit 22 Leuten Leuten eine eine Person Person in in einen einen leeren leeren Wagen Wagen schiebt schiebt 2.:Wenn 2.:Wenn S > C S > C müssen müssen S-C S-C Leute Leute in in einen einen Wagen Wagen in in dem dem bereits bereits eine eine Person Person ist ist Das Das ganze ganze Problem Problem kann kann man man nun nun vereinfachen: vereinfachen: Zunächst Zunächst nimmt nimmt man man 2C-S 2C-S dummy dummy Personen Personen in in die die Liste Liste der der Gewichte Gewichte mit mit auf auf Dann Dann sortiert sortiert man man die die Liste Liste aufsteigend aufsteigend Zum Zum Schluss Schluss werden werden immer immer die die Paare Paare von von vorne vorne und und hinten hinten zusammen zusammen in in einen einen Wagen Wagen gepackt. gepackt. (Also (Also der der erste erste und und der der letzte, letzte, der der zweit zweit under under vorletzte,.) vorletzte,.) l 50

51 Load balancing Nun Nun bei bei unserem unserem Beispiel: Beispiel: Die Die ursprüngliche ursprüngliche Liste Liste M={7,2,1,5} M={7,2,1,5} wird wird mit mit Dummys Dummys befüllt befüllt und und zu zu M={7,2,1,5,0,0} M={7,2,1,5,0,0} (Dummys=D1 (Dummys=D1 und und D2) D2) D1 D2 51

52 Load balancing Liste Liste wird wird aufsteigend aufsteigend sortiert sortiert D1 D

53 Load balancing Und Und nacheinander nacheinander befüllt befüllt mit mit jeweils jeweils dem dem vordersten vordersten und und letzten letzten Element Element C1 C2 C3 A D1 D

54 Load balancing C1 C2 C3 7 A D1 D

55 Load balancing C1 C2 7 A 5 D1 D2 1 C3 2 55

56 Load balancing Damit Damit sind sind wir wir beim beim Endergebnis Endergebnis I= (7+0)-5 + (5+0)-5 + (1+2)-5 =4 I= (7+0)-5 + (5+0)-5 + (1+2)-5 =4 (optimal) (optimal) C1 7 C2 C3 A 5 2 D1 D2 1 56

57 Fragen? 57

58 Quellen Introductions Introductions to to Algorithms Algorithms Thomas Thomas H. H. Cormen, Cormen, Charles Charles E. E. Leiserson, Leiserson, Ronald Ronald L. L. Rivest, Rivest, Clifford Clifford Stein Stein Competitive Competitive Programming Programming 33 Steven Steven Halim, Halim, Felix Felix HalimS HalimS matroid/ 58

59 Quellen Bildquellen: Bildquellen:

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

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

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

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

Informatik II Greedy-Algorithmen

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

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

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

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 5 Prof. Peter F. Stadler & Dr. Christian Höner zu Siederdissen Bioinformatik/IZBI Institut für Informatik & Interdisziplinäres Zentrum für Bioinformatik Universität

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

Überblick. TSP Vergleich der Lösungen. Das Travelling Salesman Problem. Nearest-Neighbor Heuristik für TSP

Überblick. TSP Vergleich der Lösungen. Das Travelling Salesman Problem. Nearest-Neighbor Heuristik für TSP Kap..1 Heuristiken Kap.. Approximative Algorithmen und Gütegarantien Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 3. VO DAP SS 008 14. Juli 009 Überblick

Mehr

Kap. 7.1 Heuristiken Kap. 7.2 Approximative Algorithmen und Gütegarantien

Kap. 7.1 Heuristiken Kap. 7.2 Approximative Algorithmen und Gütegarantien Kap. 7.1 Heuristiken Kap. 7.2 Approximative Algorithmen und Gütegarantien Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 23. VO DAP2 SS 2008 14. Juli 2009

Mehr

Ein Dieb raubt einen Laden aus; um möglichst flexibel zu sein, hat er für die Beute nur einen Rucksack dabei

Ein Dieb raubt einen Laden aus; um möglichst flexibel zu sein, hat er für die Beute nur einen Rucksack dabei 7/7/ Das Rucksack-Problem Englisch: Knapsack Problem Das Problem: "Die Qual der Wahl" Ein Dieb raubt einen Laden aus; um möglichst flexibel zu sein, hat er für die Beute nur einen Rucksack dabei Im Ladens

Mehr

Dynamische Programmierung

Dynamische Programmierung Dynamische Programmierung Manuel Grandeit Hallo Welt -Seminar 28.06.2011 Manuel Grandeit 1 / 40 Inhaltsübersicht Einführung Münzwechsel Was ist ein Zustand? Konstruktion einer DP-Lösung Top-Down-DP Bottom-Up-DP

Mehr

Gierige Algorithmen Interval Scheduling

Gierige Algorithmen Interval Scheduling Gierige Algorithmen Interval Scheduling IntervalScheduling(s,f). n length[s] 2. A {} 3. j 4. for i 2 to n do 5. if s[i] f[j] then 6. A A {i} 7. j i 8. return A Gierige Algorithmen Interval Scheduling Beweisidee:

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

Durchschnitt von Matroiden

Durchschnitt von Matroiden Durchschnitt von Matroiden Satz von Edmonds Dany Sattler 18. Januar 2007/ Seminar zur ganzzahligen Optimierung / Wallenfels Definition: Unabhängigkeitssystem Definition: Ein Mengensystem (S, J ) nennt

Mehr

Klausur Algorithmen und Datenstrukturen II 29. Juli 2013

Klausur Algorithmen und Datenstrukturen II 29. Juli 2013 Technische Universität Braunschweig Sommersemester 2013 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Stephan Friedrichs Klausur Algorithmen und Datenstrukturen

Mehr

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

Mehr

Approximationsklassen für Optimierungsprobleme

Approximationsklassen für Optimierungsprobleme Approximationsklassen für Optimierungsprobleme Matthias Erbar 19. September 2007 Inhaltsverzeichnis 1 Einleitung 1 2 Approximationsalgorithmen mit garantierter Güte 2 2.1 Terminologie......................................

Mehr

Approximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling

Approximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling Approximationsalgorithmen: Klassiker I Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling VO Approximationsalgorithmen WiSe 2011/12 Markus Chimani

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 7 (21.5.2014) Binäre Suche, Hashtabellen I Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary: (auch: Maps, assoziative

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 0..0 Minimale Schnitte in Graphen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum

Mehr

15. Algorithmus der Woche Das Rucksackproblem Die Qual der Wahl bei zu vielen Möglichkeiten

15. Algorithmus der Woche Das Rucksackproblem Die Qual der Wahl bei zu vielen Möglichkeiten 15. Algorithmus der Woche Das Rucksackproblem Die Qual der Wahl bei zu vielen Möglichkeiten Autoren Rene Beier, MPI Saarbrücken Berthold Vöcking, RWTH Aachen In zwei Monaten startet die nächste Rakete

Mehr

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. smichel@cs.uni-kl.de

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. smichel@cs.uni-kl.de Datenbankanwendung Wintersemester 2014/15 Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern smichel@cs.uni-kl.de Wiederholung: Anfragegraph Anfragen dieses Typs können als Graph dargestellt werden: Der

Mehr

Vorlesung 2 KÜRZESTE WEGE

Vorlesung 2 KÜRZESTE WEGE Vorlesung 2 KÜRZESTE WEGE 34 Kürzeste Wege im Graphen Motivation! Heute:! Kürzeste Wege von einem Knoten (SSSP)! Kürzeste Wege zwischen allen Knotenpaaren (APSP)! Viele Anwendungen:! Navigationssysteme!

Mehr

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V. Kapitel 4 Graphenalgorithmen 4.1 Definitionen Definition 4.1.1. Der Graph G = (V, E) ist über die beiden Mengen V und E definiert, wobei V die Menge der Knoten und E die Menge der Kanten in dem Graph ist.

Mehr

Dynamisches Programmieren - Problemstruktur

Dynamisches Programmieren - Problemstruktur Dynamisches Programmieren - Problemstruktur Optimale Substruktur: Optimale Lösung enthält optimale Lösungen von Teilproblemen. Bsp.: Kürzester Weg im Graphen, LCS (s. etwa Folie 42 der letzten Vorlesung)

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Ausarbeitung zum Thema Approximationsalgorithmen im Rahmen des Fachseminars 24. Juli 2009 Robert Bahmann robert.bahmann@gmail.com FH Wiesbaden Erstellt von: Robert Bahmann Zuletzt berarbeitet von: Robert

Mehr

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Vortrag von Michael Daumen am 13.12.2000 Thema : Minimum Spanning Tree und 2-Approximation der TSP-Tour Inhalt des Vortrags : 1. genaue Vorstellung des

Mehr

Sortieralgorithmen. Jan Pöschko. 18. Januar Problemstellung Definition Warum Sortieren?... 2

Sortieralgorithmen. Jan Pöschko. 18. Januar Problemstellung Definition Warum Sortieren?... 2 Jan Pöschko 18. Januar 2007 Inhaltsverzeichnis 1 Problemstellung 2 1.1 Definition................................... 2 1.2 Warum Sortieren?.............................. 2 2 Einfache Sortieralgorithmen

Mehr

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 Robert Elsässer Paderborn, den 15. Mai 2008 u.v.a. Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 AUFGABE 1 (6 Punkte): Nehmen wir an, Anfang bezeichne in einer normalen

Mehr

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung Gliederung 1. Motivation / Einordnung / Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs

Mehr

Von Labyrinthen zu. Algorithmen

Von Labyrinthen zu. Algorithmen Von Labyrinthen zu 4 Gerald Futschek Charakterisierung Algorithmus Ein Algorithmus ist ein schrittweises Verfahren ist exakt beschrieben liefert nach endlich vielen Schritten das Ergebnis (terminiert)

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2013/14 1. Vorlesung Kapitel 1: Sortieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Das Problem Eingabe Gegeben: eine Folge A = a 1, a 2,..., a

Mehr

Dynamische Programmierung. Problemlösungsstrategie der Informatik

Dynamische Programmierung. Problemlösungsstrategie der Informatik als Problemlösungsstrategie der Informatik und ihre Anwedung in der Diskreten Mathematik und Graphentheorie Fabian Cordt Enisa Metovic Wissenschaftliche Arbeiten und Präsentationen, WS 2010/2011 Gliederung

Mehr

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph. Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph. a) Es seien W 1 = (V, E 1 ), W 2 = (V, E 2 ) Untergraphen von G, die beide Wälder sind. Weiter gelte E 1 > E 2.

Mehr

Algorithmen zum Lösen von Vertex und Set Cover Instanzen zur Planung von Angriffen auf Netzwerke

Algorithmen zum Lösen von Vertex und Set Cover Instanzen zur Planung von Angriffen auf Netzwerke Algorithmen zum Lösen von Vertex und Set Cover Instanzen zur Planung von Angriffen auf Netzwerke Steve Göring 13.07.2012 1/18 Gliederung Einleitung Grundlagen Vertex-Cover-Problem Set-Cover-Problem Lösungsalgorithmen

Mehr

Konvexe Hülle. Konvexe Hülle. Mathematik. Konvexe Hülle: Definition. Mathematik. Konvexe Hülle: Eigenschaften. AK der Algorithmik 5, SS 2005 Hu Bin

Konvexe Hülle. Konvexe Hülle. Mathematik. Konvexe Hülle: Definition. Mathematik. Konvexe Hülle: Eigenschaften. AK der Algorithmik 5, SS 2005 Hu Bin Konvexe Hülle Konvexe Hülle AK der Algorithmik 5, SS 2005 Hu Bin Anwendung: Computergraphik Boundary Kalkulationen Geometrische Optimierungsaufgaben Konvexe Hülle: Definition Mathematik Konvex: Linie zwischen

Mehr

Übungsblatt 2 - Lösung

Übungsblatt 2 - Lösung Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 2 - Lösung Vorlesung Algorithmentechnik im WS 08/09 Ausgabe 04. November 2008 Abgabe 8. November, 5:0 Uhr (im Kasten vor Zimmer

Mehr

Effiziente Algorithmen

Effiziente Algorithmen Effiziente Algorithmen Aufgabe 5 Gruppe E Martin Schliefnig, 0160919 Christoph Holper, 9927191 Ulrike Ritzinger, 0125779 1. Problemstellung Gegeben ist eine Datei, die eine Million reelle Zahlen enthält.

Mehr

Paper Computer Science Experiment. Computation (NP-Vollständigkeit) Traveling Salesman

Paper Computer Science Experiment. Computation (NP-Vollständigkeit) Traveling Salesman Paper Computer Science Experiment Great Principles of Computing Computation (NP-Vollständigkeit) Thema Traveling Salesman Unterrichtsform Lernen am Modell Voraussetzung Wahrscheinlich kennen viele Schüler/innen

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

Mehr

Binäre lineare Optimierung mit K*BMDs p.1/42

Binäre lineare Optimierung mit K*BMDs p.1/42 Binäre lineare Optimierung mit K*BMDs Ralf Wimmer wimmer@informatik.uni-freiburg.de Institut für Informatik Albert-Ludwigs-Universität Freiburg Binäre lineare Optimierung mit K*BMDs p.1/42 Grundlagen Binäre

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

Algorithmen und Datenstrukturen ITS(B)-B 2016

Algorithmen und Datenstrukturen ITS(B)-B 2016 Einführung Was ist (die) Informatik? Die Informatik und ihre Geschichte sowie ihre Abgrenzung von anderen Wissenschaften darzulegen gestaltet sich nicht ganz einfach (siehe dazu unter vielen Anderen ((GI)

Mehr

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 1 für die Übung

Mehr

Dynamische Programmierung

Dynamische Programmierung Dynamische Programmierung Hannes Schwarz - WS-06/07 Hannes.Schwarz@uni-konstanz.de Getting Ready for the ACM Programming Contest Übersicht Übersicht Was ist dynamische Programmierung? Entwicklung eines

Mehr

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung. Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 14. November 2007 1 / 22 2 / 22 Gliederung eulersche und semi-eulersche Graphen Charakterisierung eulerscher Graphen Berechnung eines

Mehr

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind.

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind. 3.5 Gerichteter Pfad Definition 291 Eine Folge (u 0, u 1,..., u n ) mit u i V für i = 0,..., n heißt gerichteter Pfad, wenn ( i {0,..., n 1} ) [ (u i, u i+1 ) A]. Ein gerichteter Pfad heißt einfach, falls

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Datenstrukturen: Anordnung von Daten, z.b. als Liste (d.h. in bestimmter Reihenfolge) Beispiel: alphabetisch sortiertes Wörterbuch... Ei - Eibe - Eidotter... als Baum (d.h.

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren Teilnehmerkreis und Voraussetzungen Studiengänge

Mehr

Stefan Schmid TU Berlin & T-Labs, Berlin, Germany. Reduktionen in der Berechenbarkeitstheorie

Stefan Schmid TU Berlin & T-Labs, Berlin, Germany. Reduktionen in der Berechenbarkeitstheorie Stefan Schmid TU Berlin & T-Labs, Berlin, Germany Reduktionen in der Berechenbarkeitstheorie Problem: Wie komme ich von hier zum Hamburger Hbf? 2 Beispiel P1 Wie komme ich von hier zum Hamburger Hbf? kann

Mehr

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). 8. Untere Schranken für Sortieren Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). Werden nun gemeinsame Eigenschaften dieser Algorithmen untersuchen. Fassen gemeinsame

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 20 Einstieg in die Informatik mit Java Rekursion Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 20 1 Überblick 2 Rekursion 3 Rekursive Sortieralgorithmen 4 Backtracking

Mehr

Algorithmen und Datenstrukturen Tafelübung 4. Jens Wetzl 15. November 2011

Algorithmen und Datenstrukturen Tafelübung 4. Jens Wetzl 15. November 2011 Algorithmen und Datenstrukturen Tafelübung 4 Jens Wetzl 15. November 2011 Folien Keine Garantie für Vollständigkeit und/oder Richtigkeit Keine offizielle Informationsquelle LS2-Webseite Abrufbar unter:

Mehr

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

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7) Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.rwth-aachen.de/i2/dsal0/ Algorithmus 8. Mai 200 Joost-Pieter

Mehr

Untersuchen Sie, inwiefern sich die folgenden Funktionen für die Verwendung als Hashfunktion eignen. Begründen Sie Ihre Antwort.

Untersuchen Sie, inwiefern sich die folgenden Funktionen für die Verwendung als Hashfunktion eignen. Begründen Sie Ihre Antwort. Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe 1 (Güte von Hashfunktionen): Untersuchen Sie, inwiefern sich die folgenden Funktionen

Mehr

Optimierungsprobleme. B. Langfeld, M. Ritter, B. Wilhelm Diskrete Optimierung: Fallstudien aus der Praxis

Optimierungsprobleme. B. Langfeld, M. Ritter, B. Wilhelm Diskrete Optimierung: Fallstudien aus der Praxis Optimierungsprobleme Instanz eines Optimierungsproblems zulässiger Bereich (meist implizit definiert) Zielfunktion Optimierungsrichtung opt {max, min} Optimierungsproblem Menge von Instanzen meist implizit

Mehr

Lineare Programmierung (2)

Lineare Programmierung (2) Inhalt Rückblick Motivation - linearen Programmierung Flussprobleme Multiple Warenflüsse Fortsetzung Simplex Algorithmus Initialisierung Fundamentalsatz der linearen Programmierung schwache Dualität Dualität

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Makespan-Scheduling Kapitel 4: Approximationsalgorithmen (dritter Teil) (weitere Beispiele und Illustrationen an der Tafel) Hilfreiche Literatur: Vazarani: Approximation Algorithms, Springer Verlag, 2001.

Mehr

Geometrische Algorithmen

Geometrische Algorithmen Geometrische Algorithmen Thomas Röfer Motivation Scan-line-Prinzip Konvexe Hülle Distanzprobleme Voronoi-Diagramm Rückblick Manipulation von Mengen Vorrangwarteschlange Heap HeapSort swap(a, 0, 4) 1 5

Mehr

2. Optimierungsprobleme 6

2. Optimierungsprobleme 6 6 2. Beispiele... 7... 8 2.3 Konvexe Mengen und Funktionen... 9 2.4 Konvexe Optimierungsprobleme... 0 2. Beispiele 7- Ein (NP-)Optimierungsproblem P 0 ist wie folgt definiert Jede Instanz I P 0 hat einen

Mehr

Effiziente Algorithmen Übung 2

Effiziente Algorithmen Übung 2 Effiziente Algorithmen Übung 2 Aufgabe 3 Circular Reversal Sort Gruppe E Martin Schliefnig, 0160919 Christoph Holper, 9927191 Ulrike Ritzinger, 0125779 1. Problemstellung Ein DNA Molekül muss nicht immer

Mehr

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems 13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems 13.1 Modellierung des Rucksackproblems 13.2 Lösung mit Greedy-Algorithmus 13.3 Lösung mit Backtracking 13.4 Lösung mit Dynamischer Programmierung

Mehr

Programmieren, Algorithmen und Datenstrukturen II 8. Allgemeine Lösungsverfahren

Programmieren, Algorithmen und Datenstrukturen II 8. Allgemeine Lösungsverfahren Programmieren, Algorithmen und Datenstrukturen II 8. Allgemeine Lösungsverfahren 1 Übersicht 1. Ziele des Kapitels 2. Bereits behandelte Lösungsstrategien 3. Backtracking 4. Branch-and-Bound 5. Weiterführende

Mehr

Neuronalen Netzen. Jens Lehmann. 1. März Institut für Künstliche Intelligenz Fakultät Informatik Technische Universität Dresden

Neuronalen Netzen. Jens Lehmann. 1. März Institut für Künstliche Intelligenz Fakultät Informatik Technische Universität Dresden Institut für Künstliche Intelligenz Fakultät Informatik Technische Universität Dresden 1. März 2005 Neurosymbolische Integration versucht künstliche neuronale Netze und Logikprogrammierung zu vereinen

Mehr

Algorithmen in Zellularautomaten

Algorithmen in Zellularautomaten Algorithmen in Zellularautomaten 1. Grundlegende Definitionen 2. Berechnungsmächtigkeit von ZA 3. Endliche Muster und Konfigurationen 4. Selbstreproduktion 5. Sortieren in eindimensionalen ZA 6. Einfache

Mehr

Einführung in die Informatik 1

Einführung in die Informatik 1 Einführung in die Informatik 1 Algorithmen und algorithmische Sprachkonzepte Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag,

Mehr

3. Übungsblatt zu Algorithmen I im SoSe 2017

3. Übungsblatt zu Algorithmen I im SoSe 2017 Karlsruher Institut für Technologie Prof. Dr. Jörn Müller-Quade Institut für Theoretische Informatik Björn Kaidel, Sebastian Schlag, Sascha Witt 3. Übungsblatt zu Algorithmen I im SoSe 2017 http://crypto.iti.kit.edu/index.php?id=799

Mehr

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist.

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Graphen Definition: Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Begriffe: Gerichteter Graph: Alle Kanten haben eine Richtung vom Anfangsknoten

Mehr

Programmierung mit C Algorithmen

Programmierung mit C Algorithmen Programmierung mit C Algorithmen Informationen /7/ Robert Sedgewick Algorithmen in C. 742 Seiten, ISBN 3-827-37182-1. /8/ Kyle Loudon Algorithmen mit C, ISBN 3-4897-211653-0. Online-Buch "C von A bis Z",

Mehr

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) 5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!

Mehr

11. Übung zu Algorithmen I 6. Juli 2016

11. Übung zu Algorithmen I 6. Juli 2016 11. Übung zu Algorithmen I 6. Juli 2016 Lisa Kohl lisa.kohl@kit.edu mit Folien von Lukas Barth Roadmap Ausblick: Was sind schwierige Probleme? Travelling Salesman Problem - Reprise ein ILP ein Algorithmus

Mehr

Algorithmen für schwierige Probleme

Algorithmen für schwierige Probleme Algorithmen für schwierige Probleme Britta Dorn Wintersemester 2011/12 30. November 2011 Wiederholung Baumzerlegung G = (V, E) Eine Baumzerlegung von G ist ein Paar {X i i V T }, T, wobei T Baum mit Knotenmenge

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Tanya Braun (Übungen) sowie viele Tutoren Danksagung Animationen wurden übernommen aus dem Kurs:

Mehr

1 Einführung. 2 Grundlagen von Algorithmen. 3 Grundlagen von Datenstrukturen. 4 Grundlagen der Korrektheit von Algorithmen

1 Einführung. 2 Grundlagen von Algorithmen. 3 Grundlagen von Datenstrukturen. 4 Grundlagen der Korrektheit von Algorithmen Programm heute lgorithmen und atenstrukturen (für T/IT) Sommersemester 0 r. Tobias Lasser omputer ided Medical Procedures Technische Universität München inführung rundlagen von lgorithmen rundlagen von

Mehr

Flüsse, Schnitte, Bipartite Graphen II

Flüsse, Schnitte, Bipartite Graphen II Flüsse, Schnitte, Bipartite Graphen II Jonathan Hacker 06.06.2016 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 1 / 42 Gliederung Einführung Jonathan Hacker Flüsse, Schnitte, Bipartite

Mehr

Dynamische Optimierung. Kapitel 4. Dynamische Optimierung. Peter Becker (H-BRS) Operations Research II Wintersemester 2014/15 160 / 206

Dynamische Optimierung. Kapitel 4. Dynamische Optimierung. Peter Becker (H-BRS) Operations Research II Wintersemester 2014/15 160 / 206 Kapitel 4 Dynamische Optimierung Peter Becker (H-BRS) Operations Research II Wintersemester 2014/15 160 / 206 Inhalt Inhalt 4 Dynamische Optimierung Allgemeiner Ansatz und Beispiele Stochastische dynamische

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

Dynamische Programmierung 1. April DP Aufgabensammlung

Dynamische Programmierung 1. April DP Aufgabensammlung Dynamische Programmierung 1. April 2015 DP Aufgabensammlung Sebastian Millius, Sandro Feuz, Daniel Graf Thema: Dynamic Programming, Aufgaben Im folgenden sind ein paar Beispielaufgaben zur dynamischen

Mehr

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung

Mehr

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele. 1. Einführung in die Informatik Inhalt 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele Peter Sobe 1 Beispiele für Algorithmen Im folgenden Abschnitt sollen ausgewählte

Mehr

Geometrie I. Sebastian Redinger Informatik 2 Programmiersysteme Martensstraße Erlangen

Geometrie I. Sebastian Redinger Informatik 2 Programmiersysteme Martensstraße Erlangen Geometrie I Sebastian Redinger 01.07.2015 Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Gliederung Grundlagen CCW Polygone Picks Theorem Konvexe Hülle - Graham Scan - Jarvis March 2 Gliederung

Mehr

Suchen und Sortieren

Suchen und Sortieren Ideen und Konzepte der Informatik Suchen und Sortieren [Ordnung muss sein ] Kurt Mehlhorn (viele Folien von Kostas Panagiotou) Suchen Welche Telefonnummer hat Kurt Mehlhorn? Wie schreibt man das Wort Equivalenz?

Mehr

Hamiltonsche Graphen (2. Teil)

Hamiltonsche Graphen (2. Teil) Hamiltonsche Graphen (2. Teil) Themen des Vortrages Für Schachspieler Hamiltons Spiel Sitzordnungen Eine billige Rundreise Ein vielleicht unlösbares Problem Bäcker mit Kenntnissen in Graphentheorie Fazit

Mehr

Programmierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland.

Programmierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland. 1 Programmierung 2 Dynamische Programmierung Sebastian Hack hack@cs.uni-saarland.de Klaas Boesche boesche@cs.uni-saarland.de Sommersemester 2012 2 Übersicht Stammt aus den Zeiten als mit Programmierung

Mehr

Vervollständigung Lateinischer Quadrate

Vervollständigung Lateinischer Quadrate Vervollständigung Lateinischer Quadrate Elisabeth Schmidhofer 01.12.2013 Inhaltsverzeichnis 1 Vorwort 3 2 Einleitung 4 2.1 Beispele.............................................. 4 3 Lateinische Quadrate

Mehr

13. Bäume: effektives Suchen und Sortieren

13. Bäume: effektives Suchen und Sortieren Schwerpunkte Aufgabe und Vorteile von Bäumen 13. Bäume: effektives Suchen und Sortieren Java-Beispiele: Baum.java Traverse.java TraverseTest.java Sortieren mit Bäumen Ausgabealgorithmen: - Preorder - Postorder

Mehr

Codierung, Codes (variabler Länge)

Codierung, Codes (variabler Länge) Codierung, Codes (variabler Länge) A = {a, b, c,...} eine endliche Menge von Nachrichten (Quellalphabet) B = {0, 1} das Kanalalphabet Eine (binäre) Codierung ist eine injektive Abbildung Φ : A B +, falls

Mehr

(Lineare) stochastische Optimierung

(Lineare) stochastische Optimierung (Lineare) stochastische Optimierung Bsp: Aus zwei Sorten Rohöl wird Benzin und Heizöl erzeugt. Die Produktivität sowie der Mindestbedarf (pro Woche) und die Kosten sind in folgender Tabelle angegeben:

Mehr

Die dynamische Programmierung 1 / 51

Die dynamische Programmierung 1 / 51 Die dynamische Programmierung 1 / 51 Dynamische Programmierung - Das Ausgangsproblem P 0 wird in Teilprobleme P 1,..., P t aufgebrochen. - Die Teilprobleme werden dann, einer Schwierigkeitshierarchie entsprechend,

Mehr

Minimal spannende Bäume

Minimal spannende Bäume Minimal spannende Bäume Ronny Harbich 4. Mai 006 (geändert 19. August 006) Vorwort Ich danke Patrick Bahr und meinem Bruder Steffen Harbich für die Unterstützung bei dieser Arbeit. Sie haben sowohl zu

Mehr

7. Sortieren Lernziele. 7. Sortieren

7. Sortieren Lernziele. 7. Sortieren 7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche

Mehr

Kostenmaße. F3 03/04 p.188/395

Kostenmaße. F3 03/04 p.188/395 Kostenmaße Bei der TM nur ein Kostenmaß: Ein Schritt (Konfigurationsübergang) kostet eine Zeiteinheit; eine Bandzelle kostet eine Platzeinheit. Bei der RAM zwei Kostenmaße: uniformes Kostenmaß: (wie oben);

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

Euklidische Distanzmatrizen. Andrei Grecu

Euklidische Distanzmatrizen. Andrei Grecu Euklidische Distanzmatrizen Andrei Grecu Übersicht Motivation Definition und Problemstellung Algo 1: Semidefinite Programmierung Algo 2: Multidimensional Scaling Algo 3: Spring Embedder Algo 4: Genetischer

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Tanya Braun (Übungen) sowie viele Tutoren Teilnehmerkreis und Voraussetzungen Studiengänge Bachelor

Mehr

2. Algorithmenbegriff

2. Algorithmenbegriff 2. Algorithmenbegriff Keine Algorithmen: Anleitungen, Kochrezepte, Wegbeschreibungen,... Algorithmus: Berechnungsvorschrift, die angibt, wie durch Ausführung bestimmter Elementaroperationen aus Eingabegrößen

Mehr

Übungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion:

Übungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion: Übungsblatt 1 Aufgabe 1.1 Beweisen oder widerlegen Sie, dass für die im Folgenden definierte Funktion f(n) die Beziehung f(n) = Θ(n 4 ) gilt. Beachten Sie, dass zu einem vollständigen Beweis gegebenenfalls

Mehr

4. Algorithmen und Datenstrukturen I Grundlagen der Programmierung 1 (Java)

4. Algorithmen und Datenstrukturen I Grundlagen der Programmierung 1 (Java) 4. Algorithmen und Datenstrukturen I Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 8./15. November 2005 Einordnung

Mehr