初心者の量子ゲートCZ回路


はじめに

今日はCZ回路を少しみてみたいと思います。量子ニューロンをみていたらCZ回路が頻繁に出ます。


CZ回路とは?

CZ回路は量子計算の中で「コントロールゲート」と「ターゲットゲート」を持ち、コントロールゲートが1の時にターゲットゲートの位相を反転させます。

a -----*-----

|
b -----Z-----

CZ回路はCXもしくはCNOTゲートにHゲートを適用することで実現できます。

a -----*-----

|
b ---H-X-H---


CZ回路はリバーシブル!

なんかCZ回路は「コントロールゲート」と「ターゲットゲート」がリバーシブルのようです。つまり、

a -----*-----     a -----Z-----

| = |
b -----Z----- b -----*-----

つまり、、、

a -----*-----

|
b -----*-----

こういう風に書けそうです!


ユニタリ行列を確認

教えてもらいました。。。CZのユニタリ行列は、

CZ = [[1  0  0  0]

[0 1 0 0]
[0 0 1 0]
[0 0 0 -1]]

こうなりますが、行列変換を考えると、、、下記見辛いですが、[a,b,c,d]のベクトルにユニタリ行列をかけて、[a’,b’,c’,d’]をえます。

[a'  =  [[1  0  0  0]  @ [a

b' [0 1 0 0] b
c' [0 0 1 0] c
d'] [0 0 0 -1]] d]

ユニタリ変換のmatrixは入出力を対応させると列が入力、行が出力に対応します。

  a  b  c  d

[[1 0 0 0] a'
[0 1 0 0] b'
[0 0 1 0] c'
[0 0 0 -1]] d'

もとの状態ベクトルに対応させると、

 |00> |01> |10> |11>

[[1 0 0 0] |00>'
[0 1 0 0] |01>'
[0 0 1 0] |10>'
[0 0 0 -1]] |11>'

列の入力に対応して行の出力が対応します。上記のCZ回路のユニタリ変換だと、|11>の入力が-|11>となりますが、コントロールゲートとターゲットゲートを入れ替えてももともと両方|11>の回路が位相反転するだけなので、CZのユニタリ行列は変わりません。


見方を変えてみる

普通に式で書いてみても、やはり11の回路の確率振幅だけを符号反転させれば良さそうです。

CZ(01)(a|00>+b|01>+c|10>+d|11>) = a|00>+b|01>+c|10>-d|11>

CZ(10)(a|00>+b|01>+c|10>+d|11>) = a|00>+b|01>+c|10>-d|11>


まとめ

CZ回路は制御Z回路で、Z軸周りの回転を制御します。ユニタリ行列の形から反転可能ということがわかりました。以上です。