Hallo Welt für Fortgeschrittene

Größe: px
Ab Seite anzeigen:

Download "Hallo Welt für Fortgeschrittene"

Transkript

1 Hallo Welt für Fortgeschrittene Graphalgorithmen I Florian Schmaus florian.schmaus@informatik.stud.uni-erlangen.de Informatik 2 Programmiersysteme Martensstraße Erlangen

2 Übersicht I. Grundlagen i. Begriffe ii. Datenstrukturen iii.java II. Suchen und Sortieren i. Breitensuche ii. Tiefensuche iii.topologische Sortierung III.Zusammenhang i. Brücken ii. Artikulationspunkte iii.zusammenhangskomponenten Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 2

3 Übersicht I. Grundlagen i. Begriffe ii. Datenstrukturen iii.java II. Suchen und Sortieren i. Breitensuche ii. Tiefensuche iii.topologische Sortierung III.Zusammenhang i. Brücken ii. Artikulationspunkte iii.zusammenhangskomponenten Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 3

4 Begriffe Graph G = (V, E) V: Menge von Konten ( vertices ) E: Menge von Kanten ( edges ) Verschieden Arten von Graphen: gerichtete/ungerichtete Graphen zyklische/azyklische Graphen DAG ( directed acylic graph ) gewichtete Graphen bipartite Graphen Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 4

