11. Übung Algorithmen I

Größe: px
Ab Seite anzeigen:

Download "11. Übung Algorithmen I"

Transkript

1 Timo Bingmann, Christian Schulz INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS KIT Timo Universität Bingmann, des LandesChristian Baden-Württemberg Schulz und nationales Forschungszentrum in der Helmholtz-Gemeinschaft Institut für Theoretische Informatik

2 Organisatorisches Klausuranmeldung bis einschließlich.7.3 Erlaubte Hilfsmittel für die Klausur: blauer oder schwarzer Stift DIN-A4 Blatt (beidseitig) handbeschrieben für die Identifikation: Studentenausweis Timo Bingmann, Christian Schulz

3 Inhalt Lineare Programmierung Dynamische Programmierung Faltungscodes und der Viterbi-Algorithmus 3 Timo Bingmann, Christian Schulz

4 Lineare Programmierung. Teil 4 Timo Bingmann, Christian Schulz

5 Beispiel: Süßwarenfabrik Matrixform maximiere unter 50 x A + 70 x B x A kg x B 70 kg 0,8 x A + 0,7 x B kg 0,06 x A + 0, x B 5 kg x 0 oder: ( ) t 0 kg 50 max x 70 x R, x 0, 0 0,8 0,7 x 70 kg kg 0,06 0, 5 kg (Eine) allgemeine Matrixform: max{c t x x R n, x 0, Ax b} mit A R m n, b R m, c R n. 5 Timo Bingmann, Christian Schulz

6 Verbindung zu Graph-Problemen Graph (V, E) mit Gewichten c : E R +. max{f (x) x R V, x 0,...} oder max{f (x) x R E, x 0,...} 6 Timo Bingmann, Christian Schulz

7 Verbindung zu Graph-Problemen Graph (V, E) mit Gewichten c : E R +. max{f (x) x R V, x 0,...} oder max{f (x) x R E, x 0,...} Kürzeste Wege: { } max d v d R V, d s = 0, d w d v + c(v, w) (v, w) E v V 6 Timo Bingmann, Christian Schulz

8 Verbindung zu Graph-Problemen Graph (V, E) mit Gewichten c : E R +. s 0 3 max{f (x) x R V, x 0,...} oder max{f (x) x R E, x 0,...} Kürzeste Wege: { } max d v d R V, d s = 0, d w d v + c(v, w) (v, w) E v V 6 Timo Bingmann, Christian Schulz

9 Verbindung zu Graph-Problemen Graph (V, E) mit Gewichten c : E R s 0 3 max{f (x) x R V, x 0,...} oder max{f (x) x R E, x 0,...} Kürzeste Wege: { } max d v d R V, d s = 0, d w d v + c(v, w) (v, w) E v V 6 Timo Bingmann, Christian Schulz

10 Minimum Spanning Tree LP Zusammenhängender Graph (V, E) mit Gewichten c : E R +. { } min c(e)x e x R E, x 0,... e E 7 Timo Bingmann, Christian Schulz

11 Minimum Spanning Tree LP Zusammenhängender Graph (V, E) mit Gewichten c (R + ) E. min ct x x R E, x 0, 8 Timo Bingmann, Christian Schulz

12 Minimum Spanning Tree LP Zusammenhängender Graph (V, E) mit Gewichten c (R + ) E. min ct x x R E, x 0, x e = V, e E 8 Timo Bingmann, Christian Schulz

13 Minimum Spanning Tree LP Zusammenhängender Graph (V, E) mit Gewichten c (R + ) E. min ct x x R E, x 0, x e = V, e E A V A : e E(G[A]) x e A wobei A über alle nicht-leere Knotenteilmengen läuft und E(G[A]) alle Kanten mit Endknoten in A sind. 8 Timo Bingmann, Christian Schulz

14 Minimum Spanning Tree LP Zusammenhängender Graph (V, E) mit Gewichten c (R + ) E. min ct x x R E, x 0, x e = V, e E A V A : e E(G[A]) x e A wobei A über alle nicht-leere Knotenteilmengen läuft und E(G[A]) alle Kanten mit Endknoten in A sind. 8 Timo Bingmann, Christian Schulz

15 Dynamisches Programmieren 9 Timo Bingmann, Christian Schulz

16 Algorithmus Entwurfsprinzip: dynamische Programmierung Aufbau von Lösungen aus Bausteinen Optimalitätsprinzip: Optimale Lösungen bestehen aus optimalen Lösungen für Teilprobleme Mehrere optimale Lösungen es ist egal welche benutzt wird Timo Bingmann, Christian Schulz

17 Fibonacci-Zahlen Beispiel: f (n) = f (n ) + f (n ), f () =, f (0) = Rekursiver Ansatz? : procedure fib(n N) : if n {0, } then return 3: else return fib(n ) + fib(n ) 4: return Problem: Mehrfachberechnung von Lösungen f (5) = f (4) + f (3) f (5) = f (3) + f () + f () + f () Timo Bingmann, Christian Schulz

