CPMpy/cpmpy
Constraint Programming and Modeling library in Python, based on numpy, with direct solver access.
解決できる問題
CPMpyは、スケジューリング、リソース割り当て、最適化など、ブール変数や整数変数を含む組み合わせ問題に取り組みます。高レベルな制約を提供し、ソルバーがネイティブにサポートしていない場合は自動的に分解されるため、複雑な問題を簡単に記述できます。
仕組み
意思決定変数をnumpy配列として定義し、制約と目的関数を追加して solve() を呼び出すだけです。CPMpyはモデルを選択したソルバー(CP、ILP、SMT、PB、SATなど)に変換し、異なるソルバーを比較することも可能です。インクリメンタルな求解、仮定変数、求解後の制約追加や目的関数の更新をサポートしています。
対象ユーザー
科学的なPythonエコシステム(pandas、plotly、Jupyter)と統合された、軽量でドキュメントが充実したライブラリを必要とする、制約プログラミング、オペレーションズ・リサーチ、機械学習の研究者や実務家向けです。産業界や学術研究でも使用されています。
ハイライト
- ソルバー非依存:CP、ILP、SMT、PB、SATソルバーに対応
- 機械学習フレンドリー:意思決定変数はベクトル演算が可能なnumpy配列
- インクリメンタルな求解:仮定変数、制約の追加、目的関数の更新
- 大規模なテストスイートとファジングテストによる徹底的な検証
- パラメータチューニング、デバッグ、説明生成、XCSP3ベンチマークのためのツール
- オープンソース (Apache 2.0) で、活発なコミュニティがあり貢献を歓迎
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト