Skip to main content
Log in

SALSA: A Language for Search Algorithms

  • Published:
Constraints Aims and scope Submit manuscript

Abstract

Constraint Programming is recognized as an efficient technique for solving hard combinatorial optimization problems. However, it is best used in conjunction with other optimization paradigms such as local search, yielding hybrid algorithms with constraints. Such combinations lack a language supporting an elegant description and retaining the original declarativity of Constraint Logic Programming. We propose a language, SALSA, dedicated to specifying (local, global or hybrid) search algorithms. We illustrate its use on a few examples from combinatorial optimization for which we specify complex optimization procedures with a few simple lines of code of high abstraction level. We report preliminary experiments showing that such a language can be implemented on top of CP systems, yielding a powerful environment for combinatorial optimization.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  1. Apt, K. R., & Schaerf, A. (1997) Search and imperative programming. In ACM SIGPLAN-SIGACT Symposium on Programming Languages (POPL'97), Paris, France, pp. 67–79.

  2. Beldiceanu, N. (2000). Global constraints as graph properties on structured network of elementary constraints of the same type. Technical Report 12000-01. SICS.

  3. Balas, E., & Vazacopoulos, A. (1998). Guided local search with shifting bottleneck for job shop scheduling, Management Science, 44(2).

  4. Caseau, Y., & Laburthe, F. (1999). Effective forget and extend heuristics for scheduling problems. In Proceedings 3rd Metaheuristics International Conference.

  5. Caseau, Y., & Laburthe, F. (1999). Heuristics for large constrained vehicle routing problems. Journal of Heuristics, 5(3): 281–303.

    Google Scholar 

  6. Caseau, Y., Laburthe, F., & Silverstein, G. (1999). A meta-heuristics factory for vehicle routing problems. In Jaffar, J., ed., Proceedings of CP'99. LNCS 1713, Springer-Verlag, Berlin.

    Google Scholar 

  7. De Givry, S., & Saveant, P. (1999). Optimisation combinatoire en Temps Limité: Depth First Branch and Bound adaptatif. Fages, F., ed., Proceedings of JFPLC'99, Hermes Science Publication.

  8. Dell' Amico, M., & Trubian, M. (1993). Applying tabu-search to the job-shop scheduling problem. Annals of Operations Research, 41: 231–252.

    Google Scholar 

  9. Demeulemeester, E. (1992). Optimal algorithms for various classes of multiple resource constrained project scheduling problems, Ph.D. dissertation, Université Catholique de Louvain, Belgium.

    Google Scholar 

  10. LP shift and LP roster documentation, http://www.eurodecision.fr.

  11. Fourer, R., MacGay, D., & Kernighan, B. W. (1993). AMPL: A Modelling Language for Mathematical Programming, Brook/Cole Publishing Company.

  12. Gendreau, M., Hertz, A., & Laporte, G. (1994). A tabu search heuristic for the vehicle routing problem. Management Science, 40: 1276–1290.

    Google Scholar 

  13. Helm, R. (1987). Inductive and deductive control of logic programs. In Proceedings of ICPL 87, pages 488–512.

  14. Harvey, W. & Ginsberg, M. (1995). Limited discrepancy search. In Proceedings of the 14th IJCAI, pages 607–615. Morgan Kaufmann.

  15. Hanus, M., & Steiner, F. (1998). Controlling search in declarative programs. PLIP/ALP, pages 374–390.

  16. Jaffar, J., & Lassez, J.-L. (1987). Constraint logic programming. In Proceedings of the ACM Symposium on Principles of Programming Languages.

  17. Jourdan, J. (1995). Concurrence et coopération de modèles multiples dans les langages CLP et CC. Ph.D. thesis, University of Paris 7.

  18. Junker, U., Karish, S., Kohl, N., Vaaben, B., Fahle, T., & Sellmann, M. (1999). A framework for constraint programming based column generation. In Jaffar, J., ed., Proceedings of CP'99. LNCS 1713, Springer-Verlag.

  19. Kowalski, R. A. (1979). Algorithm = logic + control. GACM, 22(7): 424–436.

    Google Scholar 

  20. Lin, S., & Kernighan, B. W. (1973). An effective heuristic for the traveling salesman problem. Operations Research, 21.

  21. x, L., & Lemaître, M. (1998). Branch and bound algorithm selection by performance prediction. In Proceedings of AAAI'98, Madison, WI.

  22. Lloyd, J. W. (1987). Foundation of Logic Programming, Springer-Verlag.

  23. Martin, D., & Shmoys, P. (1996). A time-based approach to the jobshop problem. In Queyranne, M., ed., Proceedings of IPCO'5. LCNS 1084, Springer-Verlag.

  24. Michel, L., & Van Hentenryck, P. (1997). Localizer: a modeling language for local search. In Proceedings of CP'97. LNCS 1330, Springer-Verlag.

  25. Mladenovic, N., & Hansen, P. (1997). Variable neighborhood search. Computers in Operations Research, 24: 1097–1100.

    Google Scholar 

  26. Naish, L. (1984). Heterogeneous SLD resolution, Journal of Logic Programming, 1(4): 297–303.

    Google Scholar 

  27. Pearl, J. (1984). Heuristics: Intelligent Search Strategies for Computer Problem Solving, Addison-Wesley.

  28. Perron, L. (1999). Search procedures and parallelism in constraint programming. In Jaffar, J., ed., Proceedings of CP'99. LNCS 1713, Springer-Verlag.

  29. Pesant, G., & Gendreau, M. (1996). A view of local search in constraint programming. Proceedings of CP'96. pages 353–366. LNCS 1118, Springer-Verlag.

  30. Puget, J.-F. (1999). Constraint programming: a framework for mathematical programming. Invited Lecture, CP-AI-OR workshop, Ferrara.

  31. Russell, R. (1995). Hybrid heuristics for the vehicle routing problem with time windows. Transportation Science, 29(2).

  32. Schulte, C., & Smolka, G. (1994). Encapsulated search for higher-order concurrent constraint programming. In Proceedings of ILPS'94, pages 505–520. MIT Press.

  33. Schulte, C. (1997). Oz explorer: a visual constraint programming tool. In Naish, L., ed., Proceedings 14th ICLP, pages 286–300. MIT Press.

  34. Selman, B., Levesque, H., & Mitchell, D. (1992). A new method for solving hard satisfiability problems. In Proceedings of AAAI-92, pages 440–446.

  35. Shaw, P. (1998). Using constraint programming and local search methods to solve vehicle routing problems. In Proceedings of CP'98. LNCS 1520, Springer-Verlag.

  36. Simonis, H., & Aggoun, A. (1999). Search tree debugging. In Fages, F., ed., Proceedings of JFPLC'99. Hermes Science Publication.

  37. Tebboth, J., & Daniel, R. (1998). A tightly integrated modelling and optimisation library: a new framework for rapid algorithm development, Proceedings of Applied Mathematical Programming and Modeling, (APMOD’ 98), Limassol, Cyprus.

    Google Scholar 

  38. Van Hentenryck, P. (1999). The OPL Optimization Programming Language. MIT Press.

  39. Zilberstein, S. (1993). Operational rationality through compilation of anytime algorithms, Ph.D. dissertation, University of California at Berkeley.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Laburthe, F., Caseau, Y. SALSA: A Language for Search Algorithms. Constraints 7, 255–288 (2002). https://doi.org/10.1023/A:1020565317875

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1020565317875

Navigation