18 Fibonacci-Zahlen Beispiel: f (n) = f (n ) + f (n ), f () =, f (0) = Baue f (n) aus Teillösungen Bottom-Up zusammen Merke Zwischenlösungen (z.b. in Tabelle) Function fib(n of N) : f := Array <,, 0,..., 0 > for j := 3 to n do f [j] = f [j ] + f [j ] return f [n] // array of size n Timo Bingmann, Christian Schulz

19 Largest One Submatrix Problem: Gegeben eine m n Matrix über {0, }, finde die größte quadratische Teilmatrix, die nur aus en besteht Timo Bingmann, Christian Schulz

20 Largest One Submatrix Problem: Gegeben eine m n Matrix über {0, }, finde die größte quadratische Teilmatrix, die nur aus en besteht Timo Bingmann, Christian Schulz

21 Largest One Submatrix Teilproblemstruktur: Verwende Lösungen der Teilmatrizen und baue so Gesamtlösung auf Matrix M {0, } m n Zusätzliche Matrix S N m n initialisiert mit 0 M[i][j] == 0 :S[i][j] = 0 M[i][j] == :S[i][j] = min(s[i][j ], S[i ][j], S[i ][j ]) + 4 Timo Bingmann, Christian Schulz

22 Largest One Submatrix M = S = M[i][j] == 0 :S[i][j] = 0 M[i][j] == :S[i][j] = min(s[i][j ], S[i ][j], S[i ][j ]) + initialisiere S: S[0][ ] := M[0][ ], S[ ][0] := M[ ][0] 5 Timo Bingmann, Christian Schulz

23 Largest One Submatrix M = S = M[i][j] == 0 :S[i][j] = 0 M[i][j] == :S[i][j] = min(s[i][j ], S[i ][j], S[i ][j ]) + initialisiere S: S[0][ ] := M[0][ ], S[ ][0] := M[ ][0] Lösung iterativ durch bekannte Teillösungen aufbauen 5 Timo Bingmann, Christian Schulz

24 Largest One Submatrix M = S = M[i][j] == 0 :S[i][j] = 0 M[i][j] == :S[i][j] = min(s[i][j ], S[i ][j], S[i ][j ]) + initialisiere S: S[0][ ] := M[0][ ], S[ ][0] := M[ ][0] Lösung iterativ durch bekannte Teillösungen aufbauen 5 Timo Bingmann, Christian Schulz

25 Largest One Submatrix M = S = M[i][j] == 0 :S[i][j] = 0 M[i][j] == :S[i][j] = min(s[i][j ], S[i ][j], S[i ][j ]) + initialisiere S: S[0][ ] := M[0][ ], S[ ][0] := M[ ][0] Lösung iterativ durch bekannte Teillösungen aufbauen 5 Timo Bingmann, Christian Schulz

26 Largest One Submatrix M = S = M[i][j] == 0 :S[i][j] = 0 M[i][j] == :S[i][j] = min(s[i][j ], S[i ][j], S[i ][j ]) + initialisiere S: S[0][ ] := M[0][ ], S[ ][0] := M[ ][0] Lösung iterativ durch bekannte Teillösungen aufbauen 5 Timo Bingmann, Christian Schulz

27 Largest One Submatrix M = S = M[i][j] == 0 :S[i][j] = 0 M[i][j] == :S[i][j] = min(s[i][j ], S[i ][j], S[i ][j ]) + initialisiere S: S[0][ ] := M[0][ ], S[ ][0] := M[ ][0] Lösung iterativ durch bekannte Teillösungen aufbauen S fertig 5 Timo Bingmann, Christian Schulz

28 Largest One Submatrix M = S = M[i][j] == 0 :S[i][j] = 0 M[i][j] == :S[i][j] = min(s[i][j ], S[i ][j], S[i ][j ]) + initialisiere S: S[0][ ] := M[0][ ], S[ ][0] := M[ ][0] Lösung iterativ durch bekannte Teillösungen aufbauen S fertig 5 Timo Bingmann, Christian Schulz

29 Largest One Submatrix M = S = M[i][j] == 0 :S[i][j] = 0 M[i][j] == :S[i][j] = min(s[i][j ], S[i ][j], S[i ][j ]) + initialisiere S: S[0][ ] := M[0][ ], S[ ][0] := M[ ][0] Lösung iterativ durch bekannte Teillösungen aufbauen S fertig 5 Timo Bingmann, Christian Schulz

30 Largest One Submatrix Code Function largest_square_submatrix(m[m, n] of Matrix) : N S :=Matrix // solution matrix S[0][ ] := M[0][ ] // one for loop S[ ][0] := M[ ][0] // one for loop for i := to m do for j := to n do if M[i][j] == then S[i][j] := min(s[i][j ], S[i ][j], S[i ][j ]) + else S[i][j] := 0 return max i,j S[i][j] // two for loops Komplexität: O(mn) = O(#Matrixelemente) 6 Timo Bingmann, Christian Schulz

