Graphenalgorithmen I

Größe: px
Ab Seite anzeigen:

Download "Graphenalgorithmen I"

Transkript

1 Graphenalgorithmen I Vortrag im Seminar Hallo Welt! für Fortgeschrittene 7. Juni 211 Graphenalgorithmen I 1/33

2 Motivation Problem Wie komme ich am schnellsten ins Kanapee? Problem Wie kommt ein Datenpaket im Internet am schnellsten von A nach B? Herangehensweise Verkehrs- bzw. Computernetz als Graph darstellen, kürzesten Weg suchen Graphenalgorithmen I 2/33

3 Motivation Problem Wie komme ich am schnellsten ins Kanapee? Problem Wie kommt ein Datenpaket im Internet am schnellsten von A nach B? Herangehensweise Verkehrs- bzw. Computernetz als Graph darstellen, kürzesten Weg suchen Graphenalgorithmen I 2/33

4 Motivation Problem Wie komme ich am schnellsten ins Kanapee? Problem Wie kommt ein Datenpaket im Internet am schnellsten von A nach B? Herangehensweise Verkehrs- bzw. Computernetz als Graph darstellen, kürzesten Weg suchen Graphenalgorithmen I 2/33

5 Gliederung 1 Motivation 2 Grundlagen Definitionen & Begriffe Klassifizierung 3 Datenstrukturen Adjazenzliste Adjazenzmatrix 4 Algorithmen Traversierung Topologische Sortierung 5 Zusammenhangskomponenten Zusammenhang Brücken & Artikulationspunkte 6 Abschluss Zusammenfassung Ende Graphenalgorithmen I 3/33

6 Gliederung 1 Motivation 2 Grundlagen Definitionen & Begriffe Klassifizierung 3 Datenstrukturen Adjazenzliste Adjazenzmatrix 4 Algorithmen Traversierung Topologische Sortierung 5 Zusammenhangskomponenten Zusammenhang Brücken & Artikulationspunkte 6 Abschluss Zusammenfassung Ende Graphenalgorithmen I 4/33

7 Graphen Definition Ein Graph G ist ein 2-Tupel (V, E) mit V Menge der Knoten (en. vertex, pl. vertices) E Menge der Kanten (en. edge, pl. edges) Beispiel 2 C B 2 4 A V = {A, B, C} E = { (A, B, 4), (A, C, 2), (C, B, 2) } Graphenalgorithmen I 5/33

8 Graphen Definition Ein Graph G ist ein 2-Tupel (V, E) mit V Menge der Knoten (en. vertex, pl. vertices) E Menge der Kanten (en. edge, pl. edges) Beispiel 2 C B 2 4 A V = {A, B, C} E = { (A, B, 4), (A, C, 2), (C, B, 2) } Graphenalgorithmen I 5/33

9 Kanten Kanten Kanten gibt es in verschiedenen Ausführungen: gerichtet und ungerichtet mit und ohne Gewicht/Kosten Beispiel C A ungerichtet ohne Gewicht: V = {A, B, C} E = { {A, B}, {A, C}, {B, C} } B Graphenalgorithmen I 6/33

10 Kanten Kanten Kanten gibt es in verschiedenen Ausführungen: gerichtet und ungerichtet mit und ohne Gewicht/Kosten Beispiel C A ungerichtet ohne Gewicht: V = {A, B, C} E = { {A, B}, {A, C}, {B, C} } B Graphenalgorithmen I 6/33

11 Kanten Kanten Kanten gibt es in verschiedenen Ausführungen: gerichtet und ungerichtet mit und ohne Gewicht/Kosten Beispiel C 2 B 2 4 A ungerichtet mit Gewicht: V = {A, B, C} { ({A, ) ( ) ( ) } E = B}, 4, {A, C}, 2, {B, C}, 2 Graphenalgorithmen I 6/33

12 Knoten Der Grad eines Knotens Grad eines Knotens = Anzahl der Kanten an diesem Knoten 3 3 Graphenalgorithmen I 7/33

13 dünn und dicht besetzte Graphen E V 2 dünn besetzt E V 2 dicht besetzt Graphenalgorithmen I 8/33

14 Zyklen in Graphen azyklisch zyklisch Graphenalgorithmen I 9/33

15 Zyklen in Graphen azyklisch zyklisch Graphenalgorithmen I 9/33

16 Gliederung 1 Motivation 2 Grundlagen Definitionen & Begriffe Klassifizierung 3 Datenstrukturen Adjazenzliste Adjazenzmatrix 4 Algorithmen Traversierung Topologische Sortierung 5 Zusammenhangskomponenten Zusammenhang Brücken & Artikulationspunkte 6 Abschluss Zusammenfassung Ende Graphenalgorithmen I 1/33

17 Adjazenzliste Adjazenzliste Jedem Knoten wird eine Liste von ausgehenden Kanten zugeordnet Speicherung in Art ungewichtet gewichtet Datenstruktur List<V>[] mit V als Index List<tuple<V, Weight>>[] mit V als Index Speicherbedarf O ( E + V ) v.a. bei dünn besetzten Graphen effizient Suchen von eingehenden Kanten nicht a möglich a oder nur schlecht Graphenalgorithmen I 11/33

