Gierige Algorithmen. Tilman Adler Tilman Adler Gierige Algorithmen / 46

Größe: px
Ab Seite anzeigen:

Download "Gierige Algorithmen. Tilman Adler Tilman Adler Gierige Algorithmen / 46"

Transkript

1 Gierige Algorithmen Tilman Adler Tilman Adler Gierige Algorithmen / 46

2 Ziel Nach diesem Vortrag solltet ihr verstanden haben: Was gierige Algorithmen von stupider DP abgrenzt Wie gierige Algorithmen bei der Lösung eines Problems vorgehen Wann gierige Algorithmen zur Lösung eines Problems eingesetzt werden können Tilman Adler Gierige Algorithmen / 46

3 Überblick 1 Theoretische Grundlagen Definition gieriger Algorithmen Notwendige Problemeigenschaften Abgrenzung zu DP Beispiel: Knapsack vs. fractional Knapsack 2 Praktische Ausführung - Beispiele Scheduling LKW-Fahrer-Problem Münzwechselproblem Huffman-Encoding HeatDeath (TopCoder) Tilman Adler Gierige Algorithmen / 46

4 Definition Gierige Algorithmen zerlegen ein Optimierungsproblem in gleichartige Teilprobleme, lösen diese mit der lokal intuitiv besten Lösung und setzen die Teilllösungen zu einer Gesamtlösung zusammen. Tilman Adler Gierige Algorithmen / 46

5 Notwendige Problemeigenschaften Optimale Substruktur Ein Problem muss sich in gleichartige Unterprobleme zerlegen lassen und die Lösungen dieser müssen sich zu einer (korrekten) Gesamtlösung zusammensetzen lassen. Gierige-Wahl-Eigenschaft Lokal optimale Lösungen eines Teilproblem müssen zusammengenommen eine optimale Lösung des Gesamtproblems ergeben. Tilman Adler Gierige Algorithmen / 46

6 Abgrenzung zu DP DP GA Findet globales Optimum Findet lokales Optimum entscheidet abhängig von Sublösungen ( Zwischenwertspeicher nötig) keine Vorverbeitung Lösung häufig nicht trivial entscheidet nach lokal günstigster Lösung (kein extra Speicher) oft zb Listensortierung Ansatz oft intuitiv Tilman Adler Gierige Algorithmen / 46

7 Knapsack MaxFragg veranstaltet mal wieder eine seine berühmt-berüchtigten Bergwanderungen. Vom letzten Mal hat Qui Sum gelernt, dass er nicht zu viel einpacken darf. Daher hat er seine Lieblingsgetränke nach Zufriedenheit geordnet und sie gewogen. Er will nicht mehr als 100 Gewichtseinheiten mitschleppen. Tilman Adler Gierige Algorithmen / 46

8 Knapsack Wie kann er folgende Getränke in seinen Rucksack packen, und dabei eine möglichst hohe Zufriedenheit erreichen? Getränk Mate Bier Spezi Kaffee Gewicht Wert rel. Wert 3,5 3,5 3,0 2,5 Tilman Adler Gierige Algorithmen / 46

9 Beispiel: Knapsack - Dynamisch Für ganzzahlige Dinge lässt sich das Knapsack-Problem lediglich dynamisch lösen. Wert = 240 Tilman Adler Gierige Algorithmen / 46

10 Beispiel: Knapsack - Gierig Ich verwende mathematische Mengen im Pseudocode als Listen bzw. Arrays. Die Vereinigung liest sich als hinten anfügen. Tilman Adler Gierige Algorithmen / 46 CALC-AND-SORT bereitet die Liste vor, indem sie den relativen Wert berechnet und aufsteigend sortiert. GREEDY-KNAPSACK(i, m): 1: list CALC-AND-SORT(i) 2: result 3: while elem list, elem.gewicht m do 4: result result {elem}; 5: m m elem.gewicht; 6: end while 7: return result;

11 Beispiel: Knapsack - Gierig Getränk Mate Bier Spezi Kaffee Gewicht Wert rel. Wert 3,5 3,5 3,0 2,5 Wert = 70 Tilman Adler Gierige Algorithmen / 46

12 Beispiel: Knapsack - Gierig Getränk Mate Bier Spezi Kaffee Gewicht Wert rel. Wert 3,5 3,5 3,0 2,5 Wert = 140 Tilman Adler Gierige Algorithmen / 46

13 Beispiel: Knapsack - Gierig Getränk Mate Bier Spezi Kaffee Gewicht Wert rel. Wert 3,5 3,5 3,0 2,5 Wert = 230 Tilman Adler Gierige Algorithmen / 46

14 Beispiel: Knapsack - Gierig Getränk Mate Bier Spezi Kaffee Gewicht Wert rel. Wert 3,5 3,5 3,0 2,5 Wert = 230 < 240 Tilman Adler Gierige Algorithmen / 46

15 Beispiel: Fractional Knapsack Jetzt kommt Qui Sum auf die Idee, auf vorkonfektionierte Flaschen zu verzichten und Plastikflaschen zu verwenden: Die wiegen nichts und außerdem kann er dann das Problem gierig lösen, indem er Flaschen nur teilweise füllt. Tilman Adler Gierige Algorithmen / 46

16 Beispiel: Fractional Knapsack Getränk Mate Bier Spezi Kaffee Gewicht Wert rel. Wert 3,5 3,5 3,0 2,5 Wert = 70 Tilman Adler Gierige Algorithmen / 46

