11 Dynamisches Programmieren
|
|
- Stephanie Lang
- vor 8 Jahren
- Abrufe
Transkript
1 Algorithmen und Datenstrukturen Dynamisches Programmieren Gegenstand dieses und des nächsten Kapitels sind noch einmal Algorithmen. Zunächst beschreiben wir das sog. dynamische Programmieren. kein spezieller Algorithmus, sondern Lösungsstrategie (vgl. divide-and-conquer) Begriff stammt aus der Zeit, als Programmieren noch Tabellenmethoden bezeichnete (vgl. linear programming); gemeint ist also ein Optimierungsverfahren, nicht Computerprogrammierung. Anwendungen sind Optimierungsaufgaben, d.h. Maximal- oder Minimalstellen einer Zielfunktion zu bestimmen. 11 Dynamisches Programmieren TU Bergakademie Freiberg, WS 2005/06
2 Algorithmen und Datenstrukturen 280 Die Entwicklung eines Algorithmus nach dieser Strategie kann in vier Schritte zerlegt werden: 1. Charakterisierung der Struktur einer Optimallösung 2. Rekursive Definition des Wertes einer Optimallösung 3. Berechnung des Wertes einer Optimallösung (rekursiv) 4. Konstruktion der Optimallösung aus berechneter Information (optional) Schritt 4 kann entfallen sofern nur der Wert einer Optimallösung von Interesse ist. Wir betrachten ein einführendes Beispiel Dynamisches Programmieren TU Bergakademie Freiberg, WS 2005/06
3 Algorithmen und Datenstrukturen Steuerung einer Fertigungsstraße Automobilfabrik mit 2 Fertigungsstraßen für Autokarosserien: Jede Straße besteht aus n Stationen: S 1,1,..., S 1,n bzw. S 2,1,..., S 2,n. Stationen S 1,j und S 2,j führen beide denselben Fertigungsschritt aus, benötigen hierfür aber unterschiedliche Zeiten a 1,j bzw. a 2,j. Anlaufzeiten e 1, e 2 ( entry ) Auslaufzeiten x 1, x 2 ( exit ) Nach Durchlaufen einer Station kann eine Karosserie entweder ohne Verzögerung auf derselben Straße bleiben oder zur anderen Straße wechseln. Hierbei tritt eine Verzögerung von t i,j ein, wenn zuletzt Station S i,j durchlaufen wurde (j = 1,..., n 1) Steuerung einer Fertigungsstraße TU Bergakademie Freiberg, WS 2005/06
4 Algorithmen und Datenstrukturen 282 Aufgabe: Für diese gegebenen Kosten (=Zeiten) ist diejenige (optimale) Kombination von Stationen aus Straße 1 und 2 zu bestimmen, welche zum schnellsten Durchlauf durch die Fertigungsstraße führt. Brute force Methode: Kombinationen erschöpfend durchprüfen Jeder Lösungskandidat ist vollständig bestimmt durch Angabe der aus Straße 1 gewählten Stationen. Straße 1 besitzt n Stationen, also 2 n mögliche Teilmengen. Demnach wären also 2 n mögliche Lösungen zu vergleichen. Dies wird zu teuer für n groß Steuerung einer Fertigungsstraße TU Bergakademie Freiberg, WS 2005/06
5 Algorithmen und Datenstrukturen Struktur einer Optimallösung Charakterisierung der Kombination, die am schnellsten durch die Fertigung führt bis einschließlich Station S 1,j : j = 1: klar, nur ein möglicher Weg j > 1: zwei mögliche Wege durch S 1,j 1 und dann direkt zu S 1,j durch S 2,j 1, dann Wechsel auf Straße 1 zu S 1,j Angenommen, der Weg durch S 1,j 1 ist der schnellere. Wesentliche Feststellung: Weg durch S 1,j 1 muß bereits optimal gewesen sein. Andernfalls könnten wir einen schnelleren Weg durch S 1,j konstruieren. Analoge Überlegung im Fall, dass schnellster Weg durch S 2,j 1 führt Steuerung einer Fertigungsstraße TU Bergakademie Freiberg, WS 2005/06
6 Algorithmen und Datenstrukturen 284 Allgemein: Eine optimale Lösung (schnellster Weg bis einschließlich Station S 1,j ) ist aufgebaut aus optimalen Lösungen von Teilproblemen (schnellster Weg bis einschließlich Station S 1,j 1 bzw. S 2,j 1 ). Mann nennt diese Eigenschaft optimale Substruktur. Damit lassen sich Optimallösungen des Ausgangsproblems aus Optimallösungen von Teilproblemen aufbauen. Hier: schnellster Weg bis einschl. S 1,j entweder schnellster Weg durch S 1,j 1, danach direkt zu S 1,j, oder schnellster Weg durch S 2,j 1, danach Straßenwechsel zu S 1,j Aus Symmetriegründen analog bei Vertauschung von 1 und 2. Strategie daher: konstruiere schnellsten Weg durch S 1,j bzw. S 2,j mit Hilfe der Teillösungen durch S 1,j 1 bzw. S 2,j Steuerung einer Fertigungsstraße TU Bergakademie Freiberg, WS 2005/06
7 Algorithmen und Datenstrukturen Rekursive Lösung Setze f i [j] := kürzeste Zeit durch S i,j, i = 1, 2, j = 1,..., n. Gesucht: f := kürzeste Zeit durch gesamte Fertigung Es gilt f = min{f 1 [n] + x 1, f 2 [n] + x 2 }, (11.1a) f 1 [1] = e 1 + a 1,1, (11.1b) f 2 [1] = e 2 + a 2,1, (11.1c) f 1 [j] = a 1,j + min{f 1 [j 1], f 2 [j 1] + t 2,j 1 }, (j = 2,..., n), (11.1d) f 2 [j] = a 2,j + min{f 2 [j 1], f 1 [j 1] + t 1,j 1 }, (j = 2,..., n). (11.1e) 11.1 Steuerung einer Fertigungsstraße TU Bergakademie Freiberg, WS 2005/06
8 Algorithmen und Datenstrukturen 286 Aufbau der Optimallösung: f i [j] gibt lediglich den Wert der optimalen Teillösung an (Auswertung der Zielfunktion). Die Teillösung selbst kann wie folgt konstruiert werden: Sei l i [j] die Nummer der Fertigungsstraße (1 oder 2) deren (j 1)-te Station im schnellsten Weg durch S i,j benutzt wurde. M.a.W. S li [j],j 1 wurde vor S i,j durchlaufen. Definiert für i = 1, 2 und j = 2,..., n. l := Straßennummer, deren Station n benutzt wird Steuerung einer Fertigungsstraße TU Bergakademie Freiberg, WS 2005/06
9 Algorithmen und Datenstrukturen Berechnung der Optimalwerte Naiver Ansatz: Rekursive Berechnung gemäß Gleichungen (11.1). Dies erfordert aber exponentiellen Aufwand. Sei r i (j) die Anzahl des Auftretens von f i [j] in diesen Rekursionen. Es gilt r 1 (n) = r 2 (n) = 1. Aus (11.1d), (11.1e) folgt r 1 (j) = r 2 (j) = r 1 (j + 1) + r 2 (j + 1), (j = 1,..., n 1) Steuerung einer Fertigungsstraße TU Bergakademie Freiberg, WS 2005/06
10 Algorithmen und Datenstrukturen 288 Behauptung: Es gilt r i (j) = 2 n j. Beweis: Induktion über j von n abwärts Anfang (j = n): hier ist 2 n j = s 0 = 1 = r i (n). Induktionsschritt: Angenommen r i (j + 1) = 2 n (j+1). Es folgt r i (j) = r 1 (j + 1) + r 2 (j + 1) = 2 n (j+1) + 2 n (j+1) = 2 n (j+1)+1 = 2 n j. Damit tritt allein schon f 1 [1] bereits 2 n 1 Mal auf. Diese Reihenfolge ( top-down ) also nicht geeignet. Beobachtung: f i [j] hängt nur ab von f 1 [j 1] und f 2 [j 1] (j 2). Somit könnte man auch in umgekehrter Reihenfolge (j aufsteigend) rechnen Steuerung einer Fertigungsstraße TU Bergakademie Freiberg, WS 2005/06
11 Algorithmen und Datenstrukturen 289 FASTEST-WAY(a, t, e, x, n) 1 f 1 [1] e 1 + a 1,1 ; f 2 [1] e 2 + a 2,1 2 for j 2 to n 3 do if f 1 [j 1] + a 1,j f 2 [j 1] + t 2,j 1 + a 1,j 4 then f 1 [j] f 1 [j 1] + a 1,j 5 l 1 [j] 1 6 else f 1 [j] f 2 [j 1] + t 2,j 1 + a 1,j 7 l 1 [j] 2 8 if f 2 [j 1] + a 2,j f 1 [j 1] + t 1,j 1 + a 2,j 9 then f 2 [j] f 2 [j 1] + a 2,j 10 l 2 [j] 2 11 else f 2 [j] f 1 [j 1] + t 1,j 1 + a 2,j 12 l 2 [j] 1 13 if f 1 [n] + x 1 f 2 [n] + x 2 14 then f f 1 [n] + x 1 15 l 1 16 else f f 2 [n] + x 2 17 l Steuerung einer Fertigungsstraße TU Bergakademie Freiberg, WS 2005/06
12 Algorithmen und Datenstrukturen Rekonstruktion der Optimallösung PRINT-STATIONS(l, n) 1 i l 2 Ausgabe Straße i Station n 3 for j n downto 2 4 do i l i [j] 5 Ausgabe Straße i, Station j 1 Laufzeit: Θ(n) Steuerung einer Fertigungsstraße TU Bergakademie Freiberg, WS 2005/06
13 Algorithmen und Datenstrukturen 291 S 1,1 S 1,2 S 1,3 S 1,4 S 1,5 S 1,6 Straße Straße S 2,1 Beispiel für Fertigungsstraße mit n = 6 S 2,2 S 2,3 S 2,4 S 2,5 S 2, Steuerung einer Fertigungsstraße TU Bergakademie Freiberg, WS 2005/06
14 Algorithmen und Datenstrukturen 292 In diesem Fall erhalten wir für die Größen f i [j] j f 1 [j] f 2 [j] und somit f = 38. Für die l i [j] ergibt sich j l 1 [j] l 2 [j] und somit l = Steuerung einer Fertigungsstraße TU Bergakademie Freiberg, WS 2005/06
15 Algorithmen und Datenstrukturen Längste gemeinsame Teilfolge Eine (endliche) Folge Z = z 1,..., z k heißt Teilfolge einer Folge X = x 1,..., x m, falls es eine aufsteigende Folge verschiedener Indizes i 1, i 2,..., i k gibt, sodass z j = x ij für j = 1,..., k. Beispiel: Z = B, C, D, B ist Teilfolge von X = A, B, C, B, D, A, B mit Indices i 1 = 2, i 2 = 3, i 3 = 5, i 4 = 7. Eine Folge Z ist eine gemeinsame Teilfolge zweier Folgen X und Y, falls Z sowohl Teilfolge von X als auch von Y ist. Beispiel: Z = B, C, A ist gemeinsame Teilfolge von X = A, B, C, B, D, A, B und Y = B, D, C, A, B, A Längste gemeinsame Teilfolge TU Bergakademie Freiberg, WS 2005/06
16 Algorithmen und Datenstrukturen 294 Aufgabe: Zu zwei gegebenen Folgen X = x 1,..., x m und Y = y 1,..., y n bestimme man eine gemeinsame Teilfolge (lgt) maximaler Länge. a Im obigen Beispiel ist die gemeinsame Teilfolge Z von X und Y nicht maximal. Eine maximale gemeinsame Teilfolge ist B, D, A, B. Anwendung: Charakterisierung der Ähnlichkeit zweier DNA-Sequenzen (Folge über dem Alphabet {A,C,G,T}). Ist eine Teilfolge der anderen? Ist eine durch geringe Modifikationen in die andere überführbar? Besitzen beide eine (möglichst lange) gemeinsame Teilfolge? a Diese Aufgabe findet man in der Literatur auch als LCS Problem (longest common subsequence) bezeichnet Längste gemeinsame Teilfolge TU Bergakademie Freiberg, WS 2005/06
17 Algorithmen und Datenstrukturen 295 Brute-Force Strategie: Man prüfe für jede Teilfolge von X nach, ob sie auch Teilfolge von Y ist und merke sich die längste. Jede Teilfolge von X entspricht einer Teilmenge der Indizes {1,..., m}, davon gibt es 2 m. Prüfen auf Teilfolgeneigenschaft erfordert Aufwand O(n). Insgesamt also O(n2 m ), zu teuer Längste gemeinsame Teilfolge TU Bergakademie Freiberg, WS 2005/06
18 Algorithmen und Datenstrukturen Optimale Substruktur Wir zeigen: das LCS-Problem besitzt die optimale Substruktureigenschaft, ist also durch dynamisches Programmieren lösbar. Wir charakterisieren hierzu zunächst die Struktur einer lgt. Bezeichnung: Zu einer Folge X = x 1, x 2,..., x m bezeichnen wir für i = 0, 1,..., m die nach i Gliedern abgebrochene Teilfolge X i = x 1, x 2,..., x i als i-ten Präfix von X. Satz 11.1 Ist die Folge Z = z 1,, z 2,..., z k eine lgt von X = x 1, x 2,..., x m und Y = y 1, y 2,..., y n, so gilt: (a) Aus x m = y n folgt z k = x m = y n und Z k 1 ist lgt von X m 1 und Y n 1. (b) Ist x m y n, so folgt aus z k x m dass Z lgt von X m 1 und Y ist. (c) Ist x m y n, so folgt aus z k y m dass Z lgt von X und Y n 1 ist Längste gemeinsame Teilfolge TU Bergakademie Freiberg, WS 2005/06
19 Algorithmen und Datenstrukturen 297 Fazit: Eine lgt zweier Folgen enthält (als Präfix) eine lgt von Präfixen dieser beiden Folgen. Zwei Fälle: ein oder zwei Teilprobleme x m = y n : hier ist eine lgt von X m 1 und Y n 1 zu bestimmen; Anfügen von x m an diese lgt liefert lgt von X, Y. x m y n : bestimme lgt von X, Y n 1 und lgt von X m 1, Y. Die längere von beiden ist eine lgt von X, Y. Da alle möglichen Fälle betrachtet wissen wir: eine dieser Teillösungen muß in lgt von X, Y vorkommen Längste gemeinsame Teilfolge TU Bergakademie Freiberg, WS 2005/06
20 Algorithmen und Datenstrukturen Rekursive Formulierung Bezeichnet c[i, j] die Länge der lgt von X i und Y j, so gilt es, c[m, n] zu bestimmen. Rekursive Formulierung: c[i, j] = 0 falls i = 0 oder j = 0, c[i 1, j 1] + 1 falls i, j > 0 und x i = y j, max{c[i 1, j], c[i, j 1]} falls i, j > 0 und x i y j. Der hierdurch nahegelegte rekursive Algorithmus zur Bestimmung der Länge einer lgt zweier Folgen besitzt wieder exponentielle Laufzeit. Da es aber nur Θ(mn) Teilprobleme gibt, fürt dynamisches Programmieren zu einem schnelleren Algorithmus. Die Werte c[i, j] werden einmal berechnet und in einer Tabelle der Größe (m + 1) (n + 1) gespeichert Längste gemeinsame Teilfolge TU Bergakademie Freiberg, WS 2005/06
21 Algorithmen und Datenstrukturen 299 LCS-LENGTH(X, Y ) 1 m length[x] 2 n length[y ] 3 for i 1 to m 4 do c[i, 0] 0 5 for j 1 to n 6 do c[0, j] 0 7 for i 1 to m 8 do for j 1 to n 9 do if x i = y j 10 then c[i, j] c[i 1, j 1] + 1; b[i, j] 11 else if c[i 1, j] c[i, j 1] 12 then c[i, j] c[i 1, j]; b[i, j] 13 else c[i, j] c[i, j 1]; b[i, j] 14 return c, b 11.2 Längste gemeinsame Teilfolge TU Bergakademie Freiberg, WS 2005/06
22 Algorithmen und Datenstrukturen 300 Rekonstruktion einer Optimallösung Hierzu wird die zweite in LCS-LENGTH erzeugte Tabelle b verwendet. Bei b[m, n] beginnen. b[i, j] enthält den Tabelleneintrag des Teilproblems, welches zur Bestimmung der lgt von X i und Y j verwendet wurde. Wann immer ein auftritt, heißt dies x i = y j ist Element der lgt. PRINT-LCS(b, X, i, j) 1 if i = 0 oder j = 0 2 then return 3 if b[i, j] = 4 then PRINT-LCS(b, X, i 1, j) 5 Drucke x i 6 elseif b[i, j] = 7 then PRINT-LCS(b, X, i 1, j) 8 else PRINT-LCS(b, X, i, j 1) Laufzeit: O(m + n) Längste gemeinsame Teilfolge TU Bergakademie Freiberg, WS 2005/06
23 Algorithmen und Datenstrukturen Elemente des dynamischen Programmierens Die Haupmerkmale dieser Entwurfsstrategie sollen hier noch einmal herausgestellt werden Elemente des dynamischen Programmierens TU Bergakademie Freiberg, WS 2005/06
24 Algorithmen und Datenstrukturen Optimale Substruktur Zeige: die Lösung eines Teilproblems besteht aus einer Auswahl, durch die sich ein oder mehrere weitere Teilprobleme ergeben. Annahme: optimale Auswahl sei bekannt (zunächst hypothetisch) Bestimme damit die resultierenden Teilprobleme und charakterisiere deren Struktur. Zeige: die Teillösungen der optimalen Lösung müssen selbst wieder optimal sein. Oft funktioniert ein Cut-and-Paste -Beweis: Annahme: eine der Teillösungen nicht optimal. Entferne diese Teillösung (cut). Ersetze sie durch eine optimale Teillösung (paste). Leite daraus eine bessere Lösung des ursprünglichen Problems und damit einen Widerspruch her Elemente des dynamischen Programmierens TU Bergakademie Freiberg, WS 2005/06
25 Algorithmen und Datenstrukturen 303 Optimale Substruktur variiert von Problem zu Problem. 1. Anzahl Teilprobleme erforderlich für eine optimale Lösung 2. Anzahl Wahlmöglichkeiten bei der Weiterverfolgung von Teilproblemen Fertigungsstraße 1 Teilproblem 2 Wahlmöglichkeiten (für S i,j zwischen S 1,j 1 und S 2,j 1. Längste gemeinsame Teilfolge 1 Teilproblem Entweder 1 Wahlmöglichkeit falls x i = y j : lgt von X i 1, Y j 1 2 Wahlmöglichkeiten falls x i y j : zwischen lgt von X i 1,Y und lgt von X, Y j Elemente des dynamischen Programmierens TU Bergakademie Freiberg, WS 2005/06
26 Algorithmen und Datenstrukturen 304 Grob: Laufzeit ergibt sich aus (# Teilprobleme insgesamt) (# Wahlmöglichkeiten ). Fertigungsstraße: Θ(n) Teilprobleme, 2 Wahlmöglichkeiten, Laufzeit Θ(n). Längste gemeinsame Teilfolge: Θ(mn) Teilprobleme, 2 Wahlmöglichkeiten, Laufzeit Θ(mn) Elemente des dynamischen Programmierens TU Bergakademie Freiberg, WS 2005/06
27 Algorithmen und Datenstrukturen 305 Beim dynamischen Programmieren wird die optimale Substruktur in einer Bottom-Up -Vorgehensweise ausgenutzt. Zuerst wird eine Optimallösung von Teilproblemen bestimmt Danach Auswahl einer der optimalen Teillösungen zur Konstruktion einer Lösung der ursprünglichen Problems. Im Gegensatz hierzu gehen die im nächsten Kapitel zu behandelnden Greedy-Algorithmen in Top-Down -Manier vor: Zuerst Auswahl einer vielversprechenden Alternative Danach Lösung der resultierenden Teilprobleme 11.3 Elemente des dynamischen Programmierens TU Bergakademie Freiberg, WS 2005/06
28 Algorithmen und Datenstrukturen 306 Nicht jedes Problem besitzt die optimale Substruktureigenschaft. Wir betrachten hierzu zwei ähnlich anmutende Probleme. Gegeben sei ein ungewichteter gerichteter Graph G = (V, E) und gesucht seien spezielle Wege (Folgen adjazenter Knoten). Kürzester Weg: Bestimme einen Weg u v mit minimaler Kantenzahl. Dieser Muß einfach sein (ohne Zyklen), da andernfalls durch Entfernen der Zyklen kürzere Wege entstünden. Längster einfacher Weg: Bestimme einfachen Weg u v mit maximaler Kantenzahl. (Ohne Forderung der Einfachheit könnte man beliebig lange Wege zurch Hinzunahme von Zyklen erzeugen.) 11.3 Elemente des dynamischen Programmierens TU Bergakademie Freiberg, WS 2005/06
29 Algorithmen und Datenstrukturen 307 Das Problem des kürzesten Weges besitzt die optimale Substruktureigenschaft: Sei p der kürzeste Weg u v. Sei w ein beliebiger Knoten längs p. Sei p 1 der Teilweg u w. Dann ist p 1 ein kürzester Weg u w. Beweis: Gäbe es einen kürzeren Weg p 1: u w, so erhielte man durch Ersetzen von p 1 durch p 1 einen Weg u p 1 w p 2 v mit weniger Kanten als p. Wir können also einen kürzesten Weg u v bestimmen, indem wir zu allen Zwischenknoten w kürzeste Wege u w und w v bestimmen Elemente des dynamischen Programmierens TU Bergakademie Freiberg, WS 2005/06
30 Algorithmen und Datenstrukturen 308 Das Problem des längsten Weges besitzt die optimale Substruktureigenschaft nicht [Beispiel] 11.3 Elemente des dynamischen Programmierens TU Bergakademie Freiberg, WS 2005/06
31 Algorithmen und Datenstrukturen Überlappende Teilprobleme Diese treten dann auf, wenn ein rekursiver Algorithmus immer wieder dieselben Teilprobleme aufsucht. Gute divide-and-conquer Algorithmen erzeugen auf jeder Rekursionsstufe neue Teilprobleme. Beispiel: Merge-Sort. Im Fertigungsstraßen-Beispiel: rekursive Lösung verwendet 2 n j Mal f i [j] (j 1,..., n). Der Tabellenalgorithmus reduziert den Aufwand von exponentiell zu linear. Alternativer Ansatz: Memoisierung. Top-Down Variante mit der Effizienz von dynamischem Programmieren. Verwendet den (eigentlich naiven) Rekursiven Ansatz, merkt sich aber Lösungen zu bereits behandelten Teilproblemen Elemente des dynamischen Programmierens TU Bergakademie Freiberg, WS 2005/06
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
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen Lerneinheit : Dynamisches Programmieren Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester.. Einleitung Diese Lerneinheit widmet sich einer
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
MehrADS: Algorithmen und Datenstrukturen 2
ADS: Algorithmen und Datenstrukturen 2 Teil 6 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 16. Mai 2018 [Letzte Aktualisierung: 18/05/2018,
MehrRandomisierte Algorithmen
Randomisierte Algorithmen Randomisierte Algorithmen 5. Zwei spieltheoretische Aspekte Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2015/2016 1 / 36 Überblick
MehrGraphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.
Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 14. November 2007 1 / 22 2 / 22 Gliederung eulersche und semi-eulersche Graphen Charakterisierung eulerscher Graphen Berechnung eines
MehrADS: Algorithmen und Datenstrukturen 2
ADS: Algorithmen und Datenstrukturen 2 Teil 4 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 24. April 2019 [Letzte Aktualisierung: 24/04/2019,
MehrLernmodul 7 Algorithmus von Dijkstra
Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer
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
MehrAlgorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8
ETH Zürich Institut für Theoretische Informatik Prof. Dr. Angelika Steger Florian Meier, Ralph Keusch HS 2017 Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 Lösungsvorschlag zu Aufgabe 1
MehrDas Problem des Handlungsreisenden
Seite 1 Das Problem des Handlungsreisenden Abbildung 1: Alle möglichen Rundreisen für 4 Städte Das TSP-Problem tritt in der Praxis in vielen Anwendungen als Teilproblem auf. Hierzu gehören z.b. Optimierungsprobleme
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Lerneinheit 3: Greedy Algorithmen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 2016 10.5.2016 Einleitung Einleitung Diese Lerneinheit
Mehr3.3 Optimale binäre Suchbäume
3.3 Optimale binäre Suchbäume Problem 3.3.1. Sei S eine Menge von Schlüsseln aus einem endlichen, linear geordneten Universum U, S = {a 1,,...,a n } U und S = n N. Wir wollen S in einem binären Suchbaum
Mehr19. Dynamic Programming I
495 19. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixkettenmultiplikation, Matrixmultiplikation nach Strassen [Ottman/Widmayer, Kap.
Mehr19. Dynamic Programming I
495 19. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixkettenmultiplikation, Matrixmultiplikation nach Strassen [Ottman/Widmayer, Kap.
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
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
MehrLösungen von Übungsblatt 12
Lösungen von Übungsblatt 12 Algorithmen (WS 2018, Ulrike von Luxburg) Lösungen zu Aufgabe 1 Eine (kanonische) Möglichkeit, die Branch-Schritte auszuführen ergibt sich wie folgt: Das ursprüngliche Problem
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2012/13 25. Vorlesung Dynamisches Programmieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Klausurvorbereitung Tipp: Schreiben Sie sich alle Fragen
Mehr21. Greedy Algorithmen. Aktivitätenauswahl, Fractional Knapsack Problem, Huffman Coding Cormen et al, Kap. 16.1, 16.3
581 21. Greedy Algorithmen Aktivitätenauswahl, Fractional Knapsack Problem, Huffman Coding Cormen et al, Kap. 16.1, 16.3 Aktivitäten Auswahl 582 Koordination von Aktivitäten, die gemeinsame Resource exklusiv
MehrBerechnung von Abständen
3. Kreis- und Wegeprobleme Abstände in Graphen Abstände in Graphen Definition 3.4. Es sei G = (V, E) ein Graph. Der Abstand d(v, w) zweier Knoten v, w V ist die minimale Länge eines Weges von v nach w.
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen Lerneinheit : Kürzeste Pfade in Graphen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 016.6.01 Einleitung Diese Lerneinheit beschäftigt
MehrÜbersicht. Aktivitäten-Auswahl-Problem. Greedy Algorithmen. Aktivitäten-Auswahl-Problem. Aktivitäten-Auswahl-Problem. Datenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Übersicht Greedy Algorithmen Einführung Aktivitäten-Auswahl-Problem Huffman Codierung Matthias Zwicker Universität Bern Frühling 2009 2 Greedy Algorithmen Entwurfsstrategie
Mehr0 i = n w n > k v n. V (i +1,k), max v i + V (i +1,k w i )
Sei V(i,k) der maximal mögliche Wert für die egenstände i, i+1,, n bei gegebener max. Kapazität k V(i,k) kann dann für i n geschrieben werden als i = n w n > k v n V (i, k) = V (i +1,k) V (i +1,k), max
MehrRückblick: divide and conquer
Rückblick: divide and conquer pi = (xi,yi) } p å } ' }d(p,p) p ''=min(, ') F 0/0 p./95 weitere Algorithmentechniken Greedy-Algorithmen dynamische Programmierung Backtracking branch and bound Heuristiken
MehrAlgorithmen I. Tutorium Sitzung. Dennis Felsing
Algorithmen I Tutorium 1-12. Sitzung Dennis Felsing dennis.felsing@student.kit.edu www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-07-04 Überblick 1 Dynamische Programmierung Idee Längste gemeinsame Teilfolge
MehrAlgorithmen und Komplexität
Algorithmen und Komplexität Dynamische Programmierung Markus Ullrich Norbert Baum Fachbereich Informatik - IIb07 Hochschule Zittau/Görlitz 28. Mai 2009 1 / 29 Wie sieht es mit langen Ketten aus? A 1 A
MehrDiskrete Strukturen Kapitel 5: Algebraische Strukturen (Gruppen)
WS 2015/16 Diskrete Strukturen Kapitel 5: Algebraische Strukturen (Gruppen) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_15
Mehr19. Dynamic Programming I
502 19. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixkettenmultiplikation, Matrixmultiplikation nach Strassen [Ottman/Widmayer, Kap.
MehrTutoraufgabe 1 (Suchen in Graphen):
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS14 F. Corzilius, S. Schupp, T. Ströder Tutoraufgabe 1 (Suchen in Graphen): a) Geben Sie die Reihenfolge an, in der die Knoten besucht werden, wenn
Mehr6 Quicksort. die mittlere Laufzeit Θ(n log n) beträgt und. die in der asymptotischen Notation verborgenen Konstanten sehr klein sind.
Algorithmen und Datenstrukturen 132 6 Quicksort In diesem Abschnitt wird Quicksort, ein weiterer Sortieralgorithmus, vorgestellt. Trotz einer eher langsamen Worst-Case Laufzeit von Θ(n 2 ) ist Quicksort
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
MehrAlgorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016
Algorithmen und Datenstrukturen 2 Übung 1 Stefan Florian Palkovits, BSc 0926364 e0926364@student.tuwien.ac.at 12. Juni 2016 Aufgabe 1: Es existiert eine Reduktion von Problem A auf Problem B in O(n 3 +
MehrLösungen zum Aufgabenblatt Nr. 1: Konstruktion der reellen Zahlen
Lösungen zum Aufgabenblatt Nr. 1: Konstruktion der reellen Zahlen Aufgabe 1: Es sei D die Menge aller rationalen Dedekind-Mengen, also D := { M 2 Q M is Dedekind-Menge }. Auf der Menge D definieren wir
MehrAlgorithmik Übung 3 Prof. Dr. Heiner Klocke. Sortierfolge nach Werten: 7 8 9 10 Bube Dame König As nach Farben: Karo ( ) Herz ( ) Piek ( ) Kreuz ( )
Algorithmi Übung 3 Prof. Dr. Heiner Kloce Winter 11/12 16.10.2011 Divide&Conquer- Algorithmen lassen sich gut als reursive Algorithmen darstellen. Das Prinzip eines reursiven Algorithmus beruht darauf,
MehrEin sortiertes Feld kann in O(log n) durchsucht werden, z.b. mit Binärsuche. Der Algorithmus 1 gibt den Pseudocode der binären Suche an.
2.5 Suchen Eine Menge S will nach einem Element durchsucht werden. Die Menge S ist statisch und S = n. S ist Teilmenge eines Universums auf dem eine lineare Ordnung definiert ist und soll so gespeichert
MehrÜbungen zur Vorlesung Datenstrukturen und Algorithmen SS 07 Beispiellösung Blatt 5
Kamil Swierkot Paderborn, den 01.06.2007 Aufgabe 17 Übungen zur Vorlesung Datenstrukturen und Algorithmen SS 07 Beispiellösung Blatt 5 Bei der Optimierungsvariante des SubSetSum Problems wird bei der Eingabe
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Kürzeste Wege Maike Buchin 4. und 6.7.2017 Einführung Motivation: Bestimmung von kürzesten Wegen ist in vielen Anwendungen, z.b. Routenplanung, ein wichtiges Problem. Allgemeine
MehrEin Dieb raubt einen Laden aus; um möglichst flexibel zu sein, hat er für die Beute nur einen Rucksack dabei
7/7/ Das Rucksack-Problem Englisch: Knapsack Problem Das Problem: "Die Qual der Wahl" Ein Dieb raubt einen Laden aus; um möglichst flexibel zu sein, hat er für die Beute nur einen Rucksack dabei Im Ladens
MehrStand der Vorlesung Komplexität von Algorithmen (Kapitel 3)
Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Technische Universität München Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften
Mehr2. Vorlesung. Die Theorie der schwarz-weissen Ketten.
2. Vorlesung. Die Theorie der schwarz-weissen Ketten. Die Theorie der schwarzen Steinchen haben wir jetzt halbwegs vertanden. Statt mit schwarzen Steinen wie die Griechen, wollen wir jetzt mit schwarzen
MehrRekursionsbäume Aufstellen eines Baumes dessen Knoten die Laufzeit auf jeder Rekursionsstufe darstellen und Aufsummieren
Algorithmen und Datenstrukturen 74 3 Rekursionen Vor allem bei rekursiven Algorithmen besitzt die Laufzeitfunktion eine naheliegende rekursive Formulierung, d.h. die Laufzeitfunktion ist konstant für den
MehrFormulierung mittels Dynamischer Programmierung
Formulierung mittels Dynamischer Programmierung Beobachtung: die Anzahl der Teilprobleme A i j n mit i j n ist nur Folgerung: der naïve rekursive Algo berechnet viele Teilprobleme mehrfach! Idee: Bottom-up-Berechnung
MehrBeweis: Färbe jede Kante zufällig und unabhängig mit Ws 1 2. Ereignis A i : i-te Clique K (i), i = 1,..., ( n K (i)
Die Probabilistische Methode Beobachtung: Besitzt ein Ereignis Ws > 0, so muss es existieren! Notation: Sei K n der komplette Graph mit n Knoten und ( n 2) Kanten. Satz Falls 2 (k 2) 1 > ( n k), existiert
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
MehrDynamische Programmierung II
Vorlesungstermin 10: Dynamische Programmierung II Markus Püschel David Steurer talks2.dsteurer.org/dp2.pdf Algorithmen und Datenstrukturen, Herbstsemester 2018, ETH Zürich Plan für heute Dynamische Programmierung
MehrLineare Algebra II 5. Übungsblatt
Lineare Algebra II Übungsblatt Fachbereich Mathematik SS Prof Dr Kollross / Mai Susanne Kürsten Tristan Alex Gruppenübung Aufgabe G (Algebraisch abgeschlossener Körper) Ein Körper heißt algebraisch abgeschlossen,
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
Mehr11.1 Grundlagen - Denitionen
11 Binärbäume 11.1 Grundlagen - Denitionen Denition: Ein Baum ist eine Menge, die durch eine sog. Nachfolgerrelation strukturiert ist. In einem Baum gilt: (I) (II) 1 Knoten w ohne VATER(w), das ist die
Mehr4. Kreis- und Wegeprobleme Abstände in Graphen
4. Kreis- und Wegeprobleme Abstände in Graphen Abstände in Graphen Definition 4.4. Es sei G = (V,E) ein Graph. Der Abstand d(v,w) zweier Knoten v,w V ist die minimale Länge eines Weges von v nach w. Falls
MehrDynamische Programmierung. Problemlösungsstrategie der Informatik
als Problemlösungsstrategie der Informatik und ihre Anwedung in der Diskreten Mathematik und Graphentheorie Fabian Cordt Enisa Metovic Wissenschaftliche Arbeiten und Präsentationen, WS 2010/2011 Gliederung
Mehr12. Rekursion Grundlagen der Programmierung 1 (Java)
12. Rekursion Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 24. Januar 2006 Einordnung im Kontext der Vorlesung
MehrKürzeste-Wege-Algorithmen und Datenstrukturen
Kürzeste-Wege-Algorithmen und Datenstrukturen Institut für Informatik Universität zu Köln SS 2009 Teil 1 Inhaltsverzeichnis 1 Kürzeste Wege 2 1.1 Voraussetzungen................................ 2 1.2
MehrSatz 90 Sei A = (Q, Σ, δ, q 0, F ) ein DFA. Der Zeitaufwand des obigen Minimalisierungsalgorithmus ist O( Q 2 Σ ).
Satz 90 Sei A = (Q, Σ, δ, q 0, F ) ein DFA. Der Zeitaufwand des obigen Minimalisierungsalgorithmus ist O( Q 2 Σ ). Beweis: Für jedes a Σ muss jede Position in der Tabelle nur konstant oft besucht werden.
MehrDiskrete Mathematik 1 WS 2008/09
Ruhr-Universität Bochum Lehrstuhl für Kryptologie und IT-Sicherheit Prof. Dr. Alexander May M. Ritzenhofen, M. Mansour Al Sawadi, A. Meurer Lösungsblatt zur Vorlesung Diskrete Mathematik 1 WS 008/09 Blatt
MehrAlgorithmen II Vorlesung am
Algorithmen II Vorlesung am 07..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Übersicht. 1 Einführung. 2 Suchen und Sortieren. 3 Graphalgorithmen. 4 Algorithmische Geometrie. 5 Textalgorithmen. 6 Paradigmen
Übersicht 1 Einführung 2 Suchen und Sortieren 3 Graphalgorithmen 4 Algorithmische Geometrie 5 6 Paradigmen Übersicht 5 Editdistanz (Folie 446, Seite 83 im Skript) Eingabe: Zwei Strings v und w Frage: Kommt
MehrGliederung. Algorithmen und Datenstrukturen II. Problem: Längste gemeinsame Teilsequenz. Problem: Längste gemeinsame Teilsequenz
Gliederung Algorithmen und Datenstrukturen II Algorithmen zur Textverarbeitung II D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg
Mehr( )= c+t(n-1) n>1. Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)
Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften Ziel: Methoden kennen
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
MehrEinführung in die Objektorientierte Programmierung Vorlesung 17: Dynamische Programmierung. Sebastian Küpper
Einführung in die Objektorientierte Programmierung Vorlesung 17: Dynamische Programmierung Sebastian Küpper Redundanz Rekursiver Lösungen Rekursion kann elegante Bescheibungen zur Problemlösung ergeben
MehrAlgorithmen I - Tutorium 28 Nr. 12
Algorithmen I - Tutorium 28 Nr. 12 20.07.2017: Spaß mit Dynamischer und Linearer Programmierung Marc Leinweber marc.leinweber@student.kit.edu INSTITUT FÜR THEORETISCHE INFORMATIK (ITI), PROF. DR. JÖRN
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:
Mehr8 Konvergenzkriterien und Häufungswerte von Folgen in R
8 Konvergenzkriterien und Häufungswerte von Folgen in R 8.1 Konvergenz monotoner Folgen 8.2 Die Zahl e 8.3 Existenz monotoner Teilfolgen 8.4 Auswahlprinzip von Bolzano-Weierstraß 8.5 Konvergenzkriterium
MehrDynamische Programmierung
Dynamische Programmierung Julian Brost 11. Juni 2013 Julian Brost Dynamische Programmierung 11. Juni 2013 1 / 39 Gliederung 1 Was ist dynamische Programmierung? Top-Down-DP Bottom-Up-DP 2 Matrix-Kettenmultiplikation
MehrAlgorithmen II Vorlesung am
Algorithmen II Vorlesung am 17.01.013 Parametrisierte Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales
Mehr19. Dynamic Programming I
Fibonacci Zahlen 9. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixettenmultipliation, Matrixmultipliation nach Strassen [Ottman/Widmayer,
MehrDynamische Programmierung
Dynamische Programmierung Claudia Gerhold 9.5.6 Claudia Gerhold Dynamische Programmierung 9.5.6 / 4 Agenda Einführung Dynamische Programmierung Top-Down Ansatz mit Memoization Bottom-Up Ansatz 3 Anwendungsbeispiele
Mehr3.2. Divide-and-Conquer-Methoden
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE 3.2. Divide-and-Conquer-Methoden Divide-and-Conquer-Methoden Einfache Sortieralgorithmen reduzieren die Größe des noch
MehrGraphentheorie. Kürzeste Wege. Kürzeste Wege. Kürzeste Wege. Rainer Schrader. 25. Oktober 2007
Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 25. Oktober 2007 1 / 20 2 / 20 Wir werden Optimierungsprobleme vom folgenden Typ betrachten: gegeben eine Menge X und eine Funktion
MehrKurs 1663 Datenstrukturen" Musterlösungen zur Klausur vom Seite 1. Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15.
Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur vom 15.08.98 Seite 1 Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15. August 1998 Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur
MehrEntscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?
Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum
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
MehrRechenregeln für Summen
Rechenregeln für Summen Im Umgang mit Summen sind gewisse Regeln zu beachten. 1 Summe gleicher Summanden Betrachten wir folgende Summe: x Hier enthält x keinen Summationsindex, d.h. es wird x einfach n-mal
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
MehrGraphen und Bäume. A.1 Graphen
Algorithmen und Datenstrukturen 96 A Graphen und Bäume A.1 Graphen Ein gerichteter Graph (auch Digraph) G ist ein Paar (V, E), wobei V eine endliche Menge und E eine Relation auf V ist, d.h. E V V. V heißt
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 05 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute Einführung Grundlagen von Algorithmen Grundlagen
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
MehrDatenstrukturen und Algorithmen (SS 2013)
Datenstrukturen und Algorithmen (SS 2013) Übungsblatt 10 Abgabe: Montag, 08.07.2013, 14:00 Uhr Die Übungen sollen in Gruppen von zwei bis drei Personen bearbeitet werden. Schreiben Sie die Namen jedes
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
MehrDynamisches Programmieren - Problemstruktur
Dynamisches Programmieren - Problemstruktur Optimale Substruktur: Optimale Lösung enthält optimale Lösungen von Teilproblemen. Bsp.: Kürzester Weg im Graphen, LCS (s. etwa Folie 42 der letzten Vorlesung)
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
Mehrb liegt zwischen a und c.
2 DIE ANORDNUNGSAXIOME 5 (2.4) a, b, c R : (a < b 0 < c) ac < bc Monotoniegesetz der Multiplikation Bezeichnungen a > b : b < a (> wird gelesen: größer als ) a b : a < b oder a = b a b : a > b oder a =
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 07 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Programm heute Einführung Grundlagen von Algorithmen
Mehr1 Einführung. 2 Grundlagen von Algorithmen. 3 Grundlagen von Datenstrukturen. 4 Grundlagen der Korrektheit von Algorithmen
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 0 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Einführung Grundlagen von Algorithmen Grundlagen
MehrDatenstrukturen & Algorithmen Lösungen zu Blatt 11 FS 14
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 14. Mai
MehrFlüsse in Netzwerken
Skript zum Seminar Flüsse in Netzwerken WS 2008/09 David Meier Inhaltsverzeichnis 1 Einführende Definitionen und Beispiele 3 2 Schnitte in Flussnetzwerken 12 2.1 Maximaler s t Fluss..........................
MehrÜbung zur Vorlesung Diskrete Mathematik (MAT.107) Blatt Beispiellösungen Abgabefrist:
Svenja Hüning, Michael Kerber, Hannah Schreiber WS 2016/2017 Übung zur Vorlesung Diskrete Mathematik (MAT.107) Blatt Beispiellösungen Abgabefrist: Hinweise: Dieses Blatt präsentiert Beispiellösungen zu
MehrKapitel 2. Weitere Beispiele Effizienter Algorithmen
Kapitel 2 Weitere Beispiele Effizienter Algorithmen Sequentielle Suche Gegeben: Array a[1..n] Suche in a nach Element x Ohne weitere Zusatzinformationen: Sequentielle Suche a[1] a[2] a[3] Laufzeit: n Schritte
MehrAlgorithmen & Komplexität
Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Kürzeste Pfade Problem Gegeben Netzwerk: Graph G = (V, E), Gewichtsfunktion w: E N Zwei Knoten: s, t Kantenzug/Weg
MehrT (n) = max. g(x)=n t(n) S(n) = max. g(x)=n s(n)
Beim Logarithmischen Kostenmaß wird, im Gegensatz zum EKM, die Stelligkeit der Werte berücksichtigt und mit in die Laufzeit eingerechnet. Beispiel: R1 := R2 (R3), wobei R2 den Wert 5, R3 den Wert 10 und
MehrApproximationsalgorithmen
Effiziente Algorithmen Lösen NP-vollständiger Probleme 320 Approximationsalgorithmen In polynomieller Zeit lässen sich nicht exakte Lösungen von NP-harten Problemen berechnen. Approximationsalgorithmen
MehrDas Briefträgerproblem
Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................
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
MehrLösungsvorschläge zur Hauptklausur Datenstrukturen
Lösungsvorschläge zur Hauptklausur 9 9 166211663 Datenstrukturen 9. August 2003 Seite 2 Lösungsvorschlage zur Klausur vom 9.08.2003 Kurs 166211663,,Datenstrukturen" Aufgabe 1 Bei jedem rekursiven Aufruf
MehrTechnische Universität München Zentrum Mathematik. Optimierung 2, WS 2008/09 Übungsblatt 12
Technische Universität München Zentrum Mathematik Prof. Dr. P. Gritzmann, Dipl.-Inf. Dipl.-Math. S. Borgwardt, Dr. M. Ritter Optimierung 2, WS 2008/09 Übungsblatt 12 Aufgabe 12.1 Betrachten Sie die folgenden
MehrÜbung zur Vorlesung Diskrete Strukturen I
Technische Universität München WS 00/0 Institut für Informatik Aufgabenblatt 10 Prof. Dr. J. Csirik 7. Januar 00 randt & Stein Übung zur Vorlesung Diskrete Strukturen I Abgabetermin: Tutorübungen am 16.
MehrSandro Pirkwieser, (Bin Hu, Jakob Puchinger) SS 2010
Lösungsverfahren für Ganzzahlige Optimierung Sandro Pirkwieser, (Bin Hu, Jakob Puchinger) Fortgeschrittene Algorithmen und Datenstrukturen Arbeitsbereich für Algorithmen und Datenstrukturen Institut für
Mehr