精度を保ちながら演算子数を減らしてONNXモデルを最適化し、推論の高速化を目指すPythonツールキット。
d-krupke/cpsat-primer
Google OR-ToolsのCP-SATソルバーを使って組合せ最適化問題のモデリングと解法を学べる、無料で公開された書籍形式の入門書です。
- スター
- 834
- フォーク
- 69
- 未解決の Issue
- 9
- 最終コミット
- 2 か月前
これは何?
CP-SAT Primerは、制約プログラミングとSATに基づく組合せ最適化ソルバーであるGoogle OR-ToolsのCP-SATソルバーを学ぶための、無料の書籍形式のチュートリアルです。コンピューターサイエンスの学生や開発者を対象に、全編を通してPythonの例を掲載し、CP-SATと混合整数計画(MIP)ソルバー、その他の最適化ツールを比較しています。
前半では、インストール、最初のモデル、変数・目的関数・制約の基本的なモデリング、回路・区間・リザーバー制約などの高度な制約、ソルバーのパラメーター、ソルバーログの読み方を扱います。後半では、保守しやすい最適化コードを書くためのパターン、APIを通じた最適化ジョブの提供、大規模近傍探索ヒューリスティック、モデルのベンチマークといった実践的なエンジニアリングのトピックを取り上げます。
この入門書はTU BraunschweigのDominik Krupkeがメンテナンスしており、CC-BY 4.0ライセンスで公開されています。同じ内容を本の形式で表示する専用サイトも用意されています。
主な機能
- 01変数、目的関数、線形制約、論理制約など、CP-SATの基本を解説します。
- 02回路制約、区間制約、NoOverlap制約などの高度な制約を説明します。
- 03ソルバーの制限時間、ヒント、並列処理の設定方法を紹介します。
- 04ソルバーログの読み方を解説し、解の品質を判断できるようにします。
- 05CP-SATとMIPソルバー、その他の最適化手法を比較します。
- 06Pythonのコード例を掲載し、大規模近傍探索のセクションも収録しています。
ユースケース
- コンピューターサイエンスの学生が組合せ最適化を学ぶ。
- スケジューリングやルーティングのモデルで、MIPソルバーからCP-SATに移行する。
- APIの背後でCP-SATを動かす、保守しやすい最適化サービスを構築する。
- 実運用の問題に向けてCP-SATモデルのベンチマークとチューニングを行う。
クイックスタート
- 1
pipでOR-Toolsをインストールする
pip install -U ortools - 2
READMEからKnapsackのサンプルをコピーして、Pythonで実行する
トピック
よくある質問
- cpsat-primer とは?
- Google OR-ToolsのCP-SATソルバーを使って組合せ最適化問題のモデリングと解法を学べる、無料で公開された書籍形式の入門書です。 CP-SAT Primerは、制約プログラミングとSATに基づく組合せ最適化ソルバーであるGoogle OR-ToolsのCP-SATソルバーを学ぶための、無料の書籍形式のチュートリアルです。コンピューターサイエンスの学生や開発者を対象に、全編を通してPythonの例を掲載し、CP-SATと混合整数計画(MIP)ソルバー、その他の最適化ツールを比較しています。
- cpsat-primer は無料で使えますか?ライセンスは?
- cpsat-primer は CC-BY-4.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- cpsat-primer は今もメンテナンスされていますか?
- 半年以内に更新あり。cpsat-primer の最終コミットは 2026年9月6日 です。
- cpsat-primer は何に使えますか?
- コンピューターサイエンスの学生が組合せ最適化を学ぶ。 スケジューリングやルーティングのモデルで、MIPソルバーからCP-SATに移行する。 APIの背後でCP-SATを動かす、保守しやすい最適化サービスを構築する。 実運用の問題に向けてCP-SATモデルのベンチマークとチューニングを行う。
- cpsat-primer のインストール方法は?
- pipでOR-Toolsをインストールする: pip install -U ortools READMEからKnapsackのサンプルをコピーして、Pythonで実行する
- cpsat-primer はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/d-krupke/cpsat-primer
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Windows 10/11の不要アプリ削除、最適化、カスタマイズや、autounattend.xmlファイルの作成に使えるユーティリティ。
42種類の調整機能、設定パネル、スタートアップ・タスク・クリーンアップ用ツールを備えた無料のWindows最適化ツール。
GPUでの描画を高速化し、メッシュの保存容量と転送サイズを削減するC/C++ライブラリ。
LLMでコードを反復的に変異・評価し、より優れたアルゴリズムの発見を目指すオープンソースの進化型コーディングエージェント。AlphaEvolveのアプローチを実装。
Androidアプリのバイトコードを最適化し、.dexファイルを書き換えてAPKを小型化・高速化するツールです。