# クイックスタート :::{container} prog-cpp このページでは,クイックスタートの手順の概要を説明します. Windows 11 の WSL 上に Hi-QUBO をインストールするより詳細な手順は [Windows (WSL) でのクイックスタート](../startUp/WSL-quick-start.md) をご覧ください. ## インストール [**インストール**](../downloadInstall/apt-install.md) の手順に従って Hi-QUBO をインストールしてください. Windows ユーザーは [**Windows (WSL) でのクイックスタート**](../startUp/WSL-quick-start.md) をご覧ください. ## サンプルプログラムのコンパイルと実行 ### Hi-QUBO サンプルプログラムの作成 以下の Hi-QUBO サンプルプログラムを作成し,ファイル **`test.cpp`** として保存してください: ```{literalinclude} /../programFiles/cppPrograms/startUp/quick-start-program1.cpp :language: cpp :caption: quick-start-program1.cpp ``` このプログラムでは,次の式$f$を展開整理して得られたQUBO式をEasySolverで解を求めます. $$ \begin{aligned} f &= (a+2b+3c-4)^2 \end{aligned} $$ ### プログラムのコンパイル **`test.cpp`** をコンパイルして実行ファイル **`test`** を生成します: ```{include} /../programFiles/markDown/startUp/quick-start.md :start-after: :end-before: ``` このコマンドにより,test という名前の実行ファイルが作成されます. コンパイラオプションの意味は以下の通りです: - **`-std=c++17`**: C++17 標準を使用します. - **`-ldl`**: 動的ローダライブラリをリンクします(Hi-QUBO は実行時に `dlopen` で .so をロードします). - **`-pthread`**: POSIX スレッドのライブラリをリンクします(Hi-QUBO の `.so` が `std::thread` を内部で使用するため必須). ### プログラムの実行 `test` を以下のように実行すると,$f$を展開して得られた式と解を表示します: ```{include} /../programFiles/markDown/startUp/quick-start.md :start-after: :end-before: ``` ## 次のステップ 1. ライセンスをアクティベートしてください.詳細は [**ライセンス管理**](../licenseManage/license-manage.md) をご覧ください. 2. Hi-QUBO の基本を学びましょう.[**Hi-QUBO (C++)**](../basic/variables-and-expressions.md) の **基礎** から始めてください. 3. [**ケーススタディ**](../example/real/cutting-stock.md) で Hi-QUBO プログラムの例を探索してください. ::: :::{container} prog-python このページでは,PyQBPP のクイックスタート手順の概要を説明します. Windows 11 の WSL 上に PyQBPP をインストールするより詳細な手順は [Windows (WSL) でのクイックスタート](../startUp/WSL-quick-start.md) をご覧ください. ## インストール [**インストール**](../downloadInstall/apt-install.md) の手順に従って PyQBPP をインストールしてください. Windows ユーザーは [**Windows (WSL) でのクイックスタート**](../startUp/WSL-quick-start.md) をご覧ください. PyQBPP は PyPI で配布されており,通常は以下のコマンドでインストールできます: ```{include} /../programFiles/markDown/startUp/quick-start.md :start-after: :end-before: ``` PyQBPP は `qbpp_*.so` 共有ライブラリを同梱しており,実行時にロードします. ## サンプルプログラムの作成と実行 ### PyQBPP サンプルプログラムの作成 以下の PyQBPP サンプルプログラムを作成し,**`test.py`** として保存してください: ```{literalinclude} /../programFiles/pythonPrograms/startUp/quick-start-program1.py :language: python :caption: quick-start-program1.py ``` このプログラムでは,次の式 $f$ を展開整理して得られた QUBO 式を EasySolver で解を求めます. $$ \begin{aligned} f &= (a+2b+3c-4)^2 \end{aligned} $$ このサンプルで使用している主な API は以下の通りです: - **`qbpp.var(name)`**: 指定した名前のバイナリ変数を生成します. - **`qbpp.sqr(expr)`**: 式を二乗して展開した結果を返します. - **`qbpp.simplify_as_binary(expr)`**: バイナリ(0/1)ルール(`x*x = x`,`x*~x = 0` 等)を適用し,同類項をまとめます. - **`qbpp.EasySolver(expr)`**: 指定した QUBO 式に対するソルバーを生成します. - **`solver.search(**kwargs)`**: ソルバーを実行します.`time_limit`(秒)や `target_energy` などのパラメータはキーワード引数で渡します. ### プログラムの実行 `test.py` を以下のように実行すると,$f$ を展開して得られた式と解を表示します: ```{include} /../programFiles/markDown/startUp/quick-start.md :start-after: :end-before: ``` 出力の 1 行目は $f$ を展開した QUBO 式です. 2 行目はソルバーが見つけた解で,エネルギー値(この例では 0 となり `target_energy` に一致)と変数割り当て $(a, b, c) = (1, 0, 1)$ を示しています. ## 次のステップ 1. ライセンスを有効化してください.詳細は [**ライセンス管理**](../licenseManage/license-manage.md) を参照してください. 2. PyQBPP の基礎を学びましょう.[**PyQBPP (Python)**](./) の **基礎** から始めてください. 3. [**ケーススタディ**](../example/real/cutting-stock.md) で PyQBPP プログラムの例を探索してください. :::