2017/09/22

量子状態から情報を得る

1量子ビットがもつ、2つの複素数で表される連続的な情報から、0 もしくは 1 のデジタルな値を得るためには、
「測定(measure)」もしくは「観測(observe)」と呼ばれる操作を行います。

 1量子ビットの情報は、ブロッホ球の球面上でイメージできますが、この測定という行為は、 測定したい軸(ブロッホ球の原点を通る直線)を1つ選び、その軸に投影して、その位置により 確率的に、どちらの値になるかが決まるということになります。

 通常は、測定したい軸(ブロッホ球の原点を通る直線)として、\({\left| 0 \right\rangle}\) と、\({\left| 1 \right\rangle}\) の軸(「基底」と呼ばれる)が使われます。

\({\alpha\left|0\right\rangle+\beta\left|1\right\rangle}\) を、基底 \({ \left| 0 \right\rangle , \left| 1 \right\rangle }\) で測定すると、 \(|\alpha |^{2} \) の確率で \({ \left| 0 \right\rangle }\) が得られ、 \(|\beta |^{2} \) の確率で \({ \left| 1 \right\rangle }\) が得られます。

このように、測定する基底を使って表させた \( \alpha , \beta \) を「複素確率振幅」と呼び、その2乗の確率で、基底の値 \({ \left| 0 \right\rangle , \left| 1 \right\rangle }\) が得られます。

2017/09/21

量子コンピューターはデジタル?アナログ?

量子コンピューターが扱う情報は量子ビットです。量子ビットは、複素数を2つ含む情報で、連続的な情報です。

そのため、量子コンピューターが扱う情報は、アナログ的な情報と言えます。量子ビットの操作(演算)は、
アナログ的に進みます。その情報を観測すると、確率的に 0 もしくは 1 の値が得られることになり、結果としては
デジタルな情報となります。

アナログ機器かデジタル機器かの議論は様々な見解があります。
量子コンピューターは内部ではアナログ情報を扱っていますが、ここでは、アナログ機器ではないという解釈をとります。

量子コンピューターは、Shor 氏による「量子誤り訂正符号」の理論のもと、理論的に精度保証ができる機構を有すること
可能であると判明しています。これにより、情報を精度を高く保つことができるようになり、アナログ機器ではなく
演算精度をもつことができるデジタル機器であると考えられます。

2017/09/20

CNOT演算の行列表記

2量子ビットに対しての CNOT演算 を行列で表記すると、

\(\left(\begin{array}{cccc} 1 && 0 && 0 && 0 \\ 0 && 1 && 0 && 0 \\ 0 && 0 && 0 && 1 \\ 0 && 0 && 1 && 0 \end{array}\right)\)

となります。

2017/09/19

N個の量子ビットを表すためのベクトル

1量子ビットは、\(|\alpha |^{2}+|\beta |^{2}=1\) で規格化された \(\left(\begin{array}{c} \alpha \\ \beta \end{array}\right)\) と2要素のベクトルで表現されます。

2量子ビットをケット・ベクトルで表すと、\(|\alpha |^{2}+|\beta |^{2}+|\gamma |^{2}+|\delta |^{2}=1\) を満たす \(\alpha, \beta, \gamma, \delta \) で規格化された

\(\alpha{\left|00\right\rangle}+\beta{\left|01\right\rangle}+\gamma{\left|10\right\rangle}+\delta {\left|11\right\rangle}\)

となります。これをベクトル表記で表すと、

\(\left(\begin{array}{c} \alpha \\ \beta \\ \gamma \\ \delta \end{array}\right)\)

です。

一般的に、N個の量子ビットは、2N個の複素数を要素にもつベクトルで表現されます。

2017/09/18

ベクトルのノルムと規格化

任意のベクトル x について、 \({\left\langle x\middle|x \right\rangle \geqq 0}\) が成り立ちます。

その平方根、\({\left(\left\langle x\middle|x \right\rangle\right)^{1/2}}\) をノルムといい、\(\| x \|\) と表します。

任意のケットベクトル x を、そのノルムで割った \({ \left| x \right\rangle / \| x \|}\) を計算し、 \({\left| x \right\rangle}\) と改めることを、ケット・ベクトル x の規格化といいます。

量子情報科学では、物理状態に対応するケット・ベクトル(とそれに対応するブラ・ベクトル)は、常に規格化しておくことにします。すると、任意のケット・ベクトルについて、

 \({\left\langle x\middle|x \right\rangle = 1}\)

が常に成り立ちます。

2017/09/17

量子ビット操作と行列演算

量子ビットは \({\alpha\left|0\right\rangle+\beta\left|1\right\rangle}\) と表現しますが、これをベクトル表記で表すと、

\({\alpha\left(\begin{array}{c} 1 \\ 0 \end{array}\right)+\beta\left(\begin{array}{c} 0 \\ 1 \end{array}\right)=\left(\begin{array}{c} \alpha \\ \beta \end{array}\right)}\) となります。

量子ビット操作は、この量子ビットを別の量子ビットに変換することを意味します。
この操作は、\( 2 \times 2\) 行列で表わせます。

例えば、ユニタリー変換は変数 \(\theta,\phi,\lambda\) を使って

\({\left(\begin{array}{cc} e^{-i(\phi+\lambda)/2}cos(\theta/2) && -e^{-i(\phi-\lambda)}sin(\theta/2) \\ e^{i(\phi-\lambda)/2}sin(\theta/2) && e^{-i(\phi+\lambda)/2}cos(\theta/2) \end{array}\right)}\)

となります。

2017/09/16

2量子ビットの量子演算:CNOT演算

1量子ビットの重要な量子操作がユニタリー変換でした。
2量子ビットの重要な量子操作として、CNOT演算があります。"CNOT" の "C" は、制御(Controlled)の "C" です。日本語では「制御NOT」とも呼ばれます。

"NOT" は、古典計算でイメージされるとおり、1を 0 に、0 を 1 に変換する否定演算です。2つの量子ビットの操作では、一方の量子ビットが制御のための量子ビットの役割を務め、もう一方の量子ビットが操作対象の量子ビットとなります。
制御ビットの値(0 または 1)により、操作対象となる量子ビットに NOT操作を行うかが影響して作用します。

上位ビットが制御ビットの CNOT を操作すると、次のようになります。

\({CNOT \left|0\right\rangle\left|0\right\rangle=\left|00\right\rangle}\)
\({CNOT \left|0\right\rangle\left|1\right\rangle=\left|01\right\rangle}\)
\({CNOT \left|1\right\rangle\left|0\right\rangle=\left|11\right\rangle}\)
\({CNOT \left|1\right\rangle\left|1\right\rangle=\left|10\right\rangle}\)

CNOT が作用する前(左辺)と、CNOT が作用した後(右辺)では敢えて、ケット・ベクトルの記載を変えてあります。専門書では、左辺も2量子ビットを1つのケットの中で表現しています。

CNOT の特徴は、量子もつれ(エンタングルメント)状態を作るのに用います。