そもそも普通のコンピュータの計算のしくみを教えて下さい……
ゆうこ そういう量子コンピュータですけど、宇津木さんはなぜそれに注目してるんですか?
宇津木 僕は、4年前くらいに大学の授業で量子力学や、研究室で光の研究をしていた関係で量子光学を学んで、その授業がすごく面白かったので、それで量子なんたらっていうのにいろいろ興味を持ちました。
会社に入ってから、量子コンピュータっていうものがあるってことを知って、ちょっと勉強してみたいなと思って、量子情報勉強会を始めたのがきっかけです。
かまぷ そもそも、量子力学と、量子コンピュータの言われている量子っていうのは同じものなんですか。
宇津木 ああ、同じです。我々の世界を記述するための量子力学という学問があって、それの性質を使ったのが量子コンピュータ。
かまぷ 今のコンピュータはデジタルじゃないですか。0と1の。じゃあ量子コンピュータは何?
宇津木 そうそう、量子コンピュータは0と1のデジタルではなくて、0と1の重ね合わせ状態を使うっていうのが量子コンピュータの特徴です。
かまぷ そもそも、今のコンピュータの基礎をわかってないと聞いてもわかんないですよね。就職活動中のSEを目指してる女子にもわかりやすく、まずはデジタルとはというところから。
宇津木 聞いてますかね? SEを目指している女子。
かまぷ 聞いてます。
宇津木 従来のコンピュータはどうやって計算してるかっていうと、コンピュータをガチャって開けると中に回路が入っています。中の回路では、電圧の低いところと高いところがあって、それが、低いところと高いところが、どんどん時間によって変わっていくんですね。それが例えば0Vと5Vだったりして、計算結果は、0Vと5Vの組み合わせで出てくると。その0Vがデジタルでいう0で、5Vが1という風に対応していて、その0と1だけを使っていろんな計算をしてるっていうのが中でやっている処理になります。
かまぷ 事前打ち合わせの時に、これを図にしてもらったら、すごくわかりやすかったんですよね。
ゆうこ 宇津木さんが今図を描いてくれてます。放送大学だと思って聞いて(読んで)ください。

宇津木 これね、例えばANDゲート、1つ1つを、全部ゲートっていうのを使って計算されているっていう話をしたんですよね。例えば、足し算(加算ゲート)は、0+0=0、1+0=1、0+1=1、1+1は、まあ2なんですけど、2は1繰り上がって0ですと。
かまぷ コンピュータの業界に入る人は、この1+1が0っていうところを理解しなきゃいけないんですよね。
宇津木 そうですね、最初、2進数ってのをね。でこれ2進数でやると、真理値表は以下のようになります。
| 入力A | 入力B | 出力 |
|---|---|---|
| 0 | 0 | 0 |
| 1 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 1 | 0 |
これが加算ゲート。こういう足し算の計算をするゲートがあるとします。そうするとこれは、5ボルトと0ボルトを入れると、この電圧は、これ5ボルトが1になって、0ボルトが0になって、1+0=1なんで、これ1が出てきたとします。ということはこれは5ボルトが出てきますと。なのでこの回路に5ボルトと0ボルトを入れると5ボルトが出てきます。同じように0ボルトと0ボルトが入ると0ボルトだし、5ボルトと5ボルトが入ると、これは1+1なので、0ボルト。みたいな感じでこういう回路が作られていて、それを使って計算してますっていうのが超基礎のところ。これがデジタルって話ですね。

かまぷ そうそう、今さらみたいな感じで。そういうのわかってなくても、エクセルもワードもVimも使えちゃうわけですよ。
宇津木 そうですよね。だからあんまりこういうの知る機会逆にないかもしれない。0Vと5Vは、今完全に分かれているものだけど、この重ね合わせ状態という、なんだか中間の状態を考えたら、もっとすごい計算ができるんじゃないかっていう考え方が量子コンピュータですよっていう。
ゆうこ まず0と1の重ねあわせって何かというところから聞きたいですね。量子力学っていうと、光と粒子の重ね合わせでしたっけ?
宇津木 波と粒子ですね。
ゆうこ ごめんなさい、波と粒子だ。それと関連してそうですけど、0と1の重ね合わせっていうのがどういう状態なのかもピンと来ないですよね。
宇津木 そうですよね。0と1の重ね合わせって、別に物理的にそういうものがあるんじゃなくて、ある状態をそういうふうに我々が解釈するってこと。電圧の5Vと0Vを、我々が5ボルトは1、0ボルトは0って解釈するのと同じように、世の中には量子的な振る舞いをするデバイスを作ることができて、例えばD-Waveの中に入ってるものだと、すっごく冷やした回路みたいなのも入ってるんですね。
かまぷ それはCPUに当たるんですか? メモリですか?
宇津木 それはね、もはやCPUやメモリという概念はないんですよね。さっき言ったように、特定の問題を解くため専用のだから。で、1個1個、量子ビットっていう0と1の重ね合わせを表すやつらがいるんですけど、そいつらは、すっごく冷やされたところに回路がいて、そこに電流が流れてるんですけど、その電流の、輪っかみたいなのを想像してもらって、右回りか左回りかっていうのが、どっちに流れてるか分からないけど、どっちかには流れている。で、それはどっちにも流れてるとも考えることができるような、特殊な状態になっています。それが右回りだったら1、左回りだったら0とするように、我々が考えると。そうすると輪っかの回路が0と1の重ねあわせ状態を実現してるものそのものになるんですよね。
かまぷ うーん、わかったようなわかってないような。
宇津木 で、物理状態を作って、一生懸命作って、それをいろいろ操作していくと計算ができるよっていう話なんです。
かまぷ ビットってあるじゃないですか。コンピュータの。それと似たようなものが量子コンピュータでも定義されてるんですね?
宇津木 そう、同じものが定義される。さっき言っちゃいましたけど、量子ビットってもので。普通のビットっていうのは、今言ったように0ボルトと5ボルトのどちらかを1ビットとする。同じように量子ビットっていうのは、さっき言ったように右回りと左回りの電流で考えて、それを0と1とすると、0か1か、それか0と1の中間状態というか、その両方の状態になり得るような状態っていうのを量子ビットとして定義する。
ゆうこ それで言うと、両方の状態になり得るものだけが量子ビットなんですか? それか0と1も含んでるんですか?
宇津木 0と1も含んでます。量子ビットは、誰も見てない、観測してない状態ではどうなってるかわからない。誰にもわからない。でもそれを観測っていう操作をすると、それが0だったか1だったかっていうのが決まるんですね。で、ああこれ0じゃん、これ1じゃん、って分かると、これが0なのか1なのかっていう確率は、観測せずともいろいろ制御することができて、0の確率が半分、1の確率が半分っていう状態を用意することができるんですよ。そういうのをいっぱい作っておいて、ワーッって操作して、最終的に観測すると、0や1が確率的に出てくるんですけど、上手く操作して結果を見ると、それが答えになってる。
かまぷ その動く源って、コンピュータは電気じゃないですか。量子コンピュータも一応電気なんですよね?
宇津木 何で作るかは自由なんですよ。今のコンピュータも、たまたま電気の5Vと0Vだったけど、これなんでもよくて。実は。
かまぷ そろばんでもいいってことか。
宇津木 そう、そろばんでも、上だったら1、下だったら0ってできるじゃないですか。それでコンピュータ作ろうと思えば、頑張ればできるかもしれない。ていう感じで、これ考え方だけの問題なんです。0と1が分かれているという考え方が今のコンピュータで、分かれてないのが量子コンピュータの考え方。量子力学的な状態を実現できるのであれば、何で作ってもいいんですよ。
かまぷ なるほどね。でも今実現してるのは、電気と半導体を作ってるんですよね。
宇津木 そうそう、すごく低温で冷やした中の、超電導の回路で実現をされている。
ゆうこ 今その、実現度合いですけど、すごい強力な計算ができるところまでいってるのか、ようやくその原理でちょっとした計算ができるレベルなのか、どっちなんですか?
宇津木 ちょうど進んでいるところで、その量子アニーリングっていうのを使うと、ようやく今のコンピュータと同じかちょっとそれより少ないかぐらいのとこまで来ているらしい。
ゆうこ ああ、でも思ったよりは進んでますね。
宇津木 思ったよりはいっている。こっからグイッて進むんじゃないかと思ってみんな研究してる。ただ今の状態だと、まだ普通のコンピュータにやらせてもそんなに時間変わらないし、費用対効果的には普通のコンピュータでやったほうが速いので、それを好んで使うっていうところまではいってない。もうちょっとグレードアップしていろんな課題を解決して、使いやすいものが、Googleさんなどがもし作ったら、本当にそれで計算したほうが速いっていうことが出てくるかもしれない。
