C++: apt¶
対応環境¶
Hi-QUBO は以下の CPU を搭載した Linux ベースのシステムで動作します:
amd64: 64ビット Intel および AMD プロセッサ
arm64: 64ビット ARM プロセッサ
Ubuntu 20.04 以降を推奨します. Windows ユーザーは WSL (Windows Subsystem for Linux) を通じて Hi-QUBO を使用できます.
インストール¶
Hi-QUBO のインストール方法は2つあります:
方法1: apt(推奨) — パスの自動設定を含むシンプルなインストール.sudo 権限が必要です.
方法2: tar.gz — apt リポジトリの設定が不要な手動インストール.sudo 権限は不要です.
ここでは 方法1: apt(推奨) によるインストールを紹介します.
方法1: apt によるインストール(推奨)¶
ステップ1: Hi-QUBO リポジトリの追加¶
署名鍵をダウンロードし,リポジトリを追加します:
curl -fsSL https://qubo-plus.github.io/qbpp-apt/qbpp.gpg \
| sudo tee /usr/share/keyrings/qbpp.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/qbpp.gpg] https://qubo-plus.github.io/qbpp-apt stable main" \
| sudo tee /etc/apt/sources.list.d/qbpp.list > /dev/null
ステップ2: Hi-QUBO のインストール¶
sudo apt update
sudo apt install qbpp
これにより,ヘッダファイルが /usr/include/qbpp/ に,共有ライブラリが /usr/lib/qbpp/ に(ldconfig に登録),qbpp-license コマンドが /usr/bin/ に自動的にインストールされます.
環境変数の設定は不要です.
ステップ3: Trial ライセンスの取得¶
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/
https://qubo-plus.github.io/portal/ を開き, アカウントの作成をクリックします.

Sign-up code の項目に 1. のコード
XXXXXXXXを入力し, 必要事項を記入します.
メール検証後,Trial ライセンスキー (
T-PREFIX-XXXXXX-XXXXXX-XXXXXX,PREFIX はメールローカル部から導出) が portal 上に表示されます.
マシンで
qbpp-license -k T-... -aでアクティベートしてください:
qbpp-license -k T-PREFIX-XXXXXX-XXXXXX-XXXXXX -a
30日のTrial期間はサインアップ時から開始します — キー発行と同時に期限が確定するため,portal 上ですぐに有効期限を確認できます.期限の1週間前から User Portal で Trial の更新が可能です.更新時は同じライセンスキーがそのまま使われ,有効期限のみが30日延長されます — マシンのアクティベーション情報も保持されるため,再アクティベートは不要です.
詳しくはライセンス管理を参照してください.
ステップ4: サンプルプログラムのコンパイルと実行¶
Hi-QUBO サンプルプログラムの作成¶
以下の Hi-QUBO サンプルプログラムを作成し,ファイル test.cpp として保存してください:
#include <qbpp/easy_solver.hpp>
#include <qbpp/qbpp.hpp>
int main() {
auto a = qbpp::var("a");
auto b = qbpp::var("b");
auto c = qbpp::var("c");
auto f = qbpp::sqr(a + 2 * b + 3 * c - 4);
f.simplify_as_binary();
std::cout << "f = " << f << std::endl;
auto solver = qbpp::EasySolver(f);
auto sol = solver.search({{"time_limit", 10}, {"target_energy", 0}});
std::cout << "sol = " << sol << std::endl;
}
このプログラムでは,次の式\(f\)を展開整理して得られたQUBO式をEasySolverで解を求めます.
プログラムのコンパイル¶
test.cpp をコンパイルして実行ファイル test を生成します:
g++ test.cpp -o test -std=c++17 -Wfloat-conversion -ldl -pthread
このコマンドにより,test という名前の実行ファイルが作成されます. コンパイラオプションの意味は以下の通りです:
-std=c++17: C++17 標準を使用します.-Wfloat-conversion: 浮動小数点数から整数への暗黙変換を警告します。整数係数のライブラリでは3.5 * xやf <= 2.5のような実数リテラルが黙って切り捨てられる(それぞれ3 * x、f <= 2)ため、付けておくことを推奨します。実数係数を扱いたい場合は#define DOUBLE_TYPE版を使ってください。-ldl: 動的ローダライブラリをリンクします(Hi-QUBO は実行時にdlopenで .so をロードします).-pthread: POSIX スレッドのライブラリをリンクします(Hi-QUBO の.soがstd::threadを内部で使用するため必須).
プログラムの実行¶
test を以下のように実行すると,\(f\)を展開して得られた式と解を表示します:
./test
f = 16 -7*a -12*b -15*c +4*a*b +6*a*c +12*b*c
sol = 0:{{a,1},{b,0},{c,1}}
ライセンスのアクティベーション¶
インストール後,ライセンスをアクティベートして Hi-QUBO の使用を開始します:
qbpp-license -k XXXXXX-XXXXXX-XXXXXX-XXXXXX -a
アップグレード¶
sudo apt update
sudo apt install --only-upgrade qbpp
アンインストール¶
sudo apt remove qbpp
次のステップ¶
ライセンスをアクティベートしてください.詳細は ライセンス管理 をご覧ください.
Hi-QUBO の基本を学びましょう.Hi-QUBO (C++) の 基礎 から始めてください.
ケーススタディ で Hi-QUBO プログラムの例を探索してください.