WS18 Algorithmen und Datenstrukturen 11. Kapitel Dynamische Programmierung

Größe: px
Ab Seite anzeigen:

Download "WS18 Algorithmen und Datenstrukturen 11. Kapitel Dynamische Programmierung"

Transkript

1 WS18 Algorithmen und Datenstrukturen 11. Kapitel Dynamische Programmierung Martin Dietzfelbinger Januar 2019 FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11

2 Kapitel 11: Dynamische Programmierung (DP) Algorithmenparadigma für Optimierungsprobleme. Typisch: Definiere (viele) Teilprobleme (einer Instanz) Identifiziere einfache Basisfälle Formuliere eine Version der Eigenschaft Substrukturen optimaler Strukturen sind optimal Finde Rekursionsgleichungen für Werte optimaler Lösungen: Bellman sche Optimalitätsgleichungen Berechne optimale Werte (und Strukturen) iterativ FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 1

3 11.1 Das All-Pairs-Shortest-Paths-Problem Zentrales Beispiel: Das APSP-Problem. Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G = (V, E, c) mit V = {1,..., n} und E {(v, w) 1 v, w n, v w}. c: E R {+ }: Gewichts-/Kosten-/Längenfunktion. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 2

4 Länge eines Kantenzugs p = (v = v 0, v 1,..., v r = w) ist c(p) = c(v s 1, v s ). 1 s r Gesucht: für alle (v, w), 1 v, w n: Kantenzug von v nach w mit minimalem c(p) ( kürzester Weg ). Hier: Algorithmus von Floyd-Warshall. Wir verlangen: Es darf keine Kreise mit negativem Gesamtgewicht geben: ( ) v = v 0, v 1,..., v r = v Kreis 1 s r c(v s 1, v s ) 0. Grund: Wenn es einen negativen Kreis von v nach v gibt, und irgendein Weg von v nach w existiert, dann gibt es Kantenzüge von v nach w mit beliebig stark negativer Länge die Frage nach einem kürzesten Weg ist sinnlos. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 3

5 Konsequenzen: (1) Wenn p Kantenzug von v nach w ist, dann existiert auch (einfacher) Weg p von v nach w mit c(p ) c(p). Grund: ((u,..., u)-segmente aus p herausschneiden, gegebenenfalls wiederholt. Hierdurch kann sich der Kantenzug nicht verlängern.) (2) Wenn es einen Kantenzug von v nach w gibt, dann auch einen mit minimaler Länge (einen kürzesten Weg ). Grund: Wegen (1) muss man nur (einfache) Wege (mit nicht mehr als n 1 Kanten) betrachten; davon gibt es nur endlich viele. Es kann aber mehrere kürzeste Wege von v nach w geben. (Wege und eventuell auch Kantenzüge mit Kreisen der Länge 0.) Zunächst: Suche Länge S(v, w) eines kürzesten Weges von v nach w, für alle v, w V. (, falls nicht existent.) Ausgabe: Matrix S = (S(v, w)) 1 v,w n. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 4

6 O. B. d. A.: E = V V {(v, v) v V } Nicht vorhandene Kanten (v, w) werden mit c(v, w) = repräsentiert. Erster Schritt: Identifiziere geeignete Teilprobleme. Gegeben ein k, 0 k n, betrachte Wege von v nach w, die unterwegs (also vom Start- und Endpunkt abgesehen) nur Knoten in {1,..., k} besuchen. k = 0: Kein Knoten darf unterwegs besucht werden; es handelt sich nur um die Kanten (v, w) mit c(v, w) <, oder um Wege (v, v) der Länge 0. k = 1: Es kommen nur Wege in Frage, die aus der Kante (v, w) bestehen oder aus den Kanten (v, 1) und (1, w). usw. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 5

7 S(v, w, k) := Länge eines kürzesten Weges von v nach w, der nur Zwischenknoten in {1,..., k} benutzt. ( =, falls kein solcher Weg existiert.) Beispiel: (Die nicht eingezeichneten Kanten haben Länge.) S(2,4,0) = S(2,4,1) = 5 S(2,4,2) = 5 monoton fallend S(2,4,3) = 2 FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 6

8 Bellman sche Optimalitätsgleichungen : Betrachte Weg p von v nach w; dabei seien die Zwischenknoten v 1,..., v l 1 aus {1,..., k}: v v 1 v 2 v l 1 w Angenommen, dieser Weg ist optimal. Der Knoten k kommt nur einmal oder gar nicht vor. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 7

