Python: 手動ダウンロード

対応環境

PyQBPP は以下の CPU を搭載した Linux ベースのシステムで動作します:

  • amd64: 64ビット Intel および AMD プロセッサ

  • arm64: 64ビット ARM プロセッサ (aarch64)

必要条件:

  • Ubuntu 20.04 以降(glibc 2.31 以上,manylinux_2_31 wheel)

  • Python 3.8 以降

  • pip 20.3 以降(PEP 600 manylinux_2_31 wheel に対応するため)

Windows ユーザーは WSL (Windows Subsystem for Linux) を通じて PyQBPP を使用できます.

インストール

PyQBPP のインストール方法は2つあります:

  • 方法1: PyPI(推奨) — Python Package Index から公開パッケージを直接インストール.

  • 方法2: ローカル wheel — ダウンロードした .whl ファイルからインストール(オフライン環境や特定バージョンを固定したい場合に便利).

どちらの方法も,Python 仮想環境(venv)内でインストールすれば sudo 権限は不要です.

ここでは方法2: ローカル wheel によるインストールを紹介します.

ステップ1: ローカル wheel によるインストール

Latest Releases ページから最新の PyQBPP リリースの .whl ファイルをダウンロードし,pip でインストールします:

python3 -m venv ~/qbpp-env
source ~/qbpp-env/bin/activate
pip install pyqbpp-<VERSION>-py3-none-manylinux_2_31_x86_64.whl

<VERSION> は実際のリリースバージョンに置き換え,CPU アーキテクチャに応じて wheel を選択してください(amd64 なら x86_64,arm64 なら aarch64).

環境変数の設定は不要です. wheel には共有ライブラリ(qbpp_*.so,easysolver_*.so,exhaustive_*.so,abs3_*.so)と qbpp-license コマンドがすべて同梱されており,pip が仮想環境内に自動的に配置します.

ステップ2: Trial ライセンスの取得

  1. qbpp-license -s を実行 — 端末に本日の8文字サインアップコードと portal URL が表示されます:

QUBO++ Trial Sign-up Code: XXXXXXXX

Use this code at the QUBO++ User Portal to register for a Trial license:
  https://qubo-plus.github.io/portal/
  1. https://qubo-plus.github.io/portal/ を開き, アカウントの作成をクリックします. アカウントを作成

  2. Sign-up code の項目に 1. のコード XXXXXXXX を入力し, 必要事項を記入します. サインアップコード

  3. メール検証後,Trial ライセンスキー (T-PREFIX-XXXXXX-XXXXXX-XXXXXX,PREFIX はメールローカル部から導出) が portal 上に表示されます. トライアルキー

  4. マシンで qbpp-license -k T-... -a でアクティベートしてください:

qbpp-license -k T-PREFIX-XXXXXX-XXXXXX-XXXXXX -a

30日のTrial期間はサインアップ時から開始します — キー発行と同時に期限が確定するため,portal 上ですぐに有効期限を確認できます.期限の1週間前から User Portal で Trial の更新が可能です.更新時は同じライセンスキーがそのまま使われ,有効期限のみが30日延長されます — マシンのアクティベーション情報も保持されるため,再アクティベートは不要です.

詳しくはライセンス管理を参照してください.

ステップ3: サンプルプログラムのコンパイルと実行

PyQBPP のインポート

PyQBPP は,係数型・エネルギー型の組み合わせごとに複数のサブモジュールを提供しています.扱う係数・エネルギーの大きさに応じて選択してください:

apt-install-program1.py
import pyqbpp as qbpp                # デフォルト: coeff=int32, energy=int64 (c32e64)
# import pyqbpp.c32e32 as qbpp       # coeff=int32, energy=int32
# import pyqbpp.c64e64 as qbpp       # coeff=int64, energy=int64
# import pyqbpp.c64e128 as qbpp      # coeff=int64, energy=int128
# import pyqbpp.c128e128 as qbpp     # coeff=int128, energy=int128
# import pyqbpp.cppint as qbpp       # coeff=cpp_int, energy=cpp_int(任意精度)

import pyqbpp as qbpp は import pyqbpp.c32e64 as qbpp と等価であり,ほとんどの問題ではこれで十分です. 目的関数の係数やエネルギーが 32/64 ビット整数をオーバーフローし得る場合は,より大きい型のバリアントを使用してください.任意精度演算が必要な場合は pyqbpp.cppint を選びます.

1つの Python プロセスからは1つのバリアントのみをインポートしてください.

Hi-QUBO サンプルプログラムの作成

以下の Hi-QUBO サンプルプログラムを作成し,ファイル test.py として保存してください:

quick-start-program1.py
import pyqbpp as qbpp

a = qbpp.var("a")
b = qbpp.var("b")
c = qbpp.var("c")
f = qbpp.sqr(a + 2 * b + 3 * c - 4)
f = qbpp.simplify_as_binary(f)
print("f =", f)

solver = qbpp.EasySolver(f)
sol = solver.search(time_limit=10, target_energy=0)
print("sol =", sol)

このプログラムでは,次の式\(f\)を展開整理して得られたQUBO式をEasySolverで解を求めます.

\[ \begin{aligned} f &= (a+2b+3c-4)^2 \end{aligned} \]

プログラムの実行

test を以下のように実行すると,\(f\)を展開して得られた式と解を表示します:

python3 test.py
f = 16 -7*a -12*b -15*c +4*a*b +6*a*c +12*b*c
sol = Sol(energy=0, {a: 1, b: 0, c: 1})

ライセンスのアクティベーション

インストール後,ライセンスをアクティベートして PyQBPP の使用を開始します:

qbpp-license -k XXXXXX-XXXXXX-XXXXXX-XXXXXX -a

qbpp-license コマンドは wheel によって仮想環境の bin/ ディレクトリにインストールされるため,venv をアクティベートすると自動的に PATH 上で利用可能になります.

無料の Trial ライセンス(30日間,10,000変数)は Hi-QUBO User Portal で取得できます.qbpp-license -s を実行してサインアップコードを得て,portal で登録,qbpp-license -k <KEY> -a で受け取ったキーをアクティベートしてください.

実行時に QBPP_LICENSE_KEY を使う

qbpp-license -a によるアクティベーションの代わりに,QBPP_LICENSE_KEY 環境変数でライセンスキーを渡すこともできます.コンテナ,CI ジョブ,Lambda/サーバレス環境など,ライセンスファイルを保存するのが難しい環境で特に便利です:

export QBPP_LICENSE_KEY=XXXXXX-XXXXXX-XXXXXX-XXXXXX
python3 my_qbpp_program.py

QBPP_LICENSE_KEY が設定されている場合,PyQBPP はディスクに状態を書き込まず,実行時にそのキーを直接使用します.

ライセンスの種類,ディアクティベーション,トラブルシューティングなどの詳細は ライセンス管理 をご覧ください.