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

Größe: px
Ab Seite anzeigen:

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

Transkript

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

2 Inhaltsverzeichnis Inhaltsverzeichnis VORWORT EINLEITUNG GRAPHEN Allgemeines Definition (gerichteter Graph) Definition (ungerichteten Graph) Definition (Ausgangsgrad, Eingangsgrad) Definition (benachbart, Weg, Länge, geschlossen) Definition (zusammenhängend) Definition (Pfad, Kreis) Definition (azyklisch) BÄUME Definition (zyklenfrei, Wald) Definition (Baum) Definition (Netzwerk) Definition (minimal /maximal erzeugender Baum) ALGORITHMEN ZUR LÖSUNG VON MSB PROBLEMEN Allgemeines Der Algorithmus von Kruskal Beschreibung und Verfahren Algorithmus im Pseudocode Beispiel zur Vorgehensweise Laufzeitanalyse Der Algorithmus von Prim Beschreibung und Verfahren Algorithmus im Pseudocode Beispiel zur Vorgehensweise Laufzeitanalyse Der Algorithmus von Boruvka Beschreibung und Verfahren Algorithmus im Pseudocode Beispiel zur Vorgehensweise Laufzeitanalyse Quellenverzeichnis

3 0. Vorwort Diese Dokumentation ist im Rahmen, des im Wintersemester 2004/2005, an der Universität Trier, stattgefundenen Softwarepraktikums C++, LEDA und STL entstanden. Die Hauptthematik unserer Gruppe widmete sich hier vor allem der Implementierung von Graphalgorithmen zur Berechnung von minimal / maximal aufspannenden Bäume. Aufgabe war es, mittel GraphWin, einem Editor zur Erzeugung, Manipulation und Speicherung von Graphen, ein Programm zu entwickeln. Dieses sollte drei Algorithmen (Boruvka, Prim und Kruskal) zur Berechnung von minimalen / maximalen Netzwerken eines gegebenen Graphen implementieren. Ferner sollten die Ergebnisse der Berechnungen dieser Algorithmen schrittweise visualisiert werden. Die folgenden Abschnitte dieser Dokumentation widmen sich hierbei nicht unserer expliziten Implementierung der Algorithmen. Es sollen hier lediglich die theoretischen Grundlagen zu Graphen und die prinzipielle Vorgehensweise der Algorithmen von Boruvka, Prim und Kruskal vermittelt werden. 3

4 1. Einleitung Das erste Problem, welches mittels Graphentheorie gelöst wurde, war das berühmte Königsberger Brückenproblem : Die Stadt Königsberg in Preußen liegt am Zusammenfluss zweier Arme der Pregel. Die Stadt besitzt (1736) sieben Brücken, die die einzelnen Stadteile miteinander verbinden, die an den verschiedenen Ufern dieser Flussarme und auf einer Insel im Fluss liegen. Gefragt wird, ob es einem Spaziergänger möglich ist, die sieben Brücken von Königsberg genau einmal zu überqueren und an den Ausgangspunkt zurückzukehren. Leonard Euler löste 1736 dieses Problem allgemein, indem er die Situation als Graph darstellte, also einer Struktur, die nur aus Knoten und einzelnen Verbindungskanten zwischen diesen Knoten besteht. Abbildung 1 Modellierung des Königsberger Brückenproblem Er zieht dabei alle Örtlichkeiten der Stadt, die voneinander erreichbar sind, ohne dass dabei eine Brücke überquert werden muss, zu einem Knoten zusammen und verbindet diese mittels Kanten. Bezogen auf den dabei entstandenen Graphen lautet die Frage nun: Gibt es einen Weg, der von einem beliebigen Knoten des Graphen ausgeht, genau einmal über jede Kante des Graphen verläuft und zum Ausgangspunkt zurückführt? Auf der Basis des graphentheoretischen Modells von Königsberg kann Euler nun sehr einfach zeigen, dass es keinen Rundgang der gewünschten Art gibt: Auf solch einem Rundgang, bei dem jede Kante nur einmal abgelaufen würde, müsste nämlich die Anzahl der Ankünfte und Abgänge, dem so genannten Grad, in jedem Zwischenknoten gerade sein. Tatsächlich hat der Graph, der die Stadt Königsberg modelliert jedoch die Eigenschaft, dass jeder seiner Knoten einen ungeraden Grad besitzt. 4

5 2. Graphen 2.1 Allgemeines Um die in Abschnitt 4 vorgestellten Algorithmen zur Berechnung von minimal / maximal aufspannenden Bäumen verstehen zu können, bedarf es zunächst einiger theoretischen Grundlagen zum Thema Graphen. Im Folgenden soll nun erläutert werden, was man generell unter einem Graphen versteht. Ferner sollen weitere Begriffe, die damit in unmittelbarem Zusammenhang stehen und für das weitere Verstehen notwendig sind, definiert werden. 2.2 Definition (gerichteter Graph) Ein gerichteter Graph G = (V, E) ist eine Struktur, die aus zwei Bestandteilen besteht: Einer Menge V und einer Relation E V V über dieser Menge V. Die Elemente v der Menge V werden Knoten genannt, die Elemente e = (v,u) der Menge E sind die Kanten des Graphen. Die Kante e verbindet die Knoten u und v. u wird in diesem Zusammenhang auch Startknoten und u Endknoten von e genannt. Die Kante e hat hierbei eine Richtung von u nach v. Es gilt ferner: E {( u, v) u, v V } Zwei Knoten, die durch eine Kante miteinander verbunden sind, heißen adjazent. Abbildung 2 Gerichteter Graph 2.2 Definition (ungerichteten Graph) Ein ungerichteter Graph hat dieselbe Struktur wie ein gerichteter Graph. Er unterscheidet sich jedoch hinsichtlich der Kantenrichtungen. Hier ist die Richtung der Kanten egal. Verbindet eine Kante Knoten u mit Knoten v, so verbindet sie auch Knoten v mit Knoten u Kanten gehen also in beide Richtungen und sind somit ungerichtet. Es gilt daher für die Kantenmenge E: E {{ u, v} u, v V } 5

6 Abbildung 3 Ungerichteter Graph 2.3 Definition (Ausgangsgrad, Eingangsgrad) Sei G = (V, E) ein Graph und v ein Knoten von G. Der Ausgangsgrad outdeg(v) von v ist die Anzahl der Kanten, die v als Startknoten besitzen, der Eingangsgrad indeg(v) von v ist die Zahl der Kanten, die in v enden. Es gilt damit out deg( v) { u V : ( v, u) E} und in deg( v) { u V : ( u, v) E }. Ist G ein ungerichteter Graph so stimmen indeg(v) und oudeg(v) für alle v aus G überein und es wird kurz von Grad deg(v) gesprochen. 2.3 Definition (benachbart, Weg, Länge, geschlossen) Sei G = (V, E) ein Graph, und u und v seien zwei Knoten in G. 1. u und v heißen benachbart, wenn eine Kante von u nach v führt, wenn also ( u, v) E gilt. 2. Ein Weg von u nach v ist eine Folge jeweils benachbarter Knoten u 0, u 1,, u n mit u=u 0 und v=u n. Die Länge des Weges ist n. Ein Weg der Länge 0 wird trivialer Weg genannt, er besteht aus einem Knoten. 3. Ein Weg heißt geschlossen, wenn seine beiden Endknoten gleich sind. 2.4 Definition (zusammenhängend) Zwei Knoten u und v eines ungerichteten Graphen G = (V, E) heißen zusammenhängend, wenn es in G einen Weg von u nach v gibt. 2.5 Definition (Pfad, Kreis) 1. Als Pfade werden Wege in einem Graphen bezeichnet, bei denen keine Kante zweimal durchlaufen wird. Ein geschlossener Pfad heißt Kreis. 2. Ein einfacher Pfad ist ein Pfad, bei dem kein Knoten mehrfach durchlaufen wird. Ein geschlossener Pfad, der mit Ausnahme seines Ausgangspunkts einfach ist, heißt einfacher Kreis. 2.6 Definition (azyklisch) Ein Graph G = (V, E) heißt azyklisch, wenn er keine Kreise hat. 6

7 3. Bäume In den verschiedenen Anwendungsgebieten der Informatik spielen Graphen, die keine geschlossenen Wege besitzen, eine herausragende Rolle. Mit diesen als Bäume bezeichneten Graphen wollen wir uns als nächstes beschäftigen. Aufbauend auf verschiedenen Definitionen wollen wir letztlich zu den minimal / maximal aufspannenden Bäumen kommen, die für das nächste Kapitel von besonderer Bedeutung sind. 3.1 Definition (zyklenfrei, Wald) 1. Ein Graph heißt zyklenfrei, wenn es keinen geschlossenen Weg der Länge 1 gibt. 2. Ein ungerichteter Graph heißt Wald, wenn er zyklenfrei ist. Abbildung 4 Wald mit zwei Komponenten 3.2 Definition (Baum) Ein ungerichteter Graph heißt Baum, wenn er zyklenfrei und zusammenhängend ist. Abbildung 5 Baum mit vier Knoten 3.3 Definition (Netzwerk) Unter einem Netzwerk versteht man einen Graphen G = (V, E), auf dem eine Kostenbzw. Gewichtsfunktion w : E definiert ist. Bei dieser Gewichtsfunktion wird jeder Kante e E ein numerischer Wert aus dem Wertebereich zugeordnet. 7

8 Abbildung 6 Beispiel eines Netzwerks mit Kantenkosten aus Definition (minimal /maximal erzeugender Baum). Für jede Teil- Sei Graph G = (V, E) ein Netzwerk mit Gewichtsfunktion w : E menge T der Kantenmenge E von G heißt w( T ) w( e) e T das Gewicht von T. Ein erzeugender Baum T von G heißt minimal erzeugender Baum, wenn sein Gewicht unter allen erzeugenden Bäumen minimal ist. Ein erzeugender Baum T von G heißt maximal erzeugender Baum, wenn sein Gewicht unter allen erzeugenden Bäumen maximal ist. Im folgenden Abschnitt wollen wir uns auf minimal erzeugende Bäume, deren Gewichtsfunktion nur positive Werte annimmt, konzentrieren. Hier gilt also für die Gewichtsfunktion w : E. 8

