OR ツール - Google 最適化ツール
Google の組み合わせ最適化用ソフトウェア スイート。
目次
- ORツールについて
- コードマップ
- インストール
- クイックスタート
- ドキュメント
- 貢献する
- ライセンス
ORツールについて
Google Optimization Tools (別名、OR-Tools) は、組み合わせ最適化問題を解決するためのオープンソースの高速でポータブルなソフトウェア スイートです。
スイートには以下が含まれます:
- 2 つの制約プログラミング ソルバー (CP* および CP-SAT)。
- 2 つの線形計画法ソルバー (Glop および PDLP)。
- 混合整数ソルバーを含む商用およびその他のオープンソース ソルバーのラッパー。
- ビンパッキングおよびナップザックアルゴリズム。
- 巡回セールスマン問題と配車経路問題のアルゴリズム。
- グラフ アルゴリズム (最短パス、最小コスト フロー、最大フロー、線形和の割り当て)。
OR ツールは C++ で作成しましたが、ラッパーは Python、C#、および Java で提供されています。
コードマップ
このソフトウェア スイートは次のコンポーネントで構成されています。
- Makefile GNU Make ベースのビルドのトップレベル。
- makefiles 補助的な Make ファイル、CI、およびビルド システムのドキュメント。
- CMakeLists.txt CMake ベースのビルドのトップレベル。
- cmake 補助的な CMake ファイル、CI、およびビルド システムのドキュメント。
- WORKSPACE Bazel ベースのビルドのトップレベル。
- bazel 補助的な Bazel ファイル、CI、およびビルド システムのドキュメント。
- ortools ソース コードのルート ディレクトリ。
- 基本 基本的なユーティリティ。
- アルゴリズム 基本的なアルゴリズム。
- グラフ グラフアルゴリズム。
- Linear_solver 線形ソルバー ラッパー。
- glop シンプレックスベースの線形計画法ソルバー。
- pdlp 一次線形計画法ソルバー。
- lp_data 線形モデルのデータ構造。
- constraint_solver 制約およびルーティング ソルバー。
- docs コンポーネントのドキュメント。
- サンプル 丁寧に作られたサンプル。
- sat SAT ソルバー。
- docs コンポーネントのドキュメント。
- サンプル 丁寧に作られたサンプル。
- bop SAT に基づくブール ソルバー。
- util 制約ソルバーに必要なユーティリティ
- 例 すべての例のルート ディレクトリ。
- contrib コミュニティからの例。
- cpp C++ の例。
- dotnet .Net の例。
- Java Java の例。
- Python Python の例。
- ノートブック Jupyter/IPython ノートブック。
- flatzinc FlatZinc の例。
- テスト 単体テストとバグレポート。
- ツール 配信ツール (Windows GNU バイナリ、スクリプト、リリース Docker など)
インストール
このソフトウェア スイートは次の環境でテストされています。
- Ubuntu 18.04 LTS 以降 (64 ビット)。
- Xcode 9.x (64 ビット) を搭載した Apple macOS Mojave。
- Visual Studio 2022 (64 ビット) を搭載した Microsoft Windows。
OR-Tools は現在 Makefile を使用してビルドしますが、Bazel と CMake のサポートも提供します。
インストール手順 (ソースとバイナリの両方) については、https://developers.google.com/optimization/introduction/installing を参照してください。
Make を使用してソースからビルドする (レガシー)
Make ベースのビルドを提供します。
Make ビルド手順を確認してください。
CMakeを使用してソースからビルドする
CMake ベースのビルドを提供します。
CMake のビルド手順を確認してください。
Bazel を使用してソースからビルドする
Bazel ベースのビルドを提供します。
Bazel のビルド手順を確認してください。
クイックスタート
OR ツールの使用方法を学ぶ最良の方法は、開発者ガイドのチュートリアルに従うことです。
https://developers.google.com/optimization/introduction/get_started
コード例から学びたい場合は、examples ディレクトリ内の例を参照してください。
ドキュメント
OR-Tools の完全なドキュメントは、https://developers.google.com/optimization/ から入手できます。
貢献する
CONTRIBUTING.md ファイルには、プル リクエスト (PR) を送信する前にコントリビューター ライセンス契約を提出する方法に関する手順が含まれています。もちろん、プロジェクトに初めて参加する場合は、最初の PR を送信する前に、提案について話し合い、合意に達することが通常は最善です。
ライセンス
OR-Tools ソフトウェア スイートは、Apache License 2.0 の条件に基づいてライセンス供与されています。
詳細については、「ライセンス」を参照してください。