Skip to main content



Local search is a traditional technique to solve combinatorial search problems which has raised much interest in recent years. The design and implementation of local search algorithms is not an easy task in general and may require considerable experimentation and programming effort. However, contrary to global search, little support is available to assist the design and implementation of local search algorithms. This paper describes the design and implementation of Localizer, a modeling language for implementing local search algorithms. Localizer makes it possible to express local search algorithms in a notation close to their informal descriptions in scientific papers. Experimental results on Boolean satisfiability, graph coloring, graph partitioning, and job-shop scheduling show the feasibility of the approach.

This is a preview of subscription content, access via your institution.


  1. Bisschop, J., and Meeraus, A. (1982). On the Development of a General Algebraic Modeling System in a Strategic Planning Environment. Mathematical Programming Study, 20:1-29.

    Google Scholar 

  2. Borning, A. (1981). The Programming Language Aspects of Thing-Lab, a Constraint-Oriented Simulation Laboratory. ACM Transaction on Programming Languages and Systems, 3(4):353-387.

    Google Scholar 

  3. Caseau, Y., and Laburthe. F. (1995). Claire: A Brief Overview. Technical report, LIENS, École normale supérieure.

  4. Colmerauer, A. (1990). An Introduction to Prolog III. Commun. ACM, 28(4):412-418.

    Google Scholar 

  5. Dell'Amico, M., and Trubian, M. (1993). Applying Tabu Search to the Job-Shop Scheduling Problem. Annals of Operations Research, 41:231-252.

    Google Scholar 

  6. Dincbas, M., Van Hentenryck, P., Simonis, H., Aggoun, A., Graf, T., and Berthier, F. (1988). The Constraint Logic Programming Language CHIP. In Proceedings of the International Conference on Fifth Generation Computer Systems, Tokyo, Japan, December.

  7. Fourer, R., Gay, D., and Kernighan, B. W. (1993). AMPL: A Modeling Language for Mathematical Programming. The Scientific Press, San Francisco, CA.

    Google Scholar 

  8. Henz, M., Smolka, G., and W¨urtz, J. (1993). Oz-A Programming Language for Multi-Agent Systems. In Ruzena Bajcsy, editor, 13th International Joint Conference on Artificial Intelligence, volume 1, pages 404-409, Chambéry, France, 30 August-3 September. Morgan Kaufmann Publishers.

    Google Scholar 

  9. Jaffar, J., Michaylov, S., Stuckey, P. J., and Yap, R. (1992). The CLP(ℜ) Language and System. ACM Trans. on Programming Languages and Systems, 14(3):339-395.

    Google Scholar 

  10. Johnson, D., Aragon, C., McGeoch, L., and Schevon, C. (1989). Optimization by Simulated Annealing: An Experimental Evaluation; Part I, Graph Partitioning. Operations Research, 37(6):865-893.

    Google Scholar 

  11. Johnson, D., Aragon, C., McGeoch, L., and Schevon, C. (1991). Optimization by Simulated Annealing: An Experimental Evaluation; Part II, Graph Coloring and Number Partitioning. Operations Research, 39(3):378-406.

    Google Scholar 

  12. Michel, L. (1998). Localizer: A Modeling Language for Local Search. PhD thesis, Brown University, October.

  13. Michel, L., and Van Hentenryck, P. (1997). Localizer: A Modeling Language for Local Search. In Second International Conference on Principles and Practice of Constraint Programming (CP'97), Linz, Austria, October.

  14. Paige, R. (1981). Formal Differentiation. PhD thesis, Dept. of Computer Science, New York University.

  15. Paige, R. (1986). Programming with Invariants. IEEE Software, January:56-69.

  16. Paige, R., and Koenig, S. (1982). Finite Differencing of Computable Expressions. ACM Transactions on Programming Languages and Systems, 4(3):402-454.

    Google Scholar 

  17. Papadimitriou, C. H., and Steiglitz, K. (1982). Combinatorial Optimization: Algorithms and Complexity. Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  18. Pesant, G., Gendreau, M., and Rousseau, J. M. (1997). Genius-cp: A Generic Single-Vehicle Routing Algorithm. In Gert Smolka, editor, Principle and Practice of Constraint Programming-CP97, Lecture Notes in Computer Science, pages 420-434. Springer, October.

  19. Puget, J. F. (1994). A C++ Implementation of clp. In Proceedings of SPICIS, November.

  20. Ramalingan, G., and Reps, T. (1991). On the Computational Complexity of Incremental Algorithms. Technical report, University of Wisconsin-Madison.

  21. Schrage, L. E. (1997). Optimization Modeling with LINDO. Duxbury, 5th edition, February.

  22. Selman, B., Levesque, H., and Mitchell, D. (1992). A New Method for Solving Hard Satisfiability Problems. In AAAI-92, pages 440-446.

  23. Stuckey, P., and Tam, V. (1996). Models for Using Stochastic Constraint Solvers in Constraint Logic Programming. In PLILP-96, Aachen, August.

  24. Sutherland, I. E. (1963). SKETCHPAD: A Man-Machine Graphical Communication System. MIT Lincoln Labs, Cambridge, MA

    Google Scholar 

  25. Van Hentenryck, P. (1999). OPL: The Optimization Programming Language. The MIT Press, Cambridge, Mass.

    Google Scholar 

  26. Van Hentenryck, P., Michel, L., and Deville, Y. (1997). Numerica: a Modeling Language for Global Optimization. The MIT Press, Cambridge, Mass.

    Google Scholar 

  27. Yellin, D. M., and Strom, R. E. (1988). INC: A Language for Incremental Computations. In Proceedings of the ACM SIGPLAN'88 Conference on Programming Language Design and Implementation (PLDI), pages 115-124, Atlanta, Georgia, 22-24 June.

Download references

Author information

Authors and Affiliations


Rights and permissions

Reprints and Permissions

About this article

Cite this article

Michel, L., Hentenryck, P.V. Localizer. Constraints 5, 43–84 (2000).

Download citation

  • Issue Date:

  • DOI:

  • modeling language
  • local search
  • incremental algorithms