量子コンピュータ
ちょっと未来の物語を書こうと思うと、どうしても頭をちらつくネタのひとつに、量子コンピュータってのがあります。
ほとんどの人の理解はこんな感じ。
量子コンピュータ=超速いコンピュータ
違うんですよ。
自称専門家(?)のブログでも量子コンピュータを超速いコンピュータとか書いてあったりする。
あまつさえ、「量子コンピュータは超高速で現行コンピュータをエミュレートできるから解けない問題はない」とか書いてあったりする(「解けない問題」については後述)。
そんなことはないんです。むしろ、量子コンピュータは動作サイクルとしては超遅い。
じゃあ何がすごいのかって言うと、「計算の仕方」が根本から違うってことなんです。
簡単に言うと、素粒子が自ずから備えている「問題を解く力」を数学的問題に応用する、ってことなんです。と書くと難しそうですが、例えば、ある素粒子を二つ並べると量子力学的なメカニズムで二つの量子状態の関係がいい感じのところに落ち着く、それをちょいと観測するとかっちりと状態量が決まる、みたいなのは自然が備えている仕組みなわけですが、その「量子力学的なメカニズム」を「数学問題」にうまく読み替える方法を作ることで、難解な数学の問題が解けるようになります。たとえて言うなら、量子の内部の膨大な重ね合わせのパターンが勝手にすべての可能性を見えない世界の中であらかじめ試してくれているので、問題に合った取り出し方をしてあげれば適した特定のパターンがぽんと飛び出してくる。計算ドリルの最終ページを先に開いちゃうようなもんです。
もちろん実際にはたくさんのステップを踏んで「読み替え」にまで導かなければならないのですが、いくつかそんなアルゴリズムが開発されています。「素因数分解」なんてのが代表格。
ところが、この「素因数分解」ができるアルゴリズムがあるおかげで、素数の力で暗号をかけている昨今の暗号化方式を一瞬で解くことができる可能性が出てきてしまいました。
そのために「通常のコンピュータでは何億年もかかる計算(暗号解読)を一瞬でできる」→「超速い」という誤解が生まれたように思います。
実のところ、量子コンピュータにどこまでのことができるのかは決着がついていません。
先ほども書いた「読み替えの方法」が、すべての問題に存在するかどうかが専門家の間でも意見が分かれているからです。「NP完全問題」というのがあって、これは、「あらゆる問題を読み替えることのできる究極問題」とも言える問題なのですが、本当にそうなのかの証明もまだだし、完全問題そのものもまだ見つかっていませんし、量子コンピュータが完全問題を解けるかどうかも正確には分かっていません。
もちろん、理論的に完全問題が解けることが分かったとしても、解くためのアルゴリズムを作れるか、そのアルゴリズムが旧来のコンピュータよりも速いものか、というのもまだ分かりません。量子コンピュータの速さについては、「解けるとしたら多分従来コンピュータと同等以上」というのが理論的な予測。せっかく作ってもせいぜい同等、ということも十分にありえるわけです。
ただこうした問題があるにしても、量子コンピュータは明らかに利点のある分野があります。ぶっちゃけ、「量子物理学」の世界です。物理学のシミュレーションは、デジタルコンピュータは苦手です。特に量子力学のシミュレーションは苦手です。ですが、量子コンピュータなら量子そのものに計算させちゃうわけですから、大得意。
そもそも、粒子の振る舞いを使って計算するわけですから、粒子の振る舞いを計算するのにはうってつけ。なので、例えば「カーボンナノチューブにナントカ原子とカントカ原子を閉じ込めてシェイクしたらどうなるかな?」なんて問題を簡単に解けるようになります。
たとえば半導体と超伝導体。半導体の中の素粒子の振る舞いをきちんと計算できるようになれば、まったく新しい超高性能の半導体を作れるようになりますし、超伝導体の開発についても、「計算機の中だけで」試行錯誤して新しい材料を作り出し、それを現実に作ってみて効果を確かめたりできます。で、何がうれしいかというと、超高性能の半導体とか高温の超伝導体とかがあると、超高性能で低消費電力のコンピュータが作れるんですね。……あれ? まあ、そういうことです。量子コンピュータの可能性としては、旧来型のコンピュータを超高性能化する、ってところに結構寄与するところなんじゃないかと私は思っています。
あとは、創薬分野。たんぱく質の立体構造と試薬の立体構造をモデル化して、量子コンピュータにぶち込むと、試薬がどのように作用してたんぱく質の構造をどのように変化させるか、とかが一発で計算できてしまいます。今まで作用機序がよく分からんかった薬の解明とかにもつながっていきます。
とはいえ、例えばDNA解析のような分野にこれを応用しようとすると、難しい。DNA自体かなり巨大な分子ですし、そこに影響を与える細胞内環境を一そろい量子シミュレータの中に再現しようとすると、参加する素粒子の数だけ量子ビットが必要になるようなわけで、おそらくその数は10000000000000000000000個以上とかになるんですね。とても人間が文明時間の中で作れるようなシミュレータではありません。だから量子コンピュータの本領発揮とはならず、遺伝システムを特異的にシミュレートする特殊なアルゴリズムを見つけるか、せいぜい旧来コンピュータと同等の速度でしこしこと計算するか、しかなくなる、ということになります。
ということであまり量子コンピュータに夢を見すぎるのもなあ、と思うわけですが、もちろん空想物語の中でならいくらでも活躍させてもいいと思います。でも、量子コンピュータを万能コンピュータとして描くのはもうちょっと待ったほうがいいかも。
と、夢がしぼむ感じになっちゃうので、実のところ科学考証がしっかりしてるSFほど面白くなくなるんですけどね(苦笑)。ロマン重要。