
量子コンピュータの速さの秘密は、「重ね合わせ」と「干渉」
※本稿は、藤井啓祐 著『教養としての量子コンピュータ』(ダイヤモンド社)の内容を一部抜粋・編集したものです。
現在使われているコンピュータでは情報を「0」と「1」のビットという単位で表し、それらの足し算や掛け算を使って計算を行っている。「量子力学的な重ね合わせを使えない」という意味合いで、本書ではこのような現在のデジタルコンピュータを「古典コンピュータ」と呼ぼう。
たとえばコンピュータのなかでは、電気が流れている状態を「1」、流れていない状態を「0」に対応させビットを表している。コンピュータは、電気のスイッチを高速でオンにしたり、オフにしたりすることで、ビットを変化させ計算を行っているのだ。
このようなビットは、必ず「0」か「1」のどちらか一方の状態を選ばないといけない。ところが、量子力学では、「0」とも「1」とも決まっていない、重ね合わせをとることが許されている。
であるならば、「0」と「1」のどちらか一方を選ぶ必要があるビットで情報を表すのではなく、より広い視点で「0」と「1」の重ね合わせとして情報を表してもよいであろう。
量子ビットはこのように、「0」と「1」の重ね合わせとして、情報の表し方を量子力学の世界まで広げた考え方である。
古典ビットとの大きな違いは、「0と1を同時に表せる」ことであり、測定をするまでは「0」と「1」の可能性が両方とも残されている。
量子ビットは、「0」や「1」の可能性がどれくらい大きいか、もしくは小さいか、ということをアナログ(連続的)に表すことができる。測定したとき、この可能性の大きさにしたがって、ランダムに「0」や「1」がはじめて決まる。
このように、「0」と「1」を同時に表せて、それらの可能性を連続的に変化させることができるという特徴が、量子コンピュータの計算速度を格段に上げている。
たとえば、6桁のビット(6ビット)の計算をするとしよう。古典ビットは「0」か「1」どちらかだけを表すため、「000000」から「111111」までのどれか一つしか表すことができない。すべての組み合わせを試したい場合は、一つひとつ計算していく必要がある。
量子ビットは、「0」と「1」の重ね合わせで表せるため、一回で64パターンすべてを同時に表すことができる。しかし、それぞれのパターンの可能性は小さく、そのまま測定するとデタラメな結果になってしまう。
そこで、二重スリット実験であったように、量子力学の世界の干渉を用いて可能性を変化させることで、特定のパターンの可能性を強めることが可能だ。この結果、すべてを一つひとつ試すよりも圧倒的に少ない手数で答えを見つけられる。
少ないビット数では計算時間に大きな差はないかもしれないが、これが50ビット、100ビットになっていくと、パターンの数は爆発的に増えていくため、量子コンピュータは古典コンピュータよりもはるかに速く計算ができるようになる。
更新:08月28日 00:05