"BOKU"のITな日常

62歳・文系システムエンジニアの”BOKU”は日々勉強を楽しんでます

量子コンピュータについて、量子力学の基本から、ざっくり整理してみた。

量子コンピュータについて、と勉強して整理してみました。

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でもない状態」の量子ビットが、超並列処理状態でもあると考えると、量子コンピュータが従来のコンピュータを凌駕する性能をしめす「可能性」を持つことは理解できます。

でも。

そのような特殊なコンピュータが、従来のコンピュータと同様に、現実の問題を解くために利用できるのか?という疑問が残ります。

その観点で調べてみると。

やっぱりそう単純ではなく、論理面と実際には差があるみたいです。

そのへんが一番わかりやすかったのは、こちらのWikipediaの記事です。

ja.wikipedia.org

引用してみます。

まず「理論的」には

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

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

 です。

しかし、「現実」に目をむけてみると

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

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

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

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

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

と書かれています。

ようするに。

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

みたいです。

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

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

 

japan.googleblog.com

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

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

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

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

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

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

 

とはいえ。

何でも、未知の領域に誰かが一歩踏み込むと、急に進歩が加速するというのはよくあるので、これをきっかけに、どんどん研究が進む可能性はあります。

それでも、量子コンピュータが、現実的な問題を「とてつもない高速で解決する」状態になるのは、もう少し先なのかな・・ということは理解できました。

 

今回はこんなところで。

ではでは。