重ね合わせ状態を使うと計算が高速になる
なぜ、この量子力学的な重ね合わせ状態を使うと計算を高速にできるのでしょうか? 先ほど並列計算がものすごくできるからと述べました。量子コンピュータ内で、0と1がどちらも50%の確率である重ね合わせ状態を作ったとします。すると、この状態は、0の場合の計算と1の場合の計算を同時にこなすことができます。これを量子ビットと呼びます。この量子ビットを2個用意すると、0と1の重ね合わせ状態が2つでき、00と11と01と10の4つの状態の重ね合わせ状態となります。つまり、2量子ビットで4並列できます。3量子ビットだと、000と001と010と100と011と110と101と111の8並列……のように、量子ビットの数に対して指数関数的に並列度が増加します。量子ビットが10個あると2の10乗=1024並列です。20個あると約1000000並列。このくらいの並列度であれば、最新のスパコンの性能を凌駕します。これはすごい!
先ほどの例だと、1~1000までの数に1を足したかったら、量子ビットを10個用意すると、一発で計算できてしまいます。ただし、実際には量子コンピュータ内の量子ビットを観測すると、重ね合わせ状態が崩れてしまうことから、どんな問題でも並列計算可能なわけではなく、ある条件を満たすような問題で並列計算が有効に働くのですが、その辺りの話は今度詳しく紹介しましょう。とにかく、量子コンピュータとは、イメージとしては以上のような原理で高速計算を可能にしています。
量子アニーリング
量子コンピュータの超基本的なイメージはなんとなく分かっていただけたでしょうか。最後に、今最も注目を集めている量子コンピュータの1方式“量子アニーリング”について簡単に解説します。
量子アニーリングは、日本人の研究者、西森秀稔教授が発見した理論に基づいており、先ほど述べたように現在唯一の商用量子コンピュータとして実現、製品化されています。この量子アニーリングでは、先ほど出てきた“しらみつぶしに調べないと分からない”問題(組み合わせ最適化問題などと呼ぶ)に対して、通常のコンピュータよりも高速に計算し、正しい解を得ることができます。原理は、先ほどの超電導回路で作った、0と1の重ね合わせ状態の量子ビットを1000個程度用意してあり、これに外部から刺激を与えて、その量子状態がどう変化したかを観測するといった非常にシンプルな方法です。言わば、コンピュータというより、実験をする装置です。
外部からの刺激というのは“磁場”で、磁石を近づけたり遠ざけたりするのと同等の操作です。はじめは強い磁場を与えておき、だんだん磁場を弱めるようにします。そして、磁場を弱めるのと同時に、隣り合う量子ビット同士の間の“相互作用”と呼ばれるものを強めていきます。隣り合う量子ビットは相互に接続されており、この相互作用の強さを自由に設定できるようになっています。この相互作用とは、隣の量子ビットに与える影響度のようなもので、+と-があります。たとえば+だと、隣の量子ビットが0の確率が高いと、自分も0の確率が高まる、-だとその逆、といった具合です。そして、この相互作用の強さを解きたい問題に応じて設定します。つまり、解きたい問題を、相互作用の強さの分布にコーディングします。相互作用の強さをプログラミングするといっても良いでしょう。この感覚は、第2回の記事で紹介するプログラムを動かしてみることで、掴んでもらえると幸いです。
そうすることで、各量子ビットは、自分の周りの量子ビットと相互に影響し合い、最終的にある状態に落ち着きます。この状態を最後に観測して、各々の量子ビットが0なのか1なのかを確認します。そしてまさに、1000個の量子ビットの0と1の分布の観測結果が求めたい答え(計算結果)に対応するようになっているのです。
この量子アニーリングを使うと、人工知能や機械学習が驚くほど賢くなる可能性があり、大変注目されています。1億倍高速に計算が可能、という冒頭で述べた研究成果は、ある特殊な問題での話であり、すべての問題でかならず1億倍高速に計算できるというわけではないようです。しかし、重ね合わせ状態を使って計算していることは確かなようで、今後広く応用されていくと世界が変わるかもしれません。
次回は、「"擬似"量子アニーリングをエクセルVBAで作ってみる!」ということで、実際に手を動かしながら量子アニーリングによる計算を体感してもらいたいと思います。お楽しみに。
参考文献、サイト
- 「量子コンピュータ開発が日米で加速、用途は人工知能」(ITpro)
- 「人工知能の発展に量子コンピュータが不可欠な理由」(ITpro)
- 『Excelで学ぶやさしい量子力学』(オーム社)
- 『The Next Technology 脳に迫る人工知能 最前線』(日経BPムック)
