めもめも

このブログに記載の内容は個人の見解であり、必ずしも所属組織の立場、戦略、意見を代表するものではありません。

量子計算(量子回路)の考え方を理解するために最低限必要な量子力学の知識を(それなりに納得感のある形で)うまいこと導入する方法について考えてみた(その1)

何の話かというと

enakai00.hatenablog.com

先日、上記のエントリーを公開したところ、予想以上のアクセスをいただいたのですが、「なるほどわからん」的なコメントも散見されて、量子計算に対する関心の高さと同時に、「はじめの一歩」の敷居の高さを痛感したわけです。

いやまぁ。ぶっちゃけ、私自身、ここ数ヶ月、がーーーーーーっと教科書を読んで勉強した「にわか」なんですが、幸い、大学時代に勉強した量子力学の基礎知識があったので、比較的すっきりと理解はできたんですよ。

enakai00.hatenablog.com

ただ、これって、逆に言うと、量子力学の知識がないと、やはり、

 ( ゚д゚) なにいってんだこいつ

となるのかなぁ。。。と。

で、波動関数やらシュレーディンガー方程式やら、そのあたりはすっとばして、量子計算(量子回路)の考え方を理解するために最低限必要な量子力学の知識を(それなりに納得感のある形で)うまいこと導入する方法はないのか、、、、と考えて書き始めたのがこのエントリーというわけです。まだいろいろと試行錯誤もあるので、生暖かく見守ってください。最低限の前提知識は、線形代数(行列とベクトルの計算)としておきます。

古典力学における「物体の状態」の表し方

まずはじめに、物理学では、「物体の状態を数学的に記述する」ということが必要になります。高校物理でよくやるのは、物体の位置を座標 (x, y) で表わすというやり方です。ここでは話をもっと簡単にして、x 軸上を直線的に運動する物体だとして、x 座標の値だけを考えることにします。

 例:「時刻 t=0 において、この物体の座標は x = x_0 です。」

いやまぁ。何を当たり前のことを言ってるんだといわれそうですが、冷静に考えて、物体の状態を表わす方法は、決してひとつではないということをご理解ください。もっと冗長に、

 「時刻 t=0 において、この物体は、東京都港区にある森ビルの・・・・にあります。」

と座標を使わずに住所で表現することだって可能ですよね。あるいは、絵画や音楽で物体の状態を表現する「芸術」という世界もあったりしますよね。

それはそれとして・・・

古典力学では、物体の状態を指定する際は、物体の座標に加えて、この物体の速度 v、もしくは、速度と質量 m を掛けた運動量 p=mv をあわせて示します。なぜなら、時刻 t=0 における物体の座標だけがわかっても、その瞬間の速度、もしくは、運動量がわからなければ、次の瞬間にその物体がどこに移動しているかがわからないからです。言い換えると、座標と運動量のペアが時刻 t の関数として決まれば、その物体の運動はすべてわかった、ということになります。一例として、バネにつながれて単振動する物体は、座標と運動量が次のように変化します。

www.youtube.com

左の円運動は、縦軸が座標で、横軸は運動量を表します。このような、「座標✕運動量」の平面を「相空間」と呼びますが、抽象的に言うならば、古典力学における物体の状態は、相空間上の1点として表されます。つまり、物体の運動は、相空間上の点の移動として表現されることになるわけです。

いま、この物体が相空間上でどの点にいるのかがわかれば、その情報を用いて、この物体の運動エネルギー  \displaystyle\frac{mv^2}{2}=\frac{p^2}{2m} など、さまざまな物理量が決定されることになります。

量子力学における「物体の状態」の表し方

一方、量子力学の世界では、物体の状態の表し方がちょっと変わります。相空間ではなくて、とあるベクトル空間の1点として指定されます。量子計算に必要な例にしぼって考えることにして、電子のスピンの例をとりあげます。