9 1) Falls der Knoten k auf dem Weg nicht vorkommt, ist p für Zwischenknoten 1,..., k 1 optimal. 2) Falls der Knoten k auf p vorkommt, zerfällt p in zwei Teile v k k w }{{} Zwischenknoten k 1 }{{} Zwischenknoten k 1 die beide bezüglich der Zwischenknotenmenge {1,..., k 1} optimal sind (sonst könnte ein Teilweg durch einen billigeren ersetzt werden, Widerspruch zur Optimalität von p). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 8

10 Punkte 1) und 2) drücken aus, dass Substrukturen (Teilwege) einer optimalen Lösung (kürzester Weg) selbst wieder optimal sind, für ein anderes Teilproblem. Die Bellman schen Optimalitätsgleichungen für den Algorithmus von Floyd-Warshall lauten dann: S(v, w, k) = min{s(v, w, k 1), S(v, k, k 1) + S(k, w, k 1)}, für 1 v, w n, 1 k n. Basisfälle: S(v, v, 0) = 0. S(v, w, 0) = c(v, w), für v w. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 9

11 Wir beschreiben einen iterativen Algorithmus. Zur Aufbewahrung der Zwischenergebnisse benutzen wir ein Array S[1..n,1..n,0..n], das durch S[v,w,0] c(v, w), 1 v, w n, v w; S[v,v,0] 0, 1 v n initialisiert wird. Unser Algorithmus füllt das Array S gemäß wachsendem k aus: for k from 1 to n do for v from 1 to n do for w from 1 to n do S[v,w,k] min{s[v,w,k-1], S[v,k,k-1] + S[k,w,k-1]}. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 10

12 Korrektheit: Folgt aus der Vorüberlegung. Es werden genau die Werte S(v, w, k) gemäß den Bellman schen Optimalitätsgleichungen berechnet. Laufzeit: Drei geschachtelte Schleifen: Θ(n 3 ). Bei dieser simplen Implementierung wird noch Platz verschwendet, da für den k-ten Schleifendurchlauf offenbar nur die (k 1)-Komponenten des Arrays S benötigt werden. Man überlegt sich leicht, dass man mit zwei Matrizen auskommt, eine alte ((k 1)-Version) und eine neue (k-version), zwischen denen jeweils passend umzuschalten ist. Der Platzaufwand beträgt dann O(n 2 ), der Zeitbedarf O(n 3 ). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 11

13 Dieser Spezialfall des Ansatzes dynamische Programmierung lässt noch eine weitere Verbesserung zu. Es gilt ( ) S(v, k, k) = S(v, k, k 1) und S(k, w, k) = S(k, w, k 1), für 1 v, w, k n, da der Knoten k auf einem Weg von v nach k bzw. von k nach w nicht im Innern vorkommen kann. Man braucht dann kein altes und neues Array, und erhält mit einem zweidimensionalen Array S[1..n,1..n]: S[v,v] 0; S[v,w] c(v, w), für 1 v, w n, v w; for k from 1 to n do for v from 1 to n do for w from 1 to n do S[v,w] min{s[v,w], S[v,k] + S[k,w]}. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 12

14 Wollen nicht nur die Kosten des kürzesten Weges wissen, sondern auch zu gegebenen v, w diesen Weg konstruieren können. Hierfür: Hilfsarray I[1..n,1..n], in dem durch die Runden k = 0, 1,..., n hindurch für jedes Paar (v, w) die folgende Information gehalten wird: Was ist der Knoten mit der größten Nummer, der für die Konstruktion eines Weges von v nach w der Länge S(v, w, k) benötigt worden ist? Dies liefert den Floyd-Warshall-Algorithmus. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 13

15 Algorithmus Floyd-Warshall(C[1..n,1..n]) Eingabe: C[1..n,1..n]: Matrix der Kantenkosten/längen Ausgabe: S[1..n,1..n]: Kosten S(v, w) der kürzesten Wege I[1..n,1..n]: minimale max. Knoten auf kürzesten (v, w)-wegen (1) for v from 1 to n do (2) for w from 1 to n do (3) if v = w then S[v,w] 0; I[v,w] 0 (4) else S[v,w] C[v,w]; (5) if S[v,w] < then I[v,w] 0 else I[v,w] 1; (6) for k from 1 to n do (7) for v from 1 to n do (8) for w from 1 to n do (9) if S[v,k] + S[k,w] < S[v,w] then (10) S[v,w] S[v,k] + S[k,w]; I[v,w] k; (11) Ausgabe: S[1..n,1..n] und I[1..n,1..n]. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 14

16 Korrektheit: Es gilt folgende Schleifeninvariante: Nach dem Schleifendurchlauf k ist S[v, w] = S(v, w, k). (Beweis durch vollständige Induktion, unter Ausnutzung der Bellman- Gleichungen und von ( ).) Zudem: I[v, w] ist das kleinste l mit der Eigenschaft, dass es unter den kürzesten Wegen von v nach w über 1,..., k einen gibt, dessen maximaler Eintrag l ist. (Beweis durch Induktion über k.) Ein kürzester Weg von v nach w kann dann ausgehend von I[1..n,1..n] mit einer einfachen rekursiven Prozedur printpathinner gefunden werden. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 15

