SHOEISHA iD

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

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

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

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

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

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

普通のコンピュータは0か1かのデジタル

 では実際、量子コンピュータとはいったいどんなものか、できるだけ単純に説明しましょう。まず、“量子”とは、量子力学の“量子”で、量子力学の世界で出てくる“重ね合わせ状態”なるものを利用して高速に計算を行います。量子コンピュータについては、書籍やネット上に数多くの解説がありますが、結局「量子コンピュータとは、この“重ね合わせ状態”を利用しているコンピュータである」という説明に尽きます。何の重ね合わせかというと、"0"と"1"の重ね合わせです。一方、今我々が使っている普通のコンピュータは、重ね合わせ状態を使っていないということになります。

 普通のコンピュータでは、0と1で計算していることはご存知の通りですが、これはコンピュータを構成している半導体トランジスタの中で、電圧が“低い”状態(例えば0V)と“高い”状態(例えば5V)をそれぞれ“0”と“1”と解釈して計算をしています。当り前ですが、このトランジスタ内の電圧が“低い”状態か“高い”状態かは、必ずどちらかであり、両方ということはありえません。

 0か1しかとらないことをデジタルと呼びますが、普通のコンピュータは、0か1しかありえないことがあらかじめ分かっているので、ノイズに強く計算が正確だという特徴があります。たとえば、5Vの場合は1と解釈しますが、何かの拍子に4.5Vや3.8Vになってしまうことは良くあります。しかし、これらは1Vよりは5Vに近いから1と解釈する、という風にデータの修復ができるのです。これにより、正確な計算結果を吐き出すことができます。現在のコンピュータがすべてデジタルであるのは、この正確さが大きな理由でしょう。

 さて、デジタルである普通のコンピュータの弱点はというと、入力が2通りある場合は2回計算しなければならないことです。たとえば、入力した数(n)に1を足した数を計算したいとします(n+1)。1と入力すると、1+1=2を計算して、2を出力します。2を入力すれば3を、100を入力すれば101を出力します。では、1~1000までの1000個の数字を入力すると、普通のコンピュータは1000回1を足し算する計算を行って、1000回出力を出します。当り前ですが、1000回計算する時間を要します。

普通のコンピュータのイメージ
普通のコンピュータのイメージ

量子コンピュータは0と1の重ね合わせ

 一方、量子コンピュータでは、この考え方を覆します。0と1の両方の可能性を持つ状態、言うなれば0と1が重ね合わされた状態『重ね合わせ状態』を使って計算しようというのが、量子コンピュータの本質です。重ね合わせ状態は、例えば0である確率が50%、1である確率が50%の状態、などです。0か1かはっきりしない状態を積極的に使うのです。こうすると、なにがうれしいのでしょうか? 0と1の重ね合わせ状態を扱えると、入力が0だった場合と1だった場合を“一発で両方同時に”計算できてしまうのです。つまり並列計算です。マルチコアやGPUなど、並列計算は近年当り前に行われていますが、量子コンピュータの並列計算は、それらをはるかに凌ぐ“並列力”があります。これが、量子コンピュータが高速に計算できる本質的な原理です。

量子コンピュータのイメージ
量子コンピュータのイメージ

重ね合わせ状態は、量子力学の現象でつくる

 では、重ね合わせ状態はどのように作るのでしょうか。量子力学が成り立つのは、原子や電子といった微小なものの挙動を扱う場合であることが知られています。例えば我々が普段扱う物のような微小ではないものの挙動も実は量子力学が成り立っているのですが、わざわざ難しい量子力学を使わずとも、高校で習ったニュートン力学(古典力学)で説明できてしまうので、普段の生活で量子力学を意識する必要はありません。

 さて、この微小なものの世界では、例えば、普通の蛍光灯の光をものすごく弱くすると、光が非常に微小な粒子(光子と呼ぶ)としての性質を持ちます。この光子の挙動を説明する時、光子が“存在する”状態と“存在しない”状態の“重ね合わせ状態”、つまり、50%の確率で存在して50%の確率で存在しない状態、を考えないと説明がつかない現象が起こります。こういった現象は、量子力学が成り立つ微小なものの世界では常識で、すでにさまざまな実験で検証されています。この、重ね合わせ状態を使うと、0と1の重ね合わせ状態、つまり0である確率が50%、1である確率が50%というような状態を作りだすことができます。そして、この0と1の重ね合わせ状態”は“観測”という特殊な操作をしない限り、0か1か誰にもわかりません。また、観測すると0か1のどちらかになり、デジタルな結果を出力します。

 さて、重ね合わせ状態は、光の粒“光子”以外にもいろいろな方法でできることが分かっています。電子のスピンだの、光子の偏光だの、電子のエネルギー順位だのなんだのかんだのといろいろ実験されています。最初にご紹介したGoogleやNASAの研究では、カナダのD-Wave Systemsという企業が開発した世界初の商用量子コンピュータを用いていますが、このコンピュータでは、超電導回路内に流れる電流が“右回り”の状態と“左回り”の状態を重ね合わされて、0と1の重ね合わせ状態を実現しています。ちなみに商用と言っても、値段はウン億円するので普通にはなかなか買えません。

D-Wave の量子コンピュータで用いられている超電導回路内の電流の向きの重ね合わせ状態
D-Wave の量子コンピュータで用いられている超電導回路内の電流の向きの重ね合わせ状態

次のページ
重ね合わせ状態を使うと計算が高速になる

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

ITエンジニアのための量子コンピュータ入門連載記事一覧

もっと読む

この記事の著者

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

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

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

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

この記事をシェア

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

イベント

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

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

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

メールバックナンバー