量子コンピュータにおけるHello worldの一歩手前を理解する

### Hello Worldの一歩手前とは
量子コンピュータにおける Hello World はBell状態というものを作り出すことのようです。
Bell状態は少し難しいので、この記事では Bell状態を理解する上で必要な**アダマール演算子**について理解していきたいと思います。
できるだけ数式は使わず、定性的に理解することを目指します。

※　間違いやお気づきの点がございましたらご指摘いただけますと幸いです。

---

### アダマール演算子を使った量子回路

Hello Worldを理解するために必要なアダマール演算子を使った回路は下の図のようなものとなります。
図中の H と書かれた赤いものが、アダマール演算子です。
こちらの回路では1つの量子ビット (ビットの量子コンピュータ版)に対して、アダマール演算子によって演算を行い、
その演算後の量子ビットの状態 (0 or 1)を観測するといったものとなっています。

<img width="1000" alt="アダマール演算子を使った量子回路.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2107386/eb67a856-6b48-41e9-eaf3-e9e2f7501af0.png">

結論から話してしまうと、アダマール演算子とは以下のようなものです。

:::note
量子ビットを観測したときに 0 や 1 が それぞれ50 %の確率で観測されるような重ね合わせ状態を作る
:::

一般的なコンピュータではある論理回路によって演算ということを行っても、観測されるビットの状態が確率的に変化することはありません。
しかしながら、アダマール演算子のような演算子を使った量子回路によって演算を行うと、
演算を行うたびに観測されるビットの状態は変わります。

なかなか言葉だけではわかりにくいと思いますので、実際に量子コンピュータを動かしながら確かめていきます。

---

