date-created: 2024-06-10 10:36:56 date-modified: 2024-06-27 04:53:44

Knotenfärbung (bei Graphen)

anchored to 115.00_graphentheorie_anchor #computerscience #graphtheory


Euphorisch als eines der größten Probleme in der Informatik betitelt möchten wir das Einfärben von Graphen betrachten. ( Als wichtiger Punkt dient hier etwa die Frage um die Einfärbung eines Graphen mit 4 Farben, wenn er planar ist.)

Der Beweis ist aber unschön, weil wir da mit Computern lösen, bzw wir uns auf diesen verlassen müssen (und dabei eventuelle Rundungsfehler das Ergebnis verfälschen o.ä.)

Dennoch werden wir uns etwa für die EInfärbung mit 5-Farben einen Beweis anschauen, der soweit auch funktioniert und umsetzbar ist.

Overview

Wir wollen zuerst die Knotenfärbung grundlegend definieren: Haben wir zuvor bereits betrachtet, siehe 115.01_grundlagen

[!Definition] Knotenfärbung

Sei ein Graph.

Wie können wir die Knotenfärbung dann definieren, welche Bedingung wird dabei gesetzt? Was ist mit der chromatischen Zahl gemeint? #card

Eine Knotenfärbung ist eine Abbildung (wobei Die Farbmenge darstellt., also einfach die verschiedenen Farben )
Wobei diese Abbildung folgend für beliebige Kanten implizieren, muss dass (Wir also unterschiedliche Farben für zwei benachbarte Knoten haben!).

Chromatische Zahl Die chromatische Zahl ist dann die kleinste Zahl von Farben, die eine Knotenfärbung für ermöglicht! Mann nennt eine Knotenfärbung mit -Farben dann auch eine K-Färbung

Betrachten wir dafür folgenden Graphen. Seine chromatische Färbung wäre dann

Analog können wir auch eine Färbung von Kanten ermöglichen, die das gleiche Konzept verfolgt, dabei aber eben auf die Kanten bezogen ist / wird und nicht auf die Knoten direkt.

Kantenfärbung

[!Definition] Kantenfärbung

Sei wieder ein Graph.

Wie können wir jetzt eine Kantenfärbung beschreiben / definieren? was gibt der chromatische Index an? #card

Wenn wir eine Abbildung: (M ist die Farbmenge) konstruieren können, sodass dann für beliebige ( wenn sie adjazent, also aneinanderliegend sind) nicht die gleiche Farbe haben, also Dann sprechen wir von einer validen Kantenfärbung.

Dabei beschreibt jetzt der Chromatische Index die kleinste Zahl von Farben, um die Kantenfärbung des Graphen umsetzen zu können.

Visuell ist es also einfach analog zur Knotenfärbung, aber mit Kanten!

Beispiele:

Folgend einige Beispiele, für die man die chromatische Zahl gut bestimmen kann:

Für die Vollständige Graphen gilt etwa:

Für vollständige Graphen der Form gilt weiter: ( da man einfach die eine Seite und die andere Seite färben kann!)

[!Tip] chromatische Zahl bei Kreisen:

Betrachten wir zwei Kreise, und wollen die chromatische Zahl für sie finden:

Unter welcher Abhängigkeit ist die chromatische Zahl bestimmt/definiert? #card


Kantenfärbung

Haben wir zuvor schon in Kantengraphen betrachtet, jedoch können wir im Bezug auf die Färbung noch eine Aussage tätigen!

[!Important] Kantenfärbung

Konstruieren wir einen Kantengraphen (also einen solchen, der für jede Kante einen Knoten und für adjazente Kanten eine Kante zu den entsprechenden Knoten hat) dann können wir eine Aussage bezüglich der Färbung dieser Graphen treffen:

Was folgt für die Färbung aus dieser Konstruktion? #card

Da wir die Konstruktion 1-1 konvertieren und somit auch die Abhängigkeiten beibehalten, ist die Knotenfärbung von gleichbedeutend, wie die Knotenfärbung des Kantengraphen . Visuell etwa:

Den Chromatischen Index für die Kantenfärbung geben wir folgend mit : an!


Wir möchten ferner noch den Begriff eine Kantengraphen definieren,

Wir können aus dieser Definition und der Eigenschaft einer Planarität dann eine Folgerung formulieren, die etwas über die Färbbarkeit von planaren Graphen sagen kann.

Lemma (34) | 5-Färbung für planaren Graphen

[!Lemma] Lemma 34

Jeder planare Graph hat eine 5-Färbung

Wie kann diese Aussage bewiesen werden? #card

Wir wollen diese Aussage folgend beweisen:

Wir wissen, dass ein planarer Graph einen Knoten mit aufweist Korollar (13) Knotengrad avg <6

