Abstract
Many search problems contain large amounts of redundancy in the search. In this paper we examine how to automatically exploit subproblem dominance, which arises when different partial assignments lead to subproblems that dominate (or are dominated by) other subproblems. Subproblem dominance is exploited by caching subproblems that have already been explored by the search, using keys that characterise the subproblems, and failing the search when the current subproblem is dominated by a subproblem already in the cache. In this paper we show how we can automatically and efficiently define keys for arbitrary constraint problems using constraint projection. We show how, for search problems where subproblem dominance arises, a constraint programming solver with this capability can solve these problems orders of magnitude faster than solvers without caching. The system is fully automatic, i.e., subproblem dominance is detected and exploited without any effort from the problem modeller.
Similar content being viewed by others
References
Aggoun, A., & Beldiceanu, N. (1993). Extending CHIP in order to solve complex scheduling and placement problems. Mathematical and Computer Modelling, 17(7), 57–73.
Baatar, D., Boland, N., Brand, S., & Stuckey, P. J. (2007). Minimum cardinality matrix decomposition into consecutive-ones matrices: CP and IP approaches. In Proc. of CPAIOR 2007 (pp. 1–15).
Bellman, R. (1957). Dynamic programming. Princeton: Princeton University Press.
Chu, G., & Stuckey, P. J. (2009). Minimizing the maximum number of open stacks by customer search. In Proceedings of CP 2009 (pp. 242–257).
Fahle, T., Schamberger, S., & Sellmann, M. (2001). Symmetry breaking. In Proceedings of CP 2001 (pp. 93–107).
Fukunaga, A., & Korf, R. (2007). Bin completion algorithms for multicontainer packing, knapsack, and covering problems. Journal of Artificial Intelligence Research (JAIR), 28, 393–429.
Garcia de la Banda, M., & Stuckey, P. J. (2007). Dynamic programming to minimize the maximum number of open stacks. INFORMS JOC, 19(4), 607–617.
Gent, I., Kelsey, T., Linton, S., McDonald, I., Miguel, I., & Smith, B. (2005). Conditional symmetry breaking. In Proceedings of CP 2005 (pp. 256–270).
Gent, I., Petrie, K., & Puget, J.-F. (2006). Symmetry in constraint programming. In Handbook of constraint programming (pp. 329–376). Amsterdam: Elsevier.
Hnich, B., Kiziltan, Z., & Walsh, T. (2002). Modelling a balanced academic curriculum problem. In Proceedings of CP-AI-OR-2002 (pp. 121–131).
Kitching, M., & Bacchus, F. (2007). Symmetric component caching. In Proceedings of IJCAI 2007 (pp. 118–124).
Maher, M. J. (2005). Herbrand constraint abduction. In 20th IEEE symposium on logic in computer science (LICS 2005) (pp. 397–406). Los Alamitos: IEEE Computer Society.
Marinescu, R., & Dechter, R. (2005). And/or branch-and-bound for graphical models. In Proceedings of IJCAI 2005 (pp. 224–229).
Nethercote, N., Stuckey, P. J., Becket, R., Brand, S., Duck, G. J., & Tack, G. (2007). Minizinc: Towards a standard CP modelling language. In Proceedings of CP 2007 (pp. 529–543).
Ohrimenko, O., Stuckey, P. J., & Codish, M. (2009). Propagation via lazy clause generation. Constraints, 14(3), 357–391.
Puchinger, J., & Stuckey, P. J. (2008). Automating branch-and-bound for dynamic programs. In Proceedings of PEPM 2008 (pp. 81–89).
Regin, J.-C. (1996). Generalized arc consistency for global cardinality constraint. In 14th national conference on artificial intelligence (AAAI-96) (pp. 209–215).
Schulte, C., Lagerkvist, M., & Tack, G. (2010). Gecode. http://www.gecode.org/. Accessed January 2010.
Smith, B., & Gent, I. (2005). Constraint modelling challenge report 2005. http://www.cs.st-andrews.ac.uk/~ipg/challenge/ModelChallenge05.pdf.
Smith, B. M. (2005). Caching search states in permutation problems. In Proceedings of CP 2005 (pp. 637–651).