IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧 ▶ 国立大学法人大阪大学の特許一覧

特開2024-129262量子計算プログラム、量子計算方法、および情報処理装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024129262
(43)【公開日】2024-09-27
(54)【発明の名称】量子計算プログラム、量子計算方法、および情報処理装置
(51)【国際特許分類】
   G06N 10/40 20220101AFI20240919BHJP
   H03M 13/47 20060101ALI20240919BHJP
   G06F 7/38 20060101ALI20240919BHJP
【FI】
G06N10/40
H03M13/47
G06F7/38 510
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023038346
(22)【出願日】2023-03-13
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和2年度、国立研究開発法人科学技術振興機構、研究成果展開事業 共創の場形成支援(共創の場形成支援プログラム)「量子ソフトウェア研究に関する国立大学法人大阪大学による研究開発」委託研究開発、産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(71)【出願人】
【識別番号】504176911
【氏名又は名称】国立大学法人大阪大学
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】赤星 友太郎
(72)【発明者】
【氏名】藤井 啓祐
【テーマコード(参考)】
5J065
【Fターム(参考)】
5J065AD03
5J065AE02
5J065AF01
(57)【要約】
【課題】量子計算の計算時間を短縮する。
【解決手段】情報処理装置10は、符号化された論理量子ビットに対して作用させる量子ゲートが回転ゲート2の場合、回転ゲート2に設定された目的回転角を指定回転角に設定する。情報処理装置10は、指定回転角に基づいて、所定の補助状態を有する第1の論理量子ビット4を生成する。情報処理装置10は、第1の論理量子ビット4と、回転ゲート2を作用させる第2の論理量子ビット5とを入力として、指定回転角の順回転または指定回転角と符号が逆の逆回転の確率的な回転操作を実行する。そして情報処理装置10は、回転操作が順回転となるまで、目的回転角に基づいて指定回転角を更新しながら、第1の論理量子ビット4を生成する処理と回転操作を実行する処理とを繰り返す。
【選択図】図1
【特許請求の範囲】
【請求項1】
符号化された論理量子ビットに対して作用させる量子ゲートが回転ゲートの場合、前記回転ゲートに設定された目的回転角を指定回転角に設定し、
前記指定回転角に基づいて、所定の補助状態を有する第1の論理量子ビットを生成し、
前記第1の論理量子ビットと、前記回転ゲートを作用させる第2の論理量子ビットとを入力として、前記指定回転角の順回転または前記指定回転角と符号が逆の逆回転の確率的な回転操作を実行し、
前記回転操作が前記順回転となるまで、前記目的回転角に基づいて前記指定回転角を更新しながら、前記第1の論理量子ビットを生成する処理と前記回転操作を実行する処理とを繰り返す、
処理をコンピュータに実行させる量子計算プログラム。
【請求項2】
前記第1の論理量子ビットを生成する処理では、前記指定回転角がθ(θは実数)の場合、RZ(θ)|+>の前記補助状態を有する前記第1の論理量子ビットを生成する、
請求項1記載の量子計算プログラム。
【請求項3】
前記第1の論理量子ビットを生成する処理では、4つの物理量子ビットで2つの論理量子ビットの状態を表す符号であり、符号距離が2の[[4,2,2]]符号を用いて符号化された前記第1の論理量子ビットを生成する、
請求項1記載の量子計算プログラム。
【請求項4】
前記第1の論理量子ビットを生成する処理では、前記[[4,2,2]]符号の符号距離を所定の符号距離に拡張することで、前記所定の符号距離の前記第1の論理量子ビットを生成する、
請求項3記載の量子計算プログラム。
【請求項5】
前記第1の論理量子ビットを生成する処理では、前記補助状態についてのエラーを検知した場合には、前記補助状態を有する前記第1の論理量子ビットを生成する処理をやり直す、
請求項1記載の量子計算プログラム。
【請求項6】
前記第1の論理量子ビットを生成する処理と前記回転操作を実行する処理との繰り返しでは、第1の指定回転角を適用して生成された前記第1の論理量子ビットを入力として実行された前記回転操作が前記逆回転となった場合、前記第1の指定回転角の2倍の角度を、次回の前記第1の論理量子ビットを生成する処理に適用する第2の指定回転角とする、
請求項1記載の量子計算プログラム。
【請求項7】
前記第1の論理量子ビットを生成する処理と前記回転操作を実行する処理の繰り返しでは、前記第1の指定回転角の2倍の角度を2πで除算した剰余が0以上かつπ未満の場合、前記剰余の角度を前記第2の指定回転角とし、前記剰余がπより大きくかつ2π以下の場合、前記剰余から2πを減算して得られる角度を前記第2の指定回転角とする、
請求項6記載の量子計算プログラム。
【請求項8】
前記回転操作は、前記順回転または前記逆回転の確率的なゲート操作を示すゲートテレポーテーション回路に従った回転操作である、
請求項1記載の量子計算プログラム。
【請求項9】
符号化された論理量子ビットに対して作用させる量子ゲートが回転ゲートの場合、前記回転ゲートに設定された目的回転角を指定回転角に設定し、
前記指定回転角に基づいて、所定の補助状態を有する第1の論理量子ビットを生成し、
前記第1の論理量子ビットと、前記回転ゲートを作用させる第2の論理量子ビットとを入力として、前記指定回転角の順回転または前記指定回転角と符号が逆の逆回転の確率的な回転操作を実行し、
前記回転操作が前記順回転となるまで、前記目的回転角に基づいて前記指定回転角を更新しながら、前記第1の論理量子ビットを生成する処理と前記回転操作を実行する処理とを繰り返す、
処理をコンピュータが実行する量子計算方法。
【請求項10】
符号化された論理量子ビットに対して作用させる量子ゲートが回転ゲートの場合、前記回転ゲートに設定された目的回転角を指定回転角に設定し、前記指定回転角に基づいて、所定の補助状態を有する第1の論理量子ビットを生成し、前記第1の論理量子ビットと、前記回転ゲートを作用させる第2の論理量子ビットとを入力として、前記指定回転角の順回転または前記指定回転角と符号が逆の逆回転の確率的な回転操作を実行し、前記回転操作が前記順回転となるまで、前記目的回転角に基づいて前記指定回転角を更新しながら、前記第1の論理量子ビットを生成する処理と前記回転操作を実行する処理とを繰り返す処理部、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、量子計算プログラム、量子計算方法、および情報処理装置に関する。
【背景技術】
【0002】
量子コンピュータを用いた計算では、量子ビットに対するゲート操作を行うことで、量子回路に従った量子計算が実行される。量子ビットは、計算に使用する情報の最小単位であり、古典コンピュータのビット(古典ビット)に相当する。ただし、量子ビットは、古典ビットと異なり、「0」と「1」との重ね合わせ状態も取り得る。
【0003】
量子ビットの情報は、環境との相互作用やゲート操作の誤差などにより、壊れてしまう(エラーが発生する)ことがある。エラーへの対処としては、量子エラー訂正と量子エラー緩和とがある。
【0004】
量子エラー訂正は、量子ビットを複数組み合わせて符号化(冗長化)することで、エラーの発生の検知および訂正する処理である。以下、符号化されていない量子ビットを物理量子ビット、符号化された量子ビットの集合を論理量子ビットと呼ぶ。量子エラー緩和は、エラーを含んだまま計算を進め、量子回路の変形や測定結果の外挿などによりエラーの影響を緩和する処理である。
【0005】
論理量子ビットに対して量子エラー訂正を行いながら量子計算を行う量子コンピュータは、誤り耐性付き量子コンピュータ(FTQC:Fault Tolerant Quantum Computer)と呼ばれる。FTQCでは、所定の基本ゲートを組み合わせることであらゆる量子計算が実行できる。所定の基本ゲートとは、Hゲート、CNOTゲート、Sゲート、およびTゲートである。Hゲート、CNOTゲート、SゲートはClifford演算を行う量子ゲートであり、Tゲートはnon-Clifford演算を行う量子ゲートである。これらの基本ゲートの組は、Clifford+Tと呼ばれる。
【0006】
FTQCに関しては、様々な技術が提案されている。例えば量子Clifford回路のフォールト・トレラント計算を効率よく実現し得るとともに、物理量子ビット及び物理量子ゲートの使用数を減少させることができる計算方法が提案されている。また、非ユニタリ計算を確率的に実行する回路の設計方法も提案されている。量子誤り訂正と量子誤り緩和を効率的なFTQCアーキテクチャに統合し、一定のサンプリングオーバーヘッドを犠牲にしながら、符号距離とTゲート数を効果的に増加させる技術も提案されている。さらに、Clifford演算をエラー訂正によってノイズから保護しつつ、ノイズの多い論理Tゲートによってもたらされるエラーを擬確率法を用いて緩和する論理Clifford+T回路の実装方法も提案されている。魔法状態が、その魔法状態の生成に用いられる2量子ビットのゲート演算よりも高い忠実度を持つことができるようにする技術も提案されている。例えば超電導方式に代表されるような2次元最近接結合(2DNN:Two-Dimensional Nearest-Neighbor)に制限された量子コンピュータ上で、表面符号を用いた効率的な論理Cliffordゲート実行を可能にする格子手術(Lattice surgery)と呼ばれる方法も提案されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特表2022-520293号公報
【特許文献2】米国特許出願公開第2005/0167658号明細書
【非特許文献】
【0008】
【非特許文献1】Yasunari Suzuki, Suguru Endo, Keisuke Fujii and Yuuki Tokunaga1, "Quantum Error Mitigation as a Universal Error Reduction Technique: Applications from the NISQ to the Fault-Tolerant Quantum Computing Eras", PRX QUANTUM 3, 010345(2022), the American Physical Society, 18 March 2022
【非特許文献2】Christophe Piveteau, David Sutter, Sergey Bravyi, Jay M. Gambetta, and Kristan Temme, "Error Mitigation for Universal Gates on Encoded Qubits", PHYSICAL REVIEW LETTERS, Volume 127, Issue 20, 12 November 2021
【非特許文献3】Ying Li, "A magic state's fidelity can be superior to the operations that created it" New Journal of Physics, Volume 17, 13 February 2015
【非特許文献4】Clare Horsman, Austin G Fowler, Simon Devitt, Rodney Van Meter, "Surface code quantum computing by lattice surgery", New Journal of Physics, 14(12), 123001(27pp), 7 December 2012
【非特許文献5】V. Kliuchnikov, D. Maslov and M. Mosca, "Practical Approximation of Single-Qubit Unitaries by Single-Qubit Quantum Clifford and T Circuits," in IEEE Transactions on Computers, vol. 65, no. 1, pp. 161-172, 1 Jan. 2016
【発明の概要】
【発明が解決しようとする課題】
【0009】
Clifford+Tによる誤り耐性量子計算において、論理量子ビットのある特定の回転軸周りの所定の回転角φ(2πの無理数倍)の回転は、Tゲートを用いて実現できる。回転角φの回転を繰り返すことで、任意の角度の回転が可能である。しかし、十分に良い精度で任意の角度で回転させるには、現在知られている最も優れた方法でもTゲートのゲート操作を約100回繰り返すこととなり、計算時間が長期化する。
【0010】
1つの側面では、本件は、誤り耐性量子計算の計算時間を短縮することを目的とする。
【課題を解決するための手段】
【0011】
1つの案では、以下の処理をコンピュータに実行させる量子計算プログラムが提供される。
コンピュータは、符号化された論理量子ビットに対して作用させる量子ゲートが回転ゲートの場合、回転ゲートに設定された目的回転角を指定回転角に設定する。コンピュータは、指定回転角に基づいて、所定の補助状態を有する第1の論理量子ビットを生成する。コンピュータは、第1の論理量子ビットと、回転ゲートを作用させる第2の論理量子ビットとを入力として、指定回転角の順回転または指定回転角と符号が逆の逆回転の確率的な回転操作を実行する。そしてコンピュータは、回転操作が順回転となるまで、目的回転角に基づいて指定回転角を更新しながら、第1の論理量子ビットを生成する処理と回転操作を実行する処理とを繰り返す。
【発明の効果】
【0012】
1態様によれば、誤り耐性量子計算の計算時間を短縮することができる。
【図面の簡単な説明】
【0013】
図1】第1の実施の形態に係る量子計算方法の一例を示す図である。
図2】第2の実施の形態のシステム構成の一例を示す図である。
図3】量子計算システムのハードウェアの一例を示す図である。
図4】量子ビットの特徴を示す図である。
図5】量子エラー訂正の一例を示す図である。
図6】誤り耐性量子計算に用いられる基本ゲートの一例を示す図である。
図7】Tゲートを実現する回路の一例を示す図である。
図8】Tゲートを用いた任意の回転角への回転の一例を示す図である。
図9】任意回転のゲート操作を行う量子回路の一例を示す図である。
図10】目的の回転角が得られるまでの繰り返しの一例を示す図である。
図11】補助状態を準備するための量子回路の一例を示す図である。
図12】表面符号への拡大の一例を示す図である。
図13】シンドローム測定によるエラー検知の一例を示す図である。
図14】Xシンドローム測定の一例を示す図である。
図15】Zシンドローム測定の一例を示す図である。
図16】[[4,2,2]]符号のエラー検知用の量子回路の一例を示す図である。
図17】量子計算システムの機能の一例を示すブロック図である。
図18】機能間のデータの流れを示す図である。
図19】Clifford演算実行部の機能の一例を示すブロック図である。
図20】任意回転実行部の機能の一例を示すブロック図である。
図21】量子計算処理の手順の一例を示すフローチャートである。
図22】量子回路実行処理の手順の一例を示すフローチャートである。
図23】論理エラーの発生確率の数値計算結果の一例を示す図である。
図24】補助状態のエラー確率の計算結果の一例を示す図である。
図25】論理量子ビットの配置の一例を示す図である。
【発明を実施するための形態】
【0014】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
第1の実施の形態は、誤り耐性量子計算における計算時間を短縮するための量子計算方法である。
【0015】
図1は、第1の実施の形態に係る量子計算方法の一例を示す図である。図1には、第1の実施の形態に係る量子計算方法を実施する情報処理装置10が示されている。情報処理装置10は、例えば量子計算プログラムを実行することにより、第1の実施の形態に係る量子計算方法を実施することができる。
【0016】
情報処理装置10は、記憶部11と処理部12と量子ビットデバイス13を有する。記憶部11は、例えば情報処理装置10が有するメモリまたはストレージ装置である。処理部12は、例えば情報処理装置10が有するプロセッサまたは演算回路である。量子ビットデバイス13は、量子計算の情報の基本単位である量子ビットを実現する装置である。量子ビットデバイス13は、複数の物理量子ビットを有する。この物理量子ビットを複数組み合わせることで、符号化された論理量子ビットを生成可能である。
【0017】
記憶部11は、実行する量子計算の手順が示された量子回路1を記憶する。量子回路1は、例えば誤り耐性量子計算で実行可能な量子ゲートを用いて記述されている。誤り耐性量子計算で実行可能な量子ゲートには、任意の角度での回転操作を示す回転ゲート2が含まれる。
【0018】
処理部12は、量子回路1に基づいて誤り耐性量子計算を実行する。例えば処理部12は、量子ビットデバイス13内の物理量子ビットを用いて、符号化された複数の論理量子ビットを生成する。そして処理部12は、量子回路1に示される量子ゲートのゲート操作を論理量子ビットに対して実行する。処理部12は、論理量子ビットに対するゲート操作時にエラー検知およびエラー訂正を実施することで誤り耐性量子計算を実現する。
【0019】
例えば処理部12は、量子回路1に示される量子ゲートを順番に実行する。そして処理部12は、符号化された論理量子ビットに対して作用させる量子ゲートが回転ゲート2の場合、回転ゲート2に設定された目的回転角θ0を指定回転角θの初期値に設定する(θ0、θは実数)。次に処理部12は、指定回転角に基づいて、所定の補助状態を有する第1の論理量子ビット4を生成する。例えば処理部12は、RZ(θ)|+>の補助状態を有する第1の論理量子ビット4を生成する。なおRZ(θ)|+>は論理量子ビットの状態であることを明示するため、図1ではRZ(θ)|+L>と表記している。
【0020】
処理部12は、第1の論理量子ビット4と、回転ゲート2を作用させる第2の論理量子ビット5(状態|ψL>)とを入力として、ゲートテレポーテーション回路3に従った回転操作を実行する。ゲートテレポーテーション回路3は、指定回転角θの順回転または指定回転角θと符号が逆の逆回転の確率的なゲート操作を示す量子回路である。例えば1/2の確率で順回転となり、1/2の確率で逆回転となる。
【0021】
処理部12は、回転操作が順回転となるまで、目的回転角に基づいて指定回転角を更新しながら、第1の論理量子ビット4を生成する処理と回転操作を実行する処理とを繰り返す。例えば処理部12は、第1の指定回転角を適用して生成された第1の論理量子ビットを入力として実行された回転操作が逆回転となった場合、第1の指定回転角の2倍の角度を、次回の第1の論理量子ビットを生成する処理に適用する第2の指定回転角とする。この場合、1回目の回転操作(θ=θ0)で逆回転となった場合、指定回転角θは2θ0に更新される。2回目の回転操作(θ=2θ0)で逆回転となった場合、指定回転角θは4θ0に更新される。
【0022】
なお回転操作が順回転となったか逆回転となったかは、ゲートテレポーテーション回路3の実行過程で行われる測定結果に基づいて判断できる。例えば処理部12は、測定結果が「1」であれば順回転、「0」であれば逆回転と判断する。
【0023】
このように処理部12は、回転操作で順回転となるまで指定回転角θを更新しながら、第1の論理量子ビット4の生成と確率的な回転操作と繰り返すことで、目的回転角θ0の任意回転を実施することができる。このような任意回転のゲート操作では、平均2回で順回転となり、目的回転角θ0の回転が達成される。そのため、ゲート操作回数が少なくて済み計算時間が短縮される。またゲート操作回数が少ないことで余計なエラー蓄積が抑止できる。また任意回転の実行において魔法状態蒸留のような大量の物理量子ビットを利用するゲート操作は行われないため、使用する物理量子ビット数も少なくて済む。
【0024】
例えば処理部12は、4つの物理量子ビットで2つの論理量子ビットの状態を表す符号であり、符号距離が2の[[4,2,2]]符号を用いて符号化した第1の論理量子ビット4を生成する。このような符号化により、エラーの少ない第1の論理量子ビット4が生成される。
【0025】
第2の論理量子ビット5の符号距離が2より大きい場合、処理部12は、[[4,2,2]]符号の符号距離を所定の符号距離に拡大することで、所定の符号距離の第1の論理量子ビット4を生成する。これにより処理部12は、[[4,2,2]]符号で符号化しながらも、量子計算に求められる精度に応じた符号距離を有する第1の論理量子ビット4を生成することができる。
【0026】
第1の論理量子ビット4の補助状態についてエラーが検知される場合もある。この場合、処理部12は、補助状態を有する第1の論理量子ビット4を生成する処理をやり直す。これにより、エラー確率の少ない補助状態を有する第1の論理量子ビット4が生成される。
【0027】
回転操作が逆回転となった場合の指定回転角θの更新において、現在の指定回転角θの2倍の角度が、πを超える可能性がある。πを超えた場合、次回の指定回転角θを現在の2倍にするよりも、符号を反転させた逆向きの回転を行った方が、回転角の絶対値は小さくて済む。そこで処理部12は、例えば第1の指定回転角の2倍の角度を2πで除算した剰余が0以上かつπ未満の場合、剰余の角度を第2の指定回転角とする。また処理部12は、剰余がπより大きくかつ2π以下の場合、剰余から2πを減算して得られる角度を第2の指定回転角とする。これにより、指定回転角θが大きくなりすぎることを抑止し、回転角が大き過ぎることにより発生し得る問題(例えばエラー率の増加)を抑止することができる。
【0028】
〔第2の実施の形態〕
第2の実施の形態は、ユニバーサル量子計算を実現するための量子計算システムである。
【0029】
図2は、第2の実施の形態のシステム構成の一例を示す図である。量子計算システム30は、古典コンピュータ100と量子コンピュータ200とを有する。古典コンピュータ100は、いわゆるノイマン型コンピュータと呼ばれるコンピュータである。量子コンピュータ200は、量子力学の原理を応用した非ノイマン型のコンピュータである。古典コンピュータ100は、ネットワーク20を介して、端末31に接続されている。端末は、ユーザが使用するノイマン型のコンピュータである。
【0030】
ユーザは、端末31を用いて、求解対象の問題を量子計算で解くための量子回路を作成する。作成された量子回路は、端末から量子計算システム30に送信される。量子計算システム30は、古典コンピュータ100と量子コンピュータ200とが連係して、取得した量子回路に従った量子計算を実行する。そして量子計算システム30は、計算結果を端末31に送信する。
【0031】
図3は、量子計算システムのハードウェアの一例を示す図である。古典コンピュータ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
【0032】
メモリ102は、古典コンピュータ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
【0033】
バス109に接続されている周辺機器としては、ストレージ装置103、GPU(Graphics Processing Unit)104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
【0034】
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、古典コンピュータ100の補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
【0035】
GPU104は画像処理を行う演算装置である。GPU104は、グラフィックコントローラの一例である。GPU104には、モニタ21が接続されている。GPU104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
【0036】
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0037】
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取り、または光ディスク24へのデータの書き込みを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。
【0038】
機器接続インタフェース107は、古典コンピュータ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
【0039】
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。ネットワークインタフェース108は、例えばスイッチやルータなどの有線通信装置にケーブルで接続される有線通信インタフェースである。またネットワークインタフェース108は、基地局やアクセスポイントなどの無線通信装置に電波によって通信接続される無線通信インタフェースであってもよい。
【0040】
量子コンピュータ200は、古典コンピュータ100とバス109を共有している。量子コンピュータ200は、バス109を介して、古典コンピュータ100内の各要素と情報通信を行うことができる。
【0041】
量子コンピュータ200は、バス109に接続された量子演算処理装置201を有する。量子演算処理装置201は、量子回路に示される量子ゲートに応じた量子ビットのゲート操作と、量子ビットの状態の測定とを行う。量子演算処理装置201は、量子ビットデバイス202と量子ビット制御信号発生器203とを有する。量子ビットデバイス202は、複数の量子ビットの状態を保持すると共に、それらの量子ビットに対するゲート操作を行う。量子ビット制御信号発生器203は、量子ビットに対するゲート操作または測定を指示する制御信号を発生する。
【0042】
量子計算システム30は、以上のようなハードウェアによって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した情報処理装置10も、図3に示した量子計算システム30と同様のハードウェアにより実現することができる。
【0043】
古典コンピュータ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。古典コンピュータ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、古典コンピュータ100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また古典コンピュータ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0044】
次に、FTQCの実現が求められる理由と、FTQCを実現するための技術的な課題について説明する。
図4は、量子ビットの特徴を示す図である。量子コンピュータ200における情報の最小単位である量子ビット41は、状態|0>と状態|1>とを取り得るのに加え、それらの重ね合わせ状態を取ることができる。重ね合わせ状態では、量子ビット41を測定したときの値が|0>となるのか|1>となるのかが確率的に決まる。例えば|0>の確率と|1>の確率とが同じ場合、その量子ビット41の重ね合わせ状態は「2-1/2(|0>+|1>)」と表される。
【0045】
このような量子ビット41の持つ情報は、環境との相互作用や操作の誤差などにより壊れてしまう(エラーが発生する)。例えばエラーによって重ね合わせ状態が破壊されると、量子ビット41の状態が|0>のような状態に変化してしまう。計算精度を向上させるには、エラーが発生した量子ビットを検知すると共に、その量子ビットの状態を正しい状態に訂正することが求められる。
【0046】
そこで量子エラー訂正と呼ばれる技術が提案されている。量子エラー訂正では、量子ビットを複数組み合わせて符号化する。符号化された場合、符号化に用いられた複数の物理量子ビットによって、1または複数の論理量子ビットの状態が表現される。符号化された複数の量子ビット全体の状態に基づいて、エラーが発生した量子ビットの検知と訂正が行われる。
【0047】
図5は、量子エラー訂正の一例を示す図である。図5に示すように、複数の物理量子ビット42a,42b,・・・,42nによって論理量子ビット42が定義される。図5の例では、複数の物理量子ビット42a,42b,・・・,42nの状態がすべて|0>となっているときに、エラーが発生し、物理量子ビット42bの状態が|1>に反転している。このような場合、複数の物理量子ビット42a,42b,・・・,42nそれぞれの状態から得られる情報に基づいてエラーが検知される。そして、エラーが起きた物理量子ビット42bが特定され、その物理量子ビット42bの状態が訂正される。
【0048】
このように量子エラー訂正を適宜行うことで、物理量子ビットにエラーが発生しても、その数が許容される範囲であれば、論理量子ビット42としては正しい状態が維持される。論理量子ビットに対する量子エラー訂正を伴う量子計算は、所定の基本ゲートを組み合わせることで実現可能である。
【0049】
図6は、誤り耐性量子計算に用いられる基本ゲートの一例を示す図である。量子エラー訂正を伴う量子計算に用いる基本ゲートは、Hゲート43a、CNOTゲート43b、Sゲート43c、およびTゲート43dである。Hゲート43aは、アダマールゲートと呼ばれ、Z軸とX軸の間の45度の傾きの軸を回転中心として状態を180度回転させる量子ゲートである。CNOTゲート43bは、コントロールビットの状態が|0>であればターゲットビットの状態はそのままとし、コントロールビットの状態が|1>であればターゲットビットの状態を反転(|0>あれば|1>へ、|1>あれば|0>へ)させる量子ゲートである。Sゲート43cは、Z軸を中心にπ/2だけ状態を回転させる量子ゲートである。Tゲート43dは、Z軸を中心にπ/4だけ状態を回転させる量子ゲートである。
【0050】
このうちHゲート、CNOTゲート、およびSゲートは、Clifford演算子と呼ばれる。それに対して、Tゲートはnon-Clifford演算子と呼ばれる。そして、図6に示した基本ゲートをまとめてClifford+Tと呼ばれる。量子コンピュータ200計算におけるClifford+Tは、古典コンピュータ100におけるAND、XOR、NOTに相当する。すなわちClifford+Tの量子ゲートを組み合わせることで、あらゆる量子計算を実行することが可能である。
【0051】
Clifford+TのうちのTゲートは、ゲートテレポーテーション回路と魔法状態と呼ばれる量子ビットの状態とを組み合わせることで実行可能である。
図7は、Tゲートを実現する回路の一例を示す図である。状態が|ψ>の量子ビットにTゲート44を作用させ、T|ψ>の状態に変化させるゲート操作は、ゲートテレポーテーション回路44aによって実現できる。ゲートテレポーテーション回路44aの1番目の量子ビットの状態を|ψ>とする。2番目の量子ビット(補助量子ビット)には、|π/4>の状態が入力される。状態|π/4>は魔法状態と呼ばれる。この魔法状態は、論理量子ゲートで表される論理的な状態である。
【0052】
ゲートテレポーテーション回路44aには、2番目の量子ビットをコントロールビットとし、1番目の量子ビットをターゲットビットとするCNOTゲートが設けられている。CNOTゲートの後で、1番目の量子ビットの状態が測定される。測定結果が|0>であれば2番目の量子ビットに対するゲート操作は行われない。測定結果|1>であれば、2番目の量子ビットにSゲートとXゲートとのゲート操作(図7では「SX」と表記)が行われる。ゲートテレポーテーション回路44aに示すCNOTゲート、Sゲート、およびXゲートは、いずれも符号化された論理量子ビットに対するゲート操作である。
【0053】
ここでClifford+Tによる誤り耐性量子計算では、非常に多くの物理量子ビットが利用される。典型的には100万個以上の物理量子ビットが利用される。大量の物理量子ビットの多くの割合(例えば9割以上)が、論理量子ビットの任意角度の回転に利用される。任意角度の回転には、多数のTゲートによるゲート操作が行われる。
【0054】
回転角θ、回転軸n=(nx,ny,nz)の回転ゲートは、式(1)で表される。
【0055】
【数1】
【0056】
Tゲートのゲート操作は、式(2)に表される。
【0057】
【数2】
【0058】
式(2)に示すゲート操作を式(1)に当て嵌めると、Z軸周りの角度「π/4」の回転であることがわかる。
TゲートにHゲートを組み合わせると、式(3)に示すゲート操作となる。
【0059】
【数3】
【0060】
式(3)に示すゲート操作は、X軸周りの角度「π/4」の回転である。そして式(2)と式(3)との積を考えると、式(4)となる。
【0061】
【数4】
【0062】
式(4)のゲート操作は、回転軸n=(cos(π/8),sin(π/8),cos(π/8))周りのcos(φ/8)=cos2(π/8)を満たす回転角φの回転である。実現される回転角φは2πの無理数倍になっている。このような回転角φの回転を繰り返すことで、任意の角度への回転が実現できる。
【0063】
図8は、Tゲートを用いた任意の回転角への回転の一例を示す図である。グラフ45は、横軸がTゲート操作回数、縦軸は角度である。θは、目的の角度を示している。グラフ45の折れ線上の丸印が、1回の回転角φ(2πの無理数倍)による回転後の角度を示している。黒丸で示した角度が目的の角度に近づくように、回転角φの回転のTゲート操作が繰り返される。現在知られている最も効率のよい任意回転のTゲート分解方法である方法(非特許文献5)を用いると、π/128度の回転を精度10-10の近似で実現するには、約100回のTゲート操作を繰り返すこととなることが知られている。
【0064】
このように任意の回転角は、Tゲート操作の繰り返しで実現される。そして論理量子ビットに対するTゲートのゲート操作を行うには、前述のように魔法状態の補助量子ビットを用意することが求められる。
【0065】
精度のよい魔法状態を生成するには、魔法状態を所定の量子回路に入力し、エラーが生じていない状態を抽出するゲート操作が行われる。このようなゲート操作は魔法状態蒸留と呼ばれる。例えば15-to-1蒸留であれば、1つの魔法状態を生成するために論理量子ビットが15個利用される。1つの論理量子ビットが100個の物理量子ビットで符号化されている場合、1500個の物理量子ビットが消費されることとなる。
【0066】
Tゲートの精度は魔法状態の精度に依存するため、Tゲートの精度を上げる場合、魔法状態蒸留に入力する魔法状態を増やすこととなる。その結果、Tゲート操作に使用する物理量子ビット数は、約1千~1万個となる。このような操作を1万物理量子ビット規模の量子コンピュータで実行すると、魔法状態蒸留ですべてのリソースを使い果たしてしまい、肝心の量子計算そのものを実行することができない。そのため限られた物理量子ビット数で、可能な限り誤り耐性を維持した量子計算を行う方法を構築することが重要となる。
【0067】
FTQCで用いる物理量子ビット数を削減する技術として、前述の非特許文献1および非特許文献2がある。これらの技術は物理量子ビット数の削減には成功しているが、任意回転ゲートのゲート操作を実行するために低精度のTゲートが大量に用いられる。そのためエラーの蓄積が多い。そこで、Tゲートの精度を向上させることが求められる。
【0068】
Tゲートの精度向上、すなわち魔法状態の準備精度向上技術としては、例えば前述の非特許文献3に開示された技術がある。この技術では、符号化されていない魔法状態が準備され、その後、符号化される。あらゆる操作に確率pでエラーが発生すると仮定すると、非特許文献3における魔法状態の持つエラー率PLは、「PL≒46p/15」となる。なお、前述の非特許文献2では符号化された状態の一時的な解除を経て魔法状態が準備される。非特許文献2における魔法状態の持つエラー率PLは、「PL≒30p」である。
【0069】
このように非特許文献3,非特許文献2では、符号化されていない状態が部分的に利用されており、符号化されていない状態で発生したエラーが魔法状態の精度を低下させる。魔法状態の精度低下がTゲートの精度低下となって現れ、任意回転のゲート操作の精度が不十分となる。そのため非特許文献3、非特許文献2で提案された技術の実用性は十分とはいえない。
【0070】
以上説明したようにTゲートを用いた任意回転のゲート操作では、Tゲート操作が数多く繰り返されると共に、現状の物理量子ビット数ではTゲート操作を高精度に行うのが困難である。その結果、任意回転のゲート操作の精度が不十分となっている。
【0071】
そこで第2の実施の形態に示す量子計算システム30では、Tゲートを用いずに任意回転のゲート操作を実現する。具体的には量子計算システム30は、量子計算の実行において、Tゲートの代わりに任意回転を直接実行する(Clifford+rotation)。この際、量子計算システム30は、任意回転に利用する補助状態の準備プロセスを工夫することで、高精度の回転を実現する。
【0072】
図9は、任意回転のゲート操作を行う量子回路の一例を示す図である。ゲートテレポーテーション回路50は、角度θの回転(RZ(θ))を実現する量子回路である。ゲートテレポーテーション回路50では、1つ目の量子ビットに操作対象の状態|ψ>が入力され、2つ目の量子ビットに補助状態「RZ(θ)|+L>」が入力される。
【0073】
ゲートテレポーテーション回路50では、まず、2つ目の量子ビットをコントロールビットとし、1つ目の量子ビットをターゲットビットとするCNOTゲートのゲート操作が行われる。そして1つ目の量子ビットの測定結果が「+1」であれば、2つ目の量子ビットに対してXゲートのゲート操作が行われる。
【0074】
1つ目の量子ビットの測定結果が「+1」であれば、2つ目の量子ビットの状態は「RZ(θ)|ψ>」となる。1つ目の量子ビットの測定結果が「0」であれば、2つ目の量子ビットの状態は「RZ(-θ)|ψ>」となる。このように、ゲートテレポーテーション回路50による任意回転のゲート操作後、「RZ(θ)|ψ>」または「RZ(-θ)|ψ>」が得られる。すなわち、出力状態は確率的に逆回転となる。出力状態が「RZ(θ)|ψ>」となる確率と「RZ(-θ)|ψ>」となる確率は、それぞれ「1/2」である。
【0075】
量子計算システム30は、ゲートテレポーテーション回路50の出力状態が、確率的に目的の回転(順回転)または逆回転となるため、目的の回転が成功するまで同様のゲート操作を繰り返し実行する。
【0076】
図10は、目的の回転角が得られるまでの繰り返しの一例を示す図である。例えば目的の角度θの回転のゲート操作に失敗し、逆回転(-θ)となった場合、量子計算システム30は、次の回転のゲート操作では、角度2θの回転を実行する。角度2θの回転のゲート操作にも失敗し、逆回転(-2θ)となった場合、2回の回転操作の合計は-3θとなる。この場合、量子計算システム30は、次の回転のゲート操作では、例えば角度4θの回転を実行する。
【0077】
回転が成功する確率と失敗する確率とが1/2であれば、成功するまでの平均回数は「1×(1/2)+2×(1/4)+・・・=Σnn2-n=2」となる。すなわち量子計算システム30は、ゲートテレポーテーション回路50のゲート操作を平均2回実行することで、任意回転が実現できる。
【0078】
なお量子計算システム30は、回転角は2π周期性を用いた処理を行うことで、回転の角度が常に[-π,π)に収まるようにすることができる。例えば目的の角度θの回転を考える。量子計算システム30は、θを2πで割った余りをθ’(θ’=θ-2πn)とする(nは整数)。このときθ’∈[0,2π)である。
【0079】
量子計算システム30は、θ’について以下の1.2.の場合分け後、3.で次回の回転操作の回転角を決定する。
1.もし0≦θ’<πならば、θ”=θ’とする。
2.もしπ<θ’≦2πならば、θ”=θ’-2πとする。
3.θ”を最終的な回転角として用いる(θ”∈[-π,π))。
【0080】
量子計算システム30は、任意回転の実行中の繰り返し時に、1.2.3.の処理を行い、できる限り小さい絶対値の回転になるようにする。その結果、回転角が大きくなりすぎることによる誤差の拡大が抑止される。
【0081】
このようにゲートテレポーテーション回路50を用いることで、任意回転のために魔法状態を用いずに済む。ゲートテレポーテーション回路50では、魔法状態に代えて補助状態が用いられる。そのためゲートテレポーテーション回路50で示されるゲートテレポーテーション実行前に補助状態を準備することとなる。準備する補助状態の精度が任意回転全体の精度に影響する。
【0082】
図11は、補助状態を準備するための量子回路の一例を示す図である。ゲートテレポーテーション回路50に入力する補助状態は、[[4,2,2]]符号52と呼ばれる誤り訂正符号を応用して生成可能である。[[4,2,2]]符号52は、4つの物理量子ビットを用いて2つ量子ビットの状態を表す、符号距離「2」の符号である。
【0083】
補助状態準備回路51における4つの物理量子ビットの入力状態は、いずれも|0>である。補助状態準備回路51では、まず、4つの物理量子ビットのうち、2番目と4番目の物理量子ビットにアダマールゲート51a,51bのゲート操作が行われる。次に、2番目の物理量子ビットをコントロールビットとし、1番目の物理量子ビットをターゲットビットとするCNOTゲート51cのゲート操作が行われる。同時に、4番目の物理量子ビットをコントロールビットとし、3番目の物理量子ビットをターゲットビットとするCNOTゲート51dのゲート操作が行われる。そして1番目の物理量子ビットと3番目の物理量子ビットとに対して、Z軸周りの2量子ビットの回転ゲート51e「e-i(1/2)θZ0Z2」(Zに続く数字はZの下付き添字)が実行される。
【0084】
2量子ビットの回転ゲート51eによるゲート操作は式(5)で表される。
【0085】
【数5】
【0086】
式(5)に示す回転ゲート51eは、符号化されていない物理量子ビットに作用させる回転ゲートであるため、量子コンピュータ200において容易に実行可能である。例えば回転ゲート51eは、イオントラップ方式の量子コンピュータであれば、XX回転ゲートRXX(θ)とHゲートを用いてそのまま実行可能である。また回転ゲート51eは、超電導方式の量子コンピュータであれば、例えば交差共鳴ゲートRZX(θ)とHゲートを用いてそのまま実行可能である。これらが使用できない場合でも、CNOTゲートとRZゲート(RZ(θ))とを組み合わせて実行できる。補助状態準備回路51の出力が、符号化された補助状態「RZ(θ)|+L>」となる。
【0087】
ゲートテレポーテーション回路50と補助状態準備回路51では、[[4,2,2]]符号52により符号化された補助状態を生成し、符号化された状態のまま、符号化された任意回転のゲート操作が行われる。これにより、符号化を解除した状態を経ずに任意回転が実現され、符号化が解除された状態を経ることによるエラー発生確率の増加が抑止される。
【0088】
なお[[4,2,2]]符号52によって生成した補助状態の符号距離は「2」である。それに対して任意回転を実現するゲートテレポーテーション回路50の入力として利用する補助状態は、ゲートテレポーテーション回路50に適用する符号距離で符号化されていることが求められる。そこで量子計算システム30は、[[4,2,2]]符号52によって生成した補助状態を、目的の符号距離dを持つ表面符号に拡大する。
【0089】
図12は、表面符号への拡大の一例を示す図である。表面符号53は、[[4,2,2]]符号52を符号距離「5」(d=5)に拡大したものである。表面符号53の左上に、[[4,2,2]]符号52で準備した状態が設定される。その他の物理量子ビットは|0>または|+>に初期化される。表面符号53では、網掛けの丸が、|0>に初期化された物理量子ビットであり、黒丸が、|+>に初期化された物理量子ビットである。
【0090】
量子計算システム30は、このような表面符号53の全体に対してシンドローム測定を実施する。表面符号53のZスタビライザーは網掛けされた領域の格子面であり、Xスタビライザーは、白抜きの領域の格子面である。
【0091】
量子計算システム30は、シンドローム測定結果に基づいてエラー検知を行い、エラーを検知したら、生成済みの補助状態を破棄し、補助状態の生成処理をやり直す。これにより、可能な限りエラーの少ない補助状態の生成が可能である。
【0092】
次に、シンドローム測定について説明する。
図13は、シンドローム測定によるエラー検知の一例を示す図である。表面符号54の論理量子ビットは、格子面に定義されるスタビライザー演算子の+1固有値を持つ同時固有状態である。表面符号54は、9量子ビット-8スタビライザー=1論理自由度である。
【0093】
論理Z演算子は、実線の太線54aで示される境界上に定義される。論理X演算子は、破線の太線54bで示される境界上に定義される。論理Z演算子と論理X演算子を示す線上には3つずつの量子ビットがある。そのため符号距離は「3」である。
【0094】
表面符号54に含まれる物理量子ビットに発生するエラーは、スタビライザー演算子の固有値を測定することで検知できる。スタビライザーの固有値がシンドロームと呼ばれる。その固有値の測定がシンドローム測定である。エラーがない状態はシンドロームの値がすべて+1である。
【0095】
いずれかの物理量子ビットでエラーが発生すると、その物理量子ビットの周囲のスタビライザーの固有値が反転する。例えば中央の物理量子ビットでXエラーが発生した場合、それを挟む2つのZスタビライザーの固有値が「-1」に反転する。
【0096】
シンドローム測定は、補助量子ビットを用いて行われる。
図14は、Xシンドローム測定の一例を示す図である。Xスタビライザー55に含まれる物理量子ビット55a~55dと、それらの物理量子ビットとの間でCNOTゲート操作が可能な補助量子ビット55eとが用いられる。Xシンドローム測定用の量子回路56では、補助量子ビット55eの初期状態として|0>が入力される。さらに補助量子ビット55eにアダマールゲートによるゲート操作が行われる。
【0097】
その後、補助量子ビット55eをコントロールビットとし、物理量子ビット55a~55dそれぞれをターゲットビットとする4つのCNOTゲートのゲート操作が順番に行われる。物理量子ビット55a~55dに示す数字が、CNOTゲートを作用させる順番を示している。そして補助量子ビット55eにアダマールゲートによるゲート操作が行われる。最後に、補助量子ビット55eの状態が測定される。
【0098】
このような量子回路56により、物理量子ビット55a~55dのいずれかでXエラーが生じると、補助量子ビット55eの状態が反転する。
図15は、Zシンドローム測定の一例を示す図である。Zスタビライザー57に含まれる物理量子ビット57a~57dと、それらの物理量子ビットとの間でCNOTゲート操作が可能な補助量子ビット57eとが用いられる。Xシンドローム測定用の量子回路58では、補助量子ビット57eの初期状態として|0>が入力される。そして、補助量子ビット57eをターゲットビットとし、物理量子ビット57a~57dそれぞれをコントロールビットとする4つのCNOTゲートのゲート操作が順番に行われる。物理量子ビット57a~57dに示す数字が、CNOTゲートを作用させる順番を示している。最後に、補助量子ビット57eの状態が測定される。
【0099】
このような量子回路58により、物理量子ビット57a~57dのいずれかでZエラーが生じると、補助量子ビット57eの状態が反転する。
図16は、[[4,2,2]]符号のエラー検知用の量子回路の一例を示す図である。[[4,2,2]]符号52は、量子回路59によってエラーを検知することができる。量子回路59は、[[4,2,2]]符号52に含まれる4つの物理量子ビット(識別番号0~3)に加えて、4つの物理量子ビット(M0~M3)が用いられている。
【0100】
[[4,2,2]]符号52のスタビライザー演算子はX0123とZ0123である。M0~M3の物理量子ビットは、シンドローム測定に用いる補助量子ビットである。量子回路59において、矩形の破線で囲われた量子ゲートは、同時に実行される。量子回路59を実行すると、2つのスタビライザー演算子の固有値(シンドローム)が得られる。取得したシンドロームにより、エラーの有無の判定が可能である。
【0101】
量子計算システム30は、量子回路59に基づいて、[[4,2,2]]符号52のエラー検知を高精度に実行する。エラー検知した場合、量子計算システム30は、補助状態の生成処理をやり直す。これにより、量子計算システム30は、余分なエラーを発生させずに、精度の高い補助状態を生成することができる。
【0102】
物理量子ビットのエラー率pで補助状態のエラー率を表すと「2p/15」となる。このエラー率は、非特許文献3の魔法状態のエラー率46p/15、非特許文献2の魔法状態のエラー率30pのいずれよりも十分に小さな値となる。すなわち、魔法状態よりも、補助状態「RZ(θ)|+L>」を生成する方が高精度に生成可能である。補助状態が高精度に生成できることで、補助状態を利用したゲートテレポーテーション回路50(図9参照)により、高精度の任意回転が実現される。
【0103】
図17は、量子計算システムの機能の一例を示すブロック図である。古典コンピュータ100は、量子回路分解部110、ゲート操作スケジューラ120、および後処理部130を有する。量子コンピュータ200は、論理量子ビット初期化部210、ゲート操作分岐部220、および論理量子ビット測定部230を有する。また古典コンピュータ100と量子コンピュータ200とが連係して実現する機能として、Clifford演算実行部310と任意回転実行部320とがある。
【0104】
量子回路分解部110は、求解対象の問題を解くための量子回路を、基本ゲート(Cliffordゲートまたは任意回転ゲート)に分解する。ゲート操作スケジューラ120は、ゲート操作の順番を管理する。後処理部130は、量子ビットの測定結果に対して所定の演算処理を施す。論理量子ビット初期化部210は、論理量子ビットを初期化する。ゲート操作分岐部220は、次に実行するゲート操作がClifford演算か任意回転かに応じて、Clifford演算実行部310または任意回転実行部320にゲート操作の実行を指示する。論理量子ビット測定部230は、論理量子ビットの状態を測定する。Clifford演算実行部310は、Clifford演算に該当するゲート操作を、論理量子ビットに対して実行する。任意回転実行部320は、任意回転のゲート操作を、論理量子ビットに対して実行する。
【0105】
図17に示した各機能間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、古典コンピュータ100で実現される各機能は、例えば、その機能に対応するプログラムモジュールをプロセッサ101に実行させることで実現することができる。
【0106】
図18は、機能間のデータの流れを示す図である。量子回路分解部110は、例えば端末31から量子回路を取得する。量子回路分解部110は、取得した量子回路を基本ゲートに分解すると、分解後のゲート、ゲート数、種類、作用順などの情報をゲート操作スケジューラ120に送信する。また量子回路分解部110は、量子計算に利用する論理量子ビット数を論理量子ビット初期化部210に送信する。論理量子ビット初期化部210は、論理量子ビットの状態を初期化し、初期化が完了したことをゲート操作分岐部220に送信する。
【0107】
ゲート操作スケジューラ120は、基本ゲートの実行順を管理し、次に実行する量子ゲートがClifford演算か任意回転かを示すゲート操作分岐情報をゲート操作分岐部220に送信する。ゲート操作スケジューラ120は、次に実行する量子ゲートがClifford演算の場合、ゲートの種類を示す情報をClifford演算実行部310に送信する。ゲート操作スケジューラ120は、次に実行する量子ゲートが任意回転の場合、回転角度を示す情報を任意回転実行部320に送信する。さらにゲート操作スケジューラ120は、ゲート操作後の測定対象の論理量子ビットを示す測定対象情報を、論理量子ビット測定部230に送信する。
【0108】
ゲート操作分岐部220は、次に実行する量子ゲートがCliffordゲートであれば、Clifford演算実行部310にゲート操作の実行を指示する。またゲート操作分岐部220は、次に実行する量子ゲートが任意回転であれば、任意回転実行部320にゲート操作の実行を指示する。
【0109】
Clifford演算実行部310は、ゲート操作の実行指示に応じてClifford演算の量子ゲートのゲート操作を実行し、ゲート操作が完了したことを示す情報を論理量子ビット測定部230に送信する。任意回転実行部320は、ゲート操作の実行指示に応じて任意回転のゲート操作を実行し、目的の角度への回転に成功すると、ゲート操作が完了したことを示す情報を論理量子ビット測定部230に送信する。また任意回転実行部320は、回転のゲート操作により逆回転となった場合、補正回転要請信号をゲート操作スケジューラ120に送信する。ゲート操作スケジューラ120は、補正回転要請信号に応じて、新たな回転角度を計算し、計算した回転角度を任意回転実行部320に送信する。
【0110】
論理量子ビット測定部230は、ゲート操作が完了すると、測定対象の論理量子ビットの状態を測定する。そして論理量子ビット測定部230は、測定値を後処理部130に送信する。後処理部130は、測定値に対する所定の演算処理を行い計算結果として出力する。
【0111】
次にClifford演算実行部310が有する機能を詳細に説明する。
図19は、Clifford演算実行部の機能の一例を示すブロック図である。Clifford演算実行部310は、Clifford演算部311、シンドローム測定部312、エラー箇所推定部313、およびエラー訂正部314を有する。これらの機能のうち、エラー箇所推定部313は、古典コンピュータ100で実現される機能である。またClifford演算部311、シンドローム測定部312、およびエラー訂正部314は、量子コンピュータ200で実現される機能である。
【0112】
Clifford演算部311は、ゲート種類と、ゲート操作対象の量子ビットの入力量子状態とに基づいて、論理量子ビットに対するClifford演算のゲート操作を行う。入力量子状態は、ゲート操作の指示が入力された時点での論理量子ビットの状態である。
【0113】
シンドローム測定部312は、ゲート操作が行われた論理量子ビットのシンドロームを測定する。シンドローム測定部312は、測定結果を示すシンドローム情報を、エラー箇所推定部313に送信する。エラー箇所推定部313は、シンドローム情報に基づいてエラー箇所を推定する。エラー箇所推定部313は、エラー箇所の推定結果を示す推定エラー情報をエラー訂正部314に送信する。エラー訂正部314は、推定エラー情報に基づいてエラーの有無を認識する。エラー訂正部314は、エラーがある場合、エラー箇所の物理量子ビットの状態を訂正するゲート操作を行う。エラー訂正部314は、訂正された論理量子ビットの状態を出力量子状態として、ゲート操作の完了を論理量子ビット測定部230に通知する。
【0114】
図20は、任意回転実行部の機能の一例を示すブロック図である。任意回転実行部320は、補助状態生成部321、シンドローム測定部322、エラー判定部323、ゲートテレポーテーション部324、成否判定部325、シンドローム測定部326、エラー箇所推定部327、およびエラー訂正部328を有する。これらの機能のうち、エラー判定部323、成否判定部325、およびエラー箇所推定部327は、古典コンピュータ100によって実現される。また補助状態生成部321、シンドローム測定部322、ゲートテレポーテーション部324、シンドローム測定部326、およびエラー訂正部328は、量子コンピュータ200によって実現される。
【0115】
補助状態生成部321は、回転角度を示す情報を取得すると、その回転角度の回転を行うための補助状態を生成する。補助状態生成部321は、補助状態となった論理量子ビットを示す情報をシンドローム測定部322に通知する。シンドローム測定部322は、補助状態のシンドロームを測定する。シンドローム測定部322は、測定したシンドローム情報をエラー判定部323に送信する。
【0116】
エラー判定部323は、測定されたシンドロームに基づいて、エラーの有無を判定する。エラー判定部323は、エラーがあると判定した場合、補助状態生成部321に対して、補助状態の再生成信号を送信する。再生成信号を受信した補助状態生成部321は、補助状態を再度生成する。
【0117】
シンドローム測定部322は、エラー判定部323によってエラーがないと判定された場合、補助状態となった論理量子回路の情報をゲートテレポーテーション部324に送信する。
【0118】
ゲートテレポーテーション部324は、補助状態を用いて、ゲートテレポーテーション回路による回転操作を実行する。ゲートテレポーテーション部324は、ゲートテレポーテーション回路(図9のゲートテレポーテーション回路50)の実行過程に行われる測定で得られた測定値を、成否判定部325に送信する。成否判定部325は、測定値に基づいて、指定された回転角への回転に成功したか否かを判断する。回転に失敗した場合、補正回転要請信号を、ゲート操作スケジューラ120に送信する。
【0119】
ゲートテレポーテーション部324は、成否判定部325によって回転が成功したと判定された場合、シンドローム測定部326に回転操作の完了を通知する。シンドローム測定部326は、回転後の論理量子ビットのシンドロームを測定する。シンドローム測定部326は、測定したシンドローム情報をエラー箇所推定部327に送信する。
【0120】
エラー箇所推定部327は、測定されたシンドロームに基づいて、エラーの有無を判定する。エラー箇所推定部327は、エラー箇所の推定結果を示す推定エラー情報をエラー訂正部328に送信する。エラー訂正部328は、推定エラー情報に基づいてエラーの有無を認識する。エラー訂正部328は、エラーがある場合、エラー箇所の物理量子ビットの状態を訂正するゲート操作を行う。エラー訂正部328は、訂正された論理量子ビットの状態を出力量子状態として、ゲート操作の完了を論理量子ビット測定部230に通知する。
【0121】
次に、量子計算処理の手順についてフローチャートを参照して説明する。
図21は、量子計算処理の手順の一例を示すフローチャートである。以下、図21に示す処理をステップ番号に沿って説明する。
【0122】
[ステップS101]古典コンピュータ100の量子回路分解部110は、実行する量子回路が入力されると、その量子回路の量子ゲートを基本ゲート(Cliffordゲートまたは任意回転ゲート)に分解する。量子回路分解部110は、生成された基本ゲートの数をN(Nは自然数)とする。
【0123】
[ステップS102]量子コンピュータ200の論理量子ビット初期化部210は、論理量子ビットの状態を初期化する。
[ステップS103]古典コンピュータ100と量子コンピュータ200とが連係し、量子回路を実行する。量子回路実行処理の詳細は後述する(図22参照)。
【0124】
[ステップS104]古典コンピュータ100の後処理部130は、量子コンピュータ200による測定値に対する所定の演算処理を行い、計算結果を出力する。
次に、量子回路実行処理について詳細に説明する。
【0125】
図22は、量子回路実行処理の手順の一例を示すフローチャートである。以下、図22に示す処理をステップ番号に沿って説明する。
[ステップS201]ゲート操作スケジューラ120は、ループ変数iを1からカウントアップしながら、ループ変数iがNになるまで、ステップS202~S212の処理を繰り返す。
【0126】
[ステップS202]ゲート操作スケジューラ120は、i番目のゲートが任意回転の量子ゲートか、Cliffordゲートかを判断する。ゲート操作スケジューラ120は、任意回転の量子ゲートであれば、処理をステップS205に進める。またゲート操作スケジューラ120は、Cliffordゲートであれば、処理をステップS203に進める。
【0127】
[ステップS203]ゲート操作スケジューラ120は、量子コンピュータ200にCliffordゲート操作を実行させる。例えばゲート操作スケジューラ120は、ゲート操作分岐部220に、次の量子ゲートがClifford演算であることを示すデータ操作分岐情報を送信する。またゲート操作スケジューラ120は、Clifford演算実行部310に次に実行するゲートのゲート種類などの情報を送信する。ゲート操作分岐部220は、Clifford演算実行部310にゲート操作を指示する。Clifford演算実行部310は、論理量子ビットに対してCliffordゲートのゲート操作を実行する。
【0128】
[ステップS204]Clifford演算実行部310は、エラー訂正処理を行う。例えばClifford演算実行部310は、論理量子ビットのシンドロームを測定し、シンドロームに基づいてエラーの有無、エラーがある場合のエラー箇所を判定する。そしてClifford演算実行部310は、エラーを検知した場合、そのエラーを訂正するゲート操作を行う。Clifford演算実行部310は、その後、処理をステップS213に進める。
【0129】
[ステップS205]ゲート操作スケジューラ120は、量子コンピュータ200を用いた任意回転が成功するまで、ステップS206~ステップS211の処理を繰り返し実行する。例えばゲート操作スケジューラ120は、ゲート操作分岐部220に、次の量子ゲートが任意回転であることを示すデータ操作分岐情報を送信する。またゲート操作スケジューラ120は、任意回転実行部320に回転角度を送信する。ゲート操作分岐部220は、任意回転実行部320にゲート操作を指示する。
【0130】
[ステップS206]ゲート操作スケジューラ120は、実行させる回転角度を設定する。例えばゲート操作スケジューラ120は、初回の回転角度を、i番目の量子ゲートで指定されている角度θとする。またゲート操作スケジューラ120は、例えば2回目以降の回転角度を、前回の角度の2倍とする。
【0131】
[ステップS207]任意回転実行部320は、補助状態準備回路に従ったゲート操作を実行する。このゲート操作の結果、補助状態が生成される。
[ステップS208]任意回転実行部320は、補助状態にエラーがあるか否かを判断する。任意回転実行部320は、エラーがある場合、処理をステップS207に進め、補助状態を再度生成する。任意回転実行部320は、エラーがなければ処理をステップS209に進める。
【0132】
[ステップS209]任意回転実行部320は、論理量子ビットに対して、ゲートテレポーテーション回路に従ったゲート処理を実行する。このとき任意回転実行部320は、ゲートテレポーテーション回路の実行過程で測定した測定値に基づいて回転の成否を判定する。そして任意回転実行部320は、回転に失敗した場合(逆回転となった場合)には、補正回転要請信号を出力する。
【0133】
[ステップS210]任意回転実行部320は、エラー訂正処理を行う。例えば任意回転実行部320は、論理量子ビットのシンドロームを測定し、シンドロームに基づいてエラーの有無、エラーがある場合のエラー箇所を判定する。そして任意回転実行部320は、エラーを検知した場合、そのエラーを訂正するゲート操作を行う。
【0134】
[ステップS211]任意回転実行部320は、任意回転の成否を判定する。例えば任意回転実行部320は、ゲートテレポーテーション回路の実行過程での測定値が|1>であれば任意回転が成功したと判定する。任意回転実行部320は、任意回転に失敗した場合、補正回転要請信号を出力する。
【0135】
[ステップS212]ゲート操作スケジューラ120は、任意回転が成功した場合、処理をステップS213に進める。例えばゲート操作スケジューラ120は、任意回転実行部320から補正回転要請信号が出力されなければ、任意回転が成功したと判断する。
【0136】
[ステップS213]ゲート操作スケジューラ120は、ループ変数iの値がNの場合、量子回路実行処理を終了する。またゲート操作スケジューラ120は、ループ変数iがN未満であれば、Nを1だけカウントアップして、ステップS202~S212の処理を繰り返す。
【0137】
以上のような量子計算を行うことで、Tゲートを用いずに任意回転を実現することができ、Tゲートのゲート操作を多数回(例えば約100回)繰り返す場合に比べ、ゲート操作回数が少なくて済む。その結果、量子計算時間が短縮されるとともにエラー蓄積も減少する。また任意回転の実行において魔法状態蒸留のような大量の物理量子ビットを利用するゲート操作は行われないため、使用する物理量子ビット数も少なくて済む。魔法状態蒸留を行わないことによるエラーは残っているが、[[4,2,2]]符号を用いた状態準備方法によりその発生確率は抑制されており、実用的な精度を達成できる。なお、ここではN個のゲートを逐次的に実行するとしてフローチャートを説明したが、同時に実行できるゲートの組は並列に実行してもよい。
【0138】
以下、具体的な仮定に基づいて実行する例を考える。
論理量子ビットは回転表面符号(符号距離d=7,9)を用いて構成する(非特許文献4参照)。利用できる物理量子ビットの数は1万とする。エラーの発生モデルは、回路レベルノイズでモデル化する。回路レベルノイズとは、あらゆる操作(初期化、ゲート操作、測定)でエラーが発生するモデルである。回路レベルノイズは、実際の量子計算に近いモデルである。確率p=10-4でエラーが発生すると仮定する。
【0139】
このような条件下でどれだけの規模の量子計算が実行できるかを導出すると、図23に示す結果が得られる。
図23は、論理エラーの発生確率の数値計算結果の一例を示す図である。グラフ61は、論理Zエラーの物理エラーに対する依存性(p依存性)を示す。横軸が物理エラーの発生確率であり、縦軸が論理Zエラーの発生確率である。線61aは符号距離d=7の場合のp依存性を示し、線61bは符号距離d=9の場合のp依存性を示す。
【0140】
グラフ62は、論理Xエラーのp依存性を示す。横軸が物理エラーの発生確率であり、縦軸が論理Xエラーの発生確率である。線62aは符号距離d=7の場合のp依存性を示し、線62bは符号距離d=9の場合のp依存性を示す。
【0141】
p依存性は、式(6)により求められる。
【0142】
【数6】
【0143】
式(6)におけるCiとpth,i(i=Z,X)は、ZエラーとXエラーとのそれぞれに応じて設定される定数である。グラフ61に示した計算例(i=Zの場合)では、「CZ=0.068」、「pth,Z=0.0039」である。グラフ62に示した計算例(i=Xの場合)では、「CX=0.082」、「pth,X=0.0042」である。
【0144】
p=10-4とすると全体としての論理エラー確率はpL=pL,Z+p_L,Xとなる(論理Zエラーと論理Xエラーが独立に起こると仮定)。
p=10-4、符号距離d=7の場合の論理エラーの確率は、以下の通りとなる。
p_L=0.068(p/0.0039)(7+1)/2+0.082(p/0.0042)(7+1)/2=5.8×10-8
p=10-4、符号距離d=9の場合の論理エラーの確率は、以下の通りとなる。
p_L=0.068(p/0.0039)(9+1)/2+0.082(p/0.0042)(9+1)/2=1.5×10-9
任意回転の補助状態準備のエラー確率について数値計算を実施した結果を図24に示す。
【0145】
図24は、補助状態のエラー確率の計算結果の一例を示す図である。グラフ63は、補助状態のエラー確率のp依存性を示す。グラフ63の横軸が物理エラー確率であり、縦軸が補助状態のエラー確率である。線63aは符号距離d=3の場合のp依存性を示し、線63bは符号距離d=5の場合のp依存性を示し、線63cは符号距離d=7の場合のp依存性を示し、線63dは符号距離d=9の場合のp依存性を示す。線63eは補助状態のエラー確率が「2p/15」となる場合を示す。
【0146】
グラフ63に示すように、補助状態のエラー率は、概ね2p/15のp依存性を有する。p=10-4の場合、補助状態のエラー率は、「2p/15=1.3×10-5」となる。
このように数値計算より、補助状態のエラー率が魔法状態のエラー率よりも十分に小さいことが確認できる。
【0147】
なお論理量子ビットを構成する物理量子ビットの配置を適切に行うことで、補助状態をゲートテレポーテーション回路50への入力とするために用いる物理量子ビットの数を低減することができる。
【0148】
図25は、論理量子ビットの配置の一例を示す図である。図25では、論理量子ビット71~78を矩形で示している。論理量子ビット71~78それぞれは、符号化に用いられる物理量子ビットの集合である。中央の6個の論理量子ビット71~76が、量子計算上のデータとして利用する論理量子ビットである。両側の2つの論理量子ビット77,78は、任意回転のための補助状態の生成に使用する論理量子ビットである。その他の領域は、計算用のワークスペースである。
【0149】
論理量子ビット71~76のいずれかに対して任意回転を行う場合、論理量子ビット77,78のいずれかに補助状態準備回路51によるゲート操作が行われ、補助状態が生成される。そして補助状態を示す論理量子ビットと任意回転を作用させる論理量子ビットとをゲートテレポーテーション回路50への入力として、ゲートテレポーテーション回路50を実行することにより、任意回転のゲート操作が実現する。
【0150】
図25に示す配置にすると、1万物理量子ビットであれば、符号距離d=9のときには量子計算に使用可能な論理量子ビット数は37となる。また符号距離d=7のときは量子計算に使用可能な論理量子ビット数は64となる。例えば符号距離d=9であれば、37論理量子ビットに対しClifford演算「6.9×108回」、任意回転「3.8×104回」実行できる。符号距離d=7であれば、64論理量子ビットに対しClifford演算「1.7×107回」、任意回転「3.8×104回」実行できる。符号距離d=7のときに実行可能な計算量は、古典コンピュータでのシミュレーションが困難な計算量である。
【0151】
このように第2の実施の形態によれば、Clifford+Tを利用する場合に行われる約100回のゲート操作が平均2回で済む。そのため、余計なエラー蓄積が削減でき、計算時間が短縮される。また任意回転の実行において魔法状態蒸留は行わないため、使用する物理量子ビット数が削減される。さらに、補助状態準備の工夫により任意回転のエラーが最小限に抑えられているため、任意回転の実行可能回数が増大する。その結果、例えば1万量子ビット規模のデバイスで、古典コンピュータでシミュレートできない量の計算が可能となる。すなわち量子計算システム30は、限られた量子ビット数で最大限の演算性能を引き出すことができる。
【0152】
〔その他の実施の形態〕
第2の実施の形態では量子コンピュータ200を利用して量子計算を実行しているが、問題の規模が小さい場合または求められる精度が低い場合、量子コンピュータ200の機能を古典コンピュータ100による量子シミュレーションで代替することもできる。
【0153】
第2の実施の形態では、任意回転としてRZ(θ)の回転ゲートのゲート操作を実行する場合の例を示したが、他の回転軸周りの任意回転も同様に実施可能である。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【符号の説明】
【0154】
1 量子回路
2 回転ゲート
3 ゲートテレポーテーション回路
4 第1の論理量子ビット
5 第2の論理量子ビット
10 情報処理装置
11 記憶部
12 処理部
13 量子ビットデバイス
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25