量子コンピューターを理解するための 量子力学入門
第1回  量子コンピューターを巡る誤解
ーー量子コンピューターはなぜ「計算が速い」と言えるのか?

REPORTおすすめ
テキスト 松下 安武
科学ライター・編集者

 

今や次世代テクノロジーの代名詞とも言えるような存在になった「量子コンピューター」。従来のコンピューターが何万年、何億年かかっても解けないような問題を即座に解くことができるとも言われている。1985年にイギリスの物理学者デイヴィッド・ドイッチュ(1953〜)が量子コンピューターの基礎となる理論を発表して以来、長い間、世界中の大学などで基礎研究が続けられてきたが、近年はGoogleなどの民間企業も研究開発に参入し、世間からも大きな注目を浴びるようになってきている。

だが、量子コンピューターを巡っては、さまざまな誤解が流布しているようだ。量子コンピューターについて正しく理解するには、ミクロな世界の法則についての理論「量子力学」についての理解が不可欠である。そこで本連載では、量子コンピューターを理解するうえで必須となる項目に焦点を絞って、量子力学の考え方について解説していく。そうすることで、量子コンピューターの現状と未来をより深く理解することができるようになるだろう。

 

執筆者プロフィール

松下 安武(まつした やすたけ)

科学ライター・編集者。大学では応用物理学を専攻。20年以上にわたり、科学全般について取材してきた。特に興味のある分野は物理学、宇宙、生命の起源、意識など。

 

目次

量子コンピューターについての4つの誤解

 ー量子力学とは「モノ の実在性についての常識を覆した理論」

誤解①:量子コンピューターの計算速度は既存のスーパーコンピューターを超えた

 ーGoogleが大々的に発表した「量子超越の実現」の実際のところは?

誤解②:量子コンピューターは非常に多くの計算を同時に行うことができる

 ー多数の並列計算の結果のうち、実際に得られる結果は一つだけ

 ー意味のある計算結果を得るには、問題ごとに「量子アルゴリズム」を見つける必要がある

誤解③:量子コンピューターは実用化間近である/すでに一部で実用化している

 ー計算途中で生じるエラーをなくすには、膨大な数の量子ビットが必要

 ー量子コンピューターでは、数値を見ずに、数値の誤りを検出して訂正する必要がある

誤解④:量子コンピューターは近い将来、従来のコンピューターに取って代わる存在になる

 ー原理的には「汎用」になりうるが、まずは特定用途の「専用」になる可能性が高い

 

 

 

 

量子コンピューターについての4つの誤解

 

量子力学とは「モノ の実在性についての常識を覆した理論」

 

量子コンピューターに関する誤解には、たとえば、次のようなものがある。

 

誤解①:量子コンピューターの計算速度は既存のスーパーコンピューターを超えた

誤解②:量子コンピューターは非常に多くの計算を同時に行うことができる

誤解③:量子コンピューターは実用化が間近である/すでに一部で実用化している

誤解④:量子コンピューターは近い将来、従来のコンピューターに取って代わる存在に

 

量子コンピューターはその名の通り、量子力学の原理を巧みに利用したコンピューターである。量子力学とは、原子や電子、光などがミクロな世界で起こす現象を説明する、物理学の理論だ。量子力学(量子論)は、アルバート・アインシュタイン(1879〜1955)の相対性理論と双璧をなす、物理学の二大基礎理論の1つだと言える。相対性理論はアインシュタインの知名度もあって、「時間や空間は伸び縮みする」といった内容が世間に比較的広く知られているが、量子力学がどのような理論なのかはあまり広くは知られていないようだ。量子コンピューターを巡るさまざまな誤解は、量子力学の内容が広く理解されていないことに一因があると言えるだろう。

量子力学はある意味で「モノの実在性についての常識を覆した理論」だと言える。私たちの常識では、1つの物体は離れた複数の場所に同時には存在できない。これは当たり前の話だろう。私たちは、東京と大阪に同時に存在するなんてことは、できはしないのだ。しかし量子力学によると、電子のようなミクロな粒子は、たった一つの粒子でも複数の離れた場所に同時に存在しうるとされる。まるで忍者の分身の術のようだ。

存在場所だけではない。たとえば、電子は、右回りに自転する状態と、左回りに自転する状態を同時に取ることができる(正確には、ここでいう自転とは、物理学における「スピン」という量のことを意味している)。このように量子力学によると、ミクロな粒子は複数の状態を同時に取ることができ、これを「重ね合わせ状態」と呼ぶ。重ね合わせ状態は、量子コンピューターの要と言えるものだ。重ね合わせ状態とは何なのかについては、本連載の中で詳しく解説していく予定だ。

なお、近年は「量子アニーリングマシン」という、特殊な問題(組み合わせ最適化問題)を解くことに特化した専用装置も「アニーリング方式の量子コンピューター」などと呼ばれることがある。本連載で量子コンピューターといったら、アニーリング方式ではなく、従来からある、さまざまな計算を行うことができる「ゲート方式の量子コンピューター」のことなので、注意してほしい。

 

誤解①:量子コンピューターの計算速度は既存のスーパーコンピューターを超えた

 

Googleが大々的に発表した「量子超越の実現」の実際のところは?

 

それではここからは、上に挙げた4つの誤解について、1つひとつ検証していこう。

①の誤解の背景には、2019年にGoogleが「量子コンピューターが、世界最速のスーパーコンピューターでも1万年はかかる計算をわずか200秒で完了した(量子超越を実現した)」と発表し、大きな話題となったことがある(画像1)。論文が発表されたのは、科学の世界で最も権威のある雑誌の一つ『Nature』だった。このニュースが大々的に報じられたため、①のような誤解をしている人が今でも多いのだろう。

 

 

画像1:量子超越を実現したGoogleの量子コンピューター
左は、装置に接続された量子プロセッサー「Sycamore(シカモア)」のCG。右は、Sycamoreの実際の写真である。極低温で電気抵抗がゼロになる「超伝導体」を使った量子ビットが使われている。計算を行うには、量子プロセッサーをほぼ絶対零度(温度の下限、マイナス273.15℃のこと)にまで冷却する必要がある。
(画像はGoogle AI Blogより引用)
https://ai.googleblog.com/2019/10/quantum-supremacy-using-programmable.html

 

 

量子超越(Quantum Supremacy)とは簡単に言うと、「従来のコンピューター(古典コンピューター)では現実的な時間内に終えることができない計算を、短い時間内で行うことができた」という意味である。Googleの発表は量子コンピューターの研究開発において、大きなマイルストーンを達成したと言える。しかしGoogleが示したのはあくまで、量子コンピューターが得意で、非常に特殊な、特定の計算において、スーパーコンピューターの性能を超えた、ということだ。この計算は産業に役立つようなものではなく、あくまで量子超越の実現を示すために設定されたものなのだ。

そもそもコンピュータの計算速度は「計算回数×1回の計算にかかる時間」だと言える。量子コンピューターは問題によっては「計算回数」を劇的に減らせる可能性がある。そのため、超高速な計算ができると期待されているわけだ。一方、1回の計算にかかる時間(後述する「量子ビット」を操作するのにかかる時間)は、従来のコンピューターと比較して速いわけではない。また、演算回数をどこまで減らせるかは、計算する問題によって変わってくる。以上のことから、Googleの成果をもとに、「量子コンピューターの計算速度は既存のスーパーコンピューターを超えた」と考えるのは、時期尚早だと言えるだろう。

 

 

誤解②:量子コンピューターは非常に多くの計算を同時に行うことができる

 

多数の並列計算の結果のうち、実際に得られる結果は一つだけ

 

そもそも量子コンピューターが従来のコンピューターと比べて、計算回数を劇的に減らせる可能性があるのは、量子力学に基づいた「重ね合わせ状態」を巧みに利用するからだ。

従来のコンピューターは、0または1の値を取る「ビット」を情報の最小単位としている。電流を流す状態と流さない状態を1と0で表すといった具合だ。一方で、量子コンピューターが扱う情報の最小単位は「量子ビット(qubit)」と呼ばれる。量子ビットは、重ね合わせ状態を実現することで、0と1を同時に表現することができる(図1)。

 

 

図1:ビットと量子ビットの違い 

 

 

 

たとえば、従来のコンピューターで2ビットを使い、00、01、10、11(十進法の数で言うと0、1、2、3に対応)という4つの数値を入力して計算を行う場合、それぞれを別々に入力する必要があるので4回の計算が必要になる。

一方、量子コンピューターの場合、2つの量子ビットを使ってこれら4つの数値を同時に表現できる。つまり入力が1回で済んでしまうのだ。3個の量子ビットがあれば、従来のコンピューターの3ビットで8回の入力(2×2×2通りの数値の入力)が必要なところを1回の入力で済み、50個の量子ビットがあれば、従来のコンピューターで約1000兆回(2の50乗)の入力が必要なところを1回の入力で済む。n個の量子ビットがあれば、従来のコンピューターで2n回の入力が必要なところを1回の入力で済むわけだ。つまり、量子コンピューターは、原理的には量子ビットの個数が増えるにつれて、その計算性能が指数関数的に向上していくのである。

