Frage 1
Welche Probleme können mit einem Backtracking-Algorithmus gelöst werden?
Problemklassen für Backtracking
Es gibt drei wesentliche Merkmale für die Anwendbarkeit eines Backtracking-Algorithmus:
Illustration am Beispiel des Vierfarbenproblems
Zu Merkmal 1. "Die Lösung kann schrittweise durch eine Folge von Entscheidungen aufgebaut werden."
Beim Vierfarbenproblem geben wir dafür eine Reihenfolge für die Länder vor. Dann lautet eine Entscheidung
so:
|
|
|
|
|
|
|
"Färbe Land |
|
|
"Färbe Land |
|
|
"Färbe Land |
|
|
|
|
| grün, blau, rot, gelb. |
| 0 | = | grün |
| 1 | = | blau |
| 2 | = | rot |
| 3 | = | gelb |
Beispiel:
|
Algorithmus
i=1
1. Solange noch keine Lösung gefunden, d.h. i <= n
2. {Kommentar:
ist die bisher
erzeugte Folge von Entscheidungen.}
betrachte Position i der Entscheidungsfolge.
3. Wenn noch nicht alle Möglichkeiten durchprobiert
dann
wähle die nächste mögliche Entscheidung
.
Wenn
nicht als falsch erkennbar ist
dann
i=i+1
gehe zu 1.
sonst
gehe zu 3.
sonst
nimm Entscheidung
zurück
i=i-1
gehe zu 2.