Färbungsprobleme

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

= Färbungsprobleme =

== Motivation ==

* Einfärben einer Karte mit so wenig Farben wie möglich, wobei zwei einander angrenzende Länder nie dieselbe Farbe haben dürfen

[[Bild:Bothe_deutschland_vier_farben.gif]]

== Grundlegende Definitionen ==

==== Farbe ====

    Ein Element $c$ heißt Farbe, wenn gilt: $c \in C$und $c$ ist von jedem beliebigen Element $c' \in C$unterscheidbar.

Aus mathematischer sowie programmiertechnischer Sicht ist es daher sinnvoll, Farben als Zahlen festzulegen. In graphischen Darstellungen sind hingegen
tatsächliche Farben wesentlich geeigneter. Theoretisch jedoch ist alles als Farbe zugelassen.

==== Färbung ====

Eine Färbung ist ein Zuordnung einer Farbe zu Elementen eines Graphen. Eine Knotenfärbung zum Beispiel ordnet jedem Knoten eine Farbe zu. Insgesamt
gibt es drei hauptsächliche Arten der Färbung eines Graphen:

* Knotenfärbung: jedem <b>Knoten</b> des Graphen wird eine Farbe zugeordnet
* Kantenfärbung: jeder <b>Kante</b> des Graphen wird eine Farbe zugeordnet
* Totalfärbung: sowohl jedem Knoten als auch jeder Kante wird eine Farbe zugeordnet

Desweiteren wird ausschließlich auf Knotenfärbung eingegangen. Definiert wird die Knotenfärbung (im folgenden nur Färbung) folgendermaßen:

    Wenn $G(V,E)$ ein ungerichteter Graph ohne Schleifen und Mehrfachkanten ist, dann ist $f: V \to C$ die <i>Färbung</i> dieses Graphen.

===== Übung =====
Sind die folgenden Graphen nach dieser Definition korrekt gefärbt?

[[Bild:Eichhorn_colored_graph_1]][[Bild:Eichhorn_colored_graph_2]][[Bild:Eichhorn_colored_graph_3]]

$C = \{$[[Bild:Bothe_red_32]]$, $[[Bild:Bothe_blue_32]]$, $[[Bild:Bothe_green_32]]$\}$

<popup name="Lösung">
* Graph 1: Ja
* Graph 2: Nein
* Graph 3: Ja
</popup>

Das Färben eines Graphen ist jedoch nicht beliebig möglich, wenn die Färbung <i>gültig</i> sein soll.

    Wenn je zwei beliebige benachbarte Knoten nicht dieselbe Farbe haben, dann heißt die dazugehörige Färbung <i>gültig</i>.
    $\forall v  \in V : \forall w \in \Gamma (v) : f(v) \ne f(w)$, wenn $\Gamma(v)$ die Menge aller Nachbarn von v bezeichnet.

Daraus ergibt sich auch die Notwendigkeit zu definieren, ob ich einen Graphen überhaupt gültig färben kann. Diese kann abgeleitet werden
aus dem Wissen über die Gültigkeit einer Färbung.

    Wenn es eine gültige Färbung $f$ gibt, die eine Anzahl $k$ an Farben verwendet, dann heißt der so gefärbte Graph $G$ <i>k-färbbar</i>.
    
===== Übung =====

Finden sie eine gültige Färbung für den nachstehenden Graphen. Schätzen sie auch, wie viele Farben sie mindestens brauchen werden.

[[Bild:Eichhorn_petersen_graph]]

<popup name="Lösung">
Eine Möglichkeit:
[[Bild:Eichhorn_petersen_colored]]
<br>
Für diesen Graphen existieren 120 Färbungen mit 3 Farben.
</popup>

==== Die chromatische Zahl ====

Für Anwendungsfälle tatsächlich relevant sind nun aber nur Färbungen, die mit möglichst wenig Farben auskommen. Die Mindestanzahl an benötigten Farben heißt chromatische
Zahl.

    Die <i>chromatische Zahl</i> $\chi (G)$ ist die kleinste natürliche Zahl, für die der Graph $G$ eine gültige Färbung mit ebensovielen Farben besitzt.


<!-- WICHTIG! gibt an, wie viele Farben ich mindestens brauche, um einen Graphen zu färben aka: jedem Knoten ne andere Farbe geben ist billig! (TODO: Erklärung, Hinweis auf NP-Vollständigkeit und natürlich Bebilderung)-->

=== NP-Vollständigkeit ===

<!-- Und unsere Zuhörer im Chor: "was is des nu wieder"? Also: (TODO: Definition mit verständlicher Erklärung, Bebilderung [es gibt schöne Sachen auf der Wikipedia dazu], definitiv auf Abgrenzung zu P - und NP-Klassen hinweisen) -->

=== Vier-Farben-Satz ===

<!-- Eigentlich selbsterklärend an diesem Punkt (TODO: Definition, kleiner Hinweis das der Beweis eigentlich kacke ist ;) [siehe Wikipedia], Belandkartung, ein Beispiel mit neu gewonnenem Wissen) -->

== chromatisches Polynom ==

<!-- klingt nach Mathe, ist auch Mathe (TODO: Definition mit Formel, mal rechnen lassen, KEINE BEBILDERUNG, es gibt nämlich keine!) -->