Algorithmen und Datenstrukturen Tafelübung 14. Jens Wetzl 8. Februar 2012

Größe: px
Ab Seite anzeigen:

Download "Algorithmen und Datenstrukturen Tafelübung 14. Jens Wetzl 8. Februar 2012"

Transkript

1 Algorithmen und Datenstrukturen Tafelübung 14 Jens Wetzl 8. Februar 2012

2 Folien Keine Garantie für Vollständigkeit und/oder Richtigkeit Keine offizielle Informationsquelle LS2-Webseite Abrufbar unter: 8. Februar 2012 Jens Wetzl Tafelübung Algorithmen und Datenstrukturen 2 / 32

3 Was machen wir heute? Evaluation Nachbesprechung Blatt 13 QuickSort Theorie und Komplexität Live-Programmierung Graphen Kürzeste Wege: Algorithmus von Dijkstra Minimale Spannbäume: Algorithmen von Prim und Kruskal Klausuraufgabe 8. Februar 2012 Jens Wetzl Tafelübung Algorithmen und Datenstrukturen 3 / 32

4 Evaluation

5 Evaluation 8. Februar 2012 Jens Wetzl Tafelübung Algorithmen und Datenstrukturen 5 / 32

6 Evaluation 8. Februar 2012 Jens Wetzl Tafelübung Algorithmen und Datenstrukturen 6 / 32

7 Globalfragen 8. Februar 2012 Jens Wetzl Tafelübung Algorithmen und Datenstrukturen / 32

8 Übung im Allgemeinen 8. Februar 2012 Jens Wetzl Tafelübung Algorithmen und Datenstrukturen 8 / 32

9 Didaktische Aufbereitung 8. Februar 2012 Jens Wetzl Tafelübung Algorithmen und Datenstrukturen 9 / 32

10 Präsentation des Übungsleiters 8. Februar 2012 Jens Wetzl Tafelübung Algorithmen und Datenstrukturen 10 / 32

11 Profillinie: Vergleich zu allen Übungen 8. Februar 2012 Jens Wetzl Tafelübung Algorithmen und Datenstrukturen 11 / 32

12 Profillinie: Vergleich zu allen Übungen 8. Februar 2012 Jens Wetzl Tafelübung Algorithmen und Datenstrukturen 12 / 32

13 Nachbesprechung Blatt 13

14 Nachbesprechung Blatt 13 Theorieaufgaben sehr gut bearbeitet! Ist ein Graph ein Baum? Spezialfall: Graph mit einem Knoten und self-loop Ungerichteter Graph: Kanten oberhalb der Diagonale der Adjazenzmatrix zählen Tiefen-/Breitensuche von einem beliebigen Knoten aus Gerichteter Graph: Kanten in der gesamten Adjazenzmatrix zählen Tiefen-/Breitensuche von allen Knoten aus B-Baum: Code zeigen? 8. Februar 2012 Jens Wetzl Tafelübung Algorithmen und Datenstrukturen 14 / 32

15 QuickSort Theorie und Komplexität Live-Programmierung

16 Sortieren durch Zerlegen (QuickSort) QuickSort ist einfach zu implementieren in Haskell: qsort (x:xs) = qsort kleiner ++ x ++ qsort groesser where kleiner = [y y <- xs, y < x] groesser = [y y <- xs, y >= x] Splitter: Ein splitter ist ein Element e einer Liste, für das gilt: alle Elemente vor dem splitter sind kleiner als e alle Elemente nach dem splitter sind größer als e Beispiel: QuickSort: 1. Erzeuge einen splitter in der zu sortierenden Liste 2. Wende rekursiv QuickSort auf die Teillisten vor und nach dem Splitter an, außer sie sind einelementig oder leer 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 16 / 32

17 Sortieren durch Zerlegen (QuickSort) QuickSort ist einfach zu implementieren in Haskell: qsort (x:xs) = qsort kleiner ++ x ++ qsort groesser where kleiner = [y y <- xs, y < x] groesser = [y y <- xs, y >= x] Splitter: Ein splitter ist ein Element e einer Liste, für das gilt: alle Elemente vor dem splitter sind kleiner als e alle Elemente nach dem splitter sind größer als e Beispiel: QuickSort: 1. Erzeuge einen splitter in der zu sortierenden Liste 2. Wende rekursiv QuickSort auf die Teillisten vor und nach dem Splitter an, außer sie sind einelementig oder leer 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 16 / 32

18 Sortieren durch Zerlegen (QuickSort) QuickSort ist einfach zu implementieren in Haskell: qsort (x:xs) = qsort kleiner ++ x ++ qsort groesser where kleiner = [y y <- xs, y < x] groesser = [y y <- xs, y >= x] Splitter: Ein splitter ist ein Element e einer Liste, für das gilt: alle Elemente vor dem splitter sind kleiner als e alle Elemente nach dem splitter sind größer als e Beispiel: QuickSort: 1. Erzeuge einen splitter in der zu sortierenden Liste 2. Wende rekursiv QuickSort auf die Teillisten vor und nach dem Splitter an, außer sie sind einelementig oder leer 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 16 / 32

