歴史を変える究極のコンピュータ「量子コンピュータ」《宇宙一わかりやすい科学の教科書》
記事:増田 明(READING LIFE公認ライター)
「このコンピュータは、従来のコンピュータに比べ”一億倍”高速だ」
2015年12月8日、NASA(アメリカ航空宇宙局)の研究所で開かれた記者会見で、とんでもない発表がなされました。
カナダのベンチャー企業「D-Wave Systems」が開発した、これまでに類を見ない、まったく新しいコンピュータ。NASAとグーグルがそのコンピュータを共同で購入し、性能を検証した結果が発表されたのです。
「一億倍だって!?」
NASAやグーグルの発表じゃなかったら、こんな結果は誰も信じなかったかもしれません。この耳を疑うような内容は、技術系の専門誌だけでなく、一般の新聞や雑誌でも広く報じられました。このコンピュータの名は「量子コンピュータ」。従来のコンピュータとはまったく違う仕組みで動く、新しいコンピュータです。
量子コンピュータの研究は、1990年頃から行われていましたが、実現するのはまだまだずっと先だと考えられていました。しかし突然、カナダの「D-Wave Systems」が量子コンピュータの開発に成功したと発表し、世界を驚かせました。初めは多くの人々が「どうせニセ物じゃないか?」と疑っていましたが、NASAやグーグルの利用実績もあり、今では本物だと認められています。
量子コンピュータは、なぜ従来のコンピュータの一億倍ものスピードを出せたのでしょうか? いったいどんな仕組みで動いているのでしょうか? そもそも、そんな高速で何を計算しているのでしょうか?
今日はそんな謎だらけの究極のコンピュータ「量子コンピュータ」について解説していきます。
そもそもコンピュータって何をやってるの?
量子コンピュータの話をする前に、そもそもコンピュータって何をやっているのか? という話をしておきましょう。
コンピュータは、現代人の生活に欠かせないものになっています。個人で使うパソコンや、社会全体のインフラシステムなど、ありとあらゆることにコンピュータが使われています。
コンピュータはいろいろなことができますが、とても単純にいってしまえば、やっていることは「計算」です。さらに単純にいうと、数の足し算、かけ算、記憶、をやっているだけです。それらを複雑に組み合わせることで、様々なことができます。
コンピュータが扱っている数は、我々に馴染みのある1、2、3、4……、といった数(10進数といいます)ではありません。コンピュータの内部では、全てを0と1で表す、2進数という数を使って計算しています。
図のように、10進数の数は、全て2進数に変換できます。コンピュータの内部では、全ての数が2進数に変換されて計算されています。
例えば、数字の9はコンピュータ内部では、上図のように、1001に変換されています。
この0か1のどちらかが入っているマス目1つを、「ビット」と呼びます。ビットは電子部品でできていて、スイッチのようにON/OFFを切り替えることができます。ビットがONなら1、OFFなら0を表す、ということにして、ON/OFFを操作することで1と0を切り替えて、計算をしています。
現在のコンピュータは、個人用のPCでも一秒間に十億回以上の計算ができます。大規模な研究用途のスーパーコンピュータでは、一秒間に一京回以上(一兆回の一万倍!)の計算ができるものもあります。
とんでもない計算スピードですね。これだけの計算スピードがあれば、この世にとけない計算問題なんてないように思えてきます。
従来型コンピュータの限界
しかし恐ろしいことに、この世には世界最高のスーパーコンピュータをもってしても、とけない計算問題が結構あるのです。
例えば、「巡回セールスマン問題」と呼ばれる有名な問題があります。
セールスマンが複数の客先を回るとき、どのルートで回ると合計距離が一番短くなるか、を計算で求める問題です。
A、B、C3つの客先があったとして、A→B→Cの順番で回ったほうが移動距離が短いのか、それともA→C→Bのほうが短いのか、B→C→Aなのか、それとも他のルートのほうが短いのか、ということを計算して求めるのです。
そんなの簡単じゃん? スーパーコンピュータでもとけないってどういうこと? と思うかもしれませんね。
確かに客先の数が少なければ簡単な問題です。ABC3つだと、回るルートは全部で6通りしかありません。6通りのルートの距離を計算して、一番短いものを求めればいいだけです。
しかし客先の数が増えてくると、ルートがどんどん増えていきます。客先が5つだと、ルートは120通りになります。人間が解くのは大変ですが、コンピュータならまだ余裕でとけます。しかし客先が15個になると、ルートは1兆3000億通りになります。これはさすがにきつそうですね。しかしスーパーコンピュータならまだ一秒以内に解けます。
客先が30個だとどうでしょうか? 組み合わせは270000000000000000000000000000000通りになります。0が31個です! これだと一秒間に一京回計算できるスーパーコンピュータでも、八億年以上かかります。つまり絶対に解けないということです。
巡回セールスマン問題以外にも、同じように組み合わせパターンが膨大になってしまう計算問題はいくつもあります。このような種類の問題は、計算時間がネックになって、従来のコンピュータではとても解けません。世界最高のスーパーコンピュータでさえも、スピードが遅すぎて話にならない! というわけです。
量子コンピュータはなぜ高速なのか
スーパーコンピュータでもとけない、そんな問題をとく可能性があるのが、量子コンピュータです。なぜ量子コンピュータならとけるのでしょうか? その秘密を説明していきましょう。
量子コンピュータは、「量子力学」という物理学の理論を元に作られています。
量子力学は原子や電子などの、とても小さなミクロの世界を扱う理論です。
ミクロな世界の物質は、私達の普段の感覚では理解できないような、とても奇妙な性質を持っています。
例えば、電子を図のような二つの部屋に別れた箱に入れて、フタを閉めます。フタを閉めると、外からは電子がどちらの部屋にあるかわかりません。わからないとはいっても、箱の中で電子は、どちらか一方の部屋にあるはず、普通はそう考えますよね。マクロの世界の物体だったらそうなります。
しかしミクロの世界の物体は違います。これからちょっと訳が分からないことを言いますが、落ち着いて聞いてくださいね。
フタが閉まっている間は、電子は右側の部屋にもあるし、同時に左側の部屋にもあります。一つの電子が両方の部屋に同時に存在するのです。
なんのこっちゃ? そんなはずないだろ! と思いますよね。そう思うのは無理もありません。しかしミクロの世界では、フタが閉まっている間は、一つの電子は分身の術を使ったように、どちらの部屋にも同時に存在するのです。そしてフタを開けて中を見た途端、分身の術がとけて、電子はどちらかの部屋に一つだけになります。
ちょっと信じられない性質ですが、数々の実験で、これ以外に説明のしようがない現象が起きているのです。
物理学者たちも最初は信じられなかったのですが、多くの実験で証明されてしまっているので、納得はいかないながらも、ミクロの世界ではそういう奇妙なことが起きるんだ、と認めています。
このとても奇妙な性質は、「状態の重ね合わせ」と呼ばれています。電子が「右の部屋にある状態」と、「左の部屋にある状態」が重なり合っている、ということです。ミクロの世界では、電子以外にも様々なもので「状態の重ね合わせ」現象が見られます。量子コンピュータは、この性質を利用しているのです。
さて、「状態の重ね合わせ」をどのように計算に利用しているのでしょうか?
先ほど、コンピュータは、0か1の状態を持つ「ビット」を使って計算をしている、と説明しました。従来型コンピュータは、電子部品でビットを作っていて、そのビットのON/OFFを切り替えて、0か1の状態を作っているのでした。当然のことですが、電子部品のビットは、0か1どちらか一方の状態しかとれません。
ところが、量子力学の法則に従うような、ミクロな原子や電子などの性質を使ってビットを作ると、そのビットで「状態の重ね合わせ」を起こすことができます。状態の重ね合わせが起こせると、そのビットで「0と1両方が重なりあった状態」を作ることができます。このようなビットを「量子ビット」と呼びます。
これにいったい何の意味があるでしょうか?
例えば、1×0、1×1、1×2、1×3、の4つの計算をするとします。従来のコンピュータでは、この計算をするには、4回計算が必要です。当然ですね。
ところが、「状態の重ね合わせ」を使って作られた量子ビットを使うと、1回の計算でこの4つの計算が同時にできてしまうのです。どういうことでしょうか?
従来コンピュータのビットは、0と1どちらかの状態しか表すことができませんが、量子ビットは、0と1を同時に表すことができます。量子ビットが1つなら、0と1の2つの状態が重なりあって同時に表現されます。ビットが2つなら、00、01、10、11(10進数の0、1、2、3に対応)の4つの状態が重なり合って、同時に表現されます。4つの状態が同時に表せるということは、このビット状態を使って計算すると、4つの計算が重なりあって、同時に実行される、ということになるのです。
量子ビットをさらに増やして3つにすると、000、001、010、011、100、101、110、111(10進数の0、1、2、3、4、5、6、7に対応)の8つの状態を同時に表せます。これなら8つの計算が同時にできることになります。
量子ビットが増えるにしたがって同時にできる計算の数はどんどん増えていきます。量子ビットが10個あれば1024個、量子ビットが20個あれば100万個の計算が同時にできます。
この原理でビットを増やしていけば、ものすごい量の計算が同時にできることになり、従来コンピュータに比べて、とんでもない計算速度を出すことができます。
これが量子コンピュータの驚異的な性能の秘密です。
量子コンピュータの弱点
量子コンピュータは、一度で大量の計算ができてしまう、まさに夢のようなコンピュータです。量子コンピュータが完成すれば、どんな計算も高速でできるようになって、もう従来型コンピュータは必要なくなってしまうように思えます。
ところがそうはならないのです。量子コンピュータは、どんな計算も高速でできるわけではなく、限られたタイプの計算にしか、能力を発揮できないのです。
<a& href=”http://tenro-in.com/wp-content/uploads/53752136_1415927895215889_7032422980516839424_n-1.jpg”></a&>
量子力学の「状態の重ね合わせ」は、フタがしまっている間しか保たれません。フタを開けて中を見てしまうと、状態の重ね合わせはとけ、分身の術がとけ、1つの状態になってしまいます。
つまり、先ほどの計算でいうと、「状態の重ね合わせ」で同時に大量の計算をしても、計算結果を確認しようとすると、1つの結果しか得られないのです。計算結果が4つあっても、それを見てしまうと、そのなかの1つの結果しか取り出せません。あとの3つの結果は消えてしまいます。
量子コンピュータは、たくさんの計算結果すべてが欲しい場合は、役に立ちません。そういうタイプの問題には向いていないのです。
一方で、たくさん計算して、たくさんの計算結果の中で、1つだけ必要な答えを得られればいいタイプの問題には、効果を発揮します。例えば、先程紹介した「巡回セールスマン問題」。この問題は、大量の計算が必要ですが、必要な結果は1つだけです。一番短いルートはどれか? という結果が1つ得られればよいのです。
膨大な計算結果の中から、1つだけ結果を取り出すと、残りの結果は消えてしまいます。「一番短いルート」という結果が一発で取り出せるとは限りません。別の結果が取り出されてしまうこともあります。欲しい結果が取り出せるかは、確率的にしかわかりません。サイコロをふって、欲しい目が出るかどうかわからないのと同じようなものです。
そのため、量子コンピュータが問題をとく場合は、何度も計算し、答えを取り出し、その答えが正しいかどうかを確認し、違っていたらまた計算して、答えを取り出し……という処理を、正しい答えが取り出せるまで繰り返します。
そんな手間がかかるんだったら、あまり従来型コンピュータと変わらなくない?
そう思うかもしれませんが、従来型コンピュータで全部計算をするよりは、ずっと早く欲しい答えが取り出せるように、工夫がされています。
例えば100個の計算結果があり、その中から1つだけ欲しい答えを取り出すとしましょう。その欲しい答えが取り出せる確率が1/100だったら、最悪99回ハズレで、100回目に欲しい答えを取り出すことになるかもしれません。そうすると100回計算し直さなければならず、従来型コンピュータと計算回数が変わりません。
量子コンピュータでは、量子力学の原理を利用した特殊な処理を加えて、100個の計算結果の中で、欲しい答えが取りだせる確率を高めてから、計算結果を取り出すようにしています。例えば、欲しい答えの確率を1/5まで高めてやり、結果を取り出せば、最悪5回の計算で済みます。100回計算する従来型コンピュータより、かなり効率が良くなります。
量子コンピュータの可能性
さて、量子コンピュータは、お話したように、どんな問題にも効果を発揮するものではありません。巡回セールスマン問題のような、一部の限られた問題にだけ効果を発揮します。
そのため、従来型コンピュータがすべて量子コンピュータに置き換わる、ということはありません。従来型コンピュータでとけない問題用に特化したコンピュータとして、発展していくことになるでしょう。
量子コンピュータが得意とする「巡回セールスマン問題」は、セールスマンのルートを求めるだけでなく、いろいろなことに応用が利きます。
例えば、最近急速に進歩している人工知能は、内部で大量に計算を行って、その中から最適な答えを一つだけ取り出す、ということをやっています。これは巡回セールスマン問題にそっくりで、量子コンピュータで計算できるのではないか、と期待されています。
実は人工知能の基本的な計算理論は、昔からあまり変わっていません。昔はコンピュータの性能が低くて、まともに人工知能が動かなかったのです。最近、人工知能が急激に進歩しているのは、コンピュータの計算速度が上がったからです。
そこに量子コンピュータが加わったら、最近の急激な進歩を遥かに超える、驚異的な人工知能の進化が起こるかもしれません。
もしかして、量子コンピュータによって、人類を超える能力を持った人工知能が現れ、社会は一変する可能性もあります。少し怖い気がしますね。そんなSF映画みたいな未来は、意外とすぐやって来るかもしれません。
それまでに人類は、人工知能に限らず、様々なテクノロジーをより安全に、人々が幸せになる方向へうまく使いこなす術を、身につけておく必要があるのかもしれません。
❏ライタープロフィール:増田 明
神奈川県横浜市出身。上智大学理工学部物理学科卒業。同大学院物理学専攻修士課程修了。同大学院電気電子工学専攻修士課程修了。
大手オフィス機器メーカでプリンタやプロジェクタの研究開発に従事。父は数学者、母は理科教師という理系一家に生まれる。子供の頃から科学好きで、絵本代わりに図鑑を読んで育つ。
学生時代の塾講師アルバイトや、大学院時代の学生指導の経験から、難しい話をわかりやすく説明するスキルを身につける。そのスキルと豊富な科学知識を活かし、難しい科学ネタを誰にでもわかりやすく紹介する記事を得意とする。
この記事は、天狼院書店の大人気講座・人生を変えるライティング教室「ライティング・ゼミ」を受講した方が書いたものです。ライティング・ゼミにご参加いただくと記事を投稿いただき、編集部のフィードバックが得られます。チェックをし、Web天狼院書店に掲載レベルを満たしている場合は、Web天狼院書店にアップされます。