相対エントロピーから情報と物理を組み立てる 第6部 第1章 §6.1.2 ★★★ 1量子ビットのゲートすべてと CNOT があれば、任意の n n n 量子ビットのユニタリを厳密に作ることができる。鍵は「制御つきのゲート」と「2準位ユニタリへの分解」の2つ
CNOT と制御つきのゲート
1量子ビットのゲートだけを並べた回路は、積状態を積状態のまま保つ。もつれを作るには、2つの量子ビットに同時に当たるゲートが要る。標準の選び方は制御 NOT (CNOT)で、1つ目の量子ビット(制御)が 1 1 1 のときだけ2つ目(標的)に X X X を当てる。
C N O T = ∣ 0 ⟩ ⟨ 0 ∣ ⊗ 1 + ∣ 1 ⟩ ⟨ 1 ∣ ⊗ X , C N O T ∣ x ⟩ ∣ y ⟩ = ∣ x ⟩ ∣ y ⊕ x ⟩ . (6.1.4) \mathrm{CNOT}=| 0 \rangle \langle 0 |\otimes\mathbf 1+| 1 \rangle \langle 1 |\otimes X,\qquad \mathrm{CNOT}| x \rangle | y \rangle =| x \rangle | y\oplus x \rangle .\tag{6.1.4} CNOT = ∣0 ⟩ ⟨ 0∣ ⊗ 1 + ∣1 ⟩ ⟨ 1∣ ⊗ X , CNOT ∣ x ⟩ ∣ y ⟩ = ∣ x ⟩ ∣ y ⊕ x ⟩ . ( 6.1.4 )
⊕ \oplus ⊕ は2を法とする足し算である。C N O T ( H ⊗ 1 ) ∣ 00 ⟩ = ( ∣ 00 ⟩ + ∣ 11 ⟩ ) / 2 = ∣ Φ + ⟩ \mathrm{CNOT}(H\otimes\mathbf 1)| 00 \rangle =(| 00 \rangle +| 11 \rangle )/\sqrt2=| \Phi^+ \rangle CNOT ( H ⊗ 1 ) ∣00 ⟩ = ( ∣00 ⟩ + ∣11 ⟩) / 2 = ∣ Φ + ⟩ で、CNOT は積状態から Bell 状態を作る。X = H Z H X=HZH X = H Z H なので、標的を H H H で挟むと制御 Z Z Z になる:C Z = ( 1 ⊗ H ) C N O T ( 1 ⊗ H ) = d i a g ( 1 , 1 , 1 , − 1 ) \mathrm{CZ}=(\mathbf 1\otimes H)\,\mathrm{CNOT}\,(\mathbf 1\otimes H)=\mathrm{diag}(1,1,1,-1) CZ = ( 1 ⊗ H ) CNOT ( 1 ⊗ H ) = diag ( 1 , 1 , 1 , − 1 ) 。CZ は2つの量子ビットについて対称で、どちらを制御と呼んでもよい。また、向きを交互に変えた CNOT を3回当てると2つの量子ビットの入れ替え(SWAP)になる。
一般の1量子ビットのユニタリ U U U について、制御 U U U を ∣ 0 ⟩ ⟨ 0 ∣ ⊗ 1 + ∣ 1 ⟩ ⟨ 1 ∣ ⊗ U | 0 \rangle \langle 0 |\otimes\mathbf 1+| 1 \rangle \langle 1 |\otimes U ∣0 ⟩ ⟨ 0∣ ⊗ 1 + ∣1 ⟩ ⟨ 1∣ ⊗ U と定める。これは CNOT と1量子ビットのゲートで作れる。
補題 6.1.4(制御 U U U の作り方 ★★★)
任意の 2 × 2 2\times2 2 × 2 のユニタリ U U U について、A B C = 1 ABC=\mathbf 1 A B C = 1 かつ U = e i α A X B X C U=\mathrm{e}^{\mathrm{i}\alpha}AXBXC U = e i α A X B X C を満たす1量子ビットのユニタリ A , B , C A,B,C A , B , C と実数 α \alpha α がある。このとき、標的に C C C 、CNOT、標的に B B B 、CNOT、標的に A A A を順に当て、最後に制御に P ( α ) P(\alpha) P ( α ) を当てる回路(図 6.1.1 )は制御 U U U に等しい。
証明 ZYZ 分解 U = e i α R z ( β ) R y ( γ ) R z ( δ ) U=\mathrm{e}^{\mathrm{i}\alpha}R_z(\beta)R_y(\gamma)R_z(\delta) U = e i α R z ( β ) R y ( γ ) R z ( δ ) を使い、
A = R z ( β ) R y ( γ / 2 ) , B = R y ( − γ / 2 ) R z ( − ( δ + β ) / 2 ) , C = R z ( ( δ − β ) / 2 ) A=R_z(\beta)R_y(\gamma/2),\quad B=R_y(-\gamma/2)R_z\bigl(-(\delta+\beta)/2\bigr),\quad C=R_z\bigl((\delta-\beta)/2\bigr) A = R z ( β ) R y ( γ /2 ) , B = R y ( − γ /2 ) R z ( − ( δ + β ) /2 ) , C = R z ( ( δ − β ) /2 )
と置く。回転は同じ軸どうしなら角が足し算になるので、A B C = 1 ABC=\mathbf 1 A B C = 1 は直ちに分かる。X X X で挟むと Y Y Y と Z Z Z の符号が変わるので X R y ( φ ) X = R y ( − φ ) XR_y(\varphi)X=R_y(-\varphi) X R y ( φ ) X = R y ( − φ ) 、X R z ( φ ) X = R z ( − φ ) XR_z(\varphi)X=R_z(-\varphi) X R z ( φ ) X = R z ( − φ ) が成り立ち、X B X = R y ( γ / 2 ) R z ( ( δ + β ) / 2 ) XBX=R_y(\gamma/2)R_z\bigl((\delta+\beta)/2\bigr) X B X = R y ( γ /2 ) R z ( ( δ + β ) /2 ) 。これに左から A A A 、右から C C C を掛けると A X B X C = R z ( β ) R y ( γ ) R z ( δ ) AXBXC=R_z(\beta)R_y(\gamma)R_z(\delta) A X B X C = R z ( β ) R y ( γ ) R z ( δ ) となる。回路の働きは、制御が ∣ 0 ⟩ | 0 \rangle ∣0 ⟩ なら標的に A B C = 1 ABC=\mathbf 1 A B C = 1 、∣ 1 ⟩ | 1 \rangle ∣1 ⟩ なら A X B X C AXBXC A X B X C が当たり、最後の P ( α ) P(\alpha) P ( α ) が ∣ 1 ⟩ | 1 \rangle ∣1 ⟩ の側にだけ位相 e i α \mathrm{e}^{\mathrm{i}\alpha} e i α を付けるので、制御 U U U に一致する。
図 6.1.1 制御 U U U を CNOT 2個と1量子ビットのゲートで作る回路(補題 6.1.4 )。黒丸が制御、⊕ \oplus ⊕ が CNOT の標的。時間は左から右へ進み、行列の積は右から左へ並ぶ。
2準位ユニタリへの分解
制御つきのゲートを重ねると、制御を何個も持つゲート(たとえば Toffoli ゲート ∣ x ⟩ ∣ y ⟩ ∣ z ⟩ ↦ ∣ x ⟩ ∣ y ⟩ ∣ z ⊕ x y ⟩ | x \rangle | y \rangle | z \rangle \mapsto| x \rangle | y \rangle | z\oplus xy \rangle ∣ x ⟩ ∣ y ⟩ ∣ z ⟩ ↦ ∣ x ⟩ ∣ y ⟩ ∣ z ⊕ x y ⟩ )も CNOT と1量子ビットのゲートで作れる。残る問題は、一般の 2 n × 2 n 2^n\times2^n 2 n × 2 n のユニタリをこうした部品にどう分けるかである。ここで行列の側の分解を使う。
計算基底の2つのベクトル ∣ s ⟩ , ∣ t ⟩ | s \rangle ,| t \rangle ∣ s ⟩ , ∣ t ⟩ が張る2次元の部分空間の中だけで働き、その外では恒等演算子として働くユニタリを2準位ユニタリ と呼ぶ。
定理 6.1.5(2準位ユニタリへの分解)
d × d d\times d d × d の任意のユニタリ U U U は、高々 d ( d − 1 ) / 2 d(d-1)/2 d ( d − 1 ) /2 個の2準位ユニタリの積に書ける。
証明 左から2準位ユニタリを掛けて、U U U の第1列の対角より下の成分を1つずつ 0 0 0 にする。第1行と第 j j j 行の2成分 ( a , b ) (a,b) ( a , b ) に、( a ∗ b ∗ − b a ) / ∣ a ∣ 2 + ∣ b ∣ 2 \begin{pmatrix}a^*&b^*\\-b&a\end{pmatrix}/\sqrt{\lvert a\rvert ^2+\lvert b\rvert ^2} ( a ∗ − b b ∗ a ) / ∣ a ∣ 2 + ∣ b ∣ 2 を第1行と第 j j j 行の間で当てると、第 j j j 行の成分は 0 0 0 になり、第1行の成分は ∣ a ∣ 2 + ∣ b ∣ 2 ≥ 0 \sqrt{\lvert a\rvert ^2+\lvert b\rvert ^2}\ge0 ∣ a ∣ 2 + ∣ b ∣ 2 ≥ 0 になる。これを j = d , d − 1 , … , 2 j=d,d-1,\dots,2 j = d , d − 1 , … , 2 について行う(d − 1 d-1 d − 1 個)と、第1列は ( 1 , 0 , … , 0 ) (1,0,\dots,0) ( 1 , 0 , … , 0 ) になる。行列はユニタリのままなので、各行の長さが 1 1 1 であることから第1行も ( 1 , 0 , … , 0 ) (1,0,\dots,0) ( 1 , 0 , … , 0 ) になる。残りの ( d − 1 ) × ( d − 1 ) (d-1)\times(d-1) ( d − 1 ) × ( d − 1 ) のブロックに同じことを繰り返すと、( d − 1 ) + ( d − 2 ) + ⋯ + 1 = d ( d − 1 ) / 2 (d-1)+(d-2)+\dots+1=d(d-1)/2 ( d − 1 ) + ( d − 2 ) + ⋯ + 1 = d ( d − 1 ) /2 個の2準位ユニタリで U U U は対角の位相の行列になる。最後の位相は最後に掛けた2準位ユニタリに含めることができる。掛けた行列の逆を順に並べれば U U U の分解になる。
2準位ユニタリは、∣ s ⟩ | s \rangle ∣ s ⟩ と ∣ t ⟩ | t \rangle ∣ t ⟩ のビット列が1か所だけ違うなら、その1つの量子ビットに当たる 2 × 2 2\times2 2 × 2 のユニタリを、残りの n − 1 n-1 n − 1 個の量子ビットが s s s と同じ値のときだけ当てる「多重制御つきのゲート」である。s s s と t t t が何か所も違うときは、1か所ずつ違うビット列を順にたどり(Gray 符号)、多重制御つきの X X X で ∣ s ⟩ | s \rangle ∣ s ⟩ と ∣ t ⟩ | t \rangle ∣ t ⟩ を隣り合う位置まで寄せてから当て、最後に寄せた分を戻す。こうして次の結論が得られる。
定理 6.1.6(厳密な万能性 ★★★)
1量子ビットのすべてのユニタリと CNOT からなる集合は、厳密に万能 である。すなわち、任意の n n n 量子ビットのユニタリは、この集合の元の有限個の積に等しい。必要なゲートの数は、4 n 4^n 4 n に n n n の多項式を掛けた程度で足りる。
この結論は Barenco ら1 1 A. Barenco, C. H. Bennett, R. Cleve, D. P. DiVincenzo, N. Margolus, P. Shor, T. Sleator, J. A. Smolin and H. Weinfurter (1995), Physical Review A 52 , 3457–3467。 が多重制御つきのゲートの作り方とともに示した。CNOT を別のもつれを作る2量子ビットのゲート(たとえば CZ)に替えても、1量子ビットのゲートと組み合わせれば CNOT が作れるので、万能性は変わらない。ただし、ゲートの数が 4 n 4^n 4 n に比例して増えるので、この構成で作れるからといって効率よく作れるわけではない。4節で、これより大幅に少なくすることはほとんどのユニタリについてできないことを示す。
例題 6.1.2 制御 T T T を CNOT と回転で作る ★★
オリジナル 制御 T T T ゲート ∣ 0 ⟩ ⟨ 0 ∣ ⊗ 1 + ∣ 1 ⟩ ⟨ 1 ∣ ⊗ T | 0 \rangle \langle 0 |\otimes\mathbf 1+| 1 \rangle \langle 1 |\otimes T ∣0 ⟩ ⟨ 0∣ ⊗ 1 + ∣1 ⟩ ⟨ 1∣ ⊗ T を、補題 6.1.4 の形で作りたい。
T = e i π / 8 R z ( π / 4 ) T=\mathrm{e}^{\mathrm{i}\pi/8}R_z(\pi/4) T = e i π /8 R z ( π /4 ) について、A = R z ( π / 8 ) A=R_z(\pi/8) A = R z ( π /8 ) 、B = R z ( − π / 8 ) B=R_z(-\pi/8) B = R z ( − π /8 ) 、C = 1 C=\mathbf 1 C = 1 、α = π / 8 \alpha=\pi/8 α = π /8 が補題の条件を満たすことを確かめよ。
できた回路の行列が d i a g ( 1 , 1 , 1 , e i π / 4 ) \mathrm{diag}(1,1,1,\mathrm{e}^{\mathrm{i}\pi/4}) diag ( 1 , 1 , 1 , e i π /4 ) になることを確かめ、制御と標的を入れ替えても同じゲートであることを説明せよ。
解答 (1) 同じ z z z 軸のまわりの回転なので A B C = R z ( π / 8 ) R z ( − π / 8 ) = 1 ABC=R_z(\pi/8)R_z(-\pi/8)=\mathbf 1 A B C = R z ( π /8 ) R z ( − π /8 ) = 1 。X R z ( − π / 8 ) X = R z ( π / 8 ) XR_z(-\pi/8)X=R_z(\pi/8) X R z ( − π /8 ) X = R z ( π /8 ) だから A X B X C = R z ( π / 8 ) R z ( π / 8 ) = R z ( π / 4 ) AXBXC=R_z(\pi/8)R_z(\pi/8)=R_z(\pi/4) A X B X C = R z ( π /8 ) R z ( π /8 ) = R z ( π /4 ) で、e i π / 8 A X B X C = e i π / 8 R z ( π / 4 ) = T \mathrm{e}^{\mathrm{i}\pi/8}AXBXC=\mathrm{e}^{\mathrm{i}\pi/8}R_z(\pi/4)=T e i π /8 A X B X C = e i π /8 R z ( π /4 ) = T 。条件は満たされる。
(2) 制御が ∣ 0 ⟩ | 0 \rangle ∣0 ⟩ のとき、標的には A B C = 1 ABC=\mathbf 1 A B C = 1 が当たり、制御の P ( π / 8 ) P(\pi/8) P ( π /8 ) は ∣ 0 ⟩ | 0 \rangle ∣0 ⟩ を変えない。制御が ∣ 1 ⟩ | 1 \rangle ∣1 ⟩ のとき、標的には R z ( π / 4 ) = d i a g ( e − i π / 8 , e i π / 8 ) R_z(\pi/4)=\mathrm{diag}(\mathrm{e}^{-\mathrm{i}\pi/8},\mathrm{e}^{\mathrm{i}\pi/8}) R z ( π /4 ) = diag ( e − i π /8 , e i π /8 ) が当たり、制御の P ( π / 8 ) P(\pi/8) P ( π /8 ) が e i π / 8 \mathrm{e}^{\mathrm{i}\pi/8} e i π /8 を掛ける。4つの基底ベクトル ∣ 00 ⟩ , ∣ 01 ⟩ , ∣ 10 ⟩ , ∣ 11 ⟩ | 00 \rangle ,| 01 \rangle ,| 10 \rangle ,| 11 \rangle ∣00 ⟩ , ∣01 ⟩ , ∣10 ⟩ , ∣11 ⟩ の係数はそれぞれ 1 , 1 , e i π / 8 e − i π / 8 = 1 , e i π / 8 e i π / 8 = e i π / 4 1,1,\mathrm{e}^{\mathrm{i}\pi/8}\mathrm{e}^{-\mathrm{i}\pi/8}=1,\mathrm{e}^{\mathrm{i}\pi/8}\mathrm{e}^{\mathrm{i}\pi/8}=\mathrm{e}^{\mathrm{i}\pi/4} 1 , 1 , e i π /8 e − i π /8 = 1 , e i π /8 e i π /8 = e i π /4 になり、行列は d i a g ( 1 , 1 , 1 , e i π / 4 ) \mathrm{diag}(1,1,1,\mathrm{e}^{\mathrm{i}\pi/4}) diag ( 1 , 1 , 1 , e i π /4 ) である。この行列は「2つのビットがどちらも 1 1 1 のときだけ位相 e i π / 4 \mathrm{e}^{\mathrm{i}\pi/4} e i π /4 」という規則で、2つのビットについて対称なので、制御と標的を入れ替えても変わらない。CZ が対称だったのと同じ理由で、対角の制御ゲートはどれも制御と標的の区別を持たない。
1 A. Barenco, C. H. Bennett, R. Cleve, D. P. DiVincenzo, N. Margolus, P. Shor, T. Sleator, J. A. Smolin and H. Weinfurter (1995), Physical Review A 52 , 3457–3467。
AI(Claude)が書いた教材を、木下が勉強しながら公開しています。式と数値は検算していますが、誤りが残っているかもしれません。誤りのご指摘・削除のご依頼をいただければ直します。 連絡先:support@tecktom.com