SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ITエンジニアのための量子コンピュータ入門

機械学習への活用も期待される、今話題の量子アニーリングってなに?

ITエンジニアのための量子コンピュータ入門 第1回

重ね合わせ状態を使うと計算が高速になる

 なぜ、この量子力学的な重ね合わせ状態を使うと計算を高速にできるのでしょうか? 先ほど並列計算がものすごくできるからと述べました。量子コンピュータ内で、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の分布の観測結果が求めたい答え(計算結果)に対応するようになっているのです。

D-Waveの量子コンピュータ内部“量子アニーリング”の動作原理
D-Waveの量子コンピュータ内部“量子アニーリング”の動作原理

 この量子アニーリングを使うと、人工知能や機械学習が驚くほど賢くなる可能性があり、大変注目されています。1億倍高速に計算が可能、という冒頭で述べた研究成果は、ある特殊な問題での話であり、すべての問題でかならず1億倍高速に計算できるというわけではないようです。しかし、重ね合わせ状態を使って計算していることは確かなようで、今後広く応用されていくと世界が変わるかもしれません。

 次回は、「"擬似"量子アニーリングをエクセルVBAで作ってみる!」ということで、実際に手を動かしながら量子アニーリングによる計算を体感してもらいたいと思います。お楽しみに。

参考文献、サイト

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
ITエンジニアのための量子コンピュータ入門連載記事一覧

もっと読む

この記事の著者

宇津木 健(ウツギ タケル)

 「量子情報勉強会」主催。東京工業大学大学院物理情報システム専攻卒業後、メーカーの研究所にて光学関係の研究開発を行っています。 また、中野付近でお芝居をしています! Twitter:@utsugitakeru

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/9293 2016/04/22 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー