ツール

Prologの拡張・それ以外・非論理型言語のライブラリに分類して紹介します。 分類はあくまで便宜的なものです。(例えば関数論理型言語に分類される言語が Prolog的なシンタクスを持つかどうかで別々に分類されてしまったりしています。 またどこまでがProlog的かも明らかに程度の問題です。)
その他の情報として、扱っている制約の種類・現在も開発・保守が継続されているか、商用か、有償か などの情報も付けていますが、詳細な条件については、各言語のサイトにて確認 していただけますようお願いします。
また特定の応用分野に特化した制約ベースのシステムやライブラリについては、 応用分野をご覧ください。

言語(Prologの拡張)

  • Mercury Project
  • B-Prolog -- Prologの拡張。
  • Ciao Prolog(マドリッド工科大学)
  • GNU Prolog
  • SICStus Prolog
  • AKL, AGENTS, Penny (SICS) -- AKLは並行(コンカレント)制約プログラミング言語であり、AGENTSシステムの核をなす。PennyはAGENTSの並列(パラレル)版。
  • Gödel -- 論理型言語、制約解消系は仕様には含まれているが、実装はされていない?

言語(上記以外)・システム

  • Picat -- B-Prologエンジンをベースに実装されたマルチパラダイム言語
  • MiniZinc and FlatZinc (NICTA)
    制約充足問題のモデリング言語および制約処理系。このモデリング言語を使用した競技会 MiniZinc Challenge も行われています。
  • ECLiPSe
  • Minion
  • The Mozart Programming System(DFKI/SICS/ルーヴァンカトリック大学)-- Oz言語の開発環境。
  • JSR-331 -- Java で制約処理系を扱うための標準仕様。
  • Curry -- 関数論理型言語。シンタックスは関数型言語Haskellのものがベース。インタプリタ・コンパイラとりまぜ、幾つかの実装が存在する。
  • HECS(HEterogenous Constraint Solver) -- JAVAによる異種協調制約解消システム。IPA未踏ソフトウェア創造事業平成14,15年度採択テーマとして開発された。
  • ALF System
  • The Elf Meta-Language

ライブラリ

  • Choco -- Java のライブラリ
  • Gecode -- C++ のライブラリ。制約処理の研究では比較的広く利用されているようです。
  • JaCoP -- Java のライブラリ
  • or-tools (Google) -- 制約プログラミングの機能に加え、他のLPライブラリとのインタフェースも備える。Python, Java, .Netから使用可能
  • OptaPlanner -- スケジューリング問題のための Java のライブラリ。
  • Opturion CPX (NICTA) -- 商用ソルバライブラリ
  • Numberjack -- Python のライブラリ。CP, SAT, MIPへのインタフェースを提供
  • iZ-C (NTTデータセキスイシステムズ) --  Cの制約ライブラリ。ユーザ登録でダウンロード可。
  • Cream (神戸大学) -- Javaの制約プログラミングライブラリ。
  • Screamer -- Lispの制約ライブラリ
  • DragonBreath: An Optimization Engine based on Constraint Programming and Local Search -- in AI-CENTER
  • EXCALIBUR: Adaptive Constraint-Based Agents in Artificial Environments -- in AI-CENTER
  • FaCiLe:関数型言語OCaml用の制約ライブラリ(ENAC:フランス)
  • JACK -- Java用の制約プログラミング・探索用のライブラリ
  • Cassowary Constraint Solving Toolkit(ワシントン大学)

開発ツール

  • IBM ILOG Optimizer -- 制約プログラミングに限らず、MIPを含む最適化のためのツールを包括的に用いるためのシステム。

特定領域向けのライブラリ・パッケージ

  • Strasheela -- 音楽理論を制約として用いる作曲システム
  • Sced: Constraint Based Scene Design -- by Stephen Chenney
  • Garnet (カーネギーメロン大学)-- LISPでユーザインタフェースを作成するためのライブラリ。
  • Amulet(カーネギーメロン大学)-- C++でユーザインタフェースを作成するためのライブラリ。

その他