量子コンピュータは従来のコンピュータと比べてとてつもなく高速で計算が可能です。
ではなぜ高速計算が可能なのでしょう?それはそもそもの計算原理が全く異なるからです。キーフレーズは「同時に計算が可能」です。
従来コンピュータは計算を繰り返し行う
従来のコンピュータの計算は非常に単純です。与えられたデータに対して1回1回順番に計算を行っていきます。

コンピュータの中ではデータは数字も文字も記号も0と1の組み合わせで表現されます。このときそれぞれの0や1はビットと呼ばれ、各ビットが電圧がONかOFFかで0か1かを判断しています。
この電圧1回1回操作することで従来コンピュータは計算を行っています。

量子コンピュータは2つの「状態」を使って計算する
量子コンピュータにもビットに対応するような量子ビットというものが存在します。
量子ビットは電圧のON/OFFによって0か1かが決まっているのではなく、各量子ビット(量子)の状態によって0か1かが決まります。
つまりそれぞれの量子ビットに0の状態と1の状態があってその組み合わせでデータを表現しているということです。

この話を聞くとこのように感じるのではないですか?

あれ、結局電圧のON/OFFか何かの状態が0か1かってだけで今までと変わらなくない?
ここからが難しい話になってきます。
この量子ビットの最大の特徴は、量子の状態は0か1かに必ず決まっているわけではなく、0と1が混ざったような重ね合わせの状態を取り得るという点です。

意味がわかりませんよね。当然です。この重ね合わせ状態というのは量子のような極小の世界のみで起きる不思議な現象だからです。
つまり各ビットを人間に例えるなら、従来のコンピュータでは一人一人は寝ているか起きているかのどちらかで表されるのですが、量子コンピュータでは寝ているし起きているという状態というものが存在しているということです。

つまり上の例では従来コンピュータは「0011」というデータに対して計算を繰り返していきます。
一方で量子コンピュータでは上のデータは「0000」から「1111」の全ての状態がありえます。量子コンピュータは全てのあり得る可能性を同時に計算することが可能なのです。この同時に計算というのが超高速計算が可能な理由となっています。
重ね合わせの状態の例
少し例を挙げて考えてみましょう。3ビットの計算を考えます。
左の従来コンピュータでは各ビットの値は0/1で決定しているので3ビットを使って表現できるのは下のように(001)のようなある1つの値です。

一方量子コンピュータでは1つのビットにおいて0の状態と1の状態の重ね合わせの状態(|0>+|1>と表現することにします)をとることができます。
そのため3ビットを考えると上のように(000)から(111)の8つの状態が重ね合わさった状態で表現できます。
これが何を意味しているかというと、量子ビットでは3ビットで8つの状態の計算が1度で済むということです。単純に従来のコンピュータの8倍の計算速度ということになります。
これが量子コンピュータの最も素晴らしい点なのです。
重ね合わせの状態とは何か

重ね合わせの状態って結局1なの?0なの?
と思う方もいると思います。この答えは「観測するまでわかりません」となります。
これ以上は量子物理学の話になってしまうので詳しくは触れませんが、量子というミクロなレベルでの物理では常識では考えられない振る舞いをすることがわかっているのです。
観測という行為をすることで初めて状態が0か1かが確定し、観測するまでは0でもあり1でもあるような状態を取っていると考えられています。
コメント