実用的な問題を解くために必要なqubit数

こんにちは。テラスカイの竹澤です。
こちらは[量子コンピュータ Advent Calendar 2018](https://qiita.com/advent-calendar/2018/quantum)の2日目の記事になります。

「qubit数がどのくらいになると実用的な問題が解けるのですか？」
これは最近よくいただく質問の1つです。

ググってみてもあまり有益な情報がないようですので、その質問に答えることに挑戦してみるのがこの記事です。ちなみに、今回はD-Waveに代表される量子アニーラーは対象にせず、IBM Qに代表される量子ゲート方式を対象にしています。

また、普段は量子アニーラー/量子コンピューターの啓蒙活動をしているのもあり、今回はビジネスパーソン向けに、ティータイムに読み物的に見てもらうことを心がけました。プロ向けの内容ではない点、ご了解ください。

# 2018年のqubit数競争
この1年はqubit数に大きな進展があった1年だと思います。2017年11月頭の時点で、利用出来る最大のqubit数はIBM Qの16-qubitでした。その直後である11月10日にIBMが発表を行ってから、各社が競うようにしてqubit数の増大をアピールした1年でした。まずはそれを一覧にしてみました。「実現qubit数」は利用出来ますと公言しているqubit数、「予定qubit数」はプロトタイプ実装等で今後実現を目指していると公表された数を示しています。

|社名　　　|発表年月　　|実現qubit数|予定qubit数|補足   |情報源　　|
|:--------|:---------|:-----------|:-----------|:-------|:-------|
|IBM|17/11|20|50|50-qubitはプロトタイプ|[こちら](https://www-03.ibm.com/press/us/en/pressrelease/53374.wss)|
|Intel|18/01|-|49|49-qubitをテスト中|[こちら](https://newsroom.intel.com/wp-content/uploads/sites/11/2018/05/49-qubit-processor-tangle-lake-infographic.jpg)|
|Alibaba|18/03|11|-|クラウド提供|[こちら](https://www.alibabacloud.com/press-room/alibaba-cloud-and-cas-launch-one-of-the-worlds-most)|
|Google|18/03|-|72|テスト中|[こちら](https://ai.googleblog.com/2018/03/a-preview-of-bristlecone-googles-new.html)|
|Rigetti|18/08|19|128|19-qubitは2017/12の論文に記載あり。128-qubitは今後12ヶ月以内に実現とある。|[こちら](https://medium.com/rigetti/the-rigetti-128-qubit-chip-and-what-it-means-for-quantum-df757d1b71ea)|

これを見ると、発表としては128-qubitという大きな数字が出てきているものの、利用できるのは、IBMの20-qubitということになります。ニュースを見ている限りはすごく増えた印象があるのですが、現実に利用できる点ではそれほど増えていないことが分かります。

# 創薬において期待されるqubit数
今年2018年6月に出た[Towards the Practical Application of Near-Term Quantum Computers in Quantum Chemistry Simulations: A Problem Decomposition Approach](https://arxiv.org/pdf/1806.01305.pdf)という、1QBit社の方々が中心に書かれた論文があります。英語がわかりやすく説明が丁寧なので、非常に読みやすい論文です。

この冒頭部分のFig.1に興味深いチャートが記載されていますので、引用させていただきます。
<img width="630" alt="qubit-fig1.png" src="https://qiita-image-store.s3.amazonaws.com/0/184457/629499e7-2fdd-468a-1387-9b543642c190.png">

まず左側のAのチャートですが、これはアルカンと呼ばれる炭素と水素で出来た分子のシミュレーションを量子コンピュータでやろうとしたときにどのぐらいのqubitが必要かというチャートになっています。皆さんがよく知っているプロパンガスのプロパンもアルカンなのですが、そのプロパンで50qubit弱、もう少し大きいヘプタン（分子構造はチャート内に図示されています）で約100qubitが必要であるということを表現しています。これは本文中でも触れられていますが、もっとも基本的なシミュレーションの場合で、より精度を上げようとすると必要なqubit数は増えます。

では100qubitでシミュレーションできるヘプタンと同じぐらいの分子は、創薬でいうとどういう位置づけなのかというのを表すのがチャートBです。薬に使われている物質などが網羅されている[DrugBank](https://www.drugbank.ca)という非常に有用なデータベースがあるのですが、このデータベースに記載されている分子について、どのぐらいの分子量の物質がどのぐらいの頻度で現れるかを調べています。いいかえると、薬として有用な物質はどのぐらいの分子量のものが多いのか示した図です。
そのチャートBを見ると、だいたい300Daぐらいにピークがあるのが分かります。一方、先ほど出てきたヘプタンの分子量は100Daなのですが、これはチャート上はピンク色で表示されており、全体の4%にしか相当しません。つまり、創薬的に有用な物質の96%のシミュレーションをするためには100qubitではまだまだ足りないということを示しています。

ちなみに、私が花粉症のときに飲む薬は、Bepotastine Besilateというのが主成分のようなのですがDrugBankで調べてみると分子量は547Daと書かれていました。まさに96%の部分に属する分子ですね。

ちなみにこの論文の主旨ですが、大きな分子のシミュレーションをするときに、Problem Decomposion(PD)というテクニックを使って、大きい分子をsubsystemと呼ばれる小さいものに分割することによって、より少ないqubit数や、短いゲートプログラムでシミュレーションできるようにしよう、というものになっています。3つのPD手法を比較しているのですが、70-80%のqubit数を削減できるものもあり、そういう意味では現状実現されているハードウェアでも解ける問題の範囲が増えることを示唆しています。これは非常に楽しみな結果だと思います。

# エラーとの戦い
エラーのない量子コンピューターは（我々が普段使っている）古典コンピューターでシミュレートすることができます。前述の論文でもシミュレーターを使った場合についてまずは議論されており、実際の量子コンピューターを使った場合は、残念ながら発生するエラーによってその精度が落ちることが示唆されています。
では、現在どのぐらいのエラーが発生するのでしょうか。

一定の範囲であれば無料で利用できるIBM Qの[公開ページ](https://www.research.ibm.com/ibm-q/technology/devices/)から情報を拾ってみたいと思います。
IBM Q 20 Tokyoという20-qubitの最新ハードウェアの場合、11/30夜時点で次の情報が記載されています。定期的にキャリブレーションされているため、見る日によって情報は変わるかも知れません。
<img width="337" alt="Q20calib.png" src="https://qiita-image-store.s3.amazonaws.com/0/184457/c78a2dc8-8a06-a1c0-39eb-4486035a374d.png">

数値の見方の解説ページを見つけられなかったのですが、Gate errorがゲート操作のエラー、Readout errorが読み出し時のエラーと推測しますが、それぞれ、0.17%、5.41%ということで、かなり高いことが分かります。

[IBMがFlickrで公開している画像](https://www.flickr.com/photos/ibm_research_zurich/sets/72157663611181258/with/34662903516/)のうち、エラーレートに関する考察をしているこちらの画像が私のお気に入りです。
![34576265471_a0424d313d_h.jpg](https://qiita-image-store.s3.amazonaws.com/0/184457/449038cd-6344-6e97-054d-1bcae459d6f9.jpeg)

オレンジの吹き出しには、エラーレートが変わらない場合、qubitが100増えても解ける問題は対して変わらない、とあり、一方でグレーの吹き出しには、qubitが増えなくてもエラーレートが1/10になれば解ける問題が大幅に増える、という表現がなされています。これは非常に的確な表現だと思います。

メディアではqubit数の増加ばかりが注目されて取り上げられますが、ここで見るようにエラーレートも重要な性能評価指標ですし、その意味では、コヒーレンスタイム（量子状態を維持できる時間）、1回のゲート操作にかかる時間、プログラムできるゲート回路の長さ、などいろいろな評価指標があります。

# エネルギー消費の2%って多いよね？
20世紀初頭にハーバー・ボッシュ法と呼ばれる手法が発明され、空気中の窒素からアンモニアを生成できるようになり、これによって肥料を大量生産できるようになり、食物生産に大きな影響を与えたと言われています。この方法は100年以上たった今も主流の方法であり、全世界のエネルギー消費の2%分がこの用途だそうです。

マイクロソフトはこのエネルギーの無駄遣いを改善するために量子コンピューターの活用を検討しているというニュースを以前耳にしたので、その根拠をググってみたところ2016年の[Elucidating Reaction Mechanisms on Quantum Computers](https://arxiv.org/abs/1605.03590)という論文を見つけました。
ところがこの論文は27ページもある大作で、ざっと目を通しただけで今日に至ってしまいました。また2016年以降、この論文を引用して新たな知見が得られているかもしれませんが追えていません。ただ、今回の記事のテーマである「必要なqubit数」について触れられているところがあるので簡単に紹介します。

この論文で取り上げているのは生物界に存在するニトロゲナーゼという酵素で（ハーバー・ボッシュ法の）高温・高圧環境下でなくても、アンモニアを生成することができます。しかしながらこの反応については良くわかっていないことが多いため、このシミュレーションに量子コンピューターを使おうという試みです。
論文ではシミュレーションに必要な計算時間と論理qubit数を推定しています。一部を抜粋したのが次の表です。
<img width="766" alt="sim_estimate.png" src="https://qiita-image-store.s3.amazonaws.com/0/184457/45c4657d-cfeb-e01c-fe76-cb8daa08dbf0.png">

1行目のSerialというのがqubitを1つずつ順番に操作していく方法です。回路が単純化出来るので論理qubitは111で済むのですが計算に130日かかる、という見方ができる表です。論理qubitというところに注目が必要で、実際にはエラー訂正のために追加のqubitが必要になりますので、これよりも何倍かのqubitが必要です。何倍必要かはエラー訂正の方法によって異なります。エラー訂正の方法としてsurface codeというキーワードが論文にも出ていていますので、気になった方はググってみてください。

# まとめ
本日の記事は以上です。
「この問題には○-qubit必要です」と明確に答えられている訳ではないですが、現状の量子コンピューターが置かれている状況がおわかりいただけたのではないかと思います。
私としては決して悲観しているわけではなく、メインで取り上げた論文のようにqubit数を削減する取り組みもあり、また予定qubit数としては、128-qubitというものが来年登場するということも言われていますので、今回取り上げたものが現実問題に適用出来る日も近づいてきていると実感しています。