17 11.1.1a Algorithmus printpathinner(v, w) Global: I[1..n,1..n]: Matrix der maximalen inneren Knoten Eingabe: v, w V Ausgabe: über Printfunktion (1) if v w then (2) k I[v,w]; (3) if k > 0 then (4) printpathinner(u, k); print(k); printpathinner(k, w); b Algorithmus printpath(v, w) Global: I[1..n,1..n]: Matrix der maximalen inneren Knoten Eingabe: v, w V Ausgabe: über Printfunktion (1) if v = w (2) then print(v, Länge 0 ) (3) else if I[v,w] < 0 then print( kein Weg ) (4) else print(v); printpathinner(v, w); print(w); Übung: Man führe dies an einem Beispiel durch. Wieso ist die Ausgabe korrekt? FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 16

18 Satz Der Algorithmus von Floyd-Warshall löst das All-Pairs- Shortest-Paths-Problem in Zeit O(n 3 ) und Platz O(n 2 ). Das Ergebnis ist eine Datenstruktur der Größe O(n 2 ), mit der sich zum Argument (v, w) ein kürzester Weg von v nach w in Zeit O(#(Kanten auf dem Weg)) ausgeben lässt. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 17

19 11.2 Editierdistanz Problemstellung: Sei Σ ein Alphabet. Beispiele: Lateinisches Alphabet, ASCII-Alphabet, {A,C,G,T}. Wenn x = a 1... a m Σ und y = b 1... b n Σ zwei Zeichenreihen über Σ sind, möchte man herausfinden, wie ähnlich (oder unähnlich) sie sind. Freizeit und Arbeit sind nicht identisch, aber intuitiv einander ähnlicher als Informatik und Schwimmen. Wie messen? Wir definieren Elementarschritte (Editier-Operationen), die einen String verändern: FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 18

20 Lösche einen Buchstaben aus einem String: Aus uav wird uv (u, v Σ, a Σ) Beispiel: Haut Hut Füge einen Buchstaben in einen String ein: Aus uv wird uav (u, v Σ, a Σ) Beispiel: Hut Haut Ersetze einen Buchstaben: Aus uav wird ubv (u, v Σ, a, b Σ) Haut Hast FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 19

21 Der Abstand oder die Editierdistanz d(x, y) von x und y ist die minimale Anzahl von Editieroperationen, die benötigt werden, um x in y zu transformieren. Überlege: Äquivalenz Transformation/Zuordnung: F r e i z e i t A r b - - e i t Man schreibt Strings aus Buchstaben und dem Sonderzeichen - untereinander, wobei die beiden Zeilen jeweils das Wort x bzw. y ergeben, wenn man die - s ignoriert. Die Kosten einer solchen Anordnung: Die Anzahl der Positionen, an denen die Einträge nicht übereinstimmen. Die minimalen Kosten, die eine solche Anordnung erzeugt, sind gleich der Editierdistanz. (Im Beispiel: 4.) FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 20

22 Input: x = a 1... a m, y = b 1... b n. Aufgabe: Berechne d(x, y) (und eine Editierfolge, die x in y transformiert). Ansatz: Dynamische Programmierung Unser Beispiel: x = Exponentiell und y = Polynomiell. Relevante Teilprobleme identifizieren! Betrachte Präfixe x[1..i] = a 1... a i und y[1..j] = b 1... b j. E(i, j) := d(x[1..i], y[1..j]), für 0 i m, 0 j n. Beispiel: E(7, 6): Berechne d(exponen, Polyno). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 21

23 Um von x[1..i] = a 1... a i gegenüber y[1..j] = b 1... b j optimal anzuordnen, gibt es drei Möglichkeiten: 1. Fall 2. Fall 3. Fall x[1..i 1] a i x[1..i 1] a i x[1..i] ε y[1..j 1] b j y[1..j] ε y[1..j 1] b j 1. Fall: die letzte Stelle kostet diff(a i, b j ) = [a i b j ] = 1 falls a i b j, und = 0 falls a i = b j ; x[1..i 1] und y[1..j 1] sind einander optimal zuzuordnen: d(x[1..i], y[1..j]) = d(x[1..i 1], y[1..j 1]) + diff(a i, b j ). 2. Fall: die eine unpassende Stelle kostet 1; x[1..i 1] und y[1..j] sind einander optimal zuzuordnen: d(x[1..i], y[1..j]) = 1 + d(x[1..i 1], y[1..j]). 3. Fall: analog Fall 2: d(x[1..i], y[1..j]) = 1 + d(x[1..i], y[1..j 1]). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 22

24 Zusammengefasst: Bellman sche Optimalitätsgleichungen für Editierdistanz: E(i, j) = min{e(i 1, j 1)+diff(a i, b j ), 1+E(i 1, j), 1+E(i, j 1)}. Der Induktionsanfang wird von den leeren Präfixen ε = x[1..0] und ε = y[1..0] definiert. Es ist klar, dass d(ε, y[1..j]) = j und d(x[1..i], ε) = i ist (man muss alle Buchstaben einfügen bzw. streichen). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 23

25 Die Zahlen E(i, j) tragen wir in eine Matrix E[0..m,0..n] ein: Initialisierung: E[0,j] j, für j = 0,..., n. E[i,0] i, für i = 0,..., m. Dann füllen wir die Matrix (z. B.) zeilenweise aus, genau nach den Bellman schen Optimalitätsgleichungen: for i from 1 to m do for j from 1 to n do E[i,j] min{e[i-1,j-1] + diff(a i, b j ), 1 + E[i-1,j], 1 + E[i,j-1]}; return E[m,n]. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 24

26 E P o l y n o m i e l l E x p o n e n t i e l l FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 25

27 Rot, unterstrichen: die Positionen (i, j) mit a i = b j. Für die Arbeit von Hand ist es bequem, in die Matrix zuerst die Werte diff(a i, b j ) einzutragen! Ermittlung der Editier-Operationen Gegeben x und y, möchte man nicht nur die Editierdistanz d(x, y), sondern auch die Schritte einer möglichst kurzen Transformation ermitteln, die x in y überführt. Wenn die Matrix E[0..m,0..n] vorliegt, die alle Werte E(i, j) enthält, ist das leicht: FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 26

28 Wir wandern einen Weg von (m, n) nach (0, 0). Dabei gehen wir von (i, j) nach (1) (i 1, j 1), falls E(i, j) = E(i 1, j 1) + diff(a i, b j ), (2) (i 1, j), falls E(i, j) = 1 + E(i 1, j), (3) (i, j 1), falls E(i, j) = 1 + E(i, j 1). Wenn mehr als eine Gleichung zutrifft, können wir einen der möglichen Schritte beliebig wählen. Der so gefundene Weg endet in (0, 0). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 27

29 Den so ermittelten Weg lesen wir dann (weil wir von links nach rechts lesen) rückwärts, also von (0, 0) nach (m, n) laufend. Er repräsentiert in offensichtlicher Weise einer Transformation von x in y, wobei man Buchstaben gleich lässt, ersetzt, einfügt oder löscht. (1) (i 1, j 1) (i, j) entspricht einem identischen Buchstaben oder einer Ersetzung an Stelle i; (2) (i 1, j) (i, j) entspricht dem Streichen von a i ; (3) (i, j 1) (i, j) entspricht dem Einfügen von b j. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 28

30 Im Beispiel: (0, 0) (1, 1) (2, 2) (3, 3) (4, 4) (5, 5) (6, 6) (7, 6) (8, 7) (9, 8) (10, 9) (11, 10) (12, 11). Dies führt zu der folgenden Zuordnung, wobei die sieben kostenpflichtigen Positionen rot markiert sind: E x p o n e n t i e l l P o l y n o - m i e l l FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 29

31 Weiteres Beispiel, mit Streichungen und Einfügungen: x = speziell und y = beliebig. Ausfüllen der Matrix liefert: E b e l i e b i g s p e z i e l l Rot, unterstrichen: die Positionen (i, j) mit a i = b j. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 30

32 Zurückverfolgen liefert nach Umdrehen zum Beispiel die folgende Transformationsfolge: (0, 0) (1, 1) (2, 1) (3, 2) (4, 3) (5, 4) (6, 5) (6, 6) (7, 7) (8, 8). Dies führt zu der folgenden Zuordnung, wobei die sechs kostenpflichtigen Positionen rot markiert sind: s p e z i e - l l b - e l i e b i g Es gibt hier auch andere Zuordnungen, und damit andere kürzeste Transformationsfolgen, etwa s p e z i e l l - - b e l i e b i g. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 31

33 Schönen Dank für Ihre Aufmerksamkeit! Beste Erfolge in der Prüfung! FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen 1 WS 2018/19 Kapitel 11 32

SS11 Effiziente Algorithmen 5. Kapitel: Dynamische Programmierung

SS11 Effiziente Algorithmen 5. Kapitel: Dynamische Programmierung SS11 Effiziente Algorithmen 5. Kapitel: Dynamische Programmierung Martin Dietzfelbinger Juni/Juli 2011 FG KTuEA, TU Ilmenau Effiziente Algorithmen SS11 Kapitel 5 Kapitel 5: Dynamische Programmierung Typische

Mehr

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) 5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!

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

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

