Kapitel IV Minimale Spannbäume

Ähnliche Dokumente
Kapitel IV Minimale Spannbäume

Quicksort ist ein Divide-and-Conquer-Verfahren.

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

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

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

Seien u, v V, u v. Da G zusammenhängend ist, muss mindestens ein Pfad zwischen u und v existieren.

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

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

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

Algorithmen und Datenstrukturen 2-1. Seminar -

Nachbarschaft, Grad, regulär, Inzidenz

3.2 Generischer minimaler Spannbaum-Algorithmus

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

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

Das Heiratsproblem. Definition Matching

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

WS 2013/14. Diskrete Strukturen

Breitensuche BFS (Breadth First Search)

= 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

Informatik II, SS 2018

5 Graphen. Repräsentationen endlicher Graphen. 5.1 Gerichtete Graphen. 5.2 Ungerichtete Graphen. Ordnung von Graphen

Informatik II, SS 2014

Formale Grundlagen. Graphentheorie 2008W. Vorlesung im 2008S

Diskrete Strukturen Kapitel 4: Graphentheorie (Grundlagen)

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

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

Funktioniert der Greedy-Algorithmus auch für Briefmarken aus Manchukuo?

Algorithmen und Datenstrukturen

Graphdurchmusterung, Breiten- und Tiefensuche

Wege, Pfade und Kreise

Programmiertechnik II

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

Programmiertechnik II

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

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

Algorithmische Graphentheorie

Graphentheorie. Formale Grundlagen (WIN) 2008S, F. Binder. Vorlesung im 2008S

Informatik II, SS 2016

Übersicht. Bielefeld Hannover. Kamen Paderborn. Unna Wünnenberg Kassel. Ziffer wählen. abheben. auflegen. Gespräch führen

WS 2008/09. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen

Algorithmische Graphentheorie

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

Programmierkurs Python

15. Elementare Graphalgorithmen

Programmierkurs Python II

Algorithmen für Planare Graphen

Übung zur Vorlesung Diskrete Mathematik (MAT.107) Blatt Beispiellösungen Abgabefrist:

Informatik II, SS 2016

Wie wird ein Graph dargestellt?

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

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

Einheit 11 - Graphen

Für die Anzahl der Kanten in einem vollständigen Graphen (und damit für die maximale Anzahl von Kanten in einem einfachen Graphen) gilt:

Berechnung minimaler Spannbäume. Beispiel

Einführung in die Graphen-Theorie

8 Diskrete Optimierung

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

Graphentheorie. Yichuan Shen. 10. Oktober 2013

ADS: Algorithmen und Datenstrukturen 2

Lösungen zu Kapitel 5

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

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

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

Graphenalgorithmen I

Was bisher geschah. gerichtete / ungerichtete Graphen G = (V, E) Darstellungen von Graphen

WS 2009/10. Diskrete Strukturen

KAPITEL 3 MATCHINGS IN BIPARTITEN GRAPHEN

Einführung in die Informatik 2

8. Übung Algorithmen I

Betriebswirtschaftliche Optimierung

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

Algorithmen & Komplexität

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

3 Klassifikation wichtiger Optimierungsprobleme

ADS: Algorithmen und Datenstrukturen 2

Bäume und Wälder. Definition 1

1 DFS-Bäume in ungerichteten Graphen

1 DFS-Bäume in ungerichteten Graphen

Bäume und Wälder. Definition 1

Betriebliche Optimierung

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME

Matchings in Graphen. Praktikum Diskrete Optimierung (Teil 5)

Algorithmen und Datenstrukturen

2.4 Starke Zusammenhangskomponenten in Digraphen

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

10. Übung Algorithmen I

ADS: Algorithmen und Datenstrukturen 2

2. Entsprechende Listen P i von Vorgängern von i 3. for i := 1 to n do. (ii) S i = Knoten 2 + 1}

Bemerkung: Es gibt Algorithmen für minimale Spannbäume der Komplexität O(m + n log n) und, für dünnbesetzte Graphen, der Komplexität O(m log n), wobei

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

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

Grundzüge von Algorithmen und Datenstrukturen, WS 15/16: Lösungshinweise zum 13. Übungsblatt

Tutoraufgabe 1 (Suchen in Graphen):

Graphen und Bäume. A.1 Graphen

Algorithmen und Datenstrukturen 2

Grundbegriffe der Informatik

ADS: Algorithmen und Datenstrukturen 2

Transkript:

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. Die Anzahl der Knoten bezeichnen wir mit n ( V = n), die Anzahl der Kanten mit m ( E = m). Eine gerichtete Kante mit den Endknoten u und v wird mit (u, v), eine ungerichtete mit {u, v} notiert. Eine Kante (v, v) E (bzw. {v, v}) heißt Schlinge. Falls E eine Multimenge ist, spricht man von Mehrfachkanten. Kanten (u, v) und (v, u) heißen antiparallel. Graphen ohne Schlingen und Mehrfachkanten heißen einfache Graphen (engl. simple). Für einfache ungerichtete Graphen gilt daher: ( ) V E := {X V, X = } EADS Grundlagen 5/40

Graphische Darstellung: v 4 K 5 v 5 v v v K, v v 6 v v 5 v v 4 EADS Grundlagen 6/40

Ist E V V, dann heißt G gerichteter Graph (engl. digraph). u v Der zu G gehörige ungerichtete Graph ist G = (V, E ). E erhält man, indem man in E die Richtungen weglässt und Mehrfachkanten beseitigt. Sei v V. Unter der Nachbarschaft N(v) := {w; (v, w) oder (w, v) E} eines Knotens v versteht man die Menge der direkten Nachbarn von v. Der Grad eines Knotens ist definiert als: { N(v) ; falls G ungerichtet und deg(v) = indeg(v) + outdeg(v) ; falls G gerichtet. Dabei ist indeg(v) die Anzahl aller Kanten, die v als Endknoten, und outdeg(v) die Anzahl aller Kanten, die v als Anfangsknoten haben. EADS Grundlagen 7/40

Beobachtung: Für einfache (gerichtete oder ungerichtete) Graphen gilt deg(v) = E. v V Korollar In jedem (einfachen) Graphen ist die Anzahl der Knoten mit ungeradem Grad eine gerade Zahl. EADS Grundlagen /40

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 ) heißt Teilgraph (aka. Subgraph) von G = (V, E), falls V V und E E. H heißt (knoten-) induzierter Teilgraph, falls H Teilgraph von G ist und ( ) V E = E. EADS Grundlagen /40

Ein Kantenzug (oder Pfad) ist eine Folge e := {v 0, v },..., e l := {v l, v l }. v 0 und v l sind die Endknoten, l ist die Länge des Kantenzuges. Sind bei einem Pfad alle v i (und damit erst recht alle e i ) verschieden, so sprechen wir von einem einfachen Pfad. Ein Kantenzug mit v l = v 0 heißt Zykel oder Kreis. Ein Kreis, in dem alle v i verschieden sind, heißt einfacher Kreis. Ein (ungerichteter) Graph G heißt zusammenhängend, wenn es für alle u, v V einen Pfad gibt, der u und v verbindet. Ein (knoten-)maximaler induzierter zusammenhängender Teilgraph heißt (Zusammenhangs-)Komponente. EADS Grundlagen 400/40

K K K K 4 Ein Graph G heißt azyklisch, wenn er keinen Kreis enthält. Wir bezeichnen einen solchen ungerichteten Graphen dann als Wald. Ist dieser auch zusammenhängend, so sprechen wir von einem Baum. Ist der Teilgraph T = (V, E) G = (V, E) ein Baum, dann heißt T ein Spannbaum von G. EADS Grundlagen 40/40