9 4. Algorithmen zur Lösung von MSB Problemen 4.1 Allgemeines Minimal erzeugende Bäume wurden erstmals von Boruvka im Jahre 1926 betrachtet. Kurz nach 1920 sollte das ländliche Süd-Mähren elektrifiziert werden. Für das zu konstruierende Netzwerk sollte eine möglichst ökonomische Lösung gefunden werden. Boruvka entdeckte schließlich einen Algorithmus, mit dem es möglich war, einen minimalen Spannbaum eines gewichteten Netzwerkes zu ermitteln. Boruvkas Arbeiten sind lange Zeit unbeachtet geblieben; häufig wird die Lösung des Problems, minimale Bäume zu finden, immer noch auf Kruskal und Prim zugeschrieben, obwohl beide Boruvka zitieren. Für die Suche nach minimal / maximal aufspannenden Bäumen finden sich besonders in heutiger Praxis überraschend viele Anwendungsbeispiele. Es stellen sich dabei oft die Fragen nach Einsparung und der Minimierung von Kosten, Wegen oder Verbindungen. Egal, ob beim Entwurf von Computernetzwerken, Fernmeldeverbindungen, Kanalisationen, Straßennetzen oder elektronischen Schaltungen, hier gilt es stets so viel Material wie möglich einzusparen, um somit kosteneffizient arbeiten zu können. In den nachfolgenden Abschnitten sollen verschiedene Algorithmen zur Berechnung minimal / maximal aufspannender Bäume näher untersucht werden. Hierbei werden diese Algorithmen nicht nur anhand konkreter Beispiele illustriert, eine gesonderte Betrachtung der einzelnen Laufzeiten soll hier ebenfalls Aufschluss über die Effizienz der einzelnen Vorgehensweisen geben. Ausgangslage für alle nachfolgenden Algorithmen ist, dass der zu behandelnde Graph, gewichtet, zusammenhängend und ungerichtet ist. 4.2 Der Algorithmus von Kruskal Beschreibung und Verfahren Der erste Algorithmus, den wir hier näher unter die Lupe nehmen wollen, ist der Algorithmus von Kruskal. Dieser wurde erstmals 1930 von Jarnik entworfen, Kruskal selber griff ihn im Jahre 1956 wieder auf. Der Algorithmus von Kruskal arbeitet nach einen so genannten gierigen (engl.: greedy) Verfahren, was bedeutet, dass Entscheidungen die während des Verfahrens getroffen werden, nicht reversibel sind. Der Kruskal - Algorithmus operiert hierbei auf einer sortierten Kantenliste. Diese setzt sich aus allen Kanten zusammen, welche im Ausgangsgraph enthalten sind. Eine geeignete Datenstruktur zur Speicherung dieser Kanten ist eine Prioritätsschlange, welche die Kanten gemäß ihrer Kantengewichtung organisiert. Jede Kante dieser Liste wird betrachtet und wird anschließend entweder verworfen oder für die Konstruktion des entsprechenden minimalen Spannbaum ausgewählt. 9

10 Der minimale Spannbaum wird so sequentiell aus Teilbäumen aufgebaut. Das Verfahren ist in den nachfolgenden Zeilen erläutert: 1. Der Algorithmus startet zunächst mit einer leeren Kantenmenge. Jeder Knoten des Graphen wird als eigenständige Komponente angesehen. 2. Die Kanten des Graphen sind gemäß ihrer Kantengewichtung in einer Prioritätswarteschlange organisiert. 3. Aus dieser Prioritätswarteschlange wird nun die Kante mit geringster Gewichtung extrahiert. 4. Nun wird geprüft, ob die Knoten, die durch diese Kante verbunden werden, in unterschiedlichen Komponenten liegen. Wenn ja: Kante aus Warteschlange löschen, die entsprechenden Komponenten vereinigen und Kante in Ergebnisliste aufnehmen. Wenn nein: Kante nur aus Warteschlange löschen 5. Solange Prioritätswarteschlange nicht leer, gehe zu Ende Algorithmus im Pseudocode Gegeben sei ein zusammenhängender, ungerichteter Graph G mit Knotenmenge V = 1,...,n und Gewichtsfunktion w : E. Dabei seien die Kanten von G nach aufsteigendem Gewicht geordnet, also E = {e 1,, en} mit w(e 1 )... w(e n ). Als Eingabe erhält der Algorithmus von Kruskal den Graphen G mit seiner entsprechenden Gewichtsfunktion w. Die Ausgabe ist der minimale Spannbaum T von G. Prozedur KRUSKAL(G,w;T) (1) T (2) for k = 1 to n do V i {i} od; (3) bilde aus E eine Priority-Queue Q mit Prioritätsfunktion w; (4) while Q do (5) e:= DELETEMIN(Q); (6) finde die Endpunkte u und v von e; (7) finde die Komponenten V u bzw. V v, die u bzw. v enthalten (8) if V u V v then MERGE(V u,v v ); T T e ; fi (9) od 10

