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 ライセンスの取得

  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日延長されます — マシンのアクティベーション情報も保持されるため,再アクティベートは不要です.

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

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

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

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

quick-start-program1.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で解を求めます.

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

プログラムのコンパイル

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

次のステップ

  1. ライセンスをアクティベートしてください.詳細は ライセンス管理 をご覧ください.

  2. Hi-QUBO の基本を学びましょう.Hi-QUBO (C++) の 基礎 から始めてください.

  3. ケーススタディ で Hi-QUBO プログラムの例を探索してください.