6. Algorithmen auf Zeichenketten

6. Algorithmen auf Zeichenketten 6. Algorithmen auf Zeichenketten Motivation Wir lernen nun Algorithmen zur Lösung verschiedener elementarer Probleme auf Zeichenketten zu lösen Zeichenketten spielen eine wichtige Rolle in diversen Gebieten

Mehr

Kürzeste (billigste) Wege

Kürzeste (billigste) Wege Kürzeste (billigste) Wege 1. Kürzeste (billigste) Wege Gerichteter Graph G = (V, E) Kostenfunktion c : E R 1 2 1 3 3 2 4 4 2 6 6 5 3 2 Entfernung zwischen zwei Knoten Kosten eines Wegs P = v 0, v 1,...,

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 20 (23.7.2014) All Pairs Shortest Paths, String Matching (Textsuche) Algorithmen und Komplexität Vorlesungsevaluation Sie sollten alle eine

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

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

Algorithmen auf Sequenzen

Algorithmen auf Sequenzen Algorithmen auf Sequenzen Fehlertolerante Mustersuche: Distanz- und Ähnlichkeitsmaße Sven Rahmann Genominformatik Universitätsklinikum Essen Universität Duisburg-Essen Universitätsallianz Ruhr Einführung

Mehr

Kap. 6.6: Kürzeste Wege

