Gliederung der Vorlesung

Slides:



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

Algorithmen für das Erfüllbarkeitsproblem SAT
Christian Scheideler SS 2009
Christian Scheideler SS 2009
Polynomial Root Isolation
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26-Graphenalgorithmen: Wiederholung und Übung) Prof. Th. Ottmann.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
7. Natürliche Binärbäume
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Die 1-Baum-Relaxation des TSP mit der Subgradientenmethode
Marco Barz Seminar über Algorithmen SoSe2007
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts
Seminar parallele Programmierung SS 2003
Algorithmen und Komplexität
Christian Schindelhauer
Minimum Spanning Tree: MST
Vortrag über Graphen Von Jörg Hendricks.
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 1 SS 2001 Algorithmus von Dijkstra.
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen
Flüsse, Schnitte, bipartite Graphen
Effiziente Algorithmen
Chromatische Zahl.
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
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 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
Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Christian Scheideler Institut für Informatik Universität Paderborn
Institut für Theoretische Informatik
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Das Traveling Salesman Problem (TSP)
Algorithmen für das Erfüllbarkeitsproblem SAT
Analyse der Laufzeit von Algorithmen
Bipartite Graphen Der Satz von König.
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.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Suche des kürzesten Weges in einem Netz.
Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 3 / 1 Algebraische Hülle und Homomorphie A = [A, F ] sei  -Algebra. Eine.
Anwendung der Ellipsoidmethode in der Kombinatorischen Optimierung
Der A*-Algorithmus.
Matchings (Paarungen) in Graphen
Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Wege und warum man sie geht Graphen. Köln 14. Januar 2016.
Gliederung 0. Motivation und Einordnung 1. Endliche Automaten
 Präsentation transkript:

Gliederung der Vorlesung Grundbegriffe Elementare Graphalgorithmen und Anwendungen Kürzeste Wege Minimale spannende Bäume Färbungen und Cliquen Traveling Salesman Problem Flüsse in Netzwerken und Anwendungen Bipartite Graphen

Gliederung des Kapitels Motivation Grundbegriffe und Zusammenhänge Diskussion

Grundbegriffe und Zusammenhänge Begriff Clique sei G = (V,E) ein (ungerichteter) Graph sei C  V C ist eine Clique im Graphen G, falls { u,v }  E für alle u,v  C mit u ≠ v gilt (d.h. der durch C induzierte Teilgraph ist vollständig) ... die Größe einer Clique C entspricht der Anzahl der Knoten von C

Grundbegriffe und Zusammenhänge Zugehörige algorithmische Fragestellung gegeben: ein Graph G = (V,E) gesucht: eine maximale Clique C im Graphen G (/* d.h. |C| ist maximal */)

Grundbegriffe und Zusammenhänge Begriff Clique-Cover sei G = (V,E) ein (ungerichteter) Graph sei C1,C2, ..., Ck eine Zerlegung der Knotenmenge, d.h. es gilt: die Mengen C1,C2, ..., Ck sind paarweise disjunkt V = C1  C2  ...  Ck die Zerlegung C1,C2, ..., Ck ist ein Clique-Cover von G, falls jedes Ci (mit 1 ≤ i ≤ k) eine Clique in G ist ... die Größe eines Clique-Covers C1,C2, ..., Ck entspricht der Anzahl der Mengen in dieser Zerlegung von V

Grundbegriffe und Zusammenhänge Beispiel S1 S2 S3 S8 S4 S7 S5 S6 ein minimales Clique-Cover: { S1,S2,S6 }, { S3,S5 }, { S4,S8 }, { S7 } ... anhand eines minimalen Clique-Covers kann man dann in unserem einführenden Beispiel eine „geeignete“ Steuerung der Verkehrsströme bestimmen

Grundbegriffe und Zusammenhänge Zugehörige algorithmische Fragestellung gegeben: ein Graph G = (V,E) gesucht: ein minimales Clique-Cover C1,C2, ..., Ck für den Graphen G (d.h. k ist minimal)

Grundbegriffe und Zusammenhänge naheliegende algorithmische Idee setze i = 1 bestimme eine maximale Clique C im Graphen G = (V,E), gib Ci = C aus und gehe zu 3) falls C ≠ V ist, so gehe wie folgt vor: streiche alle Knoten aus V, die in C vorkommen streiche alle Kanten aus E, die mit einem Knoten aus C inzident sind setze G = (V,E), i = i +1 und gehe zu 2)

