Amplify SDK の特長¶
Amplify SDK のゴールは、組合せ最適化問題をシンプルかつ直感的に定式化し、さまざまなマシンやソルバーを用いて求解することです。そのため、Amplify SDK は以下のような特長を持っています。
🔰 直感的で使いやすい¶
Amplify SDK は、組合せ最適化問題の中でも主に二次計画問題 (Quadratic Programming) に焦点を当てています。実数変数、整数変数、バイナリ変数 (0-1 変数)、イジング変数 (\(\pm 1\) 変数) による多変数多項式で記述される数理最適化モデルの構築および求解が簡単かつ直感的に行えます。
一方で、各マシンやソルバーが対象とする最適化モデル (扱える変数の種類や多項式の次数、問題の種類) はマシンによって異なります。例えば、量子アニーリングマシン は、QUBO と呼ばれるバイナリ変数 (またはイジング変数) による制約条件無しの二次計画問題を対象とします。また、Gurobi などの MIP ソルバーは実数変数や整数変数を扱うことができます。
Amplify SDK のユニークな特徴は、このようなマシンやソルバーの違いを可能な限り吸収することです。変数変換、次数下げ、制約条件の実装、ハードウェアトポロジーへの埋め込みなどの モデル変換を自動で行います。そのため、組合せ最適化問題を直感的に定式化できます。ユーザはモデルの変換処理の詳細やマシンやソルバーの仕様を意識する必要がありません。特に、QUBO ソルバーを一般の数理最適化ソルバーのように扱うための機能が豊富です。
🚅 高速な数式処理¶
二次計画問題 (あるいはそれより高次) では、多項式の項数が変数の数のべき乗に比例して大きくなり得ます。一方で、最近のイジングマシンは求解可能な問題が 10 万変数規模にまで拡大しています。このような大規模な問題は数ギガバイトものデータ量が要求されることになり、数式処理の高速化とメモリ効率の向上が必須となります。
Amplify SDK は同種の定式化ソフトウェアと比較しても、非常に高速かつ省メモリで処理するように設計されています。ベンチマーク結果は定式化ベンチマークを参照してください。これは、多項式の数式処理、モデル変換、マシンに送信するデータ構築などのコア機能を C++ で実装し、高速なアルゴリズムと高度なチューニングによって支えているためです。特に、Amplify SDK は多項式配列に対して NumPy と互換性のある配列プログラミング機能を提供しています。これらの機能を活用すると、数式処理を高速に行えます。
🔱 複数のソルバーに対応¶
Amplify は以下のマシンとソルバーに対応しています。今後も対応マシンは増えていく見込みです。ソルバー開発者との連携や追加対応のリクエストを歓迎しますので是非ご連絡ください。
-
-
D-Wave Advantage2
Leap's Hybrid BQM Solver
Leap's Hybrid CQM Solver
[Future Release] 量子モンテカルロ法によるソフトウェアシミュレータ (同梱)
-
イジングマシン・アニーリングマシン
-
Fujitsu DA4 Solver
Fujitsu DA3c Solver
-
TOSHIBA SQBM+ V2
MIP ソルバー
🧑💻️ 幅広い対象ユーザ¶
Amplify は、組合せ最適化を利用するアプリケーション開発から定式化やマシンに対する学術研究利用まで、さまざまなユーザ層向けに設計されています。組合せ最適化問題を求解するミドルウェアとして Amplify を活用すると、短時間で実装できます。
また、Amplify の特長である高レベルな モデル変換機能 (変数変換、次数下げ、制約条件の実装など) は最先端の知見に基づいています。処理内容やアルゴリズムは全てドキュメントに記述されています。さらに、モデル変換処理のアルゴリズムやパラメータの変更、モデル変換の結果や処理時間の確認、低レベルインターフェースを利用したデバッグなども行えます。そのため、組合せ最適化問題の定式化やマシンに対する学術研究をするユーザは、自身の新たな定式化アルゴリズムの開発やソルバーの性能調査などを効率的に行えます。
🐲 進化し続ける Fixstars Amplify¶
Amplify の最初のバージョンは 2020 年 7 月にリリースされました。当初の Amplify は、D-Wave に代表される量子アニーリングマシン とそれにインスパイアされたイジングマシンのクラウドサービスを便利に使うソフトウェアでした。QUBO を前提とした数理モデルを構築するように設計されていました。
開発を続ける中で、Amplify がサポートするマシンは増え、マシンのアップデートによって機能も広がりました。そのため、必ずしも QUBO の枠組みにとらわれない、より柔軟な定式化に対応してきました。また、数理最適化ソルバーとして代表的な Gurobi のサポートを追加しました。QUBO であっても整数変数や実数変数を取り扱いたいという要望もあり、Amplify にはより一般的な数理計画モデルへの対応が求められるようになりました。
2024 年にリリースした Amplify の新しいバージョン (v1 系) では全ての仕様が見直され、より一般的な数理計画モデルを構築できるように再設計されました。もちろん、これまでのように Amplify SDK で QUBO の定式化もできます。QUBO の枠組みを超えた変数タイプや制約条件であっても、マシンやソルバーの持つ求解機能に合わせ、性能を最大限引き出すモデル変換・パラメータチューニングを自動で行います。これにより、Amplify はより幅広いユーザや問題に対応できるようになりました。