17 Beispiel: Fractional Knapsack Getränk Mate Bier Spezi Kaffee Gewicht Wert rel. Wert 3,5 3,5 3,0 2,5 Wert = 140 Tilman Adler Gierige Algorithmen / 46

18 Beispiel: Fractional Knapsack Getränk Mate Bier Spezi Kaffee Gewicht Wert rel. Wert 3,5 3,5 3,0 2,5 Wert = 230 Tilman Adler Gierige Algorithmen / 46

19 Beispiel: Fractional Knapsack Getränk Mate Bier Spezi Kaffee Gewicht Wert rel. Wert 3,5 3,5 3,0 2,5 Wert = 305 Tilman Adler Gierige Algorithmen / 46

20 Beispiel: Fractional Knapsack Wert = 305 Warum geht das jetzt?! Nur, weil wir die Getränke nicht mehr als Integer betrachten, können wir den Kaffee aufteilen und zu 3 4 mitnehmen! Tilman Adler Gierige Algorithmen / 46

21 Beispiel: Fractional Knapsack FRACTIONAL-KNAPSACK(i, m): 1: list CALC-AND-SORT(i) 2: result 3: while elem list, elem.gewicht > m do 4: result {elem}; 5: m m elem.gewicht; 6: end while 7: if m 0 then 8: result { m elem.gewicht elem} 9: end if 10: return result; Tilman Adler Gierige Algorithmen / 46

22 Beispiel: Fazit Obwohl sowohl Knapsack als auch Fractional Knapsack optimale Substuktur aufweisen, erfüllt lediglich letzterer auch die Gierige-Wahl-Eigenschaft. Dass ein Problem beide Eigenschaften hat, ist im Zweifel zu beweisen. Ein Beweis ist im Cormen als Theorem 16.1 zu finden. Tilman Adler Gierige Algorithmen / 46

23 Übersichtskarte 1 Theoretische Grundlagen Definition gieriger Algorithmen Notwendige Problemeigenschaften Abgrenzung zu DP Beispiel: Knapsack vs. fractional Knapsack 2 Praktische Ausführung - Beispiele Scheduling LKW-Fahrer-Problem Münzwechselproblem Huffman-Encoding HeatDeath (TopCoder) Tilman Adler Gierige Algorithmen / 46

24 Scheduling Grundsätzlich bezeichnet Scheduling das (möglichst optimale) Verteilen von Ereignissen auf der Zeitachse. Dabei können verschiedene Kriterien ausschlaggebend für die Auswahl der Reihenfolge sein: Maximale Anzahl an Veranstaltungen (activity selection, zb Belegungsplan eines Raumes) Maximale Gleichzeitigkeit (interval partitioning, zb Raumvergabe an gleichzeitige Veranstaltungen) Maximale Pünklichkeit (minimize lateness, minimiere die maximale Verspätung verschiedener Termine. zb Deutsche Bahn) uvm Tilman Adler Gierige Algorithmen / 46

25 activity selection Maximale Anzahl an Veranstaltungen (zb Belegungsplan eines Raumes) Idee Wähle immer diejenige Veranstaltung aus, die die meiste Zeit für andere Veranstaltungen übrig lässt und mit keiner anderen kollidiert. Tilman Adler Gierige Algorithmen / 46

26 activity selection a 1 a 2 a 3 a 4 a 5 a Tilman Adler Gierige Algorithmen / 46

27 activity selection a 1 a 2 a 3 a 4 a 5 a Tilman Adler Gierige Algorithmen / 46

28 activity selection a 1 a 2 a 3 a 4 a 5 a Tilman Adler Gierige Algorithmen / 46

29 activity selection a 1 a 2 a 3 a 4 a 5 a Tilman Adler Gierige Algorithmen / 46

30 activity selection a 1 a 2 a 3 a 4 a 5 a Tilman Adler Gierige Algorithmen / 46

31 activity selection a 1 a 2 a 3 a 4 a 5 a Tilman Adler Gierige Algorithmen / 46

32 activity selection a 1 a 2 a 3 a 4 a 5 a Tilman Adler Gierige Algorithmen / 46

33 activity selection SORT sortiert die Liste aufsteigend nach Endzeit der Veranstaltungen INTERVAL-SCHEDULING(veranstaltungen): 1: liste SORT(veranstaltungen); 2: result ; 3: endzeit 0; 4: for veranstaltung liste do 5: if veranstaltung.beginn >= endzeit then 6: result result {veranstaltung}; 7: endzeit veranstaltung.ende; 8: end if 9: end for 10: return result; Tilman Adler Gierige Algorithmen / 46

34 interval partitioning Maximale Anzahl an Überschneidung (zb Raumanzahl für Vorträge) Idee Lege die Vorlesungen zeitlich nacheinander in einen Raum, in den sie passen. Gibt es keinen Raum dafür, lege einen neuen an. Tilman Adler Gierige Algorithmen / 46

35 interval partitioning a 1 a 2 a 3 a 4 a 5 a Tilman Adler Gierige Algorithmen / 46

36 interval partitioning 1 a 1 a 2 a 3 a 4 a 5 a Tilman Adler Gierige Algorithmen / 46

37 interval partitioning 1 a 1 2 a 2 a 3 a 4 a 5 a Tilman Adler Gierige Algorithmen / 46

38 interval partitioning 1 a 1 2 a 2 a 3 a 4 a 5 a Tilman Adler Gierige Algorithmen / 46

