Fixstars Amplify AE¶
Fixstars Amplify Annealing Engine (以下 Amplify AE) は Fixstars Amplify 社の提供するソルバーです。シミュレーテッドアニーリングをベースとしたヒューリスティックアルゴリズムが GPU 上に実装されており、GPU の持つ並列計算技術を活用して解を高速・高精度に探索します。
目的関数と制約条件から構成されるバイナリ変数の最適化問題を扱えるため、実用的な問題に対応できます。Amplify SDK と組み合わせれば、さらに幅広く一般的な最適化問題の求解に活用できます。また、量子アニーリングやイジングマシンの研究者向けに、理想的に動作する高精度な QUBO ソルバーとしての利用も可能です。
Amplify SDK からの利用については クライアントのページ を参照してください。
Amplify AE の特長¶
Amplify AE は、アニーリング法 (焼きなまし法) をベースとしたヒューリスティックアルゴリズムを用いて、入力された最適化問題の解を探索するソルバーです。特に独自性の高い点として、AI 半導体として知られる GPU の並列計算技術を活用することがあげられます。求解の高度な並列化により GPU のポテンシャル性能を活かし、高速かつ高精度に目的関数の最小化を行います。
クラウド版の Amplify AE の機能仕様は以下のとおりです。
変数タイプ |
バイナリ |
最大問題サイズ (全結合) |
8,192 変数 (Basic) / 65,536 変数 (Standard) / 131,072 変数 (Premium) |
最大次数 |
4 次 (目的関数) / 4 次 (制約条件) |
制約条件タイプ |
等式・不等式 (Constraint モード) / ペナルティ関数 (PUBO モード) |
精度 |
入力: 64 bit 実数 (入力) / 計算: 64 bit 実数 / データ: 32bit 実数 |
最大実行時間 |
10秒 (Basic) / 10分以上 (Standard, Premium) |
対応 GPU |
NVIDIA Volta (Basic, Standard) / NVIDIA Ampere (Premium) / NVIDIA Hopper (Premium) |
マルチ GPU 対応 |
1 基 (Basic) / 最大 8 基 (Standard, Premium) |
エンドポイントURL |
https://optigan.fixstars.com |
Basic, Standard, Premium: Amplify の契約プラン (Basic は無償)。
Enterprise プランでは最大実行時間は無制限で、ユーザが設定できます。また、問題サイズの上限は GPU のメモリ量に依存します。131,072 変数を超える問題にも対応します。
対応する GPU は NVIDIA Volta / Ampere / Hopper と最新の NVIDIA Blackwell (準備中) です。これらの GPU を用いた Amplify AE の利用は、Fixstars Amplify 社のクラウドサービスを通じて提供されるほか、オンプレミス環境でも提供されます。
Changed in version 1.0.0
Fixstars Amplify AE はバージョン 1.0.0 で大きくアップデートされました。高次多項式対応・制約条件対応・求解性能の向上が行われました。旧バージョンでは 2 次多項式の目的関数とペナルティ関数のみに対応していました。新たに 4 次多項式の目的関数と等式・不等式制約条件に対応し、ペナルティ関数の重みパラメータの自動調整機能の性能も向上しました。 これにより、より幅広い用途において複雑な最適化問題の求解が可能になりました。移行期間を設けているため、以前のバージョンもしばらくは引き続き利用可能です。
入力の仕様¶
実数係数のバイナリ変数の多項式を入力として受け付けます。目的関数と制約条件 (あるいはペナルティ関数) で構成された問題に対応し、双方共に 4 次までの多項式の指定が可能です。バイナリ変数の最大数は 131,072 まで対応していますが、これは全結合モデル (変数が全ての変数と結合されているモデル) においての最大値です。疎結合形式での入力が可能なので、結合数が少ない問題ではより大きな問題サイズの求解が可能です。制約条件は等式・不等式制約の両方に対応しており (Constraint モード)、後述する PUBO モードではペナルティ関数を用いた制約条件の設定も可能です。
求解要求は JSON 形式で WEB API へのリクエストとして行います。API 仕様については API Reference を参照してください。
求解モード¶
Amplify AE は 2 つの求解モードを備えています。1 つめはデフォルトの Constraint モードです。2 つめは PUBO モードです。PUBO は Polynomial Unconstrained Binary Optimization の略です。通常の用途では、デフォルトの Constraint モードの利用を推奨します。これに対して PUBO モードは、量子アニーリングあるいはデジタル回路によるアニーリングハードウェアのシミュレータとして利用する研究者向けを想定しています。両者の大きな違いとして制約条件の取り扱いがあります。デフォルトの Constraint モードは等式・不等式制約条件をソルバーが直接扱えるのに対して、PUBO モードでは課したい制約条件に相当する目的関数へのペナルティ関数をユーザが設定して求解します。Amplify AE の動作アルゴリズムに則ったこれらの技術的な差異は、求解のアルゴリズム を参照してください。
Amplify SDK の機能を使うと、制約条件・ペナルティ関数の設定は Amplify SDK が自動で行います。また、Constraint モードと PUBO モードの切り替えも容易に可能です。詳細はクライアントのページ を参照してください。
Changed in version 1.1.0
バージョン 1.1.0 で、項数が多い 2 次の大規模問題に特化した密結合モードが追加されました。
Amplify SDK は目的関数の密度を見て、送信する形式を自動的に選びます。
目的関数が 2 次で十分に高密度なら密結合モードを使用し、そうでなければ従来の疎結合モードを使用します。
クライアントは Matrix を Poly に変換するため、係数行列を渡した場合も同じ規則に従います。
モードを明示的に選ぶには objective_format を設定してください。
ただし、項数や問題規模に応じて、指定したモードが非効率と判断された場合は、他方のモードで実行されます。
パラメータフリー¶
Amplify AE はユーザが求解に際して調整するパラメータを持ちません。ユーザが求解したい最適化問題を入力すると、ソルバー内部で自動的に最適なアニーリングの戦略を決定して求解します。例えば、シミュレーテッドアニーリング法における温度降下スケジュールや、ペナルティ関数の重みパラメータなどが自動調整されます。これにより、複雑なパラメータ調整の必要なく、ユーザは GPU アニーリングの性能を最大限に引き出すことができます。
マルチ GPU 対応¶
Amplify AE はマルチ GPU 環境に対応しており、複数の GPU を用いた並列処理が可能です。Amplify AE のマルチ GPU は、複数の異なる問題の同時求解と、同一の問題に対する計算能力の向上に利用できます。前者は、複数人での利用や複数の問題を同時に解く場合に有効です。後者は、同一の問題に対してより多くの計算資源を割り当て、GPU 間で通信することで、より高精度な解を得ることが可能になります。言い換えると、より短時間で高い精度の解を得られます。