PyQBPP ドキュメント

PyQBPP(QUBO++のPythonバインディング)のドキュメントは現在作成中です。 一部のページには不完全または暫定的な情報が含まれている場合があります。

はじめに

  1. HUBO と QUBO
  2. PyQBPP の表現力
  3. クイックスタート
  4. インストール

基礎

このセクションでは、PyQBPPの段階的な入門を提供します。 ページを順番に読むことで、変数と式の定義方法、最適化問題のモデル化、 PyQBPPを使った求解方法を学ぶことができます。 このチュートリアルを完了すれば、一般的な用途でPyQBPPを使えるようになります。

  1. 変数の定義と式の作成
  2. 式の求解
  3. 変数の配列と配列関数
  4. 変数配列を用いた分割問題の求解
  5. 順列行列と割当問題の求解
  6. 整数変数と連立方程式の求解
  7. HUBO式による因数分解
  8. 範囲制約と整数線形計画法の求解

トピック

このセクションでは、PyQBPPの特定の機能についてトピックごとに解説します。 各ページは特定のトピックに焦点を当て、設計上の判断、使用パターン、 および必要に応じて内部実装について、より深い知見を提供します。

  1. 変数と式のデータ型
  2. 基本演算子と関数
  3. 配列用の基本演算子と関数
  4. 多次元変数と式
  5. 比較制約
  6. 式のクラス
  7. 式の評価
  8. 置換関数
  9. 否定リテラル
  10. HUBO の QUBO への変換
  11. 多次元配列の和関数
  12. テンソル縮約のための Einsum 関数
  13. スライスと連結
  14. ワンホットから整数への変換
  15. ネイティブ整数変数
  16. 非線形関数とネイティブ制約
  17. Easy Solverの使い方
  18. Exhaustive Solverの使い方
  19. ABS3 Solverの使い方
  20. 探索パラメータ
  21. 高速化のための Tips

ケーススタディ

このセクションでは、PyQBPPを使った最適化問題、数学問題、グラフ問題の解法例を提供します。 全リストはケーススタディページを参照してください。

クイックリファレンス

  1. 変数と式
  2. 演算子と関数
  3. 整数変数と制約に関する演算と関数

外部ソルバー連携

3 つの組み込みソルバーに加え、PyQBPP は外部ソルバーへモデルを渡せます。 各ソルバーが受け取るモデルの形でグループ分けしています:

  • QUBO/HUBO ソルバー — QUBO/HUBO モデルを直接受け取る(線形化不要)ソルバー: dimod ExactSolver, IBM Qiskit Optimization(厳密・二次直接)、および D-Wave samplers (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 は予告なく 変更される可能性があります。

非公式機能

以下は unofficial な機能です。予告なく変更・削除される可能性があり、 公開を中断することもあります。性能は保証しません。

  • ABS2 Solver — GPU 専用の QUBO ソルバー。密な QUBO 問題では ABS3 を上回る場合があります(別配布のプラグインです)。

Back to top

Page last modified: 2026.09.03.

© 2026 中野浩嗣, 広島大学