39 interval partitioning 1 a 1 2 a 2 a 3 3 a 4 a 5 a Tilman Adler Gierige Algorithmen / 46

40 interval partitioning 1 a 1 a 5 2 a 2 a 3 3 a 4 a Tilman Adler Gierige Algorithmen / 46

41 interval partitioning 1 a 1 a 5 2 a 2 a 3 a 6 3 a Tilman Adler Gierige Algorithmen / 46

42 interval partitioning SORT sortiert die Liste aufsteigend nach Anfangszeit der Veranstaltungen INTERVAL-PARTITIONING(veranstaltungen): 1: liste SORT(veranstaltungen); 2: räume ; 3: for veranstaltung liste do 4: if raum FINDE-KOMPATIBLEN(räume) then 5: raum raum {veranstaltung}; 6: else 7: räume räume {veranstaltung}; 8: end if 9: end for 10: return r äume; Tilman Adler Gierige Algorithmen / 46

43 minimize lateness Maximale Pünklichkeit (minimize lateness, minimiere die maximale Verspätung verschiedener Termine) Idee Sortiere aufsteigend nach Fälligkeitsdatum??? PROFIT! Tilman Adler Gierige Algorithmen / 46

44 minimize lateness Beispielsweise für folgende unsortierte Aufgaben (maximale Verspätung: 4): Tilman Adler Gierige Algorithmen / 46

45 minimize lateness Beispielsweise für folgende unsortierte Aufgaben (maximale Verspätung: 4): Und sortiert (maximale Verspätung: 1) Tilman Adler Gierige Algorithmen / 46

46 Übersichtskarte 1 Theoretische Grundlagen Definition gieriger Algorithmen Notwendige Problemeigenschaften Abgrenzung zu DP Beispiel: Knapsack vs. fractional Knapsack 2 Praktische Ausführung - Beispiele Scheduling LKW-Fahrer-Problem Münzwechselproblem Huffman-Encoding HeatDeath (TopCoder) Tilman Adler Gierige Algorithmen / 46

47 LKW-Fahrer-Problem Ein gieriger LKW Fahrer, der von A-Stadt nach B-Stadt fährt muss mindestens alle n Kilometer nachtanken. Wie oft und an welchen Tankstellen sollte er tanken, um möglichst wenig Zeit zu verlieren? Denn Zeit ist Geld. LKW-Fahrer-Problem An welchen Tankstellen aus einer Liste muss ich tanken, um möglichst selten zu halten? Die Reichweite des LKW ist mindestens so groß wie der größte Abstand zwischen zwei Tankstellen. Tilman Adler Gierige Algorithmen / 46

48 LKW-Fahrer-Problem SORT-LIST bereitet die Tankstellenliste vor, indem sie sie aufsteigend in eine verkettete Liste einsortiert. LKW-Fahrer(reichweite, zielkm, tankstellen): 1: tankstelle SORT-LIST(tankstellen).first 2: strecke reichweite 3: while strecke < zielkm do 4: while tankstelle.next.km strecke do 5: tankstelle = tankstelle.next 6: end while 7: result tankstelle 8: strecke = tankstelle.km + reichweite 9: end while 10: return result; Tilman Adler Gierige Algorithmen / 46

49 Übersichtskarte 1 Theoretische Grundlagen Definition gieriger Algorithmen Notwendige Problemeigenschaften Abgrenzung zu DP Beispiel: Knapsack vs. fractional Knapsack 2 Praktische Ausführung - Beispiele Scheduling LKW-Fahrer-Problem Münzwechselproblem Huffman-Encoding HeatDeath (TopCoder) Tilman Adler Gierige Algorithmen / 46

50 Griechenlandproblem Nach einem europaweiten Bankencrash war viele Jahre Tauschhandel gang und gäbe. Weil das reichlich aufwändig ist, wird in Deutschland eine neue Währung - die NDM - eingeführt. Die Staffelung der Münzen ist 5, 2, 1, 0.5, 0.1, 0.05, 0.02, Leider kann damit noch niemand richtig umgehen. Münzwechselproblem Wie gibt man am einfachsten, das heißt mit so wenig Münzen wie möglich, einen bestimmten Betrag heraus? Tilman Adler Gierige Algorithmen / 46

51 Münzwechselproblem - Beispiel Herausgeben von 7,64 DM: Verfügbare Münzen: Wechselgeld: Tilman Adler Gierige Algorithmen / 46

52 Münzwechselproblem - Beispiel Herausgeben von 2,64 DM: Verfügbare Münzen: Wechselgeld: Tilman Adler Gierige Algorithmen / 46

53 Münzwechselproblem - Beispiel Herausgeben von 0,64 DM: Verfügbare Münzen: Wechselgeld: Tilman Adler Gierige Algorithmen / 46

54 Münzwechselproblem - Beispiel Herausgeben von 0,14 DM: Verfügbare Münzen: Wechselgeld: Tilman Adler Gierige Algorithmen / 46

55 Münzwechselproblem - Beispiel Herausgeben von 0,04 DM: Verfügbare Münzen: Wechselgeld: Tilman Adler Gierige Algorithmen / 46

56 Münzwechselproblem - Beispiel Herausgeben von 0,02 DM: Verfügbare Münzen: Wechselgeld: Tilman Adler Gierige Algorithmen / 46

57 Münzwechselproblem - Beispiel Herausgeben von 0,00 DM: Verfügbare Münzen: Wechselgeld: Tilman Adler Gierige Algorithmen / 46

