5.4 Das Rucksackproblem

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "5.4 Das Rucksackproblem"

Transkript

1 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 b, so dass der Gesamtnutzen maximiert wird. (Wird gleich noch formalisiert.) Wir betrachten zwei Problemvarianten: 1 Rucksackproblem mit Wiederholungen. (Von jedem Objekt sind beliebig viele Kopien vorhanden.) Rucksackproblem. (Jedes Objekt ist genau einmal vorhanden.) Im Gegensatz zum fraktionalen Rucksackproblem (Kap. 3.1) ist es hier nicht erlaubt, Objekte zu teilen. Der Lösungsvektor (x 1,..., x n ) muss also ganzzahlig sein. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

2 Mit Wiederholungen Das Rucksackproblem mit Wiederholungen Eingabe: Ganzzahlige Volumina a 1,..., a n > 0, Nutzenwerte c 1,..., c n > 0, ganzzahlige Volumenschranke b. Aufgabe: Wähle x 1,..., x n N mit x i a i b, 1 i n 1 i n x i c i möglichst groß. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

3 Mit Wiederholungen Ansatz: Dynamische Programmierung. Identifizierung von nützlichen Teilproblemen: Für d = 0,..., b sei w(d) := maximaler erreichbarer Nutzenwert für Volumen a 1,..., a n, Nutzenwerte c 1,..., c n, und Rucksackgröße d. Klar: w(0) = 0. Bellman sche Optimalitätsgleichungen: w(d) = { 0, d = 0 max ({c i + w(d a i ) 1 i n, a i d} {0}), sonst. Laufzeit: O(n b). (Für jedes d, 1 d b, muss ein Maximum über n + 1 Werte gebildet werden.) FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

4 Mit Wiederholungen Interessant: Wie berechnet man den Lösungsvektor x 1,..., x n? Dafür legen wir ein Array I [0..b] an. I [d] gibt ein i {1,..., n} an, welches c i + w(d a i ) maximiert. (Wenn kein solches Objekt existiert, setzen wir I [d] 0.) Wir nutzen den folgenden Algorithmus zur Berechnung des Lösungsvektors: 1 Initialisiere ein Array X [1..n] mit 0 en 2 d := b 3 while d > 0 do 4 X [I [d]]++ 5 d := d a I [d] Ausgabe: X [1..n]. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

5 Mit Wiederholungen Beispiel: b = 10: i a i c i d w(d) I [d] Rekonstruierte Bepackung: x 1 = 1, x 2 = 0, x 3 = 0, x 4 = 2. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

6 Mit Wiederholungen Resultat Satz Das Rucksackproblem mit Wiederholungen (mit Ausgabe einer optimalen Lösung) ist in Zeit O(n b) und Platz O(b) lösbar. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

7 0-1-Variante Das 0-1-Rucksackproblem Eingabe: Ganzzahlige Volumina a 1,..., a n > 0, Nutzenwerte c 1,..., c n > 0, ganzzahlige Volumenschranke b. Ausgabe: I {1,..., n} derart, dass i I a i b und i I c i möglichst groß. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

8 0-1-Variante Ansatz: Dynamische Programmierung. Identifizierung von nützlichen Teilproblemen: Für 1 k n und 0 v b definieren wir { m(k, v) := max c i I {1,..., k} i I i I a i v }. Das Teilproblem P(k, v) besteht darin, ein I {1,..., k} mit i I a i v zu finden, das i I c i maximiert. Wir suchen also nach einer Auswahl, die nur Objekte Nummer 1,..., k benutzt, eine modifizierte Gewichtsschranke v einhält, und den Nutzen maximiert. Trivial: m(0, v) = 0 für alle v. P(n, b) ist das Gesamtproblem. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

9 0-1-Variante Eigenschaft Optimale Substruktur : Sei I optimale Lösung für P(k, v), d. h.: m(k, v) = i I c i, I {1,..., k}, i I a i v. Dann tritt einer der folgenden Fälle ein. 1. Fall: k I. Dann ist I {k} optimale Lösung für P(k 1, v a k ), d. h.: m(k, v) c k = i I {k} c i = m(k 1, v a k ). 2. Fall: k I. Dann ist I optimale Lösung für P(k 1, v), d. h.: m(k, v) = m(k 1, v). FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

10 0-1-Variante Beweis: Indirekt. 1. Fall: k I. Annahme: I {k} nicht optimal für P(k 1, v a k ). Dann gäbe es eine bessere Teilmenge J {1,..., k 1} mit i J a i v a k und i J c i > i I {k} c i. Dann wäre aber J {k} eine bessere Lösung für P(k, v) als I, Widerspruch. 2. Fall: k I. Annahme: I nicht optimal für P(k 1, v). Dann gäbe es eine bessere Teilmenge J {1,..., k 1}. Dann wäre aber J auch besser als I für P(k, v), Widerspruch. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

11 0-1-Variante Die optimale Lösung für P(k, v) enthält also eine optimale Lösung für P(k 1, v ) für ein v v. Eigenschaft Optimale Substruktur! Bellman sche Optimalitätsgleichungen: m(k 1, v a k ) + c k, falls v a k und diese Summe m(k, v) = größer als m(k 1, v) ist; m(k 1, v), sonst. für 1 k n, 0 v b; m(0, v) = 0, für 0 v b. In diesem Fall ist k Element jeder optimalen Lösung von P(k, v). Wir berechnen alle m(k, v) mittels einer iterativen Prozedur. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

12 0-1-Variante Algorithmus DP-Zero-One-Knapsack(a 1,..., a n, c 1,..., c n, b) Eingabe: a 1,..., a n : Volumina; c 1,..., c n : Nutzenwerte; b: Schranke Ausgabe: I {1,..., n}: Optimale legale Auswahl. Datenstrukturen: m[0..n,0..b]: integer; (1) for v from 0 to b do m[0,v] 0; (2) for k from 1 to n do (3) for v from 0 to b do (4) if v a k 0 (5) then s m[k 1,v a k ] + c k else s 0; (6) if s > m[k 1,v] (7) then m[k,v] s; (8) else m[k,v] m[k 1,v]; ( Konstruktion der optimalen Menge: ) (9) I ; r m[n,b]; (10) for k from n downto 1 do (11) if m[k 1,r a k ] + c k > m[k 1,r] (12) then r r a k ; I I {k}; (13) return I. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

13 0-1-Variante Korrektheit des ermittelten Wertes m[n,b] ergibt sich aus den Bellman schen Optimalitätsgleichungen durch Induktion über k. Korrektheit der ausgegebenen Menge I folgt aus der obigen Überlegung, dass die Bedingung m(k 1, v a k ) + c k > m(k 1, v) entscheidend ist für die Frage, ob k in der optimalen Lösung von P(k, v) enthalten ist oder nicht, und mit Induktion. Laufzeit des Algorithmus: O(n b). FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

14 0-1-Variante Beispiel: b = 6: i a i c i m[k, v]: v: k = FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

15 0-1-Variante Ablesen von I aus dem Array m[0..n,0..b]: Benutze m(k 1, v a k ) + c k > m[k 1, v] als Kriterium. (Eingerahmte Einträge der Tabelle.) m[4, 6] = 11 > 8 = m[3, 6], also I := {4}, v := 6-1 = 5 m[3, 5] = 6 6 = m[2, 5], m[2, 5] = 6 > 4 = m[1, 5], also I := I {2}, v := 5-4 = 1 m[1, 1] = 0 0 = m[0, 1]. Resultat: Optimale Menge ist I = {2, 4}. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

16 0-1-Variante Man kann auf die Speicherung des gesamten Arrays m verzichten. Man hält immer nur die letzte Zeile, und aktualisiert die Einträge von rechts nach links. (Rechts vom Arbeitspunkt v: Einträge m(k, v ), links davon: Einträge m(k 1, v ).) Eine Bitmatrix b[1..n,0..b] führt mit, ob Objekt k für eine optimale Bepackung notwendig ist oder nicht. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

17 0-1-Variante Algorithmus DP-Zero-One-Knapsack(a 1,..., a n, c 1,..., c n, b) Eingabe: a 1,..., a n : Volumina; c 1,..., c n : Nutzenwerte; b: Schranke Ausgabe: I {1,..., n}: Optimale legale Auswahl. Datenstrukturen: m[0..b]: integer; b[1..n,0..b]: Boolean; (1) for v from 0 to b do m[v] 0; (2) for k from 1 to n do (3) for v from b downto 0 do (4) if v a k 0 then s m[v a k ] + c k else s 0; (5) if s > m[v] (6) then m[v] s; b[k,v] 1; (7) else b[k,v] 0; ( Konstruktion der optimalen Menge: ) (8) I ; r m[b]; (9) for k from n downto 1 do (10) if b[k,r] = 1 then (11) r r a k ; I I {k}; (12) return I. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

18 0-1-Variante Resultat Satz Das 0-1-Rucksackproblem (mit Ausgabe der optimalen Lösung) ist in Zeit O(nb) lösbar. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

19 0-1-Variante Wie gut sind diese beiden Algorithmen? Die Größe, nicht die Bitlänge der Gewichtsschranke b geht in die Laufzeit ein. Wir nennen Algorithmen mit einer Laufzeit O(p(n, B)), wo n die (strukturelle) Größe der Eingabe und B eine obere Schranke für einige oder alle Zahlenkomponenten der Eingabe, und p ein Polynom in zwei Variablen ist, pseudopolynomiell. Die Existenz eines pseudopolynomiellen Algorithmus für das Rucksackproblem widerspricht nicht der Tatsache, dass das 0-1-Rucksackproblem wahrscheinlich keinen Polynomialzeitalgorithmus hat (nächstes Semester: NP-Vollständigkeit!): Die natürliche Eingabegröße berücksichtigt log b und nicht b. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

20 TSP 5.5. Traveling Salesperson 1 Eingabe: Vollständiger, gerichteter Graph mit Kantengewichten a i,j 0. (Also eine Matrix ((a i,j )) 1 i,j n.) Gesucht: Eine günstigste Rundreise, bei der jede Stadt (also jeder Knoten) genau einmal besucht wird und zum Startpunkt zurückgekehrt wird. Formal: Gesucht ist eine Permutation π von {1,..., n}, so dass c(π) = 2 i n a π(i 1),π(i) + a π(n),π(1) minimal unter allen möglichen Permutationen. 1 Das Problem, was ihr beim Sommerfest 2012 lösen solltet! FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

21 TSP Ein Beispiel A B E C 2 2 D 4 Kürzeste Tour: (A, B, E, C, D, A) mit Länge 10. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

22 TSP Klar: Wir können den Anfangspunkt fest wählen. (Hier: Tour startet im Knoten 1.) Naiver Ansatz: Probiere alle (n 1)! mögliche Rundtouren aus. Wir entwickeln einen sehr viel besseren Algorithmus, basierend auf Dynamischer Programmierung. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

23 TSP Zentrale Frage: Wie sehen sinnvolle Teilprobleme aus? Wir betrachten P(S, l) mit S {1,..., n}, 1 l n, wobei 1, l S. P(S, l) fragt nach dem kürzesten, einfachen Weg von 1 durch alle Knoten in S mit Ende l. Basisfälle: P({1}, 1) = 0, P(S, 1) = für S > 1. Am Ende: Länge einer kürzesten Rundtour: min(p({1,..., n}, l) + a l,1 1 l n). FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

24 TSP Für S > 1 gilt: P(S, j) = min(p(s {j}, i) + a i,j i S {j}). Iterativ programmiert sieht der Algorithmus wie folgt aus: 1 P({1}, 1) 0 2 for s 2 to n do 3 foreach S {1, 2,..., n} with S = s and 1 S do 4 P(S, 1) 5 foreach j S, j 1 do 6 P(S, j) min(p(s {j}, i) + a i,j i S {j}). 7 return min(p({1,..., n}, l) + a l,1 1 l n) FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

25 TSP Resultat Satz Das Problem Traveling Salesperson kann mittels dynamischer Programmierung in Zeit O(2 n n 2 ) gelöst werden. (Dies ist eine wesentliche Verbesserung gegenüber dem naiven Ansatz mit Laufzeit O(n!).) Beweis Die Anzahl aller Teilmengen von {1,..., n} ist 2 n. Zu jeder solcher Teilmenge gibt es maximal n Teilprobleme. Jedes Teilproblem kann in Zeit O(n) gelöst werden. Für Zuhause: Wie konstruiert man eine optimale Rundtour (also die Knotenfolge)? FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

26 Matrixkettenmultiplikation Das folgende Problem wurde in der Vorlesung nicht besprochen und ist deswegen nicht prüfungsrelevant. Es stellt jedoch ein weiteres schönes Beispiel für einen auf dem Paradigma Dynamische Programmierung basierenden Algorithmus dar. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

27 Matrixkettenmultiplikation 5.6 Optimale Matrizenmultiplikation Sei A 1 = (α ij ) 1 i r0,1 j r 1 eine r 0 r 1 -Matrix, A 2 = (β jk ) 1 j r1,1 k r 2 eine r 1 r 2 -Matrix. Berechne Produkt A 1 A 2 =: C = (γ ik ) 1 i r0,1 k r 2. Standardmethode (nicht Strassen-Methode o.ä.): γ ik = 1 j r 1 α ij β jk, für 1 i r 0, 1 k r 2. r 0 r 1 r 2 Multiplikationen. Kosten : c(r 0, r 1, r 2 ) := r 0 r 1 r 2 Gesamtzeit = Θ(r 0 r 1 r 2 ). FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

28 Matrixkettenmultiplikation Gegeben: A 1, A 2,..., A k, wobei A i eine r i 1 r i -Matrix ist. Aufgabe Berechne A 1 A 2... A k, möglichst kostengünstig. Die Matrizenmultiplikation ist assoziativ. Bei der Berechnung von A 1 A 2 A 3 entstehen Kosten von Kosten r 0 r 1 r 2 + r 0 r 2 r 3 bei der Reihenfolge (A 1 A 2 )A 3 und Kosten r 0 r 1 r 3 + r 1 r 2 r 3 bei der Reihenfolge A 1 (A 2 A 3 ). Beispiel: (r 0, r 1, r 2, r 3 ) = (5, 10, 3, 10): Kosten 300 bei der ersten Reihenfolge, 800 bei der zweiten. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

29 Matrixkettenmultiplikation Problem: Eingabe: Dimensionen r 0 r 1, r 1 r 2,..., r k 1 r k von Matrizen A 1,..., A k. Ausgabe: Eine ( optimale ) Klammerung, die bei der Berechnung von A 1 A k die Gesamtkosten (Anzahl aller Multiplikationen von Zahlen) minimiert. Seien c(r 0,..., r k ) die Kosten bei optimaler Klammerung, wobei k 2 und r 0, r 1,..., r k 1 beliebige ganze Zahlen sind. Für k = 1 setzen wir c(r 0, r 1 ) := 0 für alle r 0, r 1. Klar: c(r 0, r 1, r 2 ) = r 0 r 1 r 2. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

30 Matrixkettenmultiplikation Die optimale Lösung des Klammerungsproblems hat die Form (A 1 A l ) }{{} irgendwie geklammert (A l+1 A k ) }{{} irgendwie geklammert für ein 1 l < k (das wir nicht kennen!). Zentrale Beobachtung ( Optimale Substruktur ): Die Klammerungen in den Teilen A 1 A l bzw. A l+1 A k müssen optimale Kosten für die Teilprobleme liefern. Wäre z. B. die Teilklammerung von A 1 A l nicht optimal, dann könnte man durch Verbesserung dieses Teils die Gesamtkosten senken. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

31 Matrixkettenmultiplikation Aus dieser Beobachtung ergibt sich: Es gibt ein l, 1 l < k mit c(r 0,..., r k ) = c(r 0,..., r l ) + c(r l,..., r k ) + r 0 r l r k }{{} äußerste Matrizenmult.. Das l, das die Summe auf der rechten Seite minimiert, ist das richtige. Müssen: Optimale Klammerungen bzw. ihre Kosten für die Teilprobleme A 1 A l und A l+1 A k berechnen. Ansatz: Betrachte die Teilprobleme TP(i, j), das Teilprodukt A i A j, 1 i j n, mit minimalen Kosten zu berechnen. Parameter zu TP(i, j): r i 1,..., r j. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

32 Matrixkettenmultiplikation Beobachtung ( Optimale Substruktur ), angewendet auf das Teilproblem, liefert: Rekursionsformel Basisfall: c(r i 1, r i ) = 0, für 1 i k. Schrittfall: c(r i 1,..., r j ) = min i l<j {c(r i 1,..., r l ) + c(r l,..., r j ) + r i 1 r l r j }, für 1 i < j k. Bellman sche Optimalitätsgleichungen. (Checke diese Gleichung für j = i + 1!) Iterative Auflösung der Rekursionsformel! FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

33 Matrixkettenmultiplikation MatrixOptimal((r 0,..., r k )) Eingabe: Dimensionsvektor (r 0,..., r k ) Ausgabe: Kosten c(r 0,..., r k ) bei der optimalen Klammerung l[1..k,1..k]: Plan zur Ermittlung der optimalen Unterteilung; Datenstruktur: Matrizen C[1..k,1..k], l[1..k,1..k] (1) for i from 1 to k do (2) C[i,i] 0; (3) for i from 1 to k 1 do (4) C[i,i+1] r i 1 r i r i+1 ; (5) for d from 2 to k 1 do (6) for i from 1 to k d do (7) bestimme das l, i l < i+d, (8) das C = C[i,l] + C[l + 1,i+d] + r i 1 r l r i+d minimiert; (9) l[i,i+d] dieses l; (10) C[i,i+d] das minimale C; (11) Ausgabe: C[1..k,1..k] und l[1..k,1..k]. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

34 Matrixkettenmultiplikation Korrektheit: Man beweist durch Induktion über d = 0, 1,..., k 1 mit Hilfe der Bellman schen Optimalitätsgleichung, dass C[i,i + d] die Zahl c(r i 1,..., r i+d ) enthält. Übung: Man zeige, dass mit Hilfe der l[i,j]-werte die optimale Klammerung in Linearzeit ermittelt werden kann. Laufzeit: Die Minimumssuche in Zeile (8) kostet Zeit O(k); (6) (10) und (5) (10) ergibt sich eine Laufzeit von Θ(k 3 ). FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

35 Matrixkettenmultiplikation Beispiel: (r 0,..., r 4 ) = (3, 2, 2, 5, 6) C: l: i * * * * * * * Optimale Klammerung: (M 1 M 2 )(M 3 M 4 ). Kosten: 108 Multiplikationen. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

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

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

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

Probleme aus NP und die polynomielle Reduktion

Probleme aus NP und die polynomielle Reduktion Probleme aus NP und die polynomielle Reduktion Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 15. Dezember 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit

Mehr

Algorithmen und Datenstrukturen 1 Kapitel 3

Algorithmen und Datenstrukturen 1 Kapitel 3 Algorithmen und Datenstrukturen 1 Kapitel 3 Technische Fakultät robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2005/2006 3.6 Dynamische Programmierung Die rekursive Problemzerlegung kann

Mehr

Optimierung. Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen. Vorgehen: Dynamische Programmierung

Optimierung. Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen. Vorgehen: Dynamische Programmierung Optimierung Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen Optimierung I Dynamisches Programmieren Günther Greiner Lehrstuhl für Graphische Datenverarbeitung Sommersemester

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

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

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

3 Klassifikation wichtiger Optimierungsprobleme

3 Klassifikation wichtiger Optimierungsprobleme 3 Klassifikation wichtiger Optimierungsprobleme 3.1 Das MIN- -TSP Wir kehren nochmal zurück zum Handlungsreisendenproblem für Inputs (w {i,j} ) 1 i

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

15. Elementare Graphalgorithmen

15. Elementare Graphalgorithmen Graphen sind eine der wichtigste Modellierungskonzepte der Informatik Graphalgorithmen bilden die Grundlage vieler Algorithmen in der Praxis Zunächst kurze Wiederholung von Graphen. Dann Darstellungen

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

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

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

Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem

Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem Andreas Moser Dietmar Ebner Christian Schauer Markus Bauer 9. Dezember 2003 1 Einführung Der in der Vorlesung gezeigte Algorithmus für das Steiner

Mehr

Klausur Algorithmen und Datenstrukturen II 10. August 2015

Klausur Algorithmen und Datenstrukturen II 10. August 2015 Technische Universität Braunschweig Sommersemester 2015 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Dr. Christian Scheffer Klausur Algorithmen und Datenstrukturen

Mehr

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen

Mehr

3 Matrizenrechnung. 3. November

3 Matrizenrechnung. 3. November 3. November 008 4 3 Matrizenrechnung 3.1 Transponierter Vektor: Die Notation x R n bezieht sich per Definition 1 immer auf einen stehenden Vektor, x 1 x x =.. x n Der transponierte Vektor x T ist das zugehörige

Mehr

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20. Übersicht Datenstrukturen und Algorithmen Vorlesung 5: (K4) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.informatik.rwth-aachen.de/i2/dsal12/ 20.

Mehr

Erzeugendensystem und Basis

Erzeugendensystem und Basis Erzeugendensystem und Basis Definition Erzeugendensystem und Basis eines Unterraums Sei S F n 2 ein Unterraum. Eine Menge G = {g 1,..., g k } S heißt Erzeugendensystem von S, falls jedes x S als Linearkombination

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 0..0 Minimale Schnitte in Graphen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum

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

Das Heiratsproblem. Definition Matching

Das Heiratsproblem. Definition Matching Das Heiratsproblem Szenario: Gegeben: n Frauen und m > n Männer. Bekanntschaftsbeziehungen zwischen allen Männern und Frauen. Fragestellung: Wann gibt es für jede der Frauen einen Heiratspartner? Modellierung

Mehr

Übersicht über Informatik und Softwaresystemtechnik WS 99/00, Prof. Dr. Andreas Schwill

Übersicht über Informatik und Softwaresystemtechnik WS 99/00, Prof. Dr. Andreas Schwill Konvexe Hülle Hierbei handelt es sich um ein klassisches Problem aus der Algorithmischen Geometrie, dem Teilgebiet der Informatik, in dem man für geometrische Probleme effiziente Algorithmen bestimmt.

Mehr

Kapitel 5: Dynamisches Programmieren Gliederung

Kapitel 5: Dynamisches Programmieren Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

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

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

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

Mehr

Effiziente Algorithmen

Effiziente Algorithmen Effiziente Algorithmen Graphdurchläufe Vorlesender: Martin Aumüller (nach Folien von Prof. Martin Dietzfelbinger) April/Mai 0 FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 0 Einleitung Kapitel

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Makespan-Scheduling Kapitel 4: Approximationsalgorithmen (dritter Teil) (weitere Beispiele und Illustrationen an der Tafel) Hilfreiche Literatur: Vazarani: Approximation Algorithms, Springer Verlag, 2001.

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

Vorlesung Berechenbarkeit und Komplexität. Motivation, Übersicht und Organisatorisches

Vorlesung Berechenbarkeit und Komplexität. Motivation, Übersicht und Organisatorisches Berechenbarkeit und Komplexität: Motivation, Übersicht und Organisatorisches Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen Berechenbarkeit die absoluten Grenzen

Mehr

κ(k) k K S Algorithmus zur Bestimmung eines spannenden Baumes mit minimalen Kosten (Kruskal, 1965).

κ(k) k K S Algorithmus zur Bestimmung eines spannenden Baumes mit minimalen Kosten (Kruskal, 1965). 5. Graphenprobleme Im folgenden bezeichnen G = (E, K) einen endlichen Graphen mit der Eckenmenge E und der Kantenmenge K. G kann ungerichtet, gerichtet, schlicht oder nicht schlicht sein. 5.1 Spannende

Mehr

Klausur Theoretische Informatik I WS 2004/2005

Klausur Theoretische Informatik I WS 2004/2005 Technische Universität Chemnitz Chemnitz, den 22.02.2005 Fakultät für Informatik Prof. Dr. Andreas Goerdt Klausur Theoretische Informatik I WS 2004/2005 Studiengang Mechatronik Aufgabe 1 (2+2+2 Punkte)

Mehr

Rechnerische Komplexität

Rechnerische Komplexität Proseminar Effiziente Algorithmen SS 2002 Rechnerische Komplexität Ulrike Krönert (34180) 0. Inhalt 1. Einführung 2. Algorithmen und Komplexität 2.1. Algorithmen 2.2. Laufzeitabschätzung 2.3. Polynomialzeit

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

NP-vollständig - Was nun?

NP-vollständig - Was nun? Kapitel 4 NP-vollständig - Was nun? Wurde von einem Problem gezeigt, dass es NP-vollständig ist, ist das Problem damit nicht gelöst oder aus der Welt geschafft. In der Praxis muss es trotzdem gelöst werden.

Mehr

Überblick. TSP Vergleich der Lösungen. Das Travelling Salesman Problem. Nearest-Neighbor Heuristik für TSP

Überblick. TSP Vergleich der Lösungen. Das Travelling Salesman Problem. Nearest-Neighbor Heuristik für TSP Kap..1 Heuristiken Kap.. Approximative Algorithmen und Gütegarantien Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 3. VO DAP SS 008 14. Juli 009 Überblick

Mehr

Kap. 7.1 Heuristiken Kap. 7.2 Approximative Algorithmen und Gütegarantien

Kap. 7.1 Heuristiken Kap. 7.2 Approximative Algorithmen und Gütegarantien Kap. 7.1 Heuristiken Kap. 7.2 Approximative Algorithmen und Gütegarantien Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 23. VO DAP2 SS 2008 14. Juli 2009

Mehr

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra Effiziente Algorithmen und Datenstrukturen I Kapitel 10: Lineare Algebra Christian Scheideler WS 2008 19.02.2009 Kapitel 10 1 Überblick Notation Arithmetik auf großen Zahlen (Addition und Multiplikation)

Mehr

Customization (Zuschneiden)

Customization (Zuschneiden) Customization (Zuschneiden) Anpassen der (Graph)Datenstruktur an die Anwendung. I Ziel: schnell, kompakt. I benutze Entwurfsprinzip: make the common case fast I Listen vermeiden Mögliches Problem: Software-Engineering-Alptraum

Mehr

7. Transitive Hülle. Kante des Graphen. Zusatz-Kante der transitiven Hülle

7. Transitive Hülle. Kante des Graphen. Zusatz-Kante der transitiven Hülle In Anwendungen ist es oft interessant zu wissen, ob man überhaupt von einem Knoten v zu einem Knoten w gelangen kann, ganz gleich wie lang der Weg auch ist. Gegeben sei dabei ein gerichteter Graph G =

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

Kombinatorische Optimierung

Kombinatorische Optimierung Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesung 4 Programm des

Mehr

Klausur Algorithmen und Datenstrukturen II 29. Juli 2013

Klausur Algorithmen und Datenstrukturen II 29. Juli 2013 Technische Universität Braunschweig Sommersemester 2013 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Stephan Friedrichs Klausur Algorithmen und Datenstrukturen

Mehr

Dynamische Optimierung. Kapitel 4. Dynamische Optimierung. Peter Becker (H-BRS) Operations Research II Wintersemester 2014/15 160 / 206

Dynamische Optimierung. Kapitel 4. Dynamische Optimierung. Peter Becker (H-BRS) Operations Research II Wintersemester 2014/15 160 / 206 Kapitel 4 Dynamische Optimierung Peter Becker (H-BRS) Operations Research II Wintersemester 2014/15 160 / 206 Inhalt Inhalt 4 Dynamische Optimierung Allgemeiner Ansatz und Beispiele Stochastische dynamische

Mehr

Informatik II Greedy-Algorithmen

Informatik II Greedy-Algorithmen 7/7/06 lausthal Erinnerung: Dynamische Programmierung Informatik II reedy-algorithmen. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Zusammenfassung der grundlegenden Idee: Optimale Sub-Struktur:

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

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

3. Vorlesung. Arithmetische Theorien.

3. Vorlesung. Arithmetische Theorien. 3. Vorlesung. Arithmetische Theorien. In dieser Vorlesung wollen wir uns mit dem Begriff des Rechnens befassen und zwar mit dem angewandten als auch dem formalen Rechnen. Wir wissen dass die griechischen

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

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17 Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 6 Vorlesung Theoretische Grundlagen der Informatik im WS 16/17 Ausgabe 22. Dezember 2016 Abgabe 17. Januar 2017, 11:00 Uhr

Mehr

Effiziente Algorithmen I

Effiziente Algorithmen I H 10. Präsenzaufgabenblatt, Wintersemester 2015/16 Übungstunde am 18.01.2015 Aufgabe Q Ein Reiseveranstalter besitzt ein Flugzeug, das maximal p Personen aufnehmen kann. Der Veranstalter bietet einen Flug

Mehr

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Vortrag von Michael Daumen am 13.12.2000 Thema : Minimum Spanning Tree und 2-Approximation der TSP-Tour Inhalt des Vortrags : 1. genaue Vorstellung des

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Große Übung #6 Phillip Keldenich, Arne Schmidt 26.02.2017 Heute: Master-Theorem Phillip Keldenich, Arne Schmidt Große Übung 2 Vorbetrachtungen Wir betrachten rekursive Gleichungen

Mehr

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind.

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind. 3.5 Gerichteter Pfad Definition 291 Eine Folge (u 0, u 1,..., u n ) mit u i V für i = 0,..., n heißt gerichteter Pfad, wenn ( i {0,..., n 1} ) [ (u i, u i+1 ) A]. Ein gerichteter Pfad heißt einfach, falls

Mehr

Algorithmen II Vorlesung am 15.11.2012

Algorithmen II Vorlesung am 15.11.2012 Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales

Mehr

Übung zur Vorlesung Berechenbarkeit und Komplexität

Übung zur Vorlesung Berechenbarkeit und Komplexität RWTH Aachen Lehrgebiet Theoretische Informatik Reidl Ries Rossmanith Sanchez Tönnis WS 2012/13 Übungsblatt 9 10.12.2012 Übung zur Vorlesung Berechenbarkeit und Komplexität Aufgabe T20 Beweisen Sie die

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

11. Übung zu Algorithmen I 6. Juli 2016

11. Übung zu Algorithmen I 6. Juli 2016 11. Übung zu Algorithmen I 6. Juli 2016 Lisa Kohl lisa.kohl@kit.edu mit Folien von Lukas Barth Roadmap Ausblick: Was sind schwierige Probleme? Travelling Salesman Problem - Reprise ein ILP ein Algorithmus

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

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 Robert Elsässer Paderborn, den 15. Mai 2008 u.v.a. Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 AUFGABE 1 (6 Punkte): Nehmen wir an, Anfang bezeichne in einer normalen

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

Approximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling

Approximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling Approximationsalgorithmen: Klassiker I Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling VO Approximationsalgorithmen WiSe 2011/12 Markus Chimani

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

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck Lemma 15 KLP 1 ist genau dann lösbar, wenn das dazugehörige LP KLP 2 eine Lösung mit dem Wert Z = 0 besitzt. Ist Z = 0 für x 0, x 0, dann ist x eine zulässige Lösung von KLP 1. Beweis von Lemma 15: Nach

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

13. Der diskrete Logarithmus

13. Der diskrete Logarithmus 13. Der diskrete Logarithmus 13.1. Definition. Sei p eine Primzahl. Wie wir in 9 bewiesen haben, ist die multiplikative Gruppe F p des Körpers F p = Z/p zyklisch. Sei g ein erzeugendes Element von F p

Mehr

Einführung in Heuristische Suche

Einführung in Heuristische Suche Einführung in Heuristische Suche Beispiele 2 Überblick Intelligente Suche Rundenbasierte Spiele 3 Grundlagen Es muss ein Rätsel / Puzzle / Problem gelöst werden Wie kann ein Computer diese Aufgabe lösen?

Mehr

Randomisierte Algorithmen 2. Erste Beispiele

Randomisierte Algorithmen 2. Erste Beispiele Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35 Randomisierter Identitätstest

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

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

Lösung zur Übung für Analysis einer Variablen WS 2016/17

Lösung zur Übung für Analysis einer Variablen WS 2016/17 Blatt Nr. 3 Prof. F. Merkl Lösung zur Übung für Analysis einer Variablen WS 206/7 Aufgabe Das Guthaben G setzt sich zusammen aus der Summe aller bisherigen Einzahlungen multipliziert mit ( + p) k, wobei

Mehr

Kapitel 2. Suche nach endlich vielen Wörtern. R. Stiebe: Textalgorithmen, Winter 2005/06 113

Kapitel 2. Suche nach endlich vielen Wörtern. R. Stiebe: Textalgorithmen, Winter 2005/06 113 Kapitel 2 Suche nach endlich vielen Wörtern R. Stiebe: Textalgorithmen, Winter 2005/06 113 Übersicht Aufgabenstellung Gegeben: Text T und eine endliche Menge von Wörtern P = {P 1,..., P r }; Gesucht: alle

Mehr

Wie findet man den optimalen Weg zum Ziel? Klassische Probleme der Kombinatorischen Optimierung

Wie findet man den optimalen Weg zum Ziel? Klassische Probleme der Kombinatorischen Optimierung Wie findet man den optimalen Weg zum Ziel? Klassische Probleme der Kombinatorischen Optimierung Teilnehmer/innen: Markus Dahinten, Graf Münster Gymnasium Bayreuth Robert Fay, Herder Gymnasium Berlin Falko

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen 1 Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Ziele 2 Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

Skript und Übungen Teil II

Skript und Übungen Teil II Vorkurs Mathematik Herbst 2009 M. Carl E. Bönecke Skript und Übungen Teil II Das erste Semester wiederholt die Schulmathematik in einer neuen axiomatischen Sprache; es ähnelt damit dem nachträglichen Erlernen

Mehr

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

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

Mehr

Klausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014

Klausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014 Klausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014 Klausurnummer Nachname: Vorname: Matr.-Nr.: Aufgabe 1 2 3 4 5 6 7 max. Punkte 6 8 4 7 5 6 8 tats. Punkte Gesamtpunktzahl: Note: Punkte Aufgabe

Mehr

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2015

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2015 und Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2015 4. April 2016 Zu der Vorlesung wird ein Skript erstellt, welches auf meiner Homepage veröffentlicht wird: http://www.math.uni-hamburg.de/home/geschke/lehre.html

Mehr

Binary Decision Diagrams (Einführung)

Binary Decision Diagrams (Einführung) Binary Decision Diagrams (Einführung) Binary Decision Diagrams (BDDs) sind bestimmte Graphen, die als Datenstruktur für die kompakte Darstellung von booleschen Funktionen benutzt werden. BDDs wurden von

Mehr

Das Multi Traveling Salesman Problem

Das Multi Traveling Salesman Problem Das Multi Traveling Salesman Problem Harald Voit Seminar Ganzzahlige Optimierung 19. bis 21. Januar 2007 Wallenfels Das Multi Traveling Salesman Problem p.1/26 Übersicht Vom TSP zum ATSP Das Multi Traveling

Mehr

6. Übung zur Linearen Optimierung SS08

6. Übung zur Linearen Optimierung SS08 6 Übung zur Linearen Optimierung SS08 1 Sei G = (V, E) ein schlichter ungerichteter Graph mit n Ecken und m Kanten Für eine Ecke v V heißt die Zahl der Kanten (u, v) E Grad der Ecke (a) Ist die Anzahl

Mehr

Effiziente Algorithmen Übung 2

Effiziente Algorithmen Übung 2 Effiziente Algorithmen Übung 2 Aufgabe 3 Circular Reversal Sort Gruppe E Martin Schliefnig, 0160919 Christoph Holper, 9927191 Ulrike Ritzinger, 0125779 1. Problemstellung Ein DNA Molekül muss nicht immer

Mehr

Dynamische Programmierung

Dynamische Programmierung Dynamische Programmierung Manuel Grandeit Hallo Welt -Seminar 28.06.2011 Manuel Grandeit 1 / 40 Inhaltsübersicht Einführung Münzwechsel Was ist ein Zustand? Konstruktion einer DP-Lösung Top-Down-DP Bottom-Up-DP

Mehr

Beispiel-Prüfungsfragen Effiziente Algorithmen M. Dietzfelbinger, Stand 29. Juli 2013.

Beispiel-Prüfungsfragen Effiziente Algorithmen M. Dietzfelbinger, Stand 29. Juli 2013. Beispiel-Prüfungsfragen für Effiziente Algorithmen M. Dietzfelbinger, Stand 29. Juli 2013. Vorbemerkung: Die Liste der Beispielfragen soll bei der Vorbereitung helfen. Sie definiert nicht den Prüfungsstoff

Mehr

Algorithmen zum Lösen von Vertex und Set Cover Instanzen zur Planung von Angriffen auf Netzwerke

Algorithmen zum Lösen von Vertex und Set Cover Instanzen zur Planung von Angriffen auf Netzwerke Algorithmen zum Lösen von Vertex und Set Cover Instanzen zur Planung von Angriffen auf Netzwerke Steve Göring 13.07.2012 1/18 Gliederung Einleitung Grundlagen Vertex-Cover-Problem Set-Cover-Problem Lösungsalgorithmen

Mehr

Übungspaket 23 Mehrdimensionale Arrays

Übungspaket 23 Mehrdimensionale Arrays Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:

Mehr

(Prüfungs-)Aufgaben zur Berechenbarkeits- und Komplexitätstheorie

(Prüfungs-)Aufgaben zur Berechenbarkeits- und Komplexitätstheorie (Prüfungs-)Aufgaben zur Berechenbarkeits- und Komplexitätstheorie 1) Schreiben Sie ein LOOP-Programm, das die Funktion f: N \ {0} N, f (n) = n n berechnet. Sie dürfen in Ihrem Programm die Multiplikation

