@yuichirominato 2019.02.14更新 70views

【制御ゲート】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軸周りの回転を制御します。ユニタリ行列の形から反転可能ということがわかりました。以上です。

Recommended


CONTACT

info@mdrft.com

ブログトップへ Wikiへ移動

量子コンピュータ一般

量子ゲートアルゴリズム

量子アニーリング一般

量子アニーリングアルゴリズム

BlueqatSDKの使い方