Kap. 6.6: Kürzeste Wege Kap. 6.6: Kürzeste Wege Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 1./. VO DAP SS 009./9. Juli 009 1 Nachtest für Ausnahmefälle Di 1. Juli 009, 16:00 Uhr,

Mehr

Kap. 6.6: Kürzeste Wege

Kap. 6.6: Kürzeste Wege 0.0.00 Nachtest für Ausnahmefälle Kap..: Kürzeste Wege Professor Dr. Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund./. VO DAP SS 00./. Juli 00 Di. Juli 00, :00 Uhr, OH, R.

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

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

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

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 21 (15.7.2016) String Matching (Textsuche) Approximate String Matching Algorithmen und Komplexität Textsuche / String Matching Gegeben:

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

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

Suchen in Texten. Naives Suchen Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuchen Editierdistanz

Suchen in Texten. Naives Suchen Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuchen Editierdistanz Suchen in Texten Naives Suchen Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuchen Editierdistanz Textsuche Gegeben ist ein Zeichensatz (Alphabet) Σ. Für einen Text T Σ n und

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale

Mehr

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

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

Kürzeste Wege in Graphen

Kürzeste Wege in Graphen Kürzeste Wege in Graphen Algorithmische Paradigmen In diesem Abschnitt wollen wir nicht nur neue Algorithmen vorstellen, sondern auch den Blick auf Gemeinsamkeiten und prinzipielle Unterschiede zwischen

Mehr

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37 2. November 2011 Gradfolgen Zusammenhang Kürzeste Wege H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37 Satz von Erdős und Gallai Eine Partition einer natürlichen Zahl ist genau dann die Gradfolge

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

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

16. All Pairs Shortest Path (ASPS)

16. All Pairs Shortest Path (ASPS) . All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e

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

Wintersemester 2004/ Februar 2005

Wintersemester 2004/ Februar 2005 Lehrstuhl für Praktische Informatik III Norman May B6, 29, Raum C0.05 68131 Mannheim Telefon: (0621) 181 2517 Email: norman@pi3.informatik.uni-mannheim.de Matthias Brantner B6, 29, Raum C0.05 68131 Mannheim

Mehr

Kürzeste Wege. Ein Startknoten, nichtnegative Gewichte

Kürzeste Wege. Ein Startknoten, nichtnegative Gewichte Kürzeste Wege Gegeben ein Digraph D = (V, A) mit Bogengewichten c(a). Aufgabe: Finde einen Weg W von einem Knoten zu allen anderen oder zu einem bestimmten mit c(w) minimal. Problem: negative Gewichte

Mehr

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1 Allgemeines. Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition.. (a) Ein Graph G =(V, E) heißt kreisfrei, wenn er keinen Kreis besitzt. Beispiel: Ein kreisfreier Graph: FG KTuEA, TU Ilmenau

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 : Dynamisches Programmieren Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester.. Einleitung Diese Lerneinheit widmet sich einer

Mehr

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen Fortgeschrittene Netzwerk- und Graph-Algorithmen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester

Mehr

Grundzüge von Algorithmen und Datenstrukturen, WS 15/16: Lösungshinweise zum 13. Übungsblatt

