多量子ビット状態の可視化(多次元ブロッホ球)

この記事は量子コンピュータ Advent Calendar 2020の12/3ぶんです。
qiita.com


こんにちは。Kumaです。
この記事では量子ビット状態の可視化を考えてみます。
可視化、というと、1量子ビット状態ではブロッホ球なるものが出てきます。
しかし、2量子ビット状態になると、ブロッホ球の話は全然出てこなくなります。
なぜでしょうか??

実は、1量子ビットの可視化は容易なのですが、2量子ビットに増えるだけで一気に難しくなります。

道具の準備

天下り的ですが、必要な道具を先に導入します。

2x2エルミート行列 Hは、パウリ行列 \sigma_{1}, \sigma_{2}, \sigma_{3} と呼ばれる特別なエルミート行列と、単位行列  I の線形結合で書くことができます。

H = \frac{1}{2} ( h_{0}I + h_{1}\sigma_{1} + h_{2}\sigma_{2} + h_{3}\sigma_{3} )
ここで  h_{0}, h_{1}, h_{2}, h_{3} すべて実数であって次の式を満たします。
 h_{0} = \rm{Trace} (IH), h_{1} =  \rm{Trace}(\sigma_{1}H), h_{2} =  \rm{Trace}(\sigma_{2}H), h_{3} = trace(\sigma_{3}H)
ちなみに、Traceというのは行列の対角成分全ての和を取る演算です。

f:id:phymath1991:20181209203724p:plain:w500
エルミート演算子のパウリ行列展開
これは以前の記事で証明しています。
electrodynamics.hatenablog.com


他方、二成分の複素ベクトル | \psi \rangle


 | \psi \rangle = 
\begin{pmatrix}
 \alpha \\
 \beta
\end{pmatrix}

に対して


 | \psi \rangle \langle  \psi |

=

\begin{pmatrix}
 \alpha \alpha^{\star} & \alpha \beta^{\star} \\
 \beta \alpha^{\star} & \beta \beta^{\star}

\end{pmatrix}
 | \psi \rangleの密度演算子といい、記号 \rho で書きます。(このブログでは 射影演算子 という呼び方もしていますが、同じです)
密度演算子は明らかにエルミート行列なので、パウリ行列展開が可能です。

1量子ビット状態は1つのブロッホ

密度演算子のパウリ行列展開における係数(”成分”)である実数 \psi_{0,1,2,3}を考えます。
ここで のノルム |\alpha|^{2}+|\beta|^{2}=1であるとします。
すると  | \psi \rangleによらず \psi_{0} = 1であることがわかるので、 \psi_{0}は定数です。自由度ではないので無視しましょう。
結局、密度演算子を考えることでノルム1の2成分複素ベクトル | \psi \rangleは 実数の三次元ベクトル
 \vec{\psi}
=

\begin{pmatrix}
 \psi_{1} \\
 \psi_{2} \\
 \psi_{3} \\
\end{pmatrix}
に対応しました。
さらにこれらは独立ではありません。
それを確認するために、成分表示を定義から求めてみると

 \psi_{1} = |\alpha|^{2} - |\beta|^{2} \\
 \psi_{2} = \alpha^{\star}\beta + \beta^{ \star}\alpha = 2Re[\alpha \beta^{\star} ] \\
 \psi_{3} = -j(\alpha^{\star}\beta -\beta^{ \star}\alpha) = -2Im[\alpha \beta^{\star} ] \\
となります。上記からも
 \psi_{1}^{2}+\psi_{2}^{2}+\psi_{3}^{2} = 1 という関係式を満たすことがわかります。
すなわち、  \vec{\psi} は三次元空間における半径1の球面と1:1に対応します。
*1

この球をブロッホ球、 \vec{\psi}ブロッホベクトルといいます。*2

f:id:phymath1991:20181209204622p:plain:w500
射影演算子の”座標成分”の球面表示

2量子ビット状態は2つのブロッホ球?

さて、2量子ビットに拡張してみましょう。1量子ビット状態が2つあって、それぞれ | \psi \rangle | \phi \rangleだったとします。
これを2量子ビット状態だとみなすとき、その量子状態は、 \otimes という記号を用いて、
 | \psi \rangle \otimes | \psi \rangleと書けます。
よくわかりませんが、成分で定義すると

 | \psi \rangle \otimes | \psi \rangle
=
\begin{pmatrix}
 \alpha \gamma \\
 \alpha \delta \\
\beta \gamma \\
\beta \delta
\end{pmatrix}
ということです。ここで  \alpha,  \beta | \psi \rangleの成分で、 \gamma,  \delta | \phi \rangleの成分です。
2量子ビット状態は、ノルム1の4成分複素数ベクトルで書るということですね。
単純に考えれば、成分の数が2倍になっているので、ブロッホ球を2個並べれば表現できそうですね。実際これは正しいです。お疲れ様でした。
と、いうわけにはいきません。

2量子ビット状態をちゃんと考えてみる

なぜブロッホ球を2個並べてもだめなのでしょうか?
ブロッホ球を2個並べて表示できるのは、1量子ビット目と2量子ビット目が無相関である時だけだからです。
実際、我々は意図せずに無相関であることを仮定してしまっています。

我々の先の数式展開に紐づけてみると、以下が問題なわけです。

1量子ビット状態が2つあって、それぞれ | \psi \rangle | \phi \rangleだったとします。
これを2量子ビット状態だとみなすとき、その量子状態は、 \otimes という記号を用いて、
 | \psi \rangle \otimes | \psi \rangleと書けます。

ここがまずいのです。
このような状態は積状態と呼ばれます。積状態は、ただ1量子ビット状態を2つもってきただけなので、互いに相関はありません。
しかし積状態は量子状態全てを尽くしていません。
例えば、任意の積状態の和もまた新たな量子状態として認めなければなりません。
例えば、2量子ビット積状態を2つ考えて、その重ね合わせ  | \psi \rangle \otimes | \phi \rangle +  | \lambda \rangle \otimes | \eta \rangle も2量子ビットの状態として存在しえます。
しかしこれは一般に  | \dot \rangle \otimes | \dot \rangle のような積状態に分解が出来ません。
特に極端なものとして、 | \psi \rangle = \frac{1}{\sqrt{2}}  ( | 00 \rangle + | 11 \rangle ) という状態(エンタングルメント)があります。
これは第一量子ビットと第二量子ビットが常に同じ値を取るように束縛がかかった状態です。(もちろん、積状態で書けません)
このように、量子状態では、互いの状態が相関することがありえます。例えば1量子ビット目がなにか変化したときに、2量子ビット目が巻き込まれて変わってしまうことがあるのです。

よって、「積状態であれば、(独立な)ブロッホ球を2個並べて可視化できる」のですが、一般の2量子ビット状態では、そのようなことはできません。
”相関する2つのブロッホ球” を考えなければなりません。

2量子ビット状態のブロッホベクトル

では、2量子ビット状態のブロッホベクトルはどうあるべきなのでしょうか?
以下の論文を参考にして考えました。
[1602.01548] Entangled Bloch Spheres: Bloch Matrix and Two Qubit State Space

まず、2量子ビット状態と、その密度演算子 \rhoを考えます。
性懲りもなく、密度演算子のパウリ行列展開を試みます。
実は基底として  \sigma_{\mu} \otimes \sigma_{\nu} \mu , \nu = 0,1,2,3 を取ると、展開できます。
すなわち、 \rho = \sum_{\mu , \nu = 0,1,2,3} \rho_{\mu \nu}  \sigma_{\mu} \otimes \sigma_{\nu} ここで \rho_{\mu \nu}は全て実数です。
すると、ブロッホベクトルならぬ、4x4の”ブロッホ行列” \rho_{\mu \nu}が状態を決定づけそうです。
ブロッホ行列を少し調べてみます。成分計算をしていくと、ブロッホ行列の中身は次のように分類できます。

 \rho = 
\begin{pmatrix}
 1 && \vec{v}^{\dagger} \\
 \vec{u} && R
\end{pmatrix}
ここで \vec{u} は第一量子ビットに対する(ローカル)ブロッホベクトル、 \vec{v}は第二量子ビットに対する(ローカル)ブロッホベクトルです。
どちらも3次元の実数ベクトルです。
Rは3x3の行列で、相関行列と呼ばれます。

