Wiederholung Knotenfärbung von Graphen Matchings M

Slides:



Advertisements
Ähnliche Präsentationen
8. Termin Teil B: Wiederholung Begriffe Baum
Advertisements

Christian Scheideler SS 2009
Berechne den optimalen (kürzesten, schnellsten) Weg
Man bestimme den „minimalen aufspannenden Baum“ des Graphen.
Minimum Spanning Tree: MST
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26-Graphenalgorithmen: Wiederholung und Übung) Prof. Th. Ottmann.
7.2 B-Bäume / B*-Bäume als Hilfsmittel zur Indexorganisation
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Graphen Ein Graph ist eine Kollektion von Knoten und Kanten. Knoten sind einfache Objekte. Sie haben Namen und können Träger von Werten, Eigenschaften.
Kapitel 6: Klassifizierung von Sortiertechniken
7. Natürliche Binärbäume
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Marco Barz Seminar über Algorithmen SoSe2007
Programmieren 2 Future Car Projekt Praktikum 6
Programmieren 2 Future Car Projekt Praktikum 6
WS Algorithmentheorie 13 - Kürzeste (billigste) Wege Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts
Union-Find-Strukturen
Algorithmen und Datenstrukturen
Minimum Spanning Tree: MST
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 1 SS 2001 Algorithmus von Dijkstra.
Effiziente Algorithmen
2. Die rekursive Datenstruktur Baum 2
Flüsse, Schnitte, bipartite Graphen
Effiziente Algorithmen
Effiziente Algorithmen
Chromatische Zahl.
Diskrete Mathematik II
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Institut für Theoretische Informatik
Graphen und Bäume.
Kapitel 8: Graphalgorithmen 8. 1 Grundlagen 8
Analyse der Laufzeit von Algorithmen
Eine kurze Geschichte der Graphentheorie
Algorithmen und Datenstrukturen 1 SS 2002
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken VI Christian Schindelhauer
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Henneberg-Konstruktion in O(n²) Konstruktion von Laman-Graphen mittels Rot-Schwarz-Hierarchien Marko Walther WS 07/08.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Suche des kürzesten Weges in einem Netz.
Gliederung der Vorlesung
Binärbäume.
Vorlesung AVL-Bäume/Algorithmen-
Vorlesung AVL-Bäume/Algorithmen-
Punkt-in-Landkarte II
Wiederholung TexPoint fonts used in EMF.
Christian Scheideler WS 2008
Wiederholung Gerichtete Graphen Digraph D=(V,E)
Wiederholung TexPoint fonts used in EMF.
Übungen Übungsanmeldung Übungskorrektur
Wiederholung Breitensuche BFS mit Startknoten s Tiefensuche
Wiederholung TexPoint fonts used in EMF.
Zusammenfassung Königsberger Brückenproblem Planare Graphen
Wiederholung Verband Ungerichtete Graphen Partielle Ordnung
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
DB2 – SS 2019 von Baum allgemein bis B*-Baum
DB2 – SS 2019 von Baum allgemein bis B*-Baum
 Präsentation transkript:

Wiederholung Knotenfärbung von Graphen Matchings M Chromatische Zahl Â(G) Beweis: Jeder planare Graph ist 5-färbbar Vierfarbensatz: Jeder planare Graph ist 4-färbbar. Kantenfärbung: ‘(G) = ¢(G) oder ¢(G)+1 Matchings M Heiratsproblem Bipartite Graphen G=(A ] B, E) Satz von Hall: M=|A| , |X| · |¡(X)| 15.11.2018

Heiratssatz Satz(Hall): Sei G=(A ] B, E) bipartit. G enthält Matching M der Größe |M|=|A| , |[x 2 X ¡(x)| =:|¡(X)| ¸ |X| für alle X µ A. „)“: Sei M Matching, |M|=|A|. Betrachte G‘=(A ] B,M). Jedes X µ A hat in G‘ genau |X| Nachbarn ) Jedes X µ A hat in G mindestens |X| Nachbarn. 15.11.2018

|¡(X)|¸|X| ) Matching,|M|=|A| Ann.: G=(A ] B, E) hat max. Matching M, |M|<|A| ) 9 nicht überdecktes a1 2 A mit Nachbarn b1.Existenz von b1 wegen |¡({a1})| ¸ 1. Algorithmus Augmentierender-Pfad Eingabe: G=(A ] B, E), M, a1, b1 k à 1 while (bk wird von M überdeckt) ak+1 à Nachbar von bk im Matching M bk+1 à beliebiges v 2 ¡({a1,…,ak+1}) n {b1, …, bk} k à k+1 Ausgabe: augmentierender Pfad pa = (a1, b1, …, ak, bk) Korrektheit: bk+1 existiert wegen |¡({a1,…,ak+1}) n {b1,…,bk}| ¸ (k+1)-k = 1 {ai, bi}  M für i=1,…,k: k Kanten nicht in M {bi, ai+1} 2 M für i=1,…,k-1: k-1 Kanten in M a1, bk nicht überdeckt. Nimm {ai, bi} in Matching auf und {bi, ai+1} aus Matching raus. M wird um Eins größer (Widerspruch zur Maximalität von M) 15.11.2018

