LoginSignup
4

More than 1 year has passed since last update.

IBM,Rigetti,IonQの量子コンピュータでQAOAやってみた

Last updated at Posted at 2021-05-10

QAOA

QAOA(Quantum Approximate Optimization Algorithm) は、組み合わせ最適化問題を解く古典・量子アルゴリズムです。
精度保証や高速性の保証はありませんが、NISQ(Noisy Intermetidate Quantum)でも動く可能性アリとされています。

今回は、各社の量子コンピュータを使って、QAOAをやってみます。1
特にRigetti, IonQ のものは有料なので、ベンチマーク結果はまだまだ貴重だと思います。

実装の流れ

IBMについては、qiskitを用いてIBMQサービス(無料)で駆動します。
マシンとして、5 qubitでは性能が最も低い ibmqx2(=ibmq_5_yorktown) と 最も高いibmq_santiagoを使います。

RigettiおよびIonQについては、braketを用いてblueqat cloud をエンドポイントとして使用することで駆動します。

QAOAで解く問題

4ノードのMAX CUT です。
image.png

QAOA回路です。(p=1)

image.png

qiskitでのシミュレーション結果です。

image.png

問題の解は0101と1010であり、確かに解となる量子状態が高い確率で観測されます。

braketでのシミュレーション結果です。

image.png

シミュレーターなので、qiskitもbraketも変わりませんが、いずれも正しく実装できていると確認できます。

結果

IBM

image.png

Quantum Volume という性能指標が高いibmq_satiagoでは解けていますが、低いibmqx2ではうまくいきません。

Rigetti

image.png

全然だめなようです。

IonQ

image.png

1010は出ていますが、0101のほうが出ておらず、やや不自然です。

まとめ

無料のIBM量子コンピュータが一番良い という意外な結果になりました。
IBMの5量子ビットマシンは完成度が高いのかもしれません。
RigettiやIonQは有料だけあって、それぞれ37qubit,全結合11qubit使えますので、
量子ビット数が多数必要な問題やゲート操作が密になる回路では必須になると言えます。2


  1. なおQAOAパラメータはシミュレーターで最適化したものを決め打ちとし、回路生成し、実機実行しています。量子・古典でiterationを回すのが正当ですが、クラウドアクセスしか出来ない現状では非現実的な計算時間とお金がかかります。 

  2. 実はIBMも最大60量子ビット級のマシンや、QV=128のマシンを提供しています。が、無料ユーザーではアクセスできません。 

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4