Compositional Abstractions for Search Factories
Search is essential for constraint programming. Search engines typically combine several features like state restoration for backtracking, best solution search, parallelism, or visualization. In current implementations like Mozart, however, these search engines are monolithic and hard-wired to one exploration strategy, severely complicating the implementation of new exploration strategies and preventing their reuse.
This paper presents the design of a search factory for Mozart, a program that enables the user to freely combine several orthogonal aspects of search, resulting in a search engine tailored to the user’s needs. The abstractions developed here support fully automatic recomputation with last alternative optimization. They present a clean interface, making the implementation of new exploration strategies simple. Conservative extensions of the abstractions are presented that support best solution search and parallel search as orthogonal modules. IOzSeF, the Interactive Oz Search Factory, implements these abstractions and is freely available for download.
KeywordsSearch Engine Tree Node Exploration Strategy Parallel Search Alternative Optimization
Unable to display preview. Download preview PDF.
- 1.The Alice Project, Homepage at the Programming Systems Lab, Universität des Saarlandes, Saarbrücken, Germany (2004), http://www.ps.uni-sb.de/alice
- 4.Gecode, the generic constraint development environment (2004), http://www.gecode.org
- 5.Harvey, W.D., Ginsberg, M.L.: Limited discrepancy search. In: Proceedings of the Fourteenth International Joint Conference on Artificial Intelligence (IJCAI 1995), Montréal, Québec, Canada, August 1995, vol. 1, pp. 607–615 (1995)Google Scholar
- 6.ILOG Inc., Mountain View, CA, USA. ILOG Solver 5.0 reference Manual (2000)Google Scholar
- 8.Korf., R.E.: Iterative-deepening–an optimal admissible tree search. In: Joshi, A. (ed.) Proceedings of the 9th International Joint Conference on Artificial Intelligence, Los Angeles, CA, August 1985, pp. 1034–1036. Morgan Kaufmann, San Francisco (1985)Google Scholar
- 9.Lustig, I.J., Puget, J.-F.: Program does not equal program: Constraint programming and its relationship to mathematical programming. White paper, ILOG Inc. (1999) Available at, http://www.ilog.com
- 10.Russel, S.J., Norvig, P.: Artificial Intelligence - A Modern Approach, 2nd edn. Prentice Hall, Englewood Cliffs (2003)Google Scholar
- 11.Schulte, C.: Oz explorer: A visual constraint programming tool. In: Naish, L. (ed.) Proceedings of the Fourteenth International Conference on Logic Programming, Leuven, Belgium, July 1997, pp. 286–300. The MIT Press, Cambridge (1997)Google Scholar
- 12.Schulte, C.: Comparing trailing and copying for constraint programming. In: Schreye, D.D. (ed.) Proceedings of the Sixteenth International Conference on Logic Programming, December 1999, pp. 275–289. The MIT Press, Cambridge (1999)Google Scholar