31 Maximum Subarray Problem Problem: Gegeben ein Array von Zahlen (positiv, negativ), finde das (zusammenhängende) Teilarray mit der größten Summe. Trivialer Algorithmus in O ( n ),, 3, 4,,,, 5, 4 berechne die Summe aller Teilarrays (zwei For-Schleifen) Besser: dynamische Programmierung verwenden O(n) 7 Timo Bingmann, Christian Schulz

32 Maximum Subarray Problem Problem: Gegeben ein Array von Zahlen (positiv, negativ), finde das (zusammenhängende) Teilarray mit der größten Summe.,, 3, 4,,,, 5, 4 Besser: dynamische Programmierung verwenden O(n) Algorithmus: scanne einmal über das Array: Function largest_cont_subseq(a Array of N) : Z overall_max=a[0] : N; cur_max=a[0] : N; for i := to size(a) do cur_max = max(a[i], cur_max + A[i]); overall_max = max(overall_max, cur_max); return overall_max 7 Timo Bingmann, Christian Schulz

33 Maximum Subarray Problem Problem: Gegeben ein Array von Zahlen (positiv, negativ), finde das (zusammenhängende) Teilarray mit der größten Summe. original: -,, -3, 4, -,,, -5, 4 cur_max: -,, -, 4, 3, 5, 6,, 5 8 Timo Bingmann, Christian Schulz

34 Maximum Submatrix Problem Problem: Gegeben eine n n Matrix M über Z, finde die Teilmatrix, die die größte Summe hat. Summe=Max! Brute-Force: alle Teilmatrizen ( ausrechnen pro Teilmatrix O n ) Zeit ( O n 4) Teilmatrizen 3 insgesamt O (n 6) 9 Timo Bingmann, Christian Schulz

35 Maximum Submatrix Problem Problem: Gegeben eine n n Matrix M über Z, finde die Teilmatrix, die die größte Summe hat. Summe=Max! Summe S_i,j Besser: Dinge vorberechnen errechne Matrix S: S i,j = Elemente links-oberhalb von M i,j einschließlich der Zeile i und Spalte j 0 Timo Bingmann, Christian Schulz

36 Maximum Submatrix Problem Problem: Gegeben eine n n Matrix M über Z, finde die Teilmatrix, die die größte Summe hat. A B Summe=Max! C D E Besser: Dinge vorberechnen errechne Matrix S: S i,j = Elemente links-oberhalb von M i,j einschließlich der Zeile i und Spalte j pro Teilmatrix O() Zeit, insgesamt O (n 4) 0 Timo Bingmann, Christian Schulz

37 Maximum Submatrix Problem Summe=Max! Noch besser: Dinge vorberechen + Dynamische Programmierung Prefixsummen der Spalten von M in Matrix S speichern S i,j = il= M l,j Timo Bingmann, Christian Schulz

38 Maximum Submatrix Problem i K Summe=Max! j A Summe Noch besser: Dinge vorberechen + Dynamische Programmierung Prefixsummen der Spalten von M in Matrix S speichern S i,j = il= M l,j probiere alle Zeilenpaare i < j pro Zeilenpaar berechene Array A[,..., n] A[K ] = j l=i M l,k = S j,k S i,k Timo Bingmann, Christian Schulz

39 Maximum Submatrix Problem i K Summe=Max! j A Summe Noch besser: Dinge vorberechen + Dynamische Programmierung Prefixsummen der Spalten von M in Matrix S speichern S i,j = il= M l,j probiere alle Zeilenpaare i < j pro Zeilenpaar berechene Array A[,..., n] A[K ] = j l=i M l,k = S j,k S i,k 3 auf A Maximum Subarray Problem lösen Timo Bingmann, Christian Schulz

40 Maximum Submatrix Problem i K Summe=Max! j A Summe Noch besser: Dinge vorberechen + Dynamische Programmierung Prefixsummen der Spalten von M in Matrix S speichern O ( n ) Zeit probiere alle Zeilenpaare i < j O ( n ) viele Zeilenpaare pro Zeilenpaar O(n) 3 insgesamt O (n 3) Timo Bingmann, Christian Schulz

41 Faltungscodes und der Viterbi-Algorithmus 80. WLAN Timo Bingmann, Christian Schulz

42 Ein Faltungscode als Schieberegister I s Output A Output B I s Input I s s s I s Output C 3 Timo Bingmann, Christian Schulz

43 Ein Faltungscode als Schieberegister 0 = Output A = Output B 0 Input = Output C Input: Output: 3 Timo Bingmann, Christian Schulz

44 Ein Faltungscode als Schieberegister = Output A 0 = Output B 0 Input = Output C Input: Output: 3 Timo Bingmann, Christian Schulz

