"BOKU"のITな日常

興味のむくまま気の向くままに調べたり・まとめたりしてます。

量子コンピュータは現実の問題を解くために利用できるのか?という素朴な疑問

量子コンピュータが騒がれているけど、本当に現実の問題を解くために利用できるのか?という素朴な疑問について整理してみました。

f:id:arakan_no_boku:20191111220135p:plain

 

量子力学の「基本のキ」から

 

 量子コンピュータは現実の問題を解くために利用できるのか?という素朴な疑問を調べるにあたって、全く予備知識なしではわけがわからなくなったので、回り道のようですけど、量子力学からざっくり理解してみます。

こちらのサイトを参考に引用しながら整理することにしました。

www.ryoushi-rikigaku.com

タイトルは「30分でわかる量子力学の世界」です。 

 

量子力学」とはなにか

 

量子力学は、文字通り「量子の物理法則」です。

従来の物理法則が通用しない特殊な存在を普通の物質と区別するために「量子」という名前をつけて、専用の物理法則を研究しています。

 

量子はどう「特殊な存在」なのか

 

元素の特色を失わない最小の微粒子である「原子」があり、それが「原子核」と「電子」で構成されている・・このあたりは、学校でも習いました。

f:id:arakan_no_boku:20191113100333p:plain

この「電子」というのは

  • 電子は「状態」しか持たない。
  • 電子は量が増えることで、全く異なる物質になりえる

みたいな特徴をもってます。

量が増えると全く異なる物質になりえるからこそ

  • 電子が1つなら「水素」
  • 電子が2つなら「ヘリウム」
  • 電子3つなら「リチウム」
  • 電子4つだと「ベリリウム

みたいに様々な物質ができるわけですが、これも通常の物理法則の世界で考えると、おかしなことで、

水の量が増えたら鉄になったり塩になったりするんだよ

みたいなことになってしまいます。

電子は「状態」しかもたない・・というのも同じで、これを通常の物理法則の世界で考えると・・例えば。

海の「波」という「状態」があるのに、「海水(水)」という「物質」がない

みたいなことになります。

だから、まず「普通の物理法則」を忘れないと、頭が混乱します。 

 

量子コンピューティングは「量子ビット」で情報を扱う

 

じゃあ、そんな量子が「コンピューティング」にどう関係するかです。

結論から先に書くと「量子の物理法則の考え方を応用したコンピュータ」ということであって、「量子を直接使ったコンピュータ」ではありません。

ということで、今度は、量子コンピューティングについて勉強してみます。

いろいろ見て、わかりやすかったのは、このサイトです。

quantum.fixstars.com

これによると。

という違いがあります。 

量子ビットは、複数の0や1を重ね合わせると「0でも1でもない何かに変化」するという方法で多重化を実現します。 

引用すると

通常のビットと量子ビットの大きな違いとして、

・ビットの状態(0か1か)は確率的に決まる
・測定(出力)するまで値が確定しない
等が挙げられます。

これらの性質を「重ね合わせの原理」と呼びます。

ビットが0である状態と、1である状態とが重なって(両方の状態を同時に持って)いると解釈されます。

前段の「量子」の性質を頭において、これを読むと「量子力学の考え方を応用している」感じがよくわかります。

 

量子コンピュータには色々な実現アプローチが試みられている

 

量子ビットを実現する方法の種類について、日経新聞に種類についてわかりやすい図があったので引用します。

f:id:arakan_no_boku:20191115201758p:plain

主要な方法が4つあげられてます。

左の2つ「光ネットワーク」と「アニーリング」は、疑似的なもので制限もあります。

そのため、右の2つ、「量子アニーリング方式」、「量子ゲート」の2つが主たる方法の候補になっていて、他の記事を見ても、この2つについての解説がほとんどです。

さらに。

量子アニーリングに見切りをつけ、「量子ゲート」によってきている企業が増えているという、こんな記事もあります。

www.itmedia.co.jp

まとめると。

本命は「量子ゲート」方式になりつつある。

ということですかね。

 

量子コンピュータの理論と実際の差

 

なぜ、量子コンピュータの処理能力が速いのか?

これは、0または1の状態が重ねあわされて「0でも1でもない状態」になりうる量子ビットそのものが、超並列処理状態でもあると考えると、なんとなく理解できます。

でも、これは量子コンピュータが従来のコンピュータを凌駕する性能をしめす「可能性」でしかなくて、そのような特殊なコンピュータが、従来のコンピュータと同様に、現実の問題を解くために利用できるのか?という問題は別物です。

普通に考えて。

そんな特殊な性格を持つ、量子ビットに現実の問題を解決するアルゴリズムをどうあてはめられる気はしませんから。

ja.wikipedia.org

上記の記事によると、「理論的」には

量子コンピュータは容易に古典コンピュータをエミュレートすることが可能であるため、古典コンピュータで速く解ける問題(汎用問題)は、量子コンピュータでも同程度以上に速く解くことができる。

よって汎用問題について、量子コンピュータは古典コンピュータ「以上」に強力な計算速度を持つ。

 ですが、「現実」に目をむけてみると

古典ゲートによる小規模演算器もシミュレート出来ない。

そのため、量子ゲートマシンの利用には専用アルゴリズム開発が必ず伴う。

であって、処理能力についても

同程度は可能だとしても、「大幅に上回る」かどうかはよくわかっていない。

また、「大幅に上回る」問題の範囲についても、「より大きい」かどうかはよくわかっていない。

と書かれています。

ようするに。

 従来のコンピューターよりも量子ゲートマシンの方が高速に解ける問題が存在するかどうか自体が問題になっているレベルに今はある

わけです。

そういう問題が存在することを「量子超越性(Quantum supremacy)」と呼びます。

その存在を、この度、Googleが証明したと発表しました。 

japan.googleblog.com

この実験については以下のように伝える記事もあります。

従来型の世界最速スーパーコンピューター「Summit」でも1万年かかる計算を、Googleが開発した53量子ビットを持つ量子プロセッサー「Sycamore」は、200秒で計算できた。

この「1万年かかる計算を200秒で計算できた」という部分が独り歩きしていて、まるで量子コンピュータがすでにかなりのレベルに達しているのではないか・・という想像をしてしまったのですが、現実はそうではなさそうです。

従来のコンピュータで解くのに時間がかかりすぎる問題を、量子コンピュータで高速に解けることが保証されたわけではないからです。

  • 従来のコンピュータよりも、量子コンピュータの方が高速に解ける問題が存在することを証明したこと。
  • 現実の問題で従来のコンピュータでは処理速度が不足で解決できない問題が量子コンピュータで解けること

この2つの間には、とんでもなく大きな差があるみたいです。 

 

結局。

量子コンピュータは現実の問題を解くために利用できるのか?という素朴な疑問についての答えは「今(2020年)は、まだまだ無理!!」ということですね。

それはよくわかりました。

今回はこんなところで。

ではでは。