Windows(WSL)でのクイックスタート

Windows 11 上では、WSL(Windows Subsystem for Linux)を通して QUBO++/PyQBPP を使用できます。
WSL により Linux プログラムを Windows 上でネイティブに実行可能です。

このドキュメントでは、WSL のインストール、必要ライブラリや QUBO++/PyQBPP の導入、サンプルプログラムのコンパイルと実行方法を説明します。

WSL のインストール

Windows 11 では、PowerShell を管理者権限で開き、以下のコマンドを実行します:

C:\WINDOWS\System32> wsl --install
Provisioning the new WSL instance Ubuntu
This might take a while...
Create a default Unix user account: [user account name]
New password: [your password]
Retype new password: [your password]
passwd: password updated successfully
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

プロンプトが表示されたら、[ユーザーアカウント名] と [パスワード] を入力してください。 これにより、Windows 上に WSL 2 と Ubuntu ベースの Linux システムがインストールされます。

管理者権限でコマンドを実行する場合は sudo <command> を使用します。
インストール完了後、WSL 内でシステムソフトウェアを更新します:

sudo apt update
sudo apt upgrade -y

C++ コンパイラ、Boost、oneTBB のインストール

QUBO++ には C++ コンパイラ、Boost ライブラリ、oneTBB が必要です。 以下のコマンドを使用してインストールしてください。

sudo apt install -y build-essential libboost-all-dev libtbb-dev

ダウンロードとインストール

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

  • 方法1: apt(推奨) — パスの自動設定を含むシンプルなインストール。sudo 権限が必要です。

  • 方法2: tar.gzapt リポジトリの設定が不要な手動インストール。sudo 権限は不要です。

方法1: apt によるインストール(推奨)

まず、QUBO++ の apt リポジトリを追加します:

curl -fsSL https://nakanocs.github.io/qbpp-apt/KEY.gpg | sudo gpg --dearmor -o /usr/share/keyrings/qbpp.gpg
echo "deb [signed-by=/usr/share/keyrings/qbpp.gpg] https://nakanocs.github.io/qbpp-apt stable main" | sudo tee /etc/apt/sources.list.d/qbpp.list

次に QUBO++ をインストールします:

sudo apt update
sudo apt install qbpp

これにより、ヘッダファイルが /usr/local/include/qbpp/ に、共有ライブラリが /usr/local/lib/ に、qbpp-license コマンドが /usr/local/bin/ に自動的にインストールされます。 環境変数の設定は不要です。

新しいバージョンにアップグレードするには:

sudo apt update
sudo apt install --only-upgrade qbpp

アンインストールするには:

sudo apt remove qbpp

方法2: tar.gz によるインストール

2026.05.09 Releases ページから、最新の QUBO++ リリースの .tar.gz ファイルをダウンロードしてください。

お使いの Windows PC のアーキテクチャに応じて、以下のいずれかのファイルをダウンロードしてください。

  • qbpp_amd64_<version>.tar.gz : Intel または AMD ベースの Windows PC 用

  • qbpp_arm64_<version>.tar.gz : ARM ベースの Windows PC 用(例:Copilot+ PC)

ダウンロードできたら展開します:

tar xf qbpp_<arch>_<version>.tar.gz

QUBO++ は qbpp_<arch>_<version> のようなディレクトリに展開されます。

このディレクトリへのシンボリックリンクを作成することを推奨します。

ln -s qbpp_<arch>_<version> qbpp

これにより qbpp という名前のシンボリックリンクが作成され、インストールディレクトリへのアクセスが簡単になります。

QUBO++ の新バージョンへのアップグレードするには:

新しい QUBO++ リリースをダウンロードし、上記の方法で tar を使って展開してください。その後、qbpp シンボリックリンクを新しいバージョンを指すように更新します。以下のコマンドを実行してください:

ln -sfn qbpp_<arch>_<new version> qbpp

このコマンドは既存の qbpp シンボリックリンクを上書きし、新たにインストールしたバージョンを参照するようにします。

PyQBPPはPyPIで公開されています。 パッケージの詳細については、PyQBPP PyPIページを参照してください。

PyQBPPのインストールには、Python仮想環境(venv)の使用を推奨します。 sudo権限は不要です。

python3 -m venv ~/qbpp-env
source ~/qbpp-env/bin/activate
pip install --upgrade pip
pip install pyqbpp

最新バージョンへのアップグレード:

pip install --upgrade pyqbpp

環境変数の設定

以下の環境変数を設定してください:

export QBPP_PATH=[QUBO++ インストールディレクトリ]

export CPLUS_INCLUDE_PATH=$QBPP_PATH/include:$CPLUS_INCLUDE_PATH
export LIBRARY_PATH=$QBPP_PATH/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=$QBPP_PATH/lib:$LD_LIBRARY_PATH
export PATH=$QBPP_PATH/bin:$PATH

これらの環境変数は、ライセンス管理および QUBO++ プログラムのコンパイル、リンク、実行に使用されます。 これらのコマンドは、WSL シェル起動時に自動的に実行されるよう、~/.bashrc ファイルの末尾に追記することを推奨します。

サンプルプログラムのコンパイルと実行

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

以下の内容でファイル test.cpp を作成します:

