こんにちは、IBM社から433量子ビットの量子コンピュータが発表されましたね。量子ゲート方式なので量子ゲートを重ねていく形ですが、従来の量子回路記述方法ではもう負えないサイズかと思います。
実際にどれくらいの量子ビットのサイズでどれくらい量子回路の記述が難しいかを見てみます。実際にはテンソルネットワークという手法を使い433量子ビットを書いてみます。
今回はquimbをつかいました。ツールを読み込みます。
%matplotlib inline
import quimb as qu
import quimb.tensor as qtn
そして、433量子ビットを準備します。量子回路には1量子ビットのHゲート、そしてCNOTやCZなどを重ねて、最後Hゲートで絞めてみます。量子回路の実行を示す深さは10くらいです。
NN = 433
# 10 qubits and tag the initial wavefunction tensors
circ = qtn.Circuit(N=NN, tags='PSI0')
# initial layer of hadamards
for i in range(NN):
circ.apply_gate('H', i, gate_round=0)
for r in range(1, 3):
# even pairs
for i in range(0, NN, 2):
circ.apply_gate('CNOT', i, i + 1, gate_round=r)
# even pairs
for i in range(0, NN, 16):
circ.apply_gate('CNOT', i, i + 1, gate_round=r)
# odd pairs
for i in range(1, NN-2, 2):
circ.apply_gate('CZ', i, i + 1, gate_round=r)
# final layer of hadamards
for i in range(NN):
circ.apply_gate('H', i, gate_round=r + 1)
circ
<Circuit(n=433, num_gates=2246, gate_opts={'contract': 'auto-split-gate', 'propagate_tags': 'register'})>
circ.psi.graph(color=['PSI0', 'H', 'CNOT', 'CZ'])
<Figure size 432x432 with 1 Axes>
できました!もはや何が何だかわかりませんね!回路の深さが浅く、量子ビットが多いので従来の量子回路の記述方法では追い付かない気がします。今後はブロック単位で量子回路を書いたりと簡略化して記述する方法が主流になる気がしました。
以上です!