11 4.2.3 Beispiel zur Vorgehensweise Das folgende Beispiel soll die Vorgehensweise des Algorithmus verdeutlichen. Ausgehend vom nachfolgenden Graphen soll ein minimaler Spannbaum erzeugt werden. Die Abbildungen sind hierbei der GraphWin - Visualisierung unserer Implementierung des Kruskal - Algorithmus entnommen. Kanten und Knoten die in den minimalen Spannbaum aufgenommen werden, sind rot unterlegt dargestellt. 1. Ausgangsgraph 2. Aus der Prioritätsschlange wird die Kante mit niedrigster Gewichtung genommen. Dies ist die Kante (1,2) mit w(1,2) = 10, die darauf aus der Schlange entfernt wird. 3. Die nächst kleinere Kante ist (3,4) mit w(3,4) = 15. Sie verbindet zwei Knoten unterschiedlicher Komponenten und wird daher auch in den minimalen Spannbaum aufgenommen. 4. Als nächstes wird die Kante (2,3) mit w(2,3) = 20 aufgenommen. 11

12 5. Als letztes wird die Kante (0,1) hinzugefügt. Alle Knoten sind somit verbunden und der minimale Spannbaum wurde somit generiert Laufzeitanalyse Die Laufzeit des Algorithmus hängt maßgeblich von Schritt 3 ab. Normalerweise kann zur Sortierung der Kanten des Graphen jeder Sortieralgorithmus verwendet werden. Die Laufzeit des Algorithmus ist hierbei entscheidend. Setzt man beispielsweise Bubblesort als Algorithmus ein, so werden die Kanten in Zeit O( E 2 ) sortiert. Für den restlichen Algorithmus schätzt man O( V 2 ) ab und erhält somit eine Gesamtlaufzeit von O( V 2 ). Verwendet man jedoch in Schritt 3 die oben angesprochene Priority - Queue als Datenstruktur, so ist das Auffinden und Entfernen der minimalen Kante e in O(log E ) Schritten möglich. Die Vereinigung der zunächst n Komponenten der Partition kann in insgesamt O( n log n) Schritten erfolgen. Der Graph G hat mindestens n-1 Kanten, da er zusammenhängend ist. Die Gesamtkomplexität beträgt somit O( E log E ). 4.3 Der Algorithmus von Prim Beschreibung und Verfahren Dieser Algorithmus geht im Wesentlichen auf Jarnik zurück und wurde von Dijkstra und Prim wieder entdeckt. Er ist auch unter dem Namen Prim Dijkstra - Algorithmus bekannt. Der Algorithmus von Prim liefert, ebenso wie der Kruskal - Algorithmus, durch ein gieriges Verfahren einen minimalen Spannbaum eines bewerteten ungerichteten Graphen. 12

13 Der Algorithmus geht zunächst von einem beliebigen Startpunkt aus, wobei alle angrenzenden Kanten untersucht werden. Er untersucht alle möglichen Pfade, die sich von diesem Startpunkt zu anderen Knotenpunkten finden lassen und nimmt dann den günstigsten. Dann untersucht er alle möglichen Pfade von beiden Knotenpunkten und sucht wiederum den günstigsten. Der Algorithmus führt hierbei n-1 Iterationen aus, wobei n die Anzahl der Knoten des Graphen ist Algorithmus im Pseudocode Gegeben sei ein zusammenhängender, ungerichteter Graph G mit Knotenmenge V = 1,...,n und Gewichtsfunktion : w E (über Adjazenzlisten A v ). Als Eingabe erhält der Algorithmus von Prim den Graphen G mit seiner entsprechenden Gewichtsfunktion w. Die Ausgabe ist der minimale Spannbaum T von G. Prozedur PRIM(G,w;T) (1) w(1), S,T ; (2) for i = 2 to n do g(i) od; (3) while S V do (4) wähle ein i S\V, für das g(i) minimal ist, und setze S S i ; (5) if i 1 then T T e ; fi (6) for e A i E(S,V\S) do (7) v sei Endpunkt von e in V\S; (8) if g(v) > w(e) then g(v) w(e) und e(v) e fi (9) od (10) od Beispiel zur Vorgehensweise Zu Demonstration der Vorgehensweise des Prim-Algorithmus soll das in Abschnitt angeführte Beispiel nochmals betrachtet werden. Hier sind ebenfall alle Kanten, die den späteren Minimalbaum bilden rot gefärbt. 13