Mit dieser Betrachtung können wir einen Graphen mit dieser Eigenschaft betrachten und bearbeiten. Wir wollen hier dann diesen Knoten entfernen ( und den Rest betrachten), welcher den Grad aufweist.:

Sei also : dann: 0. lösche aus dem Graphen (wir werden ihn erst am Ende färben, wenn wir alle anderen gefärbt haben, da es einfacher ist, wir weniger Constraints in der Betrachtung haben)

  1. Berechne und Berechne rekursiv die 5-Färbung von (Also die Betrachtung des Graphen ohne den Knoten !)
  2. Am Ende wird die letzte übrige Farbe erhalten. - diese Farbe hat dann keiner der Nachbarn!

Visuell also:

Sei jetzt als nächster Fall: (Wir wissen hier, dass die Nachbarn nicht alle paarweise verbunden sein können, sonst wäre es ein und das ist dann nicht mehr planar!)

Also hat dann 2 Nachbarn, die keine gemeinsame Kante haben (also nicht verbunden sind) Wir gehen wie folgt vor:

  1. Lösche und verschmelze und erzeuge einen neuen Graphen
  2. Berechne jetzt die 5-Färbung füý wieder rekursiv.
  3. In bekommen diesselbe Farbe Dadurch folgt dann, dass anschließend wieder nur eine Farbe für übrig bleibt!

Visuell sieht dieser Fall folgend aus:

Wir haben so wieder reduziert und können dann rekursiv weiter nach den obigen beiden Fällen agieren, um den Graphen vollständig, richtig zu färben!

Alternativ können wir einen Greedy-Algorithmus betrachten, der genau diese Färbung ebenfalls implementiert:

Algorithmus zur Knotenfärbung

Die Grundlegende Idee: Wir geben den Farben Nummern und iterieren von einem Startpunkt durch den ganzen Graphen:

  • Ein neuer Knoten wird gefärbt, indem die Nachbarn angeschaut werden und dabei dann immer die kleinste, noch nicht benutzte Farbe, betrachtet wird.
  • Dieser wird anschließend nach und nach durchlaufen und ferner eine valide Färbung erzeugen ( auch wenn sie nicht optimal ist! )

[!Definition] Greed-Algorithmus zur Knotenfärbung

Wie ist der Algorithmus aufgebaut, wie durchläuft er den Graphen, Was ist eine Konsequenz/ein mögliches Problem? Wie viele Farben wird der Algorithmus in Abhängigkeit des Graphen maximal verwenden? #card

Folgend der Algorithmus: Sei hierfür wieder ein einfacher Graph und ferner ( eine direkte Nummerierung der Knoten, damit wir damit besser arbeiten können)

Wir iterieren jetzt den Graphen Schritt für Schritt:

  1. Färbe mit der Farbe 1 ( Initialfärbung)
  2. Wiederhole jetzt folgend mal - also für jeden Knoten
  3. Färbe mit der kleinstmöglichen Farbe (die Farben sind ja nummeriert!) und Berücksichtige dabei die Farben der benachbarten Knoten (also wenn zwei Knoten zu einem neuen führen, dann wird bei dem neuen geschaut, welche Farbe - minimal - noch nicht von den beiden Nachbarn genommen wurde und dann diese eingefärbt)

Problem: Der Algorithmus wird nicht garantiert die beste Färbung finden. Es kann sein, dass er etwa für die Graphen mehr als 2 Farben benötigt:

Weiterhin können wir hier sehen, dass der Algorithmus höchstens Farben benutzen wird (also den maximalen Grad im Graphen +1)

Wir können also einsehen, dass dieser Algorithmus nicht immer die beste Graphenfärbung bringen wird.

[!Attention] Nicht optimale Lösung

Der Algorithmus wird u.U. nicht die beste Einfärbung finden können. Erkennbar an folgendem Beispiel:

Aber diesen kann man auch besser einfärben, sodass weniger Farben verwendet werden:

siehe Minimale Knotengrade für mehr Informationen zu den Knotengraden!

[!Definition] Der Algorithmus wird dann immer maximal Farben benötigen, weil er eine neue Färbung abhängig von der Menge von Nachbarn bestimmt.

Einfach darzustellen mit einem vollständigen Graphen: Jeder Nachbar hat seine eigene Farbe (was von einem Ausgang gleich ) und weiterhin brauch auch der Knoten noch eine eigene Farbe! Also

Satz (35) | Obere Schranke der Farben

[!Satz] Obere Schranke für chromatische Zahl

Wir können die chromatische Zahl folglich oberst beschränken:

Wie kann das beschrieben werden, warum folgt das? #card

Wir beschreiben diese obere Schranke mit , wobei einen induzierten Untergraphen von beschreibt.

Wir wissen, also dass die Oberschranke der maximal-Grad des Graphen +1 ist!

Beweis Satz (35) Obere Schranke der Farben

Beweisidee: (Wir beweisen das dadurch, dass wir durch den naiven Algorithmus oben zeigen können, dass die Menge von Farben genau ist).

