WS18 Algorithmen und Datenstrukturen 11. Kapitel Dynamische Programmierung
|
|
- Angela Gerstle
- vor 5 Jahren
- Abrufe
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 Martin Dietzfelbinger Juni/Juli 2011 FG KTuEA, TU Ilmenau Effiziente Algorithmen SS11 Kapitel 5 Kapitel 5: Dynamische Programmierung Typische
Mehr5.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!
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen Lerneinheit : Kürzeste Pfade in Graphen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 016.6.01 Einleitung Diese Lerneinheit beschäftigt
MehrAlgorithmen & Komplexität
Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Kürzeste Pfade Problem Gegeben Netzwerk: Graph G = (V, E), Gewichtsfunktion w: E N Zwei Knoten: s, t Kantenzug/Weg
Mehr6. 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
MehrKü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,...,
MehrInformatik 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
MehrAlgorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8
ETH Zürich Institut für Theoretische Informatik Prof. Dr. Angelika Steger Florian Meier, Ralph Keusch HS 2017 Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 Lösungsvorschlag zu Aufgabe 1
Mehr5.4 Das Rucksackproblem
Problemstellung: 5.4 Das Rucksackproblem Eingabe: Ganzzahlige Volumina a 1,..., a n > 0, Nutzenwerte c 1,..., c n > 0, ganzzahlige Volumenschranke b. Aufgabe: Packe die Objekte in einen Rucksack von Volumen
MehrAlgorithmen 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
MehrKap. 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,
MehrKap. 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.
MehrTechnische Universität München Zentrum Mathematik. Optimierung 2, WS 2008/09 Übungsblatt 12
Technische Universität München Zentrum Mathematik Prof. Dr. P. Gritzmann, Dipl.-Inf. Dipl.-Math. S. Borgwardt, Dr. M. Ritter Optimierung 2, WS 2008/09 Übungsblatt 12 Aufgabe 12.1 Betrachten Sie die folgenden
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Kürzeste Wege Maike Buchin 4. und 6.7.2017 Einführung Motivation: Bestimmung von kürzesten Wegen ist in vielen Anwendungen, z.b. Routenplanung, ein wichtiges Problem. Allgemeine
Mehr19. Dynamic Programming I
495 19. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixkettenmultiplikation, Matrixmultiplikation nach Strassen [Ottman/Widmayer, Kap.
Mehr19. Dynamic Programming I
495 19. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixkettenmultiplikation, Matrixmultiplikation nach Strassen [Ottman/Widmayer, Kap.
MehrInformatik 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:
MehrADS: Algorithmen und Datenstrukturen 2
ADS: Algorithmen und Datenstrukturen 2 Teil 4 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 24. April 2019 [Letzte Aktualisierung: 24/04/2019,
MehrADS: Algorithmen und Datenstrukturen 2
ADS: Algorithmen und Datenstrukturen 2 Teil 6 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 16. Mai 2018 [Letzte Aktualisierung: 18/05/2018,
MehrSuchen 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
MehrDatenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Lerneinheit 3: Greedy Algorithmen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 2016 10.5.2016 Einleitung Einleitung Diese Lerneinheit
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2012/13 25. Vorlesung Dynamisches Programmieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Klausurvorbereitung Tipp: Schreiben Sie sich alle Fragen
MehrKü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
Mehr2. 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
Mehr21. Greedy Algorithmen. Aktivitätenauswahl, Fractional Knapsack Problem, Huffman Coding Cormen et al, Kap. 16.1, 16.3
581 21. Greedy Algorithmen Aktivitätenauswahl, Fractional Knapsack Problem, Huffman Coding Cormen et al, Kap. 16.1, 16.3 Aktivitäten Auswahl 582 Koordination von Aktivitäten, die gemeinsame Resource exklusiv
MehrDas Problem des Handlungsreisenden
Seite 1 Das Problem des Handlungsreisenden Abbildung 1: Alle möglichen Rundreisen für 4 Städte Das TSP-Problem tritt in der Praxis in vielen Anwendungen als Teilproblem auf. Hierzu gehören z.b. Optimierungsprobleme
Mehr16. 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
MehrAlgorithmen I - Tutorium 28 Nr. 12
Algorithmen I - Tutorium 28 Nr. 12 20.07.2017: Spaß mit Dynamischer und Linearer Programmierung Marc Leinweber marc.leinweber@student.kit.edu INSTITUT FÜR THEORETISCHE INFORMATIK (ITI), PROF. DR. JÖRN
MehrWintersemester 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
MehrKü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
Mehr4.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
MehrBerechnung von Abständen
3. Kreis- und Wegeprobleme Abstände in Graphen Abstände in Graphen Definition 3.4. Es sei G = (V, E) ein Graph. Der Abstand d(v, w) zweier Knoten v, w V ist die minimale Länge eines Weges von v nach w.
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen Lerneinheit : Dynamisches Programmieren Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester.. Einleitung Diese Lerneinheit widmet sich einer
MehrFortgeschrittene 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
MehrGrundzü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
MehrGraphentheorie. Kürzeste Wege. Kürzeste Wege. Kürzeste Wege. Rainer Schrader. 25. Oktober 2007
Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 25. Oktober 2007 1 / 20 2 / 20 Wir werden Optimierungsprobleme vom folgenden Typ betrachten: gegeben eine Menge X und eine Funktion
Mehr2. 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
Mehr2.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:
MehrAlgo&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
MehrEffiziente 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:
MehrDAP2 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
Mehr19. Dynamic Programming I
Fibonacci Zahlen 9. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixettenmultipliation, Matrixmultipliation nach Strassen [Ottman/Widmayer,
Mehr4. Kreis- und Wegeprobleme Abstände in Graphen
4. Kreis- und Wegeprobleme Abstände in Graphen Abstände in Graphen Definition 4.4. Es sei G = (V,E) ein Graph. Der Abstand d(v,w) zweier Knoten v,w V ist die minimale Länge eines Weges von v nach w. Falls
MehrGrundlagen: 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
MehrGrundlagen: 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
Mehr6.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
Mehr12.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
MehrGliederung. 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
MehrFortgeschrittene 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
MehrTheoretische 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
Mehr2. 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 ),
Mehr19. Dynamic Programming I
502 19. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixkettenmultiplikation, Matrixmultiplikation nach Strassen [Ottman/Widmayer, Kap.
MehrAlgorithmen 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
MehrDatenstrukturen 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
Mehr1 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
MehrDatenstrukturen und Algorithmen (SS 2013)
Datenstrukturen und Algorithmen (SS 2013) Übungsblatt 10 Abgabe: Montag, 08.07.2013, 14:00 Uhr Die Übungen sollen in Gruppen von zwei bis drei Personen bearbeitet werden. Schreiben Sie die Namen jedes
Mehr12. 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
MehrNAME, 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.
MehrLernmodul 7 Algorithmus von Dijkstra
Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer
MehrWann sind Codes eindeutig entschlüsselbar?
Wann sind Codes eindeutig entschlüsselbar? Definition Suffix Sei C ein Code. Ein Folge s {0, 1} heißt Suffix in C falls 1 c i, c j C : c i = c j s oder 2 c C und einen Suffix s in C: s = cs oder 3 c C
Mehr10 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
MehrSS10 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
Mehr2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung
2 Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 24/ 44 Zwei Beispiele a 0
MehrAlgorithmen 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
MehrKlammersprache 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
MehrKapitel 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
MehrString - 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
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
Mehr8.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
MehrAlgorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016
Algorithmen und Datenstrukturen 2 Übung 1 Stefan Florian Palkovits, BSc 0926364 e0926364@student.tuwien.ac.at 12. Juni 2016 Aufgabe 1: Es existiert eine Reduktion von Problem A auf Problem B in O(n 3 +
MehrAlgorithmen 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
MehrKlausur 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:.....................................................................
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2012/13 26. Vorlesung Greedy- und Approximationsalgorithmen Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Operations Research Optimierung für Wirtschaftsabläufe:
MehrDynamische Programmierung
Dynamische Programmierung Claudia Gerhold 9.5.6 Claudia Gerhold Dynamische Programmierung 9.5.6 / 4 Agenda Einführung Dynamische Programmierung Top-Down Ansatz mit Memoization Bottom-Up Ansatz 3 Anwendungsbeispiele
MehrStud.-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
MehrKlausur 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
MehrGreedy Algorithms - Gierige Algorithmen
Greedy Algorithms - Gierige Algorithmen Marius Burfey 23. Juni 2009 Inhaltsverzeichnis 1 Greedy Algorithms 1 2 Interval Scheduling - Ablaufplanung 2 2.1 Problembeschreibung....................... 2 2.2
MehrFreie 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
MehrKürzeste-Wege-Algorithmen und Datenstrukturen
Kürzeste-Wege-Algorithmen und Datenstrukturen Institut für Informatik Universität zu Köln SS 2009 Teil 1 Inhaltsverzeichnis 1 Kürzeste Wege 2 1.1 Voraussetzungen................................ 2 1.2
MehrAlgorithmen und Datenstrukturen
Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe
Mehrkontextfreie 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
MehrDatenstrukturen. 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
MehrDatenstrukturen 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:...................................................
Mehrp = (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
MehrLö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
Mehr0 i = n w n > k v n. V (i +1,k), max v i + V (i +1,k w i )
Sei V(i,k) der maximal mögliche Wert für die egenstände i, i+1,, n bei gegebener max. Kapazität k V(i,k) kann dann für i n geschrieben werden als i = n w n > k v n V (i, k) = V (i +1,k) V (i +1,k), max
MehrDatenstrukturen und Algorithmen D-INFK
Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik Peter Widmayer
MehrExkurs: 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
MehrDatenstrukturen & Algorithmen Lösungen zu Blatt 11 FS 14
Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 14. Mai
Mehr12. 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
MehrInformatik 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
MehrTheoretische 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
MehrVorlesung 2 KÜRZESTE WEGE
Vorlesung 2 KÜRZESTE WEGE 34 Kürzeste Wege im Graphen Motivation! Heute:! Kürzeste Wege von einem Knoten (SSSP)! Kürzeste Wege zwischen allen Knotenpaaren (APSP)! Viele Anwendungen:! Navigationssysteme!
MehrDynamische Programmierung. Problemlösungsstrategie der Informatik
als Problemlösungsstrategie der Informatik und ihre Anwedung in der Diskreten Mathematik und Graphentheorie Fabian Cordt Enisa Metovic Wissenschaftliche Arbeiten und Präsentationen, WS 2010/2011 Gliederung
MehrAufgabe 8. 1 Arbeitsweise illustrieren. 2 Korrektheitsbeweis führen. 3 Laufzeitanalyse durchführen.
Aufgabe 8 Betrachten Sie den folgenden Algorithmus namens Bubble-Sort. Bubble-Sort(A[1..n]): 1 for i 1 to length(a) 1 2 do for j length(a) downto i + 1 3 do if A[j 1] > A[j] 4 then A[j 1] A[j] 1 Arbeitsweise
MehrÜbungen zur Vorlesung Datenstrukturen und Algorithmen SS 07 Beispiellösung Blatt 5
Kamil Swierkot Paderborn, den 01.06.2007 Aufgabe 17 Übungen zur Vorlesung Datenstrukturen und Algorithmen SS 07 Beispiellösung Blatt 5 Bei der Optimierungsvariante des SubSetSum Problems wird bei der Eingabe
Mehr5. Bäume und Minimalgerüste
5. Bäume und Minimalgerüste Charakterisierung von Minimalgerüsten 5. Bäume und Minimalgerüste Definition 5.1. Es ein G = (V, E) ein zusammenhängender Graph. H = (V,E ) heißt Gerüst von G gdw. wenn H ein
MehrEDM, 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