Eine Karte wird durch einen Graphen repräsentiert. Ein Knoten steht für ein Land. Grenzen zwei Länder aneinander, sind die entsprechenden Knoten durch eine Kante verbunden.
Für unser Färbungsproblem müssen wir jetzt noch überlegen, wie wir die Information über den Färbungszustand der Karte geeignet in den Graphen einbauen.
Wir geben zunächst eine allgemeine Beschreibung an. Weiter unten wird diese an einem Beispiel verdeutlicht.
Codierung eines Knotens
|
Wir stellen einen Knoten als durchkreuzten Kreis dar und belegen die entstehenden Viertel im Uhrzeigersinn mit den Farben grün, blau, rot und gelb. |
Die Information über den Färbungszustand ist folgendermaßen codiert:
|
Das Land, das durch diesen Knoten repräsentiert wird, ist mit Farbe blau belegt. Erlaubt wären auch die Farben grün und rot. Nicht erlaubt ist die Farbe gelb. |
Codierung eines Knotens
Wir verdeutlichen die obige Beschreibung jetzt an einem Beispiel. Mit den Funktionstasten "weiter" und "zurück" können wir uns verschiedene Situationen ansehen.
Die so ergänzten Graphen sind ein geeignetes Modell, um unseren Algorithmus "Backtracking" in ein lauffähiges Computerprogramm umzusetzen: Die erlaubten Farben für einen Knoten sind die nicht grau belegten Viertel. Wird ein Knoten mit einer bestimmten Farbe koloriert, färben wir in allen mit ihm durch eine Kante verbundenen Knoten das entsprechende Viertel grau. Unfärbbare Knoten erkennen wir daran, dass alle vier Viertel grau sind. Machen wir die Färbung eines Knoten rückgängig, müssen wir auch die benachbarten Knoten wieder aktualisieren.
Auf der folgenden, letzten Seite wollen wir zum Abschluss beobachten, wie der Backtracking-Algorithmus zwei frühere Beispiele bearbeitet.