11 Dynamisches Programmieren

Größe: px
Ab Seite anzeigen:

Download "11 Dynamisches Programmieren"

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 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

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen Lerneinheit : Dynamisches Programmieren Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester.. Einleitung Diese Lerneinheit widmet sich einer

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

ADS: Algorithmen und Datenstrukturen 2

ADS: 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,

Mehr

Randomisierte Algorithmen

Randomisierte 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

Mehr

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

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

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: 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,

Mehr

Lernmodul 7 Algorithmus von Dijkstra

Lernmodul 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

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

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

Algorithmen 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

Mehr

Das Problem des Handlungsreisenden

Das 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

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen 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

Mehr

3.3 Optimale binäre Suchbäume

3.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

Mehr

19. Dynamic Programming I

19. 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.

Mehr

19. Dynamic Programming I

19. 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.

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

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

Lösungen von Übungsblatt 12

Lö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

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

21. Greedy Algorithmen. Aktivitätenauswahl, Fractional Knapsack Problem, Huffman Coding Cormen et al, Kap. 16.1, 16.3

21. 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

Mehr

Berechnung von Abständen

Berechnung 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.

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen 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

Ü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

Mehr

0 i = n w n > k v n. V (i +1,k), max v i + V (i +1,k w i )

0 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

Mehr

Rückblick: divide and conquer

Rü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

Mehr

Algorithmen I. Tutorium Sitzung. Dennis Felsing

Algorithmen 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

Mehr

Algorithmen und Komplexität

Algorithmen 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

Mehr

Diskrete Strukturen Kapitel 5: Algebraische Strukturen (Gruppen)

Diskrete 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

Mehr

19. Dynamic Programming I

19. 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.

Mehr

Tutoraufgabe 1 (Suchen in Graphen):

Tutoraufgabe 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

Mehr

6 Quicksort. die mittlere Laufzeit Θ(n log n) beträgt und. die in der asymptotischen Notation verborgenen Konstanten sehr klein sind.

6 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

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

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016

Algorithmen 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 +

Mehr

Lösungen zum Aufgabenblatt Nr. 1: Konstruktion der reellen Zahlen

Lö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

Mehr

Algorithmik Übung 3 Prof. Dr. Heiner Klocke. Sortierfolge nach Werten: 7 8 9 10 Bube Dame König As nach Farben: Karo ( ) Herz ( ) Piek ( ) Kreuz ( )

Algorithmik Ü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,

Mehr

Ein 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.

Ein 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

Ü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

Mehr

Vorlesung Datenstrukturen

Vorlesung 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

Mehr

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

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

Mehr

Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)

Stand 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

Mehr

2. Vorlesung. Die Theorie der schwarz-weissen Ketten.

2. 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

Mehr

Rekursionsbäume Aufstellen eines Baumes dessen Knoten die Laufzeit auf jeder Rekursionsstufe darstellen und Aufsummieren

Rekursionsbä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

Mehr

Formulierung mittels Dynamischer Programmierung

Formulierung 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

Mehr

Beweis: 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)

Beweis: 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

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

Dynamische Programmierung II

Dynamische 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

Mehr

Lineare Algebra II 5. Übungsblatt

Lineare 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,

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

11.1 Grundlagen - Denitionen

11.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

Mehr

4. Kreis- und Wegeprobleme Abstände in Graphen

4. 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

Mehr

Dynamische Programmierung. Problemlösungsstrategie der Informatik

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

Mehr

12. Rekursion Grundlagen der Programmierung 1 (Java)

12. 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

Mehr

Kürzeste-Wege-Algorithmen und Datenstrukturen

Kü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

Mehr

Satz 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 Σ ). 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.

Mehr

Diskrete Mathematik 1 WS 2008/09

Diskrete 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

Mehr

Algorithmen II Vorlesung am

Algorithmen 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 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

Mehr

Gliederung. Algorithmen und Datenstrukturen II. Problem: Längste gemeinsame Teilsequenz. Problem: Längste gemeinsame Teilsequenz

Gliederung. 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)

( )= 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

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

Einfü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 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

Mehr

Algorithmen I - Tutorium 28 Nr. 12

Algorithmen 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

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

8 Konvergenzkriterien und Häufungswerte von Folgen in R

8 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

Mehr

Dynamische Programmierung

Dynamische 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

Mehr

Algorithmen II Vorlesung am

Algorithmen 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

Mehr

19. Dynamic Programming I

19. 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,

Mehr

Dynamische Programmierung

Dynamische 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

Mehr

3.2. Divide-and-Conquer-Methoden

3.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

Mehr

Graphentheorie. Kürzeste Wege. Kürzeste Wege. Kürzeste Wege. Rainer Schrader. 25. Oktober 2007

Graphentheorie. 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

Mehr

Kurs 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 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

Mehr

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

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

Mehr

Ü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

Rechenregeln für Summen

Rechenregeln 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

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

Graphen und Bäume. A.1 Graphen

Graphen 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

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen 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

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

Datenstrukturen und Algorithmen (SS 2013)

Datenstrukturen 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

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

Dynamisches Programmieren - Problemstruktur

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

Mehr

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

b liegt zwischen a und c.

b 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 =

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen 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

Mehr

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

1 Einführung. 2 Grundlagen von Algorithmen. 3 Grundlagen von Datenstrukturen. 4 Grundlagen der Korrektheit von Algorithmen Programm heute 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

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 11 FS 14

Datenstrukturen & 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

Mehr

Flüsse in Netzwerken

Flü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:

Ü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

Mehr

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

Kapitel 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

Mehr

Algorithmen & Komplexität

Algorithmen & 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

Mehr

T (n) = max. g(x)=n t(n) S(n) = max. g(x)=n s(n)

T (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

Mehr

Approximationsalgorithmen

Approximationsalgorithmen 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

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

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

Lösungsvorschläge zur Hauptklausur Datenstrukturen

Lö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

Mehr

Technische Universität München Zentrum Mathematik. Optimierung 2, WS 2008/09 Übungsblatt 12

Technische 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

Ü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.

Mehr

Sandro Pirkwieser, (Bin Hu, Jakob Puchinger) SS 2010

Sandro 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