量子コンピュータって速いの?

量子コンピュータの話をすると、「量子コンピュータって速いの?」と聞かれる。このすごく素朴な疑問は当然のように速いという回答を期待しているようだが、答えるのに戸惑ってしまう。

NISQ (Noisy Intermediate-scale Quantum) deviceという、ここ数年の開発のターゲットとなっている量子コンピュータは、遅くても1ms以内に計算が終わる。これは速いと言いたいところだが、正確には1ms以内に計算を終わらせなければならないと言った方が正しい。

量子コンピュータは、古典コンピュータで計算の基本単位となる $ 0 $, $ 1 $ の2つの状態を取れる「ビット」の代わりに、 $ |0\rangle $ , $ |1\rangle $ の2つの状態と、それらの重ね合わせ状態を取ることのできる「量子ビット (qubit)」を基本単位として計算を行う。量子コンピュータは、この重ね合わせ状態をうまく計算に役立てることによって、古典コンピュータよりも速い計算ができるとされている。

コヒーレンス

しかし古典ビットの状態と比べると、量子ビットの状態はノイズに弱く、とても壊れやすい。例えば $|1\rangle$ という状態に用意したはずの量子ビットを、適当な時間経ってから確認してみると $|0\rangle$ という初期化された状態になってしまっていたりする(このように初期化されてしまう時間をT1と呼ぶ) 。このような初期化に加え、$|0\rangle, |1\rangle$ の重ね合わせ状態が壊れてしまい確率的にサンプルされた古典ビットになってしまう現象も起こる(このように重ね合わせが壊れる時間をT2とよぶ)。一定時間経つと、量子ビットの重ね合わせの状態は全て壊されてしまう。量子コンピュータが量子ビットが重ね合わせ状態を失ったら、確率的に0か1のどちらかしか取らない古典コンピュータのビットと同じになり、量子コンピュータを量子コンピュータたらしめる特性がなくなる。この量子性を保つ時間をコヒーレンス時間という。コヒーレンス時間が短ければ、計算した結果が全て壊れてしまうので、意味のある計算はできない。
ただ、量子アニーリングのようにT1よりずっと長い時間計算し、サンプリングなどとして利用するという面白い方法はあるが、これは素因数分解をして暗号を破るような「計算」として使えないと言われている。

誤り訂正

デコヒーレンス時間をほぼ無限長にするのが誤り訂正の技術である。
普段は誰も意識しないが、あなたの目の前にある古典コンピュータの古典ビットでも、誤り訂正は必ず使われている。量子ビットほど速くは無いものの、古典ビットも壊れることがあるからだ。もし誤り訂正がなければ、ハードディスクやフラッシュメモリ上で、正しいデータを保存しておくことはできないし、CPUが計算を行うこともできない。誤り訂正は、誤りを検出するための工夫を古典ビットに施しておき、常にそれを監視し続けることで実現する。

古典コンピュータの誤り訂正の研究も凄まじい勢いで行われている。日本が誇るスーパーコンピュータの「京」では約9万ノードで計10PFLOPS(10PFLOPSは1秒あたり1京回の浮動小数点演算を行うこと)の計算を33.3時間行ったときにLINPACK(線形代数の数値演算ライブラリ)を90%の確率で成功されることを実現させている。このために、エラー率は1ノードあたり36.0FIT(FITとは10億時間≒10万年あたりのエラー回数)が要求されいる。このレベルまでに来ると、IC材料中の放射性不純物から出るa線や宇宙線起因の中性子線による電流ノイズを考慮するレベルのエンジニアリングが必要になる。「京」のチップでは、誤り訂正性能評価テストのために人工的に中性子線を当てている。*1

それと同じようなことを量子ビットについても行って、誤りが起こったときすぐに訂正してやれば、実効的なデコヒーレンス時間を数時間・数日・数年・・・と伸ばしていくことができる。

量子コンピュータの誤り訂正では 1 ビットの情報を表現するために、多数のビットを使う。簡単な例は、多数決符号と呼ばれる方法だ。この方法では、例えば 1 ビットの情報を表現するのに、3 ビットを用いる。その 3 ビットのうち、0 が多ければ 3 ビット全体で「0」を表すと約束し、1 が多ければ全体で「1」を表すと約束する。

誤り訂正がないNISQ deviceでは最高精度と言われているGoogle Quantum AI Labのデバイスでも、1qubitで1回操作するだけで0.05%-0.1%の確率でエラーを起こし、2qubitに対する1回の操作では0.5%-1%の確率でエラーを起こす。これは「京」においての10万年計算して数十回のエラーに比べたら相当大きなエラーレートであることが分かる。

最後に

ウルトラマンが3分しか地球上で戦えなく、3分以内に敵を退治しないといけないように、量子コンピュータの計算は、現在100μs程度のコヒーレンス時間以内に収めないといけない。
ただ、ウルトラマンにイノベーションがなく地球上での活動時間が3分で変わらないのに対して、1999年NECの研究所に所属していた蔡兆申(ツァイ・ツァオシェン)氏と中村泰信氏が世界で初めて実現した量子ビットで10nsだったT1の時間は2015年に100μsと5桁近く長くなっている。(この成長スピードはムーアの法則になぞらえて、Yale大学の教授がコヒーレンス時間は3年毎に10倍長くなるというシェルコフの法則と提唱した)

しかし、ここでコアなウルトラマンファンなら気づくであろう。実はイノベーションを起こしたウルトラマンがいる。地球の力を借りて時間無制限に活動できるウルトラマンガイアだ。
量子誤り訂正機能をもった量子コンピュータは、今のパソコンのように電源が切れない限り計算し続けることができる。これは永遠に戦えるウルトラマンガイアのようだ。

*1 以下のサイトを参考にした。
http://pr.fujitsu.com/jp/news/2004/12/20-2.html
https://pc.watch.impress.co.jp/docs/news/event/556602.html