Prologの拡張・それ以外・非論理型言語のライブラリに分類して紹介します。 分類はあくまで便宜的なものです。(例えば関数論理型言語に分類される言語が Prolog的なシンタクスを持つかどうかで別々に分類されてしまったりしています。 またどこまでがProlog的かも明らかに程度の問題です。) 詳細な利用条件・機能については、各言語のサイトにて確認していただけますようお願いします。
また特定の応用分野に特化した制約ベースのシステムやライブラリについては、 応用分野をご覧ください。
言語(Prologの拡張)
The Ciao programming language
GNU Prolog
SICStus Prolog
30日の評価用ライセンスで評価が可能。
B-Prolog – Prologの拡張。
最近は更新されていないようです。アカデミックライセンスは無料。
言語(上記以外)・システム
Picat
B-Prologエンジンをベースに実装されたマルチパラダイム言語
MiniZinc and FlatZinc (NICTA)
制約充足問題のモデリング言語および制約処理系。このモデリング言語を使用した競技会 MiniZinc Challenge も行われています。
ECLiPSe
Minion
https://constraintmodelling.org
The Mozart Programming System(DFKI/SICS/ルーヴァンカトリック大学)
Oz言語の開発環境。
MiniCP
制約プログラミングのソルバがどのように動くのかを理解することを助けるために作られたシンプルな Java製のソルバ。
Curry
関数論理型言語。シンタックスは関数型言語Haskellのものがベース。インタプリタ・コンパイラとりまぜ、幾つかの実装が存在する。
https://www-ps.informatik.uni-kiel.de/currywiki/
ライブラリ
Choco
Java のライブラリ。
http://www.emn.fr/z-info/choco-solver/
Gecode
C++ のライブラリ。制約処理の研究では比較的広く利用されているようです。
JaCoP
Java のライブラリ。
OR-Tools (Google)
制約プログラミングの機能に加え、他のLPライブラリとのインタフェースも備える。Python, Java, .Netから使用可能。
https://developers.google.com/optimization
OptaPlanner
スケジューリング問題のための Java のライブラリ。
iZ-C
Cの制約ライブラリ
Cream (神戸大学)
Javaの制約プログラミングライブラリ。
http://bach.istc.kobe-u.ac.jp/cream/
Screamer
Lispの制約ライブラリ
http://nikodemus.github.io/screamer/
DragonBreath
An Optimization Engine based on Constraint Programming and Local Search – in AI-CENTER
http://www.ai-center.com/projects/dragonbreath/
EXCALIBUR
Adaptive Constraint-Based Agents in Artificial Environments – in AI-CENTER
http://www.ai-center.com/projects/excalibur/
FaCiLe
数型言語OCaml用の制約ライブラリ(ENAC:フランス)
http://facile.recherche.enac.fr/index.html.en
Cassowary Constraint Solving Toolkit(ワシントン大学)
https://constraints.cs.washington.edu/cassowary/
開発ツール
IBM CPLEX Optimizer
制約プログラミングに限らず、MIPを含む最適化のためのツールを包括的に用いるためのシステム。
https://www.ibm.com/jp-ja/analytics/cplex-optimizer
JSR-331
Java で制約処理系を扱うための標準仕様。
http://jcp.org/en/jsr/detail?id=331
特定領域向けのライブラリ・パッケージ
Strasheela
音楽理論を制約として用いる作曲システム
http://strasheela.sourceforge.net/
Sced
Constraint Based Scene Design – by Stephen Chenney
http://www.cs.wisc.edu/~schenney/sced/sced.html
Garnet (カーネギーメロン大学)
LISPでユーザインタフェースを作成するためのライブラリ。
http://www.cs.cmu.edu/afs/cs.cmu.edu/project/garnet/www/garnet-home.html
Amulet(カーネギーメロン大学
C++でユーザインタフェースを作成するためのライブラリ。
http://www.cs.cmu.edu/~amulet/
その他
Constraint Programming Solvers
CP2013 に合わせて作成された制約プログラミング用ソフトウェアのカタログ。
http://openjvm.jvmhost.net/CPSolvers/
CSPLib: a problem library for constraints
CSP(制約充足問題)の標準問題集
PROJECT SCHEDULING PROBLEM LIBRARY - PSPLIB
スケジューリング問題の標準問題集
http://www.om-db.wi.tum.de/psplib/
Global Constraint Catalog
グローバル制約のカタログ。制約の意味、各種処理系での呼び方、論文等へのリンクなど。
http://sofdem.github.io/gccat/
https://github.com/hakank/hakank
ブログ My Constraint Programming Blog の著者によるモデル集。