Konstruktion eines maximalen Matchings Algorithmus MaxMatching Eingabe: G=(A ] B, E) mit |¡(X)|¸|X| für alle X µ A M à ; while (es gibt nichtüberdeckten ai 2 A) b1 à Nachbar von ai pa=(a1,b1,…,ak,bk) à Augmentierender-Pfad(G,M,a1,b1) for i à 1 to k M=M [ {ai,bi}; if(i<k) M=Mn{bi,ai+1} Ausgabe: Matching M mit |M|=|A| Korrektheit: M wird in jeder Iteration um ein Element vergrößert. Nach |A| Iterationen gilt |M|=|A|. 15.11.2018

k-reguläre bipartite Graphen Satz: Sei G=(A ] B, E) ein k-regulärer bipartiter Graph. Dann gilt: (1) G besitzt ein perfektes Matching. (2) ‘(G) = k. zu (1): Ann: 9 X µ A: |¡(X)| < |X| Betrachte Multimenge M=[x2X ¡(x) mit |M|=k*|X| Verallgemeinertes Schubfachprinzip: 9 b 2 ¡(X) mit deg(b) ¸ d|M|/|¡(X)e > k*|X|/|X| = k (Widerspruch: G ist k-regulär) 15.11.2018

‘(G) = k zu (2): |E|=a 2 A deg(a) = |A|*k = b 2 B k ) |A|=|B| Induktion über k IA: k=1: G besitzt perfektes Matching E: Jedes a 2 A ist mit einem b 2 B verbunden. M=E und alle Kanten können mit 1 gefärbt werden. IS: k-1 ! k G besitzt ein perfektes Matching M. G‘=(A ] B, E n M) ist (k-1)-regulär: G‘ besitzt (k-1)-Kantenfärbung nach IV. Färbe alle Kanten des Matchings M mit der Farbe k. 15.11.2018

Gerichtete Graphen D Def: Gerichteter Graph oder Digraph D=(V,E) mit V Menge der Knoten, |V|=n E µ V£V Menge der gerichteten Kanten, |E|=m Bsp.: D=([4], (1,2),(1,3),(2,3),(2,4),(3,2),(3,4)) Analog zu ungerichteten Graphen: gerichteter Weg (1,2,3,2,4) gerichteter Pfad (1,2,3,4) der Länge 3 Kürzester 1-4-Pfad (1,3,4) der Länge (mittels BFS) gerichteter Kreis (2,3) der Länge 2 ¡(3) = {2,4} 1 2 3 4 15.11.2018

DAG und topologische Sortierung Def: Ein Digraph D=(V,E) heisst DAG, falls D kreisfreis ist. Algorithmus Topol-Sort (DFS-Variante) Eingabe: DAG D=(V,E) in Adjazenzlistendarstellung Für alle v 2 V pred[v] à nil; f[v]=0; i à n; S à new Stack; while (es gibt unbesuchten Knoten s) s à minimaler unbesuchter Knoten; S.Push(s); While (S.Isempty()  TRUE) v à S.Pop(); if (9 u 2 ¡(v) mit pred[u] = nil) then S.Push(v); S.Push(u); pred[u] à v else if (f[v]=0) then f[v] à i; i à i-1; Ausgabe: pred[v], f[v] für alle v 2 V 15.11.2018

Ankleideproblem Topologische Sortierung Unterwäsche Socken Uhr Hose 6 9 5 Unterwäsche Socken Uhr 7 8 Hose Schuhe 2 3 Shirt Pullover 4 1 Gürtel Mantel Topologische Sortierung Socken Unterw Hose Schuhe Uhr Shirt Pulli Gürtel Mantel 15.11.2018

Relationen vs. Graphen Sei D=(V,A). Sei R µ S£S Relation auf S. A µ V£V ist Relation auf V. Sei R µ S£S Relation auf S. D=(S, R) definiert einen Graphen. Poset (S, ¹): reflexiv, antisymmetrisch, transitiv Definiert DAG (Weglassen der Selbstkanten {v,v}). Topologische Sortierung liefert lineare Erweiterung (S, ¹L): x ¹ y ) x ¹L y für alle x,y 2 S , d[x] · d[y] in topologischer Sortierung 15.11.2018

Starker Zusammenhang Sei D=(V,E) ein gerichteter Graph. Def: G=(V,E‘) mit {u,v}2 E‘ , (u,v) 2 E oder (v,u) 2 E ist zugrundeliegender Graph von D. Def: D ist stark zusammenhängend , 9 u-v-Pfad für alle u,v 2 V D ist (schwach) zusammenhängend , zugrundeliegender Graph G ist zusammenhängend Algorithmen zum Testen von starkem Zusammenhang: Führe DFS für alle Startknoten s2 V durch: O(n(n+m)) Verbesserter Algorithmus mit Laufzeit O(n+m): Sei Dr=(V,Er) mit (u,v) 2 Er , (v,u) 2 E Anwendung von DFS auf D und Dr genügt (Beweis nicht-trivial). 15.11.2018

