量子情報理論の基本：エントロピー（２）

$$
\def\bra#1{\mathinner{\left\langle{#1}\right|}}
\def\ket#1{\mathinner{\left|{#1}\right\rangle}}
\def\braket#1#2{\mathinner{\left\langle{#1}\middle|#2\right\rangle}}
$$

## はじめに

[前回の記事](https://qiita.com/SamN/items/4abc9e3399a0aabadb2c)で、古典的な情報理論におけるエントロピーについておさらいできたので、今回は量子情報理論におけるエントロピーについて勉強します。その定義と性質について説明した後、量子計算シミュレータ[qlazy](https://github.com/samn33/qlazy)を使って、その重要な性質について、実際に計算して確認してみたいと思います。

参考にさせていただいたのは、以下の文献です。

1. [ニールセン、チャン「量子コンピュータと量子通信（３）」オーム社（2005年）](https://www.ohmsha.co.jp/book/9784274200090/)
2. [石坂、小川、河内、木村、林「量子情報科学入門」共立出版（2012年）](https://www.kyoritsu-pub.co.jp/bookdetail/9784320122994)
3. [富田「量子情報工学」森北出版（2017年）](https://www.morikita.co.jp/books/book/3109)
4. [めもめも - 量子エントロピー（フォン・ノイマンエントロピー）の性質を古典エントロピー（シャノンエントロピー）と比較して味わう試み](http://enakai00.hatenablog.com/entry/2018/06/06/153457)

## 定義

### フォンノイマン・エントロピー

古典的な情報理論におけるエントロピー（シャノン・エントロピー）は、ある事象群があったときに各事象が生起する不確実さの度合いの平均値（期待値）として定義されました。一般に量子系は純粋状態のアンサンブルとして表現されます。純粋状態として正規直交系$\\{ \ket{i} \\}$をとると、そのアンサンブルは$\\{ p_i, \ket{i} \\}$と表現されます。この純粋状態の存在確率$p_i$を事象の生起確率と見なすことで、量子系におけるエントロピーを定義できます。すなわち、

```math
S({p_i, \ket{i}}) = - \sum_{i=1}^{n} p_i \log p_i  \tag{1}
```

です。この式は、密度演算子を使って、以下のように書き換えることができます。

```math
S(\rho) = - Tr (\rho \log \rho)  \tag{2}
```

ほぼ、自明と思いますが、一応、確認します。

```math
\begin{align}
Tr(\rho \log \rho) &= \sum_{i,j} \bra{i} \rho \ket{j} \bra{j} \log \rho \ket{i} \\
&= \sum_{i,j} \bra{i} (\sum_{k} p_k \ket{k} \bra{k}) \ket{j} \bra{j} \log (\sum_{l} p_l \ket{l} \bra{l}) \ket{i} \\
&= \sum_{i,j,k} p_k \braket{i}{k} \braket{k}{j} \bra{j} \log (\sum_{l} p_l \ket{l} \bra{l}) \ket{i} \\
&= \sum_{i,j} p_j \delta_{ij} \bra{j} \log p_i \ket{i} \\
&= \sum_{i} p_i \log p_i  \tag{3}
\end{align}
```

です。

式(2)で定義されるエントロピーのことを「フォンノイマン・エントロピー(von neumann entropy)」と呼びます。以下では、面倒なので単に「エントロピー」と言うことにします。

ここで１点、ちょっとした注意事項があります。式(2)ではエントロピーの変数は密度演算子$\rho$となっていますが、別の書き方もよく見かけます。例えば、量子系Aにおける密度演算子に対するエントロピーという意味を強調するため、量子系を表すラベルを変数にして$S(A)$と書いたりします。たぶん混乱しないと思いますが、一応、念のためです。本記事でも頻繁に使いますので。


### エンタングルメント・エントロピー

ある合成系ABがあったときに、その部分系に対して定義されるエントロピーのことを「エンタングルメント・エントロピー(entanglement entropy)」と呼びます。部分系Aに対するエンタングルメント・エントロピー$S(A)$は、

```math
\begin{align}
\rho^{A} &= Tr_{B} (\rho^{AB}) \\
S(A) &= S(\rho^{A}) = Tr(\rho^{A} \log \rho^{A})  \tag{4}
\end{align}
```

のように定義されます。


### 結合エントロピー

量子系AとBを合わせた合成系ABにおける密度演算子$\rho^{AB}$に対するエントロピー$S(A,B)$を「結合エントロピー(joint entropy)」と呼びます。

```math
S(A,B) = - Tr (\rho^{AB} \log \rho^{AB})  \tag{5}
```

で、定義されます。


### 条件付きエントロピー

量子系では、条件付き確率というものは定義されないのですが、古典とのアナロジーで形式的に以下のように「条件付きエントロピー(conditional entropy)」を定義します。

```math
S(B|A) = S(A,B) - S(A) = S(\rho^{AB}) - S(\rho^{A})  \tag{6}
```

### 相対エントロピー

量子情報理論における「相対エントロピー(relative entropy)」は、以下のように定義されます。

```math
S(A || B) = S(\rho^{A} || \rho^{B}) = Tr(\rho^{A} \log \rho^{A}) - Tr(\rho^{A} \log \rho^{B}) \tag{7}
```

古典情報理論における相対エントロピー（カルバック・ライブラー距離）と類似した形になっています。


### 相互情報量

古典情報理論と同様に、量子系Aと量子系Bの「相互情報量(mutual information)」は、各々のエントロピーの和から結合エントロピーを引いたものとして定義されます。

```math
I(A:B) = S(A) + S(B) - S(A,B)  \tag{8}
```

## 性質

量子情報理論における各種エントロピーの定義ができたところで、これらの間に成り立つ性質について、証明を加えながら説明していきます。参考文献の中に記載してあったものの中から、独断と偏見で、基本的かつ重要そうなものを取り上げてみました。なんと、全部で14個になってしまいました。以下の通りです。

【エントロピー】

* 性質(1) エントロピーは非負
* 性質(2) エントロピーの最大値はlog(n)
* 性質(3) エントロピーはユニタリ不変
* 性質(4) エントロピーは凹関数

【相対エントロピーと相互情報量】

* 性質(5) 相対エントロピーは非負（Kleinの不等式）
* 性質(6) 相互情報量は非負

【結合エントロピーと部分系のエントロピー】

* 性質(7) 純粋状態の部分系
* 性質(8) 劣加法性
* 性質(9) 三角不等式（Araki-Liebの不等式）
* 性質(10) 強劣加法性

【強劣加法性から導出される性質】

* 性質(11) 条件付けによってエントロピーは減少
* 性質(12) 系の一部を捨てると相互情報量は減少
* 性質(13) 量子チャネルによって相互情報量は減少

【測定】

* 性質(14) 射影測定によってエントロピーは増大

では、順に見ていきます。


### エントロピー

#### 性質(1) エントロピーは非負

式(1)より、古典情報理論の場合と同様に証明可能です（参考：[前回の記事](https://qiita.com/SamN/items/4abc9e3399a0aabadb2c)）。エントロピーがゼロになるのは、状態が一つに決まっている場合、すなわち、純粋状態のときのみです。

#### 性質(2) エントロピーの最大値はlog(n)

式(1)より、古典情報理論の場合と同様に証明可能です（参考：[前回の記事](https://qiita.com/SamN/items/4abc9e3399a0aabadb2c)）。古典情報理論と違うのは$n$の意味です。量子エントロピーの場合の$n$は、考えている量子系のヒルベルト空間の次元数です。つまり、3量子ビット系の場合、ヒルベルト空間の次元は2の3乗で8になりますので、エントロピーはその$\log$ということで、3を超えることはありません。

#### 性質(3) エントロピーはユニタリ不変

任意のユニタリ変換$U$に対し、

```math
S(\rho) = S(U \rho U^{\dagger})  \tag{9}
```

が成り立ちます。

【証明】

```math
S(U \rho U^{\dagger}) = - Tr((U \rho U^{\dagger}) \log (U \rho U^{\dagger})) = - Tr(U \rho U^{\dagger} \cdot U (\log \rho) U^{\dagger}) = - Tr(\rho \log \rho) = S(\rho)  \tag{10}
```

（証明終）


#### 性質(4) エントロピーは凹関数

古典情報理論と同様、エントロピーは凹関数です。すなわち、$\sum_{i} p_i = 1$となる$\\{ p_i\\}$と密度演算子の集まり$\\{ \rho_i \\}$に対し、

```math
S(\sum_{i} p_i \rho_i) \geq \sum_{i} p_i S(\rho_i)  \tag{11}
```

が成り立ちます[^1]。

[^1]: [前回の記事](https://qiita.com/SamN/items/4abc9e3399a0aabadb2c)では、２つの古典的な事象系列$p,q$について、各々の確率がxと1-xで表されるとき、という前提で証明しましたが、３つ以上の事象系列にも拡張できます。今回は、２つに限定せず、複数の量子系（密度演算子）があった場合に成り立つ一般的な不等式を証明します。

【証明】

$\\{ \rho_i \\}$で表される量子系をAとして、新たに正規直交系$\\{ \ket{i}^{B}\\}$で定義される量子系Bをもってきて、以下のような状態$\rho^{AB}$を定義します[^2]。

[^2]: とても人為的な操作から入りましたが、補助系を追加して証明するのは、量子情報の世界では、非常によく使われるテクニックです。今回もそれです。が、純粋化まではやっていない想定ですので、ご注意。単に補助系を式(12)のように追加しただけです。

```math
\rho^{AB} = \sum_{i} p_i \rho_i \otimes \ket{i}^{B} \bra{i}^B  \tag{12}
```

ここで、$\rho_i$の固有値、固有ベクトルは、$\lambda_i$、$\ket{i}^A$とします。

この結合エントロピーを計算します。

```math
\begin{align}
S(A,B) &= S(\rho^{AB}) = S(\sum_{i} p_i \rho_i \otimes \ket{i}^{B} \bra{i}^B) \\
&= -Tr((\sum_{i} p_i \rho_i \otimes \ket{i}^{B} \bra{i}^B) \log (\sum_{i} p_i \rho_i \otimes \ket{i}^{B} \bra{i}^B)) \\
&= - \sum_{k,l,m,n} \bra{k}^{A} \bra{l}^{B} (\sum_{i} p_i \rho_i \otimes \ket{i}^{B} \bra{i}^B) \ket{m}^{A} \ket{n}^{B} \bra{m}^{A} \bra{n}^{B} \log(\sum_{j} p_j \rho_j \otimes \ket{j}^{B} \bra{j}^B) \ket{k}^{A} \ket{l}^{B} \\
&= -\sum_{k,l,m,n} \bra{k}^{A} (\sum_{i} p_i \rho_i \delta_{li} \delta_{in}) \ket{m}^{A} \bra{m}^{A} \bra{n}^{B} \log (p_l \rho_l) \ket{k}^{A} \ket{l}^{B} \\
&= -\sum_{k,m} \bra{k}^{A} (\sum_{i} p_i \rho_i) \ket{m}^{A} \bra{m}^{B} \log (p_i \rho_i) \ket{k}^{A} \\
&= -\sum_{i,k} p_i \lambda_{i}^{k} \log (p_i \lambda_{i}^{k}) \\
&= -\sum_{i,k} p_i \lambda_{i}^{k} \log p_i -\sum_{i,k} p_i \lambda_{i}^{k} \log \lambda_{i}^{k} \\
&= -\sum_{i} p_i \log p_i - \sum_{i} p_i \sum_{k} \lambda_{i}^{k} \log \lambda_{i}^{k} \\
&= H(p_i) + \sum_{i} S(\rho_i) \tag{13}
\end{align}
```

一方、

```math
S(A) = S(\sum_i p_i \rho_i)  \tag{14}
```

````math
\begin{align}
S(B) &= S(Tr_{A}(\sum_{i} p_i \rho_i \otimes \ket{i}^{B} \bra{i}^{B})) \\
&= S(\sum_{i} p_i \ket{i}^{B} \bra{i}^{B}) = H(p_i) \tag{15}
\end{align}
```

と計算できます。ここで、式(13)(14)(15)に、後述する劣加法性（$S(A,B) \leq S(A)+S(B)$）を適用すると、

```math
\begin{align}
& H(p_i) + \sum_{i} p_i S(\rho_i) \leq S(\sum_{i} p_i \rho_i) + H(p_i) \\
& \sum_{i} p_i S(\rho_i) \leq S(\sum_{i} p_i \rho_i) \tag{16}
\end{align}
```

となります。これで、エントロピーが凹関数であることが証明できました。（証明終）


### 相対エントロピーと相互情報量

#### 性質(5) 相対エントロピーは非負（Kleinの不等式）

相対エントロピーは非負です。すなわち、

```math
S(\rho || \sigma) \geq 0  \tag{17}
```

が成り立ちます。この不等式のことを「Kleinの不等式」と言います。

【証明】

$\rho,\sigma$が各々正規直交系$\\{ \ket{\phi_i} \\},\\{ \ket{\psi_i} \\}$で対角化できるとします。すなわち、

```math
\begin{align}
\rho &= \sum_{i}^{n} p_i \ket{\phi_i} \bra{\phi_i} \\
\sigma &= \sum_{i}^{n} q_i \ket{\psi_i} \bra{\psi_i} \tag{18}
\end{align}
```

と表すことができるものとします。相対エントロピーの定義より、

```math
\begin{align}
S(\rho || \sigma) &= Tr(\rho \log \rho) - Tr(\rho \log \sigma) \\
&= \sum_{i} p_i \log p_i - \sum_{i} \bra{\phi_i} \rho \log \sigma \ket{\phi_i} \\
&= \sum_{i} p_i \log p_i - \sum_{i} \sum_{j} \bra{\phi_i} \rho \ket{\phi_j} \bra{\phi_j} \log \sigma \ket{\phi_i} \\
&= \sum_{i} p_i \log p_i - \sum_{i} p_i \bra{\phi_i} \log \sigma \ket{\phi_i} \tag{19}
\end{align}
```

となります。右辺第２項の$\bra{\phi_i} \log \sigma \ket{\phi_i}$は、

```math
\begin{align}
&\bra{\phi_i} \log \sigma \ket{\phi_i} \\
&= \sum_{j,k} \braket{\phi_i}{\psi_j} \bra{\psi_j} \log \sigma \ket{\psi_k} \braket{\psi_k}{\phi_i} \\
&= \sum_{j} \braket{\phi_i}{\psi_j} \log (q_i) \braket{\psi_j}{\phi_i} \tag{20}
\end{align}
```

ここで、

```math
P_{ij} \equiv \braket{\phi_i}{\psi_j} \braket{\psi_j}{\phi_i}  \tag{21}
```

と定義すると、式(19)は、

```math
S(\rho || \sigma) = \sum_{i} p_i (\log p_i - \sum_{j} P_{ij} \log (q_j))  \tag{22}
```

となります。

$P_{ij} \geq 0, \space \sum_{i} P_{ij} = \sum_{j} P_{ji} = 1$、および、$\log (\cdot)$は凹関数なので、

```math
\sum_{j} P_{ij} \log (q_j) \leq \log (\sum_{j} P_{ij} q_j)  \tag{23}
```

が成り立ちます。$r_i \equiv \sum_{j} P_{ij} q_j$とおいて、式(23)を式(22)に代入すると、

```math
S(\rho || \sigma) \geq \sum_{i} \log p_i - \sum_{i} p_i \log r_i  \tag{24}
```

となります。$r_i$の定義より$0 \leq r_i \leq 1$が成り立つので、式(24)は古典情報理論における相対エントロピー$D(p_i||r_i)$に等しいです。$D(p_i||r_i) \geq 0$だったので、結局、

```math
S(\rho || \sigma) \geq 0  \tag{25}
```

が成り立ちます。

等号が成り立つのは、各$i$に対して$P_{ij}=1$を満たす$j$が存在するとき、すなわち$P_{ij}$が置換行列の場合のみです。（証明終）


#### 性質(6) 相互情報量は非負

```math
I(A:B) \geq 0  \tag{26}
```

が成り立ちます。

【証明】

```math
\begin{align}
& S(\rho^{AB} || \rho^{A} \otimes \rho^{B}) \\
&= Tr(\rho^{AB} \log \rho^{AB}) - Tr(\rho^{AB} \log (\rho^{A} \otimes \rho^{B})) \\
&= Tr(\rho^{AB} \log \rho^{AB}) - Tr(\rho^{AB} \log (\rho^{A} \otimes I^{B})) - Tr(\rho^{AB} \log (I^{A} \otimes \rho^{B})) \\
&= Tr(\rho^{AB} \log \rho^{AB}) - Tr(\rho^{A} \log \rho^{A}) - Tr(\rho^{B} \log \rho^{B}) \\
&= S(A) + S(B) - S(A,B) \\
&= I(A:B)  \tag{27}
\end{align}
```

において、$S(\rho^{AB} || \rho^{A} \otimes \rho^{B}) \geq 0$なので、式(26)が成り立ちます。

等号は、$\rho^{AB}=\rho^{A} \otimes \rho^{B}$の場合のみ成り立ちます。つまり、合成系ABが部分系Aと部分系Bの積状態になっている場合のみです[^3]。（証明終）

[^3]: この等号条件から、$S(\rho^{A} \otimes \rho^{B}) = S(\rho_{A}) + S(\rho^{B})$が導けます。つまり、積状態のエントロピーは各エントロピーの和です。ちょっとした公式として覚えておくと良いです。


### 結合エントロピーと部分系のエントロピー

#### 性質(7) 純粋状態の部分系

合成系ABが純粋状態のとき、部分系のエントロピー$S(A)$と$S(B)$の値は必ず一致します。

【証明】

合成系ABは純粋状態なので、

```math
\ket{\Psi}^{AB} = \sum_{i=1}^{R} \sqrt{r_i} \ket{i}^{A} \ket{i}^{B}  \tag{28}
```

のようにシュミット分解できます。ここでRはシュミットランクです。このとき、合成系ABの密度演算子は、

```math
\rho^{AB} = \ket{\Psi}^{AB} \bra{\Psi}^{AB} = \sum_{i=1}^{R} \sum_{j=1}^{R} \sqrt{r_i r_j} \ket{i}^{A} \bra{j}^{A} \otimes \ket{i}^{B} \bra{j}^{B}  \tag{29}
```

となります。部分系の密度演算子は、各々、

```math
\begin{align}
\rho^{A} &= Tr_{B} \rho^{AB} = \sum_{i=1}^{R} r_i \ket{i}^{A} \bra{i}^{A}  \\
\rho^{B} &= Tr_{A} \rho^{AB} = \sum_{i=1}^{R} r_i \ket{i}^{B} \bra{i}^{B}  \tag{30}
\end{align}
```

となるので、部分系のエントロピー（エンタングルメント・エントロピー）は、

```math
\begin{align}
S(A) &= - Tr(\rho^{A} \log \rho^{A}) = - \sum_{i=1}^{R} r_i \log r_i \\  
S(B) &= - Tr(\rho^{B} \log \rho^{B}) = - \sum_{i=1}^{R} r_i \log r_i \tag{31}
\end{align}
```

です。したがって、$S(A)=S(B)$が成り立つことが証明できました。（証明終）

これは、とても面白い性質です。まず、純粋状態は量子状態としては一つに決まっているので、エントロピーはゼロです。それを２つの部分系に分けると、その各々は混合状態になりますが、エントロピーを計算すると、必ず一致するということを表しています。別の言い方をすると、不確実さが一切ない純粋状態の系を２分割すると、各系の中からなぜか不確実さが湧き出してきて、しかも両者が一致するということです。この湧き出す不確実さに相当するのが、２つの系の間に存在していた「量子的な相関」＝「量子もつれ」であるというイメージで、この部分系のエントロピーのことをエンタングルメント・エントロピーと呼んでいます。言うまでもないですが、これは古典情報理論ではあり得ません。確実に決まっている事象の一部分に注目しても、確実に決まっているのでエントロピーはゼロのままです。


#### 性質(8) 劣加法性

```math
S(A,B) \leq S(A) + S(B) \tag{32}
```

が成り立ちます。

【証明】

相互情報量が非負（性質(6)）であることから、直ちに証明できます。

```math
I(A:B) = S(A) + S(B) - S(A,B) \geq 0  \tag{33}
```

なので、式(32)が成り立ちます。

等号は、合成系ABが部分系Aと部分系Bの積状態になっている場合のみです。（証明終）


#### 性質(9) 三角不等式（Araki-Liebの不等式）

```math
S(A,B) \geq |S(A) - S(B)|  \tag{34}
```

が成り立ちます。

【証明】

合成系ABに補助系Rを加えて純粋化します。性質(8)の劣加法性より、

```math
S(R) + S(A) \geq S(A,R)  \tag{35}
```

が成り立ち、かつ、合成系ABRは純粋状態なので、性質(7)より、

```math
\begin{align}
& S(A,R) = S(B) \\
& S(R) = S(A,B)  \tag{36} 
\end{align}
```

が成り立ちます。式(36)を式(35)に代入すると、

```math
S(A,B) \geq S(B) - S(A)  \tag{37}
```

が導けます。AとBを入れ替えても、同じ議論が成り立つので、

```math
S(A,B) \geq S(A) - S(B)  \tag{38}
```

です。式(37)と式(38)は同時に成り立っていなければならないので、

```math
S(A,B) \geq |S(A) - S(B)|  \tag{34}
```

でなければなりません。（証明終）

この三角不等式の等号条件は、自明ではありません。というか、結構な難問のようです。実は、[ニールセン・チャン](https://www.ohmsha.co.jp/book/9784274200090/)に、「演習11.16: ($S(A,B) \geq S(B)-S(A)$に対する等号条件)」として、その答えが掲載されています。それによると、$\rho^{AB}$のスペクトル分解を$\rho^{AB}=\sum_{i} p_{i} \ket{i}^{AB} \bra{i}^{AB}$としたとき、オペレータ$\rho_{i}^{A} \equiv Tr_{B} (\ket{i}^{AB} \bra{i}^{AB})$が共通の固有基底を持ち（以後、本記事では「条件１」と呼ぶことにします）、$\rho_{i}^{B} \equiv Tr_{A} (\ket{i}^{AB} \bra{i}^{AB})$が直交する台を持つ場合（「条件２」と呼ぶことにします）に限り、$S(A,B)=S(B)-S(A)$が成り立ちます[^4]、と答えは書いてあるのですが、証明がありません（証明せよ、という演習問題です）。というわけで、やってみました[^5][^6]。

[^4]: 後の証明の都合により、[ニールセン・チャン](https://www.ohmsha.co.jp/book/9784274200090/)に記載してある記号を少し変えています。

[^5]: が、結局、必要十分条件の片方向だけで力尽きました。しかも、もしかすると怪しい箇所があるかもしれません。が、参考まで、晒してみます、汗。

[^6]: それから、言わずもがなですが、念のため一つ補足しておきます。この等号条件は、合成系ABが純粋状態の場合、性質(7)そのものになります。

【等号条件の証明】

$\ket{i}^{AB}$は純粋状態なので、系A、系Bの基底$\\{ \ket{a_i^{j}} \\},\\{ \ket{b_{i}^{j}} \\}$を使って、以下のようにシュミット分解できます（$R_i$はシュミットランクです）。

```math
\ket{i}^{AB} = \sum_{j=1}^{R_i} \sqrt{r_{i}^{j}} \ket{a_{i}^{j}} \ket{b_{i}^{j}}  \tag{39}
```

とすると、$\rho_{i}^{A},\rho_{i}^{B}$は、各々、

```math
\begin{align}
\rho_{i}^{A} &= Tr_{B} (\ket{i}^{AB} \bra{i}^{AB}) \\
&= Tr_{B} (\sum_{j=1}^{R_i} \sqrt{r_{i}^{j}}) \ket{a_{i}^{j}} \ket{b_{i}^{j}} \sum_{k=1}^{R_i} \sqrt{r_{i}^{k}}) \braket{a_{i}^{k}}{b_{i}^{k}} \\ 
&= \sum_{j=1}^{R_i} \sum_{k=1}^{R_i} \sqrt{r_{i}^{j} r_{i}^{k}} Tr_{B}(\ket{b_{i}^{j}} \bra{b_{i}^{k}}) \\
&= \sum_{j=1}^{R_i} r_{i}^{j} \ket{a_{i}^{j}} \bra{a_{i}^{j}} \\
\rho_{i}^{B} &= \sum_{j=1}^{R_i} r_{i}^{j} \ket{b_{i}^{j}} \bra{b_{i}^{j}} \tag{40}
\end{align}
```

となります。ここで、係数$r_{i}^{j}$は各々の対角成分（固有値）ですが、それが、A系、B系の両方で等しいところがシュミット分解の面白ポイントです[^7]。

[^7]: [以前の記事](https://qiita.com/SamN/items/e894be584dddb69ec1e2)で、シュミット分解を取り上げたときにも、強調していました。

$\rho^{A},\rho^{B}$は、各々どうなるかというと、$\rho^{AB}$が、

```math
\rho^{AB} = \sum_{i=1}^{R^{AB}} \sum_{j=1}^{R_i} \sum_{k=1}^{R_i} p_i \sqrt{r_{i}^{j} r_{i}^{k}} \ket{a_{i}^{j}} \bra{a_{i}^{k}} \otimes \ket{b_{i}^{j}} \bra{b_{i}^{k}} \tag{41}
```

と書けるので、

```math
\begin{align}
\rho^{A} &= Tr_{B} (\rho^{AB}) \\
&= \sum_{i=1}^{R^{AB}} \sum_{j=1}^{R_i} p_{i} r_{i}^{j} \ket{a_{i}^{j}} \bra{a_{i}^{j}} \\
&= \sum_{i=1}^{R^{AB}} p_{i} \rho_{i}^{A} \\
\rho^{B} &= Tr_{A} (\rho^{AB}) \\
&= \sum_{i=1}^{R^{AB}} \sum_{j=1}^{R_i} p_{i} r_{i}^{j} \ket{b_{i}^{j}} \bra{b_{i}^{j}} \\
&= \sum_{i=1}^{R^{AB}} p_{i} \rho_{i}^{B} \tag{42}
\end{align}
```

となります。

ここで、条件１が成り立っているとすると、$\\{\ket{a_{1}^{j}}\\},\\{\ket{a_{2}^{j}}\\},\cdots,\\{\ket{a_{R^{AB}}^{j}}\\}$はすべて同一の正規直交系ということになり、条件２が成り立っているとすると、$\\{\ket{b_{i}^{j}}\\}$は全体として一つの正規直交系になっていると言えそうです[^8]。

[^8]: 「共通の固有基底」を持つということと、「直交する台」を持つということから、このように言えるのだと思うのですが、もしかすると厳密には怪しい（強すぎる仮定をしている）かもしれません。

そうだとすると、式(40)は、

```math
\begin{align}
\rho_{i}^{A} &= \sum_{j=1}^{R} r^{j} \ket{a^{j}} \bra{a^{j}} \\
\rho_{i}^{B} &= \sum_{j=1}^{R} r^{j} \ket{b_{i}^{j}} \bra{b_{i}^{j}} \tag{43}
\end{align}
```

と書き換えられます（条件１からシュミット係数・シュミットランクはi非依存になり、それは、系Bのシュミット係数・シュミットランクでもあるので）。

このとき、$\rho^{A},\rho^{B}$は、どうなるかというと、

```math
\begin{align}
\rho^{A} &= \sum_{i=1}^{R^{AB}} \sum_{j=1}^{R} p_{i} r^{j} \ket{a^{j}} \bra{a^{j}} \\
&= \sum_{j=1}^{R} r^{j} \ket{a^{j}} \bra{a^{j}} \\
\rho^{B} &= \sum_{i=1}^{R^{AB}} \sum_{j=1}^{R} p_{i} r^{j} \ket{b_{i}^{j}} \bra{b_{i}^{j}} \tag{44}
\end{align}
```

です。

この前提で、部分系のエントロピー$S(A),S(B)$を計算してみます。

```math
\begin{align}
S(A) &= S(\rho^{A}) = -Tr(\rho^{A} \log \rho^{A}) \\
&= - \sum_{l=1}^{R} \sum_{m=1}^{R} \bra{a^{l}} \rho^{A} \ket{a^{m}} \bra{a^{m}} \log \rho^{A} \ket{a^{l}} \\
&= - \sum_{l=1}^{R} \sum_{m=1}^{R} r^{m} \braket{a^{l}}{a^{m}} \bra{a^{m}} \log r^{l} \ket{a^{l}} \\
&= - \sum_{l=1}^{R} r^{l} \log r^{l} \\
S(B) &= S(\rho^{B}) = -Tr(\rho^{B} \log \rho^{B}) \\
&= - \sum_{k=1}^{R^{AB}} \sum_{l=1}^{R} \sum_{m=1}^{R^{AB}} \sum_{n=1}^{R} \bra{b_{k}^{l}} \rho^{B} \ket{b_{m}^{n}} \bra{b_{m}^{n}} \log \rho^{B} \ket{b_{k}^{l}} \\
&= - \sum_{k=1}^{R^{AB}} \sum_{l=1}^{R} \sum_{m=1}^{R^{AB}} \sum_{n=1}^{R} p_{m} r^{n} \braket{b_{k}^{l}}{b_{m}^{n}} \bra{b_{m}^{n}} \log(p_{k} r^{l}) \ket{b_{k}^{l}} \\
&= - \sum_{k=1}^{R^{AB}} \sum_{l=1}^{R} p_{k} r_{k}^{l} \log (p_{k} r^{l}) \tag{45} 
\end{align}
```

$\sum_{k} p_{k} = 1, \space \sum_{l} r^{l}=1$に注意しながら、$S(B)-S(A)$を計算すると、

```math
\begin{align}
S(B)-S(A) &= - \sum_{k=1}^{R^{AB}} \sum_{l=1}^{R} p_{k} r_{k}^{l} \log (p_{k} r^{l}) + \sum_{l=1}^{R} r^{l} \log r^{l} \\
&= - \sum_{k=1}^{R^{AB}} p_{k} r^{l} (\log p_{k} + \log r^{l}) + \sum_{l=1} r^{l} \log r^{l} \\
&= - \sum_{k=1}^{R^{AB}} p_{k} \log p_{k} - \sum_{l=1}^{R} r^{l} \log r^{l} + \sum_{l=1} r^{l} \log r^{l} \\
&= - \sum_{k=1}^{R^{AB}} p_{k} \log p_{k} = S(A,B)  \tag{46}
\end{align}
```

となり、条件１と条件２が成り立っている場合、$S(A,B)=S(B)-S(A)$が成り立つことが証明できました。（証明終）

というわけで、[ニールセン・チャン](https://www.ohmsha.co.jp/book/9784274200090/)「演習11.16」を（半分だけ）クリアしました（したつもりです）。必要十分条件の逆方向がわかったら、記事追加します。


#### 性質(10) 強劣加法性

３つの量子系A,B,Cがあったとき、以下の不等式が成り立ちます。この性質のことを「強劣加法性」と言います。[ニールセン・チャン](https://www.ohmsha.co.jp/book/9784274200090/)によると、これは「量子情報理論の最も重要で有用な結果の１つである」とのことなので、「なにこれ？」と思わず、しっかり理解するようにしましょう。

```math
S(A,B,C) + S(B) \leq S(A,B) + S(B,C) \tag{47}
```

```math
S(A) + S(B) \leq S(A,C) + S(B,C)  \tag{48}
```

【証明】

「相対エントロピーの単調性」を使った証明がてっとり早そうなので、それでやります[^9]。

[^9]: [ニールセン・チャン](https://www.ohmsha.co.jp/book/9784274200090/)では、別のやり方で入り組んだ証明がなされていました。一方、[量子情報科学入門](https://www.kyoritsu-pub.co.jp/bookdetail/9784320122994)では、「相対エントロピーの単調性」を（初学者には難しいので）未証明のまま使っていました。この単調性に基づく証明の方が感覚的に理解しやすいので、ここでは、[量子情報科学入門](https://www.kyoritsu-pub.co.jp/bookdetail/9784320122994)を参考にして、証明を記載してみました。

「相対エントロピーの単調性」というのは、何らかの物理過程（量子チャネル）を通ることで、２つの系の量子状態に対する相対エントロピーが減少するという性質のことです。相対エントロピーは、古典情報理論での「カルバック・ライブラー距離」に相当する概念なので、ざっくりいうとその距離が小さくなるというイメージを量子的に表現したものです。一般に、異なる２つの量子状態は、時間が経つとともに区別できなくなっていくので、感覚的には理解しやすい性質だと思います。式で表すと、

```math
S(\rho || \sigma) \geq S(\Gamma(\rho) || \Gamma(\sigma))  \tag{49}
```

です。ここで、物理過程を表すCPTPマップを$\Gamma$としました。

ということで、式(49)を認めていただいた上で、強劣加法性を証明します。

まず、式(47)の方からやってみます。

系Aと合成系BCとの間の相互情報量は定義、および相互情報量が非負であるという性質(6)を証明したときに使った式(27)より、

```math
\begin{align}
I(A:B,C) &= S(A)+S(B,C)-S(A,B,C) \\
&= S(\rho^{ABC} || \rho^{A} \otimes \rho^{BC})  \tag{50}
\end{align}
```

が成り立ちます。この右辺から系Cをトレースアウトします。その操作はCPTPマップを適用することに等しいので、式(49)を使うことができて、

```math
S(\rho^{ABC} || \rho^{A} \otimes \rho^{BC}) \geq S(\rho^{AB} || \rho^{A} \otimes \rho^{B}) = S(A)+S(B)-S(A,B)  \tag{51}
```

となります。式(50)と式(51)より、

```math
S(A,B,C) + S(B) \leq S(A,B) + S(B,C)  \tag{47}
```

ということで、式(47)が証明できました。

次に、式(48)です。

合成系ABCに、系Dを加えて純粋化した系ABCDを考えると、性質(7)より、

```math
S(A,B) = S(C,D), \space S(A,B,C) = S(D)  \tag{52}
```

が成り立ちます。これを、式(47)に代入すると、

```math
S(D) + S(B) \leq S(C,D) + S(B,C) \tag{53}
```

となり、DをAに置き換えると、

```math
S(A) + S(B) \leq S(A,C) + S(B,C) \tag{48}
```

で、式(48)が証明できました。

等号が成り立つのは、系Cと他の系とが積状態になっている場合のみです。（証明終）

この強劣加法性から、以下に示す(11)(12)(13)の性質を証明することができます。


### 強劣加法性から導出される性質について

#### 性質(11) 条件付けによってエントロピーは減少

```math
S(A|B,C) \leq S(A|B)  \tag{54} 
```

が成り立ちます。

【証明】

強劣加法性より、

```math
\begin{align}
& S(A,B,C) + S(B) \leq S(A,B) + S(B,C) \\
& S(A,B,C) - S(B,C) \leq S(A,B) - S(B) \\
& S(A|B,C) \leq S(A|B)  \tag{55}
\end{align}
```

となります。

等号が成り立つのは、系Cと他の系とが積状態になっている場合のみです。（証明終）


#### 性質(12) 系の一部を捨てると相互情報量は減少

```math
I(A:B) \leq I(A:B,C)  \tag{56}
```

が成り立ちます。

【証明】

強劣加法性より、

```math
\begin{align}
& S(B) + S(A,B,C) \leq S(A,B) + S(B,C) \\
& S(A) + S(B) - S(A,B) \leq S(A) + S(B,C) - S(A,B,C) \\
& I(A:B) \leq I(A:B,C)  \tag{57}
\end{align}
```

となります。

等号が成り立つのは、系Cと他の系とが積状態になっている場合のみです。（証明終）


#### 性質(13) 量子チャネルによって相互情報量は減少

系$A,B$が量子チャネルによって、系$A^{\prime},B^{\prime}$に変化したとすると、

```math
I(A:B) \geq I(A^{\prime}:B^{\prime})  \tag{58}
```

が成り立ちます[^10]。

[^10]: $\Gamma$をいま考えている量子チャネル（に対応したCPTPマップ）として、$\rho^{A},\rho^{B}$が$\Gamma(\rho^{A}), \Gamma(\rho^{B})$に変化したと思ってください。

【証明】

いま３つの系A,B,Cが、$\rho^{ABC}=\rho^{AB} \otimes \rho^{C}$を満たしているとします。これは、性質(12)の等号条件に相当しますので、

```math
I(A:B) = I(A:B,C) \tag{59}
```

が成り立ちます。系BCにユニタリ変換を適用した結果、A,B,CがA',B',C'に変化したとします。エントロピーのユニタリ不変性（性質(3)）より、

```math
I(A:B,C) = I(A^{\prime}:B^{\prime},C^{\prime})  \tag{60}
```

です。系C'を捨てると相互情報量は減少するので、

```math
I(A^{\prime}:B^{\prime},C^{\prime}) \geq I(A^{\prime}:B^{\prime})  \tag{61}
```

です。式(59)(60)(61)より、

```math
I(A:B) \geq I(A^{\prime}:B^{\prime})  \tag{62}
```

が成り立ちます。


等号が成り立つのは、量子チャネルがユニタリ変換だった場合です。（証明終）


### 測定について

#### 性質(14) 射影測定によってエントロピーは増大

正確には非選択的な射影測定、つまり測定して結果を確認しない（あるいは忘れてしまう）ような射影測定の場合、エントロピーは増大します。

射影演算子を$\\{ P_i \\} \space (\sum_{i} P_i = 1, \space (P_{i})^2=P_{i})$とすると、非選択的な測定によって状態$\rho$は、

```math
\rho^{\prime} = \sum_{i} P_i \rho P_i  \tag{63}
```

のように変化します。このとき、

```math
S(\rho) \leq S(\rho^{\prime})  \tag{64}
```

が成り立ちます。

【証明】

Kleinの不等式と相対エントロピーの定義より、

```math
\begin{align}
0 & \leq S(\rho || \rho^{\prime}) = Tr(\rho \log \rho) - Tr(\rho \log \rho^{\prime}) \\
&= - S(\rho) - Tr(\rho \log \rho^{\prime})  \tag{65}
\end{align}
```

なので、$-Tr(\rho \log \rho^{\prime}) = S(\rho^{\prime})$が示せれば良いです。


```math
\begin{align}
- Tr(\rho \log \rho^{\prime}) &= - Tr (\sum_{i} P_i \rho \log \rho^{\prime}) \\
&= -Tr(\sum_{i} P_i \rho \log \rho^{\prime} P_i)  \tag{66}
\end{align}
```

で、$\rho^{\prime} P_i = P_i \rho^{\prime} P_i = P_i \rho^{\prime}$、つまり、$P_i$と$\rho^{\prime}$は可換なので、$P_i$と$\log \rho^{\prime}$は可換です。とすると、

```math
\begin{align}
- Tr(\rho \log \rho^{\prime}) &= -Tr(\sum_{i} P_i \rho P_i \log \rho^{\prime}) \\
&= -Tr(\rho^{\prime} \log \rho^{\prime}) = S(\rho^{\prime})  \tag{67}
\end{align}
```

となるので、これを、式(66)に代入すると、

```math
S(\rho) \leq S(\rho^{\prime})  \tag{64}
```

となります。

等号が成り立つのは、$\rho=\rho^{\prime}$の場合のみです。（証明終）

ということで、例えば、エントロピーがゼロの純粋状態を（非選択的に）射影測定すると、結果は不確実になるのでエントロピーは増大します。古典情報理論における測定を事象の生起になぞらえると、結果がわかる（＝不確実さが減る）のでエントロピーが減少するはずです。測定したのにエントロピーが増大するのは、ちょっとおかしな感じです。量子情報理論においては、純粋状態が確定した状態であるという前提で理論構築がなされているのですが、実は純粋状態というのは複数の固有状態の重ね合わせであって、古典統計における確定状態とは違うのですねぇ、ということを、少々　味わっていただけると幸甚です[^11]。

[^11]: 別の言い方をすると、「非選択的な射影測定」によって、もとの量子系に存在していた量子もつれがほどけて、不確実さが露呈した、という理解でも良いと思います。それから、一つ注意事項。いま「非選択的な測定」が前提になっているので、一見おかしな感じになるのですが、結果をちゃんと確認する「選択的な射影測定」の場合、エントロピーは古典論と同様ゼロになります。


## シミュレータによる確認

それでは、上で示した性質のうち、独断と偏見により、性質(7)および性質(9)の等号条件を取り上げ、シミュレータを使って実際にそれが成り立つことを確認してみます。性質(7)は「純粋状態の部分系のエントロピー」です。量子エントロピーの面白さを一番シンプルに味わうことができる性質だと思いますし、[qlazy](https://github.com/samn33/qlazy)で簡単に実装できるので選びました。性質(9)は三角不等式です。その等号条件の証明で四苦八苦したので、それが間違っていないかどうかを確認する意味で取り上げてみました。

### 性質(7) 純粋状態の部分系のエントロピーについて

まず、性質(7)です。先程説明した通り、純粋状態のエントロピーはゼロなのですが、それを２分割したときの各部分系のエントロピーは、一般にゼロ以上となり、かつ、等しいです。というわけで、量子エンタングルメントの不思議さを味わってみましょう。

全体のPythonコードは以下です。

【2021.9.5追記】[qlazy](https://github.com/samn33/qlazy)最新版でのソースコードは[ここ](https://github.com/samn33/qlazy/blob/master/example/py/Entropy/entropy1.py)に置いてあります。

```python
import numpy as np
from scipy.stats import unitary_group
from qlazypy import QState, DensOp

def random_qstate(qnum):  # random pure state

    dim = 2**qnum
    vec = np.array([0.0]*dim)
    vec[0] = 1.0
    mat = unitary_group.rvs(dim)
    vec = np.dot(mat, vec)
    qs = QState(vector=vec)

    return qs

if __name__ == '__main__':

    qnum_A = 2
    qnum_B = 2

    id_A = list(range(qnum_A))
    id_B = [i+qnum_A for i in range(qnum_B)]

    qs = random_qstate(qnum_A+qnum_B)
    de = DensOp(qstate=[qs], prob=[1.0])

    ent = de.entropy()
    ent_A = de.entropy(id_A)
    ent_B = de.entropy(id_B)

    print("** S(A,B)  = {:.4f}".format(ent))
    print("** S(A)    = {:.4f}".format(ent_A))
    print("** S(B)    = {:.4f}".format(ent_B))

    qs.free()
    de.free()
```

短いので、説明は簡単です。random_qstate関数でランダムな純粋状態qsを作って、それに基づき密度演算子deをつくります。密度演算子クラスのentropyメソッド(v0.0.28で追加)でエントロピーを計算します。引数として部分系の量子ビット番号リストを指定すると、それに対応したエンタングルメント・エントロピーを計算してくれます。実行結果は以下です。

```
** S(A,B)  = 0.0000
** S(A)    = 1.4852
** S(B)    = 1.4852
```

ランダムな純粋状態を生成することから始めているので、実行のたびにエントロピーの数値は変わるのですが、何度やってもS(A,B)はゼロで、かつS(A)とS(B)の値は一致しました。系A、系Bの量子ビット数(qnum_A,qnum_B)を変えても同様でした。というわけで、性質(7)が確認できました。ちなみに、この例では、系A、系Bの量子ビット数は2なので、性質(2)より、エントロピーは2を超えることはありません。超えたとしたら、バグです。


### 性質(9) 三角不等式の等号条件について

次に示す性質(9)は、[ニールセン・チャン](https://www.ohmsha.co.jp/book/9784274200090/)の「演習11.16」となっていた三角不等式の等号条件です。証明で行った手続きに従って、合成系ABの密度演算子を作成すれば、本当に等号が満たされているかを確認できるはずです。実は、[ニールセン・チャン](https://www.ohmsha.co.jp/book/9784274200090/)の「演習11.17」が、まさに、その等号条件を満たす具体例を示せ、となっているので、それに対する解答例でもあります[^12]。

[^12]: [ニールセン・チャン](https://www.ohmsha.co.jp/book/9784274200090/)の演習問題は手計算で示せということなので、出題者の意図に沿った解答ではありませんが。

では、全体のPythonコードを示します。

【2021.9.5追記】[qlazy](https://github.com/samn33/qlazy)最新版でのソースコードは[ここ](https://github.com/samn33/qlazy/blob/master/example/py/Entropy/entropy3.py)に置いてあります。

```python
import random
import math
import numpy as np
from qlazypy import QState, DensOp

def computational_basis(dim,rank):

    return np.array([[1 if j==i else 0 for j in range(dim)] for i in range(rank)])

def normalized_random_list(dim):

    rand_list = np.array([random.random() for _ in range(dim)])
    return rand_list / sum(rand_list)

def is_power_of_2(N):

    if math.log2(N) == int(math.log2(N)):
        return True
    else:
        return False
    
if __name__ == '__main__':

    # settings
    mixed_num = 3  # mixed number of pure states
    qnum_A = 2     # qubit number of system A

    # system A
    dim_A = 2**qnum_A
    rank = dim_A
    id_A = list(range(qnum_A))

    # system B
    dim_B = mixed_num*rank
    if is_power_of_2(dim_B):
        qnum_B = int(math.log2(dim_B))
    else:
        qnum_B = int(math.log2(dim_B)) + 1
        dim_B = 2**qnum_B
    id_B = [i+qnum_A for i in range(qnum_B)]

    # basis of system A,B
    basis_A = computational_basis(dim_A, rank)
    basis_B = computational_basis(dim_B, mixed_num*rank)

    # random schmidt coefficients
    coef = normalized_random_list(rank)

    # random probabilities for mixing the pure states
    prob = normalized_random_list(mixed_num)

    # basis for system A+B
    dim_AB = dim_A * dim_B
    basis_AB = [None]*mixed_num
    for i in range(mixed_num):
        basis_AB[i] = np.zeros(dim_AB)
        for j in range(dim_A):
            basis_AB[i] = basis_AB[i] + \
                math.sqrt(coef[j]) * np.kron(basis_A[j],basis_B[i*dim_A+j])

    # construct the density operator
    matrix = np.zeros((dim_AB,dim_AB))
    for i in range(mixed_num):
        matrix = matrix + prob[i] * np.outer(basis_AB[i],basis_AB[i])
    de = DensOp(matrix=matrix)

    # calculate the entropies
    ent = de.entropy()
    ent_A = de.entropy(id_A)
    ent_B = de.entropy(id_B)

    print("** S(A,B)    = {:.4f}".format(ent))
    print("** S(A)      = {:.4f}".format(ent_A))
    print("** S(B)      = {:.4f}".format(ent_B))
    print("** S(B)-S(A) = {:.4f}".format(ent_B-ent_A))

    de.free()
```

先程説明した、条件１と条件２を前提にすると、

```math
\ket{i}^{AB} = \sum_{i=1}^{R_i} \sqrt{r_{i}^{j}} \ket{a_{i}^{j}} \ket{b_{i}^{j}}  \tag{39}
```

のシュミット係数$r_{i}^{j}$と$\ket{a_{i}^{j}}$はi非依存となり、$\ket{b_{i}^{j}}$は全体として（i,jをindexとするベクトル集合として）正規直交系をなすのでした。すなわち、

```math
\ket{i}^{AB} = \sum_{i=1}^{R} \sqrt{r^{j}} \ket{a^{j}} \ket{b_{i}^{j}}  \tag{68}
```

と書けます。これを使って、密度演算子、

```math
\rho^{AB}=\sum_{i=1}^{R^{AB}} p_{i} \ket{i}^{AB} \bra{i}^{AB}  \tag{69}
```

を用意すれば良いです。

上に示したコードでは、まず、$R^{AB}$(変数mixed_num)の値を3、系Aの量子ビット数(変数qnum_A)を2に初期設定しました。そうすると系Aのヒルベルト空間の次元は2の2乗で4になります(変数dim_A)。系Bの方は、i,jをindexとするベクトルとして正規直交系とならないといけないので、$R^{AB}$に系Aの次元数をかけたもの、つまり12(=3*4)を系Bの次元にすれば良さそうです。が、量子情報理論におけるヒルベルト空間の次元は2のべき乗になっていないと都合が悪いので、16(=2**4)にしておきます。

系Aと系Bの次元と量子ビット数が決まったので、各々で正規直交系を構成します。何でも良いので、もっとも実装が簡単な計算基底とします。関数computational_basisで作成します。

さらに必要なのは、式(69)の係数$r^{j}と$式(70)の係数$p_{i}$です。これはランダムに決めます（ただし総和が１になるように）。関数normalized_random_listで作ります。

これで材料が揃ったので、密度演算子$\rho^{AB}$を構成します(変数de)。そして、entropyメソッドで、合成系のエントロピー、系Aと系Bのエントロピー、およびそれらの差を計算して表示し、プログラムは終了します。

結果は、以下の通りです。

```
** S(A,B)    = 1.3598
** S(A)      = 1.8018
** S(B)      = 3.1616
** S(B)-S(A) = 1.3598
```

確かに、S(B)-S(A)=S(A,B)が成り立っていることがわかりました。何度実行しても、数値は違うのですが、常にこの等式は成り立っていました。初期設定をいくつか変えてやってみましたが、同様でした。


## おわりに

量子情報理論におけるエントロピーの面白さと不思議さを、きちんと堪能したいと思いつつ、こんなに長い記事になってしまいました。実は、まだ言い足りていないところもあったりするのですが、今後、必要に応じて、というか、気が向いたら、別途記事にして追加説明したいと思います。

さて、次回以降ですが、どうしようか思案中です。「量子暗号」か「量子誤り訂正」か、あるいは、その前に、もう少し基礎的な話題を取り上げてからにするか、、というわけで、予定は未定です。あしからず。


以上