C++: 手動ダウンロード

対応環境

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 権限は不要です.

ここでは 方法2: tar.gz によるインストールを紹介します.方法1: apt(推奨) の紹介はこちらです.

ステップ1: tar.gz によるインストール

Hi-QUBO ダウンロード ページから最新の Hi-QUBO リリースの .tar.gz ファイルをダウンロードします. 以下のようにアーカイブを展開します:

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

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

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

環境変数の設定

Hi-QUBO プログラムをコンパイル・実行するには,以下の環境変数を設定します. シェル起動時に自動的に設定されるよう,~/.bashrc の末尾に以下の行を追加してください:

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

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

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}}

アップグレード

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

アンインストール

sudo apt remove qbpp

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

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

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

無料の Trial ライセンス(30日間,10,000変数)は Hi-QUBO User Portal で取得できます.qbpp-license -s を実行してサインアップコードを得て,portal で登録すると Trial キーが受け取れます.

次のステップ

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

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

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