『クラウド量子計算入門』の演習を行う (3 アダマールゲートの量子実験)


# はじめに

こちらの本を読みつつ、演習・実験を試してみます。

- [『クラウド量子計算入門―IBMの量子シミュレーションと量子コンピュータ』](https://www.amazon.co.jp/dp/4877834087/)

![q.jpg](https://qiita-image-store.s3.amazonaws.com/0/20418/e67e0ddc-ba9e-e647-a277-7cd216410bb5.jpeg "q.jpg")

「[『クラウド量子計算入門』の演習を行う (2 パウリゲートの量子実験) - Qiita](http://qiita.com/Suna/items/c8520ff3ab2cda0b8c64)」の続き。

# 3 アダマールゲートの量子実験

## 3.1 アダマール変換とは

### 3.1.2 アダマール変換

#### 演習 3-1

> 量子シミュレータで 4 量子ビットを使って、$ |0\rangle $、$ H|0\rangle $、$ |1\rangle $、$ H|1\rangle $ を計算する量子回路を作成し、ブロッホ測定の 3 次元表示で調べてみよ。

##### ブロッホ測定

###### 量子回路

![visualIBMQASM.png](https://qiita-image-store.s3.amazonaws.com/0/20418/1488f79e-3f43-9b8d-b468-c76775d3e093.png "visualIBMQASM.png")

###### ブロッホ球

![blochSphereQubit0.png](https://qiita-image-store.s3.amazonaws.com/0/20418/d7381076-20c5-e264-043e-8b5b193f0ca5.png "blochSphereQubit0.png")

![blochSphereQubit1.png](https://qiita-image-store.s3.amazonaws.com/0/20418/88fdd093-ab95-a292-a059-f66fa9235cbb.png "blochSphereQubit1.png")

![blochSphereQubit2.png](https://qiita-image-store.s3.amazonaws.com/0/20418/a14e1553-37ce-3b6e-5607-77b052250cd4.png "blochSphereQubit2.png")

![blochSphereQubit3.png](https://qiita-image-store.s3.amazonaws.com/0/20418/706c3065-3b84-8f94-94ae-7c9bc0401c95.png "blochSphereQubit3.png")

| Shots | Qubit | X | Y | Z |
|--:|:--|--:|--:|--:|
| 1 | Q0 |  0 | 0 |  1 |
| 1 | Q1 |  1 | 0 |  0 |
| 1 | Q2 |  0 | 0 | -1 |
| 1 | Q3 | -1 | 0 |  0 |

### 3.1.3 アダマール変換による均等な重ね合わせ状態の生成

#### 演習 3-2

> 量子シミュレータで　5 量子ビット用いて、均等な重ね合わせ状態を生成して、各基準基底での確率が理論と一致しているか確かめよ。

##### 行列計算

```math
|x\rangle
=
\otimes_{i=1}^{5} \biggl( \frac{|0\rangle+|1\rangle}{\sqrt{2}} \biggl)
=
\biggl( \frac{1}{\sqrt{2}} \biggl)^5 \bigr( |0\rangle+|1\rangle+,...,+|2^5-1\rangle \bigr)
=
\biggl( \frac{1}{\sqrt{2}} \biggl)^5 \, \sum_{n=0}^{2^5-1} |n\rangle
```

これで大丈夫だと思うのだけど、まだよくわからない。

確率振幅は 1/5、観測確率は 1/32 = 0.03125 となる。

##### 標準基底測定

###### 量子回路

![visualIBMQASM.png](https://qiita-image-store.s3.amazonaws.com/0/20418/93f8c462-01e6-80f8-1c44-c0d3d06b9031.png "visualIBMQASM.png")

###### 実行結果

![qSphere.png](https://qiita-image-store.s3.amazonaws.com/0/20418/653be95f-2036-705a-dac6-37f0a35c88ea.png "qSphere.png")

|Shots|Value|Probability|Qubits Measured|
|--:|--:|--:|--:|
| 1 |     0 | 0.03125 | 0,1,2,3,4 |
| 1 |     1 | 0.03125 | 0,1,2,3,4 |
| 1 |    10 | 0.03125 | 0,1,2,3,4 |
| 1 |    11 | 0.03125 | 0,1,2,3,4 |
| 1 |   100 | 0.03125 | 0,1,2,3,4 |
| 1 |   101 | 0.03125 | 0,1,2,3,4 |
| 1 |   110 | 0.03125 | 0,1,2,3,4 |
| 1 |   111 | 0.03125 | 0,1,2,3,4 |
| 1 |  1000 | 0.03125 | 0,1,2,3,4 |
| 1 |  1001 | 0.03125 | 0,1,2,3,4 |
| 1 |  1010 | 0.03125 | 0,1,2,3,4 |
| 1 |  1011 | 0.03125 | 0,1,2,3,4 |
| 1 |  1100 | 0.03125 | 0,1,2,3,4 |
| 1 |  1101 | 0.03125 | 0,1,2,3,4 |
| 1 |  1110 | 0.03125 | 0,1,2,3,4 |
| 1 |  1111 | 0.03125 | 0,1,2,3,4 |
| 1 | 10000 | 0.03125 | 0,1,2,3,4 |
| 1 | 10001 | 0.03125 | 0,1,2,3,4 |
| 1 | 10010 | 0.03125 | 0,1,2,3,4 |
| 1 | 10011 | 0.03125 | 0,1,2,3,4 |
| 1 | 10100 | 0.03125 | 0,1,2,3,4 |
| 1 | 10101 | 0.03125 | 0,1,2,3,4 |
| 1 | 10110 | 0.03125 | 0,1,2,3,4 |
| 1 | 10111 | 0.03125 | 0,1,2,3,4 |
| 1 | 11000 | 0.03125 | 0,1,2,3,4 |
| 1 | 11001 | 0.03125 | 0,1,2,3,4 |
| 1 | 11010 | 0.03125 | 0,1,2,3,4 |
| 1 | 11011 | 0.03125 | 0,1,2,3,4 |
| 1 | 11100 | 0.03125 | 0,1,2,3,4 |
| 1 | 11101 | 0.03125 | 0,1,2,3,4 |
| 1 | 11110 | 0.03125 | 0,1,2,3,4 |
| 1 | 11111 | 0.03125 | 0,1,2,3,4 |

## 3.2 アダマール演算による量子シミュレータ実験

### 3.2.2 アダマール演算によるパウリ演算の変換

#### 演習 3-3

> 3 量子ビットの量子シミュレータを使って、$ H|1\rangle $、$ ZH|1\rangle $、$ HZH|1\rangle $ を確かめる量子回路を作成し、行列計算と一致しているか確かめよ。測定はブロッホ測定の 3 次元表示で確かめよ。

##### 行列計算

```math
ZH|1\rangle
=
\frac{1}{\sqrt{2}}
\begin{bmatrix} 1 & 0 \\ 0 & -1 \end{bmatrix}
\begin{bmatrix} 1 & 1 \\ 1 & -1 \end{bmatrix}
\begin{bmatrix} 0 \\ 1 \end{bmatrix}
=
\frac{|0\rangle + |1\rangle}{\sqrt{2}}
```

- $ HZH|1\rangle $ は演習 3-4 にもあるのでそちらで。

##### ブロッホ測定

###### 量子回路

![visualIBMQASM.png](https://qiita-image-store.s3.amazonaws.com/0/20418/e5c41cdc-d2d7-ad80-c17d-641de758f25b.png "visualIBMQASM.png")

###### ブロッホ球

![blochSphereQubit0.png](https://qiita-image-store.s3.amazonaws.com/0/20418/d9cacf12-8335-bbe8-e5cd-42a3aa738d79.png "blochSphereQubit0.png")

![blochSphereQubit1.png](https://qiita-image-store.s3.amazonaws.com/0/20418/7e3a1e2b-d33e-fe48-75b5-e598d0e6ef5a.png "blochSphereQubit1.png")

![blochSphereQubit2.png](https://qiita-image-store.s3.amazonaws.com/0/20418/f319394d-2d40-a68b-5a5d-2e0deeadbe01.png "blochSphereQubit2.png")

| Shots | Qubit | X | Y | Z |
|--:|:--|--:|--:|--:|
| 1 | Q0 | -1 | 0 | 0 |
| 1 | Q1 | -1 | 0 | 0 |
| 1 | Q2 |  0 | 0 | 1 |

#### 演習 3-4

> 3 量子ビットの量子シミュレータを使って、$ |1\rangle $、$ HH|1\rangle $、$ HXH|1\rangle $、$ HYH|1\rangle $、$ HZH|1\rangle $ を確かめる量子回路を作成し、行列計算と一致しているか確かめよ。測定はブロッホ測定の 3 次元表示で確かめよ。

これは 5 量子ビットの間違いかな？

##### 行列計算

```math
HH|1\rangle
=
\frac{1}{2} \begin{bmatrix} 1 & 1 \\ 1 & -1 \end{bmatrix}
\begin{bmatrix} 1 \\ -1 \end{bmatrix}
=
\begin{bmatrix} 0 \\ 1 \end{bmatrix}
=
|1\rangle
```

```math
HXH|1\rangle
=
\frac{1}{2}
\begin{bmatrix} 1 & 1 \\ 1 & -1 \end{bmatrix}
\begin{bmatrix} -1 \\ 1 \end{bmatrix}
=
- \begin{bmatrix} 0 \\ 1 \end{bmatrix}
=
-|1\rangle
```

```math
HYH|1\rangle
=
\frac{1}{2}
\begin{bmatrix} 1 & 1 \\ 1 & -1 \end{bmatrix}
\begin{bmatrix} i \\ i \end{bmatrix}
=
i\begin{bmatrix} 1 \\ 0 \end{bmatrix}
=
i|0\rangle
```

```math
HZH|1\rangle
=
\frac{1}{2}
\begin{bmatrix} 1 & 1 \\ 1 & -1 \end{bmatrix}
\begin{bmatrix} 1 \\ 1 \end{bmatrix}
=
\begin{bmatrix} 1 \\ 0 \end{bmatrix}
=
|0\rangle
```

##### ブロッホ測定

###### 量子回路

![visualIBMQASM.png](https://qiita-image-store.s3.amazonaws.com/0/20418/6daba9aa-7bc0-0e2f-0897-af3591ff5fdd.png "visualIBMQASM.png")

###### ブロッホ球

![blochSphereQubit0.png](https://qiita-image-store.s3.amazonaws.com/0/20418/fc095cac-f577-31e8-e440-c3f6179a2b7a.png "blochSphereQubit0.png")

![blochSphereQubit1.png](https://qiita-image-store.s3.amazonaws.com/0/20418/2a36648d-b923-2c9a-ebaf-944640cb7108.png "blochSphereQubit1.png")

![blochSphereQubit2.png](https://qiita-image-store.s3.amazonaws.com/0/20418/1b8c1086-4833-2c0f-4e1c-d2b12e271e83.png "blochSphereQubit2.png")

![blochSphereQubit3.png](https://qiita-image-store.s3.amazonaws.com/0/20418/9167e2a7-49c5-bbc2-9ec2-73631de1832a.png "blochSphereQubit3.png")

![blochSphereQubit4.png](https://qiita-image-store.s3.amazonaws.com/0/20418/418e601f-e25e-a9bf-6053-3c3e602ff415.png "blochSphereQubit4.png")

| Shots | Qubit | X | Y | Z |
|--:|:--|--:|--:|--:|
| 1 | Q0 | 0 | 0 | -1 |
| 1 | Q1 | 0 | 0 | -1 |
| 1 | Q2 | 0 | 0 | -1 |
| 1 | Q3 | 0 | 0 |  1 |
| 1 | Q4 | 0 | 0 |  1 |

#### 演習 3-5

> 量子シミュレータで 4 量子ビット用いて、$ HYH=-Y $ を確かめる量子回路を作成せよ。グローバルな位相因子は無視してよい。

##### ブロッホ測定

###### 量子回路

![visualIBMQASM.png](https://qiita-image-store.s3.amazonaws.com/0/20418/2d9cf76f-56a0-8792-c48d-0b1815f0d8fc.png "visualIBMQASM.png")

###### ブロッホ球

![blochSphereQubit0.png](https://qiita-image-store.s3.amazonaws.com/0/20418/c238e211-6a56-0952-e891-5d20c1072b02.png "blochSphereQubit0.png")

![blochSphereQubit1.png](https://qiita-image-store.s3.amazonaws.com/0/20418/43e8cad1-7eab-0df8-290b-2eb9ab0c129d.png "blochSphereQubit1.png")

![blochSphereQubit2.png](https://qiita-image-store.s3.amazonaws.com/0/20418/0afde786-ab6a-b2bb-e279-4d206a939a39.png "blochSphereQubit2.png")

![blochSphereQubit3.png](https://qiita-image-store.s3.amazonaws.com/0/20418/c7ae4dd8-c3eb-f9e4-1738-5213a681bcac.png "blochSphereQubit3.png")

| Shots | Qubit | X | Y | Z |
|--:|:--|--:|--:|--:|
| 1 | Q0 | 0 | 0 | -1 |
| 1 | Q1 | 0 | 0 | -1 |
| 1 | Q2 | 0 | 0 |  1 |
| 1 | Q3 | 0 | 0 |  1 |

#### 演習 3-6

> 量子シミュレータで 4 量子ビット用いて、$ HZH=X $ を確かめる量子回路を作成せよ。

##### ブロッホ測定

###### 量子回路

![visualIBMQASM.png](https://qiita-image-store.s3.amazonaws.com/0/20418/930bd682-8393-08d5-6f1f-be5971b56231.png "visualIBMQASM.png")

###### ブロッホ球

![blochSphereQubit0.png](https://qiita-image-store.s3.amazonaws.com/0/20418/9bfffc10-6f1c-e08c-8b49-e81b69856e87.png "blochSphereQubit0.png")

![blochSphereQubit1.png](https://qiita-image-store.s3.amazonaws.com/0/20418/0dd155e8-a907-0feb-a6fb-6c7e41907161.png "blochSphereQubit1.png")

![blochSphereQubit2.png](https://qiita-image-store.s3.amazonaws.com/0/20418/29aaa995-3d27-af66-8028-7ea36731404d.png "blochSphereQubit2.png")

![blochSphereQubit3.png](https://qiita-image-store.s3.amazonaws.com/0/20418/c0bd88d9-9036-cd11-ac7b-e47586a94ee3.png "blochSphereQubit3.png")

| Shots | Qubit | X | Y | Z |
|--:|:--|--:|--:|--:|
| 1 | Q0 | 0 | 0 | -1 |
| 1 | Q1 | 0 | 0 | -1 |
| 1 | Q2 | 0 | 0 |  1 |
| 1 | Q3 | 0 | 0 |  1 |