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.

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