Grundbegriffe und Zusammenhänge Bewertung es sollte klar sein, dass man mit dem vorgestellten Algorithmus immer ein Clique-Cover bestimmen kann Interessierende Frage: Kann man mit dem vorgestellten Algorithmus immer ein minimales Clique-Cover bestimmen? ... Was meinen Sie? Was ist die korrekte Antwort?

Grundbegriffe und Zusammenhänge Glauben Sie nicht alles, was Sie im Netz finden ...

Grundbegriffe und Zusammenhänge Beispiel 1 2 minimales Clique-Cover: { 1,3 }, { 2,5 }, { 4,6 } 3 4 5 6 ... minimales Clique-Cover, in dem die maximale Clique { 1,2,4 } vorkommt: { 1,2,4 }, { 3 }, { 5 }, { 6 }

Grundbegriffe und Zusammenhänge Anmerkungen im Beispiel ist der Unterschied zwischen dem minimalen Clique-Cover und dem minimalen Clique-Cover mit einer maximalen Clique genau 1 dieser Unterschied kann beliebig groß werden ... 1 2 6 7 3 4 5 8 9 10 6 11 ... Unterschied: 2 (/* 6 versus 8 */)

Grundbegriffe und Zusammenhänge Begriff Färbung sei G = (V,E) ein (ungerichteter) Graph sei f(.) eine Abbildung, die jedem Knoten von V eineindeutig eine natürliche Zahl (Codierung einer Farbe) zuordnet f(.) ist eine Färbung des Graphen G, falls f(u) ≠ f(v) für alle { u,v }  E gilt (d.h. adjazente Knoten sind unterschiedlich gefärbt) ... die Größe einer Färbung entspricht der Anzahl der verwendeten Farben (d.h. die Größe der Menge { f(u) | u  V })

Grundbegriffe und Zusammenhänge Beispiel 1 2 f(1) = 1 f(2) = 2 f(3) = f(5) = f(6) = 3 f(4) = 4 3 4 5 6 1 2 f(1) = f(5) = 1 f(2) = f(3) = f(6) = 2 f(4) = 3 3 4 5 6

Grundbegriffe und Zusammenhänge Einfache Zusammenhänge sei G = (V,E) ein (ungerichteter) Graph sei k die Größe einer maximalen Clique in G sei d der maximale Grad eines Knotens in G Dann gilt: Jede Färbung von G benötigt mindestens k viele Farben. Jede Färbung von G benötigt höchstens d+1 viele Farben. ... überlegen Sie sich selbst eine Begründung für diese Aussagen ... es können mehr als k und weniger als d+1 viele Farben sein

Grundbegriffe und Zusammenhänge Zugehörige algorithmische Fragestellung gegeben: ein Graph G = (V,E) gesucht: eine minimale Färbung für den Graphen G (d.h. eine Färbung mit einer minimalen Anzahl von Farben)

Grundbegriffe und Zusammenhänge Anmerkungen für dieses Problem ist kein effizienter Algorithmus bekannt (/* man geht davon aus, dass es keinen effizienten Algorithmus gibt */) den Hintergrund diskutieren wir später ausführlich man kennt auch keinen effizienten Algorithmus, der eine Färbung bestimmt, deren Güte garantiert ist, d.h. die bestimmte Färbung kann beliebig mehr Farben als eine minimale Färbung verwenden (/* man geht davon aus, dass es keinen effizienten Algorithmus mit einer garantierten Güte gibt */) es gibt aber einen sehr effizienten Algorithmus, mit dem man überhaupt eine Färbung bestimmen kann ... ... bevor wir den Algorithmus diskutieren, schauen wir uns an, was man mit ihm noch so anfangen kann

Grundbegriffe und Zusammenhänge Hilfsbegriff Komplementärgraph sei G = (V,E) ein (ungerichteter Graph) der zu G gehörende Komplementärgraph GC = (VC,EC) ist wie folgt definiert: VC = V EC = { { u,v } | u  V, v  V, { u,v }  E } ... offenbar kann man den Komplementärgraph GC sehr effizient anhand von G bestimmen

Grundbegriffe und Zusammenhänge Beispiel 1 2 1 2 3 4 5 3 4 5

Grundbegriffe und Zusammenhänge Ein zentraler Zusammenhang sei G = (V,E) ein (ungerichteter) Graph sei f(.) eine Färbung des Graphen G, die k Farben verwendet Dann gilt: Man kann anhand der gegebenen Färbung effizient ein Clique-Cover des Komplementärgraphen GC bestimmen, das ebenfalls die Größe k hat. ... die Umkehrung dieser Aussage gilt übrigens auch

