読者です 読者をやめる 読者になる 読者になる

量子ビットの話

量子アルゴリズム

最近量子コンピュータ興味がわいて色々調べてみました。

今までのコンピュータではビットは電圧が一定以上、以下で0と1の情報を表現していましたが、量子コンピュータでのビットは量子力学で言う2つの準位のことで、|0>と|1>の情報を表現します。いきなり|>こんなん出てきましたが、これは量子力学でベクトルを表すケットベクトルと言います。量子コンピュータで使うビットの事を量子ビットとかキュービットと呼びます。

2準位てのは異なる二つのエネルギー状態の事で、例えば原子核のスピンの上下や、光子フォトンの2つの偏向状態、超電導でのジョセフソン接合などなど。この辺はいろんな研究が行われています。

これらの準位をうまく制御すると、0と1両方の状態を同時に半分ずつ取ったりする重ね合わせ状態という状態になることができます。

この重ね合わせというのは複素数で重ね合わせられていています。

キュービットは

{ \left | 0 \right \rangle = \left(\begin{array}{c} 1 \\ 0  \end{array} \right) , \left | 1 \right \rangle = \left(\begin{array}{c} 0 \\ 1  \end{array} \right)
    , \left | \phi \right \rangle = \dfrac{1}{\sqrt{2}} \left(\begin{array}{c} 1 \\ 1  \end{array} \right)
    = \dfrac{\left | 0 \right \rangle + \left | 1 \right \rangle}{\sqrt{2}}
    , \left | \phi \right \rangle = \left(\begin{array}{c} a+bi \\ c+di  \end{array} \right)
    
 }

と書け、一般項は

{ \left | \phi \right \rangle = e ^ {i \gamma } (cos \dfrac { \theta }{2} \left | 0\right \rangle + e ^ { i \phi } sin \dfrac { \theta }{2} \left |1 \right \rangle) }

と書ける。1キュービットは基本Bloch球で描くことができる。

ファイル:Bloch sphere.svg

 

ブロッホ球 - Wikipedia

キュービットてのはこの球面上をぐるぐる移動していて、重ね合わせなどを表現してるみたいすね。

さて、量子コンピュータの凄さの理由がちらついてきました。

1キュービットで0と1の重ね合わせを取れるなら2キュービットでは00、01、10,11の4通りの重ね合わせを、nキュービットでは2^n通りの重ね合わせを同時に取ることが出来ます。同時にです。これが超並列計算へとつながるのですね。

 

そして、このキュービットをどうやって制御するかが難しいです。ここでは原子核のスピンでの量子ビットの説明をします。

そもそもスピンてものはずっと歳差運動というコマような運動をしてます。放っておくとずっと回り続けるコマみたいなものです。NMR(Nuclear Magnetic Resonance、核磁気共鳴)という相互作用を利用して制御します。NMR装置で外部磁場かけているのですが、直観的には横磁場はコマを倒すような力を、縦磁場はコマを起こすような力をかけてると考えたらわかりやすいかもです。

そうして外部磁場をうまいこと制御して核スピンの上下を制御してるらしいです。

f:id:castlejou:20151113211559j:plain

 

ここから一気に難しくなるかもです。

そして状態(スピンの上下)がどう動いてゆくかを時間tの関数で表し、シミュレーションします。量子力学なのでモデル(時間依存のハミルトニアンから時間発展演算子)を作って考えていきます。

2準位原子系とレーザー光とで時間発展する系を解いてくれてる本があったからそれを使いました。(ここはNMRじゃなくてフォノン偏向の話ですのでスピンとは違うかな?)

量子アルゴリズム | 中山 茂 | 本 | Amazon.co.jp

この本は非常に分かりやすかったです。

 

2キュービット以上のときはスピン相互作用も考える必要があるため自分じゃ分からなかったです。ので学校の先生に教えていただきました。イジングモデルという格子点に配置された粒子に対しスピン相互作用と外部磁場からの影響とを考えたモデルです。粒子が2つと考えてハミルトニアンを出し、時間発展演算子という行列を用いて時間発展させました。

 

難しいですね。量子力学は学部の講義で摂動論あたりまでやったんですが、量子アルゴリズムイジングモデル→時間発展演算子の流れは未知の領域すぎます。

 

量子ビットの物理的な説明はこれで以上です。

次はアルゴリズムと実際の制御の話をします。