Satz 4 Ist T = (V, E) ein Baum, dann ist E = V. Beweis: Induktion über die Anzahl n der Knoten: n = 0, : klar. n n + : Sei V = n +. Da T zusammenhängend ist, ist deg(v) für alle v V. T muss einen Knoten v mit deg(v) = enthalten, denn ansonsten würde, wie wiederum eine einfache Induktion zeigt, T einen Kreis enthalten. Wende nun die Induktionsannahme auf den durch V {v} induzierten Teilgraphen an. Korollar 5 Ein (ungerichteter) Graph G ist zusammenhängend, gdw G einen Spannbaum hat. EADS Grundlagen 40/40

. Traversierung von Graphen Sei G = (V, E) ein ungerichteter Graph. Anhand eines Beipiels betrachten wir die zwei Algorithmen DFS (Tiefensuche) und BFS (Breitensuche). EADS Traversierung von Graphen 40/40

. DFS-Algorithmus while unvisited v do r := pick (random) unvisited node push r onto stack while stack do v := pop top element if v unvisited then mark v visited push all neighbours of v onto stack perform operations DFS Ops(v) fi od od EADS. DFS-Algorithmus 404/40

Beispiel 6 7 7 6 6 4 5 4 5 EADS. DFS-Algorithmus 405/40

Beobachtung: Die markierten Kanten bilden einen Spannbaum: 7 7 6 6 4 5 4 5 Rückwärtskante 4 5 6 7 EADS. DFS-Algorithmus 406/40

Folge der Stackzustände 7 7 4 7 5 7 6 4 7 5 6 4 7 6 5 6 4 6 6 5 6 4 7 5 6 5 6 4 visited visited Stack: : oberstes Stackelement : schon besuchte Knoten : Nachbarn Zustand: a) b) c) d) e) f) g) h) i) j) EADS. DFS-Algorithmus 407/40

Wir betrachten den Stackzustand: Im Zustand g) sind die Elemente, und 5 als visited markiert (siehe Zustände b), c) und e)). Deswegen werden sie aus dem Stack entfernt, und das Element wird zum obersten Stackelement. Im Zustand j) sind alle Elemente markiert, so dass eins nach dem anderen aus dem Stack entfernt wird. EADS. DFS-Algorithmus 40/40

. BFS-Algorithmus while unvisited v do r := pick (random) unvisited node push r into (end of) queue while queue do v := remove front element of queue if v unvisited then mark v visited append all neighbours of v to end of queue perform operations BFS Ops(v) fi od od EADS. BFS-Algorithmus 40/40

Beispiel 7 4 7 6 5 7 6 4 5 EADS. BFS-Algorithmus 40/40

Beobachtung: Die markierten Kanten bilden einen Spannbaum: 4 7 6 5 7 6 4 5 4 6 5 7 Rückwärtskanten EADS. BFS-Algorithmus 4/40

Folge der Queuezustände Queue: 7 7 Zustand: (a (b (c 7 6 7 5 visited 6 7 5 6 6 7 5 6 5 visited 6 7 5 6 5 4 visited 7 5 6 5 4 7 5 visited 6 5 4 7 5 6 4 visited 7 5 6 4 5 (d (e (f (g (h (i (j EADS. BFS-Algorithmus 4/40

Wir betrachten die Folge der Queuezustände. Wiederum bedeutet die Notation: : vorderstes Queue-Element : schon besuchte Knoten : Nachbarn Im Zustand e) sind die Elemente und als visited markiert (siehe Zustände a) und c)). Deswegen werden sie aus der Queue entfernt, und so wird das Element das vorderste Queueelement. Das gleiche passiert in den Zuständen g), h) und i). Im Zustand j) sind alle Elemente markiert, so dass sie eins nach dem anderen aus der Queue entfernt werden. EADS. BFS-Algorithmus 4/40

. 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), T = (V, E ) ein Teilgraph von G: w(t ) = w(e ). Definition T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt: w(t ) w(t ) für alle Spannbäume T von G. EADS.0 BFS-Algorithmus 44/40

Beispiel 7 6 minimaler 4 Spannbaum 5 Anwendungen: Telekom: Verbindungen der Telefonvermittlungen Leiterplatinen EADS.0 BFS-Algorithmus 45/40