本連載について
IBM Quantum Learning で学んだことを日本語でわかりやすくまとめて連載しています。詳しくはこちら⇨【超初心者向け】最高の教材「IBM Quantum Learning」で始める量子情報 #0 はじめに
🎓 本連載の内容
- IBM Quantum Learning
└── シリーズ:量子情報と量子計算
└── コース1:量子情報の基礎
└── 単一システム📍今回の内容
📖 公式教材はこちら
前提知識
- ある程度の高校数学、高校物理
- 行列計算とディラック記法
└── 記事はこちら(近日公開予定!フォローしてお待ちください)
古典情報を学ぶ意義
古典情報とはすなわち、皆さんに馴染みのある情報一般のことです。しかしそれと性質の異なる新しい情報、量子情報を扱う文脈においては、区別のために「古典」とされています。
早速ですが、量子情報を学ぶ上で、個人的に大切だと思っていることが一つあります。それは
古典情報との対応関係を常に意識しながら学習を進めていく
ことです。
量子情報は、その性質上直感的に理解しにくい部分があり、結局今自分が何をしているかを見失いがちです。
しかし、古典情報をしっかり理解しておくことで、量子情報をその延長線上として実感を持ってイメージすることが出来ます。すなわち、古典情報をしっかり学ぶことが、量子情報を学ぶ前のとても大切なステップであるということです。
意義に触れたところで、ここから実際に古典情報について学習していきましょう。
古典状態
まず、ある一つの系(システム)を考えます。例えばサイコロ。サイコロは1から6までの数字をランダムに吐き出す系(システム)であると考えられますね。他にはコインという系も考えられ、これは表か裏をランダムに吐き出す系であると考えられます。これらの系の「状態」を考えてみましょう。
補足1
よく系をXやY, その系の持つ状態のセットを$\Sigma$や$\Gamma$として次のように表現します。
例
X:サイコロ $\Sigma = \lbrace 1, 2, 3, 4, 5, 6 \rbrace$
Y:コイン $\Gamma_{1} = \lbrace 表, 裏\rbrace$
Z:ビット $\Gamma_{2} = \lbrace 0, 1\rbrace$
系X サイコロ
まずはサイコロについて考えてみます。
サイコロで、nという目が出ているとします。このとき、この系は「n」という状態にあると考えます。2という目が出ていたら、状態は「2」です。
では、投げる前のサイコロはどうでしょう?まだ、どの目が出るかはわかりませんね。しかし7という目が出ないことは確かです。さあここで取り入れるのが確率です。もしこの系(サイコロ)が理想的なら、1から6までの目がそれぞれ1/6の確率で出てくるでしょう。したがってこのサイコロの状態は「1から6の目について確率1/6で出る状態」といえます。
ここで
「状態」を「ベクトル」として考える
と統一感が出ると気づきます。ベクトルの第n成分をnの目が出る確率として表現するのです。これを状態ベクトルと言います。
用語:状態ベクトル
各要素をその要素に対応する状態になる確率として、ある状態を表現したベクトル
厳密には「古典状態ベクトル」
この記事では古典のみを扱うため単に「状態ベクトル」と記述する。
具体例を見てみましょう。
最初の例(2の目が出たサイコロ)の状態ベクトルはこのようになります。
\begin{pmatrix}
0\\
1\\
0\\
0\\
0\\
0
\end{pmatrix}
第2成分が1で、そのほかの要素が0です。2の出る確率が1と考えるのですね。
「投げる前のサイコロ」の状態ベクトルはどうなるでしょうか。
\begin{pmatrix}
\frac{1}{6}\\
\frac{1}{6}\\
\frac{1}{6}\\
\frac{1}{6}\\
\frac{1}{6}\\
\frac{1}{6}
\end{pmatrix}
全ての出目の確率が1/6のため、全ての要素が1/6であるこのようなベクトルで表現されます。
これらから予想されるように、この状態ベクトルには以下のような性質があります。
性質:状態ベクトル
- 各要素は非負
- 各要素の和が1
理由
各要素は、ある状態になる確率を表しており負の値を取らない。また、全ての確率の和は1となるため。
この状態ベクトルの性質は、Lpノルムというものを用いた表現にも書き直すことができます。
性質:状態ベクトル
- 各要素は非負
- $L^{1}$ノルム(マンハッタンノルム)が1
補足(ノルムとは?)
空間でのベクトルの大きさ(長さ)を一般化したもの。
特に、Lpノルムは$v = (a_{1} a_{2} ... a_{n})^{T}$に対してL^{p} = ||v||_{p} = \sqrt[p]{|a_{1}|^{p} + |a_{2}|^p + ... + |a_{n}|^p}と定義したもの。
今回は$p=1$なのでL^{1} = |a_{1}| + ... + |a_{n}|であり、これは各要素の(絶対値の)和を表す。
詳しくは以下のサイトがわかりやすかったので、是非参考にしてください。
うさぎでもわかる線形代数 応用編第3羽 pノルム (Lpノルム)
ノルムは少し難しい概念なので、今は100%の理解がなくても大丈夫です。「$L^{1}$ノルムはこういうものなんだ」くらいの認識で構いません。
さて、この状態ベクトルですが、今回は状態が6種類しかないのでパパッとかけました。しかし、状態が100個、1000個あるような系を考えるとすると、なかなかベクトルを書くのが大変になるのが想像できます。そこで、もう少し簡略化した表記法を使いたいと思うわけです。
2の目が出たサイコロの状態ベクトルを以下のように書いてみましょう。
\ket{2}=
\begin{pmatrix}
0\\
1\\
0\\
0\\
0\\
0
\end{pmatrix}
これはブラケット記法のケットベクトルですね。
ブラケット記法について、詳しくは以下の記事をご覧ください
近日公開!
もちろん他の目についても以下のように表せます。
\ket{1}=
\begin{pmatrix}
1\\
0\\
0\\
0\\
0\\
0
\end{pmatrix} %全角5マス
\ket{5}=
\begin{pmatrix}
0\\
0\\
0\\
0\\
1\\
0
\end{pmatrix}
この記法を用いることで、まだ振られていないサイコロの状態ベクトルは以下のように表せます。
\begin{aligned}
\begin{pmatrix}
\frac{1}{6}\\
\frac{1}{6}\\
\frac{1}{6}\\
\frac{1}{6}\\
\frac{1}{6}\\
\frac{1}{6}
\end{pmatrix}
&=
\frac{1}{6}
\begin{pmatrix}
1\\0\\0\\0\\0\\0
\end{pmatrix}
+
\frac{1}{6}
\begin{pmatrix}
0\\1\\0\\0\\0\\0
\end{pmatrix}
+
\frac{1}{6}
\begin{pmatrix}
0\\0\\1\\0\\0\\0
\end{pmatrix}
+
\frac{1}{6}
\begin{pmatrix}
0\\0\\0\\1\\0\\0
\end{pmatrix}
+
\frac{1}{6}
\begin{pmatrix}
0\\0\\0\\0\\1\\0
\end{pmatrix}
+
\frac{1}{6}
\begin{pmatrix}
0\\0\\0\\0\\0\\1
\end{pmatrix} \\
&=
\frac{1}{6}\ket{1}
+\frac{1}{6}\ket{2}
+\frac{1}{6}\ket{3}
+\frac{1}{6}\ket{4}
+\frac{1}{6}\ket{5}
+\frac{1}{6}\ket{6} \\
&= \frac{1}{6}\sum_{i=1}^{6}\ket{i}
\end{aligned}
非常にシンプルな形で書くことができました。
ブラケット記法を用いることにより、長い式でもこのようにまとまった形で表されます。
系Y コイン
コインについても同様に状態ベクトルを考えてみましょう。
サイコロでは、「ベクトルの第n成分をnの目が出る確率」として表現しました。
コインでは「ベクトルの第一成分を表の出る確率、第二成分を裏の出る確率」として表現すると決めましょう。
すなわちコインが表である状態と裏である状態の状態ベクトルは
\begin{pmatrix}
1\\
0
\end{pmatrix} %全角5マス
\begin{pmatrix}
0\\
1
\end{pmatrix}
と表現できますし、まだ投げていないコインはそれぞれ表裏になる確率は1/2なので
\begin{pmatrix}
\frac{1}{2}\\
\frac{1}{2}
\end{pmatrix}
となります。
これらをブラケット記法で表現すると
\ket{表} = \begin{pmatrix}1\\0\end{pmatrix} %全角5マス
\ket{裏} = \begin{pmatrix}0\\1\end{pmatrix}
\begin{pmatrix}
\frac{1}{2}\\\frac{1}{2}
\end{pmatrix}
= \frac{1}{2}(\ket{表}+\ket{裏})
となります。式の中に表や裏のような日本語が出てきているのが不自然に感じるところだと思いますが、このケットベクトルは表/裏である状態を表していると考えてみましょう。先ほど|5>のように数字だったのはたまたまその状態の名前を5と決めたからで、状態の名前を数字にしようが漢字にしようが記号にしようが、その名前をつける人の勝手なのです。
系Z ビット 📍重要!
最後にビットです。ビットの持つ状態のセットも$\Gamma = \lbrace 0, 1\rbrace$の二つなので、それぞれの状態ベクトルを以下のように表せます。
\ket{0} = \begin{pmatrix}1\\0\end{pmatrix} %全角5マス
\ket{1} = \begin{pmatrix}0\\1\end{pmatrix}
初めは0と1がたくさんあって混乱すると思いますが、ただ0を表す状態を(1 0)、1を表す状態を(0 1)としているだけであることを意識しましょう。
そしてこの三つ目の例であるビットをこれから非常に多用します。なぜなら我々の生活にはサイコロやコインよりもコンピュータが密接に関わり、それは全てビットによる計算によって成り立っているからです。
測定
測定とは、系の状態を確定することです。サイコロやコインにおいては、それらを振って結果を見ることにあたります。まだ振っていないサイコロの状態を確率状態、振って目が出た後の状態を決定状態とすると、測定により系は確率状態から決定状態へ遷移するとも言えます。
例1 コイン
例2 サイコロ
すなわちある状態が確率1の状態(確定状態)に収束します。
ブラケット記法での表現
ここで、ブラケット記法を用いて、「ある状態になる確率」を表現してみましょう。
例えば、サイコロを振る前の状態ベクトルは以下のようでした。
\begin{pmatrix}
\frac{1}{6}\\
\frac{1}{6}\\
\frac{1}{6}\\
\frac{1}{6}\\
\frac{1}{6}\\
\frac{1}{6}
\end{pmatrix}
=
\frac{1}{6}\ket{1}
+\frac{1}{6}\ket{2}
+\frac{1}{6}\ket{3}
+\frac{1}{6}\ket{4}
+\frac{1}{6}\ket{5}
+\frac{1}{6}\ket{6}
これは1から6になる確率が全て1/6であることを表しています。
「ある状態になる確率」は「その状態に対応する要素」であるので、それぞれの要素を抽出することができれば確率がわかります。
古典状態ベクトルにおいて、測定後
ある状態になる確率は、「今の状態ベクトル」と「確率を抽出したい状態に対応するベクトル」との内積をとることで抽出できる。
具体例
サイコロを投げて、3になる確率を抽出することを考える。
サイコロの投げる前の状態を$\ket{\phi}$とすると、先ほどの議論より
\ket{\phi} = \frac{1}{6}\ket{1}
+\frac{1}{6}\ket{2}
+\frac{1}{6}\ket{3}
+\frac{1}{6}\ket{4}
+\frac{1}{6}\ket{5}
+\frac{1}{6}\ket{6}
ここで、3に対応するベクトルは
\ket{3} = \pmatrix{0\\0\\1\\0\\0\\0}
より、これと$\ket{\phi}$との内積をとると
\begin{aligned}
\bra{3}\ket{\phi}
&= \bra{3}\left(\frac{1}{6}\ket{1}
+\frac{1}{6}\ket{2}
+\frac{1}{6}\ket{3}
+\frac{1}{6}\ket{4}
+\frac{1}{6}\ket{5}
+\frac{1}{6}\ket{6}\right) \\
&= \frac{1}{6}\bra{3}\ket{1}
+\frac{1}{6}\bra{3}\ket{2}
+\frac{1}{6}\bra{3}\ket{3}
+\frac{1}{6}\bra{3}\ket{4}
+\frac{1}{6}\bra{3}\ket{5}
+\frac{1}{6}\bra{3}\ket{6} \\
&= \frac{1}{6} \cdot 0 + \frac{1}{6} \cdot 0 + \frac{1}{6} \cdot 1 + \frac{1}{6} \cdot 0 + \frac{1}{6} \cdot 0 + \frac{1}{6} \cdot 0 \\
&= \frac{1}{6}
\end{aligned}
\therefore P(output = 3) = \bra{3}\ket{\phi} = \frac{1}{6}
これより、3になる確率が抽出できている。
一般には、抽出したい要素に対応するベクトルとの内積をとることで、それ以外の要素との計算結果が0になり、結果的に目的の要素のみが抽出できる仕組みである。
内積などのブラケット記法に関する詳しい説明はこちら
コインで考えると、表になる確率は
P(outcome = 表) = \bra{表}\ket{\phi}
で求まるということですね。
練習問題[1]
(1) 表の出る確率が1/4, 裏の出る確率が3/4であるようなコインの投げる前の状態をベクトルで表せ。(|表>=(1 0), |裏>=(0 1)とする)
(2) そのコインを投げ、裏が出たとする。そのときの状態ベクトルを示せ。
解答
(1)\begin{aligned}
& \frac{1}{4}\ket{表}+\frac{3}{4}\ket{裏} \\
=
& \frac{1}{4}\begin{pmatrix}1\\0\end{pmatrix}+\frac{3}{4}\begin{pmatrix}0\\1\end{pmatrix} \\
=
&
\begin{pmatrix}
\frac{1}{4}\\\frac{3}{4}
\end{pmatrix} \cdots\text{(答)}
\end{aligned}
(2)
状態は確定するので(確率1)
\begin{aligned}
1\cdot\ket{裏}
&=\ket{裏} \\
&= \begin{pmatrix}0\\1\end{pmatrix} \cdots\text{(答)}
\end{aligned}
古典的操作
ここでは、ある(古典)状態ベクトルを他の(古典)状態ベクトルに遷移させることを考えます。
このことを操作と言います。
そしてこの操作は行列で表されます。
どういうことでしょうか。実際に見てみましょう。
以下ではビットについて考えます。
例1
操作X:「0を1に、1を0にする」は
X = \begin{pmatrix} 0 & 1\\ 1 & 0 \end{pmatrix}と表せる。
証明
\begin{aligned} X\ket{0} &= \begin{pmatrix}0&1\\1&0\end{pmatrix}\begin{pmatrix}1\\0\end{pmatrix} \\ &= \begin{pmatrix}0\\1\end{pmatrix} \\ &= \ket{1} \\ \end{aligned} \begin{aligned} X\ket{1} &= \begin{pmatrix}0&1\\1&0\end{pmatrix}\begin{pmatrix}0\\1\end{pmatrix} \\ &= \begin{pmatrix}1\\0\end{pmatrix} \\ &= \ket{0} \end{aligned}
いわゆるNOTの操作です。
0という状態ベクトルが1という状態ベクトルに、また逆のこともこの行列を介すことによって操作できていることがわかります。
どんどん見ていきましょう。
例2
操作I:「0を0に、1を1にする」は
I = \begin{pmatrix} 1 & 0\\ 0 & 1 \end{pmatrix}と表せる。
証明
\begin{aligned} I\ket{0} &= \begin{pmatrix}1&0\\0&1\end{pmatrix}\begin{pmatrix}1\\0\end{pmatrix} \\ &= \begin{pmatrix}1\\0\end{pmatrix} \\ &= \ket{0} \\ \end{aligned} \begin{aligned} I\ket{1} &= \begin{pmatrix}1&0\\0&1\end{pmatrix}\begin{pmatrix}0\\1\end{pmatrix} \\ &= \begin{pmatrix}0\\1\end{pmatrix} \\ &= \ket{1} \end{aligned}
例3
操作C:「0はそのまま、1は(1/2, 1/2)の確率状態にする」は
P = \begin{pmatrix} 1 & \frac{1}{2}\\ 0 & \frac{1}{2} \end{pmatrix}と表せる。
証明
\begin{aligned} P\ket{0} &= \begin{pmatrix}1&\frac{1}{2}\\0&\frac{1}{2}\end{pmatrix}\begin{pmatrix}1\\0\end{pmatrix} \\ &= \begin{pmatrix}1\\0\end{pmatrix} \\ &= \ket{0} \\ \end{aligned} \begin{aligned} P\ket{1} &= \begin{pmatrix}1&\frac{1}{2}\\0&\frac{1}{2}\end{pmatrix}\begin{pmatrix}0\\1\end{pmatrix} \\ &= \begin{pmatrix}\frac{1}{2}\\\frac{1}{2}\end{pmatrix} \end{aligned}
このように、状態ベクトルを変化させる操作は行列によって表されます。しかしこの行列はなんでもいいというわけではなく、確率行列という行列のみが許されます。
用語:確率行列
以下の二つの性質を満たす行列
- 全ての要素が非負
- 各列について、要素の和が1
これはすなわち各列が状態ベクトルであるとも言える。
例
\begin{pmatrix}1&\frac{1}{2}\\0&\frac{1}{2}\end{pmatrix}
\begin{pmatrix}\frac{1}{3}&\frac{1}{4}&\frac{1}{2}\\
\frac{1}{4}&\frac{1}{8}&\frac{1}{4}\\
\frac{5}{12}&\frac{5}{8}&\frac{1}{4}\\
\end{pmatrix}
なぜ、古典状態への操作において確率行列のみが許されるのでしょうか。
確率行列以外の行列をかけた場合について考えてみましょう。
C = \begin{pmatrix}1&2\\3&-\frac{1}{3}\end{pmatrix}
ビットの0という状態($\ket{0}$)をこの行列Dにかけるとすると
\begin{aligned}
C\ket{0} &= \begin{pmatrix}1&2\\3&-\frac{1}{3}\end{pmatrix}\begin{pmatrix}1\\0\end{pmatrix} \\
&= \begin{pmatrix}1\\3\end{pmatrix}
\end{aligned}
このようなベクトルになってしまいます。
ここで状態ベクトルの性質を再掲します。
状態ベクトルの各要素の和は1($L^{1}$ノルムは1)である。
したがってこの行列Dによって得られたベクトルは状態ベクトルではないということです。
今回はDに注目しましたが、一般に確率行列でない行列を用いると状態ベクトルではなくなってしまいます。したがって状態ベクトル間の操作は確率行列によってなされるのです。
練習問題[2]
状態ベクトル間の操作は、確率行列によってのみなされることを示せ.
ヒント
任意の行列Dと任意の状態ベクトル$\ket{e}$をD = \begin{pmatrix}a&b\\c&d\end{pmatrix} \ket{e} = \begin{pmatrix}p\\1-p\end{pmatrix}として考える。
解答
<方針>
Dがa+c=1 b+d=1 a, b, c, d\geq0を満たすことを示す
ヒントのように行列Dと状態ベクトル$\ket{e}$を置くと
\begin{aligned}
D\ket{e}
&= \begin{pmatrix}a&b\\c&d\end{pmatrix}\begin{pmatrix}p\\1-p\end{pmatrix} \\
&= \begin{pmatrix}ap+b(1-p)\\cp+d(1-p)\end{pmatrix} \cdots(*)
\end{aligned}
このベクトルが状態ベクトルになる条件を考える。すなわち(*)について
- 要素の和が1
- 全ての要素が非負
を満たす条件である。
まず1について
\begin{aligned}
ap+b(1-p)+cp+d(1-p)&=1 \\
\iff
(a+c-b-d)p+(b+d)&=1
\end{aligned}
この恒等式が$0\le p\le1$を満たす全てのpで成立する必要がある。
したがって、条件は
\begin{aligned}
& \left\{ \,
\begin{aligned}
& a+c-b-d=0 \\
& b+d =1
\end{aligned}
\right. \\
\iff
&\left\{ \,
\begin{aligned}
& a+c=1 \\
& b+d=1
\end{aligned}
\right. \cdots\text{①}
\end{aligned}
また2について、条件は(*)より
\left\{ \,
\begin{aligned}
& ap+b(1-p)>0 \\
& cp+d(1-p)>0
\end{aligned} \cdots\text{(#)}
\right.
これは$0\le p\le1$を満たす全ての$p$で成立するので、$p=0, p=1$のときを考えると
- p=0のとき
\text{(#)}\Rightarrow
\left\{ \,
\begin{aligned}
& b>0 \\
& d>0
\end{aligned}
\right.
- p=1のとき
\text{(#)}\Rightarrow
\left\{ \,
\begin{aligned}
& a>0 \\
& c>0
\end{aligned}
\right.
すなわち
a, b, c, d \ge 0
逆にこのとき、$p, 1-p$は非負($0\le p\le1$)であることから、$ap$や$d(1-p)$のような項も非負であり、それらの和が負になることはないため(#)を満たす。(十分性の確認)
したがって
\text{(#)}\iff
a, b, c, d \ge 0 \cdots\text{②}
①、②より、Dは確率行列になることが示された. $\square$
まとめ
- 古典状態とは、要素が非負でその和が1のベクトルである
- 状態を観測することで、一つの確定した状態に収束する
- 古典状態(ベクトル)間の操作には行列、特に確率行列を用いる
最後に
今回は"古典"情報の基礎を扱いました。次回はついに量子情報を扱います。古典との対応関係を意識しながら学んでいきましょう。
次回はこちら
【超初心者向け】最高の教材「IBM Quantum Learning」で始める量子情報 #1-2 量子情報の基礎