19 QuickSort: Aufwand Was ist der Aufwand für QuickSort? 8. Februar 2012 Jens Wetzl Tafelübung Algorithmen und Datenstrukturen 1 / 32

20 QuickSort: Aufwand Was ist der Aufwand für QuickSort? best case average case worst case O(n log n) O(n log n) O(n 2 ) 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 1 / 32

21 QuickSort: Aufwand Was ist der Aufwand für QuickSort? Warum? Erzeugen eines splitters: O(n) Best case: best case average case worst case O(n log n) O(n log n) O(n 2 ) Splitter ist immer ungefähr in der Mitte der Liste (Algorithmus siehe Animation) in jedem Rekursionsschritt halbiert sich die zu sortierende Listenlänge O(n log n) Average case: Vorlesung Komplexität von Algorithmen Worst case: Splitter ist immer am Anfang oder Ende der Liste n + (n 1) + (n 2) = n (n+1) 2 O(n 2 ) 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 1 / 32

22 QuickSort: Aufwand Was ist der Aufwand für QuickSort? Warum? Erzeugen eines splitters: O(n) Best case: best case average case worst case O(n log n) O(n log n) O(n 2 ) Splitter ist immer ungefähr in der Mitte der Liste (Algorithmus siehe Animation) in jedem Rekursionsschritt halbiert sich die zu sortierende Listenlänge O(n log n) Average case: Vorlesung Komplexität von Algorithmen Worst case: Splitter ist immer am Anfang oder Ende der Liste n + (n 1) + (n 2) = n (n+1) 2 O(n 2 ) 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 1 / 32

23 Animation Online ansehen (benötigt den QuickTime Player o.ä.) 8. Februar 2012 Jens Wetzl Tafelübung Algorithmen und Datenstrukturen 18 / 32

24 Live-Programmierung 8. Februar 2012 Jens Wetzl Tafelübung Algorithmen und Datenstrukturen 19 / 32

25 Graphen Kürzeste Wege: Algorithmus von Dijkstra Minimale Spannbäume: Algorithmen von Prim und Kruskal

26 Algorithmus von Dijkstra Gegeben: Gewichteter Graph G = (V, E) mit Kostenfunktion c : E Z Gesucht: kürzester Weg von Knoten v zu allen anderen Knoten Algorithmus von Dijkstra: Markiere alle Knoten als unbesucht Setze kosten[v] = 0 und kosten[w] = w V \ v Solange nicht besuchte Knoten existieren: 1. Minimumsauswahl: wähle/besuche einen Knoten w mit minimalen kosten[w] 2. Aktualisierung: Für alle Kanten (w, z) E zu unbesuchten z: Wenn kosten[w] + c(w, z) < kosten[z], dann setze kosten[z] = kosten[w] + c(w, z) Sprich: wenn z über w günstiger zu erreichen ist als über den bisher besten Pfad, werden die Kosten für z verringert 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 21 / 32

27 Algorithmus von Dijkstra: Beispiel Graph: Kostentabelle: E 3 F 3 A B C D E F 0 D 4 C 1 2 A 2 B 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 22 / 32

28 Algorithmus von Dijkstra: Beispiel Graph: Kostentabelle: E 3 F 3 A B C D E F D 4 C 1 2 A 2 B 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 22 / 32

29 Algorithmus von Dijkstra: Beispiel Graph: Kostentabelle: E 3 F 3 A B C D E F D 4 C 1 2 A 2 B 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 22 / 32

30 Algorithmus von Dijkstra: Beispiel Graph: Kostentabelle: E D 3 4 F 3 C A B C D E F A 2 B 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 22 / 32

31 Algorithmus von Dijkstra: Beispiel Graph: Kostentabelle: E D 3 4 F 3 C A B C D E F A 2 B 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 22 / 32

32 Algorithmus von Dijkstra: Beispiel Graph: Kostentabelle: E D 3 4 F 3 C A B C D E F A 2 B 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 22 / 32

33 Algorithmus von Dijkstra: Beispiel Graph: Kostentabelle: E D 3 4 F 3 C A B C D E F A 2 B 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 22 / 32

34 Algorithmus von Dijkstra: Beispiel Graph: Kostentabelle: E D F 3 C 2 A B C D E F A 2 B 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 22 / 32

35 Algorithmus von Dijkstra: Beispiel Graph: Kostentabelle: E D F 3 C 2 A B C D E F A 2 B 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 22 / 32

36 Algorithmus von Dijkstra: Beispiel Graph: Kostentabelle: E D F 3 C 2 A B C D E F A 2 B 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 22 / 32

37 Algorithmus von Dijkstra: Beispiel Graph: Kostentabelle: E D F 3 C 2 A B C D E F A 2 B 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 22 / 32

