1.密度演算子をなぜ使う?
今回は量子コンピュータの動作やアルゴリズムの話では無くて、量子コンピュータの物理の話をしましょう。量子コンピュータを作る上では非常に大切な話ですし、また、物理の現象としてもとっても面白いことが含まれているところです。ただアルゴリズムに興味がある人はここは飛ばしてくださいね。全く関係の無い話ですから。
さて、量子コンピュータを作る上で、
緩和
という現象はとても重要です。量子コンピュータにおける緩和とは、最初は純粋で制御できる状態\(\ket{\psi}\)だった量子ビットが、外部からのノイズなんかを受けることによって、いろんな状態が混ざりあってしまう現象のことを言います。こういう現象をしっかりと理解しておかないと、量子コンピュータなんて作れる訳もありません。そして緩和を式で展開するためには、
密度演算子
というのがとても便利なのです。そこで、今回はこの密度演算子というものを解説してみたいと思います。
2.混ざりあった状態
緩和と言うのは、量子ビットが混ざりあった状態 (
混合状態
と呼ばれます) になってしまう現象を言う、と説明しましたが、混ざりあった状態と言ってもどういうことかわからないと思うので、簡単な例を挙げて説明してみます。
最初の例で、例えば光子を考えてみましょう。光子を量子ビットとして使うときは、一般的に偏光状態を使います。例えば縦に偏光しているものを\(\ket{0}\)、横に偏光しているものを\(\ket{1}\)とする感じです。では、下の図のような状態はどのように表せばいいでしょうか?
2つのレーザーは、それぞれ\(\ket{0},\ket{1}\)の偏光状態をもった純粋な光子を放出しているとします。しかしながら出力されている光は、これら2つの光子が混ざりあっていますね。したがって、もうこの光に純粋な状態\(\ket{0},\ket{1}\)のどちらであるかということは言えません。例えばレーザー1,2が等しい個数の光子を出していたとすると、出てきている光は\(\ket{0},\ket{1}\)の状態の光が5割ずつ混ざりあったものである、ということ以上は言えないのです。こういう状況を、
混合状態
といいます。
また、この状態は、量子的な重ね合わせ状態とは全く違う概念です。次はいままで扱ってきたスピンを例として、
\[\ket{+}=\frac{1}{\sqrt{2}}(\ket{0}+\ket{1})\tag{1}\]
という
純粋状態
と、「\(\ket{0},\ket{1}\)の状態が5割ずつ混ざりあったもの」の違いを考えてみましょう。
Z方向の固有状態\(\ket{0},\ket{1}\)のどちらが現れるか、またその確率、という観点から見てしまうと、全く同じように見えてしまいます。しかし、X方向の固有状態\(\ket{+},\ket{-}\)ではどうでしょうか。(1)式の\(\ket{+}\)という状態は当然\(\ket{+}\)に確定した状態ですから、100%の確率で\(\ket{+}\)が観測されます。しかし、「\(\ket{0},\ket{1}\)の状態が5割ずつ混ざりあったもの」では、X方向に観測しても\(\ket{+},\ket{-}\)が5割ずつの確率で観測されるのです。
混合状態と純粋状態の違いがなんとなくわかっていただけたでしょうか。純粋状態の重ね合わせ状態は、必ず何らかの物理量を表す演算子の固有状態になっている一方で、混合状態はそういう性質のものでは無いことが重要です。
しかし、毎回「\(\ket{0},\ket{1}\)の状態がこれこれの割合で混ざりあったもの」というような表現をするのはめんどくさいですよね。そこで密度演算子が登場します。
3.密度演算子
密度演算子を導入するために、先程のを一般化して、「\(\ket{\psi_i}\)がそれぞれ\(p_i\)の割合で混ざりあった状態」を考えてみましょう。
この状態に対して、なんらかの物理量を表す演算子\(A\)の期待値\(\langle A\rangle\)を計測すると、どのような結果が得られるでしょうか。単純に考えて、それぞれの状態\(\ket{\psi_i}\)に対するAの期待値を求めて、それを\(p_i\)で足し合わせれば良いでしょう。つまり、
\[\langle A\rangle = \sum_i p_i\bra{\psi_i}A\ket{\psi_i}\tag{2}\]
となります。この式を少し変形すると、密度演算子が現れます。考えている量子系で正規直交基底となっている状態\(\ket{k}\)を全部取ってきて次のようなものを考えると、
\[\sum_k \ket{k}\bra{k} = 1\tag{3}\]
のように1になってしまうことを使います。(
完全性と呼ばれる性質です。) (3)が成り立つことは簡単に確認できます。基底を取り尽くしたということは、この系での任意の量子状態\(\ket{\psi}\)は\(\ket{k}\)によって
\[\ket{\psi}=\sum_k a_k\ket{k}\tag{4}\]
と展開できるということですから、(4)に(3)を掛けてみれば、確かに(3)の演算子が何もしない、単位行列になっていることがわかると思います。
(2)式に(3)を挿入して、次のように変形していきましょう。
\begin{align}
\langle A\rangle &= \sum_i p_i\bra{\psi_i}A\ket{\psi_i}\\
&= \sum_i p_i\bra{\psi_i}\left(\sum_k\ket{k}\bra{k}\right)A\ket{\psi_i}\\
&= \sum_i\sum_k p_i\braket{\psi_i}{k}\bra{k}A\ket{\psi_i}\\
&= \sum_i\sum_k p_i\bra{k}A\ket{\psi_i}\braket{\psi_i}{k}\\
&= \sum_i\sum_k \bra{k}\left(p_i A\ket{\psi_i}\bra{\psi_i}\right)\ket{k}\\
&= \sum_k \bra{k}A\left(\sum_ip_i \ket{\psi_i}\bra{\psi_i}\right)\ket{k}\\
\end{align}
この式をみると、正規直交な基底\(\ket{k}\)で、
\[\rho = \sum_ip_i \ket{\psi_i}\bra{\psi_i}\tag{5}\]
という行列と物理量の行列\(A\)が挟まれて、それを足し合わせた格好になっていますね。割合\(p_i\)で状態\(\ket{\psi_i}\)が混ざりあった状態であっても、この\(\rho\)という行列を考えれば、期待値を
\[\langle A\rangle = \sum_k \bra{k}A\rho\ket{k}\tag{6}\]
と計算できることがわかりました。
この\(\rho\)という行列を使えば、「割合\(p_i\)で状態\(\ket{\psi_i}\)が混ざりあった状態」を的確に式で表すことができそうです。この\(\rho\)が
密度演算子
もしくは
密度行列
と呼ばれます。
なんでそんなふうに呼ぶのかはまた今度紹介しましょう。この\(\rho\)の時間発展を調べることで、なぜかがわかります。実は古典論での粒子の密度とほとんど同じ方程式に従うのです。
ちなみに、ある演算子を正規直交基底で挟んで足し合わせるという作業は、実は行列でトレース (対角和) をとることと全く同じ操作なので、(6)式は次のように書かれる事が多いです。
\[\langle A\rangle = \Tr(A\rho)\tag{7}\]
ちなみにここまで注意するのを忘れていましたが、\(p_i\)というのは割合なので、
\[\sum_i p_i = 1\tag{8}\]
を満たしていないといけません。この性質(8)から密度演算子自身のトレースは、
\begin{align}
\Tr(\rho) &= \sum_k \bra{k}\rho\ket{k}\\
&= \sum_k \bra{k}\left(\sum_i p_i \ket{\psi_i}\bra{\psi_i}\right)\ket{k}\\
&= \sum_i \sum_k p_i \braket{k}{\psi_i}\braket{\psi_i}{k}\\
&= \sum_i \sum_k p_i \braket{\psi_i}{k}\braket{k}{\psi_i}\\
&= \sum_i p_i \bra{\psi_i}\left(\sum_k\ket{k}\bra{k}\right)\ket{\psi_i}\\
&= \sum_i p_i \braket{\psi_i}{\psi_i}\\
&= \sum_i p_i = 1
\end{align}
と、1になってしまいます。
4.例
一般論を話すとわけがわからないという不満が出そうなので、ここらへんで例を紹介しておきます。簡単に1qubitの場合でいいでしょう。
例えば\(\ket{0}\)と\(\ket{1}\)が\(p_0,p_1\)という割合で混ざったものを考えます。
さて、この場合の密度演算子は、次のように計算できます。
\[\rho = p_0\ket{0}\bra{0}+p_1\ket{1}\bra{1}\tag{9}\]
行列表示してみましょう。
\[\ket{0} = \left(\begin{array}{c}1\\0\end{array}\right), \ket{1} = \left(\begin{array}{c}0\\1\end{array}\right)\tag{10}\]
と考えることにすると、
\begin{align}
\ket{0}\bra{0} &= \left(\begin{array}{c}1\\0\end{array}\right)\left(\begin{array}{cc}1&0\end{array}\right) = \left(\begin{array}{cc}1&0\\0&0\end{array}\right)\\
\ket{1}\bra{1} &= \left(\begin{array}{c}0\\1\end{array}\right)\left(\begin{array}{cc}0&1\end{array}\right) = \left(\begin{array}{cc}0&0\\0&1\end{array}\right)\\
\end{align}
ですので、
\[\rho = \left(\begin{array}{cc}p_0&0\\0&p_1\end{array}\right)\]
が密度演算子を行列表示したものです。
この例を使って色々とやってみます。まずトレース (対角和) を求めてみましょう。行列表示したものから明らかに対角成分の和は
\[p_0+p_1=1\]
です。でもやっぱりブラケットで表記してある方も計算できないといけません。こちらはさっきのトレースの定義から、
\begin{align}
\Tr(\rho) &= \bra{0}\rho\ket{0}+\bra{1}\rho\ket{1}\\
&= \bra{0}(p_0\ket{0}\bra{0}+p_1\ket{1}\bra{1})\ket{0}+\bra{1}(p_0\ket{0}\bra{0}+p_1\ket{1}\bra{1})\ket{1}\\
&= p_0 + p_1 =1
\end{align}
のように計算することができますね。どちらも一致していることに (当たり前かもしれないですが) 注意しておきましょう。
さらに、行列X
\[X=\left(\begin{array}{cc}0&1\\1&0\end{array}\right)\]
の期待値でも計算してみます。ただ行列を掛け算して対角成分の和をとるだけですから簡単です。やってみると、
\begin{align}
\langle X\rangle &= \Tr (X\rho)\\
&= \Tr \left[\left(\begin{array}{cc}0&1\\1&0\end{array}\right)\left(\begin{array}{cc}p_0&0\\0&p_1\end{array}\right)\right]\\
&= \Tr \left[\left(\begin{array}{cc}0&p_1\\p_0&0\end{array}\right)\right]
&= 0
\end{align}
と0になってしまいました。でも、この結果は当たり前ですね。混ざり合っているもの\(\ket{0},\ket{1}\)それぞれのXの期待値を求めても0なのですから、全体をみても0になるに決まっています。今回の例は簡単すぎたので、次にもう少し複雑な例を挙げてみました。
5.例2
次は\(\ket{0}\)と\(\ket{+}\)が\(p_0,p_+\)という割合で混ざったものを考えます。\(\ket{+}\)はX行列の固有状態で、\(\ket{0},\ket{1}\)で表すと
\[\ket{+} = \frac{1}{\sqrt{2}}\left(\ket{0}+\ket{1}\right)\]
です。
密度演算子はどうなるでしょうか。まず\(\ket{+}\bra{+}\)は次のように行列表示できます。
\[\ket{+}\bra{+} = \frac{1}{2}\left(\begin{array}{c}1\\1\end{array}\right)\left(\begin{array}{cc}1&1\end{array}\right) = \frac{1}{2}\left(\begin{array}{cc}1&1\\1&1\end{array}\right)\]
したがって密度演算子は
\[\rho = \frac{1}{2}\left(\begin{array}{cc}2p_0 + p_+&p_+\\p_+&p_+\end{array}\right)\]
という行列表示になります。
この状態に対して、もう一回\(\langle X\rangle\)を求めてみましょう。今回はさっきと違う結果になるはずです。というか、\(\ket{+}\)に確定した状態を\(p_+\)の割合で入れてるのですから、\(p_+\)に比例する期待値が出てきて欲しいところです。
\begin{align}
\langle X\rangle &= \Tr (X\rho)\\
&= \Tr \left[\frac{1}{2}\left(\begin{array}{cc}0&1\\1&0\end{array}\right)\left(\begin{array}{cc}2p_0 + p_+&p_+\\p_+&p_+\end{array}\right)\right]\\
&= \frac{1}{2}\Tr \left[\left(\begin{array}{cc}p_+&p_+\\2p_0+p_+&p_+\end{array}\right)\right]\\
&= p_+
\end{align}
となって、おおむね予想通りの結果となりました。
今回紹介した感じで、密度演算子は
混合状態
を書き表すのにとっても都合の良いやり方なんです。