Amplify Quantum¶
Amplify SDK では量子コンピュータを利用した組合せ最適化計算を研究・検証するための機能を提供しています。
IBM Quantum, Amazon Braket等で提供されている量子コンピュータを含む数多くのデバイス及び複数の量子アルゴリズムに対応しており、デバイス・アルゴリズム間の比較が簡単です。
量子コンピュータをAmplify SDK のパワフルなインターフェースから利用できます。 直感的な定式化から量子回路への変換、量子コンピュータを用いた求解まで一気通貫にサポートします。
量子コンピュータとは¶
量子コンピュータは、量子力学の原理に基づいて情報を処理する計算機です。古典コンピュータが \(0\) または \(1\) のいずれかの値を取る「ビット」を情報の基本単位とするのに対し、量子コンピュータでは \(0\) と \(1\) の重ね合わせを取り得る「量子ビット (qubit)」を基本単位とします。この重ね合わせの利用により、古典コンピュータでは困難な問題を効率的に扱える可能性があるとして注目されています。
こうした量子コンピュータの性質を活用した量子アルゴリズムによって、組合せ最適化計算ができることが知られています。このクラスのアルゴリズムは、量子コンピュータで量子回路の実行・測定を行い、その結果を古典コンピュータ側で最適化に用いるという役割分担を取り、現在の量子コンピュータ (NISQ デバイス) でも現実的に動作することを目指した手法として研究・開発が進められています。
量子コンピュータによる最適化¶
Amplify SDK の拡張パッケージである Amplify Quantum を利用することで量子コンピュータを使った組合せ最適化計算が実行できます。
注意
量子アニーリングマシンを使った組合せ最適化計算については、D-Wave Systemsを参照して下さい。
Amplify Quantum では、solve() 関数を呼び出すだけで、モデルから量子回路への変換・古典最適化ループ・バックエンドとの通信までを自動で実行します。
対応している複数の量子コンピュータと複数の量子アルゴリズムを自由に組み合わせて簡単に最適化計算を実行できます。
以下は QAOA を実行する場合の Amplify Quantum 内部の動作です。
数理最適化モデルから量子回路への変換と古典最適化ループを担当するアルゴリズムクラスと、量子コンピュータまたはシミュレータとの通信による量子回路実行を担当するクライアントクラスが協調してローカルのPython環境で最適化を実行します。
sequenceDiagram
box rgba(90, 100, 120, 0.20) Amplify Quantum 内
participant Solve as solve()
participant Algo as アルゴリズムクラス(QAOA)
participant Client as クライアントクラス
end
participant Backend as 量子コンピュータ / シミュレータ
Solve->>Algo: 数理最適化モデル
Algo->>Algo: 量子回路 への変換
loop 収束するまで繰り返し
Algo->>Algo: パラメータ θ の更新 (古典最適化)
Algo->>Client: θ に対応する回路
Client->>Backend: 量子回路実行 (CloudAPI / ローカル)
Backend-->>Client: サンプリング結果
Client-->>Algo: 測定結果 (イジング列, 出現回数)
end
Algo-->>Solve: 最適解
対応デバイス¶
以下の量子コンピュータおよびシミュレータを利用できます。クライアントを差し替えるだけで実行デバイスを切り替え可能です。
量子コンピュータプロバイダ¶
IBM Quantum
超伝導方式
AQT
イオントラップ方式
IonQ
イオントラップ方式
IQM
超伝導方式
Rigetti
超伝導方式
量子回路シミュレータ¶
ユーザーのローカルマシンで動作するシミュレータと、クラウドサービスとして提供されているシミュレータの両方に対応しています。
Qulacs Simulator
ローカル
Qiskit Aer Simulator
ローカル
Amazon Braket Simulator
ローカル / クラウド
各クライアントの認証・パラメータ設定の詳細は 対応デバイス一覧 を参照してください。
対応アルゴリズム¶
以下の量子最適化アルゴリズムを利用できます。利用するクライアントクラスの初期化時にアルゴリズムを指定します。 アルゴリズムごとに対応している問題の次数や制約条件が変わります。
QAOA
任意次数のイジング多項式 (制約なし)
制約付き QAOA
任意次数のイジング多項式 + N-HOT 制約
Recursive QAOA
任意次数のイジング多項式 (制約なし)
各アルゴリズムの詳細や実行パラメータ設定については 対応アルゴリズム一覧 を参照してください。