Grundzüge von Algorithmen und Datenstrukturen, WS 15/16: Lösungshinweise zum 13. Übungsblatt U N S A R I V E R S A V I E I T A S N I S S Grundzüge von Algorithmen und Datenstrukturen, WS /6: Lösungshinweise zum 3. Übungsblatt Christian Hoffmann, Fabian Bendun Aufgabe 3. (a) Sei j i + = n die Größe

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

2. Klausur Datenstrukturen und Algorithmen SS 2014

2. Klausur Datenstrukturen und Algorithmen SS 2014 Prof. aa Dr. E. Ábrahám F. Corzilius, S. Schupp, T. Ströder 2. Klausur Datenstrukturen und Algorithmen SS 2014 Vorname: Nachname: Studiengang (bitte genau einen markieren): Informatik Bachelor Informatik

Mehr

2.4 Starke Zusammenhangskomponenten in Digraphen

2.4 Starke Zusammenhangskomponenten in Digraphen Starke Zusammenhangskomponenten Einleitung 2.4 Starke Zusammenhangskomponenten in Digraphen Definition 2.4.1 Zwei Knoten v und w in einem Digraphen G heißen äquivalent, wenn v w und w v gilt. Notation:

Mehr

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7 1 Kürzeste Pfade Woche 6 7 Hier arbeiten wir mit gewichteten Graphen, d.h. Graphen, deren Kanten mit einer Zahl gewichtet werden. Wir bezeichnen die Gewichtsfunktion mit l : E R. Wir wollen einen kürzesten

Mehr

Effiziente Algorithmen

Effiziente Algorithmen Effiziente Algorithmen Greedy-Algorithmen Vorlesender: Martin Aumüller (nah Folien von Prof. Martin Dietzfelbinger) Mai 2012 FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 2012 1 Kapitel 3:

Mehr

DAP2 Probeklausur. Matrikelnummer Vorname Nachname. Datum: 24. Juli C. Sohler A. Krivo²ija, A. Rey, H. Sandvoÿ

DAP2 Probeklausur. Matrikelnummer Vorname Nachname. Datum: 24. Juli C. Sohler A. Krivo²ija, A. Rey, H. Sandvoÿ SoSe 2017 C. Sohler A. Krivo²ija, A. Rey, H. Sandvoÿ DAP2 Probeklausur Datum: 2. Juli 2017 Matrikelnummer Vorname Nachname Diese Klausur besteht aus acht Aufgaben mit insgesamt 50 Punkten. Zum Bestehen

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

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

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 00

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Tobias Lieber Sommersemester 2011 Übungsblatt 1 16. September 2011 Grundlagen: Algorithmen und

Mehr

6.1. Ein Approximationsalgorithmus für das Rucksackproblem

6.1. Ein Approximationsalgorithmus für das Rucksackproblem 6.1. Ein Approximationsalgorithmus für das Rucksackproblem Wir erinnern uns an das 0-1-Rucksackproblem: Eingabe: Ganzzahlige Volumina a 1,..., a n > 0, Nutzenwerte c 1,..., c n > 0, ganzzahlige Volumenschranke

Mehr

12.4 Traveling Salesman Problem

12.4 Traveling Salesman Problem 96 KOMBINATORISCHE SUCHE.4 Traveling Salesman Problem Definition.3(TSP, Problem des Handlungsreisenden): Wir betrachten einen gerichteten, gewichteten Graphen G = (V,E) mit K : V R. K({u,v}) sind die Kosten

Mehr

Gliederung. Algorithmen und Datenstrukturen II. Graphen: All-pairs shortest paths. Graphen: All-pairs shortest paths. Graphen: Kürzeste Pfade III

Gliederung. Algorithmen und Datenstrukturen II. Graphen: All-pairs shortest paths. Graphen: All-pairs shortest paths. Graphen: Kürzeste Pfade III Gliederung Algorithmen und Datenstrukturen II : Kürzeste Pfade III D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Problem Transitiver

Mehr

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen Fortgeschrittene Netzwerk- und Graph-Algorithmen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Übung am 16.12.2010 INSTITUT FÜR THEORETISCHE INFORMATIK 0 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

2. Das single-source-shortest-path-problem

2. Das single-source-shortest-path-problem . Das single-source-shortest-path-problem Zunächst nehmen wir an, dass d 0 ist. Alle kürzesten Pfade von a nach b sind o.b.d.a. einfache Pfade.. Dijkstra s Algorithmus Gegeben: G = (V, A), (A = V V ),

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

Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS Oktober 2016

Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS Oktober 2016 Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithms and Complexity Group 186.815 Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS 2016 5. Oktober 2016 Machen Sie

Mehr

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität 1 Klausur Wichtige Hinweise: 2.7.07, Beginn 9 Uhr Bitte spätestens 8:4 Uhr vor Ort sein Sporthalle + Audimax Informationen

Mehr

1 Kürzeste Pfade in Graphen