(Die Idee ist also den Graphen Schritt für Schritt zu reduzieren (immer einen Knoten zu entfernen) und dann beim angekommenen Minimal-Graphen die Farben zu verteilen und dann mit dieser Information die restlichen Knoten einfärben zu können ).

Beweis: Sei jetzt ( der maximale Minimalgraph aller Untergraphen) Dann gibt es in einen Knoten mit Grad (denn der Graph ist auch selbst in dem Untergraph und somit muss diese Instanz existieren).

Sei dann so ein entsprechender Knoten, den wir dann (wieder) als letztes Betrachten werden (wir bilden wieder die rekursive Färbung und machen diesen Knoten am Ende, weil es einfacher ist!)

Wir betrachten jetzt also (und färben rekursiv den Rest-Graphen gemäß des Algorithmus ein) und ferner sei ein induzierter Untergraph von .

Dieser hat einen Knoten von Grad

(jetzt argumentieren wir induktiv weiter).

Sei dann wieder ein induzierter Untergraph von (also wir machen den Graphen weiter kleiner und entfernen eine weitere Kante, die wir später einfärben werden). Dieser Graph hat dann einen Knoten vom Grad Das wiederholen wir jetzt weiter und weiter

Wenn der Greedy Algorithmus dann die Knoten in der Reihenfolge bekommt, braucht er dann Farben. und dadurch folgt dann (Aber das ist nur eine Schranke, wir können an Beispielen sehen, dass das nicht immer funktioniert)

Betrachten wir dazu etwa ein Beispiel: Im Beispiel hat das Dreieck einen min-Grad von 2 (und somit dann etnsprechend 2+1 =3 Farben, beim Rest aber nicht. Dadurch können wir nur urteilen, dass die Färbung maximal 2+1 Farben haben (es ist ja eine obere Schranke!).


[!Definition] Induzierter Untergraph

Mit einen induzierten Untergraphen meinen wir eine Teilmenge von Knoten eines Graphen - wobei dann auch die adjazenten Kanten zu den Knoten dazugehören:


Wir wissen, also dass die Oberschranke der maximal-Grad des Graphen +1 ist!

Dafür schauen wir alle Untergraphen (das inkludiert auch den Original-Graphen) Das Maxima aus den minimal-Graden aus den untergraphen

(induzierter Untergraph): #nachtragen


Folgerung aus Satz (35) Obere Schranke der Farben

[!Tip] Folgerung: Wenn nicht k-regulär ist, dann gilt: (regulär heißt alle Knoten haben Grad ; ist etwa regulär.)

Anders formuliert also: Wenn er für kein regulär ist, dann gilt die Aussage!! (Im Normalfall brauchen wir nicht viele Farben, das ist nur bei speziellen Fällen bei -regulären.)


Zusammenhang Clique und Färbung

siehe etwa Example ==Independent set –> clique== oder [[222.16_graph_centrality.md]] oder [3-SAT Clique](theo_Polynomzeit-Reduktion.md#3-SAT%20%20Clique)

[!Definition] Cliquenzahl

Wir wollen die Cliquezahl eines Graphen beschreiben und definieren.

Wann spricht man von einer Clique, was gibt die Cliquenzahl an? #card

Mit der Cliquen-Zahl beschreiben wir die Anzahl der Knoten innerhalb des größten vollständigen Untergraphen von .

Die Cliquenzahl wird definiert mit

Also wenn wir einen Graphen betrachten und dieser in einem Untergraph davon eine vollständige Struktur aufweist, dann gibt die Clique-Zahl an, wie viele Knoten dabei einbezogen werden.

Visuell etwa:

und ferner ist

ein weiteres Beispiel: mit :

[!Important] Beobachtung

Man kann in den obigen Beispielen erkennen, dass die chromatische Zahl immer der CLiquenzahl ist.

Hierbei können wir uns dann folgende Frage stellen und diese mit einer Konstruktion zeigen:

Konstruktion des Mycielski Graphen

Wir wollen ferner einen Graphen konstruieren: Hierbei sei: mit und (was also die Ungleichung einhält).

Wir erhalten den ersten Kreis

Wir erweitern folgend, wird gebaut mit:

  • Zu jedem Knoten erstellen wir einen Knoten und verbinden ihn mit allen Nachbarn von :

als letzter Schritt:

  • Wir fügen am Ende einen neuen Knoten ein - in die Mitte - und verbinden ihn mit allen

Womit wir hier jetzt resultieren:

[!Attention]

Was also die obige Annahme nicht verletzt!

Satz (37) | von Vizing

[!Definition] Satz 37

Sei ein Graph .

Was folgt jetzt im Bezug auf die Werte der chromatischen Zahl und dem maximalgrad des Graphen? #card

Wir können jetzt den Wert der chromatischen Zahl einschränken: