量子コンピューティングの基本回路
一般的な量子論理ゲートの名前(略称を含む)、回路形式、および対応するユニタリ行列
量子コンピューティング 、特に 量子回路 計算モデル
では 、 量子論理ゲート (または単に 量子ゲート ) は、少数の 量子ビットで動作する基本的な量子回路です。量子論理ゲートは、従来のデジタル回路における古典的 論理ゲート と同様に、量子回路の構成要素です 。
多くの古典的論理ゲートとは異なり、量子論理ゲートは 可逆的で ある。可逆的ゲートのみを使用して古典的コンピューティングを実行することが可能である。例えば、可逆的な トフォリゲートは、 補助ビットを 使用するコストを犠牲にして、 すべての ブール関数 を実装することができる。トフォリゲートには量子的に同等のゲートがあり、量子回路が古典的回路によって実行されるすべての操作を実行できることを示す。
量子ゲートは ユニタリ演算子 であり、何らかの 正規直交 基底 に対する ユニタリ行列 として記述されます。通常は 計算基底 が使用され、これは何かと比較しない限り、 d レベルの量子システム( 量子ビット 、 量子レジスタ 、または 量子トリット と 量子ディット など)の場合に、 正規直交基底 ベクトル が とラベル付けされるか 、 または 2進 表記を使用することを意味します 。
[1] : 22–23
|
0
⟩
、
|
1
⟩
、
…
、
|
d
−
1
⟩
{\displaystyle |0\rangle ,|1\rangle ,\dots ,|d-1\rangle }
歴史
量子 ゲートの現在の表記法は、 アドリアーノ・バレンコ、 チャールズ・ベネット 、 リチャード・クリーブ 、 デイビッド・P・ディヴィンチェンツォ 、ノーマン・ マーゴラス 、ピーター ・ショア 、ティコ・スレイター、 ジョン・A・スモーリン 、ハラルド・ウェインフルターなど、量子情報科学の創始者たちの多くによって開発され、 [2] リチャード・ファインマン が1986年に 導入した表記法に基づいている。 [3]
表現
エンタングルメントがなく、 グローバル位相 が ない単一 量子 ビットの状態は、 ブロッホ球 の表面上の点として表すことができ 、次のように記述されます 。ブロッホ球の x、y、z軸を中心とした回転は 、回転演算子ゲート によって表されます 。
|
ψ
⟩
=
コス
(
θ
/
2
)
|
0
⟩
+
e
私
φ
罪
(
θ
/
2
)
|
1
⟩
。
{\displaystyle |\psi \rangle =\cos \left(\theta /2\right)|0\rangle +e^{i\varphi }\sin \left(\theta /2\right)|1\rangle .}
量子論理ゲートはユニタリ行列 によって表される。 量子ビット に作用するゲート ( レジスタ )はユニタリ行列によって表され 、 行列乗算の群演算 [a] を伴うそのようなゲートすべての 集合は ユニタリ群 U(2 n ) である。 [2] ゲートが作用する量子状態は複素次元の単位ベクトルであり 、 複素 ユークリッド ノルム ( 2 ノルム )を持つ 。 [ 4 ] : 66 [5] : 56, 65 基底 ベクトル( 固有状態 と呼ばれることもある )は、量子ビットの状態が 測定された 場合に起こり得る結果であり、量子状態はこれらの結果の 線形結合 である。最も一般的な量子ゲートは、一般的な 古典論理ゲートが1 ビットまたは 2 ビット で動作する のと同じように、1 量子ビットまたは 2 量子ビットの ベクトル空間 で動作する。
ん
{\displaystyle n}
2
ん
×
2
ん
{\displaystyle 2^{n}\times 2^{n}}
2
ん
{\displaystyle 2^{n}}
量子論理ゲートは 連続対称群 に属しているが、実際の ハードウェアは 不正確であり、したがって精度が制限されている。ゲートの適用により通常エラーが発生し、 量子状態の忠実度は時間の経過とともに低下する。 エラー訂正を 使用する場合 、使用可能なゲートはさらに有限セットに制限される。 [4] : ch. 10 [1] : ch. 14 この記事の後半では、理想的な量子ゲートの特性に焦点が当てられているため、この点は無視されます。
量子状態は通常、ブラ・ケット と呼ばれる表記法の「ケット」で表されます 。
単一 量子ビット のベクトル表現は
|
1つの
⟩
=
ヴ
0
|
0
⟩
+
ヴ
1
|
1
⟩
→
[
ヴ
0
ヴ
1
]
。
{\displaystyle |a\rangle =v_{0}|0\rangle +v_{1}|1\rangle \rightarrow {\begin{bmatrix}v_{0}\\v_{1}\end{bmatrix}}.}
ここで、 およびは量子ビットの 複素 確率振幅 です。これらの値は、量子ビットの状態を測定するときに 0 または 1 を測定する確率を決定します。詳細については、以下の測定を参照してください。
v
0
{\displaystyle v_{0}}
v
1
{\displaystyle v_{1}}
値 0 は ket で表され 、 値 1 は ket で表されます 。
|
0
⟩
=
[
1
0
]
{\displaystyle |0\rangle ={\begin{bmatrix}1\\0\end{bmatrix}}}
|
1
⟩
=
[
0
1
]
{\displaystyle |1\rangle ={\begin{bmatrix}0\\1\end{bmatrix}}}
テンソル 積 (または クロネッカー積)は、量子状態を結合するために使用されます。 量子ビットレジスタ の結合状態は 、構成量子ビットのテンソル積です。テンソル積は、記号 で表されます 。
⊗
{\displaystyle \otimes }
2つの量子ビットのベクトル表現は次のようになる: [6]
|
ψ
⟩
=
v
00
|
00
⟩
+
v
01
|
01
⟩
+
v
10
|
10
⟩
+
v
11
|
11
⟩
→
[
v
00
v
01
v
10
v
11
]
.
{\displaystyle |\psi \rangle =v_{00}|00\rangle +v_{01}|01\rangle +v_{10}|10\rangle +v_{11}|11\rangle \rightarrow {\begin{bmatrix}v_{00}\\v_{01}\\v_{10}\\v_{11}\end{bmatrix}}.}
特定の量子状態に対するゲートの作用は 、状態を表すベクトル と ゲートを表す行列 を乗算する ことによって求められます。結果は新しい量子状態 になります 。
|
ψ
1
⟩
{\displaystyle |\psi _{1}\rangle }
U
{\displaystyle U}
|
ψ
2
⟩
{\displaystyle |\psi _{2}\rangle }
U
|
ψ
1
⟩
=
|
ψ
2
⟩
.
{\displaystyle U|\psi _{1}\rangle =|\psi _{2}\rangle .}
注目すべき例
ゲートの数は数え切れないほど無限に あります 。ゲートのいくつかは様々な著者によって命名されており、 [2] [1] [4] [5] [7] [8] [9] 、以下は文献で最もよく使われるゲートのいくつかです。
アイデンティティゲート
恒等ゲートは 恒等行列 であり、通常 I と書かれ、単一量子ビットに対して次のように定義される。
I
=
[
1
0
0
1
]
,
{\displaystyle I={\begin{bmatrix}1&0\\0&1\end{bmatrix}},}
ここで、 I は基底に依存せず、量子状態を変更しません。恒等ゲートは、さまざまなゲート操作の結果を数学的に記述する場合や、マルチ量子ビット回路について説明する場合に最も役立ちます。
パウリゲート( バツ 、 はい 、 ず )
量子ゲート(上から下へ):恒等ゲート、NOTゲート、パウリY、パウリZ
パウリゲートは 3つの パウリ行列 であり、1つの量子ビットに作用します。パウリ X 、 Y 、 Zはそれぞれ、 ブロッホ球の x 、 y 、 z 軸の周りのラジアン による 回転に相当します 。 [b]
(
X
,
Y
,
Z
)
{\displaystyle (X,Y,Z)}
(
σ
x
,
σ
y
,
σ
z
)
{\displaystyle (\sigma _{x},\sigma _{y},\sigma _{z})}
π
{\displaystyle \pi }
Pauli - Xゲートは、 ブロッホ球 上の z 軸を区別する標準基底 、 に関して 、古典的コンピュータの NOT ゲート の量子等価物です。 を に 、 を に マッピングするため、ビットフリップと呼ばれることもあります 。 同様に、Pauli- Y は を に 、 を に マッピングします 。 Pauli Z は 基底状態を変更せず に に マッピングします 。 この性質のため、Pauli Z は 位相フリップと呼ばれることもあります。
|
0
⟩
{\displaystyle |0\rangle }
|
1
⟩
{\displaystyle |1\rangle }
|
0
⟩
{\displaystyle |0\rangle }
|
1
⟩
{\displaystyle |1\rangle }
|
1
⟩
{\displaystyle |1\rangle }
|
0
⟩
{\displaystyle |0\rangle }
|
0
⟩
{\displaystyle |0\rangle }
i
|
1
⟩
{\displaystyle i|1\rangle }
|
1
⟩
{\displaystyle |1\rangle }
−
i
|
0
⟩
{\displaystyle -i|0\rangle }
|
0
⟩
{\displaystyle |0\rangle }
|
1
⟩
{\displaystyle |1\rangle }
−
|
1
⟩
{\displaystyle -|1\rangle }
これらの行列は通常次のように表される。
X
=
σ
x
=
NOT
=
[
0
1
1
0
]
,
{\displaystyle X=\sigma _{x}=\operatorname {NOT} ={\begin{bmatrix}0&1\\1&0\end{bmatrix}},}
Y
=
σ
y
=
[
0
−
i
i
0
]
,
{\displaystyle Y=\sigma _{y}={\begin{bmatrix}0&-i\\i&0\end{bmatrix}},}
Z
=
σ
z
=
[
1
0
0
−
1
]
.
{\displaystyle Z=\sigma _{z}={\begin{bmatrix}1&0\\0&-1\end{bmatrix}}.}
パウリ行列は 逆行列 であり、パウリ行列の平方は 単位行列 であることを意味します。
I
2
=
X
2
=
Y
2
=
Z
2
=
−
i
X
Y
Z
=
I
{\displaystyle I^{2}=X^{2}=Y^{2}=Z^{2}=-iXYZ=I}
パウリ行列も 反交換性があり 、例えば
Z
X
=
i
Y
=
−
X
Z
.
{\displaystyle ZX=iY=-XZ.}
パウリ行列の 行列 指数は 回転演算子 であり 、次のように記述されることが多い。
σ
j
{\displaystyle \sigma _{j}}
e
−
i
σ
j
θ
/
2
.
{\displaystyle e^{-i\sigma _{j}\theta /2}.}
制御ゲート
制御U ゲート の回路図
制御ゲートは2つ以上の量子ビットに作用し、1つ以上の量子ビットが何らかの演算の制御として機能します。 [2] たとえば、 制御NOTゲート (またはCNOTまたはCX)は2つの量子ビットに作用し、最初の量子ビットが の場合にのみ2番目の量子ビットに対してNOT演算を実行し 、それ以外の場合は変更しません。基底 、 、 、 に関しては 、 エルミート ユニタリ 行列によって表されます 。
|
1
⟩
{\displaystyle |1\rangle }
|
00
⟩
{\displaystyle |00\rangle }
|
01
⟩
{\displaystyle |01\rangle }
|
10
⟩
{\displaystyle |10\rangle }
|
11
⟩
{\displaystyle |11\rangle }
CNOT
=
[
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
]
.
{\displaystyle {\mbox{CNOT}}={\begin{bmatrix}1&0&0&0\\0&1&0&0\\0&0&0&1\\0&0&1&0\end{bmatrix}}.}
CNOT (または制御パウリ -X ) ゲートは、基底状態(ここでは XOR ) をマップするゲートとして記述できます 。
|
a
,
b
⟩
↦
|
a
,
a
⊕
b
⟩
{\displaystyle |a,b\rangle \mapsto |a,a\oplus b\rangle }
⊕
{\displaystyle \oplus }
CNOT は パウリ基底 で次のように表すことができます。
CNOT
=
e
i
π
4
(
I
−
Z
1
)
(
I
−
X
2
)
=
e
−
i
π
4
(
I
−
Z
1
)
(
I
−
X
2
)
.
{\displaystyle {\mbox{CNOT}}=e^{i{\frac {\pi }{4}}(I-Z_{1})(I-X_{2})}=e^{-i{\frac {\pi }{4}}(I-Z_{1})(I-X_{2})}.}
CNOT はエルミート ユニタリ演算子であるため、 および であり 、 が 逆行列 で あるという 性質を持ちます 。
e
i
θ
U
=
(
cos
θ
)
I
+
(
i
sin
θ
)
U
{\displaystyle e^{i\theta U}=(\cos \theta )I+(i\sin \theta )U}
U
=
e
i
π
2
(
I
−
U
)
=
e
−
i
π
2
(
I
−
U
)
{\displaystyle U=e^{i{\frac {\pi }{2}}(I-U)}=e^{-i{\frac {\pi }{2}}(I-U)}}
より一般的には、 Uが 行列表現を持つ単一量子ビット上で動作するゲートである
場合、
U
=
[
u
00
u
01
u
10
u
11
]
,
{\displaystyle U={\begin{bmatrix}u_{00}&u_{01}\\u_{10}&u_{11}\end{bmatrix}},}
制御 U ゲートは
、 最初の量子ビットが制御として機能するように 2 つの量子ビットを操作するゲートです。次のように基底状態をマッピングします。
制御パウリ ゲートの回路図 (左から右へ): CNOT (または制御 X)、制御 Y、制御 Z。
|
00
⟩
↦
|
00
⟩
{\displaystyle |00\rangle \mapsto |00\rangle }
|
01
⟩
↦
|
01
⟩
{\displaystyle |01\rangle \mapsto |01\rangle }
|
10
⟩
↦
|
1
⟩
⊗
U
|
0
⟩
=
|
1
⟩
⊗
(
u
00
|
0
⟩
+
u
10
|
1
⟩
)
{\displaystyle |10\rangle \mapsto |1\rangle \otimes U|0\rangle =|1\rangle \otimes (u_{00}|0\rangle +u_{10}|1\rangle )}
|
11
⟩
↦
|
1
⟩
⊗
U
|
1
⟩
=
|
1
⟩
⊗
(
u
01
|
0
⟩
+
u
11
|
1
⟩
)
{\displaystyle |11\rangle \mapsto |1\rangle \otimes U|1\rangle =|1\rangle \otimes (u_{01}|0\rangle +u_{11}|1\rangle )}
制御されたU を表す行列 は
C
U
=
[
1
0
0
0
0
1
0
0
0
0
u
00
u
01
0
0
u
10
u
11
]
.
{\displaystyle {\mbox{C}}U={\begin{bmatrix}1&0&0&0\\0&1&0&0\\0&0&u_{00}&u_{01}\\0&0&u_{10}&u_{11}\end{bmatrix}}.}
Uが パウリ演算子 X 、 Y 、 Z のいずれかである場合、それぞれ「制御 X 」、「制御 Y 」、または「制御 Z 」という用語 が使用されることがあります。 [4] :177–185 これは単にC X 、C Y 、C Z と短縮されることもあります 。
一般に、任意の単一量子ビット ユニタリゲートは と表現できる 。ここで、 Hは エルミート行列 であり 、制御される U は
U
=
e
i
H
{\displaystyle U=e^{iH}}
C
U
=
e
i
1
2
(
I
−
Z
1
)
H
2
.
{\displaystyle CU=e^{i{\frac {1}{2}}(I-Z_{1})H_{2}}.}
制御は、任意の数の量子ビットを持つゲート[2] やプログラミング言語の関数 [10] に拡張することができる。 関数は重ね合わせ状態を条件とすることができる。 [11] [12]
古典的制御
例: 量子ビット が測定され、この測定の結果は ブール 値であり、古典コンピュータによって使用されます。 が 1 に測定された場合、古典コンピュータは量子コンピュータに U ゲートを に適用するように指示します 。 回路図では、1 本の線は 量子ビット 、2 本の線は ビット です。
ϕ
{\displaystyle \phi }
ϕ
{\displaystyle \phi }
ψ
{\displaystyle \psi }
ゲートは古典的論理によって制御することもできる。量子コンピュータは古典 的コンピュータ によって制御され、 どのゲートをどの量子ビットで実行するかという命令を古典的コンピュータから受け取る コプロセッサのように動作する。 [13] : 42–43 [14] 古典的制御とは、量子コンピュータの命令シーケンスにゲートを含めるか省略するかということである。 [4] : 26–28 [1] : 87–88
位相シフトゲート
位相シフトは、基底状態とを マッピングする単一量子ビット ゲートのファミリです。このゲートを適用した後、 または を測定する確率は変わりませんが、量子状態の位相は変更されます。これは、水平円 (一定の緯度の線) をトレースすること、または ブロッホ球面 上の z 軸を中心にラジアン で回転することと同じです 。位相シフト ゲートは、次の行列で表されます。
|
0
⟩
↦
|
0
⟩
{\displaystyle |0\rangle \mapsto |0\rangle }
|
1
⟩
↦
e
i
φ
|
1
⟩
{\displaystyle |1\rangle \mapsto e^{i\varphi }|1\rangle }
|
0
⟩
{\displaystyle |0\rangle }
|
1
⟩
{\displaystyle |1\rangle }
φ
{\displaystyle \varphi }
P
(
φ
)
=
[
1
0
0
e
i
φ
]
{\displaystyle P(\varphi )={\begin{bmatrix}1&0\\0&e^{i\varphi }\end{bmatrix}}}
ここで は 周期 2π の 位相シフト です 。一般的な例としては、 T ゲート (歴史的には ゲートとして知られています)、位相ゲート (S ゲートとも呼ばれ、 S と表記されますが、 S は SWAP ゲートに使用されることもあります) 、パウリ Z ゲート (
φ
{\displaystyle \varphi }
φ
=
π
4
{\textstyle \varphi ={\frac {\pi }{4}}}
π
/
8
{\displaystyle \pi /8}
φ
=
π
2
{\textstyle \varphi ={\frac {\pi }{2}}}
φ
=
π
.
{\displaystyle \varphi =\pi .}
位相シフト ゲートは次のように相互に関連しています。
Z
=
[
1
0
0
e
i
π
]
=
[
1
0
0
−
1
]
=
P
(
π
)
{\displaystyle Z={\begin{bmatrix}1&0\\0&e^{i\pi }\end{bmatrix}}={\begin{bmatrix}1&0\\0&-1\end{bmatrix}}=P\left(\pi \right)}
S
=
[
1
0
0
e
i
π
2
]
=
[
1
0
0
i
]
=
P
(
π
2
)
=
Z
{\displaystyle S={\begin{bmatrix}1&0\\0&e^{i{\frac {\pi }{2}}}\end{bmatrix}}={\begin{bmatrix}1&0\\0&i\end{bmatrix}}=P\left({\frac {\pi }{2}}\right)={\sqrt {Z}}}
T
=
[
1
0
0
e
i
π
4
]
=
P
(
π
4
)
=
S
=
Z
4
{\displaystyle T={\begin{bmatrix}1&0\\0&e^{i{\frac {\pi }{4}}}\end{bmatrix}}=P\left({\frac {\pi }{4}}\right)={\sqrt {S}}={\sqrt[{4}]{Z}}}
位相ゲートは エルミート ではないことに注意する (すべての を除く )。これらのゲートは、それらのエルミート共役ゲートとは異なります 。2つの 随伴 (または 共役転置 )ゲート とが 命令セットに含まれることがあります。 [15] [16]
P
(
φ
)
{\displaystyle P(\varphi )}
φ
=
n
π
,
n
∈
Z
{\displaystyle \varphi =n\pi ,n\in \mathbb {Z} }
P
†
(
φ
)
=
P
(
−
φ
)
{\displaystyle P^{\dagger }(\varphi )=P(-\varphi )}
S
†
{\displaystyle S^{\dagger }}
T
†
{\displaystyle T^{\dagger }}
アダマール門
アダマール ゲートまたはウォルシュ アダマール ゲートは、 ジャック アダマール ( フランス語: [adamaʁ] ) と ジョセフ L. ウォルシュ にちなんで名付けられ、単一の量子ビットに作用します。基底状態 と をマッピングします (計算基底状態が与えられている場合は、等しい重ね合わせ状態を作成します)。2 つの状態 と は、それぞれ および と 表記されることもあります 。アダマール ゲートは、 ブロッホ球面 の 軸を中心にを回転するため 、 逆向きです。これは 、アダマール行列 によって表されます 。
|
0
⟩
↦
|
0
⟩
+
|
1
⟩
2
{\textstyle |0\rangle \mapsto {\frac {|0\rangle +|1\rangle }{\sqrt {2}}}}
|
1
⟩
↦
|
0
⟩
−
|
1
⟩
2
{\textstyle |1\rangle \mapsto {\frac {|0\rangle -|1\rangle }{\sqrt {2}}}}
(
|
0
⟩
+
|
1
⟩
)
/
2
{\displaystyle (|0\rangle +|1\rangle )/{\sqrt {2}}}
(
|
0
⟩
−
|
1
⟩
)
/
2
{\displaystyle (|0\rangle -|1\rangle )/{\sqrt {2}}}
|
+
⟩
{\displaystyle |+\rangle }
|
−
⟩
{\displaystyle |-\rangle }
π
{\displaystyle \pi }
(
x
^
+
z
^
)
/
2
{\displaystyle ({\hat {x}}+{\hat {z}})/{\sqrt {2}}}
アダマールゲートの回路表現
H
=
1
2
[
1
1
1
−
1
]
.
{\displaystyle H={\frac {1}{\sqrt {2}}}{\begin{bmatrix}1&1\\1&-1\end{bmatrix}}.}
エルミート (つまり ) アダマールゲートを使用して 基底 の変更 を実行すると、 と が反転します 。たとえば 、
H
†
=
H
−
1
=
H
{\displaystyle H^{\dagger }=H^{-1}=H}
x
^
{\displaystyle {\hat {x}}}
z
^
{\displaystyle {\hat {z}}}
H
Z
H
=
X
{\displaystyle HZH=X}
H
X
H
=
Z
=
S
.
{\displaystyle H{\sqrt {X}}\;H={\sqrt {Z}}=S.}
スワップゲート
SWAPゲートの回路図
スワップゲートは2つの量子ビットを交換する。基底、、、 に関して 、 それは行列で表される
。
|
00
⟩
{\displaystyle |00\rangle }
|
01
⟩
{\displaystyle |01\rangle }
|
10
⟩
{\displaystyle |10\rangle }
|
11
⟩
{\displaystyle |11\rangle }
SWAP
=
[
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
]
.
{\displaystyle {\mbox{SWAP}}={\begin{bmatrix}1&0&0&0\\0&0&1&0\\0&1&0&0\\0&0&0&1\end{bmatrix}}.}
スワップ ゲートは、次の合計形式に分解できます。
SWAP
=
I
⊗
I
+
X
⊗
X
+
Y
⊗
Y
+
Z
⊗
Z
2
{\displaystyle {\mbox{SWAP}}={\frac {I\otimes I+X\otimes X+Y\otimes Y+Z\otimes Z}{2}}}
トフォリ(CCNOT)ゲート
トフォリゲートの回路図
トッフォリゲートは トマソ・トッフォリ にちなんで名付けられ、CCNOTゲートまたはドイチュゲートとも呼ばれる 3ビットゲートで、古典計算では 普遍的 だが量子計算では普遍的ではない。量子トッフォリゲートは3量子ビット用に定義された同じゲートである。入力量子ビットをおよび のみに限定すると 、 最初の2ビットが 状態にある場合は3番目のビットに パウリ -X (またはNOT)を適用し、そうでない場合は何もしない。これはCC-U(制御-制御ユニタリ)ゲートの例である。これは古典ゲートの量子アナログであるため、その真理値表によって完全に指定される。トッフォリゲートは、単一量子ビットのアダマールゲートと組み合わせると普遍的である。 [17]
D
(
π
/
2
)
{\displaystyle D(\pi /2)}
|
0
⟩
{\displaystyle |0\rangle }
|
1
⟩
{\displaystyle |1\rangle }
|
1
⟩
{\displaystyle |1\rangle }
Toffoli ゲートは、 計算基底内の状態の
マッピングを実行するため、古典的な AND ( ) および XOR ( ) 演算に関連しています。
∧
{\displaystyle \land }
⊕
{\displaystyle \oplus }
|
a
,
b
,
c
⟩
↦
|
a
,
b
,
c
⊕
(
a
∧
b
)
⟩
{\displaystyle |a,b,c\rangle \mapsto |a,b,c\oplus (a\land b)\rangle }
トフォリゲートはパウリ行列 を使って次のように
表される。
Toff
=
e
i
π
8
(
I
−
Z
1
)
(
I
−
Z
2
)
(
I
−
X
3
)
=
e
−
i
π
8
(
I
−
Z
1
)
(
I
−
Z
2
)
(
I
−
X
3
)
.
{\displaystyle {\mbox{Toff}}=e^{i{\frac {\pi }{8}}(I-Z_{1})(I-Z_{2})(I-X_{3})}=e^{-i{\frac {\pi }{8}}(I-Z_{1})(I-Z_{2})(I-X_{3})}.}
普遍的な量子ゲート
CNOT と はどちらも ユニバーサル 2 量子ビット ゲートであり、相互に変換できます。
SWAP
{\displaystyle {\sqrt {\mbox{SWAP}}}}
ユニバーサル量子ゲート のセット とは、量子コンピュータで可能なあらゆる操作を簡約できるゲートのセット、つまり、他のユニタリ操作をセットのゲートの有限シーケンスとして表現できるゲートのセットのことです。技術的には、これはゲートの 無数 セット未満では不可能です。なぜなら、可能な量子ゲートの数は無数であるのに対し、有限セットの有限シーケンスの数は 可算だ からです。この問題を解決するには、この有限セットのゲートシーケンスで量子操作を近似できることだけが必要です。さらに、 定数個の量子ビットの ユニタリの場合、 ソロベイ-キタエフの定理 により、これが効率的に実行できることが保証されます。量子ゲートのセットがユニバーサルであるかどうかを確認するには、 群論的 方法 [18] や(近似) ユニタリ t デザイン [19]との関連を使用して実行できます。
ユニバーサル量子ゲート セットには次のものがあります。
回転演算子 R x ( θ ) 、 R y ( θ ) 、 R z ( θ ) 、 位相シフトゲート P ( φ ) [c] 、およびCNOTは、普遍的な量子ゲートセットを形成するために一般的に使用されます。 [20] [d]
クリフォード 集合 {CNOT, H , S } + Tゲート。 クリフォード集合だけでは、 ゴッテスマン-ニル定理 に従って古典的に効率的にシミュレートできるため、普遍的な量子ゲート集合ではありません 。
ト フォリゲート +アダマールゲート [17] 。トフォリゲートだけで、すべての古典的な計算を網羅する可逆 ブール代数 論理回路 の汎用ゲートセットを形成します。
ドイツ門
単一ゲートのユニバーサル量子ゲートは、物理学者 デイヴィッド・ドイチュ にちなんで名付けられたパラメータ化された3量子ビットのドイチュ ゲート [21]を使用して定式化することもできます。これは CC-U ゲート、つまり 制御制御ユニタリー ゲートの一般的なケースであり 、次のように定義されます。
D
(
θ
)
{\displaystyle D(\theta )}
|
a
,
b
,
c
⟩
↦
{
i
cos
(
θ
)
|
a
,
b
,
c
⟩
+
sin
(
θ
)
|
a
,
b
,
1
−
c
⟩
for
a
=
b
=
1
,
|
a
,
b
,
c
⟩
otherwise
.
{\displaystyle |a,b,c\rangle \mapsto {\begin{cases}i\cos(\theta )|a,b,c\rangle +\sin(\theta )|a,b,1-c\rangle &{\text{for}}\ a=b=1,\\|a,b,c\rangle &{\text{otherwise}}.\end{cases}}}
残念ながら、プロトコルがないため、機能的なドイッチゲートはまだ実現できていない。中性原子における双極子間相互作用を利用したドイッチゲートを実現する提案がいくつかある。 [22]
可逆古典コンピューティング用の汎用論理ゲートである Toffoli ゲートは Deutsch ゲートに還元可能であり 、すべての可逆古典論理演算が汎用量子コンピュータで実行できることを示しています。
D
(
π
/
2
)
{\displaystyle D(\pi /2)}
普遍性を実現するのに 十分な単一の2量子ビットゲートも存在する。1996年にアドリアノ・バレンコは、ドイッチュゲートを単一の2量子ビットゲート( バレンコゲート)のみを使用して分解できることを示したが、実験的に実現することは困難である。 [1] :93 この機能は量子回路に特有のものであり、可逆かつ普遍的な古典的な2ビットゲートは存在しない。 [1] :93普遍的な2量子ビットゲートは、高速低電力マイクロプロセッサの古典的な可逆回路を改善するために実装できる可能性がある。 [1] : 93
回路構成
直列配線ゲート
直列に接続された2 つのゲート Y と X。 これらを掛け合わせると、ワイヤ上に現れる順序が逆になります。 量子ビットに作用する2 つのゲート A と B が あるとします 。直列回路で B を A の 後に配置すると 、2 つのゲートの効果は 1 つのゲート C として記述できます。
n
{\displaystyle n}
C
=
B
⋅
A
{\displaystyle C=B\cdot A}
ここで は 行列の乗算 です 。結果として得られるゲート C は A および B と同じ次元を持ちます 。ゲートを乗算すると、回路図に現れる順序が逆になります。 [4] : 17–18,22–23,62–64 [5] : 147–169
⋅
{\displaystyle \cdot }
たとえば、 どちらも単一の量子ビットに作用するPauli X ゲートを Pauli Yゲートの後に配置すると、単一の複合ゲート C として記述できます。
C
=
X
⋅
Y
=
[
0
1
1
0
]
⋅
[
0
−
i
i
0
]
=
[
i
0
0
−
i
]
=
i
Z
{\displaystyle C=X\cdot Y={\begin{bmatrix}0&1\\1&0\end{bmatrix}}\cdot {\begin{bmatrix}0&-i\\i&0\end{bmatrix}}={\begin{bmatrix}i&0\\0&-i\end{bmatrix}}=iZ}
積記号( )は省略されることが多いです。
⋅
{\displaystyle \cdot }
量子ゲートの指数
ユニタリ行列 のすべての 実 指数 もユニタリ行列であり、すべての量子ゲートもユニタリ行列です。
正の整数指数は直列接続されたゲートのシーケンス(例: ) と同等であり、実数指数は直列回路の一般化です。たとえば、 と は どちらも有効な量子ゲートです。
X
3
=
X
⋅
X
⋅
X
{\displaystyle X^{3}=X\cdot X\cdot X}
X
π
{\displaystyle X^{\pi }}
X
=
X
1
/
2
{\displaystyle {\sqrt {X}}=X^{1/2}}
U
0
=
I
{\displaystyle U^{0}=I}
任意のユニタリ行列に対して 。 単位行列 ( )は NOP [23] [24] のように振る舞い 、量子回路では裸線として表現されるか、まったく表示されない。
U
{\displaystyle U}
I
{\displaystyle I}
すべてのゲートはユニタリ行列であるため、 および と なります。 ここで は 共役転置 です 。つまり、ゲートの負の指数は、正の指数のユニタリ逆数です。 たとえば 、位相シフト ゲートの負の指数にはや などが あります 。
U
†
U
=
U
U
†
=
I
{\displaystyle U^{\dagger }U=UU^{\dagger }=I}
U
†
=
U
−
1
{\displaystyle U^{\dagger }=U^{-1}}
†
{\displaystyle \dagger }
U
−
n
=
(
U
n
)
†
{\displaystyle U^{-n}=(U^{n})^{\dagger }}
T
−
1
=
T
†
{\displaystyle T^{-1}=T^{\dagger }}
T
−
2
=
(
T
2
)
†
=
S
†
{\displaystyle T^{-2}=(T^{2})^{\dagger }=S^{\dagger }}
エルミート行列 については であり、ユニタリ性のため、 すべてのエルミートゲートについても となる こと に注意してください。これらは 逆行列 です。エルミートゲートの例としては、パウリゲート、アダマールゲート、CNOT、SWAP、トフォリゲートなどがあります。各エルミートユニタリ行列には、 次 の 性質があります。
H
†
=
H
,
{\displaystyle H^{\dagger }=H,}
H
H
†
=
I
,
{\displaystyle HH^{\dagger }=I,}
H
2
=
I
{\displaystyle H^{2}=I}
H
{\displaystyle H}
e
i
θ
H
=
(
cos
θ
)
I
+
(
i
sin
θ
)
H
{\displaystyle e^{i\theta H}=(\cos \theta )I+(i\sin \theta )H}
H
=
e
i
π
2
(
I
−
H
)
=
e
−
i
π
2
(
I
−
H
)
.
{\displaystyle H=e^{i{\frac {\pi }{2}}(I-H)}=e^{-i{\frac {\pi }{2}}(I-H)}.}
平行ゲート
2 つのゲートを並列に接続する と、 ゲートと同等になります 。
Y
{\displaystyle Y}
X
{\displaystyle X}
Y
⊗
X
{\displaystyle Y\otimes X}
2つの量子ゲートのテンソル 積 (または クロネッカー積 )は、2つのゲートを並列に並べた場合に等しいゲートである。 [4] : 71–75 [5] : 148
図のように、Pauli -Y ゲートと Pauli- X ゲートを並列に組み合わせると、次のように記述できます。
C
=
Y
⊗
X
=
[
0
−
i
i
0
]
⊗
[
0
1
1
0
]
=
[
0
[
0
1
1
0
]
−
i
[
0
1
1
0
]
i
[
0
1
1
0
]
0
[
0
1
1
0
]
]
=
[
0
0
0
−
i
0
0
−
i
0
0
i
0
0
i
0
0
0
]
{\displaystyle C=Y\otimes X={\begin{bmatrix}0&-i\\i&0\end{bmatrix}}\otimes {\begin{bmatrix}0&1\\1&0\end{bmatrix}}={\begin{bmatrix}0{\begin{bmatrix}0&1\\1&0\end{bmatrix}}&-i{\begin{bmatrix}0&1\\1&0\end{bmatrix}}\\i{\begin{bmatrix}0&1\\1&0\end{bmatrix}}&0{\begin{bmatrix}0&1\\1&0\end{bmatrix}}\end{bmatrix}}={\begin{bmatrix}0&0&0&-i\\0&0&-i&0\\0&i&0&0\\i&0&0&0\end{bmatrix}}}
Pauli- X ゲートと Pauli- Y ゲートはどちらも 1 つの量子ビットに作用します。結果として得られるゲートは 2 つの量子ビットに作用します。
C
{\displaystyle C}
テンソル積記号が省略され、代わりに演算子にインデックスが使用されることもあります。 [25]
このゲートは、2 つの量子ビットに並列に適用された アダマール ゲート ( ) です。次のように記述できます。
H
2
=
H
⊗
H
{\displaystyle H_{2}=H\otimes H}
H
{\displaystyle H}
H
2
=
H
⊗
H
=
1
2
[
1
1
1
−
1
]
⊗
1
2
[
1
1
1
−
1
]
=
1
2
[
1
1
1
1
1
−
1
1
−
1
1
1
−
1
−
1
1
−
1
−
1
1
]
{\displaystyle H_{2}=H\otimes H={\frac {1}{\sqrt {2}}}{\begin{bmatrix}1&1\\1&-1\end{bmatrix}}\otimes {\frac {1}{\sqrt {2}}}{\begin{bmatrix}1&1\\1&-1\end{bmatrix}}={\frac {1}{2}}{\begin{bmatrix}1&1&1&1\\1&-1&1&-1\\1&1&-1&-1\\1&-1&-1&1\end{bmatrix}}}
この「2 量子ビット並列アダマール ゲート」は、たとえば 2 量子ビットのゼロ ベクトル ( )に適用すると、4 つの可能な結果
|
00
⟩
{\displaystyle |00\rangle }
( 、 、 、 ) のいずれにおいても観測される確率が等しい量子状態を作成します 。 この操作は次のように記述できます。
|
00
⟩
{\displaystyle |00\rangle }
|
01
⟩
{\displaystyle |01\rangle }
|
10
⟩
{\displaystyle |10\rangle }
|
11
⟩
{\displaystyle |11\rangle }
H
2
|
00
⟩
=
1
2
[
1
1
1
1
1
−
1
1
−
1
1
1
−
1
−
1
1
−
1
−
1
1
]
[
1
0
0
0
]
=
1
2
[
1
1
1
1
]
=
1
2
|
00
⟩
+
1
2
|
01
⟩
+
1
2
|
10
⟩
+
1
2
|
11
⟩
=
|
00
⟩
+
|
01
⟩
+
|
10
⟩
+
|
11
⟩
2
{\displaystyle H_{2}|00\rangle ={\frac {1}{2}}{\begin{bmatrix}1&1&1&1\\1&-1&1&-1\\1&1&-1&-1\\1&-1&-1&1\end{bmatrix}}{\begin{bmatrix}1\\0\\0\\0\end{bmatrix}}={\frac {1}{2}}{\begin{bmatrix}1\\1\\1\\1\end{bmatrix}}={\frac {1}{2}}|00\rangle +{\frac {1}{2}}|01\rangle +{\frac {1}{2}}|10\rangle +{\frac {1}{2}}|11\rangle ={\frac {|00\rangle +|01\rangle +|10\rangle +|11\rangle }{2}}}
例: 3 量子ビット レジスタ 上のアダマール変換 。
|
ψ
⟩
{\displaystyle |\psi \rangle }
ここで、各測定可能な状態の振幅は 1 ⁄ 2 です。任意の状態を観測する確率は、測定可能な状態の振幅の絶対値の 2 乗です。これは、上記の例では、4 つのケースのいずれかを観測する確率が 4 分の 1 であることを意味します。詳細については、測定を参照してください。
H
2
{\displaystyle H_{2}}
2 つの量子ビットに対してアダマール変換を 実行します 。同様に、ゲートは量子ビット の レジスタ に対してアダマール変換を実行します 。
H
⊗
H
⊗
⋯
⊗
H
⏟
n
times
=
⨂
1
n
H
=
H
⊗
n
=
H
n
{\displaystyle \underbrace {H\otimes H\otimes \dots \otimes H} _{n{\text{ times}}}=\bigotimes _{1}^{n}H=H^{\otimes n}=H_{n}}
n
{\displaystyle n}
すべて に初期化された量子ビット のレジスタに適用すると 、 アダマール変換により、量子レジスタは、その 可能な状態のいずれかで測定される確率が等しい重ね合わせ状態になります。
n
{\displaystyle n}
|
0
⟩
{\displaystyle |0\rangle }
2
n
{\displaystyle 2^{n}}
⨂
0
n
−
1
(
H
|
0
⟩
)
=
1
2
n
[
1
1
⋮
1
]
=
1
2
n
(
|
0
⟩
+
|
1
⟩
+
⋯
+
|
2
n
−
1
⟩
)
=
1
2
n
∑
i
=
0
2
n
−
1
|
i
⟩
{\displaystyle \bigotimes _{0}^{n-1}(H|0\rangle )={\frac {1}{\sqrt {2^{n}}}}{\begin{bmatrix}1\\1\\\vdots \\1\end{bmatrix}}={\frac {1}{\sqrt {2^{n}}}}{\Big (}|0\rangle +|1\rangle +\dots +|2^{n}-1\rangle {\Big )}={\frac {1}{\sqrt {2^{n}}}}\sum _{i=0}^{2^{n}-1}|i\rangle }
この状態は 均一な重ね合わせであり、 振幅増幅 や 位相推定 などのいくつかの検索アルゴリズムの最初のステップとして生成されます 。
この状態を測定すると、 ~ の間の 乱数が得られます 。 [e] 乱数のランダム性は、論理ゲートの 忠実度に依存します。測定されない場合、それは、それぞれの可能な状態に対して等しい 確率振幅 を持つ量子状態です 。
|
0
⟩
{\displaystyle |0\rangle }
|
2
n
−
1
⟩
{\displaystyle |2^{n}-1\rangle }
1
2
n
{\displaystyle {\frac {1}{\sqrt {2^{n}}}}}
アダマール変換は、次のように量子ビット を持つ レジスタに作用します 。
|
ψ
⟩
{\displaystyle |\psi \rangle }
n
{\displaystyle n}
|
ψ
⟩
=
⨂
i
=
0
n
−
1
|
ψ
i
⟩
{\textstyle |\psi \rangle =\bigotimes _{i=0}^{n-1}|\psi _{i}\rangle }
⨂
0
n
−
1
H
|
ψ
⟩
=
⨂
i
=
0
n
−
1
|
0
⟩
+
(
−
1
)
ψ
i
|
1
⟩
2
=
1
2
n
⨂
i
=
0
n
−
1
(
|
0
⟩
+
(
−
1
)
ψ
i
|
1
⟩
)
=
H
|
ψ
0
⟩
⊗
H
|
ψ
1
⟩
⊗
⋯
⊗
H
|
ψ
n
−
1
⟩
{\displaystyle \bigotimes _{0}^{n-1}H|\psi \rangle =\bigotimes _{i=0}^{n-1}{\frac {|0\rangle +(-1)^{\psi _{i}}|1\rangle }{\sqrt {2}}}={\frac {1}{\sqrt {2^{n}}}}\bigotimes _{i=0}^{n-1}{\Big (}|0\rangle +(-1)^{\psi _{i}}|1\rangle {\Big )}=H|\psi _{0}\rangle \otimes H|\psi _{1}\rangle \otimes \cdots \otimes H|\psi _{n-1}\rangle }
エンタングルメント状態への応用
2 つ以上の量子ビットを単一の量子状態と見なすと、この結合状態は構成量子ビットのテンソル積に等しくなります。構成サブシステムからのテンソル積として記述できる状態は、 分離可能状態 と呼ばれます。一方、 エンタングル状態 は、テンソル因数分解できない状態です。言い換えると、 エンタングル状態は、その構成量子ビット状態のテンソル積として記述できません。 エンタングル状態を構成する構成量子ビットにゲートを適用する場合は、特別な注意が必要です。
エンタングルされた N 個 の量子ビットのセットがあり、 そのセット内の M < N個の量子ビットに量子ゲートを適用する場合、ゲートを拡張して N個の量子ビットを取得する必要があります。この適用は、ゲートを 単位行列 と組み合わせることで実行できます。これにより、テンソル積が N 個の量子ビットに作用するゲートになります 。単位行列 ( )
I
{\displaystyle I}
は、すべての状態をそれ自体にマッピングする (つまり、何もしない) ゲートの表現です。回路図では、単位ゲートまたは行列は、多くの場合、単なるむき出しの配線として表示されます。
本文中に示されている例。アダマール ゲートは 1 つの量子ビットにのみ作用しますが、 2 つの量子ビットにまたがるエンタングルメントされた量子状態です。この例では、 .
H
{\displaystyle H}
|
ψ
⟩
{\displaystyle |\psi \rangle }
|
ψ
⟩
=
|
00
⟩
+
|
11
⟩
2
{\displaystyle |\psi \rangle ={\frac {|00\rangle +|11\rangle }{\sqrt {2}}}}
たとえば、アダマール ゲート ( )
H
{\displaystyle H}
は単一の量子ビットに作用しますが、 エンタングル メント ベル状態を構成する 2 つの量子ビットのうち最初の量子ビットを入力すると 、その操作を簡単に記述することはできません。2 つ の量子ビット
にまたがる量子状態に作用できるように、アダマール ゲートを アイデンティティ ゲートで 拡張する必要があります。
|
00
⟩
+
|
11
⟩
2
{\displaystyle {\frac {|00\rangle +|11\rangle }{\sqrt {2}}}}
H
{\displaystyle H}
I
{\displaystyle I}
K
=
H
⊗
I
=
1
2
[
1
1
1
−
1
]
⊗
[
1
0
0
1
]
=
1
2
[
1
0
1
0
0
1
0
1
1
0
−
1
0
0
1
0
−
1
]
{\displaystyle K=H\otimes I={\frac {1}{\sqrt {2}}}{\begin{bmatrix}1&1\\1&-1\end{bmatrix}}\otimes {\begin{bmatrix}1&0\\0&1\end{bmatrix}}={\frac {1}{\sqrt {2}}}{\begin{bmatrix}1&0&1&0\\0&1&0&1\\1&0&-1&0\\0&1&0&-1\end{bmatrix}}}
このゲートは 、エンタングルメントの有無にかかわらず、任意の 2 量子ビット状態に適用できます。ゲートは 2 番目の量子ビットをそのままにして、最初の量子ビットにアダマール変換を適用します。この例のベル状態に適用すると、次のように記述できます。
K
{\displaystyle K}
K
{\displaystyle K}
K
|
00
⟩
+
|
11
⟩
2
=
1
2
[
1
0
1
0
0
1
0
1
1
0
−
1
0
0
1
0
−
1
]
1
2
[
1
0
0
1
]
=
1
2
[
1
1
1
−
1
]
=
|
00
⟩
+
|
01
⟩
+
|
10
⟩
−
|
11
⟩
2
{\displaystyle K{\frac {|00\rangle +|11\rangle }{\sqrt {2}}}={\frac {1}{\sqrt {2}}}{\begin{bmatrix}1&0&1&0\\0&1&0&1\\1&0&-1&0\\0&1&0&-1\end{bmatrix}}{\frac {1}{\sqrt {2}}}{\begin{bmatrix}1\\0\\0\\1\end{bmatrix}}={\frac {1}{2}}{\begin{bmatrix}1\\1\\1\\-1\end{bmatrix}}={\frac {|00\rangle +|01\rangle +|10\rangle -|11\rangle }{2}}}
計算の複雑さとテンソル積
古典的なマシンを使用する場合、 2つの-行列 を乗算するための時間計算量 は 少なくとも です [26] 。量子ビット で動作するゲートのサイズは であるため、 一般 的なエンタングルメント状態で動作する量子回路のステップをシミュレートする(ゲートを乗算することによって)時間は であることを意味します 。 このため、古典的なコンピュータを使用して大規模なエンタングルメント量子システムをシミュレートすることは 困難であると考えられています。ただし、 クリフォードゲート などのゲートのサブセット 、または古典的なブール関数のみを実装する回路の単純なケース(X、CNOT、Toffoliの組み合わせなど)は、古典的なコンピュータで効率的にシミュレートできます。
n
×
n
{\displaystyle n\times n}
Ω
(
n
2
log
n
)
{\displaystyle \Omega (n^{2}\log n)}
q
{\displaystyle q}
2
q
×
2
q
{\displaystyle 2^{q}\times 2^{q}}
Ω
(
2
q
2
log
(
2
q
)
)
{\displaystyle \Omega ({2^{q}}^{2}\log({2^{q}}))}
量子ビットを持つ 量子レジスタ の状態ベクトルは 複素数エントリ です。 確率振幅を 浮動小数点 値のリストとして格納することは 、大きな では扱いにくいです 。
n
{\displaystyle n}
2
n
{\displaystyle 2^{n}}
n
{\displaystyle n}
ゲートのユニタリ反転
例: アダマール-CNOT 積のユニタリ逆。3 つのゲート 、 およびは、 それぞれユニタリ逆です。
H
{\displaystyle H}
I
{\displaystyle I}
C
N
O
T
{\displaystyle \mathrm {CNOT} }
すべての量子論理ゲートは 可逆で あるため、複数のゲートの任意の構成も可逆です。 ユニタリ行列 のすべての積とテンソル積(つまり、直列および並列の組み合わせ)もユニタリ行列です。つまり、ゲートのみを含む限り、すべてのアルゴリズムと関数の逆を構築できます。
初期化、測定、 I/O 、自発的な デコヒーレンス は量子コンピュータの 副作用 です。ただし、ゲートは 純粋に機能的かつ 一対一 です 。
がユニタリ行列 である 場合 、および です 。 ダガー ( ) は 共役転置を表します。これは エルミート随伴行列 とも呼ばれます 。
U
{\displaystyle U}
U
†
U
=
U
U
†
=
I
{\displaystyle U^{\dagger }U=UU^{\dagger }=I}
U
†
=
U
−
1
{\displaystyle U^{\dagger }=U^{-1}}
†
{\displaystyle \dagger }
関数が ゲート の積である場合 、 関数のユニタリ逆関数 を構築できます。
F
{\displaystyle F}
m
{\displaystyle m}
F
=
A
1
⋅
A
2
⋅
⋯
⋅
A
m
{\displaystyle F=A_{1}\cdot A_{2}\cdot \dots \cdot A_{m}}
F
†
{\displaystyle F^{\dagger }}
なぜなら 、私たちは、繰り返し適用した後、
(
U
V
)
†
=
V
†
U
†
{\displaystyle (UV)^{\dagger }=V^{\dagger }U^{\dagger }}
F
†
=
(
∏
i
=
1
m
A
i
)
†
=
∏
i
=
m
1
A
i
†
=
A
m
†
⋅
⋯
⋅
A
2
†
⋅
A
1
†
{\displaystyle F^{\dagger }=\left(\prod _{i=1}^{m}A_{i}\right)^{\dagger }=\prod _{i=m}^{1}A_{i}^{\dagger }=A_{m}^{\dagger }\cdot \dots \cdot A_{2}^{\dagger }\cdot A_{1}^{\dagger }}
同様に、関数が 2 つのゲート と を 並列に含む場合、および となります 。
G
{\displaystyle G}
A
{\displaystyle A}
B
{\displaystyle B}
G
=
A
⊗
B
{\displaystyle G=A\otimes B}
G
†
=
(
A
⊗
B
)
†
=
A
†
⊗
B
†
{\displaystyle G^{\dagger }=(A\otimes B)^{\dagger }=A^{\dagger }\otimes B^{\dagger }}
自身のユニタリ逆であるゲートは、エルミート演算 子または 自己随伴演算子 と呼ばれます 。アダマール ( H ) ゲートや パウリ ゲート ( I 、 X 、 Y 、 Z ) などの一部の基本ゲートはエルミート演算子ですが、位相シフト ( S 、 T 、 P 、 CPhase ) ゲートなど、他のゲートは一般にエルミート演算子ではありません。
例えば、加算アルゴリズムは、そのユニタリ逆として「逆に実行」されている場合、減算に使用できます。 逆量子フーリエ変換 はユニタリ逆です。ユニタリ逆は、 非計算 にも使用できます。マイクロソフトの Q # 、 [10]、 ベルンハルト ・オマーの QCL 、 [13] :61 、 IBM の Qiskit 、 [27] などの量子コンピュータのプログラミング言語には、関数の反転がプログラミング概念として含まれています。
測定
測定の回路表現。右側の 2 本の線は古典的なビットを表し、左側の 1 本の線は量子ビットを表します。
測定(観測 と呼ばれることもある )は不可逆的であり、したがって量子ゲートではない。なぜなら、測定では、観測された量子状態が単一の値に割り当てられるからである。測定は、量子状態を取り、その 基底ベクトル に沿ったベクトルの長さの2乗( 2-ノルム [4] :66 [5] :56, 65 )に等しい尤度で、それを基底ベクトルの1つに投影する 。 [1] :15–17 [28] [29] [30] これは ボルンの規則 として知られており、 量子状態を測定された状態を表す基底ベクトルに等しく確率的に設定することから、確率的非可逆操作として現れる。測定の瞬間に、状態は 測定 された明確な単一の値に「 崩壊 」すると言われる。なぜ、どのように、あるいはもし崩壊するのかどうか [31] [32]は、 測定問題 と呼ばれる 。
確率振幅 を持つ値を測定する確率 は であり 、 は 係数 です 。
ϕ
{\displaystyle \phi }
1
≥
|
ϕ
|
2
≥
0
{\displaystyle 1\geq |\phi |^{2}\geq 0}
|
⋅
|
{\displaystyle |\cdot |}
量子状態がベクトルで表される単一の量子ビットを測定すると 、 確率 で となり 、 確率 で となります 。
a
|
0
⟩
+
b
|
1
⟩
=
[
a
b
]
{\displaystyle a|0\rangle +b|1\rangle ={\begin{bmatrix}a\\b\end{bmatrix}}}
|
0
⟩
{\displaystyle |0\rangle }
|
a
|
2
{\displaystyle |a|^{2}}
|
1
⟩
{\displaystyle |1\rangle }
|
b
|
2
{\displaystyle |b|^{2}}
たとえば、量子状態を持つ量子ビットを測定すると 、またはのいずれかが 等しい確率で得られます 。
|
0
⟩
−
i
|
1
⟩
2
=
1
2
[
1
−
i
]
{\displaystyle {\frac {|0\rangle -i|1\rangle }{\sqrt {2}}}={\frac {1}{\sqrt {2}}}{\begin{bmatrix}1\\-i\end{bmatrix}}}
|
0
⟩
{\displaystyle |0\rangle }
|
1
⟩
{\displaystyle |1\rangle }
単一量子ビットの場合、となる 量子状態を持つ 単位球が に存在します 。この状態は 、 、 または および と 書き直すことができます 。 注: は を測定する確率であり 、 は を測定する確率です 。
C
2
{\displaystyle \mathbb {C} ^{2}}
a
|
0
⟩
+
b
|
1
⟩
{\displaystyle a|0\rangle +b|1\rangle }
|
a
|
2
+
|
b
|
2
=
1
{\displaystyle |a|^{2}+|b|^{2}=1}
|
cos
θ
|
2
+
|
sin
θ
|
2
=
1
{\displaystyle |\cos \theta |^{2}+|\sin \theta |^{2}=1}
|
a
|
2
=
cos
2
θ
{\displaystyle |a|^{2}=\cos ^{2}\theta }
|
b
|
2
=
sin
2
θ
{\displaystyle |b|^{2}=\sin ^{2}\theta }
|
a
|
2
{\displaystyle |a|^{2}}
|
0
⟩
{\displaystyle |0\rangle }
|
b
|
2
{\displaystyle |b|^{2}}
|
1
⟩
{\displaystyle |1\rangle }
n 量子ビットにまたがる 量子状態は、 複素 次元 のベクトルとして記述できます 。これは、 n 量子ビットのテンソル積 が次元のベクトルであるためです 。このように、 n 量子ビットの レジスタ を異なる状態に測定できます。これは、 n 古典 ビット のレジスタが異なる状態 を保持できるのと似ています 。古典コンピュータのビットとは異なり、量子状態は、複数の測定可能な値で同時にゼロ以外の確率振幅を持つことができます。これを 重ね合わせと 呼びます。
|
Ψ
⟩
{\displaystyle |\Psi \rangle }
2
n
{\displaystyle 2^{n}}
|
Ψ
⟩
∈
C
2
n
{\displaystyle |\Psi \rangle \in \mathbb {C} ^{2^{n}}}
2
n
{\displaystyle 2^{n}}
2
n
{\displaystyle 2^{n}}
2
n
{\displaystyle 2^{n}}
すべての結果の確率の合計は常に 1 。 [f] これを別の言い方で言うと、 に一般化された ピタゴラスの定理は、 n 量子ビットを持つ すべての量子状態 が [g] を 満たさなければならないということです 。 ここで、 は 測定可能な状態 の確率振幅です 。 これを幾何学的に解釈すると、 n 量子ビットを持つ量子状態の可能な 値空間は の 単位球面 の表面であり 、それに適用される ユニタリ変換 (つまり、量子論理ゲート) は球面上の回転です。ゲートが実行する回転は、 対称群 U(2 n )を形成します。測定は、この 複素 球面の表面の点の 、空間に広がる (そして結果にラベルを付ける)
基底ベクトル への確率的射影です。
C
2
n
{\displaystyle \mathbb {C} ^{2^{n}}}
|
Ψ
⟩
{\displaystyle |\Psi \rangle }
1
=
∑
x
=
0
2
n
−
1
|
a
x
|
2
,
{\textstyle 1=\sum _{x=0}^{2^{n}-1}|a_{x}|^{2},}
a
x
{\displaystyle a_{x}}
|
x
⟩
{\displaystyle |x\rangle }
|
Ψ
⟩
{\displaystyle |\Psi \rangle }
C
2
n
{\displaystyle \mathbb {C} ^{2^{n}}}
多くの場合、空間は特定の 次元 複素空間ではなく、 ヒルベルト空間 として表されます。次元の数 (基底ベクトルによって定義され、したがって測定から得られる可能性のある結果も定義されます) は、多くの場合、オペランドによって暗示されます (たとえば、 問題を 解くために必要な 状態空間 など)。 グローバーのアルゴリズム では、 グローバーは この一般的な基底ベクトル セットを 「データベース」 と名付けました。
H
{\displaystyle {\mathcal {H}}}
2
n
{\displaystyle 2^{n}}
量子状態を測定するための基底ベクトルの選択は、測定の結果に影響を与えます。 [1] : 30–35 [4] : 22, 84–85, 185–188 [33]詳細については、 基底の変化 と フォン・ノイマン・エントロピー を参照してください 。 この記事では、常に 計算 基底 、つまり n 量子ビット レジスタ の基底ベクトルにラベルを付ける 、 または バイナリ表現を使用します 。
2
n
{\displaystyle 2^{n}}
|
0
⟩
,
|
1
⟩
,
|
2
⟩
,
⋯
,
|
2
n
−
1
⟩
{\displaystyle |0\rangle ,|1\rangle ,|2\rangle ,\cdots ,|2^{n}-1\rangle }
|
0
10
⟩
=
|
0
…
00
2
⟩
,
|
1
10
⟩
=
|
0
…
01
2
⟩
,
|
2
10
⟩
=
|
0
…
10
2
⟩
,
⋯
,
|
2
n
−
1
⟩
=
|
111
…
1
2
⟩
{\displaystyle |0_{10}\rangle =|0\dots 00_{2}\rangle ,|1_{10}\rangle =|0\dots 01_{2}\rangle ,|2_{10}\rangle =|0\dots 10_{2}\rangle ,\cdots ,|2^{n}-1\rangle =|111\dots 1_{2}\rangle }
量子力学 では 、基底ベクトルは 正規直交基底 を構成します。
代替測定基準の使用例は、 BB84 暗号にあります。
エンタングルメント状態に対する測定の影響
アダマール-CNOTゲートは、入力を与えると ベル状態 を生成する。
|
00
⟩
{\displaystyle |00\rangle }
2 つの 量子状態 (つまり、 量子ビット または レジスタ ) が エンタングルメント 状態 (つまり、それらの結合状態を テンソル積 として表現できない状態) にある場合、一方のレジスタを測定すると、もう一方のレジスタの状態も部分的または完全に崩壊して、もう一方のレジスタの状態が影響を受けるか、または明らかになります。この効果は計算に使用でき、多くのアルゴリズムで使用されます。
アダマール-CNOT の組み合わせはゼロ状態に対して次のように作用します。
CNOT
(
H
⊗
I
)
|
00
⟩
=
(
[
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
]
(
1
2
[
1
1
1
−
1
]
⊗
[
1
0
0
1
]
)
)
[
1
0
0
0
]
=
1
2
[
1
0
0
1
]
=
|
00
⟩
+
|
11
⟩
2
{\displaystyle \operatorname {CNOT} (H\otimes I)|00\rangle =\left({\begin{bmatrix}1&0&0&0\\0&1&0&0\\0&0&0&1\\0&0&1&0\end{bmatrix}}\left({\frac {1}{\sqrt {2}}}{\begin{bmatrix}1&1\\1&-1\end{bmatrix}}\otimes {\begin{bmatrix}1&0\\0&1\end{bmatrix}}\right)\right){\begin{bmatrix}1\\0\\0\\0\end{bmatrix}}={\frac {1}{\sqrt {2}}}{\begin{bmatrix}1\\0\\0\\1\end{bmatrix}}={\frac {|00\rangle +|11\rangle }{\sqrt {2}}}}
本文中のベル状態は、 および です 。 したがって、図に示すように 、 基底ベクトル および が張る 平面 によって記述できます。2 量子ビット システムの 可能な 値空間を表す 単位球 ( 内 ) は、平面と交差し、単位球面上にあります。 であるため 、 この状態をまたは に測定する確率は等しく 、 または に測定する確率はゼロである ためです 。
|
Ψ
⟩
=
a
|
00
⟩
+
b
|
01
⟩
+
c
|
10
⟩
+
d
|
11
⟩
{\displaystyle |\Psi \rangle =a|00\rangle +b|01\rangle +c|10\rangle +d|11\rangle }
a
=
d
=
1
2
{\displaystyle a=d={\frac {1}{\sqrt {2}}}}
b
=
c
=
0
{\displaystyle b=c=0}
|
00
⟩
{\displaystyle |00\rangle }
|
11
⟩
{\displaystyle |11\rangle }
C
4
{\displaystyle \mathbb {C} ^{4}}
|
Ψ
⟩
{\displaystyle |\Psi \rangle }
|
a
|
2
=
|
d
|
2
=
1
/
2
{\displaystyle |a|^{2}=|d|^{2}=1/2}
|
00
⟩
{\displaystyle |00\rangle }
|
11
⟩
{\displaystyle |11\rangle }
b
=
c
=
0
{\displaystyle b=c=0}
|
01
⟩
{\displaystyle |01\rangle }
|
10
⟩
{\displaystyle |10\rangle }
この結果の状態は ベル状態である 。 これは2つの量子ビットのテンソル積として記述することはできない。
|
00
⟩
+
|
11
⟩
2
=
1
2
[
1
0
0
1
]
{\displaystyle {\frac {|00\rangle +|11\rangle }{\sqrt {2}}}={\frac {1}{\sqrt {2}}}{\begin{bmatrix}1\\0\\0\\1\end{bmatrix}}}
[
x
y
]
⊗
[
w
z
]
=
[
x
w
x
z
y
w
y
z
]
=
1
2
[
1
0
0
1
]
,
{\displaystyle {\begin{bmatrix}x\\y\end{bmatrix}}\otimes {\begin{bmatrix}w\\z\end{bmatrix}}={\begin{bmatrix}xw\\xz\\yw\\yz\end{bmatrix}}={\frac {1}{\sqrt {2}}}{\begin{bmatrix}1\\0\\0\\1\end{bmatrix}},}
たとえば、 xw と yw の場合、 w は ゼロ以外とゼロの両方である必要があるためです。
量子状態は 2 つの量子ビット にまたがります。これは エンタングルメント と呼ばれます。このベル状態を構成する 2 つの量子ビットの 1 つを測定すると、もう一方の量子ビットは論理的に同じ値を持ち、両方とも同じでなければなりません。つまり 、 状態または状態 のいずれかで見つかります 。 たとえば、量子ビットの 1 つを と測定した場合 、 もう一方の量子ビットも でなければなりません。これは 、 それらの結合状態が になったためです 。 量子ビットの 1 つを測定すると、2 つの量子ビットにまたがる量子状態全体が崩壊します。
|
00
⟩
{\displaystyle |00\rangle }
|
11
⟩
{\displaystyle |11\rangle }
|
1
⟩
{\displaystyle |1\rangle }
|
1
⟩
{\displaystyle |1\rangle }
|
11
⟩
{\displaystyle |11\rangle }
GHZ 状態は 、3 つ以上の量子ビットにまたがる同様の量子もつれ状態です。
この種の値の割り当ては、 どのような距離でも瞬時に 行われ、2018年現在、 QUESS によって最大1200キロメートルの距離で実験的に検証されています。 [34] [35] [36] 量子ビットを隔てる距離を光速で横断するのにかかる時間ではなく、現象が瞬時に発生するように見えることは EPRパラドックスと呼ばれ、これをどのように解決するかは物理学における未解決の問題です。 もともと 局所的実在性 の仮定を放棄することによって解決されましたが 、他の 解釈 も登場しています。詳細については、 ベルテスト実験を 参照してください。 無通信定理は、この現象が 古典情報 の光より速い通信に使用できないことを証明しています 。
ペアワイズエンタングルメント量子ビットを持つレジスタの測定
状態の重ね合わせにあり、レジスタ B とペアでエンタングルされている レジスタ A に対するユニタリ変換 F の効果。ここで、 n は 3 です (各レジスタには 3 つの量子ビットがあります)。
2
n
{\displaystyle 2^{n}}
すべて に初期化された n個の量子ビットを持つ レジスタ A を取り 、 これを並列アダマール ゲート に入力します 。 レジスタ A は、 が のいずれかの可能な状態、 つまり にあると測定された場合に の等確率を持つ 状態になります 。2 番目のレジスタ B も に初期化された n 個の 量子ビットを持ち、その量子ビットをレジスタ A の量子ビットとペアワイズ CNOT します。これにより、各 p に対して 量子ビット とが 状態 を形成します 。
|
0
⟩
{\displaystyle |0\rangle }
H
⊗
n
{\textstyle H^{\otimes n}}
1
2
n
∑
k
=
0
2
n
−
1
|
k
⟩
{\textstyle {\frac {1}{\sqrt {2^{n}}}}\sum _{k=0}^{2^{n}-1}|k\rangle }
2
n
{\displaystyle 2^{n}}
|
0
⟩
{\displaystyle |0\rangle }
|
2
n
−
1
⟩
{\displaystyle |2^{n}-1\rangle }
|
0
⟩
{\displaystyle |0\rangle }
A
p
{\displaystyle A_{p}}
B
p
{\displaystyle B_{p}}
|
A
p
B
p
⟩
=
|
00
⟩
+
|
11
⟩
2
{\displaystyle |A_{p}B_{p}\rangle ={\frac {|00\rangle +|11\rangle }{\sqrt {2}}}}
ここでレジスタ A の量子ビットを測定すると、レジスタ B には A と同じ値が含まれていることがわかります。ただし、代わりに量子論理ゲート F を A に適用して を測定すると、 となり 、 は F の ユニタリ逆数 です 。
|
A
⟩
=
F
|
B
⟩
⟺
F
†
|
A
⟩
=
|
B
⟩
{\displaystyle |A\rangle =F|B\rangle \iff F^{\dagger }|A\rangle =|B\rangle }
F
†
{\displaystyle F^{\dagger }}
ゲートのユニタリ逆がどのように動作するかにより、 。 たとえば、 とする と、 。
F
†
|
A
⟩
=
F
−
1
(
|
A
⟩
)
=
|
B
⟩
{\displaystyle F^{\dagger }|A\rangle =F^{-1}(|A\rangle )=|B\rangle }
F
(
x
)
=
x
+
3
(
mod
2
n
)
{\displaystyle F(x)=x+3{\pmod {2^{n}}}}
|
B
⟩
=
|
A
−
3
(
mod
2
n
)
⟩
{\displaystyle |B\rangle =|A-3{\pmod {2^{n}}}\rangle }
F が完了まで実行されたと仮定すると、測定がどの順序で実行されても (レジスタ A または B で) 等式は保持されます 。1 つの量子ビットの測定割り当てによって、他のエンタングルされた量子ビットからの可能な値空間が制限されるため、測定は量子ビットごとにランダムかつ同時にインターリーブすることもできます。
等式が成り立つとしても、量子探索アルゴリズムの意図通り、
F を 適用した結果として、起こり得る結果を測定する確率が変わる可能性があります。
エンタングルメントによる値共有のこの効果は、 ショアのアルゴリズム 、 位相推定 、 量子計数 で使用されています。 フーリエ変換を使用して、ある 問題 の解の状態の確率振幅を増幅することは、 「 フーリエフィッシング 」として知られる一般的な方法です 。 [37]
論理関数合成
1986年にファインマンによって提案された 量子 全加算器。 [3]これはToffoliゲートとCNOTゲートのみで構成されています。この図で点線の四角で囲まれたゲートは、 B出力 を復元するための 逆計算 が不要な 場合は省略できます。
ゲートのみを使用する関数とルーチンは、小さいゲートと同様に、それ自体が行列として記述できます。 量子ビットに作用する量子関数を表す行列のサイズは です 。 たとえば、「qubyte」( 8 量子ビットの レジスタ ) に作用する関数は、要素を持つ行列で表されます 。
q
{\displaystyle q}
2
q
×
2
q
{\displaystyle 2^{q}\times 2^{q}}
2
8
×
2
8
=
256
×
256
{\displaystyle 2^{8}\times 2^{8}=256\times 256}
量子コンピュータでネイティブに使用できるゲートのセット(プリミティブゲート)にないユニタリ変換は、回路内で使用可能なプリミティブゲートを組み合わせることによって合成(近似)できます 。 これを行う1つの方法は、ユニタリ変換をエンコードする行列を、使用可能なプリミティブゲートのテンソル積(つまり、直列回路と並列回路)の積に因数分解することです。グループ U (2 q ) は、量子ビットに作用するゲートの 対称グループ です 。 [2] 因数分解は、プリミティブゲートの 生成セットからU(2 q ) 内のパスを見つける 問題 です。 ソロベイ-キタエフの定理は、 プリミティブゲートの十分なセットが与えられれば、どのゲートにも効率的な近似値が存在することを示しています。量子ビットの数が多い一般的なケースでは、回路合成へのこの直接的なアプローチは 扱いにくいもの です。 [38] [39] これにより、大規模な関数を原始的な量子ゲートに力ずくで分解できる範囲が制限されます。通常、量子プログラムは、通常の古典的プログラミングと同様に、比較的小さく単純な量子関数を使用して構築されます。
q
{\displaystyle q}
ゲートのユニタリ 性のため 、すべての関数は 可逆で 、常に入力から出力への 全単射 マッピングでなければなりません。となる 関数が常に存在する必要があります 。 可逆でない関数は、 補助量子ビットを 入力または出力、またはその両方に追加することで可逆化できます。 関数の実行が完了したら、補助量子ビットは 計算されない か、そのままにしておくことができます。 計算されていない補助量子ビットの量子状態を測定または崩壊させると (たとえば、補助量子ビットの値を再初期化するか、自発的な デコヒーレンス によって)、エラーが発生する可能性があります。 [40] [41] これは、補助量子ビットの状態が、計算にまだ使用されている量子ビットとエンタングルされている可能性があるためです。
F
−
1
{\displaystyle F^{-1}}
F
−
1
(
F
(
|
ψ
⟩
)
)
=
|
ψ
⟩
{\displaystyle F^{-1}(F(|\psi \rangle ))=|\psi \rangle }
論理的に不可逆な演算、例えば 2 つの -qubit レジスタ a と b を 法とする加算、 、 [h] は 、出力に情報を追加することで論理的に可逆になり、出力から入力を計算できるようになります (つまり、関数 が存在する )。 この例では、入力レジスタの 1 つを出力に渡すことでこれを実現できます。 出力 を使用して入力を計算できます (つまり、出力と が 与えられれば 、 入力 を簡単に見つけることができます。 が与えられ、 ) 、関数は全単射になります。
2
n
{\displaystyle 2^{n}}
n
{\displaystyle n}
F
(
a
,
b
)
=
a
+
b
(
mod
2
n
)
{\displaystyle F(a,b)=a+b{\pmod {2^{n}}}}
F
−
1
{\displaystyle F^{-1}}
F
(
|
a
⟩
⊗
|
b
⟩
)
=
|
a
+
b
(
mod
2
n
)
⟩
⊗
|
a
⟩
{\displaystyle F(|a\rangle \otimes |b\rangle )=|a+b{\pmod {2^{n}}}\rangle \otimes |a\rangle }
a
+
b
{\displaystyle a+b}
a
{\displaystyle a}
a
{\displaystyle a}
(
a
+
b
)
−
a
=
b
{\displaystyle (a+b)-a=b}
すべての ブール代 数式は、たとえば Pauli-X、CNOT、Toffoli ゲートの組み合わせを使用して、ユニタリ変換 (量子論理ゲート) としてエンコードできます。これらのゲートは、 ブール論理ドメインで
機能的に完全です。
Q# 、 QCL 、 Qiskit 、その他の 量子プログラミング 言語のライブラリには、多くのユニタリ変換が用意されています 。また、文献にも記載されています。 [42] [43]
例えば、 は レジスタ を構成する量子ビットの数であり 、 QCLでは次のように実装される。 [44] [13] [12]
i
n
c
(
|
x
⟩
)
=
|
x
+
1
(
mod
2
x
length
)
⟩
{\displaystyle \mathrm {inc} (|x\rangle )=|x+1{\pmod {2^{x_{\text{length}}}}}\rangle }
x
length
{\displaystyle x_{\text{length}}}
x
{\displaystyle x}
cond qufunct inc ( qureg x ) { // レジスタをインクリメント int i ; for i = # x - 1 から 0 step - 1 { CNot ( x [ i ], x [ 0 :: i ]); // MSB から LSB まで 制御 否定を適用 }
のときに生成される回路 。記号 、 、 はそれぞれ XOR 、 AND 、 NOT を表し、計算基底にある状態に適用された場合、0 個以上の制御量子ビットを持つ Pauli- X のブール表現から得られ ます。
x
length
=
4
{\displaystyle x_{\text{length}}=4}
⊕
{\displaystyle \oplus }
∧
{\displaystyle \land }
¬
{\displaystyle \neg }
QCLでは、デクリメントはインクリメントを元に戻すことによって行われます。プレフィックスは、 !代わりに関数のユニタリ逆関数を実行するために使用されます。はの !inc(x)逆関数であり inc(x)、代わりに演算を実行します 。 キーワード は、関数が条件付きである可能性があることを意味します。 [11]
i
n
c
†
|
x
⟩
=
i
n
c
−
1
(
|
x
⟩
)
=
|
x
−
1
(
mod
2
x
length
)
⟩
{\displaystyle \mathrm {inc} ^{\dagger }|x\rangle =\mathrm {inc} ^{-1}(|x\rangle )=|x-1{\pmod {2^{x_{\text{length}}}}}\rangle }
cond
この記事で使用されている 計算モデル( 量子回路 モデル)では 、古典的コンピュータが量子コンピュータのゲート構成を生成し、量子コンピュータは、 どのプリミティブゲートをどの量子ビットに適用するかについての命令を古典的コンピュータから受け取る コプロセッサとして動作します。 [13] : 36–43 [14] 量子レジスタの測定は、古典的コンピュータが計算に使用できるバイナリ値になります。 量子アルゴリズム には、古典的な部分と量子的な部分の両方が含まれることがよくあります。 測定されていない I/O (量子状態を崩壊させずに量子ビットをリモートコンピュータに送信すること)を使用して、量子 コンピュータのネットワークを 作成できます。その後、 エンタングルメントスワッピングを使用して、直接接続されていない量子コンピュータで 分散アルゴリズムを 実現できます 。 少数の量子論理ゲートのみを使用する分散アルゴリズムの例としては、 超高密度符号化 、 量子ビザンチン合意 、 BB84 暗号鍵交換プロトコル などがあります。
参照
注記
^ 量子ゲートの行列乗算は直列回路として定義されます。
^ 注意:ここではブロッホ球面の周りの完全な回転は ラジアンであるが、 回転演算子ゲート では完全な回転はラジアンである。
2
π
{\displaystyle 2\pi }
4
π
.
{\displaystyle 4\pi .}
^ P ゲートまたは Ph ゲートのいずれか を使用することができる。 [2] : 11 [1] : 76–83
R
z
(
δ
)
Ph
(
δ
/
2
)
=
P
(
δ
)
{\displaystyle R_{z}(\delta )\operatorname {Ph} (\delta /2)=P(\delta )}
^ このセットは、すべての可能なユニタリゲートを正確に生成します。ただし、グローバル位相は測定出力には関係ないため、普遍的な量子サブセットを構築できます。たとえば、 R y ( θ ) 、 R z ( θ ) 、CNOT を含むセットは、行列式が ±1 のすべてのユニタリのみを網羅しますが、量子計算には十分です。
^ ab これが実際に 確率的効果であるかどうかは、 量子力学の どの解釈 が正しいか(そして、どの解釈も正しい可能性があるかどうか)によって異なります。たとえば、 ド・ブロイ-ボーム理論 と 多世界解釈は 決定論 を主張します。(多世界解釈では、量子コンピュータは、 問題 の解決状態を持つ確率が大きい現実を選択するプログラム( 量子回路 )を実行するマシンです 。つまり、マシンは正しい答えを出す現実にたどり着くことが多いのです。多世界解釈によれば、 すべての 結果は別々の宇宙で実現されるため、全体的な結果は決定論的です。ただし、この 解釈 によってマシンが動作する メカニズム が変わることはありません。)
^ 確率公理を参照 § 第2公理
^確率の 合計が 1 になるため斜辺の 長 さは 1 となり、量子状態ベクトルは 単位ベクトル になります。
^ 入力は 量子ビットですが、出力は単なる 量子ビットです。情報の消去は可逆的(または ユニタリ )な操作ではないため、許可されません。 ランダウアーの原理 も参照してください。
2
n
{\displaystyle 2n}
n
{\displaystyle n}
参考文献
^ abcdefghij コリン・P・ウィリアムズ (2011). 量子コンピューティングの探究 . シュプリンガー . ISBN 978-1-84628-887-6 。
^ abcdefg Barenco, Adriano; Bennett, Charles H.; Cleve, Richard; DiVincenzo, David P.; Margolus, Norman; Shor, Peter; Sleator, Tycho; Smolin, John A.; Weinfurter, Harald (1995-11-01). 「量子計算のための基本ゲート」. Physical Review A . 52 (5). American Physical Society (APS): 3457– 3467. arXiv : quant-ph/9503016 . Bibcode :1995PhRvA..52.3457B. doi :10.1103/physreva.52.3457. ISSN 1050-2947. PMID 9912645. S2CID 8764584.
^ ab ファインマン、リチャード P. (1986). 「量子機械コンピュータ」. 物理学の基礎 . 16 (6). Springer Science and Business Media LLC: 507– 531. Bibcode :1986FoPh...16..507F. doi :10.1007/bf01886518. ISSN 0015-9018. S2CID 122076550.
^ abcdefghi ニールセン、マイケル A. ; チュアン、アイザック (2010)。量子計算と量子情報。ケンブリッジ: ケンブリッジ大学 出版局 。ISBN 978-1-10700-217-3 . OCLC 43641333.
^ abcde Yanofsky, Noson S.; Mannucci, Mirco (2013). コンピュータ科学者のための量子コンピューティング 。 ケンブリッジ大学 出版局 。ISBN 978-0-521-87996-5 。
^ Preskill, John (2021-06-06). 「量子コンピューティング 40 年後」pp.10–15.arXiv : 2106.10522 [ quant - ph].
^ 「回路ライブラリ」。IBM ( Qiskit )。
^ 「cQASM: 量子ビットゲート操作」。QuTech。
^ 「Microsoft.Quantum.Intrinsic 名前空間」。Microsoft ( Q# )。2023 年 7 月 28 日。
^ ab 操作と関数 (Q# ドキュメント)
^ ab Ömer, Bernhard (2009年9月2日). 「構造化量子プログラミング」 (PDF) . ウィーン工科大学理論物理学研究所。pp. 72, 92– 107。2022年3月27日時点のオリジナル (PDF) からアーカイブ。
^ ab Ömer, Bernhard (2003年4月29日). 「量子プログラミングにおける古典的概念」. 国際理論物理学ジャーナル . 44 (7): 943– 955. arXiv : quant-ph/0211100 . doi :10.1007/s10773-005-7071-x. S2CID 119373370.
^ abcd Ömer, Bernhard (2000-01-20). Quantum Programming in QCL (PDF) (論文). Institute for Theoretical Physics, Vienna University of Technology. 2022年6月1日時点の オリジナル (PDF)よりアーカイブ。 2021年5月24日 閲覧 。
^ ab Pauka SJ、Das W、Kalra R、Moini A、Yang Y、Trainer M、Bousquet A、Cantaloube C、Dick N、Gardner GC、Manfra MJ、Reilly DJ (2021)。「複数の量子ビットの制御信号を生成する極低温CMOSチップ」。Nature Electronics。4 ( 4 ) : 64– 70。arXiv : 1912.01299。doi : 10.1038/s41928-020-00528- y。S2CID 231715555 。
^ 「TdgGate」. Qiskit オンライン ドキュメント。
^ 「Tダガーゲート」. cQASM オンライン ドキュメント。
^ ab Aharonov, Dorit (2003-01-09). 「Toffoli と Hadamard が量子普遍性を持つことの簡単な証明」. arXiv : quant-ph/0301040 .
^ サウィッキー、アダム;カルナス、カタルジナ (2017-11-01)。 「シングルクイットゲートの普遍性」。 アナレス・アンリ・ポアンカレ 。 18 (11 ) : 3515–3552.arXiv : 1609.05780 。 ビブコード :2017AnHP...18.3515S。 土井 :10.1007/s00023-017-0604-z。 ISSN 1424-0661。 S2CID 253594045。
^ Sawicki, Adam; Mattioli, Lorenzo; Zimborás, Zoltán (2022-05-12). 「量子ゲートセットの普遍性検証」. Physical Review A . 105 (5): 052602. arXiv : 2111.03862 . Bibcode :2022PhRvA.105e2602S. doi :10.1103/PhysRevA.105.052602. S2CID 248761038.
^ ウィリアムズ、コリン P. (2011)、ウィリアムズ、コリン P. (編)、「量子ゲート」、 量子コンピューティングの探究 、コンピュータサイエンスのテキスト、ロンドン:シュプリンガー、pp. 51– 122、 doi :10.1007/978-1-84628-887-6_2、 ISBN 978-1-84628-887-6 、 2021-05-14 取得
^ Deutsch, David (1989 年 9 月 8 日)、「量子計算ネットワーク」、 Proc. R. Soc. Lond. A 、 425 (1989): 73– 90、 Bibcode :1989RSPSA.425...73D、 doi :10.1098/rspa.1989.0099、 S2CID 123073680
^ Shi, Xiao-Feng (2018-05-22). 「Deutsch、Toffoli、およびcnot Gates via Rydberg Blockade of Neutral Atoms」. Physical Review Applied . 9 (5): 051001. arXiv : 1710.01859 . Bibcode :2018PhRvP...9e1001S. doi :10.1103/PhysRevApplied.9.051001. ISSN 2331-7019. S2CID 118909059.
^ 「I 操作」. docs.microsoft.com . 2023 年 7 月 28 日。
^ 「IGate」. qiskit.org . Qiskit オンライン ドキュメント。
^ Loss, Daniel; DiVincenzo, David P. (1998-01-01). 「量子ドットによる量子計算」. Physical Review A. 57 ( 1): 120– 126. arXiv : cond-mat/9701055 . Bibcode :1998PhRvA..57..120L. doi : 10.1103/physreva.57.1 20. ISSN 1050-2947. 式2の例。
^ Raz, Ran (2002). 「 行列積の複雑さについて」 第 34 回 ACM コンピューティング理論シンポジウム 議事録。pp. 144– 151。doi : 10.1145 /509907.509932。ISBN 1581134959 . S2CID 9582328。
^ 「UnitaryGate § UnitaryGate adjoint()」. docs.quantum.ibm.com .
^ グリフィス、DJ (2008)。 素粒子入門(第2版) 。 ジョン・ワイリー・アンド・サンズ 。pp. 115– 121, 126。ISBN 978-3-527-40601-2 。
^ デイヴィッド・アルバート (1994). 量子力学と経験 . ハーバード大学出版局 . p. 35. ISBN 0-674-74113-7 。
^ショーン・ M ・キャロル (2019年)。 『時空と幾何学 : 一般相対性理論入門 』 ケンブリッジ大学出版局 。pp.376–394。ISBN 978-1-108-48839-6 。
^ デイヴィッド・ウォレス (2012年)。 『創発する多元宇宙:エヴェレット解釈による量子理論 』 オックスフォード大学 出版局 。ISBN 9780199546961 。
^ショーン・ M ・キャロル (2019年)。 深く隠されたもの:量子世界と時空の出現 。 ペンギンランダムハウス 。ISBN 9781524743017 。
^ Q# オンラインマニュアル: 測定
^ フアン・イン;袁操。ユ・フアイ・リー;シェンカイ・リャオ。梁張。ジ・ガン・レン;蔡ウェンチー。ウェイ・ユエ・リウ。ボー・リー;ホイダイ。リー・グアンビン;ルー・キミン;ユン・ホン・ゴン;ユウ・シュウ;リー・シュアンリン;李鳳志;ヤユンイン。ジャン・ジーチン。ミン・リー; Jian-Jun Jia;ゲ・レン。ドンヘ。周イーリン;チャン・シャオシャン。ナ・ワン;シャン・チャン; Zhen-Cai Zhu;ナイレ・リュー。ユアオ・チェン;ルー・チャオヤン。栄秀。チェン・ジー・ペン;ワン・ジャンユー; ジャンウェイ・パン (2017) 「1200キロメートルにわたる衛星ベースのもつれ分布」。 量子光学 . 356 (6343): 1140– 1144. arXiv : 1707.01339 . doi :10.1126/science.aan3211. PMID 28619937. S2CID 5206894.
^ ビリングス、リー(2020年4月23日)。「中国が『遠隔地での不気味な行動』の記録を破り、量子インターネットに備える」 サイエンティフィック・アメリカン 。
^ ポプキン、ガブリエル(2017年6月15日)。「中国の量子衛星が記録的な距離で『不気味な動作』を実現」。 サイエンス – AAAS 。
^ Aaronson, Scott (2009). 「BQP と多項式階層」. arXiv : 0910.4698 [quant-ph].
^ Dawson, Christopher M.; Nielsen, Michael (2006-01-01). 「ソロベイ-キタエフアルゴリズム」. 量子情報と計算 . 6 (1). セクション5.1、方程式23. arXiv : quant-ph/0505030 . doi :10.26421/QIC6.1-6.
^ Matteo, Olivia Di (2016). 「並列化量子回路合成」. 量子科学技術 . 1 (1): 015003. arXiv : 1606.07413 . Bibcode :2016QS&T....1a5003D. doi :10.1088/2058-9565/1/1/015003. S2CID 62819073.
^ Aaronson, Scott (2002). 「再帰的フーリエサンプリングの量子下限値」. 量子情報・計算 . 3 (2): 165– 174. arXiv : quant-ph/0209060 . Bibcode :2002quant.ph..9060A. doi :10.26421/QIC3.2-7.
^ Q# オンラインマニュアル: 量子メモリ管理
^ Ryo, Asaka; Kazumitsu, Sakai; Ryoko, Yahagi (2020). 「高速フーリエ変換のための量子回路」. 量子情報処理 . 19 (277): 277. arXiv : 1911.03055 . Bibcode :2020QuIP...19..277A. doi :10.1007/s11128-020-02776-5. S2CID 207847474.
^ Montaser, Rasha (2019). 「Rゲートを使用した可逆全加算器/減算器の新設計」. International Journal of Theoretical Physics . 58 (1): 167– 183. arXiv : 1708.00306 . Bibcode :2019IJTP...58..167M. doi :10.1007/s10773-018-3921-1. S2CID 24590164.
^ QCL 0.6.4 ソースコード、ファイル「lib/examples.qcl」
出典