量子コンピュータでも全結合グラフの計算がしたいですよね。D-Waveの量子アニーリングなどの結合が近隣の場合には量子ビットを複数コピーを使って経由して計算という方法がありましたが、量子ゲートでは異なる方法で全結合計算が実装されています。
今回は、
Factoring integers with sublinear resources on a superconducting quantum processor
https://arxiv.org/abs/2212.12372
こちらで、格子問題を解く際の最適化計算で全結合グラフが出ていて、効率的に1次元の量子ビットで解いています。
引用:https://arxiv.org/pdf/2212.12372.pdf
Aを見ると、量子ビットは一列に配置された一次元配列というのがわかります。ここから、Bのような10量子ビットの全結合グラフで実装される組合せ最適化を解く必要があります。
Cは一般的なQAOAの説明なので省きます。問題はDの量子回路で、これによって1次元配列の量子ビットについて全結合の計算ができます。
先にEのZZ-SWAPブロックについて簡単に説明します。
量子コンピュータを使ってQAOAという量子アルゴリズムを実行するには、時間発展演算子を利用します。量子ビット同士の相互作用はe={-iZZt}で計算されますが、これは、RZZ(2t)の形に変形できます。
https://qiita.com/KeiichiroHiga/items/d9377060fbc97817d849
今回時間に相当する部分は変分パラメータ化されてます。今回の中国の論文では、このRZZ + SWAPをまとめて実行することで、隣接で量子ビットの情報を交換しながらイジングの相互作用計算を進めることで全結合計算ができています。
ZZ-SWAPはRZZ+SWAPで構成されていて、RZZはCXとRZで表現されます。
ZZ-SWAPはRZZとSWAPをただ単に続けて計算したものなので、連続して書いて、さらにSWAPはCXを交互に三回で書き換えられます。
最終的には真ん中のCX2つは連続するとキャンセルできるので、かなりシンプルな形になります。
さらにここで、RZZとSWAPはターゲットビットとコントロールビットの区別がないので、上下反転させても成り立ちます。
そして、論文中の実機では2量子ビットゲートの基本がCZゲートを使っているので、CXをCZへ書き換えますが、
無事書き換えが終わりました。これで論文中に書かれているブロックが実現できました。CZもターゲットビットとコントロールビットの区別がないので、論文中のように表記して問題ありません。論文中では、RZの位置によってブロックの表現を変えていますね。
上下を入れ替えてもおなじなのでした。
ブロックの説明は以上です。次に肝心の回路を見てみます。
引用:https://arxiv.org/pdf/2212.12372.pdf
これは量子回路的にハードウェアの制約で上下が決まっていますが、2量子ビットのZZ-SWAPでは同じことをしています。量子ビット同士にZZ操作を行った後に、SWAPで入れ替えをしています。先ほどのブロックを並べる際に、内側のHゲートはすべてキャンセルされます。
ということで、論文の回路ができました。最後に、このswapネットワークが量子ビット相互作用しながら情報を入れ替えて完全グラフを実現する様子を、量子ビット相互作用のエッジの様子と入れ替わる様子を見ます。基本的にこのブロックを量子ビット数の深さだけ準備すればよいようです。4量子ビット全結合なら深さ4です。
下記の右側は解きたいグラフの相互作用が計算された部分を表し、左側はグラフのノードに対応した量子ビットの通し番号が書かれていて、SWAPされたら交換された数字を量子回路上に書いています。
0と1が交換され、2と3が交換されました。相互作用は01と23のエッジが計算されました。次のステップです。
次は03が計算され、交換されました。この調子で最後までやると、
このように、相互作用を計算しながら量子ビットを交換できました。4量子ビットではZZ-SWAPが4レイヤーでできました。
最後に10量子ビットでの10レイヤーを見てみます。
できました。かなり汎用性がある方法ですね。実機の精度がよほどよくないとこれだけの2量子ビットゲートを実行するのは大変そうですが。以上です。