Gierige Algorithmen Marcel Henninger. Hallo Welt -Seminar - LS 2 Gierige Algorithmen
|
|
- Petra Wolf
- vor 6 Jahren
- Abrufe
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 Gierige Algorithmen Sarah Nuißl Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Gliederung Einführung Gierige Algorithmen vs. Dynamisches Programmieren Beispiele
MehrHallo 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
MehrInformatik 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:
MehrAlgorithmen 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
MehrInformatik 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:
MehrS=[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
MehrDatenstrukturen & 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
MehrADS: 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
MehrBabeș-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
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
MehrKap. 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
MehrEin 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
MehrDynamische 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
MehrGierige 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:
MehrKlausur 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
MehrDurchschnitt 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
MehrKlausur 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
MehrEntscheidungsbä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
MehrApproximationsklassen 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......................................
MehrApproximationsalgorithmen: 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
MehrInformatik 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
MehrAlgorithmen 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
Mehr15. 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
MehrDatenbankanwendung. 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
MehrVorlesung 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!
MehrDefinition 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.
MehrDynamisches 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)
MehrApproximationsalgorithmen
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
MehrProseminar 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
MehrSortieralgorithmen. 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
MehrBeispiellö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
MehrKapitel 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
MehrVon 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)
MehrAlgorithmen 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
MehrDynamische 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
MehrAufgabe 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.
MehrAlgorithmen 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
MehrKonvexe 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
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
MehrEffiziente 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.
MehrPaper 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
Mehr4 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
MehrBinä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
MehrInstitut 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
MehrAlgorithmen 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)
MehrTechnische 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
MehrDynamische 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
MehrGraphentheorie. 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
MehrDefinition 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
MehrAlgorithmen 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.
MehrAlgorithmen 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
MehrStefan 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
MehrAlle 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
MehrEinstieg 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
MehrAlgorithmen 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)
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
MehrUntersuchen 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
MehrOptimierungsprobleme. 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
MehrLineare 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
MehrApproximationsalgorithmen
Makespan-Scheduling Kapitel 4: Approximationsalgorithmen (dritter Teil) (weitere Beispiele und Illustrationen an der Tafel) Hilfreiche Literatur: Vazarani: Approximation Algorithms, Springer Verlag, 2001.
MehrGeometrische 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
Mehr2. 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
MehrEffiziente 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
Mehr13 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
MehrProgrammieren, 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
MehrNeuronalen 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
MehrAlgorithmen 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
MehrEinfü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,
Mehr3. Ü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
MehrEin 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
MehrProgrammierung 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",
Mehr5.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!
Mehr11. Ü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
MehrAlgorithmen 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
MehrAlgorithmen 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:
Mehr1 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
MehrFlü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
MehrDynamische 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
MehrEine 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
MehrDynamische 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
MehrTechnische 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
MehrInhalt. 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
MehrGeometrie 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
MehrSuchen 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?
MehrHamiltonsche 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
MehrProgrammierung 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
MehrVervollstä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
Mehr13. 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
MehrCodierung, 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 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:
MehrDie 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,
MehrMinimal 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
Mehr7. 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
MehrKostenmaß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 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
MehrEuklidische 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
MehrAlgorithmen 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
Mehr2. 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 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
Mehr4. 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