|
PROCEDURE Solve(start: BOOLEAN; state: State; move: Move; VAR solution: State) : BOOLEAN; VAR moves: SET OF Move; BEGIN IF start THEN InitState(state); ELSE ApplyMove(state, move); END; IF Solved(state) THEN solution := state; RETURN TRUE END; moves := SetOfPossibleMoves(state); FOREACH move IN moves 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 Andreas Borchert, in HTML konvertiert am 29.06.1999 |