14 1. Ausgangsgraph 2. Der Algorithmus startet bei Knoten 0. Er untersucht die angrenzenden Kanten (0,1) und (0,3). Dabei stellt er fest, dass die Kante (0,1) die kleinere Gewichtung (35 < 40) und nimmt daher diese in den Baum mit auf. 3. Jetzt werden die angrenzenden Kanten der Knoten 0 und 1 betrachtet. Hierbei ist die Kante (1,2) die kleinste (10 < 35 < 40). Diese wird nun in den Baum mit aufgenommen und daher rot markiert. 4. Hier werden nun die Kanten (0,3), (1,3), (2,3) und (2,4) betrachtet. (2,3) ist mit einer Gewichtung von 20 die kleinste und wird somit rot gefärbt. 5. Als letztes wird die Kante (3,4) aufgenommen. Der erzeugte Spannbaum ist somit fertig und mit dem vom Kruskal - Algorithmus erzeugten Baum identisch 14

15 4.3.4 Laufzeitanalyse Der Algorithmus, wie oben beschrieben, bestimmt einen minimal erzeugenden Baum in Zeit O( V 2 ). Die while Schleife in Schritt 3 wird dabei V - mal durchlaufen. Bei jeder Iteration sind die notwendigen Vergleiche in Schritt 4 in maximal V - S Schritten möglich, woraus eine Zeitkomplexität von O( V 2 ) resultiert. Durch Verwendung besserer Datenstrukturen (z.b. bei Verwendung von Fibonacci- Heaps als Speicher) kommt man mit einer Zeitkomplexität von O( V log V E ) aus. 4.4 Der Algorithmus von Boruvka Beschreibung und Verfahren Schließlich sei noch ein dritter Algorithmus zur Ermittlung eines minimalen Spannbaums eines gewichteten, ungerichteten Graphen erwähnt, der Algorithmus von Boruvka. Dieser stammt aus dem Jahre 1926 und ist aus Kruskals und Prims Algorithmus hervorgegangen. Er behandelt den Spezialfall, dass die Kantengewichte paarweise verschieden sind. Der Algorithmus betrachtet anfangs jeden Knoten als Baum bzw. isolierte Komponente. In jeder Iteration sucht sich jeder Knoten die Kante mit dem niedrigsten Wert, welche die aktuelle Komponente mit einer anderen Komponente verbindet. Diese Kante wird dann in den minimalen Spannbaum aufgenommen. Dabei werden Kanten so hinzugenommen, dass stets zwei Komponenten immer nur durch eine Kante verbunden werden und auftretende Kreise aufgelöst werden. Dieser Schritt wird solange wiederholt, bis nur noch eine Komponente existiert, die dann einen minimalen Spannbaum des Ausgangsgraphen bildet Algorithmus im Pseudocode Gegeben sei ein zusammenhängender, ungerichteter Graph G mit Knotenmenge V = 1,...,n und Gewichtsfunktion w : E, wobei verschiedene Kanten stets verschiedenes Gewicht haben. Als Eingabe erhält der Algorithmus von Prim den Graphen G mit seiner entsprechenden Gewichtsfunktion w. Die Ausgabe ist der minimale Spannbaum T von G. 15

16 Prozedur BORUVKA(G,w;T) (1) for i = 1 to n do V i {i} od; (2) T ; M V 1,...,V n ; (3) while T < n-1 do (4) for U M do (5) finde eine Kante e = uv mit u U, v U und w(e) < w(e ) für alle Kanten e = u v mit v ' U und v ' U ; (6) finde die Komponente U, die v enthält (7) T T e ; (8) od (9) for U M do v sei Endpunkt von e in V\S; (10) MERGE (U,U ) (11) od (12) od Beispiel zur Vorgehensweise Wie bereits in den vorherigen Beispielen soll hier ebenfalls wieder derselbe Ausgangsgraph genommen werden. 1. Ausgangsgraph 2. Der Algorithmus startet, nimmt in der ersten Iteration jeden Knoten unter die Lupe und ermittelt zu jedem die günstigste Kante. Die günstigste Kante von Knoten 0 ist (0,1) ist w(0,1) = 35, von Knoten 1 und 2 jeweils die Kante (1,2). Knoten 1 und 2 haben also jeweils die Kante (1,2) mit w(1,2)=10 als günstigste Kante gemeinsam. Diese wird in den minimalen Baum mit aufgenommen. 16

17 3. Als nächstes untersucht der Algorithmus alle ausgehenden Kanten von Knoten 3 und 4, stellt dabei fest, dass die Kante (3,4) mit w(3,4)=15 die günstigste beider Knoten ist. Daher werden Knoten 3 und 4 zu einer Komponenten vereinigt. 4. Vor der nächsten Iteration existieren bereits die Komponenten (0), (1,2) und (3,4). Diese werden nun über die möglichst günstigste Kante miteinander verbunden. Diese Kante ist (2,3) mit w(2,3)=20. Es ist somit die Komponente (1,2,3,4) entstanden. 5. Im letzten Schritt wird die günstigsten Kanten der Komponenten (0) und (1,2,3,4) ermittelt. Diese ist die Kante (0,1) mit w(0,1)=35. Diese Kante wird in den minimalen Spannbaum aufgenommen. Der minimale Baum wurde somit generiert Laufzeitanalyse Der Algorithmus von Boruvka bestimmt einen minimal aufspannenden Baum mit 2 Zeitkomplexität O( V log V ). Die Suche nach der Kante mit dem geringsten Gewicht, die mit jeder Komponente 2 inzident ist, benötigt O( V ) Vergleiche. Die Anzahl der Komponenten reduziert sich dabei in jeder Iteration um den Faktor zwei, die Anzahl der Zusammenhangskomponenten wird also mindestens halbiert. Folglich sind O(log V ) Iterationen nötig, um den minimalen spannenden Baum zu finden. Es ergibt sich somit eine Laufzeit von 2 O( V log V ). 17

18 Quellenverzeichnis [1] Meinel, Christoph: Mathematische Grundlagen der Informatik, B.G. Teubner Verlag (2000) ISBN [2] Getferd, Florian: Minimal aufspannenden Bäume [3] Seeliger, André.: Algorithmen für minimal aufspannende Bäume TI/Komplexitaet/ReferateSS00/seeliger.pdf [4] Augustin, Daniel.: Graphen 18

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Minimale Spannbäume Maike Buchin 18.7., 20.7.2017 Einführung Motivation: Verbinde Inseln mit Fähren oder Städte mit Schienen und verbrauche dabei möglichst wenig Länge. Problem:

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

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

Kap. 6.5: Minimale Spannbäume ff

Kap. 6.5: Minimale Spannbäume ff Kap. 6.: Minimale Spannbäume ff Professor Dr. Karsten Klein Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 20. VO 2. TEIL DAP2 SS 2009 2. Juli 2009 SS08 1 Überblick 6.:

Mehr

Graphentheorie. Yichuan Shen. 10. Oktober 2013

Graphentheorie. Yichuan Shen. 10. Oktober 2013 Graphentheorie Yichuan Shen 0. Oktober 203 Was ist ein Graph? Ein Graph ist eine kombinatorische Struktur, die bei der Modellierung zahlreicher Probleme Verwendung findet. Er besteht ganz allgemein aus

Mehr

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

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

Mehr

Kapitel IV Minimale Spannbäume

Kapitel IV Minimale Spannbäume Kapitel IV Minimale Spannbäume 1. Grundlagen Ein Graph G = (V, E) besteht aus einer Menge V von Knoten und einer Menge E von Kanten. Wir werden nur endliche Knoten- (und damit auch Kanten-) Mengen betrachten.

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

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

Kapitel IV Minimale Spannbäume

Kapitel IV Minimale Spannbäume Kapitel IV Minimale Spannbäume. Grundlagen Ein Graph G = (V, E) besteht aus einer Menge V von Knoten und einer Menge E von Kanten. Wir werden nur endliche Knoten- (und damit auch Kanten-) Mengen betrachten.

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

3.2 Generischer minimaler Spannbaum-Algorithmus

3.2 Generischer minimaler Spannbaum-Algorithmus 3.2 Generischer minimaler Spannbaum-Algorithmus Initialisiere Wald F von Bäumen, jeder Baum ist ein singulärer Knoten (jedes v V bildet einen Baum) while Wald F mehr als einen Baum enthält do wähle einen

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

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

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

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

Mehr

3. Musterlösung. Problem 1: Boruvka MST

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

Mehr

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

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

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

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

5. Bäume und Minimalgerüste

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

Mehr

\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E.

\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E. Das Komplement Ḡ = (V, ( V ) \ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E. Ein Graph H = (V, E )

Mehr

Algorithmische Graphentheorie

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

Mehr

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

Berechnung minimaler Spannbäume. Beispiel

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

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 018/19 1. Vorlesung Minimale Spannbäume Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Motivation ) Kantengewichte w : E R >0 ) w(e ) := e E w(e)

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

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

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

Algorithmen und Datenstrukturen Kapitel 9. und

Algorithmen und Datenstrukturen Kapitel 9. und Algorithmen und Datenstrukturen Kapitel 9 Minimale Spannbäume und Kürzeste Pfade Frank Heitmann heitmann@informatik.uni-hamburg.de 9. Dezember 01 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/13

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

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

Graphen KAPITEL 3. Dieses Problem wird durch folgenden Graph modelliert:

Graphen KAPITEL 3. Dieses Problem wird durch folgenden Graph modelliert: KAPITEL 3 Graphen Man kann als Ursprung der Graphentheorie ein Problem sehen, welches Euler 1736 von Studenten aus Königsberg gestellt bekam. Der Fluss Pregel wird von 7 Brücken überquert, und die Frage

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

Minimale Spannbäume. Evangelia Tsiouprou. LMU Proseminar Computer Unplugged WS 2004/05

Minimale Spannbäume. Evangelia Tsiouprou. LMU Proseminar Computer Unplugged WS 2004/05 Evangelia Tsiouprou LMU Proseminar Computer Unplugged WS 2004/05 1 MOTIVATION 3 1.1 Spannbaum 3 2 ALGORITHMEN ZUR BERECHNUNG EINES MST: 5 2.1 Der Algorithmus von Kruskal 5 2.1.1 Das Dorfbeispiel für den