test.cpp
#include <qbpp/qbpp.hpp>
#include <qbpp/exhaustive_solver.hpp>

int main() {
  auto x = 0 <= qbpp::var_int("x") <= 10;
  auto y = 0 <= qbpp::var_int("y") <= 10;
  auto f = x + y == 10;
  auto g = 2 * x + 4 * y == 28;
  auto h = f + g;
  h.simplify_as_binary();
  auto solver = qbpp::ExhaustiveSolver(h);
  auto sol = solver.search();
  std::cout << "sol = " << sol << std::endl;
  std::cout << "x = " << sol(x) << ", y = " << sol(y) << std::endl;
}

PyQBPP サンプルプログラムの作成

以下の内容でファイル test.py を作成します:

test.py
import pyqbpp as qbpp

x = qbpp.between(qbpp.var_int("x"), 0, 10)
y = qbpp.between(qbpp.var_int("y"), 0, 10)

f = x + y == 10
g = 2 * x + 4 * y == 28
h = f + g
h.simplify_as_binary()
print(f"h = {h}")

solver = qbpp.ExhaustiveSolver(h)
sol = solver.search()
print(f"sol = {sol}")
print(f"x = {sol(x)}, y = {sol(y)}")

プログラムのコンパイル

test.cpp をコンパイルして実行ファイル test を生成します:

g++ test.cpp -o test -std=c++17 -ldl -pthread

このコマンドにより、test という名前の実行ファイルが作成されます。 コンパイラオプションの意味は以下の通りです:

  • -std=c++17: C++17 標準を使用します。

  • -ldl: 動的ローダライブラリをリンクします(Hi-QUBO は実行時に dlopen.so をロードします)。

  • -pthread: POSIX スレッドのライブラリをリンクします(Hi-QUBO の .sostd::thread を内部で使用するため必須)。

プログラムの実行

以下のように実行します:

./test
sol = 0:{{x[0],0},{x[1],1},{x[2],1},{x[3],0},{y[0],0},{y[1],0},{y[2],1},{y[3],0}}
x = 6, y = 4
python3 test.py
h = 884 -127*x[0] -244*x[1] -448*x[2] -351*x[3] -227*y[0] -420*y[1] -704*y[2] -579*y[3] +20*x[0]*x[1] +40*x[0]*x[2] +30*x[0]*x[3] +18*x[0]*y[0] +36*x[0]*y[1] +72*x[0]*y[2] +54*x[0]*y[3] +80*x[1]*x[2] +60*x[1]*x[3] +36*x[1]*y[0] +72*x[1]*y[1] +144*x[1]*y[2] +108*x[1]*y[3] +120*x[2]*x[3] +72*x[2]*y[0] +144*x[2]*y[1] +288*x[2]*y[2] +216*x[2]*y[3] +54*x[3]*y[0] +108*x[3]*y[1] +216*x[3]*y[2] +162*x[3]*y[3] +68*y[0]*y[1] +136*y[0]*y[2] +102*y[0]*y[3] +272*y[1]*y[2] +204*y[1]*y[3] +408*y[2]*y[3]
sol = Sol(energy=0, x[0]=1, x[1]=1, x[2]=0, x[3]=1, y[0]=0, y[1]=0, y[2]=1, y[3]=0)
x = 6, y = 4

ライセンスについて

Trial ライセンスの取得

  1. Linux マシンに QUBO++ をインストールします。

  2. 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. QUBO++ User Portal を開き、サインアップフォームに 2. のコードを入力します。

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

  3. マシンで、4.で取得した Trial ライセンスキーをアクティベートしてください :

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

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

ライセンスの有効化

QUBO++/PyQBPP のライセンスキーをお持ちの場合は、以下のいずれかの方法で設定してください。

方法1: qbpp-license でアクティベート(推奨)

マシンごとに以下のコマンドを一度実行します:

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

ライセンスキーは暗号化されてローカルにキャッシュされます。アクティベーション後、以降の実行では環境変数や -k オプションは不要です — QUBO++ プログラムはキャッシュされたキーを自動的に使用します。

再アクティベーションやキーの変更は、新しいキーでコマンドを再度実行するだけです。

方法2: 環境変数

QBPP_LICENSE_KEY 環境変数を設定します。ローカルキャッシュが永続的でない Docker/CI 環境で便利です。

export QBPP_LICENSE_KEY=XXXXXX-XXXXXX-XXXXXX-XXXXXX

その後、アクティベートします :

qbpp-license -a

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


ABS3 GPU Solver の実行

システムに CUDA 対応 GPU が搭載されている場合、ABS3 GPU Solver は WSL 上で実行できます。

WSL で GPU アクセラレーションを有効にするには、以下のページから Windows 用 NVIDIA GPU ドライバーをインストールしてください:

https://www.nvidia.com/Download/index.aspx

注意: WSL 内に Linux 用 GPU ドライバーをインストールしないでください。WSL は統合レイヤーを介して Windows GPU ドライバーを使用します。

ドライバーをインストールした後、以下を実行して WSL 上で GPU が利用可能か確認してください:

nvidia-smi

ドライバーが正しくインストールされていれば、このコマンドでインストールされている GPU に関する情報が表示されます。

次のステップ