たのしい工学

プログラミングを学んで、モノをつくりたいひと、効率的に仕事をしたい人のための硬派なブログになりました

【量子コンピュータの原理】量子ビットの基本

   

今回は機械学習や創薬(量子化学計算)への応用も期待されている量子コンピュータの基本原理である量子ビットについて書いてみました。

量子ビットとふつうのビットの違い

ふつうのビット

0 1

として表示します。PCはあらゆるデータを0や1としてあつかいますよね。

一方、量子ビットはこのように書きます

|0> |1>

このような記号で、ふつうの量子ビットの0と1に対応する状態をあらわすことに決めています。とくに難しいことはなくて、こういう風に書くと決めただけです。

では、2ビットの場合を考えてみましょう

ふつうのビットの場合

たとえば、
(11)
なら、1ビット目が1で2ビット目も1の2進数というように解釈されて、これは10進数だと3を意味しますよね。つまり、桁のそれぞれに意味をもっています。

では、量子ビットはどうあらわされるかというと、ふたつのもののそれぞれの状態であらわされます。ふたつのもののそれぞれは独立に|0>であったり|1>であったりすることができるので、それぞれの状態の組み合わせが2量子ビットの状態をあらわします。独立なものの組み合わせをとることを数学的には直積をとるといって、

Image from Gyazo

このように書くことができます。
さらに、まんなかの直積の記号を省略して、

|11>

と書かれることが多いです。
これで、2量子ビットが表現できました。

ふつうのビットとの違いはここにありまして、この|11>は数の位置は位取りではなくて、あくまでも「何番目」という場所を表しています。

じゃあ、計算ってどうするんだ?と思うかもしれませんが、量子ビットの計算というのは、ふつうの古典的なビットの計算とはまったくことなる概念なのです

量子計算をするというのは、量子ビットに操作を加えて、状態を変化させることなのです。すので、1+1=2などの数学的な計算とは少し感覚が異なります。つまり、例を示すと、

【量子計算】


|01>   →   |00>
(始)(遷移)(終)

このような操作を行うことを量子計算というのです。
計算という言葉よりも、操作のほうがふさわしく感じるのではないかなと。

今回はここまでにします。
次回は、ものすごく直感に反するのですが、とてもおもしろい量子力学的な自然現象である重ね合わせ状態について書いていく予定です。

ではでは!

 - 量子コンピュータ