Wiederholung

Ähnliche Dokumente
WS 2009/10. Diskrete Strukturen

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 2

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

11.1 Grundlagen - Denitionen

9. Übung Algorithmen I

William Rowan Hamilton,

8 Diskrete Optimierung

2. Repräsentationen von Graphen in Computern

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

ADS: Algorithmen und Datenstrukturen 2

Kombinatorische Optimierung

4. Kreis- und Wegeprobleme Abstände in Graphen

WS 2009/10. Diskrete Strukturen

Algorithmen und Datenstrukturen 2

Felix Brandt, Jan Johannsen. Vorlesung im Wintersemester 2008/09

Wiederholung zu Flüssen

Algorithmen und Datenstrukturen Suchbaum

Ausarbeitung über den Satz von Menger und den Satz von König

Algorithmen II Vorlesung am

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

Massive Parallelität : Neuronale Netze

Algorithmen und Datenstrukturen 2

14. Rot-Schwarz-Bäume

Diskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 6: Graphentheorie

Das Briefträgerproblem

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstrukturen & Algorithmen

6. Übung zur Linearen Optimierung SS08

13. Binäre Suchbäume

Informatik II, SS 2014

Effiziente Algorithmen I

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

Kapitel 4: Minimal spannende Bäume Gliederung der Vorlesung

Graphen und Algorithmen

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Kapitel 4: Minimale spannende Bäume Gliederung der Vorlesung

Algorithmen und Datenstrukturen

Algorithmentheorie Maximale Flüsse

Algorithmen zur Berechnung der Transitiven Hülle einer Datenbankrelation

Grundlagen Datenstrukturen Transitive Hülle Traversierung Kürzeste Wege Spannender Baum Max. Fluss Zuordnungen. 6. Graphen

Customization (Zuschneiden)

Graphenalgorithmen I

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

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

16. All Pairs Shortest Path (ASPS)

MafI I: Logik & Diskrete Mathematik (F. Hoffmann)

Algorithmen und Datenstrukturen (WS 2007/08) 63

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Randomisierte Algorithmen

Gliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten

Graph Paar (V,E) V: nichtleere Menge von Knoten (vertex) E: Menge von Kanten (edges): Relation (Verbindung) zwischen den Knoten

Technische Universität München Zentrum Mathematik Propädeutikum Diskrete Mathematik. Weihnachtsblatt

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung

Abschnitt: Algorithmendesign und Laufzeitanalyse

Grundbegriffe der Informatik

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis

Minimal spannende Bäume

Übung zur Vorlesung Algorithmische Geometrie

Grundbegriffe der Informatik

Algorithmische Graphentheorie

Datenstrukturen und Algorithmen

Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem &

Polygontriangulierung

Programmierung 1 - Repetitorium

Vorlesung 4 BETWEENNESS CENTRALITY

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

Kapitel 3. Kombinatorische Optimierung. 3.1 Begriffe aus der Graphentheorie

Maximale s t-flüsse in Planaren Graphen

κ(k) k K S Algorithmus zur Bestimmung eines spannenden Baumes mit minimalen Kosten (Kruskal, 1965).

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...)

WS 2013/14. Diskrete Strukturen

3. Musterlösung. Problem 1: Boruvka MST

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

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

entheoretische Konzepte und Algorithmen

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

1 Vollständige Induktion

Grundlagen der Programmierung 2. Bäume

Binary Decision Diagrams (Einführung)

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Vier-Farben-Vermutung (1)

Kombinatorische Optimierung

Resolutionsalgorithmus

Effiziente Algorithmen und Datenstrukturen: Kürzeste Wege

Very simple methods for all pairs network flow analysis

Programmiertechnik II

Flüsse, Schnitte, bipartite Graphen

Algorithmen & Datenstrukturen 1. Klausur

Systems of Distinct Representatives

Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13)

Graphen: Datenstrukturen und Algorithmen

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Algorithmen II Vorlesung am

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany Stammbaum. Stammbaum. Stammbaum

Transkript:

Wiederholung Knotenfärbung von Graphen 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) 20.11.2007 1

Heiratssatz Satz(Hall): Sei G=(A ] B, E) bipartit. G enthält Matching M der Größe M = A x 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. 20.11.2007 2

Γ(X) X Matching, M = A Ann.: G=(A ] B, E) hat max. Matching M, M < A nicht überdecktes a 1 A mit Nachbarn b 1.Existenz von b 1 wegen Γ({a 1 }) 1. Algorithmus Augmentierender-Pfad Eingabe: G=(A ] B, E), M, a 1, b 1 1. k 1 2. while (b k wird von M überdeckt) 1. a k+1 Nachbar von b k im Matching M 2. b k+1 beliebiges v Γ({a 1,,a k+1 }) \ {b 1,, b k } 3. k k+1 Ausgabe: augmentierender Pfad p a = (a 1, b 1,, a k, b k ) Korrektheit: b k+1 existiert wegen Γ({a 1,,a k+1 }) \ {b 1,,b k } (k+1)-k = 1 {a i, b i } M für i=1,,k: k Kanten nicht in M {b i, a i+1 } M für i=1,,k-1: k-1 Kanten in M a 1, b k nicht überdeckt. Nimm {a i, b i } in Matching auf und {b i, a i+1 } aus Matching raus. M wird um Eins größer (Widerspruch zur Maximalität von M) 20.11.2007 3

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 a i A) b 1 Nachbar von a i p a =(a 1,b 1,,a k,b k ) Augmentierender-Pfad(G,M,a 1,b 1 ) for i 1 to k M=M {a i,b i }; if(i<k) M=M\{b i,a i+1 } Ausgabe: Matching M mit M = A Korrektheit: M wird in jeder Iteration um ein Element vergrößert. Nach A Iterationen gilt M = A. 20.11.2007 4

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: X A: Γ(X) < X Betrachte Multimenge M= x X Γ(x) mit M =k* X Verallgemeinertes Schubfachprinzip: b Γ(X) mit deg(b) d M / Γ(X)e > k* X / X = k (Widerspruch: G ist k-regulär) 20.11.2007 5

χ (G) = k zu (2): E = a A deg(a) = A *k = b B k A = B Induktion über k IA: k=1: G besitzt perfektes Matching E: Jedes a A ist mit einem b 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 \ 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. 20.11.2007 6

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)) 1 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} 20.11.2007 7

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 1. Für alle v V 1. pred[v] nil; f[v]=0; 2. i n; S new Stack; 3. while (es gibt unbesuchten Knoten s) 1. s minimaler unbesuchter Knoten; S.Push(s); 2. While (S.Isempty() TRUE) 1. v S.Pop(); 1. if ( u Γ(v) mit pred[u] = nil) then 1. S.Push(v); S.Push(u); 2. pred[u] v 2. else if (f[v]=0) then 1. f[v] i; i i-1; Ausgabe: pred[v], f[v] für alle v V 20.11.2007 8

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

Relationen vs. Graphen Sei D=(V,A). 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 S d[x] d[y] in topologischer Sortierung 20.11.2007 10

Starker Zusammenhang Sei D=(V,E) ein gerichteter Graph. Def: G=(V,E ) mit {u,v} E (u,v) E oder (v,u) E ist zugrundeliegender Graph von D. Def: D ist stark zusammenhängend u-v-pfad für alle u,v 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 s V durch: O(n(n+m)) Verbesserter Algorithmus mit Laufzeit O(n+m): Sei D r =(V,E r ) mit (u,v) E r (v,u) E Anwendung von DFS auf D und D r genügt (Beweis nicht-trivial). 20.11.2007 11

Transitive Hülle Algorithmus Simple-Transitiv Eingabe: Relation R auf S 1. while ( x,y,z mit (x,y),(y,z) R und (x,z) R) do 1. 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 (r ij ) Überprüfe für jedes x,y,z ob r xy =1 und r yz =1 und r xz =0. 20.11.2007 12

Mittels Dynamischer Programmierung Sei D=(V,E). Transitive Hülle D + =(V,E + ) von D hat die Kantenmenge E + = {(u,v) V V u-v-pfad in D}. Definieren W k [i,j] = 1, falls i-j-pfad mit inneren Knoten aus {1,,k} 0, sonst Initiale Werte: W 0 [i,j] = 1 (i,j) E Finale Werte: W n [i,j] = 1 (i,j) E + 20.11.2007 13

Iterative Berechnung Berechnung von W k [i,j] aus W k-1 [i,j]: W k [i,j] = 1: i-j-pfad mit inneren Knoten aus {1,,k-1} i-k-pfad und k-j-pfad mit inneren Knoten aus {1,,k-1} W k [i,j] = max{w k-1 [i,j], W k-1 [i,k] * W k-1 [k,j]} 20.11.2007 14

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

Analyse von Warschalls Algorithmus Satz: Warschalls Algorithmus berechnet die transitive Hülle eines Graphen in Zeit O(n 3 ). Korrektheit: W k [i,j] = max{w k-1 [i,j], W k-1 [i,k] * W k-1 [k,j]} und W k-1 [i,k]=1 W k [i,k]=1 bzw. W k-1 [k,j]=w k,j : : klar : p=(i,v 1,,v r =k) mit inneren Knoten aus {1,,k}. Pfadeigenschaft: v i v r =k für i<r p ist i-j-pfad mit inneren Knoten v 1,,v r-1 {1,,k-1} Laufzeit: O(n 3 ) 20.11.2007 16

Wurzelbäume Sei T=(V,E) ein Baum. T v bezeichne Baum mit Wurzel v. Von jedem Knoten u V gibt es genau einen u-v-pfad = (u,v 1,,v k =v) v 1,,v k sind Vorgänger von u v 1 ist Elternknoten bzw. Vaterknoten von v. u hat Tiefe k im Baum T v Höhe h(t v ) = max u V {Tiefe von u in T v } 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. 20.11.2007 17

Binärbäume 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 2 t,, 2 t+1-1 Knoten i: linkes Kind: 2i rechtes Kind: 2i+1 Vater: bi/2c Sei h die Höhe des Baums. n = 2 h+1-1 bzw. h = Θ(log n) Verwendung von Arraydarstellung z.b. bei Heapsort. 20.11.2007 18

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