このページの本文へ

科学・生物で気になることをお届け! 「数式なんて知らんし!!」 ― 第1回

量子コンピューターって何だよ

2019年01月09日 12時00分更新

文● イラスト●せれろんやまだ(@Celeron_ymd

  • この記事をはてなブックマークに追加
  • 本文印刷

劇的に速くなるらしいそのワケ

 昨今、本やネットでちらちらとそのワードを見かける、『量子コンピューター』。この単語からは、とりあえずコンピューターなのはわかりますが、実際のところいったい何なのか?

 私たちが今使っているコンピューターは、0と1の信号を使って計算をしています。が、この量子コンピューターは、『量子』を使って計算をします。この量子をつかうと、これまでパソコンが行っていた、「0」か「1」の状態を使った計算ではなく、「0でもあり1でもある」状態を使って計算ができるので、超絶処理能力の高いコンピューターが実現できるのだそうです!

 「おぉぉぉそれならオーバークロックとかGPUウン枚挿しとかしなくてもよくなるんじゃね?」と思いますよね?

 すいません、まだ実用段階じゃないんです量子コンピューター。ちゃんと使えるようになるには、あと20年先になるとか……。

 そんなすごくてまだまだ開発中の『量子コンピューター』を第1回は取り上げましょう。

 早速『量子コンピューター』をネットで検索してみます。どれどれ……。

『量子コンピューターとは、量子力学的な重ね合わせを用いて並列性を実現されるというコンピューター。』(Wikipedia)

 はい、たった50文字程度の文字の中に「なるほどわからん」が3つも含まれておりますね。『量子力学』『重ね合わせ』『並列性』。このさきWikiさんを読み進めると、この3つで冒頭に述べた『とても速いコンピューター』ができるようです。どうやら、研究所とか国家規模の行政が使っているスパコンとも比べ物にならないくらい速いみたいです。想像もつきませんねざっくりすぎて…。

 では、このなるほどわからんの3つを解いていきたいと思います。まずは『量子力学』からいってみましょう。

 量子コンピューターを語るうえで、欠かせないのがこの『量子』というワードです。

せれろんやまだ

 大手PC関連デバイス販売代理店で敏腕を誇った“姐御”。科学好きが高じてついに連載開始。夢は家事を放棄すること。

粒だけど波? 謎の量子の状態

 みなさんも原子とか分子とか、想像力真っ盛りな中学生のころに習ったと思いますが、量子とは、このような肉眼では見えないミクロな物質たちのことです。この量子の物理的なふるまい(動いたり他に影響を与えたり)を研究する学問が『量子力学』なのですが、この量子、ちょっと特殊なヤツでして、今の私たちから見たら、2つ非常識な点を持っているのです。

 まず1つめは、「粒」であり「波」でもあるということ。

 「は?どういうこと?」ですよね? 粒、つまり粒子のことですが、1つの小さな粒子であり、広がって進む「波動」でもあるのです。たいていの人は、「おいおい、1つしかないものが波のようになって広がるとかありえないやん!」と思いますよね?

 それは私たちが目に見える物理法則に従って生きている大きな世界での結果であって、量子の世界では、このような常識は古典扱いされ、粒子と波動の性質を併せ持ったモノが常識的に存在するのです。これを『粒子と波動の二重性』っていいます。

 そして、2つめが、量子コンピューターで重要になってくる『重ね合わせ』です。ひらったくいうと、1つのものが、同時に色々な状態を取ることができるのです。これが「0でもあり1でもある状態」です。「……もうおっしゃってることが全く理解できません……」状態ですよね? 

 古典的な物質である私たちですから、理解できている私と理解できていない私の2通りは同時に存在していません。が、量子の世界では、同時に存在できちゃうんです。

 なぜ2つの状態が同時に存在できるのか。量子の代表選手である「電子」を例にとってみましょう。

量子を制御できない「エラー」が問題

 この電子というものは、先ほど説明したとおり、量子なので、粒であり、波です。で、この矛盾した二重性をなんとわかるようにする解釈があるのですそれが「コペンハーゲン解釈」という、「いやぁ、電子って、その存在は広がってるんですけど、私たちが観察した瞬間、その観察した1点にまとまっちゃうんですよね」解釈です。つまり、観察する前は、確率的に色々なところに1個の電子が存在していて、観察した瞬間、そこの1点にまとまってしまうという確率に頼る解釈です。アインシュタインは当時激おこぷんぷん丸だったようですが、結果として、この解釈は「波動関数」という数式でまとめられ、今の量子力学を担っています。物理学者、パネェ。

 さて、前置きがすごく長くなってしまってしまいましたが、この重ね合わせの状態( 0と1が重なった状態) を使って、計算して結果を出そう! というのが量子コンピューターなのです。

 電子が観察されたとき、1点にまとまる確率的な状態を情報として持ってくれるものが、『量子ビット』と呼ばれる量子コンピューターにおける最小の情報単位です。

 現在のコンピューターは0か1かの情報をビットに持ってそれを計算しますが、量子コンピューターはその両方をもつことで、しかも確率的な要素も使ってたくさん計算できることで、とても速いコンピューターを実現するのです。この確率的な要素というものが『並列性』ですね。たくさんのものを一度に処理するという意味での並列性です。膨大なデータを解析して、計算して、結果を返す……、いま流行りのディープラーニングとか、宇宙や気象を伴うシミュレーションとか、有機物分子の解析とシミュレーションなどにはかなり恩恵がありそうですね。

 ですが、量子コンピューターはまだまだ実験開発状態で、実用化には至っていません。量子のその特徴に合わせた、量子での計算専用の量子回路や、量子ビットを扱える量子プログラミング言語などが必要なのです。

 量子コンピューターのハードウェアは、実に色々なモノで研究されています。医療用のMRIでも使われている核磁気共鳴を使ったものや、リニアモーターカーでよく耳にする超電導素子を使ったもの、光(光子)を使ったもの……。どれもその装置は大きな金属とたくさんのケーブルに覆われてキラキラごちゃごちゃしています。量子という、どちゃくそ小さなモノのためにこんなに巨大なモノが必要なのに矛盾とロマンを感じますね! いやはや、今のPCにおけるATX(マザーボードのサイズ規格)のように統一される日はくるのでしょうか……?

 そしてプログラミング言語。量子コンピューターは、今のプログラミング言語とはまた異なったアルゴリズム(手順)を持つ『量子プログラミング言語』を利用します。うわぁこれもまたハードル高そう……と思いましたが、調べたところ、マイクロソフトが実装している『Q#』という量子プログラミング言語は、彼らのVisualStudioで利用できるみたいですね! やっとここで親近感が出てきました!

 とはいえ、実用化に向けての大きな問題があるのです。それが「エラー」。量子コンピューターは、計算途中で重ね合わせの状態が崩れてしまうエラーがどうしても出てしまい、それを取り除くのに試行錯誤している状態なんだそうです。まぁどうせ人間のやることなんで、そうこうしているうちに「あ、もうなんとかできちゃいました!」ということになってそうですが。

 そんな課題と戦いながらも、もっと量子の特性を活かして、もっと速い量子コンピューターの研究も同時進行しています。それが、「量子もつれ」か らの『量子テレポーテーション』を利用した量子コンピューターです。これを使うと、量子の情報がさらに速く判明することになり、結果として量子コンピューター自体の計算がさらに速くなるそうです。

 おいちょっと待てよ、テレポーテーションって……瞬間移動もできるのか? 実はこの量子、さらに理解できないふるまいを持っているのです。だって量子だもの。



科学のムダづかい

 次回は、この気になるワード『量子テレポーテーション』について深堀してみたいと思います。

この連載の記事

週間ランキングTOP5

ASCII倶楽部会員によく見られてる記事はコレだ!

ASCII倶楽部の新着記事

会員専用動画の紹介も!