58 Münzwechselproblem SORT bereitet die Liste vor, indem sie nach Wert der Münzen aufsteigend sortiert. CASHIERS-ALGORITHM(wert, liste): 1: coins SORT(liste); 2: result ; 3: for coin coins do 4: while coin n do 5: result coin; 6: n n coin; 7: end while 8: if n = 0 then 9: return result; 10: end if 11: end for 12: return Tilman Adler Gierige Algorithmen / 46

59 Münzwechselproblem Warnhinweis In Verbindung mit außergewöhnlichen Staffelungen kann es zu Fehlern kommen. Beispielsweise kennt das US-Briefmarkensystem die Einheiten 1, 10, 21, 34, 70, Bei 140 liefert og Algorithmus falsche Ergebnisse. Ein nicht ganz triviales Verfahren zur Überprüfung einer Staffelung findet sich unter unter ( ). Tilman Adler Gierige Algorithmen / 46

60 Übersichtskarte 1 Theoretische Grundlagen Definition gieriger Algorithmen Notwendige Problemeigenschaften Abgrenzung zu DP Beispiel: Knapsack vs. fractional Knapsack 2 Praktische Ausführung - Beispiele Scheduling LKW-Fahrer-Problem Münzwechselproblem Huffman-Encoding HeatDeath (TopCoder) Tilman Adler Gierige Algorithmen / 46

61 Huffman-Encoding Der Huffman-Code ist ein optimaler Präfixcode, der gegenüber der Speicherung mit fester Codewortlänge Einsparungen von 20-90% ermöglicht. Für nähere Betrachtungen siehe GTI. Problem Wie erzeuge ich einen Huffman-Code? k:12 c:5 k:7 a:3 b:4 Tilman Adler Gierige Algorithmen / 46

62 Huffman-Encoding a:3 b:4 c:5 Tilman Adler Gierige Algorithmen / 46

63 Huffman-Encoding c:5 k:7 a:3 b:4 Tilman Adler Gierige Algorithmen / 46

64 Huffman-Encoding k:12 c:5 k:7 a:3 b:4 Tilman Adler Gierige Algorithmen / 46

65 Huffman-Encoding PRIORITY bereitet die Liste der Worte vor, indem sie sie aufsteigend nach Häufigkeit in eine Priority-Queue speichert. HUFFMAN(C): 1: Q = PRIORITY(C); 2: for i = 1 C 1 do 3: erstelle neuen Knoten k; 4: k.links = EXTRACT-MIN(Q); 5: k.rechts = EXTRACT-MIN(Q); 6: k.haeufig = k.links.haeufig + k.rechts.haeufig; 7: INSERT(Q, k); 8: end for 9: return EXTRACT-MIN(Q); Tilman Adler Gierige Algorithmen / 46

66 Übersichtskarte 1 Theoretische Grundlagen Definition gieriger Algorithmen Notwendige Problemeigenschaften Abgrenzung zu DP Beispiel: Knapsack vs. fractional Knapsack 2 Praktische Ausführung - Beispiele Scheduling LKW-Fahrer-Problem Münzwechselproblem Huffman-Encoding HeatDeath (TopCoder) Tilman Adler Gierige Algorithmen / 46

67 HeatDeath In dieser TopCoder Aufgabe war nach einem Weg gesucht, das Universum möglichst lange am Leben zu erhalten: Ein Array arr repräsentiert die Temperatur im Universum. Energie kann von a nach b springen, wenn arr[b] + 2 arr[a], jedoch nur eine Energieeinheit pro Zeiteinheit. Problem Wie kann ich ein Array von Zahlen möglichst lange unausgeglichen halten, wenn pro Zeiteinheit eine größere Zahl dekrementiert und eine kleinere inkrementiert wird, deren Unterschied mindestens 2 betrug? Tilman Adler Gierige Algorithmen / 46

68 HeatDeath Durchlauf mit drei Schritten: Tilman Adler Gierige Algorithmen / 46

69 HeatDeath Durchlauf mit drei Schritten: Tilman Adler Gierige Algorithmen / 46

70 HeatDeath Durchlauf mit drei Schritten: Tilman Adler Gierige Algorithmen / 46

71 HeatDeath Idee Wir gleichen nur möglichst dicht beieinander liegende Elemente aus, sodass ein Ausgleich so oft wie möglich durchgereicht wird. Algorithmus Sortiere Array absteigend Ausgleich jeweils zwischen zwei benachbarten a, b mit a b 2 und gehe zu 2. Wenn keine solchen Elemente, dann zwischen zwei beliebigen a, b mit a b = 2 und gehe zu 2. Wenn auch keine solchen, fertig. Tilman Adler Gierige Algorithmen / 46

72 HeatDeath Optimierter Durchlauf mit vier Schritten: Tilman Adler Gierige Algorithmen / 46

73 HeatDeath Optimierter Durchlauf mit vier Schritten: Tilman Adler Gierige Algorithmen / 46

74 HeatDeath Optimierter Durchlauf mit vier Schritten: Tilman Adler Gierige Algorithmen / 46

75 HeatDeath Optimierter Durchlauf mit vier Schritten: Tilman Adler Gierige Algorithmen / 46

76 Obligatorische Schlussfolien Fragen? Tilman Adler Gierige Algorithmen / 46

77 Obligatorische Schlussfolien Vielen Dank für eure Aufmerksamkeit Tilman Adler Gierige Algorithmen / 46

