科学と技術を雑学的に気まぐれに語るブログ 

科学と技術に関係したエッセイのようなもの

量子コンピューターを簡単に説明できるか?

量子コンピューターに関わる仕事がしたい」と思って数年経ちます。そもそも、量子コンピューターという存在を明確に意識したのが数年前ですから、意識してすぐに、その仕事をしたいと思ったのでした。

量子コンピューターを売っている会社は量子コンピューターを広義に解釈して1社(D-Wave Systems社)で、研究開発段階の量子コンピューターをクラウドで利用できるのが1社(IBM)、という状況ですから、産学問わず研究機関で量子コンピューターの研究開発を行うこと以外の仕事はほとんどないと思うのですが、それでも、量子コンピューターの仕事をしてみたいと思ってしまったのでした。

私が20代であれば、将来的に量子コンピューターを販売する会社の一員となることも可能かもしれませんが、現実問題としての年齢を考えるに、量子コンピューターの仕事に就く可能性はほとんどゼロに近いとは思ってます。夢というほどに大げさなものではないのですが、何かの巡り合わせで量子コンピューターの仕事ができたらいいなあ、程度に考えている次第です。

私は某S社においてワークステーションやサーバー製品のプロダクト・マネージャーをやっていたので、現在広く使われているフォン・ノイマン型と呼ばれるコンピューターのアーキテクチャー(CPUやメモリやIOなどなど)に関してはそれなりに理解しているつもりです。また、大学時代は量子力学の勉強もしていたので、量子力学の基本的原理についても(細かいことは忘れてますが)なんとなくは理解しております。

その2つを合わせると、量子コンピューターの理解にかなり近づくとは思います。というわけで、量子コンピューターの勉強をしてみました。というか、まだ勉強中ですね。かなり難しいです。私はまだまだ理解できてないことだらけです。ですから、このブログで本格的な量子コンピューター講座を行おうなどとは考えていません。ただ、「量子コンピューターに興味はあるけど、書籍やWebの解説を見ても全然わからない」という方に対して、なんとなくのイメージで量子コンピューターを理解してもらえる程度の事は書けるかもしれません。

そういうわけで、時々は量子コンピューターのきわめて易しい解説めいたことを書いてみたいと思います。

量子コンピューターの一般的なイメージは「極めて速いコンピューター」という感じでしょうか? 現在のスーパーコンピューターでも何百年もかかるような計算を数時間で行ってしまう、というような。

そのイメージは間違ってはいないのですが、量子コンピューターは、現在の一般的コンピューター(スーパーコンピューターも含む)が行っている仕事の全てを、高速に実行出来るわけではありません。量子コンピューターに適したアルゴリズム(量子アルゴリズムと言います)を組み立てられたパターンでのみ、量子コンピューターはその真価を発揮します。

ですから、もし量子コンピューターが実用化されても、現在のデータセンターにあるサーバー群が量子コンピューターで置き換えられるわけではありません。

そういう意味において、量子コンピューターは汎用的であるとは言えません、特定のアルゴリズムの計算に特化したコンピューターです。ただし、その特定のアルゴリズムはまだ研究が進められている段階ですので、将来において応用範囲が広がる可能性はあります。例えば、ディープラーニングの領域とか。

量子コンピューターが真価を発揮すると期待されている計算に、非常に大きな数の素因数分解があります。大きな数の素因数分解をすばやく行えるとRSA暗号が破られてしまう、ということで話題を集めました。現在のところ、研究段階の量子コンピューターの性能はRSA暗号を解くまでには全く至っていませんので、Webショッピングの安全性が脅かされているわけではありません。

今回は、「量子コンピューターは汎用的に速いコンピューターではなく、特定の量子アルゴリズムを高速に実行できるコンピューターである」という点のみを述べて終わりにしたいと思います。

次回がいつになるかはわかりませんが、量子ビットの話でもしようかと思います。 \left | 1 \right \rangleとか \left | 0 \right \rangleと表記するのが量子ビットです。なにやら、ヘンテコな記法ですが、 \left |  \right \rangleはケットと呼ばれます。次回はそのあたりのお話を。