280 likes | 582 Views
Färben der Knoten von Graphen. Speziell: 4-Farbenproblem. Gliederung. Definition Knotenfärbung und 4-Farbensatz Historie des 4-Farbenproblems Ursprung Beweisfindung Lösungsstrategien Erschöpfende Suche Backtracking mögliche Implementierung Komplexität Anwendungsbeispiele
E N D
Färben der Knoten von Graphen Speziell: 4-Farbenproblem
Gliederung • Definition Knotenfärbung und 4-Farbensatz • Historie des 4-Farbenproblems • Ursprung • Beweisfindung • Lösungsstrategien • Erschöpfende Suche • Backtracking • mögliche Implementierung • Komplexität • Anwendungsbeispiele • Zusammenfassung • Literaturhinweise
Definition • ist G(V,E) ein ungerichteter Graph ohne Mehrfachkanten und eine Abbildung von V nach N, so nennt man eine Knotenfärbung von G • Färbung ist gültig/zulässig, falls für 2 beliebige benach-barte Knoten gilt:(v1) (v2) • G ist k-knotenfärbbar, falls es eine gültige Färbung gibt, so dass:v V : (v) < k • für das kleinste k für das G k-knotenfärbbar ist, ist k die chromatische zahl א(G) • 4-Farben-Satz: für einen planaren Graphen G ist die chromatische Zahlא(G) = 4
Historie Ursprung • 1852 aufgestellte Vermutung durch Francis Guthrie beim Färben der Karte der Ländereien von England: • 4 Farben genügen um die Länder einer Karte so zu färben, dass alle benachbarten Länder unterschiedliche Farben tragen • Veröffentlichung des Problems durch Brief des Mathematik-Professors De Morgan an Hamilton
Historie Beweisfindung • Beweise durch Kempe (1878) und Tait (1880) wurden 1890 bzw. 1891 widerlegt • 1890 Formulierung des 5-Farben-Satzes durch Heawood→Existenz einer oberen Schranke bewiesen • 60-er und 70-er Jahren Verfahren von Heesch zum Suchen eines Beweises per Computer - führte 1977 zum Beweis durch Ken Appel und Wolfgang Haken • Beweis reduziert die problematischen Fälle von unendlich auf 1.936, später weniger, welche vom Computer geprüft wurden • 2004 - Entwicklung eines formalen Beweises mittels Beweis-Assistenten COQ durch Werner und Gonthier
Lösungsstrategien Erschöpfende Suche • Knoten werden nacheinander nummeriert • Zählmethode Tachostand: • Anzahl der Stellen = Anzahl der Knoten im Graph • Wert = Farbe(0,1,2,3) des Knoten • jeder Färbungszustand wird unmittelbar auf Gültigkeit geprüft
Erschöpfende Suche 1 2 3 4 5 6 7 8
Erschöpfende Suche 1 2 3 4 5 6 7 8
Erschöpfende Suche 1 2 3 4 5 6 7 8
Erschöpfende Suche 1 2 3 4 5 6 7 8
Erschöpfende Suche 1 2 3 4 5 6 7 8
Erschöpfende Suche 1 2 3 4 5 6 7 8
Erschöpfende Suche 1 2 3 4 5 6 7 8
Erschöpfende Suche • im ungünstigsten Fall müssen fast alle Kombinationen durchprobiert werden • Algorithmus zählt weiter obwohl klar ist, dass einige Kombinationen übersprungen werden können • Nachteil: sehr hoher Zeitaufwand
Backtracking • Knoten werden nummeriert • ein Land färben und dann versuchen das nächste zu färben, so dass folgende Bedingungen erfüllt sind: • die benachbarten bereits gefärbten Länder haben unterschiedliche Farben • keines der benachbarten noch ungefärbten Länder wird unfärbbar • Bedingungen können erfüllt sein, aber dennoch zu keiner Lösung führen (Sackgasse) • Rückverfolgung des Pfades und setzen der nächst-möglichen Farbe – rekursiver Aufruf
Backtracking • Vorteil: wesentlich effizienter als erschöpfende Suche • Nachteil: abhängig von der Nummerierung, d.h. bei ungünstiger Nummerierung ist der Aufwand ebenfallsenorm hoch
Implementierung • Länder sind Knoten in einem Graphen • Knoten werden mit Kante verbunden, falls korrespondierende Länder benachbart sind • Knoten sind Container, die neben den Referenzen der Nachbarknoten ein Array der Länge 4 enthält: • Wert 1 an der Stelle i, signalisiert die Färbung des Knotens in der Farbe i • Wert -1 signalisiert, dass die Knoten mit i gefärbt werden kann • 0 signalisiert, dass der Knoten nicht mit i gefärbt werden kann • Realisierung der Pfadrückverfolgung durch Rekursion
Komplexität • Fällt in Klasse NP-schwer • Exponentieller Aufwand: • Anzahl der Kombinationen steigt exponentiell • Anzahl der möglichen Sackgassen steigt ebenfalls exponentiell,allerdings abhängig von der Nummerierung, daher ist Backtracking oftmals deutlich schneller • Gibt wahrscheinlich keinen effizienten Algorithmus
Anwendungen • Stundenplanproblem • Veranstaltungen = Knoten • Veranst. die nicht gleichzeitig ablaufen können sind verbunden • Anzahl der Farben = Anzahl der verschiedenen Zeitfenster • Registerzuweisungs-Probleme • Bandbreitenzuweisungs-Probleme • Suche nach Wegen durch ein Labyrinth
Zusammenfassung • 4-Farben-Satz konnte lange Zeit nicht korrekt bewiesen werden • erstes Problem das mittels Computer bewiesen wurde • es gibt keinen zuverlässig effizienten Lösungs-Algorithmus • viele mathematische Probleme lassen sich als Knotenfärbe-Problem formulieren • Algorithmen lassen sich sehr einfach implementieren
Literaturhinweise • Reinhard Diestel: Graphentheorie. Springer-Verlag, Heidelberg, Deutschland, 2000. ISBN-3-540-67656-2 • http://www.math.uni-hamburg.de/home/diestel/books/graphentheorie/ • Anuj Mehrotra, Michael A. Trick: A column generation approach for graph coloring. INFORMS Journal on Computing Vol. 8, No. 4 (1996), Seiten 344-354 • http://mat.gsia.cmu.edu/trick/color.ps • Alessandro Tomazic: Graphenfärbung mit Hilfe linearer Programmierung, Diplomarbeit, Universität Augsburg, Deutschland, 2005 • http://de.geocities.com/omarsharif_2000/Diplomarbeit.pdf