18 Adjazenzliste Adjazenzliste Jedem Knoten wird eine Liste von ausgehenden Kanten zugeordnet Speicherung in Art ungewichtet gewichtet Datenstruktur List<V>[] mit V als Index List<tuple<V, Weight>>[] mit V als Index Speicherbedarf O ( E + V ) v.a. bei dünn besetzten Graphen effizient Suchen von eingehenden Kanten nicht a möglich a oder nur schlecht Graphenalgorithmen I 11/33

19 Adjazenzliste Beispiel Beispiel 2 C B 2 4 A Knoten Kanten A (B, 4), (C, 2) B (A, 4), (C, 2) C (A, 2), (B, 2) Graphenalgorithmen I 12/33

20 Adjazenzmatrix Adjazenzmatrix V V -Matrix; a ij ist falls (i, j) V (d.h. die Kante von i nach j existiert): das Gewicht der Kante in gewichteten Graphen 1 in ungewichteten Graphen ein ungültiger Wert, falls die Kante nicht existiert (z.b. ) für ungerichtete Graphen nur Dreiecksmatrix nötig Prüfen der Existenz einer Kante: O (1) ( Speicherbedarf O V 2), unabhängig von E Graphenalgorithmen I 13/33

21 Adjazenzmatrix Adjazenzmatrix V V -Matrix; a ij ist falls (i, j) V (d.h. die Kante von i nach j existiert): das Gewicht der Kante in gewichteten Graphen 1 in ungewichteten Graphen ein ungültiger Wert, falls die Kante nicht existiert (z.b. ) für ungerichtete Graphen nur Dreiecksmatrix nötig Prüfen der Existenz einer Kante: O (1) ( Speicherbedarf O V 2), unabhängig von E Graphenalgorithmen I 13/33

22 Adjazenzmatrix Beispiel Beispiel 2 C B 2 4 A A B C A 4 2 B 2 C Graphenalgorithmen I 14/33

23 Gliederung 1 Motivation 2 Grundlagen Definitionen & Begriffe Klassifizierung 3 Datenstrukturen Adjazenzliste Adjazenzmatrix 4 Algorithmen Traversierung Topologische Sortierung 5 Zusammenhangskomponenten Zusammenhang Brücken & Artikulationspunkte 6 Abschluss Zusammenfassung Ende Graphenalgorithmen I 15/33

24 Tiefensuche Tiefensuche Durchsuchen eines Graphen z.b. zum Finden von Zyklen O ( V + E ) begin DFS start, ziel if start = ziel then return true; if start als besucht markiert then return false; start als besucht markieren; foreach n: start.children do if DFS(n, ziel) then return true; end return false end Graphenalgorithmen I 16/33

25 Tiefensuche Tiefensuche Durchsuchen eines Graphen z.b. zum Finden von Zyklen O ( V + E ) begin DFS start, ziel if start = ziel then return true; if start als besucht markiert then return false; start als besucht markieren; foreach n: start.children do if DFS(n, ziel) then return true; end return false end Graphenalgorithmen I 16/33

26 Iterative Tiefensuche 1 p u b l i c c l a s s DFSIter { 2 p u b l i c s t a t i c boolean d f s ( L i s t <Vertex > v e r t i c e s, L i s t < Edge> edges, V e r t e x s t a r t, V e r t e x end ) { 3 Stack<Vertex > l i s t = new Stack<Vertex >() ; 4 TreeSet<Vertex > v i s i t e d = new TreeSet<Vertex >() ; 5 6 l i s t. push ( s t a r t ) ; 7 w h i l e ( l i s t. s i z e ( ) > ) { 8 V e r t e x v = l i s t. pop ( ) ; 9 1 i f ( v i s i t e d. c o n t a i n s ( v ) ) c o n t i n u e ; 11 v i s i t e d. add ( v ) ; i f ( s t a r t == end ) r e t u r n t r u e ; 14 f o r ( V e r t e x c : v. c h i l d r e n ) 15 i f (! v i s i t e d. c o n t a i n s ( c ) ) 16 l i s t. push ( c ) ; 17 } 18 r e t u r n f a l s e ; 19 } 2 } Graphenalgorithmen I 17/33

27 Breitensuche 1 p u b l i c c l a s s BFS { 2 p u b l i c s t a t i c boolean b f s ( L i s t <Vertex > v e r t i c e s, L i s t < Edge> edges, V e r t e x s t a r t, V e r t e x end ) { 3 Queue<Vertex > l i s t = new Queue<Vertex >() ; 4 TreeSet<Vertex > v i s i t e d = new TreeSet<Vertex >() ; 5 6 l i s t. add ( s t a r t ) ; 7 w h i l e ( l i s t. s i z e ( ) > ) { 8 V e r t e x v = l i s t. remove ( ) ; 9 1 i f ( v i s i t e d. c o n t a i n s ( v ) ) c o n t i n u e ; 11 v i s i t e d. add ( v ) ; i f ( s t a r t == end ) r e t u r n t r u e ; 14 f o r ( V e r t e x c : v. c h i l d r e n ) 15 i f (! v i s i t e d. c o n t a i n s ( c ) ) 16 l i s t. add ( c ) ; 17 } 18 r e t u r n f a l s e ; 19 } 2 } Graphenalgorithmen I 18/33

