Teil 2: Graphenalgorithmen

Größe: px
Ab Seite anzeigen:

Download "Teil 2: Graphenalgorithmen"

Transkript

1 Teil : Graphenalgorithmen Anwendungen Definitionen Datenstrukturen für Graphen Elementare Algorithmen Topologisches Sortieren Kürzeste Wege Minimal aufspannende Bäume Flüsse in Netzwerken Zusammenhangskomponenten M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen

2 Definition: Topologische Sortierung () Eine Folge aller Knoten eines gerichteten Graphen G,,,, n heißt topologische Sortierung, falls für alle Knoten u, folgende Bedingung gilt: falls es einen Weg in G on u nach gibt, dann steht in der Folge u links on. Beispiel: Topologische Sortierung Anschaulich: Unter Einhaltung der Nachbarschaftsbeziehung lässt sich der Graph in eine lineare Kette so erbiegen, dass die Pfeile nur nach rechts gehen. M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen

3 Eigenschaften: Topologische Sortierung () Falls der Graph einen Zyklus enthält, dann existiert keine topologische Sortierung. Beispiel: Falls ein Graph topologisch sortiert werden kann, dann ist im allgemeinen die topologische Sortierung nicht eindeutig. Beispiele für Anwendungen: Stelle fest, ob es eine Durchführungsreihenfolge für die Aktiitäten oder auch Prozesse in einem Vorranggraphen gibt. Prüfe, ob Vererbungsgraph oder includegraph zyklenfrei ist. M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen

4 Topologische Sortierung () Idee: Speichere für jeden Knoten : indegree[] = Anzahl der noch nicht besuchten Vorgänger. Speichere alle Knoten, für die InDegree[] == gilt, in einer Schlange q. q enthält also alle Knoten, die als nächstes besucht werden dürfen. Besuche als nächstes den orderstes Knoten in der Schlange q und entferne ihn aus q. Algorithmus: oid topsort(digraph G, Vertex ts[ ]) { int indegree[n]; // n ist Anz. der Knoten in G Queue<Vertex> q; for (jeden Knoten ) { indegree[] = Anzahl der Vorgänger; if (indegree[] == ) q.push(); int k = ; while (! q.empty() ) { = q.front(); q.pop(); ts[k++] = ; Liefert zu einem gerichteten Graphen G eine topologische Sortierung ts. for (jeden Nachfolger w on ) if(indegree[w] == ) q.push(w); if (k!= n) cout << Graph ist zyklisch; << keine top. Sortierung moeglich ; M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen

5 Topologische Sortierung () Bemerkungen: Der Algorithmus zur topologischen Sortierung ist eine Modifikation der Breitensuche: Breitensuche: for (jeden Nachfolger w on ) if ((al[w] == nichtbesucht ) q.push(w); Topolog. Sortieren: for (jeden Nachfolger w on ) if(indegree[w] == ) q.push(w); Füge alle noch nicht besuchten Nachbarn w in die Schlange q ein. Füge alle Nachbarn w, für die indegree[w] == gilt, in die Schlange q ein. Das bedeutet, dass alle Nachbarn w in die Schlange eingefügt werden, für die gilt: w noch nicht besucht und alle Vorgänger on w wurden bereits besucht Lässt man das Abspeichern der besuchten Knoten in das Feld ts weg, dann erhält man einen einfachen Algorithmus zur Prüfung on Zyklenfreiheit. Es gibt auch eine modifizierte Tiefensuche zur Prüfung on Zyklenfreiheit. Dieser Algorithmus arbeitet den Graph on rechts nach links ab, während der hier orgestellte Algorithmus den Graphen on links nach rechts abarbeitet. Der TiefensuchAlgorithmus benutzt Rekursion oder einen Stack und ist weniger intuiti (siehe [Turau]; Seite 9). M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen

6 Topologische Sortierung () Analyse Die whileschleife wird für jeden Knoten genau einmal durchlaufen; also V mal. Die forschleife wird für jede on ausgehende Kante genau einmal durchlaufen. Verwendet man die Adjazenzlistendarstellung, ist der Aufwand für den Durchlauf aller forschleifen gleich O( E ). Damit ergibt sich mit Adjazenzlistendarstellung insgesamt: T = O( V + E ) oid topsort(digraph G, Vertex ts[ ]) { int indegree[n]; // n ist Anz. der Knoten in G Queue<Vertex> q; for (jeden Knoten ) { indegree[] = Anzahl der Vorgänger; if (indegree[] == ) q.push(); int k = ; while (! q.empty() ) { = q.front(); q.pop(); ts[k++] = ; for (jeden Nachfolger w on ) if(indegree[w] == ) q.push(w); if (k!= n) cout << Graph ist zyklisch; << keine top. Sortierung moeglich ; M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen

7 Teil : Graphenalgorithmen Anwendungen Definitionen Datenstrukturen für Graphen Elementare Algorithmen Topologisches Sortieren Kürzeste Wege Problemstellung Ungewichtete Graphen Distanzgraphen Gewichtete Digraphen Netzpläne Alle kürzeste Wege in gewichteten Digraphen Flüsse in Netzwerken Minimal aufspannende Bäume M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen

8 Länge eines Weges Problemstellung () Gewichteter Graph: Summe der Kantengewichte (Kantenkosten) Ungewichteter Graph: Anzahl der Kanten. (Ein ungewichteter Graph entspricht damit einem gewichteten Graphen, bei dem jede Kante die Kosten hat) Kürzester Weg und Distanz Im allgemeinen gibt es zwischen zwei Knoten u und mehrere Wege. Ein Weg on u nach heißt kürzester Weg, falls der Weg minimale Länge hat. Die Distanz d(u,) zwischen u und wird als die Länge eines kürzesten Weges definiert. Falls es keinen Weg on u nach gibt, ist d(u,) =. Beispiel Weg on nach mit Länge. Kürzester Weg on nach mit Länge. Damit ist Distanz d(,) =. M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen

9 Problemstellung () Länge eines Weges muss nicht die wörtliche Bedeutung haben: Die Gewichte (Kosten) der Kanten und damit die Weglängen können in Abhängigkeit on der Anwendung ganz unterschiedliche Bedeutungen haben. Beispiele: Streckenlänge Zeitspannen Kosten Profit: Gewinn/Verlust (Gewichte können positi und negati sein) Wahrscheinlichkeiten M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen 9

10 Verschiedene Problemarianten: Problemstellung () () Kürzeste Wege zwischen zwei Knoten (Single pair shortest path) () Kürzeste Wege zwischen einem Knoten und allen anderen Knoten (Singlesource shortestpath problem) () Kürzeste Wege zwischen allen Knotenpaaren (all pairs shortest path) Für Problem () kennt man keine bessere Lösung, als einen Algorithmus für Lösung () zu nehmen, der abgebrochen wird, sobald der Zielknoten erreicht wird. Problem () kann auf Problem () zurückgeführt werden. Bei dicht besetzten Graphen (d.h. iele Kanten) gibt es jedoch eine effizientere Lösung, die zudem auch negatie Kantengewichte zulässt. M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen

11 Problemstellung () Übersicht über die hier präsentierten Algorithmen: A B C D E Problemtyp Problem () für ungewichtete Graphen Problem () für DistanzGraphen (Graphen mit nur positien Gewichten) Problem () für gewichtete Digraphen (gerichtete Graphen mit beliebigen d.h. auch negatien Gewichten) Problem () für gewichtete, azyklische Digraphen mit einem Start und einem Endknoten (sogenannte Netzpläne) Problem () für gewichtete Digraphen (auch negatie Gewichte zulässig) Algorithmus Erweiterte Breitensuche Algorithmus on Dijkstra; A*Verfahren Algorithmus on Moore und Ford Erweiterte topologische Sortierung Algorithmus on Floyd Problem (): Kürzeste Wege zwischen einem Knoten und allen anderen Knoten Problem (): Kürzeste Wege zwischen allen Knotenpaaren Beachte: Problemtyp D ist ein Spezialfall on C. Der auf Problemtyp D zugeschnittene Algorithmus ist wesentlich effizienter als der Algorithmus für Problemtyp C. M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen

12 Teil : Graphenalgorithmen Anwendungen Definitionen Datenstrukturen für Graphen Elementare Algorithmen Topologisches Sortieren Kürzeste Wege Problemstellung Ungewichtete Graphen Distanzgraphen Gewichtete Digraphen Netzpläne Alle kürzeste Wege in gewichteten Digraphen Minimal aufspannende Bäume Flüsse in Netzwerken Zusammenhangskomponenten M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen

13 Erweiterte Breitensuche () Problem: Eingabe: Ungewichteter Graph mit Startknoten s. Ausgabe: Kürzeste Wege zwischen s und allen anderen Knoten Idee: Breitensuche mit Abspeichern der gefundenen Wege und Distanzen Beginne bei s und durchlaufe Graph mit Breitensuche: zuerst werden alle Knoten mit Distanz besucht, dann alle Knoten mit Distanz, usw. Distanzfeld d: Speichere für jeden besuchten Knoten die Distanz d[] zu Startknoten s. Vorgängerfeld p: p[] = Vorgängerknoten im kürzesten Weg nach. Damit ergibt sich für folgender kürzester Weg (in umgekehrter Reihenfolge):, p[], p[p[]],, p[ p[p[]] ] = s Beispiel: Startknoten s = d[] p[] () () () () d[] p[] d[] p[] () () M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen

14 Erweiterte Breitensuche () Algorithmus Eingabe: Startknoten s und ungewichteter Graph G oid shortestpath (Vertex s, Graph G, int d[ ], Vertex p[ ]) { for (jeden Knoten ) { d[] = ; p[] = undef; d[s] = ; // Distanz für Startknoten Ausgabe: Distanzfeld d und Vorgängerfeld p d[] p[] Queue q<vertex>; q.push(s); while (! q.empty() ) { = q.front(); q.pop(); for (jeden Nachbarn w on ) if (d[w] == ) { // w noch nicht besucht d[w] = d[] + ; p[w] = ; q.push(w); d[] p[] d[] p[] M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen

15 Erweiterte Breitensuche () Analyse: Mit Adjazenlistendarstellung ergibt sich eine Laufzeit on: T = O( V + E ) (Begründung wie bei der topologischen Sortierung.) M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen

16 Teil : Graphenalgorithmen Anwendungen Definitionen Datenstrukturen für Graphen Elementare Algorithmen Topologisches Sortieren Kürzeste Wege Problemstellung Ungewichtete Graphen Distanzgraphen Gewichtete Digraphen Netzpläne Alle kürzeste Wege in gewichteten Digraphen Minimal aufspannende Bäume Zusammenhangskomponenten Flüsse in Netzwerken Schwierige Probleme M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen

17 Idee Algorithmus on Dijkstra () Problem: Eingabe: DistanzGraph (Gewichte sind positi) mit Startknoten s. Ausgabe: Kürzeste Wege zwischen s und allen anderen Knoten Ähnlich wie bei der Breitensuche werden alle Knoten, die als nächstes besucht werden müssen, in einer Liste K (Kandidatenliste) gehalten. Aus der Kandidatenliste wird immer der Knoten mit der kleinsten Distanz als nächster besucht. d[] p[] Als nächstes wird Knoten mit Distanzwert besucht. Kandidatenliste Bereits besucht d[] Distanz zwischen und Startknoten s = p[] Vorgängerknoten im kürzesten Weg nach M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen

18 M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen Algorithmus on Dijkstra () Idee (Fortsetzung) Wird ein neuer Knoten besucht, dann kommen eentuell neue Nachbarknoten zur Kandidatenliste. Bei allen Nachbarknoten wird geprüft, ob ein Weg über einen kürzeren Weg ergibt. Knoten ist zur Kandidatenliste neu dazu gekommen. Der Distanzwert on Knoten hat sich on auf erbessert, da der Weg über Knoten kürzer ist als der bisherige. Knoten wird besucht Knoten wird besucht d() = p[] d[] p[] d[]

19 Algorithmus on Dijkstra () oid shortestpath (Vertex s, DistanzGraph G, int d[ ], Vertex p[ ] ) { Set kl; // Kandidatenliste for (jeden Knoten ) { d[] = ; p[] = undef; d[s] = ; // Startknoten () kl.insert(s); while (! kl.empty() ) { () lösche Knoten aus kl mit d[] minimal; for (jeden Nachbar w on ) { if (d[w] == ) { // w noch nicht besucht und nicht in Kandidatenliste () kl.insert(w); if (d[] + c(,w) < d[w]) { p[w] = ; () d[w] = d[] + c(,w); Eingabe: Startknoten s und Distanzgraph G Ausgabe: Distanzfeld d und Vorgängerfeld p In der Kandidatenliste sind alle Knoten abgespeichert, die als nächstes besucht werden müssen. Die Zugriffsoperationen auf die Kandidatenliste sind rot gekennzeichnet. Mögliche Implementierungen werden auf der nächsten Folie diskutiert. Distanzwert für w erbessert sich. Kürzester Weg nach w geht nun über. Man beachte, dass sich der Distanzwert nur für Knoten w aus kl erbessern kann. M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen 9

20 Algorithmus on Dijkstra () (a) Implementierung der Kandidatenliste als Vorrangswarteschlange Eine Vorrangswarteschlange (Priority Queue) bietet eine effiziente Realisierung folgender Operationen an: insert(, d); fügt Element mit Vorrangswert (hier Distanzwert) d ein. Aufruf in () und (). = delmin(); löscht Element mit kleinstem Vorrangswert. Aufruf in (). change(, dneu); ändert den Vorrangwert des Elements auf dneu. Aufruf in (). Eine Vorrangswarteschlange kann mit einer HeapStruktur (siehe HeapSort aus Programmiertechnik ) implementiert werden. Damit können insert, delmin und change in O(log n) durchgeführt werden. Für change wird noch zusätzlich eine Suchstruktur benötigt, um den Knoten finden zu können. (b) Implementierung der Kandidatenliste als einfaches (unsortiertes) Feld insertoperation in O(). Siehe () und (). Löschen des kleinsten Element in O(n). Siehe (). In Schritt () ist keine Umorganisation des Feldes notwendig: daher O() für Schritt (). M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen

21 Algorithmus on Dijkstra () Analyse: (a) Kandidatenliste als einfaches (unsortiertes) Feld Die whileschleife wird V mal durchgeführt. Für () ist O( V ) notwendig. Die forschleife braucht ebenfalls O( V ). Insgesamt: T = O( V ) (b) Kandidatenliste als Vorrangswarteschlange () und () (changeoperation) benötigen O(log V ). Jede Kante im Graph wird genau einmal in einer der forschleifen betrachtetet. Damit ist für alle forschleifen insgesamt O(E log V ) notwendig. Hinzu kommt V mal die Ausführung on (), die in O(log V ) realisiert werden kann. Insgesamt: T = O(E log V ) Fazit: Ist der Graph dicht besetzt, d.h. E = O( V ), dann ist die Variante (a) besser. Ist der Graph dünn besetzt, d.h. E = O( V ), dann ist die Variante (b) besser. M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen

22 M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen Beispiel zu Algorithmus on Dijkstra () Knoten wird besucht Knoten wird besucht Knoten wird besucht p[] d[] p[] d[] p[] d[]

23 M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen Beispiel zu Algorithmus on Dijkstra () Knoten wird besucht Knoten wird besucht Knoten wird besucht p[] d[] p[] d[] p[] d[]

24 M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen Beispiel zu Algorithmus on Dijkstra () Kürzeste Wege für Startknoten s = sind nun bekannt für die Zielknoten:,,,,. p[] d[]

25 A*Algorithmus () Verbesserung des Algorithmus on Dijkstra: Ist der kürzeste Weg zu genau einem Zielknoten z gesucht und lässt sich die Distanz on einem Knoten zum Zielknoten z durch eine Schätzfunktion h(,z) abschätzen, dann lässt sich der Algorithmus on Dijkstra optimieren. Statt den Knoten mit d[] minimal als nächstes zu besuchen zu besuchen, wird der Knoten besucht mit d[] + h(,z) minimal. Damit werden Knoten beorzugt, die näher zum Zielknoten liegen. Sind die Knoten des Graphen Punkte in der Euklidischen Ebene und die Gewichte gleich den Euklidischen Abständen ( Länge der Luftlinie ), dann lässt sich als Schätzfunktion h(,z) der Euklidische Abstand zwischen und z wählen. s h(,z) z h(,z) Wird der kürzeste Weg on s nach z gesucht, wird zuerst Knoten besucht, weil dieser näher zu z liegt. M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen

26 A* Algorithmus () bool shortestpath (Vertex s, Vertex z, DistanzGraph G, int d[ ], Vertex p[ ] ) { Set kl; // Kandidatenliste for (jeden Knoten ) { d[] = ; p[] = undef; d[s] = ; // Startknoten kl.insert(s); Eingabe: Startknoten s, Zielknoten z und Distanzgraph G Ausgabe: Distanzfeld d und Vorgängerfeld p while (! kl.empty() ) { Änderungen gegenüber lösche Knoten aus kl mit d[] + h(,z) minimal; dem DiskstraAlgorithmus if ( == z) // Zielknoten z erreicht sind blau gekennzeichnet. return true; for (jeden Nachbar w on ) { if (d[w] == ) { // w noch nicht besucht und nicht in Kandidatenliste kl.insert(w); if (d[] + c(,w) < d[w]) { p[w] = ; d[w] = d[] + c(,w); return false; M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen

27 Korrektheit des Algorithmus: A* Algorithmus () Das A*Verfahren liefert immer einen kürzesten Weg, falls der Zielknoten z erreichbar ist und die Schätzfunktion h folgende Eigenschaften erfüllt: () h ist optimistisch: h(u,) d(u,) für alle Knoten u, (d.h. h unterschätzt die tatsächliche Distanz d) () h ist monoton: h(u,) c(u,w) + h(w,) für alle Knoten u,, w h(u,) h(w,) Bemerkungen: u c(u,w) Die Euklidische Abstandsfunktion erfüllt die beiden oberen Bedingungen. w Die Schätzfunktion h(u,) = erfüllt triialerweise beide Bedingungen. Man erhält dann genau den Algorithmus on Dijkstra. In der Literatur wird die Schätzfunktion auch Heuristik genannt (Heuristik = Strategie zur Lösungssuche) M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen

28 A* Algorithmus () Beispiel Aus [Turau ]: DijkstraAlgorithmus A*Algorithmus Schätzfunktion h und Kantengewicht c sind als Euklidischer Abstand definiert. M.O.Franz; Noember Algorithmen und Datenstrukturen Graphenalgorithmen

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

Teil 2: Graphenalgorithmen

Teil 2: Graphenalgorithmen Teil : Graphenalgorithmen Anwendungen Definitionen Datenstrukturen für Graphen Elementare Algorithmen Topologisches Sortieren Kürzeste Wege Minimal aufspannende Bäume Problemstellung Algorithmus von Prim

Mehr

8. Kürzeste Wege in Graphen

8. Kürzeste Wege in Graphen . Kürzeste Wege in Graphen Problemstellung Ungewichtete Graphen und erweiterte Breitensuche Distanzgraphen und Dijkstra-Algorithmus Gewichtete Digraphen und Moore-Ford-Algorithmus Netzpläne und erweiterte

Mehr

Teil III: Graphenalgorithmen

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

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

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Kürzeste Wege Maike Buchin 4. und 6.7.2017 Einführung Motivation: Bestimmung von kürzesten Wegen ist in vielen Anwendungen, z.b. Routenplanung, ein wichtiges Problem. Allgemeine

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

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

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester H.

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen Lerneinheit : Kürzeste Pfade in Graphen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 016.6.01 Einleitung Diese Lerneinheit beschäftigt

Mehr

Wie wird ein Graph dargestellt?

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

Mehr

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 & Komplexität

Algorithmen & Komplexität Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Kürzeste Pfade Problem Gegeben Netzwerk: Graph G = (V, E), Gewichtsfunktion w: E N Zwei Knoten: s, t Kantenzug/Weg

Mehr

Kap. 6.6: Kürzeste Wege

Kap. 6.6: Kürzeste Wege Kap. 6.6: Kürzeste Wege Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 1./. VO DAP SS 009./9. Juli 009 1 Nachtest für Ausnahmefälle Di 1. Juli 009, 16:00 Uhr,

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

Kap. 6.6: Kürzeste Wege

Kap. 6.6: Kürzeste Wege 0.0.00 Nachtest für Ausnahmefälle Kap..: Kürzeste Wege Professor Dr. Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund./. VO DAP SS 00./. Juli 00 Di. Juli 00, :00 Uhr, OH, R.

Mehr

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen Fortgeschrittene Netzwerk- und Graph-Algorithmen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester

Mehr

12. Graphen Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013

12. Graphen Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013 12. Graphen Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013 1 Agenda Kontrollfragen Graphen Graphenalgorithmen 2

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

Keller, Schlangen und Listen. Elementare Datenstrukturen Keller, Schlangen und Listen 1 / 14

Keller, Schlangen und Listen. Elementare Datenstrukturen Keller, Schlangen und Listen 1 / 14 Keller, Schlangen und Listen Elementare Datenstrukturen Keller, Schlangen und Listen 1 / 14 Listen Listen unterstützen die Operationen Lookup, Insert, Remove. + Listen passen sich der Größe der zu speichernden

Mehr

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken.

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken. Abstrakte Datentypen und Datenstrukturen/ Einfache Beispiele Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken. Datenstruktur (DS): Realisierung

Mehr

Algorithmen und Datenstrukturen

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

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 208 (Algorithmen & Datenstrukturen) Vorlesung 4 (..208) Graphenalgorithmen III Algorithmen und Komplexität Bäume Gegeben: Zusammenhängender, ungerichteter Graph G = V, E Baum: Zusammenhängender,

Mehr

Aufgaben zur Klausurvorbereitung

Aufgaben zur Klausurvorbereitung Vorlesung Graphen und Optimierung Sommersemester 2013/14 Prof. S. Lange Aufgaben zur Klausurvorbereitung Hier finden Sie eine Reihe von Übungsaufgaben, die wir an den beiden Vorlesungsterminen am 29.01.2014

Mehr

Routing A lgorithmen Algorithmen Begriffe, Definitionen Wegewahl Verkehrslenkung

Routing A lgorithmen Algorithmen Begriffe, Definitionen Wegewahl Verkehrslenkung 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

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47

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

Mehr

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

1 Kürzeste Pfade in Graphen

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

Mehr

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

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

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

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

Mehr

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

Programmierkurs Python II

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

Mehr

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

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

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphen (2) Spannbäume Kürzeste Wege Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 455 Wiederholung Traversierung eines Graphen via Tiefendurchlaufs

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

2. Das single-source-shortest-path-problem

2. Das single-source-shortest-path-problem . Das single-source-shortest-path-problem Zunächst nehmen wir an, dass d 0 ist. Alle kürzesten Pfade von a nach b sind o.b.d.a. einfache Pfade.. Dijkstra s Algorithmus Gegeben: G = (V, A), (A = V V ),

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

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

Kürzeste (billigste) Wege

Kürzeste (billigste) Wege Kürzeste (billigste) Wege 1. Kürzeste (billigste) Wege Gerichteter Graph G = (V, E) Kostenfunktion c : E R 1 2 1 3 3 2 4 4 2 6 6 5 3 2 Entfernung zwischen zwei Knoten Kosten eines Wegs P = v 0, v 1,...,

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

12. Der Algorithmus von Dijkstra. Informatik II für Verkehrsingenieure

12. Der Algorithmus von Dijkstra. Informatik II für Verkehrsingenieure . Der Algorithmus von Dijkstra Informatik II für Verkehrsingenieure Problemstellung Gegeben: Graph G =(V, E, len) mit positiver Kantenfunktion len : E! R 0, Knoten s, t V Mögliche Aufgaben Berechne Distanz

Mehr

Algorithmen und Datenstrukturen

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

Mehr

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

Graphalgorithmen. 9. November / 54

Graphalgorithmen. 9. November / 54 Graphalgorithmen 9. November 2017 1 / 54 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

Mehr

Graphalgorithmen II. Werner Sembach Werner Sembach Graphalgorithmen II / 22

Graphalgorithmen II. Werner Sembach Werner Sembach Graphalgorithmen II / 22 Graphalgorithmen II Werner Sembach 14.04.2014 Werner Sembach Graphalgorithmen II 14.04.2014 1 / 22 Übersicht Datenstrukturen Union-Find Fibonacci-Heap Werner Sembach Graphalgorithmen II 14.04.2014 2 /

Mehr

Vorlesung 2 KÜRZESTE WEGE

Vorlesung 2 KÜRZESTE WEGE Vorlesung 2 KÜRZESTE WEGE 34 Kürzeste Wege im Graphen Motivation! Heute:! Kürzeste Wege von einem Knoten (SSSP)! Kürzeste Wege zwischen allen Knotenpaaren (APSP)! Viele Anwendungen:! Navigationssysteme!

Mehr

Kürzeste Wege in einem gewichteten Graphen. Anwendungen

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

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 17 (8.7.2014) Minimale Spannbäume II Union Find, Prioritätswarteschlangen Algorithmen und Komplexität Minimaler Spannbaum Gegeben: Zus. hängender,

Mehr

Klausurvorbereitung. 1 Zentrale Begriffe. 2 Bipartite Graphen. 2.1 Begriffe. Vorlesung Graphen und Optimierung Sommersemester 2011 Prof. S.

Klausurvorbereitung. 1 Zentrale Begriffe. 2 Bipartite Graphen. 2.1 Begriffe. Vorlesung Graphen und Optimierung Sommersemester 2011 Prof. S. Vorlesung Graphen und Optimierung Sommersemester 2011 Prof. S. Lange Klausurvorbereitung Hier finden Sie alle Begriffe, Zusammenhänge und Algorithmen, die mit Blick auf die Klausur relevant sind. Um es

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 10 FS 16

Datenstrukturen & Algorithmen Lösungen zu Blatt 10 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 11. Mai

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2016/17 19. Vorlesung Kürzeste Wege & Dijkstras Algorithmus Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Wozu kürzeste Wege? 2 3-8 Modellierung

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen C. Kürzeste Pfade: Grundlagen Gabriele Röger Universität Basel 9. Mai 09 Graphen: Übersicht Repräsentation Exploration Graphen Exploration: Anwendungen Minimale Spannbäume

Mehr

9 Minimum Spanning Trees

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

Mehr

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

Voronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 29.05.2011 Das Postamt-Problem b(p, q) = {x R 2 : xp = xq } p q h(p, q) h(q, p) = {x :

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

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

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

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

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

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 00

Mehr

Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. C5.1 Einführung. C5.2 Grundlagen

Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. C5.1 Einführung. C5.2 Grundlagen C. Kürzeste Pfade: Grundlagen C. Kürzeste Pfade: Grundlagen C. Einführung Gabriele Röger C. Grundlagen Universität Basel C. Optimalitätskriterium und Generisches Verfahren G. Röger (Universität Basel)

Mehr

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

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

Mehr

Organisatorisches. Programmierpraktikum Das Canadian Traveller Problem. Organisatorisches. Organisatorisches

Organisatorisches. Programmierpraktikum Das Canadian Traveller Problem. Organisatorisches. Organisatorisches Organisatorisches Programmierpraktikum Das Canadian Traveller Problem Rainer Schrader Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln. April 006 Prof. Dr. Rainer Schrader Tel.: 470-600

Mehr

Teil 1: Suchen. Ausgeglichene Bäume B-Bäume Digitale Suchbäume. M.O.Franz, Oktober 2007 Algorithmen und Datenstrukturen - Binärbäume 1-1

Teil 1: Suchen. Ausgeglichene Bäume B-Bäume Digitale Suchbäume. M.O.Franz, Oktober 2007 Algorithmen und Datenstrukturen - Binärbäume 1-1 Teil : Suchen Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume (Wiederholung aus Prog 2) Bäume: Begriffe, Eigenschaften und Traversierung Binäre Suchbäume Gefädelte Suchbäume Ausgeglichene

Mehr

Vorlesung Datenstrukturen

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

Mehr

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7 1 Kürzeste Pfade Woche 6 7 Hier arbeiten wir mit gewichteten Graphen, d.h. Graphen, deren Kanten mit einer Zahl gewichtet werden. Wir bezeichnen die Gewichtsfunktion mit l : E R. Wir wollen einen kürzesten

Mehr

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

12. AuD Tafelübung T-C3

12. AuD Tafelübung T-C3 12. AuD Tafelübung T-C3 Simon Ruderich 2. Februar 2011 Kollisionen (Primär)Kollision Stelle mit normal eingefügtem Element schon belegt (gleicher Hashwert) tritt bei verketteten Listen und Sondierung auf

Mehr

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

Voronoi-Diagramme INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 03.06.2014 1 Das Postamt-Problem b(p, q) = {x 2 R 2 : xp = xq } p q h(p, q) h(q, p) = {x

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

10 Kürzeste Pfade SSSP-Problem

10 Kürzeste Pfade SSSP-Problem In diesem Kapitel setzen wir uns mit der Berechnung von kürzesten Pfaden in einem Graphen auseinander. Definition 10.1 (Pfadgewichte). i) Das Gewicht eines Pfades p = (v 0, v 1,..., v k ) ist die Summe

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

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

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

Datenstrukturen: Mathematische Grundlagen. 26. Juli / 27

Datenstrukturen: Mathematische Grundlagen. 26. Juli / 27 Datenstrukturen: Mathematische Grundlagen 26. Juli 2015 1 / 27 Asymptotik Die Groß-Oh Notation: f = O(g) Es gibt eine positive Konstante c > 0 und eine natürliche Zahl n 0 N, so dass f (n) c g(n) für alle

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

Ü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

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

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016 Algorithmen und Datenstrukturen 2 Übung 1 Stefan Florian Palkovits, BSc 0926364 e0926364@student.tuwien.ac.at 12. Juni 2016 Aufgabe 1: Es existiert eine Reduktion von Problem A auf Problem B in O(n 3 +

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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2016/17 19. Vorlesung Kürzeste Wege & Dijkstras Algorithmus Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Ergebnisse des 1. Kurztests 14 12 10

Mehr

Effiziente Algorithmen und Datenstrukturen: Kürzeste Wege

Effiziente Algorithmen und Datenstrukturen: Kürzeste Wege Effiziente Algorithmen und Datenstrukturen: Kürzeste Wege Kürzeste Wege Zentrale Frage: Wie komme ich am schnellsten von A nach B? B A Kürzeste Wege Zentrale Frage: Wie komme ich am schnellsten von A nach

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

Algorithmen und Datenstrukturen 1 VU 6.0 Nachtragstest SS Oktober 2014

Algorithmen und Datenstrukturen 1 VU 6.0 Nachtragstest SS Oktober 2014 Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.813 Algorithmen und Datenstrukturen 1 VU 6.0 Nachtragstest SS 2014 22. Oktober

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

Datenstrukturen und Algorithmen 2. Klausur SS 2001

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

Mehr

Algorithmen und Datenstrukturen

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

Mehr

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

Software Entwicklung 1. Graphen. Motivation. Definitionen: Graph. Annette Bieniusa / Arnd Poetzsch-Heffter

Software Entwicklung 1. Graphen. Motivation. Definitionen: Graph. Annette Bieniusa / Arnd Poetzsch-Heffter Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Graphen AG Softech FB Informatik TU Kaiserslautern Literaturhinweis: Kapitel 4.5 aus R. Sedgewick, K. Wayne: Einführung in die Programmierung

Mehr

Algorithmen II Vorlesung am

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

Mehr

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

1 Pfade in azyklischen Graphen

1 Pfade in azyklischen Graphen Praktikum Algorithmen-Entwurf (Teil 5) 17.11.2008 1 1 Pfade in azyklischen Graphen Sei wieder ein gerichteter Graph mit Kantengewichten gegeben, der diesmal aber keine Kreise enthält, also azyklisch ist.

Mehr

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

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

Mehr

Algorithmen und Datenstrukturen (Informatik II) SS Klausur

Algorithmen und Datenstrukturen (Informatik II) SS Klausur Lehrstuhl für Algorith. und Datenstrukturen Prof. Dr. Hannah Bast Axel Lehmann Algorithmen und Datenstrukturen (Informatik II) SS 2013 http://ad-wiki.informatik.uni-freiburg.de/teaching Klausur Mittwoch

Mehr