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

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ü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

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

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

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

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

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

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

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

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

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

4 Greedy-Algorithmen (gierige Algorithmen)

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

Mehr

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

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

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

Minimal spannende Bäume

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

Mehr

Datenstrukturen 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

= 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

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

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

1.Aufgabe: Minimal aufspannender Baum

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

Mehr

3. Die Datenstruktur Graph

3. Die Datenstruktur Graph 3. Die Datenstruktur Graph 3.1 Einleitung: Das Königsberger Brückenproblem Das Königsberger Brückenproblem ist eine mathematische Fragestellung des frühen 18. Jahrhunderts, die anhand von sieben Brücken

Mehr

Kapitel 5: Graphen und Graphalgorithmen

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

Mehr

lässt sich auch ableiten, dass es einen augmentierenden Pfad der Länge höchstens

lässt sich auch ableiten, dass es einen augmentierenden Pfad der Länge höchstens Praktikum Algorithmen-Entwurf (Teil 5)..5 Matchings in Graphen Es sei ein ungerichteter Graph G = (V, E) gegeben. Ein Matching in G ist eine Teilmenge M E, so dass keine zwei Kanten aus M einen Endpunkt

Mehr

Graphenalgorithmen I

Graphenalgorithmen I enalgorithmen I Tobias Pröger 21. Dezember 2016 Erklärung: Diese Mitschrift ist als Ergänzung zur Vorlesung gedacht. Wir erheben keinen Anspruch auf Vollständigkeit und Korrektheit. Wir sind froh über

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

Nachbarschaft, Grad, regulär, Inzidenz

Nachbarschaft, Grad, regulär, Inzidenz Nachbarschaft, Grad, regulär, Inzidenz Definition Eigenschaften von Graphen Sei G = (V, E) ein ungerichteter Graph. 1 Die Nachbarschaftschaft Γ(u) eines Knoten u V ist Γ(u) := {v V {u, v} E}. 2 Der Grad

Mehr

Vollständiger Graph. Definition 1.5. Sei G =(V,E) ein Graph. Gilt {v, w} E für alle v, w V,v w, dann heißt G vollständig (complete).

Vollständiger Graph. Definition 1.5. Sei G =(V,E) ein Graph. Gilt {v, w} E für alle v, w V,v w, dann heißt G vollständig (complete). Vollständiger Graph Definition 1.5. Sei G =(V,E) ein Graph. Gilt {v, w} E für alle v, w V,v w, dann heißt G vollständig (complete). Mit K n wird der vollständige Graph mit n Knoten bezeichnet. Bemerkung

Mehr

Algorithmen und Datenstrukturen 2

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

Mehr

Algorithmen I - Tutorium 28 Nr. 11

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

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

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

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

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

Mehr

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

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

Mehr

Teil 2: Graphenalgorithmen

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

Mehr

Kapitel 4: Minimal spannende Bäume Gliederung der Vorlesung

Kapitel 4: Minimal spannende Bäume Gliederung der Vorlesung Kapitel : Minimal spannende Bäume Gliederung der Vorlesung. Fallstudie Bipartite Graphen 2. Grundbegriffe. Elementare Graphalgorithmen und Anwendungen. Minimal spannende Bäume. Kürzeste Wege. Traveling

Mehr

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

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

Mehr

Das EM-Modell. Vorlesung 3: Lubys Algorithmus. Graphenalgorithmen und lineare Algebra Hand in Hand

Das EM-Modell. Vorlesung 3: Lubys Algorithmus. Graphenalgorithmen und lineare Algebra Hand in Hand Vorlesung 3: Lubys Algorithmus Das EM-Modell 85 Nachsatz: Halbringnotation! Auch Bücher enthalten Fehler...! A op 1.op 2 v: Abkürzung für Matrix-Vektor-Multiplikation! Vereinbarung für Reihenfolge: A +.*

Mehr

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung. Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 14. November 2007 1 / 22 2 / 22 Gliederung eulersche und semi-eulersche Graphen Charakterisierung eulerscher Graphen Berechnung eines

Mehr

Grundbegriffe der Informatik Tutorium 8

Grundbegriffe der Informatik Tutorium 8 Grundbegriffe der Informatik Tutorium 8 Tutorium Nr. 16 Philipp Oppermann 22. Dezember 2014 KARLSRUHER INSTITUT FÜR TECHNOLOGIE KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum

Mehr

Algorithmen und Datenstrukturen

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

Mehr

Kapitel 4: Minimale spannende Bäume Gliederung der Vorlesung

Kapitel 4: Minimale spannende Bäume Gliederung der Vorlesung Kapitel : Minimale spannende Bäume Gliederung der Vorlesung. Grundbegriffe 2. Elementare Graphalgorithmen und Anwendungen. Kürzeste Wege. Minimale spannende Bäume. Färbungen und Cliquen. Traveling Salesman

Mehr

6. Übung zur Linearen Optimierung SS08

6. Übung zur Linearen Optimierung SS08 6 Übung zur Linearen Optimierung SS08 1 Sei G = (V, E) ein schlichter ungerichteter Graph mit n Ecken und m Kanten Für eine Ecke v V heißt die Zahl der Kanten (u, v) E Grad der Ecke (a) Ist die Anzahl

Mehr

Informatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!

Informatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden! Albert-Ludwigs-Universität Institut für Informatik Prof. Dr. F. Kuhn Informatik II: Algorithmen & Datenstrukturen Montag, 29. August, 2014, 14:00 17:00 Name:...........................................................

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

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

10. Übung Algorithmen I

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

Mehr

Bäume und Wälder. Definition 1

Bäume und Wälder. Definition 1 Bäume und Wälder Definition 1 Ein Baum ist ein zusammenhängender, kreisfreier Graph. Ein Wald ist ein Graph, dessen Zusammenhangskomponenten Bäume sind. Ein Knoten v eines Baums mit Grad deg(v) = 1 heißt

Mehr

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

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

Mehr

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume Effiziente Algorithmen und Datenstrukturen I Kapitel 9: Minimale Spannbäume Christian Scheideler WS 008 19.0.009 Kapitel 9 1 Minimaler Spannbaum Zentrale Frage: Welche Kanten muss ich nehmen, um mit minimalen

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 5 Prof. Peter F. Stadler & Dr. Christian Höner zu Siederdissen Bioinformatik/IZBI Institut für Informatik & Interdisziplinäres Zentrum für Bioinformatik Universität

Mehr

Euler und Hamiltonkreise

Euler und Hamiltonkreise Euler und Hamiltonkreise 1. Königsberger Brücken 2. Eulerwege und Kreise Definition, Algorithmus mit Tiefensuche 3. Hamiltonwege und Kreise Definition 4. Problem des Handlungsreisenden Enumeration und

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 0..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

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Vortrag von Michael Daumen am 13.12.2000 Thema : Minimum Spanning Tree und 2-Approximation der TSP-Tour Inhalt des Vortrags : 1. genaue Vorstellung des

Mehr

Diskrete Strukturen Kapitel 4: Graphentheorie (Grundlagen)

Diskrete Strukturen Kapitel 4: Graphentheorie (Grundlagen) WS 2015/16 Diskrete Strukturen Kapitel 4: Graphentheorie (Grundlagen) 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_15

Mehr

Diskrete Strukturen Kapitel 4: Graphentheorie (Grundlagen)

Diskrete Strukturen Kapitel 4: Graphentheorie (Grundlagen) WS 2016/17 Diskrete Strukturen Kapitel 4: Graphentheorie (Grundlagen) 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