From:

Subject:

Program details: the program starts with phase1 allowing for succesively

1, 2 etc. until a maximal number of moves. As soon as phase1 hits a

solution phase2 is called, again with a maximum number of moves starting

at 1.

I don't remember from the earlier description; are the searches being done

depth-first or breadth-first? If breadth-first, then there is no reason to

put an upper limit on the number of moves for finding a phase1 solution,

since the algorithm HAS to solve phase1 in order to find an overall solution.

Once you have an overall solution, of course, the length of phase1+phase2

solution can be used as an upper bound on subsequent phase1 solutions.

Also, do you reduce the "maximum number of moves" for phase2 based on

solutions already found? For instance, once you have found a combined

phase1+phase2 solution in 20 moves, then if you find an alternative phase1

solution in 14 moves there is no reason to look deeper than 5 moves in

phase2 (or 6 if you want to find all solutions that tie for minimum length).

-- Don.