Grundbegriffe und Zusammenhänge Beispiel 1 2 1 2 3 4 5 3 4 5 zugehöriges Clique-Cover: { 1 }, { 2 }, { 3,5 }, { 4 }

Grundbegriffe und Zusammenhänge Beispiel 1 2 1 2 3 4 5 3 4 5 zugehöriges Clique-Cover: { 1,5 }, { 2,3 }, { 4 }

Grundbegriffe und Zusammenhänge Beweisidee sei G = (V,E) ein (ungerichteter) Graph sei GC = (VC,EC) der Komplementärgraph sei f(.) eine Färbung des Graphen G, die die Farben 1, 2, ..., k verwendet für alle i mit 1 ≤ i ≤ k setze: Ci = { u  V | f(u) = i } da f(.) eine Färbung von G mit k Farben ist, ist C1, C2, ..., Ck eine Zerlegung von VC in k Mengen offenbar gilt für alle Knoten u,v  VC und alle i mit 1 ≤ i ≤ k: u,v  Ci gdw. f(u) = f(v) gdw. { u,v }  E also gilt: u,v  Ci gdw. { u,v }  EC also ist C1, C2, ..., Ck ein Clique-Cover des Komplementärgraphen GC

Grundbegriffe und Zusammenhänge Konsequenzen jeder Algorithmus, mit dem man eine minimale Färbung für einem gegebenen Graphen G bestimmen kann, kann man verwenden, um ein minimales Clique-Cover in G zu bestimmen (/* der Overhead an Rechenzeiten ist nicht bemerkenswert groß */) zugrunde liegende Idee: bestimme den Komplementärgraphen GC bestimme eine minimale Färbung f(.) von GC bestimme das zu f(.) gehörende Clique-Cover im Komplementärgraphen von GC, d.h. im gegebenen Graphen G ... Hintergrund: der Komplementärgraph des Komplementärgraphen GC eines Graphen G ist wieder der Graph G

Grundbegriffe und Zusammenhänge Konsequenzen (cont.) man kennt keine effizienten Algorithmen, um ein minimales Clique-Cover zu bestimmen (man vermutet, dass ...) man kennt auch keinen effizienten Algorithmus, der ein Clique-Cover bestimmt, dessen Güte garantiert ist, d.h. das bestimmte Clique-Cover kann beliebig mehr Cliquen als in ein minimales Clique-Cover besitzen (man vermutet, dass ...) ... Hintergrund: die vorgeführte „Problemreduktion“ ist effizient möglich (d.h. anhand von G den Komplementärgraphen GC und anhand der bestimmten Färbung das zugehörige Clique-Cover zu bestimmen)

Grundbegriffe und Zusammenhänge Algorithmus zum Bestimmen einer Färbung sei G = (V,E) ein (ungerichteter) Graph mit |V| = n bestimme eine Anordnung v1,v2, ...,vn der Knoten in V setze f(v1) = 1 for i = 2 to n: setze z = max { f(vj) | j < i, { vi,vj }  E } setze f(vi) = z+1 ... zugrunde liegende Vereinbarung: max  = 0

Grundbegriffe und Zusammenhänge Beispiel 1 2 3 4 5 ... die folgende nicht optimale Färbung wird gefunden, wenn in 1) die Knoten in der Reihenfolge 1,4,2,5,3 angeordnet werden: f(v1) = f(1) = 1 f(v2) = f(4) = 2 f(v3) = f(2) = 3 f(v4) = f(5) = 4 f(v5) = f(3) = 2

Grundbegriffe und Zusammenhänge Beispiel 1 2 3 4 5 ... die folgende optimale Färbung wird gefunden, wenn in 1) die Knoten lexikographisch angeordnet werden: f(v1) = f(1) = 1 f(v2) = f(2) = 2 f(v3) = f(3) = 2 f(v4) = f(4) = 3 f(v5) = f(5) = 3

Grundbegriffe und Zusammenhänge Anmerkungen der vorgestellte Algorithmus liefert nicht immer die minimale Färbung das ist nicht verwunderlich, da er in der Zeit O(n+m) eine Färbung bestimmt es gibt aber jeweils eine Anordnung der Knoten, so dass der vorgestellte Algorithmus eine minimale Färbung liefert ... finden Sie selbst eine Begründung