38 Wiederholung: Spannbäume Ein Spannbaum (auch aufspannender Baum) ist in der Graphentheorie ein Teilgraph eines ungerichteten Graphen, der ein Baum ist und alle Knoten des Graphen enthält. In kantengewichteten Graphen lässt sich als Gewicht eines Graphen die Summe seiner Kantengewichte definieren. Ein Spannbaum [...] heißt minimal, wenn kein anderer Spannbaum [...] in demselben Graphen mit geringerem Gewicht existiert. (Quelle: 8. Februar 2012 Jens Wetzl Tafelübung Algorithmen und Datenstrukturen 23 / 32

39 Spannbäume: Algorithmus von Prim Idee: Angenommen, man kennt den minimalen Spannbaum eines Teilgraphen G von G Dann kann man G um einen Knoten erweitern, indem man die Kante mit minimalem Gewicht verwendet, die G mit einem noch nicht enthaltenen Knoten verbindet A B C 1. Wähle einen beliebigen Knoten als Startgraph T 2. Solange T noch nicht alle Knoten enthält: Wähle eine Kante e minimalen Gewichts aus, die einen noch nicht in T enthaltenen Knoten v mit T verbindet Füge e und v dem Graphen T hinzu (Quelle: 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 24 / 32

40 Spannbäume: Algorithmus von Prim Idee: Angenommen, man kennt den minimalen Spannbaum eines Teilgraphen G von G Dann kann man G um einen Knoten erweitern, indem man die Kante mit minimalem Gewicht verwendet, die G mit einem noch nicht enthaltenen Knoten verbindet A 3 1 B 2 C 1. Wähle einen beliebigen Knoten als Startgraph T 2. Solange T noch nicht alle Knoten enthält: Wähle eine Kante e minimalen Gewichts aus, die einen noch nicht in T enthaltenen Knoten v mit T verbindet Füge e und v dem Graphen T hinzu (Quelle: 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 24 / 32

41 Spannbäume: Algorithmus von Prim Idee: Angenommen, man kennt den minimalen Spannbaum eines Teilgraphen G von G Dann kann man G um einen Knoten erweitern, indem man die Kante mit minimalem Gewicht verwendet, die G mit einem noch nicht enthaltenen Knoten verbindet A 3 1 B 2 C 1. Wähle einen beliebigen Knoten als Startgraph T 2. Solange T noch nicht alle Knoten enthält: Wähle eine Kante e minimalen Gewichts aus, die einen noch nicht in T enthaltenen Knoten v mit T verbindet Füge e und v dem Graphen T hinzu (Quelle: 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 24 / 32

42 Algorithmus von Prim: Beispiel A 5 B 8 C D 9 15 E 5 6 F G (Quelle: 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 25 / 32

43 Algorithmus von Prim: Beispiel A 5 B 8 C D 9 15 E 5 6 F G (Quelle: 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 25 / 32

44 Algorithmus von Prim: Beispiel A 5 B 8 C D 9 15 E 5 6 F G (Quelle: 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 25 / 32

45 Algorithmus von Prim: Beispiel A 5 B 8 C D 9 15 E 5 6 F G (Quelle: 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 25 / 32

46 Algorithmus von Prim: Beispiel A 5 B 8 C D 9 15 E 5 6 F G (Quelle: 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 25 / 32

47 Algorithmus von Prim: Beispiel A 5 B 8 C D 9 15 E 5 6 F G (Quelle: 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 25 / 32

48 Algorithmus von Prim: Beispiel A 5 B 8 C D 9 15 E 5 6 F G (Quelle: 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 25 / 32

49 Spannbäume: Algorithmus von Kruskal Algorithmus von Kruskal: Statt einen Teilgraphen des minimalen Spannbaums in jedem Schritt um eine Kante zu erweitern, beginnt man mit einem Wald von einzelnen Knoten und fügt diese nach und nach zum minimalen Spannbaum zusammen Beginne mit sortierter Kantenliste in aufsteigender Reihenfolge Kante gehört zur Lösung, wenn sie einen vorhandenen Baum um einen noch nicht betrachteten Knoten erweitert zwei noch nicht betrachtete Knoten verbindet (zu einem Baum) zwei verschiedene Bäume verbindet Jetzt kann man die Kanten nacheinander betrachten und sofort entscheiden, ob die Kante zur Lösung gehört oder nicht 8. Februar 2012 Jens Wetzl Tafelübung Algorithmen und Datenstrukturen 26 / 32

50 Algorithmus von Kruskal: Beispiel A 5 B 8 C D 9 15 E 5 6 F G 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 2 / 32

51 Algorithmus von Kruskal: Beispiel A 5 B 8 C D 9 15 E 5 6 F G 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 2 / 32

52 Algorithmus von Kruskal: Beispiel A 5 B 8 C D 9 15 E 5 6 F G 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 2 / 32

53 Algorithmus von Kruskal: Beispiel A 5 B 8 C D 9 15 E 5 6 F G 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 2 / 32

54 Algorithmus von Kruskal: Beispiel A 5 B 8 C D 9 15 E 5 6 F G 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 2 / 32

55 Algorithmus von Kruskal: Beispiel A 5 B 8 C D 9 15 E 5 6 F G 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 2 / 32

56 Algorithmus von Kruskal: Beispiel A 5 B 8 C D 9 15 E 5 6 F G 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 2 / 32

57 Klausuraufgabe

58 Klausur 09/2006: Aufgabe c) Gegeben ist folgender Graph: Bestimmen Sie den kürzesten Pfad von A nach H mit dem Algorithmus von Dijkstra. d) Bestimmen Sie den minimalen Spannbaum des obigen Graphen mit dem Verfahren von Prim oder Kruskal. 8. Februar 2012 Jens Wetzl (jens.wetzl@cs.fau.de) Tafelübung Algorithmen und Datenstrukturen 29 / 32

59 Klausurthemen Statistik zu Klausuren von 2004 bis 2009 (10 Klausuren) Häufigkeiten für bestimmte Themengebiete: O-Kalkül: 60% Sortieren: 60% Programmieren (allg.): 100% z.b. iterativ/rekursiv π berechnen, Rekursion Iteration, Binärsuche, Binäre Bäume wp-kalkül: 100% Graphen: 100% Hashing: 0% Fehlersuche: 80% ADTs: 90% Java-Details: 20% z.b. abstrakte Klassen, Unterklassen, statischer/dynamischer Typ Verkettete Listen: 10% Heaps: 20% Bäume: 30% UML: 30% Rekurrenzen: 10% Rucksackproblem: 20% 8. Februar 2012 Jens Wetzl Tafelübung Algorithmen und Datenstrukturen 30 / 32

60 Fragen?

61 Danke für die Aufmerksamkeit!

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen 13. Übung minimale Spannbäume, topologische Sortierung, AVL-Bäume Clemens Lang Übungen zu AuD 4. Februar 2010 Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen

Mehr

Wie wird ein Graph dargestellt?

Wie wird ein Graph dargestellt? Wie wird ein Graph dargestellt? Für einen Graphen G = (V, E), ob gerichtet oder ungerichtet, verwende eine Adjazenzliste A G : A G [i] zeigt auf eine Liste aller Nachbarn von Knoten i, wenn G ungerichtet

Mehr

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung

Mehr

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47 Graphalgorithmen Dominik Paulus.0.01 Dominik Paulus Graphalgorithmen.0.01 1 / 7 1 Spannbäume Kruskal Prim Edmonds/Chu-Liu Datenstrukturen Fibonacci-Heap Union/Find Kürzeste Pfade Dijkstra Bellman-Ford

Mehr

Algorithmen und Datenstrukturen 2-1. Seminar -

Algorithmen und Datenstrukturen 2-1. Seminar - Algorithmen und Datenstrukturen 2-1. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Sommersemster 2010 Outline 1. Übungsserie: 3 Aufgaben, insgesamt 30 28 Punkte A1 Spannbäume (10 8

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

Algorithmische Graphentheorie

Algorithmische Graphentheorie Algorithmische Graphentheorie Vorlesung 4: Suchstrategien Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 14. April 2017 HALBORDNUNG TOPOLOGISCHE ORDNUNG TOPOLOGISCHES

Mehr

1.Aufgabe: Minimal aufspannender Baum

1.Aufgabe: Minimal aufspannender Baum 1.Aufgabe: Minimal aufspannender Baum 11+4+8 Punkte v 1 v 2 1 3 4 9 v 3 v 4 v 5 v 7 7 4 3 5 8 1 4 v 7 v 8 v 9 3 2 7 v 10 Abbildung 1: Der Graph G mit Kantengewichten (a) Bestimme mit Hilfe des Algorithmus

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

9 Minimum Spanning Trees

9 Minimum Spanning Trees Im Folgenden wollen wir uns genauer mit dem Minimum Spanning Tree -Problem auseinandersetzen. 9.1 MST-Problem Gegeben ein ungerichteter Graph G = (V,E) und eine Gewichtsfunktion w w : E R Man berechne

Mehr

Graphen: Datenstrukturen und Algorithmen

Graphen: Datenstrukturen und Algorithmen Graphen: Datenstrukturen und Algorithmen Ein Graph G = (V, E) wird durch die Knotenmenge V und die Kantenmenge E repräsentiert. G ist ungerichtet, wenn wir keinen Start- und Zielpunkt der Kanten auszeichnen.

Mehr

Institut für Programmierung und Reaktive Systeme 31. Mai Programmieren II. 12. Übungsblatt

Institut für Programmierung und Reaktive Systeme 31. Mai Programmieren II. 12. Übungsblatt Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 1. Mai 01 Programmieren II 1. Übungsblatt Hinweis: Dieses Übungsblatt enthält die dritte Pflichtaufgabe.

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

Datenstrukturen. einfach verkettete Liste

Datenstrukturen. einfach verkettete Liste einfach verkettete Liste speichert Daten in einer linearen Liste, in der jedes Element auf das nächste Element zeigt Jeder Knoten der Liste enthält beliebige Daten und einen Zeiger auf den nächsten Knoten

Mehr

Algorithmen und Datenstrukturen Tafelübung 4. Jens Wetzl 15. November 2011

Algorithmen und Datenstrukturen Tafelübung 4. Jens Wetzl 15. November 2011 Algorithmen und Datenstrukturen Tafelübung 4 Jens Wetzl 15. November 2011 Folien Keine Garantie für Vollständigkeit und/oder Richtigkeit Keine offizielle Informationsquelle LS2-Webseite Abrufbar unter:

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Graphen 9/1 Begriffsdefinitionen Ein Graph besteht aus Knoten und Kanten. Ein Knoten(Ecke) ist ein benanntes Objekt. Eine Kante verbindet zwei Knoten. Kanten haben ein Gewicht

Mehr

DATENSTRUKTUREN UND ALGORITHMEN

DATENSTRUKTUREN UND ALGORITHMEN DATENSTRUKTUREN UND ALGORITHMEN 2 Ist die Datenstruktur so wichtig??? Wahl der Datenstruktur wichtiger Schritt beim Entwurf und der Implementierung von Algorithmen Dünn besetzte Graphen und Matrizen bilden

Mehr

3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt:

3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt: 3. Minimale Spannbäume Sei G = (V, E) ein einfacher ungerichteter Graph, der o.b.d.a. zusammenhängend ist. Sei weiter w : E R eine Gewichtsfunktion auf den Kanten von G. Wir setzen E E: w(e ) = e E w(e),

Mehr

Programmierkurs Python II

Programmierkurs Python II Programmierkurs Python II Stefan Thater & Michaela Regneri Universität des Saarlandes FR 4.7 Allgemeine Linguistik (Computerlinguistik) Übersicht Topologische Sortierung (einfach) Kürzeste Wege finden

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphen (1) Darstellung Traversierung Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 441 Generalisierung von Bäumen Verallgemeinerung (von Listen zu Graphen)

Mehr

Algorithmen und Datenstrukturen Tafelübung 1. Jens Wetzl 26. Oktober 2011

Algorithmen und Datenstrukturen Tafelübung 1. Jens Wetzl 26. Oktober 2011 Algorithmen und Datenstrukturen Tafelübung 1 Jens Wetzl 26. Oktober 2011 Folien Keine Garantie für Vollständigkeit und/oder Richtigkeit Keine offizielle Informationsquelle LS2-Webseite Abrufbar unter:

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

Datenstrukturen und Algorithmen 2. Klausur SS 2001

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

Mehr

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

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

Mehr

Methoden für den Entwurf von Algorithmen

Methoden für den Entwurf von Algorithmen Methoden für den Entwurf von Algorithmen Greedy Algorithmen: - Löse ein einfaches Optimierungsproblem durch eine Folge vernünftiger Entscheidungen. - Eine getroffene Entscheidung wird nie zurückgenommen.

Mehr

Probeklausur Director s Cut

Probeklausur Director s Cut Probeklausur Director s Cut Lösungsvorschlag Informatik II SS2005 Aufgabe 1: Graphentheorie (2 + 1 + 2 Punkte) Gegeben ist der folgende ungerichtete Graph G n = (V, E) mit V = n 1 i=0 V i wobei V i = {v

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

5. Bäume und Minimalgerüste

5. Bäume und Minimalgerüste 5. Bäume und Minimalgerüste Charakterisierung von Minimalgerüsten 5. Bäume und Minimalgerüste Definition 5.1. Es ein G = (V, E) ein zusammenhängender Graph. H = (V,E ) heißt Gerüst von G gdw. wenn H ein

Mehr

Datenstrukturen und Algorithmen SS07

Datenstrukturen und Algorithmen SS07 Datenstrukturen und Algorithmen SS0 Datum:.6.200 Michael Belfrage mbe@student.ethz.ch belfrage.net/eth Programm von Heute Minimaler Spannbaum (MST) Challenge der Woche Fibonacci Heap Minimaler Spannbaum

Mehr

Übungsblatt 2 - Lösung

Übungsblatt 2 - Lösung Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 2 - Lösung Vorlesung Algorithmentechnik im WS 08/09 Ausgabe 04. November 2008 Abgabe 8. November, 5:0 Uhr (im Kasten vor Zimmer

Mehr

Berechnung minimaler Spannbäume. Beispiel

Berechnung minimaler Spannbäume. Beispiel Minimale Spannbäume Definition Sei G pv, Eq ein ungerichteter Graph und sei w : E Ñ R eine Funktion, die jeder Kante ein Gewicht zuordnet. Ein Teilgraph T pv 1, E 1 q von G heißt Spannbaum von G genau

Mehr

Anmerkungen zur Übergangsprüfung

Anmerkungen zur Übergangsprüfung DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung

Mehr

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel 3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36

Mehr

Theoretische Informatik 1

Theoretische Informatik 1 Theoretische Informatik 1 Approximierbarkeit David Kappel Institut für Grundlagen der Informationsverarbeitung Technische Universität Graz 10.06.2016 Übersicht Das Problem des Handelsreisenden TSP EUCLIDEAN-TSP

Mehr

Tutoraufgabe 1 (Starke Zusammenhangskomponenten):

Tutoraufgabe 1 (Starke Zusammenhangskomponenten): für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Allgemeine Hinweise: Datenstrukturen und Algorithmen SS1 Übungsblatt (Abgabe 4.0.01) Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder

Mehr

Programmiertechnik II

Programmiertechnik II Graph-Algorithmen Anwendungsgebiete "Verbundene Dinge" oft Teilproblem/Abstraktion einer Aufgabenstellung Karten: Wie ist der kürzeste Weg von Sanssouci nach Kunnersdorf? Hypertext: Welche Seiten sind

Mehr

Universität des Saarlandes

Universität des Saarlandes Universität des Saarlandes FR 6.2 Informatik Prof. Dr. Kurt Mehlhorn WiSe 2015/2016 Übungen zu Ideen der Informatik http://www.mpi-inf.mpg.de/departments/algorithms-complexity/teaching/winter15/ideen/

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

Quicksort ist ein Divide-and-Conquer-Verfahren.

Quicksort ist ein Divide-and-Conquer-Verfahren. . Quicksort Wie bei vielen anderen Sortierverfahren (Bubblesort, Mergesort, usw.) ist auch bei Quicksort die Aufgabe, die Elemente eines Array a[..n] zu sortieren. Quicksort ist ein Divide-and-Conquer-Verfahren.

Mehr

Programmiertechnik II

Programmiertechnik II Graph-Algorithmen Anwendungsgebiete "Verbundene Dinge" oft Teilproblem/Abstraktion einer Aufgabenstellung Karten: Wie ist der kürzeste Weg von Sanssouci nach Kunnersdorf? Hypertext: Welche Seiten sind

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Minimal spannender Baum

Minimal spannender Baum Minimal spannender Baum 16 1 2 21 5 11 19 6 6 3 14 33 10 5 4 18 Die Kreise zeigen die vorgesehenen Standorte neu zu errichtender Filialen einer Bank. Entlang der bestehenden Straßen sollen Telefonleitungen

Mehr

2. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2006/ April 2007

2. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2006/ April 2007 2. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2006/2007 12. April 2007 Hier Aufkleber mit Name und Matrikelnr. anbringen Vorname: Nachname: Matrikelnummer: Beachten Sie: Bringen Sie den Aufkleber

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Datenstrukturen: Anordnung von Daten, z.b. als Liste (d.h. in bestimmter Reihenfolge) Beispiel: alphabetisch sortiertes Wörterbuch... Ei - Eibe - Eidotter... als Baum (d.h.

Mehr

Institut für Programmierung und Reaktive Systeme 27. Mai Programmieren II. 12. Übungsblatt

Institut für Programmierung und Reaktive Systeme 27. Mai Programmieren II. 12. Übungsblatt Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 27. Mai 206 Programmieren II 2. Übungsblatt Hinweis: Auf diesem und den folgenden Übungsblättern

Mehr

Pro Informatik 2009: Objektorientierte Programmierung Tag 18. Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik

Pro Informatik 2009: Objektorientierte Programmierung Tag 18. Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik Tag 18 Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik 09.09.2009 Agenda Tag 16 Datenstrukturen Abstrakte Datentypen, ADT Folge: Stack, Queue, Liste, ADT Menge: Bäume:

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

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

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V. Kapitel 4 Graphenalgorithmen 4.1 Definitionen Definition 4.1.1. Der Graph G = (V, E) ist über die beiden Mengen V und E definiert, wobei V die Menge der Knoten und E die Menge der Kanten in dem Graph ist.

Mehr

1. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2005/2006

1. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2005/2006 1. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2005/2006 Hier Aufkleber mit Name und Matrikelnummer anbringen Vorname: Nachname: Matrikelnummer: Beachten Sie: Bringen Sie den Aufkleber mit

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

Kap. 6.5: Minimale Spannbäume

Kap. 6.5: Minimale Spannbäume Kap. 6.5: Minimale Spannbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 19./20. VO DAP2 SS 2009 30.6./2.7.2009 1 Anmeldung zur Klausur 31.07.2009 um 10:15

Mehr

Algorithmen I - Tutorium 28 Nr. 11

Algorithmen I - Tutorium 28 Nr. 11 Algorithmen I - Tutorium 28 Nr. 11 13.07.2017: Spaß mit Schnitten, Kreisen und minimalen Spannbäumen Marc Leinweber marc.leinweber@student.kit.edu INSTITUT FÜR THEORETISCHE INFORMATIK (ITI), PROF. DR.

Mehr

Minimale Spannbäume. Übersicht. 1 Spannbäume. 2 Minimale Spannbäume. 3 Greedy Algorithmen. 4 Die Algorithmen von Kruskal und Prim

Minimale Spannbäume. Übersicht. 1 Spannbäume. 2 Minimale Spannbäume. 3 Greedy Algorithmen. 4 Die Algorithmen von Kruskal und Prim Datenstrukturen und Algorithmen Vorlesung 16: (K23) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-1/dsal/ 12. Juni 201

Mehr

Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur vom Seite 1. Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15.

Kurs 1663 Datenstrukturen Musterlösungen zur Klausur vom Seite 1. Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15. Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur vom 15.08.98 Seite 1 Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15. August 1998 Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur

Mehr

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Kürzeste Wege in Graphen Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Gliederung Einleitung Definitionen Algorithmus von Dijkstra Bellmann-Ford Algorithmus Floyd-Warshall Algorithmus

Mehr

Minimal spannende Bäume

Minimal spannende Bäume Minimal spannende Bäume Ronny Harbich 4. Mai 006 (geändert 19. August 006) Vorwort Ich danke Patrick Bahr und meinem Bruder Steffen Harbich für die Unterstützung bei dieser Arbeit. Sie haben sowohl zu

Mehr

Konvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510

Konvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510 Konvexe Hülle Definition konvexe Menge: Für je zwei beliebige Punkte, die zur Menge gehören, liegt auch stets deren Verbindungsstrecke ganz in der Menge. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links),

Mehr

Klausur. Diskrete Mathematik I. Donnerstag, den um 14 Uhr

Klausur. Diskrete Mathematik I. Donnerstag, den um 14 Uhr , Klausur Diskrete Mathematik I Donnerstag, den 29.02.2008 um 14 Uhr Aufgabenblätter Füllen Sie das Deckblattvollständigaus. Prüfen Sie, ob die Klausur 8 Aufgaben enthält.. Kennzeichnen Sie alle verwendeten

Mehr

Name:... Vorname:... Matr.-Nr.:... Studiengang:...

Name:... Vorname:... Matr.-Nr.:... Studiengang:... Technische Universität Braunschweig Sommersemester 2013 IBR - Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Dr. Christiane Schmidt Stephan Friedrichs Klausur Netzwerkalgorithmen 16.07.2013 Name:.....................................

Mehr

Mustererkennung: Graphentheorie

Mustererkennung: Graphentheorie Mustererkennung: Graphentheorie D. Schlesinger TUD/INF/KI/IS D. Schlesinger () ME: Graphentheorie 1 / 9 Definitionen Ein Graph ist ein Paar G = (V, E) mit der Menge der Knoten V und der Menge der Kanten:

Mehr

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

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

Mehr

Algorithmen und Datenstrukturen

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

Mehr

Übungsklausur Algorithmen I

Übungsklausur Algorithmen I Universität Karlsruhe, Institut für Theoretische Informatik Prof. Dr. P. Sanders 26.5.2010 svorschlag Übungsklausur Algorithmen I Hiermit bestätige ich, dass ich die Klausur selbständig bearbeitet habe:

Mehr

Algorithmen und Datenstrukturen 1 VL Übungstest SS Juni 2011

Algorithmen und Datenstrukturen 1 VL Übungstest SS Juni 2011 Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 86.72 Algorithmen und Datenstrukturen VL 4.0 2. Übungstest SS 20 0. Juni 20 Machen

Mehr

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 11 Prof. Dr. Helmut Seidl, S. Pott,

Mehr

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume) WS 2016/17 Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_16

Mehr

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME Algorithmen und Datenstrukturen 11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 1 Algorithmen und Datenstrukturen 11.1. BERECHNUNG MAXIMALER FLÜSSE

Mehr

ALP I. Funktionale Programmierung

ALP I. Funktionale Programmierung ALP I Funktionale Programmierung Sortieren und Suchen (Teil 1) WS 2012/2013 Suchen 8 False unsortiert 21 4 16 7 19 11 12 7 1 5 27 3 8 False sortiert 2 4 6 7 9 11 12 18 21 24 27 36 Suchen in unsortierten

Mehr

Inhaltsverzeichnis. Teil 1 Grundlagen 21. Teil 2 Datenstrukturen 85

Inhaltsverzeichnis. Teil 1 Grundlagen 21. Teil 2 Datenstrukturen 85 Inhaltsverzeichnis Vorwort 13 Umfang 14 Einsatz als Unterrichtsmittel 14 Algorithmen mit Praxisbezug 15 Programmiersprache 16 Danksagung 17 Vorwort des Java-Beraters 18 Hinweise zu den Übungen 19 Teil

Mehr

7. Sortieren Lernziele. 7. Sortieren

7. Sortieren Lernziele. 7. Sortieren 7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/3, Folie 1 2010 Prof. Steffen Lange - HDa/FbI

Mehr

Breiten- und Tiefensuche in Graphen

Breiten- und Tiefensuche in Graphen Breiten- und Tiefensuche in Graphen Inhalt Theorie. Graphen. Die Breitensuche in der Theorie am Beispiel eines ungerichteten Graphen. Die Tiefensuche in der Theorie am Beispiel eines gerichteten Graphen

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 11 (4.6.2014) Binäre Suchbäume II Algorithmen und Komplexität Binäre Suchbäume Binäre Suchbäume müssen nicht immer so schön symmetrisch sein

Mehr

Graphdurchmusterung, Breiten- und Tiefensuche

Graphdurchmusterung, Breiten- und Tiefensuche Prof. Thomas Richter 18. Mai 2017 Institut für Analysis und Numerik Otto-von-Guericke-Universität Magdeburg thomas.richter@ovgu.de Material zur Vorlesung Algorithmische Mathematik II am 18.05.2017 Graphdurchmusterung,

Mehr

Institut für Mathematik Geometrie und Lineare Algebra J. Schönenberger-Deuel. Aufgabe 1. Wir geben nur zwei von sehr vielen möglichen Strategien.

Institut für Mathematik Geometrie und Lineare Algebra J. Schönenberger-Deuel. Aufgabe 1. Wir geben nur zwei von sehr vielen möglichen Strategien. Lösungen Übung 13 Aufgabe 1. Wir geben nur zwei von sehr vielen möglichen Strategien. a) Strategie 1 (nächster Nachbar): Jedes Mal reist der Reisende vom Punkt, wo er gerade ist, zur nächstgelegenen Stadt,

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 3: Minimal aufspannende Bäume und Matroide

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 3: Minimal aufspannende Bäume und Matroide Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 3: Minimal aufspannende Bäume und Matroide Dipl-Math. Wolfgang Kinzner 3.4.2012 Kapitel 3: Minimal aufspannende Bäume und Matroide Minimal aufspannende

Mehr

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. (a, b)-bäume / 1. Szenario: Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. Konsequenz: Kommunikation zwischen Hauptspeicher und Festplatte - geschieht nicht Byte für Byte,

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil 10 Suche in Graphen Version vom 13. Dezember 2016 1 / 2 Vorlesung 2016 / 2017 2 /

Mehr

Datenstrukturen und Algorithmen D-INFK

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

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen 11. Übung Verkettete Listen, Sortieren Insertionsort, Mergesort, Radixsort, Quicksort Clemens Lang Übungen zu AuD 19. Januar 2010 Clemens Lang (Übungen zu AuD) Algorithmen

Mehr

Einführung in die Informatik 2

Einführung in die Informatik 2 Einführung in die Informatik 2 Bäume & Graphen Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.v. Sommersemester

Mehr

1 Kürzeste Pfade in Graphen

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

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen Der Tragödie IV. Theyl Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University

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

Inhaltsverzeichnis. Teil 1 Grundlagen 23

Inhaltsverzeichnis. Teil 1 Grundlagen 23 Inhaltsverzeichnis Vorwort 11 Umfang 12 Einsatz als Unterrichtsmittel 12 Algorithmen mit Praxisbezug 13 Programmiersprache 14 Danksagung 15 Vorwort des C++-Beraters 16 Hinweise zu den Übungen 21 Teil 1

Mehr

Grundlagen Algorithmen und Datenstrukturen TUM Sommersemester 2011 (2) Dozent: Hanjo Täubig

Grundlagen Algorithmen und Datenstrukturen TUM Sommersemester 2011 (2) Dozent: Hanjo Täubig Grundlagen Algorithmen und Datenstrukturen TUM Sommersemester 2011 (2) Dozent: Hanjo Täubig Janosch Maier 3. August 2011 Inhaltsverzeichnis 1 Sortieren 3 1.1 Externes Sortieren..........................

Mehr

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist.

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Graphen Definition: Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Begriffe: Gerichteter Graph: Alle Kanten haben eine Richtung vom Anfangsknoten

Mehr

NAME, VORNAME: Studiennummer: Matrikel:

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

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2006 5. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Wdhlg.: Dijkstra-Algorithmus I Bestimmung der

Mehr

WS 2013/14. Diskrete Strukturen

WS 2013/14. Diskrete Strukturen WS 2013/14 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws1314

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

Approximationsalgorithmen für NP-harte Optimierungsprobleme

Approximationsalgorithmen für NP-harte Optimierungsprobleme Approximationsalgorithmen für NP-harte Optimierungsprobleme Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 18 Was tun mit NP-harten Problemen? Viele praxisrelevante

Mehr

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

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

Mehr

Informatik II Prüfungsvorbereitungskurs

Informatik II Prüfungsvorbereitungskurs Informatik II Prüfungsvorbereitungskurs Tag 4, 23.6.2016 Giuseppe Accaputo g@accaputo.ch 1 Programm für heute Repetition Datenstrukturen Unter anderem Fragen von gestern Point-in-Polygon Algorithmus Shortest

Mehr

Kürzeste Wege in einem gewichteten Graphen. Anwendungen

Kürzeste Wege in einem gewichteten Graphen. Anwendungen Kürzeste Wege in einem gewichteten Graphen Dazu werden die Gewichte als Weglängen interpretiert. Der kürzeste Weg zwischen zwei Knoten in einem zusammenhängenden Graphen ist derjenige, bei dem die Summe

Mehr

Algorithmen und Datenstrukturen 1 VL Übungstest WS Januar 2011

Algorithmen und Datenstrukturen 1 VL Übungstest WS Januar 2011 Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 2. Übungstest WS 2010 14. Januar

Mehr

Tutoraufgabe 1 (Suchen in Graphen):

Tutoraufgabe 1 (Suchen in Graphen): Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS14 F. Corzilius, S. Schupp, T. Ströder Tutoraufgabe 1 (Suchen in Graphen): a) Geben Sie die Reihenfolge an, in der die Knoten besucht werden, wenn

Mehr

Das Steinerbaumproblem

Das Steinerbaumproblem Das Steinerbaumproblem Natalie Richert Fakultät für Elektrotechnik, Informatik und Mathematik, Universität Paderborn 4. Februar 008 / 3 Überblick Problembeschreibung Vorstellung von zwei Approimationsalgorithmen

Mehr