45 Ein Faltungscode als Schieberegister = Output A 0 = Output B 0 Input = Output C Input: Output: 3 Timo Bingmann, Christian Schulz

46 Ein Faltungscode als Schieberegister 0 = Output A = Output B Input = Output C Input: Output: 3 Timo Bingmann, Christian Schulz

47 Ein Faltungscode als Schieberegister 0 0 = Output A = Output B 0 Input = Output C Input: 0 Output: 0 3 Timo Bingmann, Christian Schulz

48 Ein Faltungscode als Schieberegister 0 0 = Output A = Output B 0 0 Input = Output C Input: Output: 0 3 Timo Bingmann, Christian Schulz

49 Ein Faltungscode als Schieberegister 0 0 = Output A 0 = Output B 0 Input Input: Output: 0 0 = Output C Redundanz in Übertragung ermöglicht Fehlerkorrektur! 3 Timo Bingmann, Christian Schulz

50 Ein Faltungscode als Schieberegister 0 0 = Output A 0 = Output B 0 Input Das 80.a Schieberegister Input: Output: 0 0 = Output C Output A Redundanz Input s in Übertragung s s ermöglicht 3 s 4 s Fehlerkorrektur! 5 s 6 3 Timo Bingmann, Christian Schulz Output B

51 Ein Faltungscode als Mealy-Automat 0/0 0/ / / 0/ 0/0 / / Legende: Kantenbeschriftung ist Input/Output. 4 Timo Bingmann, Christian Schulz

52 Ein Faltungscode als Trellis t 0 0 t 0 t 0 t 3 0 t 4 0 t 5 0 t Input: Output: 0 5 Timo Bingmann, Christian Schulz

53 Ein Faltungscode als Trellis t 0 0 t 0 t 0 t 3 0 t 4 0 t 5 0 t Input: Output: 0 5 Timo Bingmann, Christian Schulz

54 Ein Faltungscode als Trellis t 0 0 t 0 t 0 t 3 0 t 4 0 t 5 0 t Input: Output: 0 Aber, wie dekodiert man 0? 5 Timo Bingmann, Christian Schulz

55 Faltungscode: Fehlerkorrektur? Dekodiere: 0? Ziel: Finde die Eingabe, deren Kodierung die geringste Hamming-Distanz (Einzelbit-Fehler) zum gelesenen Codewort hat. 6 Timo Bingmann, Christian Schulz

56 Faltungscode: Fehlerkorrektur? Dekodiere: 0? Ziel: Finde die Eingabe, deren Kodierung die geringste Hamming-Distanz (Einzelbit-Fehler) zum gelesenen Codewort hat. Erster Algorithmus: Enumeriere alle gültige Codewörter, berechne Hamming-Distanz und finde so die wahrscheinlichste Eingabe (maximum likelyhood detection). 6 Timo Bingmann, Christian Schulz

57 Dekodiere: 0 Eingabe = Codewort Distanz = = = = = = 0 = = 0 0 = = = 0 8 = 0 8 = = 0 = = Timo Bingmann, Christian Schulz

58 Dekodiere: 0 Eingabe = Codewort Distanz = = = = = = 0 = = 0 0 = = = 0 8 = 0 8 = = 0 = = Timo Bingmann, Christian Schulz

59 Dekodiere im Trellis Dekodiere: 0? t 0 0 t 0 t 0 t 3 0 t 4 0 t 5 0 t Timo Bingmann, Christian Schulz

60 Dekodiere im Trellis Dekodiere: 0? t 0 t t t 3 t 4 3 t 5 t Timo Bingmann, Christian Schulz

61 Dekodiere im Trellis Dekodiere: 0? t 0 t 0 t 3 t 3 5 t t 5 3 t Verwende Bellman-Ford: Timo Bingmann, Christian Schulz

62 Dekodiere im Trellis Dekodiere: 0? t 0 t 0 t 3 t 3 5 t t 5 3 t Verwende Bellman-Ford: kürzester Pfad entspricht. 9 Timo Bingmann, Christian Schulz

63 Der Viterbi-Algorithmus (Pseudocode) t k w[k ][] w[k ][] w[k ][] w[k ][] w[k][z] = t k w[k][] w[k][] w[k][] w[k][] min v Vorgänger(z) Procedure Viterbi(A : Folge, G : Schichtengraph) w[0][z] := 0, pre[0][z] := nil z Zustände(G) foreach k =,..., #Schichten(G) foreach z Zustände(G) Wähle unter allen v Vorgängern(z) denjenigen mit besten Kosten unter w[k ][v], Kante(v, z) und A[k] aus. Setze w[k][z] und pre[k][z]. wobei im Beispiel Zustände(G) = {,,, }, Vorgänger(z) die Vorgängerzustände von z sind und w[k ][v] + Hamming(A[k], Kante(v, z)) 30 Timo Bingmann, Christian Schulz