### 使用するシミュレータ
量子コンピュータを実際に使用するために、[IBM Quantum Experience](https://quantum-computing.ibm.com/)を用いたいと思います。
そちらのサイトにはgoogleアカウントによって簡単に登録ができ、シミュレーションや量子コンピュータの実機を動かすことができます。
手軽にシミュレーションができるので、そちらを利用します。

---

### 量子力学

アダマール演算子を理解するためには、量子力学というものをある程度理解しておく必要があります。
先ほどの演算のたびに観測される量子ビットの状態が変わるというには量子力学的な効果によるものです。
ただ、量子力学を理解することは難しいです。

なので、参考文献にてあげた[量子コンピュータが本当にわかる！](https://www.amazon.co.jp/%E9%87%8F%E5%AD%90%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%81%8C%E6%9C%AC%E5%BD%93%E3%81%AB%E3%82%8F%E3%81%8B%E3%82%8B-%E2%80%95-%E7%AC%AC%E4%B8%80%E7%B7%9A%E9%96%8B%E7%99%BA%E8%80%85%E3%81%8C%E3%82%84%E3%81%95%E3%81%97%E3%81%8F%E6%98%8E%E3%81%8B%E3%81%99%E3%81%97%E3%81%8F%E3%81%BF%E3%81%A8%E5%8F%AF%E8%83%BD%E6%80%A7-%E6%AD%A6%E7%94%B0-%E4%BF%8A%E5%A4%AA%E9%83%8E/dp/4297111357)にあるとおり、理解するのではなく**慣れる**方向で読んでいただければと思います。

<details>
<summary>量子力学って難しいにまつわる小話</summary>
アインシュタインは観測される現象が確率によって決まるとする量子力学に対して納得がいかずその理論を認めませんでした。
「神はサイコロをふらない」という言葉は有名です。
また、ノーベル賞をとって量子コンピュータというアイデアを出したファインマンも「もしも量子力学を理解できたと思ったならばそれは量子力学を理解できていない証拠だ」といったような言葉を残しています。
他にも多数の物理学者達は量子力学に対して難しいといった言葉を残しています。難しいと今まで書いてきましたが、どちらかというと直感的に反するので、受け入れがたいといったイメージです。
</details>

---

### とても小さい世界のお話

量子力学というのは簡単に言ってしまうととても小さい世界について記述する理論のことです。

水などの物質は図のように分子からできており、その分子は原子からできています。
その原子は原子核と電子からできていて、大きさは大体 0.1 nmくらいです。

![モノのスケール.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2107386/c17474af-4fb9-ad92-e471-37b034f20c94.png)

---

0.1 nmといってもなかなか直感的に理解することができないと思うので、
原子がどのくらい小さいか少しでも理解するために、下記の図を見てみます。

原子とピンポン玉を比較してみるとその大きさの比はピンポン玉と地球くらいあります。
つまり、ピンポン玉の大きさを地球くらいの大きさにすると、原子はやっとピンポン玉になるくらいの大きさです。

![スケール感.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2107386/e1c12b33-a4e2-ebbd-1ba4-95fd688ee772.png)

なんとなく原子の大きさをわかっていただけたのならうれしいです。

量子力学ではそのくらい小さいものを扱っていることになります。

原子核で話を止めましたが、実際には原子核は陽子と中性子からできています。
さらにその陽子や中性子はクォークと呼ばれる現在最小の単位と考えられているもの、つまり素粒子と呼ばれるものでできています。

そのクォークも最近では実はひもによってできている(この言い方はあまり正しくないかもしれません)という理論もあったりします。

モノを構成している最小単位を突き詰めていくと最新の理論まで話が出てきて、なかなか面白いですね。

---

### 2重スリットの実験

量子力学を理解するために、電子を用いた2重スリットの実験というものについて考えます。
波を使った2重スリットの実験を高校の授業で習ったかと思いますが、それの電子を用いたバージョンです。
波を使った2重スリットの実験では波が干渉し(波と波が強めあったっり、弱めあったっり)することによって、干渉縞と呼ばれる縞模様が生じます。(下の動画を参照)
<br>
<iframe width="560" height="400" src="https://www.youtube.com/embed/K-rwhDCAGgw" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

---

電子を用いた2重スリットの実験は下の図のようなものです。
1つの電子が2つの隙間(スリット)が空いたところにところを通ると後方に置かれたスクリーン上の
どこに電子が到達するかといった感じのものです。

<img width="600" alt="2重スリットの実験.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2107386/29ebb282-f426-0394-53a6-d7c2a041a2a3.png">

電子は粒みたいなもの(粒子)という考えが一般的な認識かと思います。
そのため、電子は下の図の緑色の領域のどちらかにあたるはずです。

<img width="700" alt="電子は当たる位置予測.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2107386/d074e777-aee1-3909-d859-9761194b426c.png">

---

しかしながら、実際に実験を行ってみると予想とは違う結果となります。
百聞は一見にしかずという言葉があるとおり、実際にこれに関しては下の動画を見て貰うといいと思います。
<br>
<iframe width="560" height="400" src="https://www.youtube.com/embed/lp1xgTCLNe0?start=437" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

電子を1つずつ照射していくと、波のときと同じように干渉縞が生じるというのが結果です。
しかしながら、電子が干渉を生じるためには 1 つの電子が 2 つのスリットを通る必要があります。
電子を粒子とするとそんなことは不可能です。

そのため、この実験結果を説明するために以下のように考えます。

:::note
電子は片方の隙間を通った可能性ともう片方の隙間を通った可能性が同時に存在し、どちらの可能性にも確定せず、その可能性同士を重ね合わせ状態になっている。 2 つの可能性が重ね合わさることによって 1 つの電子で干渉が生じる。
:::

---

もう少し具体的に見ていきます。
これまで電子は粒子として考えてきましたが、電子は実際には**粒子でもあり波でもあります**。

電子は照射されるときは粒子として振る舞っていますが、照射されると電子は波のように空間中を拡がっていきます。
電子が存在する可能性がある位置が拡がりながら進んでいるといった具合です。

波のように進んだ電子は 2 つのスリットを通って干渉を引き起こすことができます。
電子はスクリーンに当たった瞬間に粒子として振る舞い、1カ所の当たった点として現れます。

強めあって波が大きくなった場所は電子が存在する確率が大きく、弱めあって波が小さくなった場所は電子が存在する確率が小さくなります。
そのため、電子を1個照射することをたくさん行うと、干渉縞が出現することになります。

![電子の2重スリットの実験の解釈.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2107386/2f35b170-1c9f-c9ab-b1b6-836eb049c06f.png)

余談ですが上の動画の実験は世界で最も美しい科学実験のうちの 1 つとして選ばれているようです。

---

### 観測とは

波として振る舞っていた電子はスクリーンに当たった瞬間に粒子として振る舞い、1カ所の当たった点として現れました。
スクリーンに当たった瞬間に何が起きているのでしょうか？

スクリーンに当たるまでの電子は波のように拡がり、異なる複数の場所に存在する可能性が重なり合っています。
しかしながら、スクリーン上に電子が当たることにより、その重ね合わせ状態は壊れてしまいます。
そして、電子が観測される場所は重ね合った複数の可能性の中の1つに決まります。

つまり、電子は観測を行うことによって波としての性質を失い、スクリーン上で観測される位置は確率的に決まってきます。
そのため、1つ1つの電子が観測される位置を確実に特定することは不可能です。

我々が住んでいるモノのスケールではそのようなことはありません。
例えばボールなどの運動は初期状態の位置や速度が分かっていれば、
その後のボールの運動は物理法則によって完全に一意に決まります。
しかしながら、ミクロな世界の量子力学の世界では確率的に決まります。

このあたりの話がアインシュタインには受け入れられなかったようです。
確かに、物体の位置が観測の度に変化しそれが確率的に決まると言われても、我々の直感とはずれています。
朝には靴がロッカーにあったにも関わらず、
帰りにロッカーを開けると靴が別の場所に移っていてないなんてことはありませんから。

直感的にずれていますが、それがミクロな世界の基本原理なので、少しずつ慣れていってもらえたらと思います。

---

### アダマール演算子について

ここまで量子力学の特徴的な原理について述べてきました。
ここまできて、ようやくアダマール演算子を理解することができます。
アダマール演算子とは

:::note
量子ビットの状態を 0 と 1 が それぞれ50 %の確率で観測されるような重ね合わせ状態にする
:::
ものでした。

つまり、量子ビットの状態を観測すると50 %の確率で 0 が 50 %の確率で 1 となるということです。

---

実際にシミュレータを使って、そのことを確かめてみましょう。
下の図は初期状態が 0 のである 1 つの量子ビットに対して、アダマール演算子を追加したときの様子です。

下半分の図は横軸を量子ビットの状態、縦軸を確率としたときの演算後の状態を表す図です。
その図より、量子ビットが 0 となる確率が50 %、1 となる確率が50 %となるような重ね合わせ状態にあることがわかると思います。

![アダマール演算子を置いたときの量子ビット.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2107386/810d6048-a489-8f5f-40c9-eb30c8aaf15d.png)

この状態に対して、観測を行うゲートを追加すると下の図のようになります。
先ほどお話したように観測を行うと重ね合わせ状態が壊れ、観測される状態が決まります。
そのため、下半分の図では 0 が観測される確率が100 %になります。

![観測ゲートを置いたときの状態.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2107386/3adb8d20-e774-d5bd-6226-3cc77b88b3fe.png)

アダマール演算子によって重ね合わせ状態を作りだし、観測を行うという操作を1024回行った結果は以下の通りです。
こちらの図は縦軸がその量子ビットの状態になる頻度 (回)となっています。
1024 回程度なので、理想通りそれぞれの状態での頻度が等しくなっていませんが、
アダマール演算子によって重ね合わせ状態が作り出せていることが分かっていただけると思います。

わかりにくければ、試行回数を1 回にして、観測結果を見てみると観測さえる状態が毎回変わるのでそちらも面白いと思います。

![試行結果.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2107386/c6201f27-3966-207a-504b-7d25e81dfb4d.png)

---

### 最後に

だいぶ長くなりましたが、以上でアダマール演算子について説明が終わりです。

まとめますと

1．電子などの小さいものは粒子と波の性質を持ち合わせている

2．アダマール演算子によって量子ビットを重ね合わせ状態にしている

3．観測を行うことによって、重ね合わせ状態は壊れる

です。

今回は定性的な話となりましたが、(物理)数学を使った理論的な話を学びますとより一層面白いです。

参考文献にあげた[Quantum Native Dojo](https://dojo.qulacs.org/ja/latest/index.html)などを興味があれば見てみてください。

---

### 参考文献

[量子コンピュータが本当にわかる！](https://www.amazon.co.jp/%E9%87%8F%E5%AD%90%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%81%8C%E6%9C%AC%E5%BD%93%E3%81%AB%E3%82%8F%E3%81%8B%E3%82%8B-%E2%80%95-%E7%AC%AC%E4%B8%80%E7%B7%9A%E9%96%8B%E7%99%BA%E8%80%85%E3%81%8C%E3%82%84%E3%81%95%E3%81%97%E3%81%8F%E6%98%8E%E3%81%8B%E3%81%99%E3%81%97%E3%81%8F%E3%81%BF%E3%81%A8%E5%8F%AF%E8%83%BD%E6%80%A7-%E6%AD%A6%E7%94%B0-%E4%BF%8A%E5%A4%AA%E9%83%8E/dp/4297111357)
[Quantum Native Dojo](https://dojo.qulacs.org/ja/latest/index.html)
[IBMの量子コンピューターでシュレディンガーの猫と同じ気分になりたい。](https://qiita.com/motoyuki1963/items/d15f4b0ebe6b5505073e#ibm%E3%81%AE%E9%87%8F%E5%AD%90%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%BC%E3%81%AE%E5%8B%95%E3%81%8B%E3%81%97%E6%96%B9)
[量子コンピュータの基礎](http://www.orsj.or.jp/archive2/or63-6/or63_6_311.pdf)