Gierige Algorithmen. Tilman Adler Tilman Adler Gierige Algorithmen / 46
|
|
- Julian Brandt
- vor 6 Jahren
- Abrufe
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 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
MehrGierige 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
MehrAlgorithmentheorie. 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
MehrHallo 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
MehrGreedy 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
MehrTheoretische 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
MehrMethoden 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.
MehrAlgorithmen 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/
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:
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
Mehr9 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
MehrPolygontriangulierung
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
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
MehrAlgorithmen 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
MehrAlgorithmen 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:
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
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
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
MehrAlgorithmen 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 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)
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
MehrPrimzahlen 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
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:
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
MehrINFORMATIK 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
MehrAlgorithmen 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
MehrPolygontriangulierung
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
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
MehrReferat 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
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:
MehrDie 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
MehrDynamisches 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
MehrBerechnung 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
MehrGraphalgorithmen 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
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
MehrVoronoi-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
Mehr2.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
Mehr8. 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 Sven Grothklags University of Paderborn 10. Juli 2006 Sven Grothklags (University of Paderborn) DuA Übungsblatt 13 10. Juli 2006 1
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
Mehr2. 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
MehrUberblick 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
MehrTutoraufgabe 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
Mehr2. 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
MehrErinnerung: 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
Mehr15. 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
MehrKonvexe 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),
Mehr4. 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
Mehr5.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
MehrWintersemester 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
MehrDer 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
MehrAufgabe (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
MehrKrawatterä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.
MehrInhalt. 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
MehrWann 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
MehrObjektorientierte 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
MehrBUBBLE 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
MehrKapiteltests 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
MehrAufgabe 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
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
MehrInformatik 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
MehrMergeable 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
MehrKombinatorische 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
MehrVorlesung 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
Mehr5. Ü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
MehrCounting - 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
MehrTheoretische 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
MehrAlgorithmen 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
MehrGeometrische 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
MehrSuchen 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
MehrKapitel 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:
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);
MehrAbschnitt: 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
MehrDenition: 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
MehrTheoretische 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
MehrAlgorithmen 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.
MehrDatenstrukturen 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
MehrSuchen 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
MehrKapitel 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 Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Vorstellen des vierten Übungsblatts 2. Vorbereitende Aufgaben für das vierte Übungsblatt
Mehr2. 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]
MehrAlgorithmen 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
MehrBegriffsklä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
MehrSortierverfahren 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
MehrSortieren. 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
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
Mehr10. Ü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?
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"
MehrAlgorithmen 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.
MehrStud.-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
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!
MehrInformatikgrundlagen (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
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
MehrIn 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 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
Mehr5. 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
MehrErinnerung 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
MehrAlgorithmen 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
MehrAlgorithmen 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 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