64 Der Viterbi-Algorithmus Schichten-Graph erlaubt effiziente Implementierung des kürzesten Pfad Algorithmus mit nur einer Variable pro Ebenen im Trellis oder Knoten im Automaten. Der Viterbi-Algorithmus funktioniert auch in allgemeineren Fällen: Wahrscheinlichkeiten statt Distanzen (Logarithmierungstrick) Beste Pfade in Hidden Markov Models (siehe Automaten). 3 Timo Bingmann, Christian Schulz

65 Der Viterbi-Algorithmus Schichten-Graph erlaubt effiziente Implementierung des kürzesten Pfad Algorithmus mit nur einer Variable pro Ebenen im Trellis oder Knoten im Automaten. Der Viterbi-Algorithmus funktioniert auch in allgemeineren Fällen: Wahrscheinlichkeiten statt Distanzen (Logarithmierungstrick) Beste Pfade in Hidden Markov Models (siehe Automaten). Weitere wichtige Optimierung: Da der Faltungscode im Beispiel nur vier Zustände hat und jeder Knoten genau zwei Ausgangskanten hat, gibt von jedem Knoten in Schicht k zu jedem Knoten in Schicht k + 3 mehr als ein Pfad. Bei der Berechnung von Schicht k + 3 steht der kürzeste Teilpfad von Schicht 0 bis k bereits fest. Die entsprechenden Bits können schon ausgegeben werden. 3 Timo Bingmann, Christian Schulz

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS Julian Arz, Timo Bingmann, Sebastian Schlag INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Julian Universität Arz, des Timo LandesBingmann, Baden-Württemberg Sebastian und Schlag nationales

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

9. Übung Algorithmen I

9. Übung Algorithmen I INSTITUT FÜR THEORETISCHE INFORMATIK 1 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft Institut für Theoretische www.kit.edu Informatik Musterlösung

Mehr

9. Übung Algorithmen I

9. Übung Algorithmen I Timo Bingmann, Christian Schulz INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Timo Universität Bingmann, des LandesChristian Baden-Württemberg Schulz und nationales Forschungszentrum in der

Mehr

12. Übung Algorithmen I

12. Übung Algorithmen I 12. Übung Algorithmen I Timo Bingmann, Christian Schulz INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Timo Universität Bingmann, des LandesChristian Baden-Württemberg Schulz und 12. Übung Algorithmen

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

Programmierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland.

Programmierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland. 1 Programmierung 2 Dynamische Programmierung Sebastian Hack hack@cs.uni-saarland.de Klaas Boesche boesche@cs.uni-saarland.de Sommersemester 2012 2 Übersicht Stammt aus den Zeiten als mit Programmierung

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

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

8. Übung zu Algorithmen I 15. Juni 2016

8. Übung zu Algorithmen I 15. Juni 2016 8. Übung zu Algorithmen I 15. Juni 2016 Lisa Kohl Lisa.Kohl@kit.edu (mit Folien von Julian Arz, Timo Bingmann, Sebastian Schlag, Christian Staudt und Christoph Striecks) Nachtrag: Quicksort, alternative

Mehr

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS Julian Arz, Timo Bingmann, Sebastian Schlag INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Julian Universität Arz, des Timo LandesBingmann, Baden-Württemberg Sebastian und Schlag nationales

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

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

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

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Übung 8 Dirk Achenbach 7. Februar 2013 I NSTITUT FÜR K RYPTOGRAPHIE UND S ICHERHEIT KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum

Mehr

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. 8. A & D - Heapsort Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. Genauer werden wir immer wieder benötigte Operationen durch Datenstrukturen unterstützen.

Mehr

Lösungsvorschlag Serie 2 Rekursion

Lösungsvorschlag Serie 2 Rekursion (/) Lösungsvorschlag Serie Rekursion. Algorithmen-Paradigmen Es gibt verschiedene Algorithmen-Paradigmen, also grundsätzliche Arten, wie man einen Algorithmus formulieren kann. Im funktionalen Paradigma

Mehr

Klausur Informatik B April Teil I: Informatik 3

Klausur Informatik B April Teil I: Informatik 3 Informatik 3 Seite 1 von 8 Klausur Informatik B April 1998 Teil I: Informatik 3 Informatik 3 Seite 2 von 8 Aufgabe 1: Fragekatalog (gesamt 5 ) Beantworten Sie folgende Fragen kurz in ein oder zwei Sätzen.

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

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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren Teilnehmerkreis und Voraussetzungen Studiengänge

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

Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, Uhr Bearbeitungszeit: 105 Minuten

Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, Uhr Bearbeitungszeit: 105 Minuten Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, 13.00-14.45 Uhr Bearbeitungszeit: 105 Minuten Schalten Sie ihr Mobiltelefon aus. Bei der Klausur ist als einziges

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

Übung zu Drahtlose Kommunikation. 9. Übung

