PyQBPP ドキュメント
PyQBPP(QUBO++のPythonバインディング)のドキュメントは現在作成中です。 一部のページには不完全または暫定的な情報が含まれている場合があります。
はじめに
基礎
このセクションでは、PyQBPPの段階的な入門を提供します。 ページを順番に読むことで、変数と式の定義方法、最適化問題のモデル化、 PyQBPPを使った求解方法を学ぶことができます。 このチュートリアルを完了すれば、一般的な用途でPyQBPPを使えるようになります。
- 変数の定義と式の作成
- 式の求解
- 変数の配列と配列関数
- 変数配列を用いた分割問題の求解
- 順列行列と割当問題の求解
- 整数変数と連立方程式の求解
- HUBO式による因数分解
- 範囲制約と整数線形計画法の求解
- ネイティブ制約
トピック
このセクションでは、PyQBPPの特定の機能についてトピックごとに解説します。 各ページは特定のトピックに焦点を当て、設計上の判断、使用パターン、 および必要に応じて内部実装について、より深い知見を提供します。
- 変数と式のデータ型
- 基本演算子と関数
- 配列用の基本演算子と関数
- 多次元変数と式
- 比較制約
- 式のクラス
- 式の評価
- 置換関数
- 否定リテラル
- HUBO の QUBO への変換
- 多次元配列の和関数
- テンソル縮約のための Einsum 関数
- スライスと連結
- ワンホットから整数への変換
- Easy Solverの使い方
- Exhaustive Solverの使い方
- ABS3 Solverの使い方
- 探索パラメータ
- 高速化のための Tips
ケーススタディ
このセクションでは、PyQBPPを使った最適化問題、数学問題、グラフ問題の解法例を提供します。 全リストはケーススタディページを参照してください。
クイックリファレンス
外部ソルバー連携
3 つの組み込みソルバーに加え、PyQBPP は外部ソルバーへモデルを渡せます。 各ソルバーが受け取るモデルの形でグループ分けしています:
- QUBO/HUBO ソルバー — QUBO/HUBO モデルを直接受け取る(線形化不要)ソルバー: Gurobi, IBM CPLEX, dimod ExactSolver, IBM Qiskit Optimization(厳密・二次直接)、および Fixstars Amplify, D-Wave (Advantage / Native / Leap Hybrid / Neal / Tabu / Steepest Descent), OpenJij, TYTAN-SDK MIKAS, qubovert, Simulated Bifurcation(ヒューリスティックなサンプラ・アニーラ)。
- MILP ソルバー (SCIP, HiGHS, GLPK, CBC) — QUBO を純 MILP に線形化してから解く厳密ソルバー。
- CP ソルバー (OR-Tools CP-SAT) — 制約プログラミングエンジン。任意次数の HUBO と否定リテラルをネイティブに扱えます。
これらの連携は各ソルバーを別途インストールする必要があり、API は予告なく 変更される可能性があります。