以上のことから、量子コンピューターは、非常に多くの計算を同時に行うことができる、と説明されることが多いのだが、これは半分は合っているが、大事なところを見落としている。たとえば、2量子ビットの計算で4つの計算を同時に行う場合、計算結果を得るためには、計算後の量子ビットを「観測」する必要がある。それぞれの量子ビットが0なのか1なのかを、観測によって知る必要があるわけだ。

しかし量子ビットは観測すると、重ね合わせ状態が崩れてしまうという性質がある。観測した瞬間、量子ビットは0か1かのどちらかの状態に確定してしまうのだ(図2)。

 

 

図2:観測前の量子ビットと、観測後の量子ビット

 

 

例えば、2量子ビットの場合、00、01、10、11の入力に対応する4つの計算結果がすべて得られるわけではない。4つの計算結果の重ね合わせ状態は観測によって崩れ、1つの計算結果だけしか得られないのだ。しかもどの計算結果が得られるかはランダム(確率的に)に決まる。量子コンピューターも従来のコンピューターと同じく、1回の入力で得られる計算結果は1つだけなのだ。

なお、重ね合わせ状態の観測については、連載の別の回で掘り下げて解説する予定である。

 

意味のある計算結果を得るには、問題ごとに「量子アルゴリズム」を見つける必要がある

 

量子コンピューターで意味のある計算を行うには、問題ごとに、欲しい計算結果が観測される確率が圧倒的に高くなるような計算の工夫が必要となる(干渉とよばれる現象を利用する)。このような問題ごとに設計される、量子力学に基づいた特殊な計算の手順は「量子アルゴリズム」と呼ばれている。

古くから知られている有名な量子アルゴリズムには、高速に素因数分解を行う「ショアのアルゴリズム」がある。たとえば、24の素因数分解を行うことを考えよう。単純なやり方は、24を手当たり次第の素数で割っていき、余りが出るかを調べていく、というものだ。実際にやってみると、24=2×2×2×3=23×3になる。この程度の小さい数の素因数分解なら、従来のコンピューターでも可能だが、整数の桁が大きくなってくると、素因数分解をするための計算回数は爆発的に増加してしまい、手に負えなくなってしまう。一方、ショアのアルゴリズムでは、量子ビットの重ね合わせ状態を利用して、素因数分解の一部の計算を行う。このとき、正しい答えの観測確率だけが高くなるように計算手順が工夫されているのだ。

実はこの「素因数分解の難しさ」は、インターネット通信の「RSA暗号」の安全性の根拠となっている。盗聴者が暗号化された情報を元に戻す(復号する)には、巨大な数の素因数分解を行う必要がある。従来のコンピューターでは巨大な数を素因数分解することが(現実的な時間内には)できないという事実によって、RSA暗号の安全性は保たれているのだ。

しかし、量子コンピューターが実用化すれば、ショアのアルゴリズムを使ってRSA暗号を破ることが可能になり、通信の安全性が確保できなくなってしまうとされる。ただし現在のRSA暗号を破るには、数百万〜数億個の量子ビットが必要と言われている。現状で実現しているのは数十〜数百量子ビット程度なので、近い将来にRSA暗号が破られる心配をする必要は、今のところなさそうだ。

他に知られている量子アルゴリズムには、たくさんのデータの中から望みのデータを探し出す「グローバーのアルゴリズム」などがある。現在知られている量子アルゴリズムは60ほどある。逆にいえば、実用化レベルの量子コンピューターが完成したとしても、現時点ではこれら以外の計算の用途には使えないことになる。

量子ビットが具体的にどのようなものなのかは、連載の次回以降で詳しく解説する予定だ。

 

 

誤解③:量子コンピューターは実用化間近である/すでに一部で実用化している

 

計算途中で生じるエラーをなくすには、膨大な数の量子ビットが必要

 

先に述べた、Googleが量子超越を実現した量子コンピューターは、53個の量子ビットで構成されていた。量子ビットが53個あれば、原理的には2の53乗個、つまり約1京(1兆の1万倍)個の数値を同時に入力できることになる。そう聞くと、すでに凄まじい計算速度が実現できそうで、実用化間近な気がするかもしれないが、実はそうではない。量子コンピューターを実用化するには、用途にもよるが100万〜1億個程度の量子ビットが必要だと言われている。現在実現している、もしくは数年以内に実現が計画されているのは、数十〜数百量子ビット程度の量子コンピューターなので、産業に役立つような計算はまだまだ困難なのだ。

なぜ実用化には、ここまで多くの量子ビットが必要なのだろうか? その大きな理由の1つは、計算のエラーを訂正する仕組みを量子コンピューターに組み込まない限り、意味のある計算結果を得ることができないからである。

コンピューターは機械的に計算を行うので、「人間のようなエラーは起こさない」というイメージをもっている人も多いかもしれない。しかし、たとえば、回路中の電流のある・なしで1と0を表す場合、回路には多かれ少なかれノイズが紛れ込む。その結果、コンピューターは0(電流なし)を誤って1(電流あり)と判断してしまうこともあるのだ。

そういったエラーを訂正する最も簡単なやり方は、0を000、1を111というように、複数のビットを使って表しておくという方法だ。たとえば、0を000と表しておけば、エラーが生じて真ん中のビットが1に変わり、010になったとしても、多数決で000が本来の値だと判断できる。3つのうち2つ以上に同時にエラーが起きることもあるので、完全にエラーをゼロにはできないが、同時に2つ以上のエラーが生じる確率は非常に低いので、エラーの発生確率を大幅に抑えることができるわけだ。このような仕組みを「誤り訂正」と呼ぶ。

量子コンピューターでも同じような仕組みが必要で、「量子誤り訂正」と呼ばれている。量子コンピューターの実用化にあたっては、1つの量子ビットに対して100〜1000個程度の量子ビットが必要だといわれている。現状の量子コンピューターは100量子ビット程度なので、実用化はまだまだ遠いと言わざるを得ないだろう。

 

 

量子コンピューターでは、数値を見ずに、数値の誤りを検出して訂正する必要がある

 

しかも量子誤り訂正を行うこと自体、従来のコンピューターの誤り訂正よりもはるかに難しい。なぜなら、エラーを訂正しようと量子ビットの値を「観測」してしまうと、重ね合わせ状態が崩れてしまい、そこで”並列計算”がストップしてしまうからだ。そのため量子誤り訂正では、量子ビットの値を直接観測せずに(見ることなく)、エラーを検出し、それを訂正するという離れ業を実現しなくてはならない。一見、そんなこと不可能に思えてしまうかもしれないが、量子力学の不思議な性質を巧みに操ることで、値を見ずに誤りを訂正すること自体は実現可能だ。問題はそれを実際の装置の中で高精度に実現することで、まだまだ研究が必要な段階だといえる。

また、IBMは小規模な量子コンピューターをクラウド上で利用できるサービスを2017年から開始しており、他にも同様なサービスをMicrosoft、Google、Amazonなどが行っている。これらをもって「量子コンピューターは一部で実用化している」とみなしている人もいるかもしれないが、これらを「実用化」と呼ぶのは、少し無理があるだろう。これらの小規模な量子コンピューターでは、量子誤り訂正は実現できておらず、既存のコンピュターを超える速度で産業に役に立つような計算ができているわけではない。現状では、量子コンピューターを広く利用してもらうことで、「将来、量子コンピューターで何ができるのか」「量子誤り訂正ができない小規模な量子コンピューター(NISQ:Noisy Intermediate-Scale Quantum Computer)で何か役に立つ計算はできないか」を探っている段階だといえるだろう。

 

 

誤解④:量子コンピューターは近い将来、従来のコンピューターに取って代わる存在になる

 

原理的には「汎用」になりうるが、まずは特定用途の「専用」になる可能性が高い

 

量子コンピューターは原理的には、従来のコンピューターの”上位互換”であり、従来のコンピューターができることは実行可能なはずだとされている。しかし、従来のコンピューターのように、どんな用途にも使える汎用型のコンピューターになるかは現段階では不透明だ。その理由の1つは、上述したように問題ごとに専用の量子アルゴリズムが必要だからだ。量子コンピューターは近い将来に従来のコンピューターに取って代わる存在になるというよりも、特定の用途に絞った専用コンピューターとして、従来のコンピューターと共存の道を歩んでいくことになるだろう。

 

 

以上、連載の第1回では、量子コンピューターを巡る誤解について解説してきたが、「いまひとつピンとこない」という読者も多いかもしれない。量子コンピューターをより深く知るには、量子力学、とくに「重ね合わせ状態」についての理解が欠かせない。次回は「量子力学とは、そもそもどのような理論なのか」を解説していきながら、量子コンピューターについてより深く迫っていくことにしよう。

(第2回につづく)