1 Kürzeste Pfade in Graphen Praktikum Algorithmen-Entwurf (Teil 3) 03.11.2011 1 1 Kürzeste Pfade in Graphen Es sei ein gerichteter Graph G = (V, E) mit V = n Knoten, E = m Kanten und Kantengewichten c : E R gegeben. Ein Pfad in G

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

12. Graphen. Notation, Repräsentation, Traversieren (DFS, BFS), Topologisches Sortieren, Ottman/Widmayer, Kap ,Cormen et al, Kap.

12. Graphen. Notation, Repräsentation, Traversieren (DFS, BFS), Topologisches Sortieren, Ottman/Widmayer, Kap ,Cormen et al, Kap. 254 12. Graphen Notation, Repräsentation, Traversieren (DFS, BFS), Topologisches Sortieren, Ottman/Widmayer, Kap. 9.1-9.4,Cormen et al, Kap. 22 Königsberg 1736 255 Königsberg 1736 255 Königsberg 1736 255

Mehr

NAME, VORNAME: Studiennummer: Matrikel:

NAME, VORNAME: Studiennummer: Matrikel: TU Ilmenau, Fakultat IA Institut für Theoretische Informatik FG Komplexitätstheorie und Effiziente Algorithmen Prof. Dr. (USA) M. Dietzfelbinger Klausur Algorithmen und Datenstrukturen SS08, Ing.-Inf.

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

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

10 Kürzeste Pfade SSSP-Problem

10 Kürzeste Pfade SSSP-Problem In diesem Kapitel setzen wir uns mit der Berechnung von kürzesten Pfaden in einem Graphen auseinander. Definition 10.1 (Pfadgewichte). i) Das Gewicht eines Pfades p = (v 0, v 1,..., v k ) ist die Summe

Mehr

SS10 Algorithmen und Datenstrukturen 2. Kapitel Fundamentale Datentypen und Datenstrukturen

SS10 Algorithmen und Datenstrukturen 2. Kapitel Fundamentale Datentypen und Datenstrukturen SS10 Algorithmen und Datenstrukturen 2. Kapitel Fundamentale Datentypen und Datenstrukturen Martin Dietzfelbinger April 2010 FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS10 Kapitel 2 Datentyp

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

Algorithmen und Datenstrukturen in der Bioinformatik Zweites Übungsblatt WS 05/06 Musterlösung

Algorithmen und Datenstrukturen in der Bioinformatik Zweites Übungsblatt WS 05/06 Musterlösung Johanna Ploog, Konstantin Clemens Freie Universität Berlin Institut für Mathematik II Arbeitsgruppe für Mathematik in den Lebenswissenschaften Algorithmen und Datenstrukturen in der Bioinformatik Zweites

Mehr

Klammersprache Definiere

Klammersprache Definiere Klammersprache w=w 1...w n {(,)}* heißt korrekt geklammert, falls die Anzahl ( ist gleich der Anzahl ). in jedem Anfangsstück w 1,...,w i (i n) ist die Anzahl ( nicht kleiner als die Anzahl ). Definiere

Mehr

Kapitel 5. Textalgorithmen. 5.1 Grundbegriffe

Kapitel 5. Textalgorithmen. 5.1 Grundbegriffe Kapitel 5 Textalgorithmen 5.1 Grundbegriffe Wir beschäftigen uns hauptsächlich mit Textsuche (und Varianten). Gegeben: Alphabet Σ (mindestens zwei Buchstaben). Text S = s 1... s n Σ in Array S[1..n]. Muster

Mehr

String - Matching. Kapitel Definition

String - Matching. Kapitel Definition Kapitel 1 String - Matching 1.1 Definition String - Matching ( übersetzt in etwa Zeichenkettenanpassung ) ist die Suche eines Musters ( Pattern ) in einem Text. Es findet beispielsweise Anwendung bei der

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

8.4 Digraphen mit negativen Kantengewichten Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0.