積状態のブロッホベクトル

一番簡単な状態として、積状態を考えます。このとき、Rは \vec{u} , \vec{v}だけで完全に決まります。具体的には  R = \vec{u} \vec{v}^{\dagger} となります。(ベクトル外積であることに注意)
よって、ブロッホ行列は単に各量子ビットに対する(独立な)ブロッホベクトルで完全に指定されますので、独立な2つのブロッホ球で表現できます。

しかし一般の状態では、Rを考慮する必要があることは明らかです。よって、独立な2つのブロッホ球では記述できないわけです。

一般の状態のブロッホベクトル

ここで、4x4のブロッホ行列を4x4=16個の実数成分を持つ1つのベクトルとみてみます。
更に、ブロッホ行列の(0,0)成分は常に定数1だったので、無視します。(15次元のベクトルになります)
このやり方は、以下の(おそらく多次元ブロッホ球で最も有名な)論文にあります。*3
[quant-ph/0301152] The Bloch Vector for N-Level Systems

このとき、ブロッホベクトルはノルムが常に1でなければならないことがわかります。
1量子ビット系のときと同じですね。
すなわち、ブロッホベクトルは15次元球面に存在します。*4

では、15次元球面の任意の点は、意味ある量子状態  | \phi \rangle でしょうか?
1量子ビット状態のときはそうだったので、2量子ビットでも当然そうであるように思います。
しかし、これは間違いです!

詳細は先の論文を見て頂くとよいのですが、15次元球面の一部の領域だけが意味ある量子状態  | \phi \rangle になっています。*5
これは不思議なことでは有りません。そもそも2量子ビットの状態は、複素数4つからなる複素ベクトル | \phi \rangle だったので、
実数にして4x2 = 8 次元しかありません。*6
そのため、15次元球面の全てを埋め尽くせそうにないことがわかると思います。
ブロッホ球は穴だらけなのです。

例えば、二次元射影してやると、以下のようになります。*7
もし球面全体であれば、その射影としては円が浮かび上がるはずですが、そうなりません。

f:id:phymath1991:20201129233313p:plain
15次元ブロッホ球(内部も含んだ)の二次元射影。円にならない。

量子ビットブロッホベクトルでも、全然自明な幾何学を持ちません。
難しいですね!
なぜ、ブロッホベクトルは1量子ビット系の時しか登場しないのか、おわかりいただけたでしょうか・・・。

まとめ

・1量子ビット状態は、(三次元)ブロッホ球の表面の点として表現できる。
・2量子ビット状態になると、15次元球面の点として表現できる。(次元が一気にあがる!)
しかも、その球面の一部の点だけが意味ある量子状態を持つ。(ブロッホ球は穴だらけ)
・積状態に限れば、量子ビット間は無相関なので(三次元)ブロッホ球を複数並べればいい。
-------------------------------------------------------------------

*1:ちなみに、 \vec{\psi} の成分表示を一度忘れて、球の内部に相当する量子状態 \vec{\psi} も考えることはできます。この場合、もともとの複素2成分ベクトル | \psi \rangleはどんなものになっているでしょうか? ふつうに考えると、対応する | \psi \rangleは存在しないのですが、混合状態というものを認めると矛盾なく説明ができるようになります。ここでは混合状態に立ち入ることはしません。

*2:結晶格子の分野でもブロッホというワードが出てきますが、無関係です

*3:ちなみに、この論文は途中計算に大きな間違いがありますので注意してください。

*4:なお、一般には N^{2}-1次元球面になります。いまは N=4です。

*5:最も極端な例として、 \vec{S}がある量子状態に対応するブロッホベクトルであるとき、その負ベクトル -\vec{S}に対応する量子状態は存在しません。これは、ブロッホベクトル同士の内積と量子状態の関係を使うと示せます。

*6:ノルムが1であること、グローバル位相が無視されることなどを要請すると、もっと減ります

*7:ランダムに量子状態を発生させて、そのブロッホベクトルを計算してプロットしています