28 Topologische Sortierung Topsort Arbeitet auf gerichteten, azyklischen Graphen (sog. DAGs) Interpretiert Kanten als Abhängigkeiten und sortiert die Knoten so in eine Liste, dass die Abhängigkeiten erfüllt sind Es kann mehrere solche topologische Sortierungen geben Algorithmus: 1. Suche Knoten ohne Eingangskante 2. Markiere und entferne Knoten 3. Wiederhole, bis Graph leer Aufwand analog zu Tiefensuche Graphenalgorithmen I 19/33

29 Jacke Hose Schuhe Hemd Shorts Socken Graphenalgorithmen I 2/33

30 Jacke Hose Schuhe Hemd Socken Shorts Graphenalgorithmen I 2/33

31 Jacke Hose Schuhe Hemd Shorts Socken Graphenalgorithmen I 2/33

32 Jacke Hose Schuhe Shorts Socken Hemd Graphenalgorithmen I 2/33

33 Jacke Schuhe Shorts Socken Hemd Hose Graphenalgorithmen I 2/33

34 Jacke Shorts Socken Hemd Hose Schuhe Graphenalgorithmen I 2/33

35 Shorts Socken Hemd Hose Schuhe Jacke Graphenalgorithmen I 2/33

36 Shorts Socken Hemd Hose Schuhe Jacke Graphenalgorithmen I 2/33

37 Gliederung 1 Motivation 2 Grundlagen Definitionen & Begriffe Klassifizierung 3 Datenstrukturen Adjazenzliste Adjazenzmatrix 4 Algorithmen Traversierung Topologische Sortierung 5 Zusammenhangskomponenten Zusammenhang Brücken & Artikulationspunkte 6 Abschluss Zusammenfassung Ende Graphenalgorithmen I 21/33

38 Zusammenhang E E B D B D A C A C zusammenhängend nicht zusammenhängend Graphenalgorithmen I 22/33

39 Zusammenhang E E B D B D A C A C stark zusammenhängend schwach zusammenhängend Graphenalgorithmen I 23/33

40 Finden von Zusammenhangskomponenten in ungerichteten Graphen mittels Tiefensuche Färben des Graphen begin FindComponents c := ; visited[] := false; component[] := -1; foreach n: nodes do if! visited[n] then DFS(n, c); increment c; end end end Input: node n, component number c begin DFS n, c if! visited[n] then visited[n] := true; component[n] := c; foreach child: n.children do DFS(child, c) end end end Graphenalgorithmen I 24/33

41 Finden von Zusammenhangskomponenten in ungerichteten Graphen mittels Tiefensuche Färben des Graphen begin FindComponents c := ; visited[] := false; component[] := -1; foreach n: nodes do if! visited[n] then DFS(n, c); increment c; end end end Input: node n, component number c begin DFS n, c if! visited[n] then visited[n] := true; component[n] := c; foreach child: n.children do DFS(child, c) end end end Graphenalgorithmen I 24/33

42 Finden von Zusammenhangskomponenten in ungerichteten Graphen mittels Tiefensuche Färben des Graphen begin FindComponents c := ; visited[] := false; component[] := -1; foreach n: nodes do if! visited[n] then DFS(n, c); increment c; end end end Input: node n, component number c begin DFS n, c if! visited[n] then visited[n] := true; component[n] := c; foreach child: n.children do DFS(child, c) end end end Graphenalgorithmen I 24/33

43 Finden von Zusammenhangskomponenten in gerichteten Graphen mit dem Algorithmus von Kosaraju 1. Alle Knoten durch Tiefensuche nummerieren und bei der Rückkehr aus der Rekursion auf einen Stack legen 2. transponierten Graphen G T = ( V, E T ) erzeugen E T = { (v, u) (u, v) E } 3. Graph analog zur Suche bei ungerichteten Graphen durch Tiefensuche in Reihenfolge des Stacks färben Ein Knoten kann nicht in zwei Zusammenhangskomponenten sein! Graphenalgorithmen I 25/33

44 F E C D A B Graphenalgorithmen I 26/33

45 F E C D B Graphenalgorithmen I 26/33

46 F E 1 D B Graphenalgorithmen I 26/33

47 F E 1 2 B Graphenalgorithmen I 26/33

48 F B Graphenalgorithmen I 26/33

49 B Graphenalgorithmen I 26/33

50 4F F B Graphenalgorithmen I 26/33

51 F E3 1 2 E F B Graphenalgorithmen I 26/33

52 F E D 1 D2 E F B Graphenalgorithmen I 26/33

53 F E C D C1 D E F B Graphenalgorithmen I 26/33

54 A F E C D C D E F A B Graphenalgorithmen I 26/33

55 A F E C D C D E F A 5 Graphenalgorithmen I 26/33

56 B A F E C D C D E F A B Graphenalgorithmen I 26/33

57 B A F E C D C D E F A B Graphenalgorithmen I 26/33

58 B A F E C D C D E F A B Graphenalgorithmen I 26/33

59 B A F E C D C D E F A B Graphenalgorithmen I 26/33