Mehr

Seminar Graphenfärbung Greedy-Färbung und Verwandtes

Seminar Graphenfärbung Greedy-Färbung und Verwandtes Seminar Graphenfärbung Greedy-Färbung und Verwandtes Stefan Heinz 4. Juni 2004 Zusammenfassung Das Problem der Berechnung der chromatischen Zahl χ(g) ist N P-schwer, so dass es vermutlich keinen Algorithmus

Mehr

Drehung um einen Punkt um Winkel α.

Drehung um einen Punkt um Winkel α. Drehung um einen Punkt um Winkel α. Sei A R 2 und α R. Drehung um A um Winkel α ist eine Abbildung D A (α) : R 2 R 2 welche wie folgt definiert ist: D A (α) = T A D 0 (α) T ( A), wobei die Abbildung D

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 Clustering: Partitioniere Objektmenge in Gruppen(Cluster), so dass sich Objekte in einer Gruppe ähnlich sind und Objekte

Mehr

Probabilistische Primzahltests

Probabilistische Primzahltests 23.01.2006 Motivation und Überblick Grundsätzliches Vorgehen Motivation und Überblick Als Primzahltest bezeichnet man ein mathematisches Verfahren, mit dem ermittelt wird, ob eine gegebene Zahl eine Primzahl

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

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48 Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48 Grundbegriffe der Informatik Einheit 12: Erste Algorithmen in Graphen Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009

