Claims
- 1. In a computerized problem solving system for solving constraint satisfaction problems or constrained optimization problems, a cooperative solving method for controlling a plurality of constraint problem solvers, said cooperative solving method comprising:
defining a problem to be solved, wherein said problem includes a desired solution quality, and a plurality of constraint problem solvers; identifying complexity criteria for each constraint problem solver, wherein said complexity criteria provide direction for selecting a constraint problem solver and for transitioning between constraint problem solvers, wherein each of the constraint problem solvers is parameterized by control parameters in the form of constraints, said control parameters including parameters of each individual solver and the condition for transitioning between different solvers; starting operation of the cooperative solver by performing random sampling to identify a test point; determining whether a region 1 complexity criterion has been satisfied, wherein said region 1 criterion comprises the constraint ratio at which the cooperative problem solver performs better than an individual problem solver; operating a selected first constraint problem solver, if said region 1 criterion has not been satisfied, comprising selecting a first test point, determining whether said first test point is a problem solution, and transmitting said first test point to the system if said first test point is a problem solution; operating a selected second constraint problem solver, if said first test point is not a problem solution, comprising selecting a second test point, determining whether said second test point is a problem solution, transmitting said second test point to the system if said second test point is a problem solution, and restarting the cooperative problem solver if said second test point is not a problem solution; and operating said selected second constraint problem solver, if said region 1 criterion has been satisfied, comprising selecting a second test point, determining whether said second test point is a problem solution, transmitting said second test point to the system if said second test point is a problem solution, and restarting the cooperative problem solver if said second test point is not a problem solution.
- 2. The cooperative solving method according to claim 1, further comprising:
if said first test point is not a problem solution, determining whether said first test point satisfies a region 3 complexity criterion, wherein said region 3 complexity criterion comprises the probability that the solver can find a solution when starting from said first test point; operating said selected second constraint problem solver, if said region 3 criterion has been satisfied, comprising selecting a second test point, determining whether said second test point is a problem solution, transmitting said second test point to the system if said second test point is a problem solution, and restarting the cooperative problem solver if said second test point is not a problem solution; and restarting the cooperative problem solver if said region 3 criterion has not been satisfied.
- 3. The cooperative solving method according to claim 1, further comprising:
determining whether a region 2 complexity criterion has been satisfied if said region 1 complexity criterion has not been satisfied, wherein said region 2 criterion comprises the phase transition ratio at which the cooperative solver transitions from a flat to an exponential complexity increase; operating a selected first constraint problem solver, if said region 2 criterion has been satisfied, comprising selecting a first test point, determining whether said first test point is a problem solution, and transmitting said first test point to the system if said first test point is a problem solution; operating a selected first constraint problem solver, if said region 2 criterion has not been satisfied, comprising selecting a third test point, determining whether said third test point is a problem solution, and transmitting said third test point to the system if said third test point is a problem solution; and operating a selected second constraint problem solver, if said first test point or said third test point is not a problem solution, comprising selecting a second test point, determining whether said second test point is a problem solution, transmitting said second test point to the system if said second test point is a problem solution, and restarting the cooperative problem solver if said second test point is not a problem solution.
- 4. The cooperative solving method according to claim 3, further comprising:
if said third test point is not a problem solution, determining whether said third test point satisfies said region 3 complexity criterion; operating said selected second constraint problem solver, if said region 3 criterion has been satisfied, comprising selecting a second test point, determining whether said second test point is a problem solution, transmitting said second test point to the system if said second test point is a problem solution, and restarting the cooperative problem solver if said second test point is not a problem solution; and restarting the cooperative problem solver if said region 3 criterion has not been satisfied.
- 5. The cooperative solving method according to claim 1, further comprising:
determining whether said region 1 or said region 2 complexity criterion has been satisfied; operating a selected first constraint problem solver, if said region 1 or said region 2 criterion has been satisfied, comprising selecting a first test point, determining whether said first test point is a problem solution, and transmitting said first test point to the system if said first test point is a problem solution; operating a selected first constraint problem solver, if said region 1 or said region 2 criterion has not been satisfied, comprising selecting a third test point, determining whether said third test point is a problem solution, and transmitting said third test point to the system if said third test point is a problem solution; if said third test point is not a problem solution, determining whether said third test point satisfies said region 3 complexity criterion; operating said selected second constraint problem solver, if said region 3 criterion has been satisfied or if said first test point is not a problem solution, comprising selecting a second test point, determining whether said second test point is a problem solution, transmitting said second test point to the system if said second test point is a problem solution, and restarting the cooperative problem solver if said second test point is not a problem solution; and restarting the cooperative problem solver if said region 3 criterion has not been satisfied.
- 6. The cooperative solving method according to claim 1, wherein said selected first constraint problem solver comprises a global solver.
- 7. The cooperative solving method according to claim 1, wherein said selected second constraint problem solver comprises a local solver.
- 8. The cooperative solving method according to claim 1, further comprising:
recording solution frequency data for solver 1; recording solution frequency data for solver 2; and setting threshold parameters for region calculation.
- 9. The cooperative solving method according to claim 8, further comprising setting said threshold parameters for region calculation off-line.
- 10. The cooperative solving method according to claim 9, further comprising:
learning said constraint ratio thresholds by comparing solvers in training data; learning said penalty function threshold by recording the success ratios of solver 2 operation after solver 1 operation; and learning the average number of restarts required for each threshold.
- 11. The cooperative solving method according to claim 8, further comprising setting said threshold parameters for region calculation on-line.
- 12. The cooperative solving method according to claim 11, further comprising:
decreasing the crossover ratio if a local solver finds a solution less often than expected; increasing the crossover ratio if a global solver followed by a local solver finds a solution more often than expected; decreasing the phase transition ratio if a global solver followed by a local solver finds a solution less often than expected; increasing the phase transition ratio if a global solver followed by a local solver finds a solution less often than expected; decreasing the penalty function threshold if a single run of a global solver followed by a local solver finds a solution less often than expected; and increasing the penalty function threshold if multiple runs of a global solver followed by a local solver finds a solution more often than expected.
- 13. The cooperative solving method according to claim 1, wherein said parameters comprise the range of the global solver.
- 14. The cooperative solving method according to claim 1, wherein said parameters comprise the iteration limits for the global and local solvers based on constraint ratio.
- 15. The cooperative solving method according to claim 1, wherein said parameters comprise the iteration limits for the global and local solvers based on penalty value.
- 16. The cooperative solving method according to claim 1, further comprising a time deadline by which a solution is to be produced.
- 17. A computerized cooperative problem solving system for solving constraint satisfaction problems or constrained optimization problems utilizing a plurality of constraint problem solvers, said cooperative solving system comprising:
means for defining a problem to be solved, wherein said problem includes a desired solution quality, and a plurality of constraint problem solvers; means for identifying complexity criteria for each constraint problem solver, wherein said complexity criteria provide direction for selecting a constraint problem solver and for transitioning between constraint problem solvers, wherein each of the constraint problem solvers is parameterized by control parameters in the form of constraints, said control parameters including parameters of each individual solver and the condition for transitioning between different solvers; means for starting operation of the cooperative solver by performing random sampling to identify a test point; means for determining whether a region 1 complexity criterion has been satisfied, wherein said region 1 criterion comprises the constraint ratio at which the cooperative problem solver performs better than an individual problem solver; means for operating a selected first constraint problem solver, if said region 1 criterion has not been satisfied, comprising selecting a first test point, determining whether said first test point is a problem solution, and transmitting said first test point to the system if said first test point is a problem solution; means for operating a selected second constraint problem solver, if said first test point is not a problem solution, comprising selecting a second test point, determining whether said second test point is a problem solution, transmitting said second test point to the system if said second test point is a problem solution, and restarting the cooperative problem solver if said second test point is not a problem solution; and means for operating said selected second constraint problem solver, if said region 1 criterion has been satisfied, comprising selecting a second test point, determining whether said second test point is a problem solution, transmitting said second test point to the system if said second test point is a problem solution, and restarting the cooperative problem solver if said second test point is not a problem solution.
- 18. The cooperative solving system according to claim 17, further comprising:
means for determining whether said first test point satisfies a region 3 complexity criterion, if said first test point is not a problem solution, wherein said region 3 complexity criterion comprises the probability that the solver can find a solution when starting from said first test point; means for operating said selected second constraint problem solver, if said region 3 criterion has been satisfied, comprising selecting a second test point, determining whether said second test point is a problem solution, transmitting said second test point to the system if said second test point is a problem solution, and restarting the cooperative problem solver if said second test point is not a problem solution; and means for restarting the cooperative problem solver if said region 3 criterion has not been satisfied.
- 19. The cooperative solving system according to claim 17, further comprising:
means for determining whether a region 2 complexity criterion has been satisfied if said region 1 complexity criterion has not been satisfied, wherein said region 2 criterion comprises the phase transition ratio at which the cooperative solver transitions from a flat to an exponential complexity increase; means for operating a selected first constraint problem solver, if said region 2 criterion has been satisfied, comprising selecting a first test point, determining whether said first test point is a problem solution, and transmitting said first test point to the system if said first test point is a problem solution; means for operating a selected first constraint problem solver, if said region 2 criterion has not been satisfied, comprising selecting a third test point, determining whether said third test point is a problem solution, and transmitting said third test point to the system if said third test point is a problem solution; and means for operating a selected second constraint problem solver, if said first test point or said third test point is not a problem solution, comprising selecting a second test point, determining whether said second test point is a problem solution, transmitting said second test point to the system if said second test point is a problem solution, and restarting the cooperative problem solver if said second test point is not a problem solution.
- 20. The cooperative solving system according to claim 19, further comprising:
means for determining whether said third test point satisfies said region 3 complexity criterion, if said third test point is not a problem solution; means for operating said selected second constraint problem solver, if said region 3 criterion has been satisfied, comprising selecting a second test point, determining whether said second test point is a problem solution, transmitting said second test point to the system if said second test point is a problem solution, and restarting the cooperative problem solver if said second test point is not a problem solution; and means for restarting the cooperative problem solver if said region 3 criterion has not been satisfied.
- 21. The cooperative solving system according to claim 17, further comprising:
means for determining whether said region 1 or said region 2 complexity criterion has been satisfied; means for operating a selected first constraint problem solver, if said region 1 or said region 2 criterion has been satisfied, comprising selecting a first test point, determining whether said first test point is a problem solution, and transmitting said first test point to the system if said first test point is a problem solution; means for operating a selected first constraint problem solver, if said region 1 or said region 2 criterion has not been satisfied, comprising selecting a third test point, determining whether said third test point is a problem solution, and transmitting said third test point to the system if said third test point is a problem solution; means for determining whether said third test point satisfies said region 3 complexity criterion, if said third test point is not a problem solution; means for operating said selected second constraint problem solver, if said region 3 criterion has been satisfied or if said first test point is not a problem solution, comprising selecting a second test point, determining whether said second test point is a problem solution, transmitting said second test point to the system if said second test point is a problem solution, and restarting the cooperative problem solver if said second test point is not a problem solution; and means for restarting the cooperative problem solver if said region 3 criterion has not been satisfied.
- 22. The cooperative solving system according to claim 17, wherein said selected first constraint problem solver comprises a global solver.
- 23. The cooperative solving system according to claim 17, wherein said selected second constraint problem solver comprises a local solver.
- 24. The cooperative solving system according to claim 17, further comprising:
means for recording solution frequency data for solver 1; means for recording solution frequency data for solver 2; and means for setting threshold parameters for region calculation.
- 25. The cooperative solving system according to claim 24, further comprising setting said threshold parameters for region calculation off-line.
- 26. The cooperative solving system according to claim 25, further comprising:
means for learning said constraint ratio thresholds by comparing solvers in training data; means for learning said penalty function threshold by recording the success ratios of solver 2 operation after solver 1 operation; and means for learning the average number of restarts required for each threshold.
- 27. The cooperative solving system according to claim 24, further comprising setting said threshold parameters for region calculation on-line.
- 28. The cooperative solving system according to claim 27, further comprising:
means for decreasing the crossover ratio if a local solver finds a solution less often than expected; means for increasing the crossover ratio if a global solver followed by a local solver finds a solution more often than expected; means for decreasing the phase transition ratio if a global solver followed by a local solver finds a solution less often than expected; means for increasing the phase transition ratio if a global solver followed by a local solver finds a solution less often than expected; means for decreasing the penalty function threshold if a single run of a global solver followed by a local solver finds a solution less often than expected; and means for increasing the penalty function threshold if multiple runs of a global solver followed by a local solver finds a solution more often than expected.
- 29. The cooperative solving system according to claim 17, further comprising a deadline by which a solution is to be produced.
- 30. An article of manufacture comprising a computer usable medium having computer readable program code embodied in said medium which, when said program code is executed by said computer causes said computer to perform method steps for solving constraint satisfaction problems or constrained optimization problems utilizing a plurality of constraint problem solvers, the method comprising:
defining a problem to be solved, wherein said problem includes a desired solution quality, and a plurality of constraint problem solvers; identifying complexity criteria for each constraint problem solver, wherein said complexity criteria provide direction for selecting a constraint problem solver and for transitioning between constraint problem solvers, wherein each of the constraint problem solvers is parameterized by control parameters in the form of constraints, said control parameters including parameters of each individual solver and the condition for transitioning between different solvers; starting operation of the cooperative solver by performing random sampling to identify a test point; determining whether a region 1 complexity criterion has been satisfied, wherein said region 1 criterion comprises the constraint ratio at which the cooperative problem solver performs better than an individual problem solver; operating a selected first constraint problem solver, if said region 1 criterion has not been satisfied, comprising selecting a first test point, determining whether said first test point is a problem solution, and transmitting said first test point to the system if said first test point is a problem solution; operating a selected second constraint problem solver, if said first test point is not a problem solution, comprising selecting a second test point, determining whether said second test point is a problem solution, transmitting said second test point to the system if said second test point is a problem solution, and restarting the cooperative problem solver if said second test point is not a problem solution; and operating said selected second constraint problem solver, if said region 1 criterion has been satisfied, comprising selecting a second test point, determining whether said second test point is a problem solution, transmitting said second test point to the system if said second test point is a problem solution, and restarting the cooperative problem solver if said second test point is not a problem solution.
Government Interests
[0001] This work was funded in part by the Defense Advanced Research Projects Agency (DARPA), Contract #F33615-01-C-1904. The U.S. Government may have certain rights in this subject matter.