Hi Shlomi,
OK, here's what I see wrong with that analysis.
If, starting with position A, following the first appearance of position
B in the search, a position C occurs, and this position C is one which has
occurred in the path from A to B, then the algorithm should abandon that
path. If D is the position immediatly prior to this repeat appearance of C,
it should revert to position D, trying another previously untried move from
position D. Eventually, it could well return back to position B for trying
another previously untried move from position B. If no path from position B
leads to a solution, it will eventually revert to position C and try another
previouly untried move from position C.
Actually, that seems to be exactly what your code does. No position
which matches a previously-found position is pursued any further. In fact,
that seems to be a fundamental behavior required in any solver.
Best regards, -----------------Adrian
Received on Thu Jun 27 2002 - 02:49:46 IDT