Constraint Programming
For a couple of years I have been interested in (and fascinated by) Constraint Programming and Constraint Logic Programming (CLP). Here are some of the pages where I have collected information about the systems and models (programs).
My Constraint Programming Blog
My Constraint Programming Blog
where I blog about CP and CP related things, for example my own experiments, news about the systems I use, and other relevant things.
Common Constraint Programming Problem
Common Constraint Problems shows models that I have implemented in at least two CP systems.
G12 Zinc/Minizinc
My Minizinc page
G12 MiniZinc is a very high level Constraint Programming system, a simplified variant of Zinc.
My Zinc page
Zinc is a Constraint Programming system also by the G12 project, and is a superset of MiniZinc.
JaCoP
My JaCoP page
JaCoP is a Constraint Programming system in Java
JaCoP/Scala
My JaCoP/Scala page
JaCoP/Scala is a Scala interface to JaCoP Constraint Programming system.
Choco
My Choco page
Choco is a Constraint Programming system in Java
Comet
My Comet page
Comet is a system for solving problems using constraint-based local search, "classic" Constraint Programming, and linear programming/(mixed) integer programming.
Gecode
My Gecode page
Gecode is a Constraint Programming system in C++.
Gecode/R
My Gecode/R page
Gecode/R is a Ruby interface to the Constraint Programming system Gecode.
ECLiPSe CLP
My ECLiPSe page
ECLiPSe CLP is a Prolog based Constraint Logic Programming system (not to be confused with the IDE).
Essence'/Tailor/Saville Row
My Essence'/Tailor/Saville Row page
Tailor and Saville Row is Constraint Programming systems for generating code in different formats, e.g. Minion, Gecode, FlatZinc based on the CP language Essence'. Tailor has both GUI and command line versions.
SICStus Prolog
My SICStus Prolog page
SICStus Prolog is a Constraint Logic Programming system in Prolog.
Google or-tools/CP Solver
My Google or-tools/CP Solver page
Google or-tools/CP Solver is the Operations Research/Constraint Programming system by Google. I have implemented models in Python, Java, and C#.
OscaR (Scala in OR
My OscaR page
OscaR is a Scala based Constraint Programming/Operations Research system. (The CP system was former called Scampi.)
Numberjack
My Numberjack page
Numberjack is a Python based Constraint Programming system. Note that some of the models might not
work in the current version.
JSR-331
My JSR-331 page
JSR-331 is the official defined API for Constraint Programming in Java.
AIMMS+CP
My AIMMS+CP page
AIMMS is an commercial optimization system featuring a modeling GUI and much support for Operations Research. I have tested the CP extension.
B-Prolog
My B-Prolog page
B-Prolog is a Prolog based Constraint Logic Programming system with some extensions such as arrays and subscript notation and loops.
Choco 3
My Choco3 page
Choco version 3 (beta) is a Java based CP system. Not compatible with Choco version 2.
AMPL+CP
My AMPL page
AMPL is a high level mathematical programming system with support for CP.
Picat
My Picat page
Picat is a logic based system with support for CP, tabling and with support for imperative constructs such as loops, list comprehensions, assignments etc.
Z3
My Z3/Z3Py page
Z3/Z3Py is a theorem prover and supports arithmetic, fixed-size bit-vectors, extensional arrays, datatypes, uninterpreted functions, and quantifiers.
SWI-Prolog
My SWI-Prolog page
SWI-Prolog is a popular Prolog system with a lot of libraries/packages. It has support for clp(fd) with arbitrary precision.
OpenOffice Calc/Excel Solver
OpenOffice Calc/Excel Solver: Some Constraint Programming/linear programming examples using Solver in OpenOffice Calc/Excel.
Answer set programming
Strictly speaking Answer set programming is not Constraint Programming, but is has many simililarities.
Other things
At my (Swedish) blog hakank.blogg I sometimes writes about Constraint Programming. Those articles are collected in the category Constraint Programming.
Organizing/Co-organizing
At CP-2013 (Uppsala, Sweden), I:
Official blogger
At CP-2013 (Uppsala, Sweden), I was also the official conference blogger. See the Conferences category on my Contraint Programming Blog.
Presentations/talks
Here are my CP related presentations:
CP related papers
Here are some CP related papers where I have had some role, either as an (co-)author or just
an acknowledgement, reference or even mention.
Co-author
- Ricardo Soto, Hakan Kjellerstrand, Orlando Durán, Broderick Crawford, Eric Monfroy, Fernando ParedesCell formation in group technology using constraint programming and Boolean satisfiability (Expert Systems with Applications, Volume 39, Issue 13, 1 October 2012, Pages 11423–11427)
- Ricardo Soto, Hakan Kjellerstrand, Juan Gutiérrez, Alexis López, Broderick Crawford and Eric Monfroy: Solving Manufacturing Cell Design Problems Using Constraint Programming (Advanced Research in Applied Artificial Intelligence
Lecture Notes in Computer Science, 2012, Volume 7345/2012, 400-406, DOI: 10.1007/978-3-642-31087-4_42)
Book
I am the co-author of the book Zhou, Neng-Fa, Kjellerstrand, Håkan, Fruhman, Jonathan: Constraint Solving and Planning with Picat, 2015, Springer Verlag. Softcover: ISBN 978-3-319-25881-2, E-Book: ISBN 978-3-319-25883-6.
More info about the book:
Acknowledgement, references
In these papers where I've been acknowledged or mentioned (perhaps just in passim or mentioned by the use of some of my CP models):
Links/repositories/distributions
Here are some links where some of my CP pages has been linked or repositories/distributions which contains my models.
Still more other things: CP related answers at Or-Exchange, Stack Overflow, Stack Exchange etc
Here are some of my answers at programming forums such as Stack Overflow. For the Stack * family, I'm hakank.
Created by Hakan Kjellerstrand (hakank@gmail.com)
See also my homepage.