60 B A F E C D C D E F A B Graphenalgorithmen I 26/33

61 B A F E C D C D E F A B Graphenalgorithmen I 26/33

62 B A F E C D C D E F A B Graphenalgorithmen I 26/33

63 B A F E C D C D E F A B Graphenalgorithmen I 26/33

64 Brücken Brücken Kante, durch deren Entfernung der Graph in zwei Zusammenhangskomponenten zerfallen würde Finden durch Tiefensuche 1. Beim Abstieg: Jedem Knoten Nummer zuweisen 2. Bei der Rückkehr: Jeder Kante Nummer des kleinsten über sie erreichbaren Knotens zuweisen Brücken sind diejenigen Kanten, deren kleinste über sie erreichbare Knotennummer größer als die Nummer des Knotens, von dem aus sie traversiert worden sind, ist Graphenalgorithmen I 27/33

65 F E C D A B Graphenalgorithmen I 28/33

66 F E C D B Graphenalgorithmen I 28/33

67 F E 1 D B Graphenalgorithmen I 28/33

68 F E 1 D 2 Graphenalgorithmen I 28/33

69 F E 1 D 2 Graphenalgorithmen I 28/33

70 F E Graphenalgorithmen I 28/33

71 F Graphenalgorithmen I 28/33

72 Graphenalgorithmen I 28/33

73 Graphenalgorithmen I 28/33

74 Graphenalgorithmen I 28/33

75 Graphenalgorithmen I 28/33

76 Graphenalgorithmen I 28/33

77 Graphenalgorithmen I 28/33

78 Graphenalgorithmen I 28/33

79 Artikulationspunkte Artikulationspunkt Knoten, durch dessen Entfernung der Graph in zwei oder mehr Zusammenhangskomponenten zerfallen würde Finden analog zu Brücken durch Tiefensuche Artikulationspunkte sind a diejenigen Knoten, deren kleinste über eine ihrer ausgehenden Kanten erreichbare Knotennummer größer oder gleich ihrer Knotennummer ist Der Startknoten ist Artikulationspunkt, falls zwei oder mehr Kanten davon ausgehen a mit Ausnahme des Startknotens Graphenalgorithmen I 29/33

80 Graphenalgorithmen I 3/33

81 Graphenalgorithmen I 3/33

82 Graphenalgorithmen I 3/33

83 Gliederung 1 Motivation 2 Grundlagen Definitionen & Begriffe Klassifizierung 3 Datenstrukturen Adjazenzliste Adjazenzmatrix 4 Algorithmen Traversierung Topologische Sortierung 5 Zusammenhangskomponenten Zusammenhang Brücken & Artikulationspunkte 6 Abschluss Zusammenfassung Ende Graphenalgorithmen I 31/33

84 Zusammenfassung Speicherung Adjazenzliste, Adjazenzmatrix Traversierung & Sortierung Tiefen- und Breitensuche, Topologische Sortierung Zusammenhangskomponenten Finden mit Tiefensuche und Kosaraju, Brücken, Artikulationspunkte Graphenalgorithmen I 32/33

85 Zusammenfassung Speicherung Adjazenzliste, Adjazenzmatrix Traversierung & Sortierung Tiefen- und Breitensuche, Topologische Sortierung Zusammenhangskomponenten Finden mit Tiefensuche und Kosaraju, Brücken, Artikulationspunkte Graphenalgorithmen I 32/33

86 Zusammenfassung Speicherung Adjazenzliste, Adjazenzmatrix Traversierung & Sortierung Tiefen- und Breitensuche, Topologische Sortierung Zusammenhangskomponenten Finden mit Tiefensuche und Kosaraju, Brücken, Artikulationspunkte Graphenalgorithmen I 32/33

87 Q&A Danke für die Aufmerksamkeit Questions & Answers Graphenalgorithmen I 33/33

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 Graphen) T. Lauer 1 Motivation Wie komme ich am besten von Freiburg nach Ulm? Was ist die kürzeste Rundreise durch eine gegebene Menge von Städten?

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

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2007 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Traversierung Durchlaufen eines Graphen, bei

Mehr

Algorithmen und Datenstrukturen Graphen - Einführung

Algorithmen und Datenstrukturen Graphen - Einführung Algorithmen und Datenstrukturen Graphen - Einführung Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Definition / Eigenschaften Anwendungen Repräsentation

Mehr

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Fachschaft Informatik Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Michael Steinhuber König-Karlmann-Gymnasium Altötting 15. Januar 2016 Folie 1/77 Inhaltsverzeichnis I 1 Datenstruktur Schlange

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

8 Diskrete Optimierung

8 Diskrete Optimierung 8 Diskrete Optimierung Definition 8.1. Ein Graph G ist ein Paar (V (G), E(G)) besteh aus einer lichen Menge V (G) von Knoten (oder Ecken) und einer Menge E(G) ( ) V (G) 2 von Kanten. Die Ordnung n(g) von

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2006 3. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Algorithmen für Graphen Fragestellungen: Suche

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

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

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

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

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

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

Routing Algorithmen. Begriffe, Definitionen

