39

Looking for tips, tutorials, books and other resources to get started with Constraint Programming.

Larsenal
  • 49,878
  • 43
  • 152
  • 220
  • [OptaPlanner documentation](https://docs.optaplanner.org/latestFinal/optaplanner-docs/html_single/) contains an explanation on Local Search algorithms such as Tabu Search, Simulated Annealing and Late Acceptance, as well as other algorithms such as Branch and Bound. It also explains how to think about scoring (hard vs soft, weighting, positive vs negative, pareto, etc) – Geoffrey De Smet Feb 27 '17 at 13:24

9 Answers9

18

There is a lot of excellent material available on the web once you get in the groove, but the links below are (IMO) good starting points (the ones I used).

Programming with Constraints: An Introduction - (Course website)
Programming with Constraints: An Introduction - (Google book)
Online Guide to Constraint Programming

belwood
  • 3,320
  • 11
  • 38
  • 45
  • 1
    Added a link I found. Hope it's OK. Better to have a complete correct answer. – pek Sep 01 '09 at 19:28
9

Constraint Handling Rules (CHR) is a language to develop own (problem specific) constraint solvers. Check this:

There you find links to

  • WebCHR Online Demo (originally developed at LMU Munich, now beautified at Uni Ulm)
  • Several implementations for Prolog (naturally) and Haskell, as well as a (unfortunately unmaintained) prototype for Java (JCK).

There is also a JavaScript implementation of CHR: http://chrjs.net (https://github.com/fnogatz/CHR.js)

Erik Kaplun
  • 37,128
  • 15
  • 99
  • 111
mtp
  • 151
  • 2
  • 3
6

Maybe you can have a look at an introductory course thought at the Saarland University about constraint programming. They do not use mozart as dr_pepper said but Gecode. Gecode is a follow-up language of mozart, implemented partly by the same people.

Community
  • 1
  • 1
boutta
  • 24,189
  • 7
  • 34
  • 49
  • Gecode is actually not a language but a C++ framework. However, Gecode supports also MiniZinc, which is a modeling language. – tunnuz Sep 22 '15 at 05:07
  • The previous course is complete and with nice slides. For an faster result, overview: look at prolog ( the defacto language) tuts: http://www.doc.gold.ac.uk/~mas02gw/prolog_tutorial/prologpages/index.html#menu – Tinmarino Oct 05 '17 at 21:54
4

I recommend getting started with mozart. It is an open-source constraint programming language and the site has plenty of documentation that will get you started.

dr_pepper
  • 1,587
  • 13
  • 28
3

Here is another link to a course website on Constraint Programming.

Earlier the course used Mozart/Oz for the assingments but it has now been replaced by Gecode.

Ola Herrdahl
  • 4,216
  • 3
  • 29
  • 23
3

I suggest you look further in the following website on constraint programming maintaned by Håkan Kjellerstrand (a.k.a Hakank) at Hakank's Homepage

hakank
  • 6,629
  • 1
  • 17
  • 27
  • While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes. – T.S. Feb 09 '14 at 03:45
  • The question is asking for references. My reference answer is a link. Just look at all other answers. They are similar to mine because the question is asking for answers like this one. – decision maker Feb 09 '14 at 15:18
1

Microsoft's Solver Foundation has some easy-to-understand examples.

Larsenal
  • 49,878
  • 43
  • 152
  • 220
0

The handbook of constraint programming is well thought of.

In trivia, my supervisor from fourth year university (which was a while ago now) is referenced there. :)

Jon DellOro
  • 533
  • 5
  • 9
0

If you're a Java programmer, I recommend using Cream: Class Library for Constraint Programming

axelclk
  • 950
  • 9
  • 28