Übung zu Drahtlose Kommunikation. 9. Übung Übung zu Drahtlose Kommunikation 9. Übung 07.01.2012 (n,k,k) k -> Eingangsbit (Informationszeichen ist 1 Bit lang) K -> Begrenzungsfaktor (Länge des Schieberegisters ist k*k) n -> Ausgangsbit (für jedes

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

Übung zu Drahtlose Kommunikation. 7. Übung

Übung zu Drahtlose Kommunikation. 7. Übung Übung zu Drahtlose Kommunikation 7. Übung 03.12.2012 Aufgabe 1 (Cyclic Redundancy Check) Gegeben ist das Generator-Polynom C(x) = x 4 + x 3 + 1 a) Zeichnen Sie die Hardware-Implementation zum obigen Generator-Polynom

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

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

Universität Hamburg. Fakultät für Mathematik, Informatik und Naturwissenschaften. Abschlussbericht

Universität Hamburg. Fakultät für Mathematik, Informatik und Naturwissenschaften. Abschlussbericht Universität Hamburg Fakultät für Mathematik, Informatik und Naturwissenschaften Abschlussbericht 64-174 Seminar Effiziente Programmierung in C Algorithmen Wintersemester 13/14 Verfasser: Marcel Hellwig

Mehr

Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13)

Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13) Berlin, 21. Februar 2013 Name:... Matr.-Nr.:... Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13) 1 2 3 4 5 6 7 8 9 Σ Bearbeitungszeit: 90 min. max. Punktezahl:

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

Kurs 1613 Einführung in die imperative Programmierung

Kurs 1613 Einführung in die imperative Programmierung Aufgabe 1 Gegeben sei die Prozedur BubbleSort: procedure BubbleSort(var iofeld:tfeld); { var hilf:integer; i:tindex; j:tindex; vertauscht:boolean; i:=1; repeat vertauscht := false; for j := 1 to N - i

Mehr

Algorithmische Methoden zur Netzwerkanalyse

Algorithmische Methoden zur Netzwerkanalyse Algorithmische Methoden zur Netzwerkanalyse Juniorprof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund für Theoretische

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

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

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

Lösungen zur 1. Klausur. Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Lösungen zur 1. Klausur. Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie Hochschuldozent Dr. Christian Schindelhauer Paderborn, den 21. 2. 2006 Lösungen zur 1. Klausur in Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie Name :................................

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

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

Vorlesung Theoretische Grundlagen

Vorlesung Theoretische Grundlagen Vorlesung Theoretische Grundlagen Fehlerkorrigierende Jörn Müller-Quade 4. Februar 2010 INSTITUT FÜR KRYPTOGRAPHIE UND SICHERHEIT KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum

Mehr

1.4 Die Ackermannfunktion

1.4 Die Ackermannfunktion a : N 2 N : Beispiele: a(0, y) = y + 1, a(x, 0) = a(x 1, 1), x > 0, a(x, y) = a(x 1, a(x, y 1)), x, y > 0. Beh.: a(1, y) = y + 2 Bew. durch Induktion über y: a(1, 0) = a(0, 1) = 2 = 0+2. a(1, y + 1) =

Mehr

2 Lösungen "Peptide de novo Sequencing"

2 Lösungen Peptide de novo Sequencing Lösungen "Peptide de novo Sequencing". Algorithm : PeptideSequencingOnlySux Input: a spectrum M with array of masses M = {m, m,, m n }, Σ, µ : Σ R >0 Output: the peptide string of the spectrum begin peptide

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

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

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

1 Einführung. 2 Grundlagen von Algorithmen. 3 Grundlagen von Datenstrukturen. 4 Grundlagen der Korrektheit von Algorithmen Programm heute lgorithmen und atenstrukturen (für T/IT) Sommersemester 0 r. Tobias Lasser omputer ided Medical Procedures Technische Universität München inführung rundlagen von lgorithmen rundlagen von

Mehr

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume Effiziente Algorithmen und Datenstrukturen I Kapitel 9: Minimale Spannbäume Christian Scheideler WS 008 19.0.009 Kapitel 9 1 Minimaler Spannbaum Zentrale Frage: Welche Kanten muss ich nehmen, um mit minimalen

Mehr

Minimal spannende Bäume

Minimal spannende Bäume http://www.uni-magdeburg.de/harbich/ Minimal spannende Fakultät für Informatik Otto-von-Guericke-Universität 2 Inhalt Definition Wege Untergraphen Kantengewichtete Graphen Minimal spannende Algorithmen

Mehr

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

Mehr

Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass

Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass f O g und auch g O f. Wähle zum Beispiel und G. Zachmann Informatik

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

Suchen und Sortieren Sortieren. Heaps

Suchen und Sortieren Sortieren. Heaps Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die

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

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

Gliederung. Algorithmen und Datenstrukturen II. Problem: Längste gemeinsame Teilsequenz. Problem: Längste gemeinsame Teilsequenz Gliederung Algorithmen und Datenstrukturen II Algorithmen zur Textverarbeitung II D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg

Mehr

Wie komme ich von hier zum Hauptbahnhof?

Wie komme ich von hier zum Hauptbahnhof? NP-Vollständigkeit Wie komme ich von hier zum Hauptbahnhof? P Wie komme ich von hier zum Hauptbahnhof? kann ich verwende für reduzieren auf Finde jemand, der den Weg kennt! Alternativ: Finde eine Stadtkarte!

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

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

RO-Tutorien 3 / 6 / 12

RO-Tutorien 3 / 6 / 12 RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

MAXIMUM2.STR 02.10.2002. Struktogramme. Aufgabe: 3 Zahlen eingeben, größte Zahl ermitteln und ausgeben.

MAXIMUM2.STR 02.10.2002. Struktogramme. Aufgabe: 3 Zahlen eingeben, größte Zahl ermitteln und ausgeben. Struktogramme 02.10.2002 Aufgabe: 3 Zahlen eingeben, größte Zahl ermitteln und ausgeben. MAX_DOZ1 Integer a, b, c, max M AX IM U M 1.S T R Inte g er a, b, c Ausgabe "Zahlen eingeben" E ing abe a, b, c

Mehr

3. Musterlösung. Problem 1: Heapsort

3. Musterlösung. Problem 1: Heapsort Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 05/06 ITI Wagner 3. Musterlösung Problem : Heapsort ** 2 3 4 5 Algorithmus : Heapsort (A) Eingabe : Array A der Länge n Ausgabe : Aufsteigend

Mehr

Kürzeste Wege in Graphen. Orte mit Straßenverbindungen. Coma I Rolf Möhring

Kürzeste Wege in Graphen. Orte mit Straßenverbindungen. Coma I Rolf Möhring Kürzeste Wege in Graphen Orte mit Straßenverbindungen Orte als Knoten eines Graphen Straßenverbindungen als Kanten eines Graphen Ungerichteter Graph G = (V,E) Kanten Knoten Knotenmenge V = {,,n} oder {,,n

Mehr

3. Übung Algorithmen I

3. Übung Algorithmen I Timo Bingmann, Christian Schulz INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Timo Universität Bingmann, des LandesChristian Baden-Württemberg Schulz und nationales Forschungszentrum in der

Mehr

CODIERUNGSTHEORIE KURS ZELL AN DER PRAM, FEBRUAR 2005

CODIERUNGSTHEORIE KURS ZELL AN DER PRAM, FEBRUAR 2005 CODIERUNGSTHEORIE KURS ZELL AN DER PRAM, FEBRUAR 2005 1. Das Problem 1.1. Kanalcodierung und Fehlerkorrektur. Wir wollen eine Nachricht über einen digitalen Kanal, der nur 0 oder 1 übertragen kann, schicken.

Mehr

23. November Betweenness Centrality Closeness Centrality. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108

23. November Betweenness Centrality Closeness Centrality. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108 23. November 2011 Betweenness Centrality Closeness Centrality H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108 Betweenness Centrality Grundlegende Idee: Ein Knoten ist wichtig, wenn er auf

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 Vorlesungen 5 und 6 Programm

Mehr

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. smichel@cs.uni-kl.de

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. smichel@cs.uni-kl.de Datenbankanwendung Wintersemester 2014/15 Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern smichel@cs.uni-kl.de Wiederholung: Anfragegraph Anfragen dieses Typs können als Graph dargestellt werden: Der

Mehr

Christian Schulz und Johannes Singler

Christian Schulz und Johannes Singler Christian Schulz und Johannes Singler, Prof. Sanders 1 KIT Christian Universität des Schulz Landes Baden-Württemberg und Johannes undsingler: nationales 3. Übung Forschungszentrum Algorithmen in der Helmholtz-Gemeinschaft

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

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

Punktlokalisierung. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Punktlokalisierung. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 22.05.2012 Nachtrag: Dynamische Bereichsabfragen Letzte Woche: kd-trees und Range-Trees

Mehr

Hannah Wester Juan Jose Gonzalez

Hannah Wester Juan Jose Gonzalez Neuronale Netze Supervised Learning Proseminar Kognitive Robotik (SS12) Hannah Wester Juan Jose Gonzalez Kurze Einführung Warum braucht man Neuronale Netze und insbesondere Supervised Learning? Das Perzeptron

Mehr

Lineares Programmieren

Lineares Programmieren Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 03.05.2011 Nachtrag Art Gallery Problem Lässt sich der Triangulierungs-Algorithmus

Mehr

Algorithmische Bioinformatik

Algorithmische Bioinformatik Algorithmische Bioinformatik Effiziente Berechnung des Editabstands Dynamische Programmierung Ulf Leser Wissensmanagement in der Bioinformatik Inhalt dieser Vorlesung Rekursive Definition des Editabstands

Mehr

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

Quadtrees und Meshing

Quadtrees und Meshing Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 24.06.2014 Motivation: Meshing von Platinenlayouts Zur Simulation der Hitzeentwicklung

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren 14 Parsen, Suchen und Sortieren 19./26.01.2015 Prof. Dr. Ralf H. Reussner Version 1.0 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION

Mehr

Geradenarrangements und Dualität von Punkten und Geraden

Geradenarrangements und Dualität von Punkten und Geraden Vorlesung Algorithmische Geometrie von Punkten und Geraden INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 12.06.2012 Dualitätsabbildung Bisher haben wir Dualität für planare

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

Algorithmische Bioinformatik 1

Algorithmische Bioinformatik 1 Algorithmische Bioinformatik 1 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Paarweises

Mehr

Programmieren in Haskell. Stefan Janssen. Strukturelle Rekursion. Universität Bielefeld AG Praktische Informatik. 10.

Programmieren in Haskell. Stefan Janssen. Strukturelle Rekursion. Universität Bielefeld AG Praktische Informatik. 10. Universität Bielefeld AG Praktische Informatik 10. Dezember 2014 Wiederholung: Schema: f :: [σ] -> τ f [] = e 1 f (a : as) = e 2 where s = f as wobei e 1 und e 2 Ausdrücke vom Typ τ sind und e 2 die Variablen

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

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

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

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

Kapitel 6: Graphalgorithmen Gliederung

Kapitel 6: Graphalgorithmen 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

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

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

2. Optimierungsprobleme 6

2. Optimierungsprobleme 6 6 2. Beispiele... 7... 8 2.3 Konvexe Mengen und Funktionen... 9 2.4 Konvexe Optimierungsprobleme... 0 2. Beispiele 7- Ein (NP-)Optimierungsproblem P 0 ist wie folgt definiert Jede Instanz I P 0 hat einen

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 10 (3.6.2014) Binäre Suchbäume I Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:

Mehr

Backtracking mit Heuristiken

Backtracking mit Heuristiken Backtracking mit Heuristiken Thomas Dübendorfer thomas@duebendorfer.ch 14. September 2000 Inhalt und Ablauf 1. Einführendes Beispiel (4 min) 2. Konzepte zu Backtracking (8 min) 3. Eingesperrt im Labyrinth

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

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

Praktikum Algorithmen-Entwurf (Teil 7)

Praktikum Algorithmen-Entwurf (Teil 7) Praktikum Algorithmen-Entwurf (Teil 7) 28.11.2005 1 1 Vier gewinnt Die Spielregeln von Vier Gewinnt sind sehr einfach: Das Spielfeld besteht aus 7 Spalten und 6 Reihen. Jeder Spieler erhält zu Beginn des

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung Dr. Tom Kamphans 1. Vorlesung 12.10.2016 1 Organisatorisches Vorlesung: Mittwochs 14:00 15:30, Raum F 201 Übung: Mittwochs 15:45 19:00, Raum F 225 Übung: alle zwei Wochen

Mehr

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

Dynamische Programmierung

Dynamische Programmierung Dynamische Programmierung Hannes Schwarz - WS-06/07 Hannes.Schwarz@uni-konstanz.de Getting Ready for the ACM Programming Contest Übersicht Übersicht Was ist dynamische Programmierung? Entwicklung eines

Mehr

Universität Karlsruhe Institut für Theoretische Informatik. Klausur: Informatik III

Universität Karlsruhe Institut für Theoretische Informatik. Klausur: Informatik III Name Vorname Matrikelnummer Universität Karlsruhe Institut für Theoretische Informatik o. Prof. Dr. P. Sanders 26. Feb. 2007 Klausur: Informatik III Aufgabe 1. Multiple Choice 10 Punkte Aufgabe 2. Teilmengenkonstruktion

Mehr

KAPITEL 6 GANZZAHLIGE OPTIMIERUNG UND VOLLSTÄNDIG UNIMODULARE MATRIZEN

KAPITEL 6 GANZZAHLIGE OPTIMIERUNG UND VOLLSTÄNDIG UNIMODULARE MATRIZEN KPITEL 6 GNZZHLIGE OPTIMIERUNG UND VOLLSTÄNDIG UNIMODULRE MTRIZEN F. VLLENTIN,. GUNDERT. Ganzzahlige lineare Programme Viele Optimierungsprobleme des Operations Research lassen sich als ganzzahlige lineare

Mehr

Vorlesung 4 BETWEENNESS CENTRALITY

Vorlesung 4 BETWEENNESS CENTRALITY Vorlesung 4 BETWEENNESS CENTRALITY 101 Aufgabe! Szenario: Sie arbeiten bei einem sozialen Online-Netzwerk. Aus der Netzwerk-Struktur Ihrer Benutzer sollen Sie wichtige Eigenschaften extrahieren. [http://www.fahrschule-vatterodt.de/

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