A cooperative solving method for controlling a plurality of constraint
problem solvers identifies complexity criteria, which provide direction
for selecting and for transitioning between constraint problem solvers.
The method includes randomly selecting a test point and determining
whether the test point satisfies a first complexity criterion. A first
constraint problem solver is selected, and an alternate test point is
identified by the first solver if the complexity criterion has not been
satisfied. If the alternate test point is a problem solution, it is
transmitted to the system. If the alternate test point is not a problem
solution or if the original randomly-selected test point satisfies the
complexity criterion, a second constraint solver selects a new test
point. If the new test point is a problem solution, it is transmitted to
the system; if the new test point is not a solution, the cooperative
solver is restarted.