Routing Algorithmen. Begriffe, Definitionen Begriffe, Definitionen Routing (aus der Informatik) Wegewahl oder Verkehrslenkung bezeichnet in der Telekommunikation das Festlegen von Wegen für Nachrichtenströme bei der Nachrichtenübermittlung über

Mehr

Gliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten

Gliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten Gliederung Zusammenhang von Graphen Stark Zusammenhängend K-fach Zusammenhängend Brücken Definition Algorithmus zum Finden von Brücken Anwendung Zusammenhangskomponente Definition Wichtige Aussagen und

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

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

Algorithmen und Datenstrukturen (WS 2007/08) 63

Algorithmen und Datenstrukturen (WS 2007/08) 63 Kapitel 6 Graphen Beziehungen zwischen Objekten werden sehr oft durch binäre Relationen modelliert. Wir beschäftigen uns in diesem Kapitel mit speziellen binären Relationen, die nicht nur nur besonders

Mehr

10 Graphenalgorithmen in Java

10 Graphenalgorithmen in Java 10.1 Implementierung eines gewichteten Graphen 10.2 Implementierung der Breitensuche 10.3 Implementierung der Tiefensuche 10 147 Teil X Graphalgorithmen in Java Überblick Implementierung eines gewichteten

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

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

Guten Morgen und Willkommen zur Saalübung!

Guten Morgen und Willkommen zur Saalübung! Guten Morgen und Willkommen zur Saalübung! 1 Wie gewinnt man ein Spiel? Was ist ein Spiel? 2 Verschiedene Spiele Schach, Tic-Tac-Toe, Go Memory Backgammon Poker Nim, Käsekästchen... 3 Einschränkungen Zwei

Mehr

8 Graphrepräsentation

8 Graphrepräsentation Sanders / van Stee: Algorithmentechnik November, 7 1 8 Graphrepräsentation 1736 fragt L. Euler die folgende touristische Frage: Straßen- oder Computernetzwerke Zugverbindungen (Raum und Zeit) Soziale Netzwerke

Mehr

2. Repräsentationen von Graphen in Computern

2. Repräsentationen von Graphen in Computern 2. Repräsentationen von Graphen in Computern Kapitelinhalt 2. Repräsentationen von Graphen in Computern Matrizen- und Listendarstellung von Graphen Berechnung der Anzahl der verschiedenen Kantenzüge zwischen

Mehr

Algorithmen und Datenstrukturen 2-2. Seminar -

Algorithmen und Datenstrukturen 2-2. Seminar - Algorithmen und Datenstrukturen 2-2. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Sommersemster 2010 Outline 2. Übungsserie: 3 Aufgaben, insgesamt 30 Punkte A4 Flußnetzwerk, Restgraphen

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

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

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. Mariano Zelke. Sommersemester 2012 Datenstrukturen Mariano Zelke Sommersemester 2012 Mathematische Grundlagen: Das Handwerkszeug Mariano Zelke Datenstrukturen 2/26 Formeln: n - i = n (n+1) 2 und - i=1 k i=0 a i = ak+1 1 a 1, falls a 1 Rechnen

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

Graphenalgorithmen und lineare Algebra Hand in Hand Vorlesung für den Bereich Diplom/Master Informatik

Graphenalgorithmen und lineare Algebra Hand in Hand Vorlesung für den Bereich Diplom/Master Informatik Vorlesung für den Bereich Diplom/Master Informatik Dozent: Juniorprof. Dr. Henning Meyerhenke PARALLELES RECHNEN INSTITUT FÜR THEORETISCHE INFORMATIK, FAKULTÄT FÜR INFORMATIK KIT Universität des Landes

Mehr

9.4.1 Wegsuche von a nach z

9.4.1 Wegsuche von a nach z 9.4 Wegsuche Beispiele: Weg von a nach z Weg von a nach roter Ecke alle Wege gemäß desgl. mit Länge, ferner kürzester/längster Weg... und weitere alp3-9.4 1 9.4.1 Wegsuche von a nach z Gegeben: Gesucht:

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

Einführung in Heuristische Suche

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

Mehr

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

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

Flüsse, Schnitte, bipartite Graphen

Flüsse, Schnitte, bipartite Graphen Flüsse, Schnitte, bipartite Graphen Vlad Popa 08.06.2010 Inhaltsverzeihnis 1. Flussnetzwerke und Flüsse 1.1 Ford- Fulkerson 1.2 Edmond Karp 1.3 Dinic 2. Schnitte 3. Maximaler Fluss bei minimalen Kosten

Mehr

Branch-and-Bound. Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir

Branch-and-Bound. Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir Effiziente Algorithmen Lösen NP-vollständiger Probleme 289 Branch-and-Bound Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir 1.

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

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

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

Grundlagen der Künstlichen Intelligenz

Grundlagen der Künstlichen Intelligenz Grundlagen der Künstlichen Intelligenz 9. Klassische Suche: Baumsuche und Graphensuche Malte Helmert Universität Basel 13. März 2015 Klassische Suche: Überblick Kapitelüberblick klassische Suche: 5. 7.

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

4.7 Der Algorithmus von Dinic für maximalen Fluss

4.7 Der Algorithmus von Dinic für maximalen Fluss 4.7 Der Algorithmus von Dinic für maximalen Fluss Wir kennen bereits den Algorithmus von Ford Fulkerson zur Suche nach einem maximalen Fluss in einem Graphen. Wir lernen nun einen Algorithmus für maximalen

Mehr

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

Effiziente Algorithmen I

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

Mehr

Randomisierte Algorithmen

Randomisierte Algorithmen Randomisierte Algorithmen Randomisierte Algorithmen 7. Random Walks Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 43 Überblick Überblick Ein randomisierter

Mehr

Erzeugung zufälliger Graphen und Bayes-Netze

Erzeugung zufälliger Graphen und Bayes-Netze Erzeugung zufälliger Graphen und Bayes-Netze Proseminar Algorithmen auf Graphen Georg Lukas, IF2000 2002-07-09 E-Mail: georg@op-co.de Folien: http://op-co.de/bayes/ Gliederung 1. Einleitung 2. einfache

Mehr

Kapitel MK:IV. IV. Modellieren mit Constraints

Kapitel MK:IV. IV. Modellieren mit Constraints Kapitel MK:IV IV. Modellieren mit Constraints Einführung und frühe Systeme Konsistenz I Binarization Generate-and-Test Backtracking-basierte Verfahren Konsistenz II Konsistenzanalyse Weitere Analyseverfahren

Mehr

Lehrerbildungszentrum Informatik an der Universität Göttingen

Lehrerbildungszentrum Informatik an der Universität Göttingen Lehrerbildungszentrum Informatik an der Universität Göttingen Lehrermaterial: Graphen zum Themenschwerpunkt 2, Zentralabitur Niedersachsen 2010 / 2011 1. Graphen als Modellierungswerkzeug Im ersten Beispiel

Mehr

Praktikum Planare Graphen

Praktikum Planare Graphen 1 Praktikum Planare Graphen Michael Baur, Martin Holzer, Steffen Mecke 10. November 2006 Einleitung Gliederung 2 Grundlagenwissen zu planaren Graphen Themenvorstellung Gruppeneinteilung Planare Graphen

Mehr

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x),

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x), Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. August 2014 Programmier-Labor 04. + 05. Übungsblatt Aufgabe 21: a) Schreiben Sie eine Methode

Mehr

3. Musterlösung. Problem 1: Boruvka MST

3. Musterlösung. Problem 1: Boruvka MST Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner. Musterlösung Problem : Boruvka MST pt (a) Beweis durch Widerspruch. Sei T MST von G, e die lokal minimale Kante eines

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

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

Mehr

Graphentheorie. Organisatorisches. Organisatorisches. Organisatorisches. Rainer Schrader. 23. Oktober 2007

Graphentheorie. Organisatorisches. Organisatorisches. Organisatorisches. Rainer Schrader. 23. Oktober 2007 Graphentheorie Rainer Schrader Organisatorisches Zentrum für Angewandte Informatik Köln 23. Oktober 2007 1 / 79 2 / 79 Organisatorisches Organisatorisches Dozent: Prof. Dr. Rainer Schrader Weyertal 80

Mehr

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Name: Seite 2 Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Aufgabe 1 (8 Punkte) 1. Wie viele negative Zahlen (ohne 0) lassen sich im 4-Bit-Zweierkomplement darstellen?

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

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. äume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/5, olie 1 2014 Prof. Steffen Lange - HDa/bI

Mehr

Mathe & Informatik II

Mathe & Informatik II Mathe & Informatik II Sommersemester 2015 Christoph Minnameier (Work in Progress) Vorlesungsinhalte Graphentheorie Algorithmen & Datenstrukturen Komplexität & Laufzeit Mathe & Informatik I (Jakob) Potenzen,

Mehr

Übungen zu Programmierung I - Blatt 8

Übungen zu Programmierung I - Blatt 8 Dr. G. Zachmann A. Greß Universität Bonn Institut für Informatik II 1. Dezember 2004 Wintersemester 2004/2005 Übungen zu Programmierung I - Blatt 8 Abgabe am Mittwoch, dem 15.12.2004, 15:00 Uhr per E-Mail

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes

Mehr

Wiederholung zu Flüssen

Wiederholung zu Flüssen Universität Konstanz Methoden der Netzwerkanalyse Fachbereich Informatik & Informationswissenschaft SS 2008 Prof. Dr. Ulrik Brandes / Melanie Badent Wiederholung zu Flüssen Wir untersuchen Flüsse in Netzwerken:

Mehr

Uninformierte Suche in Java Informierte Suchverfahren

Uninformierte Suche in Java Informierte Suchverfahren Uninformierte Suche in Java Informierte Suchverfahren Stephan Schwiebert WS 2009/2010 Sprachliche Informationsverarbeitung Institut für Linguistik Universität zu Köln Suchprobleme bestehen aus Zuständen

Mehr

C++, LEDA und STL Visualisierung minimal/maximal aufspannender Bäume

C++, LEDA und STL Visualisierung minimal/maximal aufspannender Bäume Fachbereich IV, Informatik Softwarepraktikum C++, LEDA und STL Visualisierung minimal/maximal aufspannender Bäume Wintersemester 2004/2005 Dokumentation Algorithmen zur Lösung von MST - Problemen Nicolas

