THE NEW VALUE FRONTIER
OIA Open Innovation Arena
  1. Home
  2. オープンイノベーションアリーナ
  3. Column
  4. 【連載:第1弾】「ぶっちゃけ教えて!量子コンピュータが普及したら生活はどう変わる?」

オープンイノベーションアリーナ

【連載:第1弾】「ぶっちゃけ教えて!量子コンピュータが普及したら生活はどう変わる?」

研究段階から40年の歴史を持つ量子コンピュータ。展示会や講演会に参加すると量子コンピュータについての実用例があちこち見受けられます。
ところが、専門家以外の人からすると、「普通のコンピュータと何が違うの?」「なんだか難しそう」「30年先の話」「正直自分にどんな影響があるか分からない」と感じていませんか?

今回編集部では、皆さんの疑問やモヤモヤを量子コンピューティングの最先端を研究されている東北大学の大関先生にお聞きします。
「ぶっちゃけ教えて!量子コンピュータが普及したら生活はどう変わる?」
ぜひお読みいただければと存じます。     

<著者紹介>
東北大学大学院情報科学研究科情報基礎科学専攻・教授
東京工業大学理学院物理学系・教授
大関 真之(おおぜき まさゆき)

子供のとき、指を折りながら計算をしていた。そして指を折りながら誕生日やクリスマス、楽しいイベントを心待ちにしていた。
指は数を表す最も単純なツールである。

手のひらを眺めながら、指を折り曲げてみると、0,1,2,3,...数字を増やしたり減らしたり自由自在だ。
指を英語で言うと、fingerというが、実はこれは親指以外の4本指のことを指した英単語らしい。
親指はthumbである。
我々日本人とはちょっと違う扱い方をしているのには驚かされる。
それでは5本の指を指す英単語は何か。
digitsである。
なんだか聞いたことのある言葉である。
digital=デジタルの語源でもある。
指で折りたたみ数字を表すことからdigitsは数字という意味でもあり、数字の桁を意味する言葉ともなっている。
デジタル信号とは、0と1の区別できる物理的な状態を利用して、数字を表現することを基礎におく。
00や01,10,11などと0と1だけで4つの形態を与えれば、それぞれ0,1,2,3という二進数とも呼ばれる数字の体系を築くことができる。
指を折り曲げれば1としてそのままであれば0とすると、二進数で僕らは2の10乗、およそ1000の数字を表すことができるが、
やってみると難しい。薬指を自由自在に折り曲げることはなかなか至難の業である。
そんなわけで、指は順々に折りたたむことで数字を表して、10までにしたというわけだ。
多くの人類には二進数が難しかったのだろうことが伺える。

指を上に下に折り曲げて数字を表して遊んでみると、横に倒して0と1で0.5だっていう子供が現れるかもしれない。
少し傾きを変えて、0側に、上に傾けてみたり、1側に下に傾けたりすると別に0と1だけに限定しないでも良い気がする。
アナログコンピュータという考えだ。その角度で数字を表すということを考えても良いのだ。

もしも指が、その結果になる確率を述べていたらどうだろうか。
指が上に傾けば、0になる傾向があって、下に傾けば1になる傾向がある。
横倒しにしておいたら、50%の確率で0で、50%の確率で1で。
そういうルールのコンピュータを作っても、もしもお役に立つことがあるのなら作れば良い。
僕は嫌だけど、答えがあてにならない気がして。
でもこの考え方、ちょっと面白いかもしれない。
何かの計算をする前の状況で、これから何かの数字が答えかどうかをチェックするような計算を必要としていたらどうだろう。
足し算や引き算をする場合は、はっきりと数字を指定してほしい。結果もちゃんと出てほしい。
そういう計算には向かない。
この数字は、正しいですか?
そうだな、例えば X + 1 = 4のXとして当てはまる数字ですか?Yes or No?
そういう問題だったらどうだろう。
もちろん僕らはその数は3であると逆の計算をすればわかるのだけれども。
コンピュータに数字を入れて、正解かどうかを調べるとしたらどうだろうか。
0,1,2,3,...と順々に数値を入れて4回目に3が入ったときに、コンピュータはYes!と答えてくれるというわけだ。
0を入れてもNo!と言われるだけだったらヒントにならない。そういう問題だったら次から次へと数字を試し撃ちしてみるしかない。

もしも0と1、2や3も一緒に入れることができたらどうだろうか。
横倒しにした指で0と1の間、2と3の間なんてのを作って想像する。
3本目の指にビリッとした刺激があったりして。3本目の指を立たせてくれたりして。

一緒に一度に折り曲げた指を入れたら、答えを教えてくれる。
ダンスをしてみましょう。でも先生がいなかったら一人でこれでいいのか?どうなのか?何度も試行錯誤を繰り返す。
違うよ、こういう姿勢だよって教えてくれるかのように、私のダンスを正しい方向に修正してくれれば、
一度踊って見せるだけで良いのに。0だか1だかよくわらかないダンスを。

量子コンピュータ。

本連載の主題とされているのは、そうした計算を可能とする新しいタイプのコンピュータである。
0と1の両者の重ね合わせの状態、つまり指を横に倒した状態で数字の入力を受け付けてくれるのだ。
出力結果は、0か1かはっきりしたもの。どちらが良いのか教えてくれる。

もしかしたら私たちの行く道のどちらが正解か、それすらも教えてくれるかもしれない。

その量子コンピュータは、その独特の数字の扱い方もあって、理解に苦しむ部分もある。
しかしその潜在能力には強い期待が寄せられている。
いくつかの数字を並べて、果たしてどの数字が正解なのか、調べてくれるのだから。
最も有名な事例が素因数分解が高速にできるというものだ。
Shorのアルゴリズムという名前で知られ、素数の積からなる大きな数について、
どの素数の積からできているのかを判別するものである。
これは2,3,5,7…といくつもの素数の中から、どれが正解であるか、割ることのできる数字なのかを探すのだから、
折り曲げた指で、中途半端に重ね合わせた数字を入力することができることによる量子コンピュータの利用例である。

量子コンピュータは、この例を通しても想像されるように、多くの可能性、多くの候補の中から最善のものを取り出すのに強い性能を持つことが多い。
さまざまなアルゴリズムが提案されてきているが、どれも同じように正解となっているものを取り出すような問題設定で効果を発揮する。

素因数分解を始め、検索アルゴリズム、そして最適化問題と呼ばれる様々な選択肢の中からベストチョイスを導くアルゴリズム。
さらにはその特殊な入力のみならず出力を利用して、これまでにない予測手法を与えようと量子機械学習に至るまで研究が始まっている。
入力が特殊なのは先ほど紹介した通りだが、出力も特殊である。
そもそも0と1の重ね合わせの状態とはどんな状態か。

現代の社会を支えているコンピュータは、その名前の通り「計算するもの」として登場した。
数字がある一定の規則に従い変化していくことで計算をすることはご存知の通りだ。
言うなれば計算というのは、指をはじめの形から、次第に向きを変え、折り畳みながら、数字を変えていくわけだ。
これまでのデジタルコンピュータでは、指を折ったり伸ばしたりするだけである、ということだ。
量子コンピュータでは、指を途中まで曲げて、クルッと回して、手首を返して、そんな具合に指を操る。
だから計算結果も複雑になる。ただの0や1ではなく、これまた0と1の間。それこそ角度が微妙についているなんてこともザラだ。
そうした重ね合わせの状態であったときに、出力結果はどうなるのか。0と1の間、それこそ0.5などという結果を出すのだろうか?
先ほど妄想したように、量子コンピュータでは、面白いことに0と1の間、指が横倒しの結果であれば、0が50パーセント、1が50パーセントの確率でバラバラな結果が出てくる。
0か1か、その結果ははっきりしている。しかしその結果がばらつくことがあるのが厄介である。
ただこの出力結果が思わぬ形でバラバラに散らばることから、これまでのコンピュータとは異なり、面白い結果を出すのではないかと期待されている。
実際に出力結果、そしてその途中に至るまでを今のコンピュータで真似しようとしても、到底おぼつかないほどに難儀な問題もあり、
それを実際にデモンストレーションしたとして、2019年には量子コンピュータは「量子超越性」を示したとされる。
しかし今のデジタルコンピュータの技術も向上し、量子コンピュータに負けじと迫り、群雄割拠の時代を迎えている。

本連載では、編集者泣かせと読者泣かせの難解な内容であるかもしれない可能性を含み、
ウケるかウケないかの重ね合わせの状態のまま、量子コンピュータに寄せられている期待と現状を紹介していく。
読者が楽しみにしているかどうかも、これまた重ね合わせの状態で、その結果を調べないままに僕の量子コンピュータの電源をOFFにしておきたい気持ちでいっぱいである。

(続く)