
我々はコンピュータを扱う仕事をしております。
そのためにコンピュータを深く知る必要があります。
ということで、今回のテーマは、
今話題の。いや今、話題か? 結構前から話題ではあるが…
「量子コンピュータ」です!
そもそも量子コンピュータとはなんぞや、そこから始めなくてはいけません。
また数々の反論、異論があるかもしれませんが、
私のざっくりとした理解で説明していきます。
間違ってても許してね。
ちなみに何を隠そう、私は、学生時代、物理学を専門にしてました。
しかも量子力学専攻!
(量子力学、嫌いだったなあ。わけわかんないんだもん)
まず量子とはざっくりいうと、ものすごく小さい物質のことになります。
そして、この量子の単位になると物質の法則が不思議なことになります。
簡単に言うと波と粒の両方の性質を持つようになり、位置の特定が確率でしか定義できません。
よくわかりませんよね。
例えば、2つの箱の中のどちらかに赤い球を入れておきます。
どちらの箱に球を入れたのか、見てなかった人から考えると、
赤い球は右の箱か、左の箱か、どちらかの箱に50%の確率であるということになります。
これは通常の大きい物質の話なので、量子力学の法則には従いませんので、
50%の確率と言いましたが、実際にはどちらかの箱にあり、絶対に右か、左かに赤い球は存在しています。
しかし量子の世界だと、箱を開ける前、つまり観測する前には
赤い球は「右か左かわからない状態」ではありません。
実はもっと不思議で、
右にも左にも同時に存在している状態(重ね合わせ)になっています。
イメージとしては、赤い球が固体としてどちらかにあるのではなく、
ぼんやりとした雲のように広がっていて、右の箱にも左の箱にも同時に存在している感じです。
そして箱を開けた瞬間に、その雲が一気に収束して、
右か左のどちらかに「確定」します。これが量子の世界の特徴です。
ここまでで、「量子は同時に複数の状態を持つ」という、
なんとなく不思議な性質を説明しました。
では、この性質がコンピュータにどう関係してくるのでしょうか。
一旦、量子の話から離れて、普通のコンピュータの話に戻ります。
ここでようやくコンピュータの基本単位の話です。
普通のコンピュータは「ビット」という単位で情報を扱っています。
ビットはとても単純で、0 か 1 のどちらかしかとれない
スイッチで言うと、
OFF = 0
ON = 1
です。
このビットをたくさん組み合わせて、数字や文字、画像などを表現しています。
そして計算もこの「0か1」の組み合わせで行っています。
では量子コンピュータは?
ここでようやく最初の話に戻ります。
量子の世界では、
右にも左にも同時に存在できる(重ね合わせ)という性質があります。
これをコンピュータに応用したのが、量子コンピュータです。
量子コンピュータでは、「ビット」の代わりに
量子ビット(qubit)というものを使います。
普通のビットは
0 か 1 のどちらか
でしたが、
量子ビットは
0でもあり1でもある状態を同時に持てるという、とんでもない性質を持っています。
普通のビットと、量子ビットを図で表現すると、こんな感じでしょうか。
後はこの量子ビットをどのように使っていくかということなんですが、
わかりやすくするために、コンピュータの計算を迷路で例えてみましょう。
例えば、ゴールのある迷路があったとします。
スタートからゴールまでの道は複数あり、
その中のどれかが正解です。
普通のコンピュータがこの迷路を解こうとするとどうするか。
基本的には、1つずつ順番に試していくしかありません。
この道を進んでみる → 行き止まり
じゃあ次の道 → 行き止まり
また別の道 → 正解!
という感じで、しらみつぶしに探索していくことになります。
道の数が増えれば増えるほど、
試す回数がどんどん増えていきます。
つまり、問題が大きくなると急激に時間がかかるこれが普通のコンピュータの苦手なところです。
この性質を迷路に当てはめるとどうなるか。
普通のコンピュータは1つずつ道を試す、でしたが、
量子コンピュータは極端に言うと、
全部の道を同時に試すような状態になるわけです。
するとどうなるか。うまくいけば、
正解の道だけを取り出す、ということができる可能性があります。
というわけで前段の説明だけで長くなりましたが、
いよいよ次回から、なんちゃって量子コンピュータの作成に挑みたいと思います。

