ビジネス+IT

ビジネス課題別で探す

ITジャンル別で探す

関連ジャンル

サーバ 新製品開発

会員限定

2018年01月22日

量子コンピューターとは何か? 実用化進む次世代コンピューターの基礎と仕組みを解説

「量子コンピューター」が注目を集める一方で、登場するたびに「本当に量子コンピューターと言えるかどうか」が取り沙汰されてきた。過去にはD-Wave社の「D-Wave One」、2017年11月に発表された国立情報学研究所とNTTチームによる量子コンピューター試作機「QNN」もそうだ。果たして量子コンピューターとはいったい何なのか、量子コンピューターに何が期待されているのか。実用化が進む次世代コンピューターの仕組みを基礎から丁寧に解説する。

執筆:フリーライター/エディター 大内孝子

photo
(クリックで拡大)

従来のコンピューター(上)と量子コンピューター(下)の計算の仕組みの違い(内容は後ほど詳解)


量子コンピューターが注目される理由

 これまでコンピューターの性能を引き上げてきたのは半導体技術の進歩だ。有名なムーアの法則のもと、開発メーカーはチップ上の論理ゲートの数を増やし、高速化、高機能化、大容量化、低価格化などを実現してきた。半導体の回路を小型化し、たとえばk分の1に細かくすると動作速度がk倍あがり、回路の集積度はkの2乗になり、消費電力がk分の1に下がるという具合に進んできた。

 従来のコンピューターの動作原理は、電圧の高低で「0」と「1」の2ビットを表し、ビットで論理演算を行うという論理ゲートからなる。どんなプログラムも最終的にはビットの演算処理で実行される。

 そして、その仕組みが変わらない以上、「コンピューターをより高性能にする」というのは、上述したように(論理ゲートの数を増やし回路を小型化する、などにより)チップ上の回路の集積度を上げて計算処理スピードを得る、ということになる。

 ところが、このムーアの法則の限界説はかなり前から指摘されているし、現在のコンピューターで扱うことが非常に難しい天候予測やタンパク質の構造解析など、複雑な組み合わせ最適化問題も存在している。こうした、いまだ解析しきれていない事象を扱うため、スーパーコンピューターを含め、次世代コンピューティングの研究開発が行われている。

 量子コンピューターもその1つ。特に今、注目されている理由に、実用化が近づいてきたこと、さらに人や社会とICTのかかわり方に起きている変化があげられるだろう。

 その変化はムーアの描いた曲線ではカバーできない速さで進んでおり、将来的に、IoTやクラウド、AIが基本インフラとなれば、コンピューターが扱うデータの量はさらに莫大なものになると考えられる。

 そうした真のビッグデータ時代により速く大量の計算が可能なシステムが求められるのは自明のことで、そこで、特に注目されているのが量子コンピューターということなのだ。実現すれば、従来のコンピューターとは別次元の革新的な進化を起こすと期待が集まっている。

 量子コンピューターとは、従来のコンピューターとは異なる動作原理で「計算するプロセス」を実現しようというもの。目指すのは、論理ゲートによる回路ではなく、「重ね合わせ」や「量子もつれ(エンタングルメント)」といった量子力学的な振る舞いを使って計算を行うシステムだ。

 以降では、まず量子力学、量子コンピューターという概念が登場するまでの流れを見ていこう。

量子力学分野から見る量子コンピューター誕生の背景

 そもそも「量子」は、温度だけで決まる黒体放射を説明するために、プランクが1900年に提唱した概念だ。黒体放射とは19世紀後半、多くの科学者が取り組んでいた問題の1つ。当時、製鉄業において溶鉱炉の内部の温度を正確に知る方法が求められていたことから、温度と色(スペクトラム)の関係を解明しようとしたのだ。

 しかし、原子から放出される光のエネルギーは1、2、3…というように整数倍で離散的な数値を示す。ニュートン力学をベースにした自然界の法則では、これはあり得ないことだった。

 プランクはそれを説明するための仮説として量子仮説を発表。振動数νの光を放出・吸収する場合、そのエネルギーは連続的でなく、hνを単位とする不連続な量の放出・吸収だけが許されるとし、hを作用という次元の量の最小単位とした(hをプランク定数、あるいは作用量子と呼ぶ)。

 このように量子とは何らかの物理量のかたまりのことで、たとえば光のエネルギーのかたまりを「光量子」と呼ぶ。ただ、それではとらえにくいので、逆説的になるが、量子力学で扱うことのできる物質(原子、分子、電子など)の総称が量子だと考ればよいだろう。

 はじまりからわかるように、ミクロのスケールでの物質の振る舞いには、私たちが知覚できる世界の認識とはまるで違う、2つの特徴がある。

・量子は波の性質と粒子の性質を持つ(波と粒子の二面性)
・1つのものが同時に複数の場所に存在する(状態の共存)

 もちろん、私たちが目や耳で知覚できるマクロな物体も、その運動や性質などについて量子レベルで説明することができる。

 マクロな物体の運動は、いわゆるニュートン力学を基本とする古典的な物理法則を使った計算でも、量子論を用いた計算でも同じ結果になるという。

 ただ、原子以下の大きさ、電子や分子のサイズ(約1000万分の1mm)となると、量子力学で考えないと説明できない現象が現れるということなのだ。

photo
(クリックで拡大)

ミクロのスケールからマクロスケールへ


 ざっと量子力学の確立までの流れをさらうと、量子という概念をプランクが表したのが1900年。その時代からミクロの物質の探求が本格的に始まり、1920年代後半以降、ハイゼンベルグ方程式(波動方程式)、不確定性理論、ディラック方程式などさまざまな理論が発表された。

 1930年ディラックが『量子力学』を、1932年にフォン・ノイマンが『量子力学の数学的基礎』を著す。そして、1932年にハイゼンベルクが、1933年にシュレーディンガーおよびディラックが、量子力学の理論を打ち立てた功績により、ノーベル物理学賞を受賞。ここに、理論として量子力学という分野が確立したと言える。

 量子力学は、よく知られているボーア・アインシュタイン論争や、ある種の思考実験「シュレーディンガーの猫」のように、どう解釈するのかといった解釈問題がいまだに存在する分野でもある。

 しかしながら、技術の進歩も相まって、1960年代以降、量子力学は実験ベースで発展していくことになる。量子システムを計算に使えるのではないか、という可能性が言及されたのはこの時期である。

 1959年にリチャード・P・ファインマンが、量子力学的な「振る舞い」を使って計算を行うことができるのではないかとの考えを米国物理学会の年次総会における講演(注1)で示した。ファインマンは、原子や分子といったスケールになると、ニュートン力学上の物理法則とは異なるルールの動きになる。今後は、そうした"振る舞い"を新たなシステムの設計に利用できるようになるだろう、とした。

注1:There's Plenty of Room at the Bottom[December 29th 1959 at the annual meeting of the American Physical Society at the California Institute of Technology](http://calteches.library.caltech.edu/47/2/1960Bottom.pdf)


 ただ、実際に量子コンピューターのアイデアが提示されるようになるのは、それから20年が経って1980年代に入ってからだ。完全に解明されていない量子の振る舞い、性質のとらえにくさ、マニピュレートのしにくさなどが理由で、量子コンピューターがいまだに実用化されない理由も根本的にはそこにある。

量子コンピューターの始まり

 ファインマンの1959年の講演は、動作原理に量子力学的な振る舞いを用いた計算システムが「可能なのではないか」と示唆したに過ぎない。その後、具体的に「何が」可能なのかを示したのがポール・ベニオフだ。

 ベニオフは1980年に「チューリングマシンでできることは量子システムでも可能だ」との見方を一連の論文の中で示した。

 ファインマンが示していたように、量子力学のアプローチを使えば高速に大量な計算ができるだろうとは推測されていた。

 たとえば「状態の共存」という特徴を使って、「0の状態」「1の状態」「0と1が共存する状態」を使って並行で計算処理を行うことができれば、単純に考えても、2ビット(「0の状態」「1の状態」)の計算よりも速くなる。

 しかし、問題はこうした計算機(コンピューター)の中で起こるエネルギーの変化だ。

 上述のように、コンピューターは物理的な回路を用いて、電圧やスピンなどの物理現象でビットを表し、計算する。このときエネルギーの散逸が起こっている。これは感覚的にわかるだろう。具体的にいえば、コンピューター、たとえばスマートフォンで重いアプリを駆動し続ければデバイスそのものが熱くなってくる現象がそれだ。実際、パソコンを自作したことがある人であればわかると思うが、CPUにはファンが必須となる。

 量子は熱に弱い。弱いというと語弊があるが、エネルギー量があがると1つの量子の系(系≒対象とする領域、同じ状態だと括れる量子のかたまり)の情報が維持できなくなってしまう。

 そうなると計算というプロセスには使えない。ベニオフは、可逆コンピューターの考え方を用いることで量子コンピューターが実現できるというアイデアを示した。

 可逆コンピューターは、「入力された値を計算し、解を出すと入力値を消す」という通常のコンピューターとは異なり、「答えまでのステップを記録し、解を出すと後戻りし、初期状態に帰る」という仕組みをとる。

 これは、「エネルギーがいつ消費されるかというと計算に用いた情報を消去するときである。つまり、可逆的なシステムであればエネルギーの増減は起こらない」とするランダウアーの原理をもとに、1973年にチャールズ・ベネットがロルフ・ランダウアーとともに実現したものだ。

 一方、ファインマンは、1982年、古典的なコンピューターでは難しいとされる2つの問題「整数分解法」と「離散対数解析法」に対し、効率的に解くアルゴリズムが仮想量子コンピューター上で得られるとした。これは、離散対数の分野における量子コンピューターの有効性を示したものといえる。

 そして1985年にディヴィッド・ドイッチェがチューリングマシン(計算機の論理モデル)を拡張する量子チューリングマシンを定義。1989年には論理ゲートおよび論理回路の量子版として、それぞれ「量子ゲート」と「量子回路」を提示した。基本的には、このドイッチェの量子チューリングマシンが、量子コンピューターの始まりとされる。

 しかし、この段階では、量子コンピューターに果たして何ができるのか、具体的な応用となると現実的にまだ見えてきていない。量子コンピューターが大きな注目を集めるのは、そこからおよそ10年後のこと。

 1994年、ショアが発表した量子アルゴリズムが量子コンピューターの可能性を広く知らしめることになる。ショアの量子アルゴリズムは、n桁の整数の因数分解をO(n^3)以下の手順で効率的に解くというもの。

 離散フーリエ変換を量子コンピューターで行う量子フーリエ変換を応用したもので、因数分解を高速に解くことができる。プロセスは確率的であり、正しい答えが得られるまで何度も試行する。

 量子計算を行うことで、大量の桁数でも因数分解が高速に行えることを数学的に証明してしまったわけで、その何が大きな衝撃だったのかというと、因数分解の困難さから成立しているRAS暗号が破られる可能性があるということを示してしまったのだ。

 因数分解は組み合わせ(桁数)が増えれば増えるほど、計算量は莫大になっていく。200桁にもなると現行のコンピューターでは天文学的な時間がかかる。

 そのため、「破ることができないわけではないが、(破ることは)現実的ではない」ということがRAS暗号の安全性の担保になっている。RAS暗号は、現在さまざまな情報システムで用いられており、「量子コンピューターが実用化されたら、RAS暗号が一瞬で破られてしまう」というのは脅威につながり、大きな注目を集めたのだ。

 以降、量子コンピューターの研究は加速していく。

 物理系の科学者だけではなく、セキュリティ分野、IT分野など、さまざまな分野の研究者が量子コンピューターのアルゴリズム開発に着手、現在すでに、さまざまな量子アルゴリズムがある。

 量子アルゴリズムとして有名なものに、1996年に発表された、グローバーによるデータベース検索のための量子アルゴリズムがある。これは、n個のデータのうちのあるデータをルートnのステップで特定できる(現状のコンピューターでは平均N/2回の探索であるのに対し、O(√N)回で探すことができる)というもの。検索アルゴリズムはコンピューター技術の中でも重要なポジションにあり、現在、グローバーの量子アルゴリズムはさまざまな研究に応用されている。

量子コンピューターの原理となる量子の「振る舞い」

 ここで、量子コンピューターの原理となる量子の「振る舞い」について見ておこう。ただ、あくまで量子コンピューターに使われる(とされている)特徴ということで、量子論としての解説ではないので、その部分はご了承いただきたい。

 まず量子の持つ特徴として「状態の共存」があることは先に述べた。1つのものが同時に複数の場所に存在する、複数の状態を持ちうる。この「重ね合わせ状態(共存した状態)」を使ってビット(量子ビット)を表現するのだ。

 たとえば、粒子の持つ物理量の1つである「スピン(≒自転)」を使って、ある電子の右回りのスピンを「0」、左回りのスピンを「1」としたとき、重ね合わせ状態にある電子はこの「0」と「1」を同時に持つことができる。こうした電子を2つ用いて、「00」「01」「11」「10」を表現できるということになる。

photo
(クリックで拡大)

量子の重ね合わせ状態によるビットの表現


 もう1つ重要なのが「量子もつれ(エンタングルメント、量子からみ)」と呼ばれる、量子の特徴だ。量子もつれの状態にある2つの電子があるとき、一方の電子において右回りのスピンが“観測”された場合にもう一方は左回りのスピンが確定する。つまり、1つが右(左)回りであるとき、もう1つは左(右)回りである、という状態が量子もつれだ。量子もつれの状態にある2つの電子は、このようにスピンの値を打ち消し合う。

 これが量子コンピューターになぜ必要なのかというと、高速に並列計算を行うためだ。絡み合っていない量子ビットのビット列は個々に動いてしまう。複数の量子ビットが絡み合っていれば、1つの量子ビットに対する作用を、瞬時に、全体へ及ぼすことができる。

photo
(クリックで拡大)

量子の絡み合いにより量子ビット列全体を作用の対象にできる


 ちなみに、この量子もつれの特性を用いたものに「量子テレポーテーション」がある。アリスとボブの2者の間で量子もつれにある光子の対を、アリスが光子(a)、ボブが光子(b)というように持つ。そして、この光子対には重ね合わせ状態を持つ量子ビット(c)がある。このときアリスが(a)と(c)を一緒に観測し、その”結果”をボブに伝えると、ボブはその情報をもとに(b)を操作することで(c)が得られる、というものだ。

 これは、暗号鍵の交換方法として非常に魅力的だ。実際、量子テレポーテーションは1995年頃から実験が行われており、2012年には100kmの距離で成功している。1万kmの距離で実験するために人工衛星も打ち上げられている。

photo

量子テレポーテーションの実験の模式図

(出典:『佐藤文隆先生の量子論』ブルーバックス)


 このように、量子状態の素子があれば、複数の値を同時に入力し並列的に計算できるということになる。ただ、量子状態は維持することが非常に難しい。時間が経てば崩れてしまうし、外部からの刺激にも非常に影響される。この重ね合わせ状態が崩れることを「デコヒーレンス」というが、ほんのわずかでもエネルギーが加わることで、ごく小さな量子はすぐにその状態を遷移してしまう。

 また、膨大な桁の計算を高速に可能とするためには、それなりに大量の量子ビットが必要になる。

 つまり、ハードウェア的に実現する困難さがそのまま量子コンピューターの実現の難しさになっているのだ。絶対零度を保つ巨大な冷蔵庫を作ってその中に量子状態の電子を大量に配置し、回路化する。そうできれば話は早いかもしれないが、果たして、それは可能なことなのだろうか? 実際には、まだ、さまざまな実装方法が提案されているという段階だ。

【次ページ】量子コンピューターの実装方法とは?

サーバ ジャンルのセミナー

一覧へ

サーバ ジャンルのトピックス

一覧へ

サーバ ジャンルのIT導入支援情報

一覧へ

PR

注目のIT導入支援情報

一覧へ

注目のイベント・セミナー情報

一覧へ

イベント・セミナー情報の登録(無料)

記事アクセスランキング

イベント・セミナー情報アクセスランキング