Mehr

Übungsblatt 2 - Lösung

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

Mehr

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

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

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

Mehr

Algorithmische Graphentheorie

Algorithmische Graphentheorie Algorithmische Graphentheorie Vorlesung 7 und 8: Euler- und Hamilton-Graphen Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 17. April 2018 1/96 WIEDERHOLUNG Eulersche

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

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph. Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph. a) Es seien W 1 = (V, E 1 ), W 2 = (V, E 2 ) Untergraphen von G, die beide Wälder sind. Weiter gelte E 1 > E 2.

Mehr

Graphen. Definitionen

Graphen. Definitionen Graphen Graphen werden häufig als Modell für das Lösen eines Problems aus der Praxis verwendet, wie wir im Kapitel 1 gesehen haben. Der Schweizer Mathematiker Euler hat als erster Graphen verwendet, um

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

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

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 6 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 16. Mai 2018 [Letzte Aktualisierung: 18/05/2018,

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 11: Graphen Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2010/2011 1/59 Graphische Darstellung von Zusammenhängen schon

Mehr

Quicksort ist ein Divide-and-Conquer-Verfahren.

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

Mehr

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

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

Mehr

Algorithmen und Datenstrukturen Kapitel 9. und

Algorithmen und Datenstrukturen Kapitel 9. und Algorithmen und Datenstrukturen Kapitel 9 und Kürzeste Pfade Frank Heitmann heitmann@informatik.uni-hamburg.de 9. Dezember 0 Frank Heitmann heitmann@informatik.uni-hamburg.de / Problemstellung Definition

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

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Hausaufgabe 2 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Hausaufgabe 2 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008 Technische Universität München Fakultät für Informatik Lehrstuhl für Informatik 15 Computergraphik & Visualisierung Prof. Dr. Rüdiger Westermann Dr. Werner Meixner Wintersemester 2007/08 Lösungsblatt 9

Mehr

Algorithmische Graphentheorie

Algorithmische Graphentheorie Algorithmische Graphentheorie Vorlesung 5: Suchalgorithmen Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 20. März 2018 1/91 WIEDERHOLUNG - BÄUME / bin etc home

Mehr

Diskrete Mathematik Graphentheorie (Übersicht)

Diskrete Mathematik Graphentheorie (Übersicht) Diskrete Mathematik Graphentheorie (Übersicht) Dr. C. Löh 2. Februar 2010 0 Graphentheorie Grundlagen Definition (Graph, gerichteter Graph). Ein Graph ist ein Paar G = (V, E), wobei V eine Menge ist (die

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

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

Algorithmen für Planare Graphen

Algorithmen für Planare Graphen Algorithmen für Planare Graphen 12. Juni 2018, Übung 4 Lars Gottesbüren, Michael Hamann INSTITUT FÜR THEORETISCHE INFORMATIK KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Prüfungstermine

Mehr

Bemerkung: Der vollständige Graph K n hat n(n 1)

Bemerkung: Der vollständige Graph K n hat n(n 1) Bemerkung: Der vollständige Graph K n hat n(n 1) 2 Kanten. Bew: Abzählen! Definition 111. Graphen mit n paarweise zyklisch verbundenen Kanten heißen Kreise (vom Grad n) und werden mit C n bezeichnet. Beispiel

Mehr

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME

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

Mehr

Minimal spannende Bäume

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

Mehr

ADS 2: Algorithmen und Datenstrukturen

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

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

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Kapitel 15: Graphen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik

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

Relationen und Graphentheorie

Relationen und Graphentheorie Seite Graphentheorie- Relationen und Graphentheorie Grundbegriffe. Relationen- und Graphentheorie gehören zu den wichtigsten Hilfsmitteln der Informatik, die aus der diskretenmathematik stammen. Ein Graph

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

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

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 24. April 2019 [Letzte Aktualisierung: 24/04/2019,

Mehr

Vorlesungstermin 2: Graphentheorie II. Markus Püschel David Steurer. Algorithmen und Datenstrukturen, Herbstsemester 2018, ETH Zürich

Vorlesungstermin 2: Graphentheorie II. Markus Püschel David Steurer. Algorithmen und Datenstrukturen, Herbstsemester 2018, ETH Zürich Vorlesungstermin 2: Graphentheorie II Markus Püschel David Steurer Algorithmen und Datenstrukturen, Herbstsemester 2018, ETH Zürich Wiederholung: Vollständige Induktion Ziel: zeige n N. A(n) für eine Aussage

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

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

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

Mehr

Datenstrukturen und Algorithmen SS07

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

Mehr

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

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

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme Universität Hamburg Fachbereich Mathematik Seminar: Proseminar Graphentheorie Dozentin: Haibo Ruan Sommersemester 2011 Ausarbeitung zum Modulabschluss Graphentheorie spannende Bäume, bewertete Graphen,

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

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

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

Mehr

Graphentheorie Graphentheorie. Grundlagen Bäume Eigenschaften von Graphen Graphen-Algorithmen Matchings und Netzwerke

Graphentheorie Graphentheorie. Grundlagen Bäume Eigenschaften von Graphen Graphen-Algorithmen Matchings und Netzwerke Graphen Graphentheorie Graphentheorie Grundlagen Bäume Eigenschaften von Graphen Graphen-Algorithmen Matchings und Netzwerke 2 Was ist ein Graph? Ein Graph ist in der Graphentheorie eine abstrakte Struktur,

Mehr

3 Klassifikation wichtiger Optimierungsprobleme

3 Klassifikation wichtiger Optimierungsprobleme 3 Klassifikation wichtiger Optimierungsprobleme 3.1 Das MIN- -TSP Wir kehren nochmal zurück zum Handlungsreisendenproblem für Inputs (w {i,j} ) 1 i

Mehr

Algorithmen und Datenstrukturen Heapsort

Algorithmen und Datenstrukturen Heapsort Algorithmen und Datenstrukturen 2 5 Heapsort In diesem Kapitel wird Heapsort, ein weiterer Sortieralgorithmus, vorgestellt. Dieser besitzt wie MERGE-SORT eine Laufzeit von O(n log n), sortiert jedoch das

Mehr

Effiziente Algorithmen I

Effiziente Algorithmen I 9. Präsenzaufgabenblatt, WiSe 2013/14 Übungstunden am 13.01. & 15.01.2014 Aufgabe Q Gegeben sei ein Fluss-Netzwerk mit Digraph D = (V, A), Knotenkapazitäten c(u, v) 0, Quelle s und Senke t. Kann sich der

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

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza)

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza) WS 2013/14 Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza) Dr. Werner Meixner Fakultät für Informatik TU München http://www14.in.tum.de/lehre/2013ws/ds/uebung/ 22. Januar 2014 ZÜ DS ZÜ XIII

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

