Constraint Guide - Systems

Guide to Constraint Programming

© Roman Barták, 1998

Contents

Prev

Up

Next

Systems

[pioneers] [environments] [solvers] [applications]

This page contains a growing list of systems and programming languages exploiting the constraint technology. I expect to extend this list successively and to add some description, references and supported platforms to each system.

Contributions to this page are very welcomed. I do not maintain this web page anymore, but if you have a new link to repair the link that does not work, please send it to me.

If you are looking for empirical comparison of some constraint solvers, read the following papers:

  • Antonio J. Fernández, Patricia M. Hill: A Comparative Study of Eight Constraint Programming Languages Over the Boolean and Finite Domains, Constraints Journal 5 (3): 275-301, Kluwer, July 2000. [Springer Link]


Pioneering Systems

ALICE

a pioneering system for CSPs modeling and solving

J.L. Lauriere

 

J.L. Lauriere: ALICE: A Language and a Program for Solving Combinatorial Problems, in Artificial Intelligence, 10:29-127, 1978

CLP(R)

a pioneering constraint logic programming system

Joxan Jaffar

 

J. Jaffar, S. Michaylov, P. Stuckey & R. Yap: The CLP(R) language and system, in ACM Transactions on Programming Languages and Systems 14 (3): 339-395, 1992

Sketchpad

a pioneering constraint system (early 1960s)

Ivan Sutherland

interactive drawing system, allowing the user to build geometric objects from language primitives and certain constraints

I. Sutherland: Sketchpad: a man-machine graphical communication system, in: Proceedings of the IFIP Spring Joint Conference, 1963

ThingLab

successor of Sketchpad

Alan Borning

interactive drawing system, included a facility for compiling constraint satisfaction plans

A. Borning: The programming language aspects of ThingLab, a constraint oriented simulation laboratory, in ACM Transaction on Programming Languages and Systems 3, pp. 353-387, 1981


  Programming Environments

BackTalk

an object-oriented library for constraint satisfaction implemented in Smalltalk

Pierre Roy, François Pachet, Anne Liret

http://www-poleia.lip6.fr/~roy/BackTalk.html

B Prolog

a compact and nearly complete CLP system that runs Prolog and CLP(FD) programs

Neng-Fa Zhou

http://www.probp.com/

CHIP

Constraint Handling in Prolog
a complete environment for the design and development of decision support systems

Cosytec

http://www.cosytec.com/production_scheduling/chip/optimization_product_chip.htm

CHR

Constraint Handling Rules (CHR) are a high-level language extension to write constraint solvers

Thom Fruehwirth

http://www.cs.kuleuven.ac.be/~dtai/projects/CHR/

clp(FD,S)

a generic language for semiring-based constraint solving

Yan Georget

http://contraintes.inria.fr/~georget/software/clp_fds/clp_fds.html

Choco

a java library for constraint satisfaction problems (CSP), constraint programming (CP) and explanation-based constraint solving (e-CP)

François Laburthe,Narendra Jussien

http://choco.sourceforge.net/

Comet

an Object Oriented Programming Language for Constraint-Based Local Search (MacOS X and Linux)

Pascal Van Hentenryck, Laurent Michel

http://www.comet-online.org/

Cream

a class library helping Java programmers to develop intelligent programs requiring constraint satisfaction or optimization on finite domains.

Naoyuki Tamura

http://bach.istc.kobe-u.ac.jp/cream/

The CSP Library

a basic CSP solver written in C++

Tudor Hulubei

http://www.hulubei.net/tudor/csp/

Disolver

a distributed constraint solver written as a C++ library

Youssef Hamadi

http://research.microsoft.com/~youssefh/DisolverWeb/Disolver.html

ECLiPSe

ECRC Logic Programming System, now open source

Crosscore

http://www.eclipse-clp.org/

FaCiLe

a constraint programming library over integer finite domain written in OCaml.

Pascal Brisset & Nicolas Barnier

http://www.recherche.enac.fr/opti/facile/

Gecode

an open, free, portable, accessible, and efficient environment for developing constraint-based systems and applications

Christian Schulte

http://www.gecode.org/

GNU Prolog

a free Prolog compiler with constraint solving over finite domains

Daniel Diaz

http://pauillac.inria.fr/~diaz/gnu-prolog/

G12

a software platform for solving large scale industrial combinatorial optimisation problems

University of Melbourne
Monash University and others

http://www.g12.cs.mu.oz.au/

HAL

constraint programming language that combines ideas from Mercury and constraint logic programming

University of Melbourne
Monash University

http://www.csse.monash.edu.au/~mbanda/hal/

HySAT

HySAT is a satisfiability checker for Boolean combinations of arithmetic constraints over real- and integer-valued variables which can also be used as a bounded model checker for hybrid (discrete-continuous) systems

Universität Oldenburg

http://hysat.informatik.uni-oldenburg.de/

ILOG-Solver

a library of constraint algorithms designed to work with C++ programs

ILOG

http://www.ilog.com/products/solver/

IF/Prolog

PROLOG implementation with constraint technology package

IF Computer

http://www.ifcomputer.com/IFProlog/home_en.html

JaCoP

Java Constraint Progamming

Radoslaw Szymanek, Krzysztof Kuchcinski

http://www.jacop.eu/

JCK

Java Constraint Kit based on Constraint Handling Rules

CWG at LMU Munchen

http://www.pms.informatik.uni-muenchen.de/software/jack/

JCL

Java Constraint Library

Marc Torrens

http://liawww.epfl.ch/~torrens/JCL/

Koalog Constraint Solver

a constraint solver written in Java

Koalog

http://www.koalog.com/php/jcs.php

MINERVA

ISO-PROLOG implementation in Java with interface for writing constraint solvers

IF Computer

http://www.ifcomputer.com/Products/MINERVA/home_en.html

Minion

fast black-box constraint solver

Gent, Jefferson, Miguel, Petrie

http://minion.sourceforge.net/

Mozart (former Oz)

concurrent constraint programming framework

DFKI

http://www.mozart-oz.org/

NSolver

NSolver is a programming language extension for ECMA CLS-compliant languages. It adds constraint programming capabilities to CLS-compliant languages, such as MS .NET languages - J#, C#, C++.NET, VB.NET, JScript.NET.

Andy Chun

http://www.cs.cityu.edu.hk/~hwchun/nsolver/

Prolog IV

Prolog system with integrated non-linear, Boolean and list constraint solver

PrologIA

http://prologianet.univ-mrs.fr/Us/prolog4.html

Python Constraints

a constraint satisfaction problem solver written in python

Logilab

http://www.logilab.org/projects/constraint

SICStus Prolog

Prolog development system with integrated finite domain constraint solver

SICS

http://www.sics.se/isl/sicstus.html

Screamer

an extension of Common Lisp that provides a comprehensive constraint programming language

Jeffrey M. Siskind
David A. McAllester

http://www.cis.upenn.edu/~screamer-tools/home.html

TOY

constraint functional logic system, designed to support the main declarative programming styles and their combination

Fernando Sáenz Pérez

http://www.fdi.ucm.es/profesor/fernan/TOY/

 


  Constraint Solvers

Artelys Kalis

an extensible constraint programming framework enabling the user to define its own constraints and search heuristics , available as a C++ library.

Artelys

http://www.artelys.com/eng/products/kalis/

Cassowary

an incremental constraint solving toolkit for solving hierarchical systems of linear equalities and inequalities

Greg J. Badros
Alan Borning

http://www.cs.washington.edu/research/constraints/cassowary/

DeltaBlue

an efficient, incremental local propagation constraint solver for solving hierarchical systems of linear equalities

University of Washington

http://www.cs.washington.edu/research/constraints/deltablue/

Interval Solver for Microsoft Excel

a commercial implementation of interval constraints on the spreadsheet platform

Delisoft

http://www.delisoft.com/ExcelProducts/IntervalSolver/

UniCalc

a solver of algebraic nonlinear equations and inequalities

RRIAI

http://www.rriai.org.ru/UniCalc/


  Applications exploiting constraint technology

Specman

A tool for hardware verification, It generates inputs based on a chip's
specification , injects them to the (simulated) chip and verifies the chip's
states and outputs.

Verisity

www.verisity.com

[pioneers] [environments] [solvers] [applications]

Contents

Prev

Up

Next

Designed and maintained by Roman Barták