5 Begriffe Gerichteter Graph - Paar G=(V,E) V ist eine endliche Menge von Knoten E ist eine zweistellige Relation auf V Die elemente von E werden (gerichtete) Kante genannt Transponierter Graph G t G t = (V, E t ) E t = {(v,u) (u,v) E Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 5

6 Begriffe Ungerichteter Graph E ist symetrisch Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 6

7 Begriffe Zyklischer Graph Azyklischer Graph Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 7

8 Begriffe Gewichteter Graph Ordnet jeder Kante ein Gewicht zu Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 8

9 Begriffe Dünn besetzter Graph ( sparse graph ) E << V ² Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 9

10 Begriffe Dicht besetzter Graph ( dense graph ) E V ² Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 10

11 Begriffe Bipartite Graphen Menge der Knoten lässt sich in zwei Teilmengen aufteilen, sodass zwischen den Knoten innerhalb beider Teilmengen keine Kanten verlaufen. Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 11

12 Begriffe Pfade Ein Pfad (auch Weg, Kantenzug) von Knoten x nach Knoten y ist eine endliche Folge von Knoten In einem einfachen Pfad kommt jeder Knoten aus V höchstens einmal vor Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 12

13 Begriffe Reflexive Kanten ( self loops ) Grad eines Knoten Eingangsgrad Ausgangsgrad Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 13

14 Begriffe Zusammenhang zusammenhängend, wenn es (im ungerichteten Graphen) von jedem Knoten u zu jedem anderen Knoten v mindestens einen Weg gibt. nicht zusammenhängend schwach zusammenhängend stark zusammenhängend Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 14

15 Begriffe Zusammenhangskomponenten Ein maximal zusammenhängender Teilgraph eines Graphen. Bei gerichteten Graphen ohne die Richtung der Kanten zu berücksichtigen. Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 15

16 Begriffe Starke Zusammenhangskomponenten Mit Berücksichtigung der Kantenrichtung: starke Zusammenhangskomponente (SCC - strongly connected component ) Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 16

17 Begriffe - k-zusammenhang k-fach kantenzusammenhängend G heißt k-fach kantenzusammehängend, wenn man k -1 beliebige Kanten entfernen kann und G danach noch zusammenhängend ist k-fach knotenzusammenhängend G heißt k-fach knotenzusammenhängend (oder einfach k-zusammenhängend), wenn man k 1 beliebige Knoten entfernen kann und G danach noch zusammenhängend ist Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 17

18 Datenstrukturen zur Speicherung von Graphen Adjazenzmatrix (Matrixdarstellung) :-) sehr schnell feststellbar, ob eine Kante existiert - O(1) manche Graphenoperationen lassen sich als Matrizenoperationen darstellen :-( Speicherverschwendung bei dünnen Graphen - O(n²) Aufwändige suche nach Kanten bei dünnen Graphen Datentyp 2-dimensionaler Array vom Typ bool oder 2-dimensionaler Array vom Typ int (bei gewichteten Graphen) Bei ungerichteten Graphen wird nur Dreiecksmatrix benötigt. Kommen auch keine reflexiven Kanten vor, kann auch die Diagonale der Matrix vernachlässigt werden. Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 18

19 Datenstrukturen zur Speicherung von Graphen Adjazenzlisten :-) geringer Speicherverbrauch O( V + E ) :-( kostspielige Suche nach Kanten O( E ) Datentyp C++ (STL): vector Java: ArrayList Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 19

20 Datenstrukturen zur Speicherung von Graphen Als Reihung :-) noch kompakter als Adjazenzliste :-( aufwändige Änderungen (Einfügen/Löschen) Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 20

21 Praktische Umsetzung Java Graph Klasse public class Graph { static class Edge { int dest, cost; public Edge(int d, int c) { dest = d; cost = c;... private HashMap labels = new HashMap(); private ArrayList nodes = new ArrayList(); public Graph() { public void addnode(string label) { if (labels.containskey(label)) throw new NodeAlreadyDefinedException(); nodes.add(new ArrayList()); int idx = nodes.size() - 1; labels.put(label, new Integer(idx)); Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 21

22 Praktische Umsetzung Java Graph Klasse... public int getnodeid(string label) { Integer i = (Integer) labels.get(label); if (i == null) throw new NoSuchElementException(); return i.intvalue(); public void addedge(string src, String dest, int cost) { List adjlist = (List)nodes.get(getNodeID(src)); adjlist.add(new Edge(getNodeID(dest), cost)); public Iterator getedges(int node) { return ((List)nodes.get(node)).iterator(); Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 22

23 Übersicht I. Grundlagen i. Begriffe ii. Datenstrukturen iii.java II. Suchen und Sortieren i. Breitensuche ii. Tiefensuche iii.topologische Sortierung III.Zusammenhang i. Brücken ii. Artikulationspunkte iii.zusammenhangskomponenten Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 23

24 Suchen und Sortieren - Breitensuche Breitensuche aka Bread First Search (BFS) Algorithmenmuster, das die Knoten eines Graphen nach der Entfernung von einem Startknoten geordnet durchläuft Zuerst werden alle von diesem Startknoten direkt durch eine Kante erreichbare Knoten bearbeitet Danach die durch mindestens zwei Kanten, dann die durch drei Kanten... usw. Aufwand O ( V + E ) Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 24

25 Suchen und Sortieren - Breitensuche BFS in C++ bool M[128][128]; bool seen[128]; int n; M = AdjMatrix n = # Knoten queue<int> q; int s = 0; for( int v = 0; v < n; v++ ) seen[v] = false; seen[s] = true; q.push( s ); while (!q.empty() ) { int u = q.front(); q.pop(); for( int v = 0; v < n; v++ ) if(!seen[v] && M[u][v] ) { seen[v] = true; q.push( v ); Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 25

26 Suchen und Sortieren - Tiefensuche Tiefendurchlauf, geht so weit wie möglich einen Pfad entlang Voraussetzung für viele weitere Algorithmen Berechnet die Ordnung (dfsnum n ) jeder Node n von Beginn der Tiefensuche (und optional den Zeitpunkt der endgültigen Bearbeitung) Jeder Knoten wir kategorisiert weiß: unbearbeitet grau: in bearbeitung schwarz: abgearbeitet Jede Kante wird kategorisiert: Back Edge Front Edge Cross Edge (nur bei gerichteten Graphen) Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 26

27 Suchen und Sortieren - Tiefensuche Tiefensuche in C main() { for( int i = 0; i < n; i++ ) colour[i] = 0; num = 0; for( int j = 0; j < n; j++) if( colour[j] == 0 ) dfs( j, -1); Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 27

28 Suchen und Sortieren - Tiefensuche Tiefensuche in C bool M[128][128]; int colour[128]; int dfsnum[128], finished[128], num, n; void dfs(int u, int p) { colour[u] = 1; dfsnum[u] = num++; for (int v = 0; v < n; v++) if(m[u][v] && v!= p) { if (colour[v] == 0) { dfs( v, u ); else if (colour[v] == 1) { //backedge(u, v) else { if (finished[v] < dfsnum[u]) else colour[u] = 2; finished[u] = num++; 0 = white,1 = gray, 2 = black Ordnung dfsnum u (u,v) = Back Edge (u,v) = Cross Edge (u,v) = Forward Edge Finished Time Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 28 O ( V + E )

29 Suchen und Sortieren Topologische Sortierung Topologische Sortierung Typisches Beispiel: Aufgaben die (teilweise) voneinander abhängen sollen in eine chronologische Reihenfolge gebracht werden. DAG gerichteter azyklischer Graph azyklisch, weil ein zyklus einen sequentiellen Ablauf verhindern würde Gesucht: Lineare Ordnung des Graphen (muss nicht eindeutig sein) Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 29

30 Suchen und Sortieren Topologische Sortierung Ansatz: Wenn ein Knoten abgearbeitet ist, dann hat er keine Nachfolger, die noch nicht abgearbeitet sind hat er keine Vorgänger, die schon abgearbeitet sind Daher: Modifikation des DFS Algorithmus Abgearbeitete Knoten werden auf einen Stack gelegt Auf den Stack finden sich die Knoten in der gesuchten Ordnung falls nötig Zyklenerkennung (Back Edges) Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 30

31 Übersicht I. Grundlagen i. Begriffe ii. Datenstrukturen iii.java II. Suchen und Sortieren i. Breitensuche ii. Tiefensuche iii.topologische Sortierung III.Zusammenhang i. Brücken ii. Artikulationspunkte iii.zusammenhangskomponenten Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 31

32 Zusammenhang - Brücken Kanten, nach deren Entfernung der Graph nicht mehr zusammenhängend ist, nennt man Brücken Brücken sind wichtig für die Fehlertoleranz von Systemen Wiederholung: Hat ein Graph Brücken, handelt es sich also um einen 1-fach kantenzusammenhängend Graph Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 32

33 Zusammenhang - Brücken Idee Ansatz mit least ancestor und DFS least ancestor (LA) ist der kleinste Vorfahre in der Reihenfolge/Ordnung des Tiefensuchbaumes Eine Kante (v, u) ist eine Brücke, wenn für jeden Knoten v nur noch Knoten k mit größeren LA k im Tiefensuchbaum, als LA u erreicht werden können. Es von den Knoten v keine Kanten mehr gibt. Wichtig: Baumkante zum Vaterknoten wird nicht betrachtet Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 33

34 Zusammenhang - Brücken Algorithmus bridge(u, p) color[u] = grey dfsnum[u] = step++; LA = step; for each v ReachableNodes(u) do if v == p then continue if color[v] == white then rec = bridge(v, u) if (rec > dfsnum[u]) //(u, v) is bridge LA = min(la, rec) else LA = min(la, dfsnum[v]) fi od; color[u] = black return LA Least Ancestor Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 34

35 Zusammenhang - Artikulationspunkte Analog zu Brücken Knoten, nach dessen Entfernung der Graph nicht mehr zusammehängend ist, nennt man Artikulationspunkte. Artikulationspunkte sind, wie Brücken, wichtig für die Fehlertoleranz von Systemen Wiederholung: Hat ein Graph Artikulationspunkte, so handelt es sich um einen 1-fach knotenzusammenhängenden Graph Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 35

36 Zusammenhang - Artikulationspunkte Idee Ansatz mit leastanchestor und DFS Betrachtet wird lediglich der ungerichtete Graph Ein Knoten u ist ein Artikulationspunkt, wenn Er die Wurzel eines Tiefensuchbaums ist und mehr als einen Nachfolgeknoten der nicht bereits über den Tiefensuchlauf erreicht worden ist hat kein Kind v von u einen Knoten k mit kleineren Abstand zur Wurzel LA k als LA u erreichen kann. (vgl. Algorithmus zur Brückenerkennung) Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 36

37 Zusammenhang - Artikulationspunkte Algorithmus Äußere Schleife für u fehlt atc_point(u, p) dfsnum[u] = num++; LA = num ap = false children = 0 for each v ReachableNodes(u) do if v == p then continue if dfsnum[v]!= -1 then LA = min(la, dfsnum[v]) else children++ rec = atc_point(v, u) if rec >= num then ap = true LA = min(la, rec) fi od if (ap && num > 0) (num == 0 && children > 1) then //u is articulatioin point fi return LA Keinen Knoten mit kleineren Abstand gefunden Knoten ist Wurzel und hat mehrere Kinder Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 37

38 Zusammenhang Finden von Zusammenhangskomponenten ungerichteten Graphen Tiefensuche gerichteten Graphen (Starke Zusammenhangskomponenten) Algorithmus von Kosaraju Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 38

39 Zusammenhang Finden von Zusammenhangskomponenten Algorithmus basierend auf DFS bool M[128][128]; int colour[128]; int dfsnum[128], num; int n; int cc_count; int cc[128]; main() { for (int i = 0; i < n; i++) colour[i] = 0; num = 0; cc = 0; for (int j = 0; j < n; j++) if (colour[j] == 0) { cc_count++; dfs( j, -1); Neue Zusammenhangskomponente Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 39

40 Zusammenhang Finden von Zusammenhangskomponenten Tiefensuche in C void dfs (int u, int p) { colour[u] = 1; dfsnum[u] = num++; cc[u] = cc_count; for (int v = 0; v < n; v++) if(m[u][v] && v!= p) { if (colour[v] == 0) { dfs(v, u); else if (colour[v] == 1) { else { colour[u] = 2; cc[n] gibt an, zu welcher Zusammenhangskomponete Node n gehört Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 40

41 Algorithmus von Kosarju Ansatz G und G T haben die gleichen SCCs Idee Graph transponieren DFS auf den transponierten Graphen Knoten absteigend nach finish-time sortieren (alternativ: auf einen Stack legen bei Rekursionsende) DFS auf Ursprungsgraphen mit Hilfe der nach finish-time absteigend sortierten Liste von Knoten Alle (noch nicht gefundenen) erreichbaren Knoten gehören zur selben SCC Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 41

42 Quellen Algorithmen und Datenstrukturen Saake, Sattler; dpunkt.verlang, 2006 Programming Challenges Skiena, Revilla; Springer, 2003 The Algorithm Design Manual Skiena; Springer 1998 Graphalgorithmen 1 Jens Wetzl; Hallo Welt! 2009 Wikipedia Hallo Welt für Fortgeschrittene Graphalgorithmen 1 Florian Schmaus Folie 42

Graphalgorithmen I Hallo Welt! für Fortgeschrittene

Graphalgorithmen I Hallo Welt! für Fortgeschrittene Graphalgorithmen I Hallo Welt! für Fortgeschrittene Jens Wetzl (sijewetz@stud.informatik.uni-erlangen.de) 18. Mai 2009 Motivation Grundlagen Beschreibung von Objekten und deren Beziehungen zueinander Vielfältige

Mehr

Graphenalgorithmen I

Graphenalgorithmen I Graphenalgorithmen I Vortrag im Seminar Hallo Welt! für Fortgeschrittene 7. Juni 211 Graphenalgorithmen I 1/33 Motivation Problem Wie komme ich am schnellsten ins Kanapee? Problem Wie kommt ein Datenpaket

Mehr

Graphenalgorithmen I. Geschickt Programmieren für den ICPC- Wettbewerb. Felix Weissenberger

Graphenalgorithmen I. Geschickt Programmieren für den ICPC- Wettbewerb. Felix Weissenberger Graphenalgorithmen I Geschickt Programmieren für den ICPC- Wettbewerb Felix Weissenberger Inhalt Grundlagen zu Graphen Begriffe Darstellung von Graphen Graphenalgorithmen Breitensuche Tiefensuche Topologisches

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

Graphalgorithmen I. Katharina Reif Hallo Welt -Seminar - LS 2

Graphalgorithmen I. Katharina Reif Hallo Welt -Seminar - LS 2 Graphalgorithmen I Katharina Reif 14.06.2017 allo Welt -Seminar - LS 2 Überblick Einführung Speichern von Graphen Topologische Sortierung Zusammenhang und Zusammenhangskomponenten Artikulationspunkte rücken

Mehr

15. Elementare Graphalgorithmen

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

Mehr

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

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

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 07 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München 7 Fortgeschrittene Datenstrukturen Graphen

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/81 Datenstrukturen und Algorithmen Vorlesung 14+15: Elementare Graphenalgorithmen (K22,K24.2) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software

Mehr

VL-14: Graphalgorithmen I. (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger

VL-14: Graphalgorithmen I. (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger VL-14: Graphalgorithmen I (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger SS 2017, RWTH DSAL/SS 2017 VL-14: Graphalgorithmen I 1/48 Organisatorisches Vorlesung: Gerhard Woeginger (Zimmer 4024

Mehr

Programmierkurs Python

Programmierkurs Python Programmierkurs Python Stefan Thater Michaela Regneri 2010-0-29 Heute Ein wenig Graph-Theorie (in aller Kürze) Datenstrukturen für Graphen Tiefen- und Breitensuche Nächste Woche: mehr Algorithmen 2 Was

Mehr

Programmierkurs Python II

Programmierkurs Python II Programmierkurs Python II Stefan Thater & Michaela Regneri FR.7 Allgemeine Linguistik (Computerlinguistik) Universität des Saarlandes Sommersemester 011 Heute Ein wenig Graph-Theorie (in aller Kürze) Datenstrukturen

Mehr

Wintersemester 2004/ Januar Aus der Vorlesung sind Datenstrukturen zur Repräsentation von Wäldern disjunkter Mengen bekannt.

Wintersemester 2004/ Januar Aus der Vorlesung sind Datenstrukturen zur Repräsentation von Wäldern disjunkter Mengen bekannt. Lehrstuhl für Praktische Informatik III Norman May B6, 29, Raum C0.05 68131 Mannheim Telefon: (0621) 181 2517 Email: norman@pi3.informatik.uni-mannheim.de Matthias Brantner B6, 29, Raum C0.05 68131 Mannheim

Mehr

Algorithmen I. Tutorium 1-8. Sitzung. Dennis Felsing

Algorithmen I. Tutorium 1-8. Sitzung. Dennis Felsing Algorithmen I Tutorium 1-8. Sitzung Dennis Felsing dennis.felsing@student.kit.edu www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-06-06 Überblick 1 Allgemeines Adjazenzliste Adjazenzmatrix Adjazenzfeld Aufgaben

Mehr

12. Graphen. Notation, Repräsentation, Traversieren (DFS, BFS), Topologisches Sortieren, Ottman/Widmayer, Kap ,Cormen et al, Kap.

12. Graphen. Notation, Repräsentation, Traversieren (DFS, BFS), Topologisches Sortieren, Ottman/Widmayer, Kap ,Cormen et al, Kap. 254 12. Graphen Notation, Repräsentation, Traversieren (DFS, BFS), Topologisches Sortieren, Ottman/Widmayer, Kap. 9.1-9.4,Cormen et al, Kap. 22 Königsberg 1736 255 Königsberg 1736 255 Königsberg 1736 255

Mehr

Informatik II, SS 2018

Informatik II, SS 2018 Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 13 (6.6.2018) Graphenalgorithmen II Yannic Maus Algorithmen und Komplexität Repräsentation von Graphen Zwei klassische Arten, einen Graphen

Mehr

Graphalgorithmen I. Simon Regnet. May 16, Universität Erlangen. Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56

Graphalgorithmen I. Simon Regnet. May 16, Universität Erlangen. Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56 Graphalgorithmen I Simon Regnet Universität Erlangen May 16, 2008 Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, 2008 1 / 56 Inhalt 1 Motivation 2 Terminologie 3 Datenstrukturen 4 Suche

Mehr

Graphalgorithmen 1. Tillmann Zipperer Tillmann Zipperer Graphalgorithmen / 40

Graphalgorithmen 1. Tillmann Zipperer Tillmann Zipperer Graphalgorithmen / 40 Graphalgorithmen 1 Tillmann Zipperer 03.06.2015 Tillmann Zipperer Graphalgorithmen 1 03.06.2015 1 / 40 1 Grundlagen Definition Graphtypen Implizite Graphdarstellung Tillmann Zipperer Graphalgorithmen 1

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 13 (8.6.2016) Graphenalgorithmen I Algorithmen und Komplexität Graphen Knotenmenge V, typischerweise n V Kantenmenge E, typischerweise

Mehr

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / 2014 Vorlesung 12, Donnerstag, 23.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / 2014 Vorlesung 12, Donnerstag, 23. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 0 / 04 Vorlesung, Donnerstag,. Januar 04 (Graphen, Breiten/Tiefensuche, Zusammenhangskomponenten) Junior-Prof.

Mehr

Rückblick: Starke Zusammenhangskomponenten

Rückblick: Starke Zusammenhangskomponenten Rückblick: Starke Zusammenhangskomponenten Der Algorithmus von Kosaraju bestimmt die starken Zusammenhangskomponenten eines gerichteten Graphen wie folgt: Schritt 1: Bestimme den transponierten Graphen

Mehr

Diskrete Strukturen WS 2005/06. Ernst W. Mayr. 27. Januar Fakultät für Informatik TU München

Diskrete Strukturen WS 2005/06. Ernst W. Mayr. 27. Januar Fakultät für Informatik TU München WS 2005/06 Ernst W. Mayr Fakultät für Informatik TU München http://www14.in.tum.de/lehre/2005ws/ds/ 27. Januar 2006 Ernst W. Mayr 2.16 Inzidenzmatrix 3. Definitionen für gerichtete Graphen 3.1 Digraph

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

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

Zweizusammenhang und starker Zusammenhang

Zweizusammenhang und starker Zusammenhang .. Zeizusammenhang und starker Zusammenhang Carsten Gutenger Vorlesung Algorithmen und Datenstrukturen WS /. Januar Zeizusammenhang Betrachte ein Netzerk (Graph) Z.B. Computernetzerk, Flug- oder Schienennetzerk

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

12. Graphen. Königsberg Zyklen. [Multi]Graph

12. Graphen. Königsberg Zyklen. [Multi]Graph Königsberg 76. Graphen, Repräsentation, Traversieren (DFS, BFS), Topologisches Sortieren, Ottman/Widmayer, Kap. 9. - 9.,Cormen et al, Kap. [Multi]Graph Zyklen C Kante Gibt es einen Rundweg durch die Stadt

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphdurchläufe Maike Buchin 22. und 27.6.2017 Graphexploration Motivation: Für viele Zwecke will man den gesamten Graphen durchlaufen, zb. um festzustellen ob er (stark) zusammenhängt.

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 16 (2.7.2014) Graphtraversierung II, Minimale Spannbäume I Algorithmen und Komplexität Tiefensuche: Pseusocode DFS Traversal: for all u in

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 12 (4.6.2018) Graphenalgorithmen I Yannic Maus Algorithmen und Komplexität Graphen Knotenmenge V, typischerweise n V Kantenmenge E, typischerweise

Mehr

Algorithmus zur topologischen Nummerierung: while V = 0 do nummeriere eine Quelle mit der nächsten Nummer streiche diese Quelle aus V od

Algorithmus zur topologischen Nummerierung: while V = 0 do nummeriere eine Quelle mit der nächsten Nummer streiche diese Quelle aus V od Algorithmus zur topologischen Nummerierung: while V = 0 do nummeriere eine Quelle mit der nächsten Nummer streiche diese Quelle aus V od Diskrete Strukturen 3.7 dag 473/556 3.8 Zusammenhang Definition

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

Algorithmen und Datenstrukturen 13

Algorithmen und Datenstrukturen 13 19. Juli 2012 1 Besprechung Blatt 12 Fragen 2 Bäume AVL-Bäume 3 Graphen Allgemein Matrixdarstellung 4 Graphalgorithmen Dijkstra Prim Kruskal Fragen Fragen zu Blatt 12? AVL-Bäume AVL-Bäume ein AVL-Baum

Mehr

8. Übung zu Algorithmen I 15. Juni 2016

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

Mehr

Kap. 6.3: Traversieren von Graphen Kap. 6.4: Elementare Graphalgorithmen

Kap. 6.3: Traversieren von Graphen Kap. 6.4: Elementare Graphalgorithmen Kap. 6.3: Traversieren von Graphen Kap. 6.4: Elementare Graphalgorithmen Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 19. VO DAP2 SS 2008 19. Juni 2008 1

Mehr

ADS 2: Algorithmen und Datenstrukturen

ADS 2: Algorithmen und Datenstrukturen ADS : Algorithmen und Datenstrukturen Teil 4 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

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 12, Donnerstag, 22.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 12, Donnerstag, 22. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 014 / 015 Vorlesung 1, Donnerstag,. Januar 015 (Graphen, Breiten/Tiefensuche, Zusammenhangskomponenten) Junior-Prof.

Mehr

Kap. 5: Graphen. Carsten Gutwenger Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund. 17. VO DAP2 SS

Kap. 5: Graphen. Carsten Gutwenger Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund. 17. VO DAP2 SS Kap. 5: Graphen Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 17. VO DAP2 SS 2009 23. Juni 2008 1 Motivation Warum soll ich heute hier bleiben? Graphen sind wichtig und

Mehr

9. Übung Algorithmen I

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

Mehr

Gliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen

Gliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen 5. Compiler Gliederung 1. Struktur eines Compilers 2. Syntaxanalyse durch rekursiven Abstieg 3. Ausnahmebehandlung 4. Arrays und Strings 6. Sortieren und Suchen 1. Grundlegende Datenstrukturen 2. Bäume

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

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 4 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 02. Mai 2017 [Letzte Aktualisierung: 10/07/2018,

Mehr

Gliederung. Algorithmen und Datenstrukturen II. ADT Graph. ADT Graph. Graphen in JAVA. Klasse Graph Suche Breitensuche Tiefensuche. D.

Gliederung. Algorithmen und Datenstrukturen II. ADT Graph. ADT Graph. Graphen in JAVA. Klasse Graph Suche Breitensuche Tiefensuche. D. Gliederung Algorithmen und Datenstrukturen II Graphen in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 20. April

Mehr

Graphen. Leonhard Euler ( )

Graphen. Leonhard Euler ( ) Graphen Leonhard Euler (1707-1783) 2 Graph Ein Graph besteht aus Knoten (nodes, vertices) die durch Kanten (edges) miteinander verbunden sind. 3 Nachbarschaftsbeziehungen Zwei Knoten heissen adjazent (adjacent),

Mehr

Traversierung 1 / 16. P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V3 23. April / 16

Traversierung 1 / 16. P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V3 23. April / 16 P.F. Stadler & S. Will (Bioinf, Uni LE) ADS, V. April 0 / P.F. Stadler & S. Will (Bioinf, Uni LE) ADS, V. April 0 / Traversierung ADS: Algorithmen und Datenstrukturen Teil Prof. Peter F. Stadler & Sebastian

Mehr

Algorithmen I. Prof. Jörn Müller-Quade Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?

Algorithmen I. Prof. Jörn Müller-Quade Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php? Algorithmen I Prof. Jörn Müller-Quade 19.06.2017 Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?id=799 (Folien von Peter Sanders) KIT Institut für Theoretische Informatik

Mehr

Graphalgorithmen. Graphen

Graphalgorithmen. Graphen (Folie 270, Seite 67 im Skript) Graphen (Folie 271, Seite 67 im Skript) Graphen Definition Ein ungerichteter Graph ist ein Paar (V, E), wobei V die Menge der Knoten und E ( V 2) die Menge der Kanten ist.

Mehr

ADS 2: Algorithmen und Datenstrukturen

ADS 2: Algorithmen und Datenstrukturen ADS : Algorithmen und Datenstrukturen Teil Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 09. Mai 08 [Letzte Aktualisierung: 06/07/08, 08:4]

Mehr

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen Bäume sind verallgemeinerte Listen Datenstrukturen Teil 2 Bäume Jeder Knoten kann mehrere Nachfolger haben Sie sind weiter spezielle Graphen Graphen bestehen aus Knoten und Kanten Kanten können gerichtet

Mehr

Tutoraufgabe 1 (SCC):

Tutoraufgabe 1 (SCC): Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS F. Corzilius, S. Schupp, T. Ströder Allgemeine Hinweise: Die Hausaufgaben sollen in Gruppen von je bis Studierenden aus der gleichen Kleingruppenübung

Mehr

ADS 2: Algorithmen und Datenstrukturen

ADS 2: Algorithmen und Datenstrukturen ADS : Algorithmen und Datenstrukturen Teil 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

Algorithmen und Datenstrukturen SS09. Foliensatz 16. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik

Algorithmen und Datenstrukturen SS09. Foliensatz 16. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik Foliensatz 16 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 2009 TU Ilmenau Seite 1 / 45 Graphen TU Ilmenau Seite 2 / 45 Graphen 1 2 3 4 5 6 7 8

Mehr

Graphen Jiri Spale, Algorithmen und Datenstrukturen - Graphen 1

Graphen Jiri Spale, Algorithmen und Datenstrukturen - Graphen 1 Graphen 27 Jiri Spale, Algorithmen und Datenstrukturen - Graphen Motivation Einsatz: Berechnung von Entfernungen Auffinden von Zyklen in Beziehungen Ermittlung von Verbindungen Zeitmanagement Konzept:

Mehr

Graphen und Bäume. A.1 Graphen

Graphen und Bäume. A.1 Graphen Algorithmen und Datenstrukturen 96 A Graphen und Bäume A.1 Graphen Ein gerichteter Graph (auch Digraph) G ist ein Paar (V, E), wobei V eine endliche Menge und E eine Relation auf V ist, d.h. E V V. V heißt

Mehr

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie Dipl-Math. Wolfgang Kinzner 2.4.2012 Kapitel 1: Grundlagen der algorithmischen Graphgentheorie

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. Mariano Zelke. Sommersemester 2012 Datenstrukturen Mariano Zelke Sommersemester 2012 Tiefensuche: Die globale Struktur Der gerichtete oder ungerichtete Graph G werde durch seine Adjazenzliste A repräsentiert. Im Array besucht wird vermerkt,

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil II Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University of Leipzig 07.

Mehr

9 Graphtraversierung. Sanders / van Stee: Algorithmentechnik November 27,

9 Graphtraversierung. Sanders / van Stee: Algorithmentechnik November 27, Sanders / van Stee: Algorithmentechnik November 27, 2007 1 9 Graphtraversierung Ausgangspunkt oder Baustein fast jedes nichtrivialen Graphenalgorithmus Sanders / van Stee: Algorithmentechnik November 27,

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 217 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Graphen, Suchbäume, AVL Bäume Heute: Graphen und Bäume Binäre Suchbäume AVL-Bäume Nächste

Mehr

23. Graphen. Königsberg Zyklen. [Multi]Graph

23. Graphen. Königsberg Zyklen. [Multi]Graph Königsberg 76. Graphen, Repräsentation, Reflexive transitive Hülle, Traversieren (DFS, BFS), Zusammenhangskomponenten, Topologisches Sortieren Ottman/Widmayer, Kap. 9. - 9.,Cormen et al, Kap. 60 60 [Multi]Graph

Mehr

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37 2. November 2011 Gradfolgen Zusammenhang Kürzeste Wege H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37 Satz von Erdős und Gallai Eine Partition einer natürlichen Zahl ist genau dann die Gradfolge

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 217 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Graphen und Bäume 2. Binäre Suchbäume 3. AVL-Bäume 4. Algorithmen und Datenstrukturen 2 Agenda

Mehr

Helmut Schauer Educational Engineering Lab Department for Information Technology University of Zurich. Graphen (2)

Helmut Schauer Educational Engineering Lab Department for Information Technology University of Zurich. Graphen (2) Graphen (2) 1 Topologisches Sortieren (1) Die Kanten eines gerichteten zyklenfreien Graphen bilden eine Halbordnung (die Ordnungsrelation ist nur für solche Knoten definiert die am gleichen Pfad liegen).

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 I - Tutorium 28 Nr. 9

Algorithmen I - Tutorium 28 Nr. 9 Algorithmen I - Tutorium 28 Nr. 9 29.06.2017: Spaß mit Graphen und Graphtraversierung Marc Leinweber marc.leinweber@student.kit.edu INSTITUT FÜR THEORETISCHE INFORMATIK (ITI), PROF. DR. JÖRN MÜLLER-QUADE

Mehr

Motivation Kap. 6: Graphen

Motivation Kap. 6: Graphen Motivation Kap. 6: Graphen Warum soll ich heute hier bleiben? Graphen sind wichtig und machen Spaß! Professor Dr. Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund Was gibt es

Mehr

Kapitel 5: Graphen und Graphalgorithmen

Kapitel 5: Graphen und Graphalgorithmen LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Algorithmen und Datenstrukturen Kapitel 5: Graphen und Graphalgorithmen Skript zur Vorlesung Algorithmen und Datenstrukturen

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 4 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

Algorithmen & Komplexität

Algorithmen & Komplexität Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Breitensuche, Tiefensuche Wir besprechen nun zwei grundlegende Verfahren, alle Knoten eines Graphen zu

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

Programmierung 2 Studiengang MI / WI

Programmierung 2 Studiengang MI / WI Programmierung 2 Studiengang MI / WI Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 Fachbereich Automatisierung

Mehr

Teil 2: Graphenalgorithmen

Teil 2: Graphenalgorithmen Teil : Graphenalgorithmen Anwendungen Definitionen Datenstrukturen für Graphen Elementare Algorithmen Topologisches Sortieren Kürzeste Wege Problemstellung Ungewichtete Graphen Distanzgraphen Gewichtete

Mehr

Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen II Algorithmen und Datenstrukturen II D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 9. April 2009, c 2009 D.Rösner D.

Mehr

Breitensuche BFS (Breadth First Search)

Breitensuche BFS (Breadth First Search) Breitensuche BFS (Breadth First Search) Algorithmus BREITENSUCHE EINGABE: G = (V, E) als Adjazenzliste, Startknoten s V 1 Für alle v V 1 If (v = s) then d[v] 0 else d[v] ; 2 pred[v] nil; 2 Q new Queue;

Mehr

Bipartites Matching. Gegeben: Ein bipartiter, ungerichteter Graph (V 1, V 2, E). Gesucht: Ein Matching (Paarung) maximaler Kardinalität.

Bipartites Matching. Gegeben: Ein bipartiter, ungerichteter Graph (V 1, V 2, E). Gesucht: Ein Matching (Paarung) maximaler Kardinalität. Netzwerkalgorithmen Bipartites Matching (Folie 90, Seite 80 im Skript) Gegeben: Ein bipartiter, ungerichteter Graph (V, V, E). Gesucht: Ein Matching (Paarung) maximaler Kardinalität. Ein Matching ist eine

Mehr

ADS 2: Algorithmen und Datenstrukturen

ADS 2: Algorithmen und Datenstrukturen ADS 2: Algorithmen und Datenstrukturen Teil 2 Prof. Peter F. Stadler & Sebastian Will Bioinformatik/IZBI Institut für Informatik & Interdisziplinäres Zentrum für Bioinformatik Universität Leipzig 16. April

Mehr

14. Elementare Graphalgorithmen

14. Elementare Graphalgorithmen Graphen sind eine der wichtigsten Modellierungskonzepte der Informatik Graphalgorithmen bilden die Grundlage vieler Algorithmen in der Praxis Übersicht: Zunächst eine kurze Einführung in Graphen. Dann

Mehr

Datenstrukturen und Algorithmen (SS 2013)

Datenstrukturen und Algorithmen (SS 2013) Datenstrukturen und Algorithmen (SS 2013) Übungsblatt 10 Abgabe: Montag, 08.07.2013, 14:00 Uhr Die Übungen sollen in Gruppen von zwei bis drei Personen bearbeitet werden. Schreiben Sie die Namen jedes

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2017/18 20. Vorlesung Tiefensuche und topologische Sortierung Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Themen für den 3. Kurztest (Do, 25.01.18)

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

Datenstrukturen & Algorithmen Lösungen zu Blatt 8 FS 16

Datenstrukturen & Algorithmen Lösungen zu Blatt 8 FS 16 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. April 0

Mehr

Effiziente Algorithmen

Effiziente Algorithmen Effiziente Algorithmen Martin Hofmann und Jan Johannsen Institut für Informatik LMU München Sommersemester 2002 Graphalgorithmen Grundlegendes Repräsentation von Graphen Breiten- und Tiefensuche Minimale

Mehr

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl

Mehr

Graphalgorithmen I. Yannik Tannhäuser Hallo Welt! -Seminar LS 2

Graphalgorithmen I. Yannik Tannhäuser Hallo Welt! -Seminar LS 2 Graphalgorithmen I Yannik Tannhäuser 22.05.2019 Hallo Welt! -Seminar LS 2 Motivation Königsberger rückenproblem, 1736 von Leonhard uler gelöst Viele Probleme lassen sich auf (auch heute noch) Graphen übertragen

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

10. Übungsblatt zu Algorithmen I im SS 2010

10. Übungsblatt zu Algorithmen I im SS 2010 Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter Sanders G.V. Batz, C. Schulz, J. Speck 0. Übungsblatt zu Algorithmen I im SS 00 http//algo.iti.kit.edu/algorithmeni.php

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2014/15 17. Vorlesung Graphen: Repräsentation und Durchlaufstrategien Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Vorlesungsumfrage Nutzen Sie

Mehr

Lernmodul 7 Algorithmus von Dijkstra

Lernmodul 7 Algorithmus von Dijkstra Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer

Mehr

Teil 2: Graphenalgorithmen

Teil 2: Graphenalgorithmen Teil 2: Graphenalgorithmen Anwendungen Definitionen Datenstrukturen für Graphen Elementare Algorithmen Topologisches Sortieren Kürzeste Wege Minimal aufspannende Bäume Flüsse in Netzwerken Zusammenhangskomponenten

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

Java. public D find(k k) { Listnode K, D n = findnode(k); if(n == null) return null; return n.data; Java

Java. public D find(k k) { Listnode K, D n = findnode(k); if(n == null) return null; return n.data; Java Einführung Elementare Datenstrukturen (Folie 27, Seite 15 im Skript) Java Java public D find(k k) { Listnode K, D n = findnode(k); if(n == null) return null; return n.data; } protected Listnode K, D findnode(k

Mehr

Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 1 V9/11

Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 1 V9/11 Modul: Programmierung B-PRG Grundlagen der Programmierung Teil V9/ Graphen und Bäume Professur für Graphische Datenverarbeitung Institut für Informatik Fachbereich Informatik und Mathematik (2) Rückblick:

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 3 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

Algorithmen & Datenstrukturen 2 Praktikum 3

Algorithmen & Datenstrukturen 2 Praktikum 3 Algorithmen & Datenstrukturen 2 Praktikum 3 Thema: Graphalgorithmen Sommersemester 2016 Prof. Dr. Christoph Karg Hochschule Aalen Dieses Praktikum widmet sich dem Thema Graphalgorithmen. Ziel ist die Implementierung

Mehr

Einheit 11 - Graphen

Einheit 11 - Graphen Einheit - Graphen Bevor wir in medias res (eigentlich heißt es medias in res) gehen, eine Zusammenfassung der wichtigsten Definitionen und Notationen für Graphen. Graphen bestehen aus Knoten (vertex, vertices)

Mehr

Das Heiratsproblem. Definition Matching

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

Mehr

Lösungen zu Kapitel 5

Lösungen zu Kapitel 5 Lösungen zu Kapitel 5 Lösung zu Aufgabe : (a) Es gibt derartige Graphen: (b) Offensichtlich besitzen 0 der Graphen einen solchen Teilgraphen. Lösung zu Aufgabe : Es sei G = (V, E) zusammenhängend und V

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