QUBO++ (C++) ドキュメント
はじめに
基礎
このセクションでは、QUBO++ を段階的に紹介します。 ページを順番に読むことで、変数と式の定義方法、 最適化問題のモデリング方法、そして QUBO++ を使った求解方法を学べます。 このチュートリアルを完了すれば、一般的な用途で QUBO++ を使用できるようになります。
- 変数の定義と式の作成
- 式の求解
- 変数配列と配列関数
- 変数配列を用いた分割問題の求解
- 置換行列と割当問題の求解
- 整数変数と連立方程式の求解
- HUBO 式による因数分解
- 範囲制約と整数線形計画法の求解
- ネイティブ制約
トピック
このセクションでは、QUBO++ の選択された機能についてトピックごとに説明します。 各ページは特定のトピックに焦点を当て、設計上の決定、 使用パターン、そして必要に応じて内部実装について深い洞察を提供します。 このセクションは網羅的なものではなく、チュートリアルとリファレンスの セクションを補完して QUBO++ のより深い理解を提供することを目的としています。
- 変数と式のデータ型
- 基本的な演算子と関数
- ベクトル用の基本的な演算子と関数
- 多次元の整数、変数および式
- 比較演算子
- 式クラス
- 式の評価
- 置換関数
- 否定リテラル
- HUBO の QUBO への変換
- 多次元配列用の Sum 関数
- テンソル縮約のための Einsum 関数
- スライス関数と連結関数
- ワンホットから整数への変換
- Easy Solver の使い方
- Exhaustive Solver の使い方
- ABS3 Solver の使い方
- 探索パラメータ
- 高速化のための Tips
ケーススタディ
このセクションでは、QUBO++ を使用した最適化問題、数学問題、グラフ問題の求解例を提供します。 全リストはケーススタディページを参照してください。
クイックリファレンス
外部ソルバー連携
3 つの組み込みソルバーに加え、QUBO++ は外部ソルバーへモデルを渡せます。 各ソルバーが受け取るモデルの形でグループ分けしています:
- QUBO/HUBO ソルバー — QUBO/HUBO モデルを直接受け取る(線形化不要)ソルバー。C++ では Gurobi Optimizer のみ。PyQBPP は多数のヒューリスティックなサンプラ・アニーラやその他の厳密バックエンドを追加で提供します。
- MILP ソルバー (SCIP, HiGHS, GLPK, CBC) — QUBO を純 MILP に線形化してから解く厳密ソルバー。
- CP ソルバー (OR-Tools CP-SAT) — 制約プログラミングエンジン(PyQBPP のみ)。
これらの連携は各ソルバーを別途インストールする必要があり、API は予告なく 変更される可能性があります。