8.4 Digraphen mit negativen Kantengewichten Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0. 8.4 Digraphen mit negativen Kantengewichten 8.4.1 Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0. k 4 5 1 s 1 3 2 C k 0 k 3 1 1 1 k 1 k 2 v Sollte ein Pfad von s nach C und

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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dr. Michael Brinkmeier Technische Universität Ilmenau Fakultät Informatik und Automatisierung Fachgebiet Automaten und Formale Sprachen 4.7.2007 Dr. Michael Brinkmeier (TU

Mehr

Klausur Informatik 2: Algorithmen und Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!

Klausur Informatik 2: Algorithmen und Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden! Albert-Ludwigs-Universität Institut für Informatik Prof. Dr. F. Kuhn Klausur Informatik 2: Algorithmen und Datenstrukturen Donnerstag, 9. März 21, 2017, 9:00 bis 12.00 Uhr Name:.....................................................................

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

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

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

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

Mehr

Klausur Algorithmentheorie

Klausur Algorithmentheorie Prof. Dr. G. Schnitger Frankfurt, den 24.02.2011 M. Poloczek Klausur Algorithmentheorie WS 2010/2011 Name: Vorname: Geburtsdatum: Studiengang: BITTE GENAU LESEN Die Klausur besteht aus 4 Aufgaben, in denen

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

Freie Bäume und Wälder

Freie Bäume und Wälder (Martin Dietzfelbinger, Stand 4.6.2011) Freie Bäume und Wälder In dieser Notiz geht es um eine besondere Sorte von (ungerichteten) Graphen, nämlich Bäume. Im Gegensatz zu gerichteten Bäumen nennt man diese

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

Algorithmen und Datenstrukturen

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

Mehr

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung Theoretische Informatik Rainer Schrader Zentrum für Angewandte Informatik Köln 14. Juli 2009 1 / 40 2 / 40 Beispiele: Aus den bisher gemachten Überlegungen ergibt sich: aus der Chomsky-Hierarchie bleiben

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. Mariano Zelke. Sommersemester 2012 Datenstrukturen Mariano Zelke Sommersemester 2012 Mariano Zelke Datenstrukturen 2/19 Das Teilfolgenproblem: Algorithmus A 3 A 3 (i, j bestimmt den Wert einer maximalen Teilfolge für a i,..., a j. (1 Wenn

Mehr

Datenstrukturen und Algorithmen 2. Klausur SS 2001

Datenstrukturen und Algorithmen 2. Klausur SS 2001 UNIVERSITÄT PADERBORN FACHBEREICH 7 (MATHEMATIK INFORMATIK) Datenstrukturen und Algorithmen 2. Klausur SS 200 Lösungsansätze Dienstag, 8. September 200 Name, Vorname:...................................................

Mehr

p = (v 0, v 1,..., v k )

p = (v 0, v 1,..., v k ) 1 Routenlaner Hamburg 300 km 200 km Berlin 450 km Köln 200 km 400 km Frankfurt 50 km 200 km 150 km Mannheim Saarbrücken 100 km 250 km Stuttgart 200 km Dresden 300 km Nürnberg 200 km München Berechne den

Mehr

Lösungen zu Kapitel 5

Lösungen zu Kapitel 5 Lösungen zu Kapitel 5 Lösung zu Aufgabe : (a) Es gibt derartige Graphen: (b) Offensichtlich besitzen 0 der Graphen einen solchen Teilgraphen. Lösung zu Aufgabe : Es sei G = (V, E) zusammenhängend und V

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

Datenstrukturen und Algorithmen D-INFK

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

Mehr

Exkurs: Graphtraversierung

Exkurs: Graphtraversierung Sanders: Informatik III November 28, 2006 1 Exkurs: Graphtraversierung Begriffe Graphrepräsentation Erreichbarkeit mittels Tiefensuche Kreise Suchen Sanders: Informatik III November 28, 2006 2 Gerichtete

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

12. Der Algorithmus von Dijkstra. Informatik II für Verkehrsingenieure

12. Der Algorithmus von Dijkstra. Informatik II für Verkehrsingenieure . Der Algorithmus von Dijkstra Informatik II für Verkehrsingenieure Problemstellung Gegeben: Graph G =(V, E, len) mit positiver Kantenfunktion len : E! R 0, Knoten s, t V Mögliche Aufgaben Berechne Distanz

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 7 (21.5.2014) Binäre Suche, Hashtabellen I Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary: (auch: Maps, assoziative

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Übung am 22.12.2011 INSTITUT FÜR THEORETISCHE 0 KIT 09.01.2012 Universität des Andrea Landes Schumm Baden-Württemberg - Theoretische und Grundlagen der Informatik

Mehr

Vorlesung 2 KÜRZESTE WEGE

Vorlesung 2 KÜRZESTE WEGE Vorlesung 2 KÜRZESTE WEGE 34 Kürzeste Wege im Graphen Motivation! Heute:! Kürzeste Wege von einem Knoten (SSSP)! Kürzeste Wege zwischen allen Knotenpaaren (APSP)! Viele Anwendungen:! Navigationssysteme!

Mehr

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

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

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

Mehr

Ü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

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

EDM, Algorithmen und Graphenspeicherung

EDM, Algorithmen und Graphenspeicherung EDM, Algorithmen und Graphenspeicherung 1 Graphenspeicherung Gespeichert werden soll ein Graph G = (V, E) bzw. Digraph D = (V, A). Man beachte: E ( ) V 2 bzw. E V 2 1.1 Adjazenzmatrix Graph G: A = (a vw

Mehr