量子コンピュータの現状と課題【量子コンピュータ入門6】
今回の記事では、本記事執筆時(2021年8月)において、開発されている量子コンピュータの現状について簡単にお伝えしたいと思います。
現在の量子コンピュータの課題
さて、現在の量子コンピュータは、ノイズの問題に直面しています。情報処理においては、ノイズによるエラー(誤り)が起こります。例えば、0という情報を送ったのになぜか最後には1になっている。そんな感じです。
正確な計算結果が欲しいのに、そもそも計算機が計算ミスしていては話になりませんよね。このままでは、情報処理としては上手く機能しません。そこで生じた誤りを訂正しながら情報処理を行っています。これを誤り訂正と呼びます。
誤り訂正
誤り訂正のキーワードは「冗長性」です。簡単に説明すると、無駄な部分を情報に上乗せするということです。先ほどの例ですと、ノイズの影響によって0が1に変化しました。では、ノイズから情報を守るにはどうすればいいのでしょうか。一番簡単な方法は、0を0000と沢山同じ情報が並んでいるものに置き換えてあげるのです。
例として、ノイズの影響によって、一つのビットが変化したとしましょう。例えば、0000 → 0100こんな感じです。
この場合、0と1の"多数決"を取れば、0の方が多いのでエラーが2番目のビットに起こったことが分かり、エラー(誤り)を訂正できます。このようにして、情報をノイズの影響から守ることができるのです。
量子はデリケート
さて、量子情報について考えてみましょう。量子コンピュータの場合にも、この誤り訂正は非常に大切な概念になります。実は、量子ビットというのは非常にノイズに弱いのです。これは量子ビット自体がアナログ量であることに起因しています。このあたりについては、今後の記事で詳しく説明したいと思います。つまり、量子状態というのは非常に壊れやすいのです。その結果、何も対策をしない場合はノイズだらけの計算結果になってしまいます。
量子誤り訂正
そこで、量子コンピュータにおいても誤りを訂正することが必要になります。この技術を「量子誤り訂正」と呼んでいます。
量子誤り訂正に関しても考え方としては、先ほどの誤り訂正と同じで冗長性を利用します。ただし、量子ビットには古典ビットとは違い、量子状態を観測すると量子状態が壊れるという性質があり、古典ビットと同じような方法で誤り訂正を行うことができません。実際にどのように量子誤り訂正を実装しているかに関しては、今後の記事に詳しい解説を書いていきたいと思います。
ここまでの内容で、量子誤り訂正がいかに重要な技術なのかを理解していただけたかと思います。しかし、問題はこの量子誤り訂正を実装しようとすると、非常に多数の量子ビットが必要になります。
現在の量子コンピュータは、ショアのアルゴリズムを使ってRSA暗号を解読できるのか?
具体的にどれくらいの量子ビットが必要なのかを考えるために、量子コンピュータがショアのアルゴリズムを使って、RSA暗号を解読することを考えてみます。
前回の記事でも少し述べたように、RSA暗号とは、現在のインターネットにおける情報処理の安全性を担保している重要な暗号です。つまり、RSA暗号が破られてしまうと様々な情報通信の安全性が脅かされてしまうのです。
現在、高性能なパソコンを使ってもRSA暗号を解くためには、非常に長い時間がかかります。しかし、ショアのアルゴリズムと呼ばれるアルゴリズムを用いることで、量子コンピュータが現実的な時間内にRSA暗号を解読できる可能性があるのです。
さて、量子コンピュータがかなり大きなRSA暗号を解読するにはどれくらいの量子ビットが必要になるでしょうか。いろいろな試算がありますが、例えばこちらの例 [1] では2048bitの鍵長のRSAを約8時間で解くには、2千万量子ビットという膨大な数が必要になります。
現在実現されている量子コンピュータ
では、現在の量子コンピュータはどれくらいの規模のものが実現されているのでしょうか。現在開発されている量子コンピュータとして、以下の二つの主流な方式があります。
1. 超伝導量子ビット・・・Google, IBM 等
2. イオントラップ・・・IonQ, Honeywell 等
これ以外にも、ほかの量子ハードウェアをを用いた方式があります。しかし、現在のところ超伝導とイオントラップが一番量子ビットの集積化に成功しているのでこれらを例にしたいと思います。
現在の量子ビット数の集積数を結論から申し上げますと、
1. 超伝導量子ビット・・・54 qubits (2019, Google [2])
2. イオントラップ・・・11 qubits (2019, IonQ [3])
つまり、たかだか数十量子ビットのマシンしか開発されていないということです。(これでもすごい時代になったなという感じですが。)
このように、最先端の量子コンピュータでも、量子ビットの数はたかだか数十程度です。つまり、誤り訂正を実装して大規模な量子計算を行うにはまだまだリソースが足りないのが現状です。
NISQデバイス
現在の量子コンピュータは、大規模な量子計算を行うことはできません。それでは、現在の量子コンピュータは役に立たないマシンなのでしょうか。その問いに答えを与えてくれるかもしれないのが、NISQデバイスです。NISQとは、Noisy Intermediate-Scale Quantumの略です。これは、2018年に量子情報の分野で有名なJohn Preskillが提案した概念です[4]。NISQデバイスの中身を見ていく前に、ここで言葉の意味を解説しておきます。
Noisy
ノイズの影響があるという意味です。これは、使用できる量子ビットの数が非常に限られているため、前回の記事で述べた量子誤り訂正を実装することができないという意味です。計算過程で発生するノイズの影響を受けてしまいます。
Intermediate-Scale
中規模の量子デバイスという意味です。量子ビットの数としては、数十から数百ビットとなり、計算を実行するリソースが非常に限られています。
何度も繰り返すように、NISQデバイスでは、利用できる量子ビット数が限られており、量子誤り訂正を実装することができません。その結果、計算結果がノイズの影響を受けてしまいます。
しかし、そのような限られた状況の中でも量子性を上手く用いることで、何か意味のある(古典コンピュータに対して優位な)計算ができないのかという目的で考案されたのがNISQデバイスです。
NISQアルゴリズム
NISQデバイスを用いて、様々な問題を解くために考案されたアルゴリズムをNISQアルゴリズムと呼びます。
量子ー古典ハイブリッドアルゴリズム
限られたリソースしか持たないNISQデバイスを使って、問題を解くにはどのように量子コンピュータを利用するのが良いでしょうか。一番筋の良い作戦としては、量子コンピュータが得意な部分のみを量子コンピュータが担い、その他の部分は古典コンピュータに任せるというものです。これを量子ー古典ハイブリッドアルゴリズムと呼びます。
この量子-古典ハイブリッドアルゴリズムをベースにしたNISQアルゴリズムが、近年様々な分野への応用を目的として開発が行われています。ここでは、具体的な内容には立ち入りませんが、名前だけをあげると、
・Variational Quantum Eigensolver(VQE)[5]・・分子の基底エネルギーの探索
・Quantum Approximate Optimization Algorithm (QAOA) [6]・・・最適化問題
等が有名です。これらのアルゴリズムに関しては、今後の記事で詳しい内容を述べようと思います。
NISQデバイスの意義
現在のところ、NISQデバイスが古典コンピュータに対して優位であるかどうかは分かっていません。しかし、NISQアルゴリズムは物性研究や量子化学計算、そして機械学習への応用を中心として、すごい速さで研究が推し進められています。もしかすると、今後古典コンピュータをも凌駕するアプリケーションが発見されるかもしれません。
さらにNISQデバイスは、将来的に大規模な量子コンピュータを実現するために、解決しなければならない課題を洗い出すために使われることが期待されています。ここから先は、人類未踏の境地であり、「やってみないと分からない」のです。そこで、NISQデバイスが果たす役割は大きいと考えられています。
参考文献
[1]: C. Gidney and M. Ekerå, Quantum, 5, 433, (2021).
[2]: F. Arute et al., Nature 574, 505 (2019).
[3]: K. Wright et al., Nat. Commun. 10, 5464 (2019).
[4]: J. Preskill, Quantum 2, 79(2018).
[5]: A. Peruzzo et al. Nat. Commun. 5, 4213 (2014).
[6]: E. Farhi et al. arXiv:1411.4028 (2014).