Mehr

Der Alpha-Beta-Algorithmus

Der Alpha-Beta-Algorithmus Der Alpha-Beta-Algorithmus Maria Hartmann 19. Mai 2017 1 Einführung Wir wollen für bestimmte Spiele algorithmisch die optimale Spielstrategie finden, also die Strategie, die für den betrachteten Spieler

Mehr

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). 8. Untere Schranken für Sortieren Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). Werden nun gemeinsame Eigenschaften dieser Algorithmen untersuchen. Fassen gemeinsame

Mehr

Die Verbindung von Linearer Programmierung und Graphentheorie

Die Verbindung von Linearer Programmierung und Graphentheorie Die Verbindung von Linearer Programmierung und Graphentheorie Definition 5.9. Ein kombinatorisches Optimierungsproblem entspricht einem LP, bei dem statt der Vorzeichenbedingungen x i 0 Bedingungen der

Mehr

Der folgende Vortrag basiert auf dem Text A Polynomial Time Algorithm for the N-Queens Problem von Rok Sosic und Jun Gu aus dem Jahre 1990.

Der folgende Vortrag basiert auf dem Text A Polynomial Time Algorithm for the N-Queens Problem von Rok Sosic und Jun Gu aus dem Jahre 1990. Ein polynomieller Algorithmus für das N-Damen Problem 1 Einführung Der folgende Vortrag basiert auf dem Text A Polynomial Time Algorithm for the N-Queens Problem von Rok Sosic und Jun Gu aus dem Jahre

Mehr