電子には、「スピン」と呼ばれる属性があり、古典的なイメージとしては、小さな棒磁石が電子に埋め込まれているようなものになります。で、この小さな棒磁石、すなわち、スピンがある瞬間にどういう状態にあるのか、を数学的に記述したいのです。古典力学の世界であれば、スピンの方向を決めて、その方向を示す3次元ベクトルを・・・となるのですが、実は、現実のスピンの状態はそれでは表わすことができません。いや、それで表わすのは勝手なんですが、そうやって表しても実験結果と合致する理論が作れないんですね。

で、さまざまな物理学者がいろいろ考えた結果、「2次元の複素ベクトル空間の1点」として表わすとよい、ということが分かりました。この段階では、それが何を表しているのかは深く考えないでください。とにかく、古典力学の世界で物体の状態が「相空間の1点」に対応するように、量子力学における電子のスピンの状態は、「2次元の複素ベクトル空間の1点」として決まります。要するに、これです。

 \displaystyle\begin{pmatrix}c_0 \\ c_1\end{pmatrix} --- (1)

ここで、c_0c_1 は任意の複素数ですが、次の条件を満たす必要があります。

 |c_0|^2 + |c_1|^2 = 1 --- (2)

これは、実数ベクトル空間の世界で言えば、半径が1の円周上の点にあたります。今の場合は、複素ベクトル空間で、実部と虚部を分けると全部で4次元の実数ベクトル空間と同等で、半径1の4次元球面上の点に相当します。

これで、スピンの状態を表わす方法が決まったのですが、次は、この状態からさまざまな物理量を決定する方法を考えます。

古典力学の場合、相空間上の点の座標、つまり、x と p の値を用いて、直接的に運動エネルギー \displaystyle \frac{p^2}{2m} などの物理量が計算されるわけですが、量子力学の場合、物理量は計算するのではなくて、観測によってはじめて決まる、という考え方をします。

 ( ゚д゚) なにいってんだこいつ

・・・えーと。

これ重要なポイントなのですが、古典力学の場合も本来、運動エネルギーなどの物理量は、対象となる物体を観測してはじめてわかるものです。ただ、古典力学の(意外と気づかれていない)超すごい所は、観測して得られる結果を完璧に予測することができるという点にあります。つまり、運度量が p の物体の運動エネルギーを観測すると、観測結果は、必ず、\displaystyle \frac{p^2}{2m} に一致するのです。いやすげぇ。預言者かよ。

しかしながら、量子力学の世界ではそうはいきません。あるスピンの状態を観測した時に得られる結果を100%完璧に予測することはできないのです。じゃあ、何ができるのかというと、どういう値が得られるかという確率だけが計算できます。

一例として、電子が存在する空間に (x, y, z) 座標を導入して、z 軸方向のスピンの大きさを観測します。古典的なイメージでいうと、斜めに傾いた棒磁石を z 軸に射影した際の z 座標の値 z_0 を観測するのです。ここでは、便宜上、N 極方向を「棒磁石の方向」として定義しています。

 

ここで、棒磁石全体の長さは便宜上 2 としてください。すると、古典的なイメージでは、z_0 は -1 から +1 の値をとるはずなのですが、ここが量子力学の世界の不思議なところで、実際に観測すると、観測値は、z_0 = \pm 1 の2種類しか得られないのです。

いやまぁ。なんでかって言われても、実験したらそうなんだから、としか言いようがないのですが。。。。。。

まあとにかく、結果は z_0 = \pm 1 の2種類しかないことを認めて、それぞれの値が得られる確率を計算する方法を説明しましょう。少しばかり手間がかかるのでじっくり行きますね・・・。

まず、ここで登場するのが次のパウリ行列(の1つ)です。

 \displaystyle \sigma_{z} = \begin{pmatrix}1 & 0 \\ 0 & -1\end{pmatrix}

これは、「z 軸方向のスピンの大きさ」という物理量を表わす行列です。物理量が行列といわれても何のことか分かりませんが、まずは、こういう行列があると思って下さい。

そして、先ほど、量子力学の世界では観測値は確率的にしか決まらない、という事をいいましたが、実は、沢山ある (1) の状態の中には、「z_0 =+1 となる確率が 1 である(z_0 =-1 となる確率が 0 である)」という特別な状態も存在します。そんな状態がどこにあるかというと、先ほどの行列 \displaystyle \sigma_{z} の(固有値 1 の)固有ベクトルがそれに相当します。数式で書くと、次の条件を満たすベクトルです。

 \displaystyle \begin{pmatrix}1 & 0 \\ 0 & -1\end{pmatrix}\begin{pmatrix}c_0 \\ c_1\end{pmatrix} =  \begin{pmatrix}c_0 \\ c_1\end{pmatrix}

(2) の束縛条件を考えると、これを満たすベクトルの1つは次であることが容易にわかります。(正確には、これに大きさ1の任意の複素数 e^{i\theta} を掛けたものも固有ベクトルになりますが、そこは今は無視しておいてください。)

 \displaystyle {\mid 0\rangle} =\begin{pmatrix}1 \\ 0\end{pmatrix} --- (3)

ここで、何やら変な記号 \displaystyle {\mid 0\rangle} が出ましたが、これは、右辺の縦ベクトルに付けたただの名前だと思って大丈夫です。このような記号を「ケット記号」と言います。ちなみに、これを転置して横ベクトルにしたものは、次の記号で表します。こちらは「ブラ記号」と言います。

 \displaystyle {\langle 0\mid} =\begin{pmatrix}1 & 0\end{pmatrix}

おっと、本当は、転置して各成分の複素共役をとったもの(エルミート共役と言います)がブラ記号の正体なのですが、今の場合は成分が実数なので複素共役の効果は特にありません。

そして、これと同様に、「z_0 =-1 となる確率が 1 である(z_0 =+1 となる確率が 0 である)」という特別な状態は、行列 \displaystyle \sigma_{z} に対する、固有値 -1 の固有ベクトルとして決まります。

 \displaystyle \begin{pmatrix}1 & 0 \\ 0 & -1\end{pmatrix}\begin{pmatrix}c_0 \\ c_1\end{pmatrix} =  -\begin{pmatrix}c_0 \\ c_1\end{pmatrix}

これもまた、(2) を満たす解は容易に見つかります。

 \displaystyle {\mid 1\rangle} =\begin{pmatrix}0 \\ 1\end{pmatrix} --- (4)

これで、z軸方向のスピンの値が「確定した」特別な2つの状態が決まりましたが、これら以外の一般の状態の場合、z 軸方向のスピンは、真の意味で確率的にしか決まりません。先ほどのケット記号を用いて、一般の状態を

 \displaystyle{\mid\psi\rangle} = \begin{pmatrix}c_0 \\ c_1\end{pmatrix}

と表わすと、この状態について、z 軸方向のスピンを観測した場合、z_0=\pm 1 の値が得られる確率 p(z_0=\pm 1) は、それぞれ、次で決まります。

  p(z_0=+1) = \left|{\langle 0\mid \psi\rangle}\right|^2 --- (5)

  p(z_0=-1) = \left|{\langle 1\mid \psi\rangle}\right|^2 --- (6)

またてめぇ変な記号が出てきたな・・・・とは言わないで下さい。。。。先ほどのブラ記号とケット記号のルールを思い出すと、これは、次の内容と同じです。

  \displaystyle p(z_0=+1) = \left|\begin{pmatrix}1 & 0\end{pmatrix} \begin{pmatrix}c_0 \\ c_1\end{pmatrix}\right|^2 = |c_0|^2

  \displaystyle p(z_0=-1) = \left|\begin{pmatrix}0 & 1\end{pmatrix} \begin{pmatrix}c_0 \\ c_1\end{pmatrix}\right|^2 = |c_1|^2

結局の所、(1) の2つの成分 c_0,\ c_1 というのは、z 軸方向のスピンの値が \pm 1 である確率に対応していたのですね。こう考えると、(3)(4) が z 軸方向のスピンの値が確定した特別な状態であることもすっきりと理解できるでしょう。

最後にもう1点だけ。量子力学の世界では、z軸方向のスピンの値を観測すると、なぜか z_0=\pm 1 の値しか得られないのですが、その1つの説明として、「観測によって状態が変化するから」という解釈があります。この解釈がほんとーーーーーーに正しいかどうかは、まだ議論の余地があるのですが、たとえば、

・(1) の状態に対して、z 軸方向のスピンを観測すると、観測の影響によって、強制的に (3) もしくは (4) に状態が変化してしまう。

・どちらの状態に変化するかは、(5) (6) の確率で決定される。

と考えると、一応、合理的な説明にはなります。また、実際の所、任意の状態において、z 軸方向のスピンを観測した結果、仮に z_0=+1 が得られたとすると、観測直後の状態は、 {\mid 0\rangle} に変化しています。あるいは、z_0=-1 が得られたとすると、観測直後の状態は、 {\mid 1\rangle} になります。

一旦、ここまでの話をまとめると次の通りです。

・電子のスピンの状態は、2次元の複素ベクトルで表される。(ただしベクトルの大きさは 1 に限る。)

・z 軸方向のスピンを観測すると z_0=\pm 1 のどちらかが得られる。どちらかが得られるかは確率的に決定される。

z_0=\pm 1 が確率 1 で観測される特別な状態 {\mid 0\rangle},\ {\mid 1\rangle} は、パウリ行列 \sigma_z の固有ベクトルとして決まっている。

・その他の一般の状態の場合、z_0=\pm 1 が観測される確率は、(5) (6)、すなわち、固有ベクトルとの内積の大きさの2乗で計算される。

状態の「重ね合わせ」について

ここで、量子力学の説明でよく登場する「重ね合わせ」について説明しておきます。実は、ここまでの議論を理解すれば、決して特別なものではないことがわかります。

一般に電子のスピンの状態は、

 \displaystyle{\mid\psi\rangle} = \begin{pmatrix}c_0 \\ c_1\end{pmatrix}

という複素ベクトルで表されますが、これは、

 \displaystyle {\mid 0\rangle} =\begin{pmatrix}1 \\ 0\end{pmatrix}

 \displaystyle {\mid 1\rangle} =\begin{pmatrix}0 \\ 1\end{pmatrix}

を基底ベクトルとして、これらの線形結合で表わすことができます。

 \displaystyle{\mid\psi\rangle} = c_0 {\mid 0\rangle} + c_1{\mid 1\rangle}

この事実を持って、

・状態 \displaystyle{\mid\psi\rangle} は、状態 {\mid 0\rangle},\  {\mid 1\rangle} の重ね合わせである。

と言います。

まあ、実体としてはそれ以上でもそれ以下でもないのですが、先ほどまで説明した、z軸方向のスピンを観測すると、

・確率 |c_0|^2z_0=+1 が観測されて、その結果、状態は {\mid 0\rangle} に変化する。

・確率 |c_1|^2z_0=-1 が観測されて、その結果、状態は {\mid 1\rangle} に変化する。

という事実を振り返ると、あたかも、「{\mid 0\rangle},\  {\mid 1\rangle} という2つの状態が重なり合って同時に存在するのが \displaystyle{\mid\psi\rangle} という状態」とか解釈したくなりますよね。これが、「状態の重ね合わせ」という考え方の実体です。現実に2つの状態が混在しているわけではなく、\displaystyle{\mid\psi\rangle} は、あくまで、\displaystyle{\mid\psi\rangle} という1つの状態である点をよく理解しておいてください。

ちなみに・・・

よくある量子計算機の説明として、「量子ビットは、0 と 1 の状態を同時にとれるから計算がはや・・・・・」というのがありますが、ここまでの説明からわかるように、そもそも量子ビットは、連続的に変化する複素ベクトルであり、言ってみればアナログ量なので、0 / 1 のバイナリー量である古典ビットより表現力が高いのは当たり前なんですよね・・・・。量子計算機の本当の意味での優位性は、多体系(複数のスピン)に対する重ね合わせ(Entanglement)から生まれるのですが、そのあたりはもう少し先で・・・・。

次回予告

今回は、「z軸方向のスピンの大きさ」という物理量を例に説明しましたが、今回の説明方法は意外と汎用性が高く、まったく同じ手順で、「x軸方向のスピンの大きさ」や「y軸方向のスピンの大きさ」について考えることもできます。次回は、このあたりの議論の拡張を進めていきます。たぶん。