Mehr

Vorlesung 3 MINIMALE SPANNBÄUME

Vorlesung 3 MINIMALE SPANNBÄUME Vorlesung 3 MINIMALE SPANNBÄUME 72 Aufgabe! Szenario: Sie arbeiten für eine Firma, die ein Neubaugebiet ans Netz (Wasser, Strom oder Kabel oder...) anschließt! Ziel: Alle Haushalte ans Netz bringen, dabei

Mehr

Grundwissen Informatik Q11/12 Fragenkatalog

Grundwissen Informatik Q11/12 Fragenkatalog 12_Inf_GrundwissenInformatik_Opp.doc 1 Grundwissen Informatik Q11/12 Fragenkatalog 11/2 Aufgabengebiet 1: Graphen, Wege durch Graphen: 1. Durch welche Bestandteile wird ein Graph festgelegt? 2. Nenne verschiedene

Mehr

Rechnerische Komplexität

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

Mehr

Algorithmische Mathematik

Algorithmische Mathematik Algorithmische Mathematik Wintersemester 2013 Prof. Dr. Marc Alexander Schweitzer und Dr. Einar Smith Patrick Diehl und Daniel Wissel Übungsblatt 6. Abgabe am 02.12.2013. Aufgabe 1. (Netzwerke und Definitionen)

Mehr

4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum

4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum 4. Lernen von Entscheidungsbäumen Klassifikation mit Entscheidungsbäumen Gegeben sei eine Menge von Objekten, die durch /Wert- Paare beschrieben sind. Jedes Objekt kann einer Klasse zugeordnet werden.

Mehr

Grundlagen der Programmierung 2. Bäume

Grundlagen der Programmierung 2. Bäume Grundlagen der Programmierung 2 Bäume Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 24. Mai 2006 Graphen Graph: Menge von Knoten undzugehörige (gerichtete oder ungerichtete)

Mehr

Algorithmen und Datenstrukturen Suchbaum

Algorithmen und Datenstrukturen Suchbaum Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen

Mehr

Flüsse, Schnitte, bipartite Graphen. Martin Oettinger

Flüsse, Schnitte, bipartite Graphen. Martin Oettinger Flüsse, Schnitte, bipartite Graphen Martin Oettinger Übersicht Einführung Algorithmen für maximalen Fluss Preflow-Push Ford-Fulkerson Spezialfall: Maximaler Fluss bei minimalen Kosten Reduktionen Bipartites

Mehr

Abstrakt zum Vortrag im Oberseminar. Graphdatenbanken. Gero Kraus HTWK Leipzig 14. Juli 2015

Abstrakt zum Vortrag im Oberseminar. Graphdatenbanken. Gero Kraus HTWK Leipzig 14. Juli 2015 Abstrakt zum Vortrag im Oberseminar Graphdatenbanken Gero Kraus HTWK Leipzig 14. Juli 2015 1 Motivation Zur Darstellung komplexer Beziehungen bzw. Graphen sind sowohl relationale als auch NoSQL-Datenbanken

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

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

Algorithmen und Datenstrukturen Kapitel 10

Algorithmen und Datenstrukturen Kapitel 10 Algorithmen und Datenstrukturen Kapitel 10 Flüsse Frank Heitmann heitmann@informatik.uni-hamburg.de 6. Januar 2016 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/8 Flüsse Graphen Grundlagen Definition

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

Überblick. Einführung Graphentheorie

Überblick. Einführung Graphentheorie Überblick Einführung Graphentheorie Graph-Algorithmen mit Map Kurzeinführung Graphentheorie Algorithmus zum Finden von Cliquen Graphen bestehen aus Knoten (englisch: Node, Vertex, Mehrzahl Vertices) Kanten

Mehr

Algorithmus zum Graphen-Matching. und. Anwendung zur inhaltsbasierten Bildersuche

Algorithmus zum Graphen-Matching. und. Anwendung zur inhaltsbasierten Bildersuche Algorithmus zum Graphen-Matching und Anwendung zur inhaltsbasierten Bildersuche Gliederung 1. Einführung 2. Algorithmus Beschreibung Beispiel Laufzeit 3. Anwendung des Algorithmus Seite 1 von 18 1. Einführung

Mehr

Geometrie I. Sebastian Redinger Informatik 2 Programmiersysteme Martensstraße Erlangen

Geometrie I. Sebastian Redinger Informatik 2 Programmiersysteme Martensstraße Erlangen Geometrie I Sebastian Redinger 01.07.2015 Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Gliederung Grundlagen CCW Polygone Picks Theorem Konvexe Hülle - Graham Scan - Jarvis March 2 Gliederung

Mehr

SS 2013 1.1-1 / 12

SS 2013 1.1-1 / 12 AMPELSTEUERUNG EINER KREUZUNG monika.heiner@informatik.tu-cottbus.de SS 2013 1.1-1 / 12 (A) PROBLEM D C E B A Ziel (1) Sicherheit: keine kollidierenden Wege gleichzeitig, z.b. EB und AD Ziel (2) Maximierung:

Mehr

Algorithmentheorie. 13 - Maximale Flüsse

