blueqatでは、サードパーティーのDEVEL製のQAOAシミュレータを提供しています。(2020年9月現在)。使い方を紹介したいと思います。
シミュレータは完全無料です。https://blueqat.com/ トップページの中程から、blueqat simulatorを見つけてください。
NISQというボタンを押すと、下記の画面が出ます。
利用の仕方には多少の知識が必要ですが、プログラムを立ち上げるよりはかなり楽に試すことができます。実際にバックエンドにはblueqatが利用されています。
QAOAは量子アニーリングを量子ゲート方式の量子コンピュータで使えるようにしたものです。単純な量子アニーリングですと、設定値は、
stepとHamiltonianだけですみますが、ここではより複雑な計算ができるように、initializationとMixerが追加されています。普通の横磁場量子アニーリングを利用する際には、initializationとmixerは空欄で大丈夫です。問題設定をHamiltonianのところに入れます。
Hamiltonianには QUBO式と呼ばれる01で表現されたコスト関数を入れます。これによって、このコスト関数が最小になるような量子ビットの組合せを解くことができます。
上記ではq(0)-q(1)というコスト関数をときます。00,01,10,11のどれかが答えになりますが、上記の式を最小にする組み合わせは01です。答えは実際には01と表示されます。
このようにコストを入れることでQAOAと呼ばれるNISQアルゴリズムが実行されます。
ステップ数は断熱ステップ数と呼ばれ、量子アルゴリズムの分割数を決めるものです。問題の難易度によって多くすることで量子断熱ステップが増え、より正確になりますが、ステップが増えることで計算が重たくなりますので、計算時間と精度で調整をします。
InitializationとMixer
InitializationとMixerは量子アニーリングにさらに機能を追加するものです。基本的にMixerは量子アルゴリズムにおける探索の方法を決めます。これは、問題の設定方法によって決めますが、Mixerで代表的なものは量子アニーリングで通常利用される横磁場のXと呼ばれるもので、その他、XYやXZなどがあります。
また、InitializationはMixerに対応した形で利用されますが、通常はMixerの固有状態をとります。詳しくは別の機会に解説をしたいと思います。
無料で簡単にNISQやQAOAの計算ができますので、是非試してみてください!以上です。