Transitive Hülle Algorithmus Simple-Transitiv Eingabe: Relation R auf S while (9 x,y,z mit (x,y),(y,z) 2 R und (x,z)R) do R Ã R [ {(x,z)} Ausgabe: Transitive Hülle R+ = R Korrektheit: klar Laufzeit O(|S|5): |R+| · |S|2 In jeder Iteration wird eine „Kante“ (x,z) hinzugefügt. Überprüfung der while-Bedingung in O(|S|3): R in Adjazenzmatrixdarstellung (rij) Überprüfe für jedes x,y,z ob rxy=1 und ryz=1 und rxz=0. 15.11.2018

Mittels Dynamischer Programmierung Sei D=(V,E). Transitive Hülle D+=(V,E+) von D hat die Kantenmenge E+ = {(u,v) 2 V£V | 9 u-v-Pfad in D}. Definieren Wk[i,j] = 1, falls 9 i-j-Pfad mit inneren Knoten aus {1,…,k} 0, sonst Initiale Werte: W0[i,j] = 1 , (i,j) 2 E Finale Werte: Wn[i,j] = 1 , (i,j) 2 E+ 15.11.2018

Iterative Berechnung Berechnung von Wk[i,j] aus Wk-1[i,j]: 9 i-j-Pfad mit inneren Knoten aus {1,…,k-1} 9 i-k-Pfad und k-j-Pfad mit inneren Knoten aus {1,…,k-1} ) Wk[i,j] = max{Wk-1[i,j], Wk-1[i,k] * Wk-1[k,j]} 15.11.2018

Algorithmus von Warschall Eingabe: D=(V,E) for i=1 to n for j=1 to n if (i,j)2 E then W[i,j] Ã 1; else W[i,j] Ã 0; for k=1 to n W[i,j] Ã max{W[i,j], W[i,k]*W[k,j]} Ausgabe: E+ Ã{(i,j) | W[i,j]=1} 15.11.2018

Analyse von Warschalls Algorithmus Satz: Warschalls Algorithmus berechnet die transitive Hülle eines Graphen in Zeit O(n3). Korrektheit: Wk[i,j] = max{Wk-1[i,j], Wk-1[i,k] * Wk-1[k,j]} und Wk-1[i,k]=1 , Wk[i,k]=1 bzw. Wk-1[k,j]=Wk,j: „)“: klar „(“: 9 p=(i,v1,…,vr=k) mit inneren Knoten aus {1,…,k}. Pfadeigenschaft: vi  vr=k für i<r ) p ist i-j-Pfad mit inneren Knoten v1,…,vr-1 2 {1,…,k-1} Laufzeit: O(n3) 15.11.2018

Wurzelbäume Sei T=(V,E) ein Baum. Tv bezeichne Baum mit Wurzel v. Von jedem Knoten u2V gibt es genau einen u-v-Pfad = (u,v1,…,vk=v) v1,…,vk sind Vorgänger von u v1 ist Elternknoten bzw. Vaterknoten von v. u hat Tiefe k im Baum Tv Höhe h(Tv) = maxu 2 V{Tiefe von u in Tv} Knoten mit gleichem Elternknoten heißen Geschwisterknoten Knoten w mit w-u-Pfad heissen Nachfolger von u Falls (w,u) in E, nennt man w ein Kind von u. 15.11.2018

Binärbäume linkes Kind: 2i rechtes Kind: 2i+1 Vater: bi/2c Binärbaum: Jeder Knoten hat höchstens zwei Kinder. Vollständiger Binärbaum: Jedes Nichtblatt hat zwei Kinder, Blätter haben gleiche Tiefe. Realisierung vollständiger Binärbäume als Array: Knoten in Tiefe t erhalten Indizes 2t,…, 2t+1-1 Knoten i: linkes Kind: 2i rechtes Kind: 2i+1 Vater: bi/2c Sei h die Höhe des Baums. n = 2h+1-1 bzw. h = £(log n) Verwendung von Arraydarstellung z.B. bei Heapsort. 15.11.2018

Binäre Suchbäume Sei T=(V,E) mit V µ Z beliebig. Def: Ein Binärbaum Tw heisst Suchbaum, wenn für alle v 2 V gilt: Für alle Knoten ul im linken Teilbaum von v: ul · v. Für alle Knoten ur im rechten Teilbaum von v: ur ¸ v. Algorithmus Suche-Element Eingabe: Suchbaum Tw, u while (w  u und w ist kein Blatt) if u · w then wà linkes Kind von w. else w à rechtes Kind von w. Ausgabe: „u gefunden“, falls w=u und „u nicht gefunden“ sonst Laufzeit: O(h(Tw)) Verschiedene Strategien, um h(Tw)=O(log n) zu erzwingen Höhen- und gewichtsbalancierte Bäume, Rot-Schwarz-Bäume, etc. 15.11.2018