78 Obligatorische Schlussfolien Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein: Introduction To Algorithms kleinberg-tardos/04greedy-2x2.pdf (7. Juni) statement&pm=2982&rd=5881 (11. Juni) Static&d1=match_editorials&d2=tco04_online_rd_4 (11. Juni) Daniel Danner: Gierige Algorithmen (2010) Tilman Adler Gierige Algorithmen / 46

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

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

Mehr

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

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

Mehr

Algorithmentheorie. 10 Greedy Verfahren

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

Mehr

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

Greedy Algorithms - Gierige Algorithmen

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

Mehr

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

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

Mehr

Methoden für den Entwurf von Algorithmen

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

Mehr

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

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

Mehr

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

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

9 Minimum Spanning Trees

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

Mehr

Polygontriangulierung

Polygontriangulierung Vorlesung Algorithmische Geometrie Polygone triangulieren LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 26.04.2011 Das Kunstgalerie-Problem

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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2012/13 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

Algorithmen und Datenstrukturen

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

Mehr

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

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

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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Sortierte Listen 2. Stacks & Queues 3. Teile und Herrsche Nächste Woche: Vorrechnen (first-come-first-served)

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

Primzahlen und Programmieren

Primzahlen und Programmieren Primzahlen Wir wollen heute gemeinsam einen (sehr grundlegenden) Zusammenhang zwischen Programmieren und Mathematik herstellen. Die Zeiten in denen Mathematiker nur mit Zettel und Stift (oder Tafel und

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

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

INFORMATIK FÜR BIOLOGEN

INFORMATIK FÜR BIOLOGEN Technische Universität Dresden 15012015 Institut für Theoretische Informatik Professur für Automatentheorie INFORMATIK FÜR BIOLOGEN Musterklausur WS 2014/15 Studiengang Biologie und Molekulare Biotechnologie

Mehr

Algorithmen und Datenstrukturen 2

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

Mehr

Polygontriangulierung

Polygontriangulierung Vorlesung Algorithmische Geometrie Polygone triangulieren INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 03.05.2012 Das Kunstgalerie-Problem Aufgabe: Installiere ein Kamerasystem

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

Referat zum Thema Huffman-Codes

Referat zum Thema Huffman-Codes Referat zum Thema Huffman-Codes Darko Ostricki Yüksel Kahraman 05.02.2004 1 Huffman-Codes Huffman-Codes ( David A. Huffman, 1951) sind Präfix-Codes und das beste - optimale - Verfahren für die Codierung

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

Die Formel für die Standardabweichung lautet (ohne die Wurzel haben wir die Varianz):

Die Formel für die Standardabweichung lautet (ohne die Wurzel haben wir die Varianz): Mittelwert und Standardabweichung Klasse: StandardDeviation Schreiben Sie ein Programm StandardDeviation, das von den zufällig erzeugten Werten eines Arrays beliebiger Größe den Mittelwert und die Standardabweichung

Mehr

Dynamisches Huffman-Verfahren

Dynamisches Huffman-Verfahren Dynamisches Huffman-Verfahren - Adaptive Huffman Coding - von Michael Brückner 1. Einleitung 2. Der Huffman-Algorithmus 3. Übergang zu einem dynamischen Verfahren 4. Der FGK-Algorithmus 5. Überblick über

Mehr

Berechnung minimaler Spannbäume. Beispiel

Berechnung minimaler Spannbäume. Beispiel Minimale Spannbäume Definition Sei G pv, Eq ein ungerichteter Graph und sei w : E Ñ R eine Funktion, die jeder Kante ein Gewicht zuordnet. Ein Teilgraph T pv 1, E 1 q von G heißt Spannbaum von G genau

Mehr

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47

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

Mehr

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

Voronoi-Diagramme INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Voronoi-Diagramme INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 03.06.2014 1 Das Postamt-Problem b(p, q) = {x 2 R 2 : xp = xq } p q h(p, q) h(q, p) = {x

Mehr

2.2 Allgemeine (vergleichsbasierte) Sortierverfahren

2.2 Allgemeine (vergleichsbasierte) Sortierverfahren . Allgemeine (vergleichsbasierte) Sortierverfahren Vergleichsbaum: Der Aufbau des Verbleichsbaum ist für jeden Algorithmus und jede Eingabelänge n gleich. Jede Permutation der Eingabe, muss zu einem anderen

Mehr

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. 8. A & D - Heapsort Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. Genauer werden wir immer wieder benötigte Operationen durch Datenstrukturen unterstützen.

Mehr

Übungen zur Vorlesung Datenstrukturen und Algorithmen SS 2006 Blatt 13

Übungen zur Vorlesung Datenstrukturen und Algorithmen SS 2006 Blatt 13 Übungen zur Vorlesung Datenstrukturen und Algorithmen SS 2006 Blatt 13 Sven Grothklags University of Paderborn 10. Juli 2006 Sven Grothklags (University of Paderborn) DuA Übungsblatt 13 10. Juli 2006 1

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

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 2 Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 24/ 44 Zwei Beispiele a 0

Mehr

Uberblick 1. Kurzeste Wege 2. Sichtbarkeitsgraphen 3. Berechnung des Sichtbarkeitsgraphen 4. Kurzeste Wege fur polygonale Roboter 1

Uberblick 1. Kurzeste Wege 2. Sichtbarkeitsgraphen 3. Berechnung des Sichtbarkeitsgraphen 4. Kurzeste Wege fur polygonale Roboter 1 Vorlesung Geometrische Algorithmen Sichtbarkeitsgraphen und kurzeste Wege Sven Schuierer Uberblick 1. Kurzeste Wege 2. Sichtbarkeitsgraphen 3. Berechnung des Sichtbarkeitsgraphen 4. Kurzeste Wege fur polygonale

Mehr

Tutoraufgabe 1 (Hoare-Kalkül):

Tutoraufgabe 1 (Hoare-Kalkül): Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Allgemeine Die Hausaufgaben sollen in Gruppen von je 2 Studierenden aus der gleichen Kleingruppenübung (Tutorium) bearbeitet

Mehr

2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.

2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. 2. Grundlagen Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. Laufzeitverhalten beschreiben durch O-Notation. 1 Beispiel Minimum-Suche Eingabe bei Minimum

Mehr

Erinnerung: das Knapsack-Problem

Erinnerung: das Knapsack-Problem Erinnerung: das Knapsack-Problem Das 0-1-Knapsack-Problem: Wähle aus n egenständen, wobei der i-te egenstand den Wert v i und das ewicht w i besitzt Maximiere den esamtwert bei vorgegebenem Höchstgewicht

Mehr

15. Elementare Graphalgorithmen

15. Elementare Graphalgorithmen Graphen sind eine der wichtigste Modellierungskonzepte der Informatik Graphalgorithmen bilden die Grundlage vieler Algorithmen in der Praxis Zunächst kurze Wiederholung von Graphen. Dann Darstellungen

Mehr

Konvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510

Konvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510 Konvexe Hülle Definition konvexe Menge: Für je zwei beliebige Punkte, die zur Menge gehören, liegt auch stets deren Verbindungsstrecke ganz in der Menge. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links),

Mehr

4. Sortieren 4.1 Vorbemerkungen

4. Sortieren 4.1 Vorbemerkungen . Seite 1/21 4. Sortieren 4.1 Vorbemerkungen allgemeines Sortierproblem spezielle Sortierprobleme Ordne a 1,..., a n so um, dass Elemente in aufsteigender Reihenfolge stehen. Die a i stammen aus vollständig

Mehr

5.4 Das Rucksackproblem

5.4 Das Rucksackproblem Problemstellung: 5.4 Das Rucksackproblem Eingabe: Ganzzahlige Volumina a 1,..., a n > 0, Nutzenwerte c 1,..., c n > 0, ganzzahlige Volumenschranke b. Aufgabe: Packe die Objekte in einen Rucksack von Volumen

Mehr

Wintersemester 2004/ Januar Aus der Vorlesung sind Datenstrukturen zur Repräsentation von Wäldern disjunkter Mengen bekannt.

Wintersemester 2004/ Januar Aus der Vorlesung sind Datenstrukturen zur Repräsentation von Wäldern disjunkter Mengen bekannt. Lehrstuhl für Praktische Informatik III Norman May B6, 29, Raum C0.05 68131 Mannheim Telefon: (0621) 181 2517 Email: norman@pi3.informatik.uni-mannheim.de Matthias Brantner B6, 29, Raum C0.05 68131 Mannheim

Mehr

Der Branching-Operator B

Der Branching-Operator B Branching 1 / 17 Der Branching-Operator B Unser Ziel: Löse das allgemeine Minimierungsproblem minimiere f (x), so dass Lösung(x). B zerlegt eine Menge von Lösungen in disjunkte Teilmengen. Die wiederholte

Mehr

Aufgabe (Schreibtischtest, Algorithmenanalyse)

Aufgabe (Schreibtischtest, Algorithmenanalyse) Aufgabe (Schreibtischtest, Algorithmenanalyse) Führen Sie einen Schreibtischtest für den Algorithmus Positionsort für das folgende Eingabe-Array durch. Geben Sie nach jedem Durchlauf der for-schleife mit

Mehr

Krawatterätsel - Verbesserung der oberen Schranke

Krawatterätsel - Verbesserung der oberen Schranke Krawatterätsel - Verbesserung der oberen Schranke Felix Kälberer, Matthias Nieser, Ulrich Reitebuch 29. Dezember 2008 Zusammenfassung Die folgenden Seiten beschreiben neue Erkenntnisse im Krawattenrätsel.

Mehr

Inhalt. 1. Flußprobleme. 2. Matching. 3. Lineares Programmieren. 4. Ganzzahliges Programmieren. 5. NP-Vollständigkeit. 6. Approximationsalgorithmen

Inhalt. 1. Flußprobleme. 2. Matching. 3. Lineares Programmieren. 4. Ganzzahliges Programmieren. 5. NP-Vollständigkeit. 6. Approximationsalgorithmen Effiziente Algorithmen Einführung 1 Inhalt 1. Flußprobleme 2. Matching. Lineares Programmieren 4. Ganzzahliges Programmieren 5. NP-Vollständigkeit 6. Approximationsalgorithmen 7. Backtracking und Branch-and-Bound

Mehr

Wann sind Codes eindeutig entschlüsselbar?

Wann sind Codes eindeutig entschlüsselbar? Wann sind Codes eindeutig entschlüsselbar? Definition Suffix Sei C ein Code. Ein Folge s {0, 1} heißt Suffix in C falls 1 c i, c j C : c i = c j s oder 2 c C und einen Suffix s in C: s = cs oder 3 c C

Mehr

Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III

Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III Text: Hinnerk van Bruinehsen - Grafiken: Jens Fischer powered by SDS.mint SoSe 2011 1 Teil

Mehr

BUBBLE SORT. Können wir die gefundenen Algorithmen auch auf Listen mit mehr als drei Elementen ausdehnen?

BUBBLE SORT. Können wir die gefundenen Algorithmen auch auf Listen mit mehr als drei Elementen ausdehnen? BUBBLE SORT Voraussetzungen der Schüler: Die Schüler besuchen bereits das zweite Jahr den Informatikunterricht und sollten den Umgang mit Feldern und Unterprogrammen mittlerweile beherrschen. Im ersten

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

Aufgabe 8. 1 Arbeitsweise illustrieren. 2 Korrektheitsbeweis führen. 3 Laufzeitanalyse durchführen.

Aufgabe 8. 1 Arbeitsweise illustrieren. 2 Korrektheitsbeweis führen. 3 Laufzeitanalyse durchführen. Aufgabe 8 Betrachten Sie den folgenden Algorithmus namens Bubble-Sort. Bubble-Sort(A[1..n]): 1 for i 1 to length(a) 1 2 do for j length(a) downto i + 1 3 do if A[j 1] > A[j] 4 then A[j 1] A[j] 1 Arbeitsweise

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

Informatik I Übung, Woche 47: Nachtrag zur dynamischen Programmierung

Informatik I Übung, Woche 47: Nachtrag zur dynamischen Programmierung Informatik I Übung, Woche 47: Nachtrag zur dynamischen Programmierung Giuseppe Accaputo 20. November, 2015 : Definition : Unser Rucksack kann nur 20 kg tragen, wir wollen jedoch den Wert der Ware, welche

Mehr

Mergeable Heaps. C. Komusiewicz 7.1 Fibonacci-Heaps: Überblick 117

Mergeable Heaps. C. Komusiewicz 7.1 Fibonacci-Heaps: Überblick 117 C. Komusiewicz 7.1 Fibonacci-Heaps: Überblick 117 Mergeable Heaps Erweiterung von Standardheaps, die die folgenden fünf Operationen unterstützen. Make-Heappq liefert neuen, leeren Heap. InsertpH, xq fügt

Mehr

Kombinatorische Optimierung

Kombinatorische Optimierung Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesung 4 Programm des

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Heaps Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 469 Prioritätswarteschlange Problem Häufig ist das Prinzip einer einfachen Warteschlangen-Datenstruktur

Mehr

5. Übungsblatt zu Algorithmen I im SoSe 2016

5. Übungsblatt zu Algorithmen I im SoSe 2016 Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Dennis Hofheinz Lukas Barth, Lisa Kohl 5. Übungsblatt zu Algorithmen I im SoSe 2016 https://crypto.iti.kit.edu/index.php?id=algo-sose16

Mehr

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit Counting-Sort Counting - Sort ( A,B,k ). for i to k. do C[ i]. for j to length[ A]. do C[ A[ j ] C[ A[ j ] +. > C[ i] enthält Anzahl der Elemente in 6. for i to k. do C[ i] C[ i] + C[ i ]. > C[ i] enthält

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 7. Dezember 2017 INSTITUT FÜR THEORETISCHE 0 07.12.2017 Dorothea Wagner - Theoretische Grundlagen der Informatik INSTITUT FÜR THEORETISCHE KIT Die Forschungsuniversität

Mehr

Algorithmen und Datenstrukturen Heapsort

Algorithmen und Datenstrukturen Heapsort Algorithmen und Datenstrukturen 2 5 Heapsort In diesem Kapitel wird Heapsort, ein weiterer Sortieralgorithmus, vorgestellt. Dieser besitzt wie MERGE-SORT eine Laufzeit von O(n log n), sortiert jedoch das

Mehr

Geometrische Algorithmen Voronoi-Diagramme. Lernmodul 7: Geo-Algorithmen und -Datenstrukturen - Voronoi-Diagramme

Geometrische Algorithmen Voronoi-Diagramme. Lernmodul 7: Geo-Algorithmen und -Datenstrukturen - Voronoi-Diagramme Folie 1 von 32 Geometrische Algorithmen Voronoi-Diagramme Folie 2 von 32 Voronoi-Diagramme Übersicht Problemstellung Animation zur Konstruktion eines Voronoi-Diagramms Definition, Eigenschaften eines Voronoi-Diagramms

Mehr

Suchen und Sortieren Sortieren. Heaps

Suchen und Sortieren Sortieren. Heaps Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

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

Abschnitt: Algorithmendesign und Laufzeitanalyse

Abschnitt: Algorithmendesign und Laufzeitanalyse Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher

Mehr

Denition: Rang eines Elements e einer Folge s = Position von e in sort(s) (angefangen bei 1). Frage: warum ist r nicht notwendig eindeutig?

Denition: Rang eines Elements e einer Folge s = Position von e in sort(s) (angefangen bei 1). Frage: warum ist r nicht notwendig eindeutig? 207 Auswahl (Selection) Denition: Rang eines Elements e einer Folge s = Position von e in sort(s) (angefangen bei 1). Frage: warum ist r nicht notwendig eindeutig? // return an element of s with rank k

Mehr

Theoretische Informatik 1

Theoretische Informatik 1 Theoretische Informatik 1 Approximierbarkeit David Kappel Institut für Grundlagen der Informationsverarbeitung Technische Universität Graz 10.06.2016 Übersicht Das Problem des Handelsreisenden TSP EUCLIDEAN-TSP

Mehr

Algorithmen I - Tutorium 28 Nr. 11

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

Mehr

Datenstrukturen und Algorithmen D-INFK

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

Mehr

Suchen und Sortieren

Suchen und Sortieren Suchen und Sortieren Suchen Sortieren Mischen Zeitmessungen Bewertung von Sortier-Verfahren Seite 1 Suchverfahren Begriffe Suchen = Bestimmen der Position (Adresse) eines Wertes in einer Datenfolge Sequentielles

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen 1 Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Ziele 2 Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Vorstellen des vierten Übungsblatts 2. Vorbereitende Aufgaben für das vierte Übungsblatt

Mehr

2. Effizienz von Algorithmen

2. Effizienz von Algorithmen Effizienz von Algorithmen 2. Effizienz von Algorithmen Effizienz von Algorithmen, Random Access Machine Modell, Funktionenwachstum, Asymptotik [Cormen et al, Kap. 2.2,3,4.2-4.4 Ottman/Widmayer, Kap. 1.1]

Mehr

Algorithmen und Datenstrukturen Tutorium Übungsaufgaben

Algorithmen und Datenstrukturen Tutorium Übungsaufgaben Algorithmen und Datenstrukturen Tutorium Übungsaufgaben AlgoDat - Übungsaufgaben 1 1 Landau-Notation Aufgabe Lösung 2 Rekurrenzen Aufgabe 3 Algorithmenentwurf und -analyse Aufgabe AlgoDat - Übungsaufgaben

Mehr

Begriffsklärung: Dominanz

Begriffsklärung: Dominanz Einführung Begriffsklärung: Dominanz Gegeben: d-dimensionaler Raum, jeder Punkt p im Raum hat d Attribute: (p 1,,p d ) Definition Dominanz: 1 i d : p i p i und 1 i d : p i < p i Begriffsklärung: Dominanz

Mehr

Sortierverfahren für Felder (Listen)

Sortierverfahren für Felder (Listen) Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es

Mehr

Sortieren. Eine Testmenge erstellen

Sortieren. Eine Testmenge erstellen Sortieren Eine der wohl häufigsten Aufgaben für Computer ist das Sortieren, mit dem wir uns in diesem Abschnitt eingeher beschäftigen wollen. Unser Ziel ist die Entwicklung eines möglichst effizienten

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

10. Übung Algorithmen I

10. Übung Algorithmen I INSTITUT FÜR THEORETISCHE INFORMATIK 1 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft Institut für Theoretische www.kit.edu Informatik Bäume

Mehr

Übrigens: um den Algorithmus im Unterricht einzuführen, sind keine Formeln notwendig! Warum reicht die normale ASCII-Codierung nicht aus?

Übrigens: um den Algorithmus im Unterricht einzuführen, sind keine Formeln notwendig! Warum reicht die normale ASCII-Codierung nicht aus? Huffman-Code Dieser Text ist als Hintergrundinformation ausschliesslich für die Lehrperson gedacht. Der Text ist deshalb eher technisch gehalten. Er lehnt sich an das entsprechende Kapitel in "Turing Omnibus"

Mehr

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 9, Donnerstag 18.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 9, Donnerstag 18. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 9, Donnerstag 18. Dezember 2014 (Teile und Herrsche, Mastertheorem) Junior-Prof. Dr.

Mehr

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

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

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

Informatikgrundlagen (WS 2016/2017)

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

Mehr

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

In C und Java müssen Variablen und Methodenergebnisse durch Typangaben erläutert werden. Welche der folgenden Aussagen sind korrekt und welche nicht:

In C und Java müssen Variablen und Methodenergebnisse durch Typangaben erläutert werden. Welche der folgenden Aussagen sind korrekt und welche nicht: Typprüfung (Compiler / Laufzeit) In C und Java müssen Variablen und Methodenergebnisse durch Typangaben erläutert werden. Welche der folgenden Aussagen sind korrekt und welche nicht: 1) Der Compiler prüft

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

5. Bäume und Minimalgerüste

5. Bäume und Minimalgerüste 5. Bäume und Minimalgerüste Charakterisierung von Minimalgerüsten 5. Bäume und Minimalgerüste Definition 5.1. Es ein G = (V, E) ein zusammenhängender Graph. H = (V,E ) heißt Gerüst von G gdw. wenn H ein

Mehr

Erinnerung VL vom

Erinnerung VL vom Erinnerung VL vom 09.05.2016 Analyse von Hashtabellen mit verketteten Listen Erwartete Laufzeit O(1) bei zuf. Hashfkt. und falls M O(m) Guter Ersatz (hier) für zuf. Hashfkt.: universelle Hashfunktionen

Mehr

Algorithmen mit Python

Algorithmen mit Python Algorithmen mit Python Vorbesprechung zum Proseminar im Sommersemester 2009 http://www.python.org 1 Sie lernen in DAP Java und C/C++: 80% Syntax, 20% Algorithmen-Design Idee Schon ein einfaches Hello World

Mehr

Algorithmen und Datenstrukturen I Grundlagen

Algorithmen und Datenstrukturen I Grundlagen Algorithmen und Datenstrukturen I Grundlagen Prof. Dr. Oliver Braun Letzte Änderung: 01.11.2017 14:15 Algorithmen und Datenstrukturen I, Grundlagen 1/24 Algorithmus es gibt keine präzise Definition Handlungsvorschrift

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Kürzeste Wege, Heaps, Hashing Heute: Kürzeste Wege: Dijkstra Heaps: Binäre Min-Heaps Hashing:

Mehr