|
PROCEDURE Solve(start: BOOLEAN; state: State; move: Move; VAR solution: State) : BOOLEAN; VAR moves: SetOfMoves; BEGIN IF start THEN InitState(state); ELSE ApplyMove(state, move); END; IF Solved(state) THEN solution := state; RETURN TRUE END; moves := SetOfPossibleMoves(state); WHILE GetNextMove(moves, move) DO IF Solve(FALSE, state, move, solution) THEN RETURN TRUE END; END; RETURN FALSE END Solve; |
Auch wenn das Backtracking-Verfahren auf verschiedene
Problemfelder angewendet wird, so gleicht sich doch
die Struktur der rekursiven Prozedur, die zur Lösungssuche
verwendet wird.
| |
Viele Verfahren hängen jedoch davon ab, daß möglichst
frühzeitig Irrwege erkannt werden, um mit einem
vertretbaren Rechenzeitaufwand zur Lösung zu gelangen.
|
Copyright © 1999, 2004 Andreas F. Borchert, in HTML konvertiert am 28.01.2005 |