Grundbegriffe und Zusammenhänge Anmerkungen (cont.) der vorgestellte Algorithmus kann beliebig schlechte Färbungen liefern, wie das folgende Beispiel zeigt (/* allgemein gilt: Anzahl der Knoten versus 2 *) 1 2 3 4 5 6

Grundbegriffe und Zusammenhänge Ergänzungen es gibt einige Varianten des vorgestellten Algorithmus, die ebenfalls effizient sind und in der Regel bessere Färbungen liefern, wobei wiederum gilt: die Güte der von diesen Algorithmen bestimmten Färbungen ist nicht garantiert, d.h. die bestimmte Färbung kann beliebig mehr Farben als eine minimale Färbung verwenden ... diese Varianten des vorgestellten Algorithmus benutzen einfach zu überprüfende Kriterien, um eine „geeignete“ Anordnung der Knoten zu finden

Grundbegriffe und Zusammenhänge Der Färbungsalgorithmus von Johnson (Grundidee) die Farben 1, 2, ... werden nacheinander verwendet die Verwendung einer Farbe geschieht in zwei Schritten: streiche aus G alle gerade gefärbten Knoten und alle mit diesen Knoten inzidenten Kanten (/* falls G leer ist, höre auf */) setze G‘ = G und färbe in G‘ ausgewählte Knoten wie folgt: färbe den Knoten u mit dem minimalen Grad in G‘ streiche aus G‘ den Knoten u und alle mit u adjazenten Knoten streiche aus G‘ alle Kanten, mit denen die in b) gestrichenen Knoten inzident sind falls G‘ nicht leer ist, gehe zu a); sonst gehe zu 1) (/* wobei die nächste Farbe verwendet wird */)

Grundbegriffe und Zusammenhänge Beispiel ... wir betrachten den folgenden Graphen G als Eingabe 1 2 3 4 5 6

Grundbegriffe und Zusammenhänge Beispiel ... beim Färben mit Farbe 1 werden folgende Graphen G‘ betrachtet 1 2 3 4 3 5 6 5 5

Grundbegriffe und Zusammenhänge Beispiel ... beim Färben mit Farbe 2 werden folgende Graphen G‘ betrachtet 2 4 4 6 6 6

Grundbegriffe und Zusammenhänge Beispiel ... Ergebnis der Anwendung des Algorithmus von Johnson 1 2 3 4 5 6

Grundbegriffe und Zusammenhänge Bezeichnungen sei G = (V,E) ein (ungerichteter) Graph sei V‘  V eine Teilmenge der Knotenmenge von V dann bezeichnen wir mit G|V‘ den wie folgt definierten Teilgraphen von G: G|V‘ = (V‘,E‘), wobei E‘ = { {u,v}  E | u,v  V‘ } ... G|V‘ enthält nur die Kanten von G, die mit Knoten in V‘ adjazent sind

Grundbegriffe und Zusammenhänge Algorithmus von Johnson (/* Details */) sei G = (V,E) ein (ungerichteter) Graph mit |V| = n bestimme eine Anordnung v1,v2, ...,vn der Knoten in V und setze i = 1 falls V ≠  gilt setze V‘ = V falls V‘ ≠  gilt bestimme das minimale j ≤ n, so dass vj ein Knoten mit einem minimalen Grad im Graphen G|V‘ ist setze f(vj) = i und streiche vj aus V streiche vj und alle mit vj adjazenten Knoten aus V‘ und gehe zu b) setze i = i +1 und gehe zu 2)

Grundbegriffe und Zusammenhänge Anmerkungen der Algorithmus von Johnson hat folgende Eigenschaften: er liefert immer eine Färbung er ist effizient er liefert in der Regel „bessere“ Färbungen als der zuvor vorgestellte Algorithmus ... die bestimmte Färbung kann wiederum beliebig mehr Farben als eine minimale Färbung verwenden (siehe nächste Folie)

Grundbegriffe und Zusammenhänge Anmerkungen (cont.) der Algorithmus von Johnson kann beliebig schlechte Färbungen liefern, wie das folgende Beispiel zeigt (/* allgemein gilt: Logarithmus der Anzahl der Knoten plus 1 versus 2 *) 4 4 4 5 13 5 2 2 2 9 6 14 6 1 1 1 10 7 15 7 3 3 3 11 8 16 8 12 ...die in 1) verwendete Anordnung der Knoten benutzt den Knoten 1 als letzten Knoten, den Knoten 2 als vorletzten, ...