Kap. 6.5: Minimale Spannbäume

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

Mehr

Berechnung von Abständen

Berechnung von Abständen 3. Kreis- und Wegeprobleme Abstände in Graphen Abstände in Graphen Definition 3.4. Es sei G = (V, E) ein Graph. Der Abstand d(v, w) zweier Knoten v, w V ist die minimale Länge eines Weges von v nach w.

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

Datenstrukturen & Algorithmen Lösungen zu Blatt 11 FS 14

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

Mehr

Richtig oder falsch? Richtig oder falsch? Richtig oder falsch? Mit dynamischer Programmierung ist das Knapsack- Problem in Polynomialzeit lösbar.

Richtig oder falsch? Richtig oder falsch? Richtig oder falsch? Mit dynamischer Programmierung ist das Knapsack- Problem in Polynomialzeit lösbar. Gegeben sei ein Netzwerk N = (V, A, c, s, t) wie in der Vorlesung. Ein maximaler s-t-fluss kann immer mit Hilfe einer Folge von höchstens A Augmentationsschritten gefunden werden. Wendet man den Dijkstra-Algorithmus

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

Optimale Lösungen mit Greedy-Strategie erfordern Optimalität der Greedy-Wahl. Beispiele für optimale Greedy-Lösungen

Optimale Lösungen mit Greedy-Strategie erfordern Optimalität der Greedy-Wahl. Beispiele für optimale Greedy-Lösungen Wiederholung Optimale Lösungen mit Greedy-Strategie erfordern Optimalität der Greedy-Wahl unabhängig von Subproblemen Optimalität der Subprobleme Beispiele für optimale Greedy-Lösungen Scheduling Problem

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

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Prof. Dr. Erika Ábrahám Datenstrukturen und Algorithmen 1/1 Datenstrukturen und Algorithmen Vorlesung 14: Prof. Dr. Erika Ábrahám Theorie Hybrider Systeme Informatik 2 http://ths.rwth-aachen.de/teaching/ss-14/

Mehr

Bipartite Graphen. Beispiele

Bipartite Graphen. Beispiele Bipartite Graphen Ein Graph G = (V, E) heiÿt bipartit (oder paar), wenn die Knotenmenge in zwei disjunkte Teilmengen zerfällt (V = S T mit S T = ), sodass jede Kante einen Knoten aus S mit einem Knoten

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

= n (n 1) 2 dies beruht auf der Auswahl einer zweielementigen Teilmenge aus V = n. Als Folge ergibt sich, dass ein einfacher Graph maximal ( n E = 2

= n (n 1) 2 dies beruht auf der Auswahl einer zweielementigen Teilmenge aus V = n. Als Folge ergibt sich, dass ein einfacher Graph maximal ( n E = 2 1 Graphen Definition: Ein Graph G = (V,E) setzt sich aus einer Knotenmenge V und einer (Multi)Menge E V V, die als Kantenmenge bezeichnet wird, zusammen. Falls E symmetrisch ist, d.h.( u,v V)[(u,v) E (v,u)

Mehr

WS 2013/14. Diskrete Strukturen

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

Mehr

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