Algorithmentheorie. 13 - Maximale Flüsse Algorithmentheorie 3 - Maximale Flüsse Prof. Dr. S. Albers Prof. Dr. Th. Ottmann . Maximale Flüsse in Netzwerken 5 3 4 7 s 0 5 9 5 9 4 3 4 5 0 3 5 5 t 8 8 Netzwerke und Flüsse N = (V,E,c) gerichtetes Netzwerk

Mehr

Methoden der Netzwerkanalyse

Methoden der Netzwerkanalyse Methoden der Netzwerkanalyse Skript zur Vorlesung Ulrik Brandes Sommersemester 005 (letzte Änderung:. August 006) Prolog Methoden der Netzwerkanalyse (Spezialvorlesung Algorithmen) [AKTIV: wo treten Netzwerke

Mehr

Algorithmische Methoden der Netzwerkanalyse

Algorithmische Methoden der Netzwerkanalyse Algorithmische Methoden der Netzwerkanalyse Marco Gaertler 9. Dezember, 2008 1/ 15 Abstandszentralitäten 2/ 15 Distanzsummen auf Bäumen Lemma Sei T = (V, E) ein ungerichteter Baum und T s = (V S, E s )

Mehr

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter

Mehr

HEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen

HEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen 9.2.5 HUT 9.2.5 3 atenstrukturen im omputer atenstrukturen ie beiden fundamentalen atenstrukturen in der Praxis sind rray und Liste Rekursion Feedback valuation rray Zugriff: schnell Umordnung: langsam

Mehr

Scheduling-Theorie. Mathematische Modelle und Methoden für deterministische Scheduling-Probleme. LiSA - A Library of Scheduling Algorithms

Scheduling-Theorie. Mathematische Modelle und Methoden für deterministische Scheduling-Probleme. LiSA - A Library of Scheduling Algorithms Scheduling-Theorie Mathematische Modelle und Methoden für deterministische Scheduling-Probleme LiSA - A Library of Scheduling Algorithms Otto-von-Guericke Universität Magdeburg/FMA/Heidemarie Bräsel &

Mehr

Vorlesung 5: DATENSTRUKTUREN UND ALGORITHMEN

Vorlesung 5: DATENSTRUKTUREN UND ALGORITHMEN Vorlesung 5: DATENSTRUKTUREN UND ALGORITHMEN 125 Motivation! Wahl der Datenstruktur wichtiger Schritt beim Entwurf und der Implementierung von Algorithmen! Dünn besetzte Graphen und Matrizen bilden keine

Mehr

Bäume. 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1

Bäume. 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1 Bäume 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1 Inhalt Grundbegriffe: Baum, Binärbaum Binäre Suchbäume (Definition) Typische Aufgaben Suchaufwand Löschen allgemein, Methode Schlüsseltransfer

Mehr

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1 3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)

Mehr

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 Reihungen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 2 Ziele Die Datenstruktur der Reihungen verstehen: mathematisch und im Speicher Grundlegende Algorithmen auf Reihungen

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

Datenbanken und Informationssysteme

Datenbanken und Informationssysteme Datenbanken und Informationssysteme Serialisierbarkeit Burkhardt Renz Fachbereich MNI TH Mittelhessen Wintersemester 2015/16 Übersicht Serialisierbarkeit 2-Phasen-Sperrprotokoll (2PL) Verklemmungen Modell

Mehr

Programmieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm

Programmieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm Studienanforderungen Studiengang Maschinenbau Programmieren Begleitende Übungen zu Veranstaltungen Umsetzen des Algorithmus in ein lauffähiges Programm Studiengang Bauingenieurwesen Programmieren Begleitende

Mehr

2. Lernen von Entscheidungsbäumen

2. Lernen von Entscheidungsbäumen 2. Lernen von Entscheidungsbäumen Entscheidungsbäume 2. Lernen von Entscheidungsbäumen Gegeben sei eine Menge von Objekten, die durch Attribut/Wert- Paare beschrieben sind. Jedes Objekt kann einer Klasse

Mehr

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Algorithmen mit konstantem Platzbedarf: Die Klasse REG Algorithmen mit konstantem Platzbedarf: Die Klasse REG Sommerakademie Rot an der Rot AG 1 Wieviel Platz brauchen Algorithmen wirklich? Daniel Alm Institut für Numerische Simulation Universität Bonn August

Mehr

Algorithmen zur Berechnung von Matchings

Algorithmen zur Berechnung von Matchings Algorithmen zur Berechnung von Matchings Berthold Vöcking 1 Einleitung Matchingprobleme sind Zuordnungsprobleme. Es geht darum z.b. Studierenden Plätze in Seminaren zuzuordnen, Bewerber auf freie Stellen

Mehr

Klassische Themen der Computerwissenschaft Constraint Programming: Exercises. Gruppe: 100. Inhaltsverzeichnis

Klassische Themen der Computerwissenschaft Constraint Programming: Exercises. Gruppe: 100. Inhaltsverzeichnis Klassische Themen der Computerwissenschaft Constraint Programming: Exercises Gruppe: 100 Inhaltsverzeichnis 1 Exercise 1 1 2 Exercise 2 2 2.1 Backtracking........................... 2 2.2 Forward checking.........................

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr