
【量子力学入門⑩】答えを出す前に、全部の答えを持っている
量子力学入門①
量子コンピュータという言葉は、最近やたらと目にするようになった。「従来のコンピュータの1億倍速い」とか、「AIを超える」とか、「暗号が全部解読される」とか、おおむね煽り気味の見出しとセットで登場することが多い。記事を書いた本人も、半分くらいはよくわかっていないまま書いている可能性が高い。どこまで本当で、どこからが誇張なのか、よくわからないまま「なんかすごいらしい」という印象だけが積み上がっている人も多いのではないか。
今回は、量子コンピュータが「なぜ速いのか」という、一番基本的な話をしたい。難しい数式は出てこない。ただし、「ふつうのコンピュータとは、根本的に違う種類の計算をしている」という話は出てくる。
まず、ふつうのコンピュータがどう動いているかを、ごく大雑把に押さえておこう。
ふつうのコンピュータの中では、情報は「0か1か」という二択で表現される。これを「ビット」と呼ぶ。電気が流れているか、いないか。スイッチが入っているか、切れているか。すべての情報は、この二択の組み合わせで表現される。計算とは、この0と1を高速で並べ替えていく作業だ。
たとえば、迷路の出口を探す問題を考えてみよう。ふつうのコンピュータは、一つの道を選んで進み、行き止まりだったら戻って、別の道を試す。これを繰り返して、出口にたどり着く。賢い順番で試せば早くなるが、基本的には「一つずつ試していく」しかない。要するに、地図なしで知らない街を歩き回っているおじさんと、やっていることは大して変わらない。ただ、そのおじさんが光の速さで走り回っているだけだ。
量子コンピュータは、ここが根本的に違う。
量子コンピュータの中では、情報の単位は「量子ビット(クビット)」と呼ばれる。クビットは、ふつうのビットと違い、0でも1でもなく、「0と1の重ね合わせ」の状態でいられる。これまで散々登場した、あの「重ね合わせ」である。
重ね合わせのクビットは、0の可能性と1の可能性を、同時に持っている。これを複数組み合わせると、膨大な数の状態を、同時に表現できるようになる。クビットが2つあれば、00、01、10、11という4つの状態を同時に。3つあれば8つを。10個あれば1024個を。300個あれば、宇宙に存在する原子の数よりも多い状態を、同時に表現できる。
ここで「ふつうのコンピュータも300ビットあれば2の300乗通りの状態があるじゃないか」と思った人は、鋭い。だが、ここに決定的な違いがある。
ふつうのコンピュータの300ビットは、「2の300乗通りの候補のうち、今この瞬間は必ず一つだけ」を取って計算を進める。2の300乗という数は、「順番に試せる候補の数」であって、「同時に持てる状態の数」ではない。迷路の分岐の数が2の300乗個あったとして、それを一つずつ歩いて調べていくのがふつうのコンピュータだ。
量子コンピュータの300クビットは、「2の300乗通りの状態を、文字どおり同時に」持ちながら計算を進める。迷路の全ての分岐を、同時に歩いているようなものだ。これが重ね合わせの意味である。候補の数が多いのではなく、全部の候補を同時に抱えたまま、次の一手を打てる。これが、ふつうのコンピュータとの根本的な違いだ。
ただし、ここで落とし穴がある。
重ね合わせの状態で計算を進めることはできるが、答えを取り出す(観測する)瞬間、重ね合わせは崩れて、一つの結果しか出てこない。これまで何度も登場した、あの「観測すると決まる」という話だ。全部の道を同時に歩いていたはずなのに、振り返ってみたら一本の道しか歩いていなかった、ということになる。
つまり、「重ね合わせで全部同時に計算する」だけでは意味がない。肝心なのは、観測したときに「正解の道だけが、高い確率で出てくる」ように、計算の途中で量子的な干渉をうまく使って、正解の可能性を強め、不正解の可能性を打ち消す、という操作だ。
これが、量子コンピュータの設計で一番難しいところである。重ね合わせを作るだけなら、比較的簡単だ。問題は、その重ね合わせを崩す前に、正解の確率だけを高める計算を、量子の世界のルールの中でどうやって組み立てるか、という話になる。
うまくいったときは、ふつうのコンピュータが「一つずつ試して」やっと見つける答えを、量子コンピュータは「全部同時に試して、正解だけ取り出す」という形で、圧倒的に少ない手数で見つけることができる。これが「量子コンピュータは速い」という話の、一番核心にある仕組みだ。
ただし、「何でも速い」わけではない。量子コンピュータが威力を発揮するのは、「膨大な選択肢の中から、条件に合うものを探す」という種類の問題に限られる。メールを書いたり、動画を再生したり、スプレッドシートに数字を打ち込んだりするような、ふつうの作業は、量子コンピュータに任せても、何も嬉しいことはない。むしろ、デコヒーレンスに怯えながら絶対零度近くで動かさなければならない分、普通のパソコンの方がはるかにましだ。量子コンピュータでExcelを開こうとしたら、起動する前に宇宙の熱死を迎えるかもしれない。
量子コンピュータが「暗号を全部解読する」と言われるのは、現在の暗号の多くが「膨大な数の組み合わせを試すのに、ふつうのコンピュータでは現実的な時間がかかりすぎる」という性質に頼っているからだ。量子コンピュータが実用化されれば、その「膨大な組み合わせ」を力技で片付けられてしまう可能性がある。
もっとも、現時点の量子コンピュータは、デコヒーレンスの問題もあって、実用的な規模の計算を安定してこなせる段階には、まだ達していない。「1億倍速い」という見出しは、特定の条件下での特定の計算に限った話であって、何でも1億倍速くなるわけでは、まったくない。
量子コンピュータは、量子力学の奇妙さを、そのまま計算に利用しようという、ある意味で非常に正直な機械だ。重ね合わせは本物だから、重ね合わせのまま計算させよう。干渉は本物だから、干渉を使って正解を浮かび上がらせよう。「なぜそうなるのか」は百年経っても誰も説明できないが、「どうなるか」の計算は合っているのだから、それを信じて機械を作ろう。
物理学者たちが「わからない」と言い続けてきたものを、エンジニアたちは「わからなくてもいい、動けばいい」と言って、製品に変えようとしている。
これもまた、量子力学らしい、なんとも割り切った話である。
ただ、量子力学が技術に与えた贈り物は、「速く計算する」だけではない。
今回触れた「暗号が全部解読される」という話の裏側には、量子力学を使うことで逆に「絶対に解読できない暗号」を作れる、という話が隠れている。
鍵を破る道具と、鍵を守る道具を、同じ物理法則が生み出している。
次はその話だ。