(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-23
(45)【発行日】2023-10-31
(54)【発明の名称】量子誤り訂正
(51)【国際特許分類】
H03M 13/01 20060101AFI20231024BHJP
G06N 10/00 20220101ALI20231024BHJP
【FI】
H03M13/01
G06N10/00
【外国語出願】
(21)【出願番号】P 2022035219
(22)【出願日】2022-03-08
(62)【分割の表示】P 2020514733の分割
【原出願日】2017-09-12
【審査請求日】2022-03-09
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】オースティン・グレイグ・ファウラー
【審査官】北村 智彦
(56)【参考文献】
【文献】特表2017-522797(JP,A)
【文献】Austin G. Fowler et al.,Towards practical classical processing for the surface code: timing analysis[online],arXiv:1202.5602v2 [quant-ph],2012年10月15日,[検索日:2023.03.16],インターネット<URL:https://arxiv.org/pdf/1202.5602v2.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
H03M 13/01
G06N 10/00
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
コンピュータによって実施される方法であって、
量子誤り検出回路を通じて誤り伝搬の階層表現を構築するステップであり、前記階層表現が複数の線回路層を含み、各線回路層が、量子アルゴリズムの実行における1つまたは複数の潜在的誤りプロセスと関連する量子コンピュータにおける局所検出事象の確率を表現
する、
構築するステップと、
量子計算システムによる前記量子アルゴリズムの実行前に、前記量子計算システムに前記階層表現を送信するステップとを備え、
前記構築するステップが、
量子回路における1つまたは複数の量子ゲートに対して、前記量子ゲートにおいて発生する各潜在的誤りプロセスと関連する1つまたは複数の潜在的検出事象を判定するステップと、
各潜在的誤りプロセスと1つまたは複数の線を関連付けるステップであり、前記線は各々前記潜在的誤りプロセスと関連する潜在的検出事象を同じ潜在的誤りプロセスと関連する別の潜在的検出事象または前記量子回路の境界に接続する、
関連付けるステップと、
類似線を併合して1つまたは複数の併合線を形成するステップとを含み、
複数の一意の前記線回路層が複数の前記併合線から構築される、方法。
【請求項2】
前記線が各々、関連する前記潜在的誤りプロセスの前記確率を示す重みと関連付けられる、請求項1に記載の方法。
【請求項3】
前記重みが離散化される、請求項2に記載の方法。
【請求項4】
類似線を併合するステップが、
同じ始点および同じ終点、
同じ方向および長さ、ならびに/または、
前記線の各々と関連する共通の潜在的誤り
の少なくとも1つを有する線を結合するステップを含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
併合線を形成する類似線に共通でない潜在的誤りプロセスが前記併合線との関連付けから削除される、請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記方法は、前記量子
計算システムによる前記量子アルゴリズムの実行中に、
前記量子コンピュータにおける量子誤り検出回路から1つまたは複数のシンドローム測定を受け取るステップ、
前記シンドローム測定を配列に書き込まれる検出事象へ変換するステップであり、前記配列は前記量子アルゴリズムにおける一連のステップで量子誤り訂正回路のパッチを表現する、
変換するステップ、
記憶した前記線回路層に依存して前記検出事象から前記量子アルゴリズムの前記実行の1つまたは複数の誤りを判定するステップ、および
判定した前記誤りに基づく前記シンドローム測定の訂正を与えるステップ
をさらに含む、請求項1に記載の方法。
【請求項7】
検出事象が配列に循環的に書き込まれる、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記配列が複数の層を含み、層の数が2のべきである、請求項6に記載の方法。
【請求項9】
前記配列が、前記量子アルゴリズムの実行中にプロセッサキャッシュに記憶される、請求項6に記載の方法。
【請求項10】
前記配列が、前記量子コンピュータにおける量子誤り訂正回路の局所パッチを表す、請求項6に記載の方法。
【請求項11】
量子計算アルゴリズムの前記実行の前記誤りを判定するステップが、完全一致プロセスを使用するステップを含む、請求項1から10のいずれか一項に記載の方法。
【請求項12】
量子計算アルゴリズムの前記実行の前記誤りを判定するステップが、最小重み完全一致プロセスを使用して、前記線回路層の1つまたは複数における1つまたは複数の線によって接続される配列における検出事象を対にするステップを含む、請求項1から11のいずれか一項に記載の方法。
【請求項13】
量子計算アルゴリズムの前記実行の前記誤りを判定するステップが、最小重み完全一致を使用して1つまたは複数の検出事象を配列の境界と一致させるステップを含む、請求項1から12のいずれか一項に記載の方法。
【請求項14】
量子計算アルゴリズムの前記実行の前記誤りを判定するステップが、
選択された検出事象周辺の前記配列を探索して未着手の検出事象を見つけ、前記選択された検出事象を前記未着手の検出事象と対にするステップ、および/または、
選択された検出事象周辺の前記配列を探索して、異なる検出事象と関連する以前に探索した領域を見つけ、前記選択された検出事象を前記異なる検出事象と対にするステップ
の少なくとも1つを含む、請求項6に記載の方法。
【請求項15】
選択された検出事象周辺の前記配列の前記探索が前記線回路層によって導かれる、請求項14に記載の方法。
【請求項16】
コンピュータの1つまたは複数の古典処理コアを備え、
一組の1つまたは複数の古典処理コアが、請求項1から5のいずれか一項に記載の方法を行うように構成される、システム。
【請求項17】
コンピュータの処理コアによって実行されると、前記処理コアに、請求項1から
15のいずれか一項に記載の方法を行わせる、コンピュータプログラム。
【請求項18】
コンピュータの処理コアに、請求項1から
15のいずれか一項に記載の方法を行わせるためのプログラム命令を含むコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、量子誤り訂正の方法に関する。特に、本開示は、量子コンピュータにおいて量子アルゴリズムを実行するキュービットの配列の誤りを判定および訂正する方法に関する。
【背景技術】
【0002】
量子コンピュータは、量子の重ね合わせおよびもつれを利用して、古典コンピュータより速く或る種類の問題を解く計算装置である。量子コンピュータの構成ブロックはキュービットである。キュービットは、状態が古典ビットの場合のように2つの状態のいずれかにだけよりむしろ、その2つの状態の重ね合わせにあることができる二準位系である。
【0003】
量子アルゴリズムは、量子コンピュータ上で実行されるアルゴリズムである。量子コンピュータ上でのこれらのアルゴリズムの実行中に、デコヒーレンスおよびノイズを含む幾つかの原因から誤りが導かれ得る。いわゆる「複製不可能定理」により、状態の多重コピーを作成することを伴う古典的誤り検出および訂正技術は不適切である。代わりに、量子誤り検出および訂正技術は、キュービットを幾つかの他のキュービットともつれさせ、そして誤りがいつ発生したかを識別するためにもつれたキュービットの部分集合に測定を行うことを伴う。
【発明の概要】
【課題を解決するための手段】
【0004】
第1の態様によれば、量子コンピュータによって発生されるシンドローム測定のストリームを訂正する方法であって、量子コンピュータにおける量子誤り検出回路を通じて誤り伝搬の階層表現を受け取るステップであり、階層表現が複数の線回路層を含み、各線回路層が、量子アルゴリズムの実行における1つまたは複数の潜在的誤りプロセスと関連する量子コンピュータにおける局所検出事象の確率を表現する、ステップ、ならびに量子アルゴリズムの実行中に、量子コンピュータにおける量子誤り検出回路から1つまたは複数のシンドローム測定を受け取るステップ、シンドローム測定を配列に書き込まれる検出事象へ変換するステップであり、配列は量子アルゴリズムにおける一連のステップで量子誤り訂正回路のパッチを表現する、ステップ、記憶した線回路層に依存して検出事象から量子アルゴリズムの実行の1つまたは複数の誤りを判定するステップ、および判定した誤りに基づくシンドローム測定の訂正を与えるステップ、を含む方法が記載される。
【0005】
本方法は、量子アルゴリズムの実行前に量子誤り訂正回路を通じて誤り伝搬の階層表現を構築するステップを更に含んでよい。
【0006】
量子誤り検出回路を通じて誤り伝搬の階層表現を構築するステップは、量子回路における1つまたは複数の量子ゲートに対して、その量子ゲートにおいて発生する各潜在的誤りプロセスと関連する1つまたは複数の潜在的検出事象を判定するステップと、各潜在的誤りプロセスと1つまたは複数の線を関連付けるステップであり、線は各々潜在的誤りプロセスと関連する潜在的検出事象を同じ潜在的誤りプロセスと関連する別の潜在的検出事象または量子回路の境界に接続する、ステップと、類似線を併合して1つまたは複数の併合線を形成するステップとを含んでよく、複数の一意の線回路層が複数の併合線から構築される。
【0007】
線は各々、関連する潜在的誤りプロセスの確率を示す重みと関連付けられてよい。重みは離散化されてよい。
【0008】
類似線を併合するステップは、同じ始点および同じ終点、同じ方向および長さ、ならびに/または、線の各々と関連する共通の潜在的誤りの少なくとも1つを有する線を結合するステップを含んでよい。
【0009】
併合線を形成する類似線に共通でない潜在的誤りプロセスは、上記併合線との関連付けから削除されてよい。
【0010】
検出事象は配列に循環的に書き込まれてよい。
【0011】
配列は複数の層を含んでよく、層の数は2のべきである。
【0012】
配列は、量子アルゴリズムの実行中にプロセッサキャッシュに記憶されてよい。
【0013】
配列は、量子コンピュータにおける量子誤り訂正回路の局所パッチを表してよい。
【0014】
量子計算アルゴリズムの実行の誤りを判定するステップは、完全一致プロセスを使用するステップを含んでよい。
【0015】
量子計算アルゴリズムの実行の誤りを判定するステップは、最小重み完全一致プロセスを使用して、線回路層の1つまたは複数における1つまたは複数の線によって接続される配列における検出事象を対にするステップを含む。
【0016】
量子計算アルゴリズムの実行の誤りを判定するステップは、最小重み完全一致を使用して1つまたは複数の検出事象を配列の境界と一致させるステップを含んでよい。
【0017】
量子計算アルゴリズムの実行の誤りを判定するステップは、選択された検出事象周辺の配列を探索して未着手の検出事象を見つけ、選択された検出事象を未着手の検出事象と対にするステップ、および/または、選択された検出事象周辺の配列を探索して、異なる検出事象と関連する以前に探索した領域を見つけ、選択された検出事象を異なる検出事象と対にするステップの少なくとも1つを含んでよい。
【0018】
選択された検出事象周辺の配列の探索は線回路層によって導かれてよい。
【0019】
階層表現は別個のコンピュータによって構築されてよい。
【0020】
更なる態様によれば、複数の量子誤り検出回路を備える、量子アルゴリズムを実行するための量子コンピュータと、1つまたは複数の古典処理コアとを備え、一組の1つまたは複数の古典処理コアが、本明細書に記載される方法のいずれかを行うように構成される、システムも記載される。
【0021】
本システムは、量子コンピュータにおける量子誤り検出回路を通じて誤り伝搬の階層表現を構築するように構成される更なる1つまたは複数の古典処理コアを更に備えてよい。
【0022】
更なる態様によれば、処理コアによって実行されると、処理コアに、本明細書に記載される方法のいずれかを行わせる、コンピュータプログラムも記載される。
【図面の簡単な説明】
【0023】
【
図2】量子誤り訂正のための方法の概観のフロー図である。
【
図3】複数回のシンドローム測定を表現する3次元データ構造の一例を示す図である。
【
図4】量子アルゴリズムの潜在的誤りの階層表現を生成するための方法の一例のフロー図である。
【
図5】量子ゲートにおいて発生する潜在的誤りと関連する検出事象の一覧の一例を示す図である。
【
図6】検出事象から量子アルゴリズムの実行の誤りを判定する方法の一例のフローチャートである。
【発明を実施するための形態】
【0024】
図1は、量子コンピュータ100の一実施形態の概要例を例示する。
【0025】
量子コンピュータ100は、量子計算層102、制御層104および古典処理層106を備える。
【0026】
量子計算層102は、量子計算アルゴリズムを行うように構成される量子素子またはキュービット108の配列を備える。量子素子またはキュービット108は、データキュービットおよびシンドロームキュービット(本明細書において測定キュービットとも称される)の共存系を備える。量子計算層102は、キュービット108上の演算を行うための複数の量子ゲート(図示せず)を更に備える。一部の実施形態において、量子計算層は量子素子108の2次元配列の形態にある。
【0027】
量子素子またはキュービット108は、例えば、超伝導キュービットであり得る。量子計算層102は、量子アルゴリズムの実行を通してキュービット間のコヒーレンスを維持するのに十分に低温度に保たれる(例えば、20mK未満)。高コヒーレンスを容易にするために、キュービットは清浄に製造されてよい。キュービット配置も、コヒーレンスを強化するように選ばれてよい。超伝導キュービットが使用される実施形態において、温度は超伝導臨界温度未満に保たれる。コヒーレンスを改善するために、温度は十分に超伝導臨界温度未満に保たれ得る。本明細書において、用語「キュービット」および「量子素子」は互換的に使用されることになる。
【0028】
複数の制御素子110を備える制御層104が量子計算層102と古典処理層106との間に介在する。制御素子110は、量子計算層102におけるキュービット108から生測定データを受け取り、そしてそれらを古典処理層106において使用するために2値測定データへ変換する。制御素子110は、一部の実施形態において、量子素子108に命令を発行して、例えば量子ゲート(図示せず)にキュービット回転を行うように命令することもできる。一部の実施形態において、各制御素子110は約6つの量子素子108に接続される。制御素子110は、一部の実施形態において、フィールドプログラマブルゲートアレイ(FPGA)である。
【0029】
古典処理層106は処理コア112の配列を備える。古典処理層106は制御層104を介して量子計算層102に結合される。古典計算層106における処理コア112はキュービット108の局所パッチ114と関連付けられる。局所パッチ114は、複数の共にグループ化されたキュービット108を備える。一部の実施形態において、パッチサイズは約100個のキュービットである。各プロセッサコアは、中央処理ユニット(「CPU」または「プロセッサ」)ならびにL1およびL2キャッシュの形態のオンチップキャッシュメモリ(本明細書において「プロセッサキャッシュ」と称される)を備える。古典処理層106における処理コア112は古典処理層106における隣接する処理コア112に結合される。これにより、処理コア112がそれらの隣接するコアとデータを交換することを許容できる。一部の実施形態において、処理コア112は、古典処理層106内に処理コア112の2次元配列を形成する。
【0030】
古典処理コア112には、プロセッサコアにおけるプロセッサによって実行されると、プロセッサに隣接するコアのプロセッサキャッシュにアクセスさせる専用のアセンブリ命令が設けられる。これにより、複雑なメモリコントローラが必要とされないので、隣接するコア間の低遅延通信に結びつくことができる。
【0031】
使用時には、量子計算層102が、例えばショアのアルゴリズムまたはドイッチュ-ジョサのアルゴリズムなどの量子計算アルゴリズムを実行する。量子計算層102におけるシンドロームキュービットがそれらの隣接するデータキュービットと相互作用して生測定データを発生する。生測定データは制御層104の制御素子110へ送られる。制御素子110は、生測定データを2値測定データへ変換し、そして2値測定データを古典処理層106の処理コア112へ流す。
【0032】
古典処理層106は、制御層104からの2値測定データを、測定された量子計算層102におけるキュービット108の量子状態のパリティへ変換する。これらのパリティは次いで、いかなる量子誤りもおよび/または量子計算層102における量子素子108に対する必要とされる訂正されたパリティを判定するために古典処理層106によって処理される。判定された訂正は次いで、必要とされる訂正処置を判定して与えるために更に処理できる。一部の実施形態において、この更なる処理は追加の古典処理層(図示せず)において行える。
【0033】
図2は、量子コンピュータの誤りを訂正するための方法の一例のフロー図を示す。以下では、本方法は
図1における量子コンピュータに関して記載することになる。しかしながら、一般に、それは、キュービットから1つまたは複数の古典処理コアにシンドローム測定を提供する任意の量子計算システムによって行える。
【0034】
本方法(本明細書において量子誤り訂正方法とも称される)は、量子コンピュータにおけるシンドロームキュービットから得られる測定データのストリームを訂正する。一部の実施形態において、本方法は、
図1に関して上記した量子計算層などのキュービットの2次元配列の誤りを訂正するために使用される。他の実施形態において、本方法はキュービットの1次元配列に適用できる。
【0035】
動作115で、古典処理層106における古典処理コア112が量子コンピュータ100における量子誤り検出回路を通じて誤り伝搬の階層表現を受け取り、ここで階層表現が複数の線回路層を含み、各線回路層が、量子アルゴリズムの実行における1つまたは複数の潜在的誤りプロセスと関連する量子コンピュータにおける局所検出事象の確率を表現する。
【0036】
一部の実施形態において、階層表現は1つまたは複数の層(本明細書において線回路層とも称される)を含む。各線回路層は、量子アルゴリズムの段階において一回の誤り検出中に発生し得る1つまたは複数の潜在的検出事象を表現する。例えば、層は、量子アルゴリズムの実行中の一回の誤り検出中にシンドロームキュービットにおいて発生し得る全ての検出事象の表現を含むことができる。
【0037】
層における1つまたは複数の潜在的検出事象の各々から生じるのは、その検出事象を1つまたは複数の他の潜在的検出事象に接続する一組の加重線である。他方の潜在的検出事象は、線が生じる検出事象と同じ回の誤り検出で発生し、したがって同じ層内にあり得る。他方の検出事象は他の回の誤り検出にもあり得る。
【0038】
各線の重みは、誤りの結果として共に発生する線の各端における検出事象の確率を表す。一部の実施形態において、線は、高確率線ほど低確率線より低い重みを有するように加重される。例えば、線は以下に従って加重できる:
wi=-Clnpi、
式中wiは第iの線の重みであり、piは第iの線と関連する確率であり、そしてCは定数である。
【0039】
階層表現は、量子アルゴリズムおよびその実行中に発生し得る起こり得る誤りの知識に基づいて事前決定される。事前決定によって、量子アルゴリズムの実行が開始する前に階層表現が決定されることが意味される。一部の実施形態において、階層表現は、量子計算システムとは別個の計算システムによって構築される。例えば、階層表現は、量子計算システム上で走らせられることになる量子アルゴリズムの知識に基づいて遠隔計算システムによって構築されてよい。階層表現は、量子アルゴリズムの実行前にこの遠隔計算システムから量子計算システムに伝送できる。
【0040】
一部の実施形態において、階層表現は、量子計算層における量子素子の各局所パッチに対する表現が第1の古典計算層における対応するプロセッサコアのプロセッサキャッシュへ適合するように選ばれる。これにより、古典計算層におけるプロセッサコアによって行われる計算的に遅いRAM検索の数を削減または排除さえできて、誤り訂正を高速化できる。階層表現の構築は
図4に関して以下により詳細に記載することになる。
【0041】
動作116で、量子コンピュータが量子アルゴリズムの実行を開始する。量子アルゴリズムは量子コンピュータにおいて実行される。一部の実施形態において、量子コンピュータは、
図1に関して記載したように、量子計算層において量子アルゴリズムを実行した。量子コンピュータは、誤り訂正のために使用されている表面符号を伴う量子アルゴリズムを実行する。表面符号は大きなチェッカーボードとして視覚化できる。各正方形がキュービットを表現する。白い正方形が、データを記憶するために使用されているキュービットに対応して、データキュービットと称される。黒い正方形が、それらの隣接する4つのデータキュービットの誤りを検査するために使用されているキュービットに対応して、測定またはシンドロームキュービットと称される。表面符号の領域をオン/オフすることによって計算が達成される。物理的に、これには、測定キュービットに量子計算層の特定領域内のデータキュービットと相互作用するのをやめさせることを伴う。
【0042】
量子アルゴリズムの実行中に、シンドロームキュービットが隣接するデータキュービット上の測定を行ってシンドローム測定を発生する。これらの測定は、量子計算アルゴリズムの実行においていくらかでも誤りが発生したかどうかを判定する処理のために古典処理層に伝送できる。一部の実施形態において、シンドローム測定は制御層を介して古典処理層に伝送される。
【0043】
複数回の測定が適時に順次行われる。本方法の結果は、時に時空またはボリュームと呼ばれる、2次元(キュービットの1次元配列に対する)または3次元(キュービットの2次元配列に対する)データ構造において動作するとして視覚化できる。
【0044】
動作118で、古典処理コア112が量子コンピュータにおける量子誤り検出回路から1つまたは複数のシンドローム測定を受け取る。
【0045】
一部の実施形態において、シンドローム測定は、量子計算システムにおける制御層を通過する。制御層は、生シンドローム測定データを、古典処理コアによって処理できる2値測定データへ変換する。この2値シンドローム測定データは、更なる処理のために制御層から古典処理コアに伝送される。
【0046】
一部の実施形態において、古典処理コアはその生形式のシンドローム測定データを受け取る。
【0047】
動作120で、古典処理コア112がシンドローム測定を配列であって、量子アルゴリズムにおける一連のステップで量子誤り訂正回路のパッチを表現する、各処理コアにおける配列に書き込まれる検出事象へ変換する。
【0048】
各プロセッサコアにおける配列は、量子アルゴリズムのステップを表現する層から順次配列を構成することによって階層表現から構築される。新たな回の誤り検出が行われるにつれて、各プロセッサコアはその誤り検出回を表現する配列に層を追加する。配列内で、特定の層が、行われている量子アルゴリズムに依存して連続してか否か、複数回繰り返されてよい。
【0049】
一部の実施形態において、配列は処理コア112のプロセッサキャッシュに循環的に書き込まれる。各プロセッサキャッシュは、その処理コア112と関連するキュービットの局所パッチを表す配列を記憶する。
【0050】
一部の実施形態において、以前のシンドローム測定と比較して測定の変化が検出されると、検出事象が発生したと判定される。シンドローム測定の値の変化は誤りチェーンの終点を示す。判定した検出事象は配列に書き込まれる。
【0051】
動作122で、古典処理コア112が、完全一致および記憶した線回路層を使用して検出事象から量子アルゴリズムの実行の1つまたは複数の誤りを判定する。
【0052】
量子計算アルゴリズムの実行の誤りは、配列における検出事象の対を一致させることによって、または検出事象を配列の抽象的な境界に一致させることによって判定される。最も有望な対合が見つけられるように対が一致される。
【0053】
検出事象の対合は古典処理層における処理コアによって行われる。各プロセッサコアは、その配列における検出事象を同じ配列における検出事象、隣接する処理コアの配列における検出事象および/または量子回路の抽象的な境界と一致させようと試みる。
【0054】
動作124で、判定した誤りに基づくシンドローム測定の訂正が行われる。
【0055】
図3は、複数回のシンドローム測定を表現する3次元データ構造の一例を図示する。3次元データ構造は配列126の形式である。配列126は複数の線回路層128(
図3において全ての層が標記されるわけではない)を備える。各層128は、量子アルゴリズムの実行中に行われるキュービットの局所パッチにおける一回のシンドローム測定を表す。
【0056】
配列126は階層表現における線回路層128から構築される。各層128は複数の点130(
図3において全ての点が標記されるわけではない)および複数の線132(
図3において全ての線が標記されるわけではない)を備える。配列における各点は、量子アルゴリズムの実行中のシンドロームキュービットにおける潜在的誤り検出事象に対応する。配列における各点130から1つまたは複数の線132が生じる。線132は、量子アルゴリズムの実行の既知の潜在的誤りから生じる検出事象に対応する配列における点の対を接続する。
【0057】
量子アルゴリズムの実行中に、量子素子の局所パッチを表す配列126が古典処理コアにおいて構築される。配列126は階層表現から構築される。図示した実施形態などの一部の実施形態において、配列126はプロセッサコアのプロセッサキャッシュに循環的に書き込まれる。配列の切れ目は、現在の回の誤り検出測定を表現する層を示す。
【0058】
測定データがプロセッサコアに流されるにつれて、検出事象134(図においてその一部だけが標記される)が識別され、そして配列に書き込まれる。プロセッサコアは、これらの検出事象134を、それらから生じる線132を使用して対にしようと試みる。発生する線132の高確率ほど低い重みを有するように線132が加重される実施形態において、検出事象134は、最小重み完全一致を使用して対にされる。
【0059】
図4は、量子アルゴリズムの潜在的誤りの階層表現を生成するための方法の一例のフロー図を示す。量子アルゴリズムの実行前に、アルゴリズムのために必要とされるデータ構造が構築される。
【0060】
動作136で、量子アルゴリズムの実行のために使用される量子回路が入力される。量子誤り検出を実装するために使用される量子回路を記述した入力ファイルが古典コンピュータへ読み込まれるか、または最初に生成され次いで読み込まれる。入力ファイルには、各回のシンドローム測定データを生成するためおよび/または量子アルゴリズムを実行するために量子コンピュータにおけるキュービットによって行われるゲート動作を記述する。
【0061】
動作138で、量子回路における潜在的誤り検出事象が判定される。回路におけるゲートごとに、1つまたは複数の起こり得る誤りプロセスがシミュレートされる。一部の実施形態において、ゲートにおけるあらゆる潜在的誤りがシミュレートされる。単一キュービットゲートに対して単一キュービット誤りがシミュレートされ、そして2キュービットゲートに対して2キュービット誤りがシミュレートされる。
【0062】
シンドロームキュービットの1つまたは複数における結果的な検出事象が次いで判定される。検出事象は、シンドロームキュービットからの測定結果のストリームが値を変化させる空間および時間における点である。結果は全てのゲート誤りプロセスの一覧である。
【0063】
各潜在的誤りは、それから生じる検出事象の一覧と関連付けられる。一部の実施形態において、各誤りは、0と4との間の検出事象がそれと関連することになる。
図5は、量子ゲート140において発生する潜在的誤りと関連する検出事象の一覧の一例を図示する。
【0064】
量子アルゴリズムの実行中に量子回路における量子ゲート140において幾つかの誤り142が発生し得る。これらの誤りは古典コンピュータによってシミュレートされ、そして誤りごとに量子回路におけるシンドロームキュービットにおける結果的な検出事象144が判定される。
【0065】
図4を再び参照すると、動作146で、誤り一覧がより短い誤り一覧へ分解される。3つ以上の関連する検出事象を伴う誤りごとに、これは、2つだけの検出事象が関連する他の誤りと関連する検出事象の他の一覧から検出事象一覧を構築することを含む。
【0066】
動作148で、誤りの各一覧と「事前線」が関連付けられる。2つの検出事象と関連する誤りごとに、2つの検出事象を接続する「事前線」が関連付けられる。1つの検出事象と関連する誤りごとに、時空の抽象的な境界に至る事前線が関連付けられる。
【0067】
これらの種類の事前線の各々には、発生するその生成誤りの全確率が割り当てられる。3つ以上の検出事象と関連する誤りは、これらの検出事象を集合的に包含する事前線の一覧と関連付けられる。一部の実施形態において、事前線の複数の異なった一覧が検出事象の一覧を厳密に包含でき、全ての一覧が見つけられる。N個の一覧があれば、各一覧における各事前線には、その生成誤りの確率の1/Nが割り当てられる。
【0068】
動作150で、事前線が合体される。例えば、2つの事前線が時空における同じ位置において始まって終われば、事前線は、元々の2つの総確率を有する単一の事前線と置き換えられる。このプロセスは、合体できる事前線がなくなるまで続けられる。総確率に加えて、合体した事前線は、それらの端点において検出事象を生成する全ての誤りの一覧を保持する。
【0069】
動作152で、事前線が線に変換される。抽象的な境界上で終わらないあらゆる事前線が潜在的に、それと関連する2つの線を有する。事前線は時空における2つの特定位置を接続する。対照的に、線はベクトルである。例えば、単一の時間軸平行事前線は、一方が未来へ向き、一方が過去へ向く、2つの線になることができる。しかしながら、抽象的な境界において終わる事前線は潜在的に、単一の線になるだけである。各線は事前線に至る全ての誤りの一覧を保つが、誤り位置が絶対的よりむしろ相対的にされる。各誤りは、それが関連付けられる回路の始まりに逆に伝搬されて、元々の誤りごとに回路から独立した誤りの一覧を形成する。
【0070】
一部の実施形態において、事前線が線へ変換されるのは、新たな線が任意の以前の線と異なる方向に向くもしくは異なる長さを有する場合、新たな線が、以前の線と同じ方向に向きかつ同じ長さを有するにもかかわらず異なる総確率を有する場合、または新たな線が1つもしくは複数の既存の線と同じ方向に向き、同じ長さを有し、かつ同じ総確率を有するが、これらの線のいずれとも共通して誤り一覧を有しない場合である。時空における各点は、したがって、0以上のエントリを含む線の一覧と関連付けられる。各線が或る一覧に現れる総回数(線の「カウント」)が記録される。一部の線は他より非常に高い回数を有する。
【0071】
動作154で、類似線が併合される。線は、それらが同じ方向に向き、同じ長さを有し、かつ/または1つもしくは複数の誤りを共有すれば、類似していると判定される。一部の実施形態において、線が類似していると判定するためには全ての3つの条件が必要とされる。両方の線に共通でない誤りは破棄される。併合線の確率plは以下であるように設定される:
【0072】
【0073】
式中p1は第1の線と関連する確率であり、p2は第2の線と関連する確率であり、N1は第1の線のカウントであり、そしてN2は第2の線のカウントである。
【0074】
一部の実施形態において、類似していると判定される3つ以上の線がある場合、最小総カウント(N1+N2)を持つ対が併合のために選ばれる。これにより、情報損失併合の影響を最小化できる。
【0075】
一部の実施形態において、256本未満の一意の線となるまで線は結合される。線を結合することによって、線の総数が削減できて、量子アルゴリズムの実行の誤りの識別を単純化できる。線の数を削減することは、量子誤り訂正に使用されるデータ構造のサイズも削減できる。一部の実施形態において、データ構造のサイズは、プロセッサコアのプロセッサキャッシュへ適合するように削減できる。これにより、使用されることになる外部メモリアクセスが少なくなるまたはなくなりさえするので、誤り訂正の実行を高速化できる。したがって、これにより、本明細書に記載されるシステムおよび方法を実装しないシステムにおいてより、必要とされる処理資源-メモリおよび処理サイクル-が少ないという点で量子誤り訂正の分野の技術改良に結びつく。
【0076】
動作156で、一意の線から「ジグソーピース」が構築される。回路記述には「この一連の回路層をn回繰り返す」などの命令を含んでよく、したがって、あらゆるステップにおける真のデータ構造を、完結回路に対応するデータ構造を形成するように繰り返され得る便宜に構築可能な最少の数のジグソーピースから作ることができる。ピースの数はステップごとに変化し得る。回路の異なる部分の繰り返しの総数が大きくなり得、各ステップの非分解表現を構築および操作することが可能でないので、繰り返しピースへのこの分解が必要である。
【0077】
動作158で、線回路層を構築するために結合線が使用される。一旦線の最終的な圧縮一覧が得られると、次いで完全なデータ構造を記述するために必要とされる最小数の線の一意の層が構築できる。線ごとの最短の誤り一覧だけが保たれる。
【0078】
結果は、プロセッサコアのプロセッサキャッシュへ適合できる量子回路の誤り検出部を表現する高圧縮データ構造である。一部の実施形態において、データ構造は、プロセッサコアのL1キャッシュへ適合するのに十分に小さい。各層における各線は、線の端点における検出事象を観察する総確率の近似を表現する。量子回路における検出事象は線の端点で発生する。
【0079】
アルゴリズムの完全な実行には、量子コンピュータの動作中に潜在的に何百万回もの誤り検出を実行する局所パッチ当たり100程度のキュービットを考える。アルゴリズムは、量子コンピュータからのシンドローム測定のストリームを、より少数の検出事象へ変換する。検出事象は時空においてランダムに分散される。これらの検出事象を巨大な時空に記憶するよりむしろ、一部の実施形態において、32回分だけ、各々キュービットの16×16配列のための十分な空間を持って保たれる。一部の実施形態において、配列次元が全て2のべきであることが有利であり得る。
【0080】
明確には、32個の層が記憶される実施形態において、検出回路32、64等と関連する検出事象のように、検出回路0と関連する検出事象は時空層0に記憶されることになる。2のべきサイズを持つ小容量の時空の循環使用は、各線の方向および長さが単一の2バイト整数を使用して表現されることを許容する。各時空位置はボクセルと考えることができ、そして任意のボクセルの指標が与えられると、この2バイト整数を追加して任意の不必要な高位ビットを廃棄することによって、任意の他のボクセルの指標が計算できる。これにより、処理を非常に高速化できる。更には、データ構造がL1キャッシュへ適合するので、使用される計算的に高価なメインRAMアクセスが少なくなるまたはなくなりさえして、本方法も高速化できる。
【0081】
アルゴリズムの実行中に、量子コンピュータにおけるシンドロームキュービットからの測定データが古典計算層におけるプロセッサコアへ流される(例えば、
図1に関して記載したように)。一部の実施形態において、各プロセッサコアは約100個のキュービットの局所パッチを扱う。
【0082】
アルゴリズムが実行されるにつれて、プロセッサコアによって現在考慮されている時空ボリュームを表現する循環配列を検出事象が占め始める。これらの検出事象は未知の誤りチェーンの端点であり、そしてシンドローム測定のストリームへの訂正のための基準として使用する妥当な一組の誤りを判定するために、他の検出事象または境界と一致されなければならない。検出事象は、それらを接続する線の経路に沿って一致される。上記したように、各線は、線が一致された経路の一部であれば誤りの訂正に使用できる誤りの一覧を有する。訂正は、測定値を移動させることによって誤り検出回路を通じて伝搬する。この伝搬は、それ自体潜在的に計算的に高価であり、量子コンピュータが実行を開始する前に安価なビットレジスタ操作の集合へ慎重にコンパイルされなければならない。
【0083】
図6は、検出事象から量子アルゴリズムの実行の誤りを判定する方法の一例のフローチャートを図示する。発生している関連する誤りが高確率な線ほど線重みが低い実施形態において、検出事象を一致させるために最小重み完全一致が使用される。
【0084】
動作160で、配列における未一致の検出事象が選ばれる。事象は、一部の実施形態において、配列からランダムに選ぶことができる。代替的に、検出事象は、例えば最古の未一致の検出事象を選ぶなど、規則を使用して選ばれてよい。
【0085】
動作162で、選ばれた検出事象周辺の配列が探索される。選ばれた検出事象から生じる線は「送水管」のように扱われ、「水」は高確率の線に沿うほど速く進行する。所与の検出事象と関連する水を伴う時空の領域は、その検出事象の探索領域と呼ばれる。例えば、低加重線ほど細い管と考えることができる。探索中に、管の各々に同量の水を加えることができる。水は、太いもの(低確率事象対合と関連付けられる)より細い管の長さに沿うほど遠くに広がることになる。
【0086】
動作164で、追加の測定データが必要とされるかどうかが判定される。シンドロームキュービット測定データがまだ利用可能でない時空層に向けて探索領域が流れ始めれば、より多くのデータが必要とされると判定される。
【0087】
この判定が肯定的であれば、動作166で追加のシンドローム測定データが得られる。量子コンピュータは、別の回の誤り検出を行うことによってこのデータを提供する。
【0088】
この判定が否定的であれば、動作168で配列が検出事象周辺で探索され続ける。
【0089】
動作170で、探索領域において見つけられた検出事象が一致される。異なる検出事象の探索領域が重複するのは許されない。2つの検出事象が、それらの探索領域が任意の他の探索領域と重複することなく接触するように、ちょうど十分な水が各々に加えられ得るように、見つけることができれば、それらは一致させることができる。
【0090】
より複雑な状況では、花が作成または破壊されるに至ってよい交代木が作成されることになり、これらの詳細は「タイミング解析」紙に記載される。
【0091】
動作172で、プロセッサコアが、配列にいくらかでも未一致の検出事象が残っているかどうかを判定する。未一致の検出事象が残っていれば、別の検出事象が選ばれて、プロセスが繰り返される。
【0092】
更なる検出事象が残っていなければ、動作174で、プロセッサコアが量子コンピュータからの更なるシンドローム測定データを待つ。
【0093】
一部の実施形態において、検出事象周辺の近傍の探索が階層的に扱われる。一般のマッチングアルゴリズムを呼び出す前に1つまたは複数のより単純なケースを検査することによって、マッチングの効率が改善できる。
【0094】
階層の初期ステップは、選択された検出事象周辺の配列を探索して未着手の検出事象を見つけ、そして選択された検出事象を未着手の検出事象と対にすることである。第1に、検出事象が最初に作成されるとき、任意の隣接する時空ボクセルはいかなる水も含むことが不可能である。そのような検出事象は未着手と呼ばれる。一対の隣接する未着手の検出事象を見つけることができれば、それらが最初にこれらの検出事象の両方に隣接するボクセルの全てにおける水の有無を検査することなく一致されることを可能にするのにちょうど十分な水を各々に加えることが可能である。これが事実であれば、これらの事象は一致され、次いで別の検出事象が選ばれる。隣接する未着手の検出事象の対を見つけることができなければ、次の特例が考慮される。
【0095】
階層の第2のステップは、選択された検出事象周辺の配列を探索して、異なる検出事象と関連する以前に探索した領域を見つけ、そして選択された検出事象を異なる検出事象と対にすることである。隣接する着手済みの検出事象(すなわち、それらの線に既に水が加えられた検出事象)が与えられると、隣接するボクセルの各々にどれくらいの水があるかを検査し、そしてこれをそのボクセルへの線の重みから減算することによって、各々に加えるのが可能な最大量の水が計算されなければならない。マッチングを許すのに十分な水を各々に加えることができれば(すなわち他の検出事象探索領域が重複されない)、これが行われ、そして別の検出事象が選ばれる。
【0096】
上記のケースのいずれも当てはまらなければ、一般の最小重み完全一致アルゴリズムが呼び出される。
【0097】
本明細書に記載される量子材料および量子演算の実装例が、本明細書に開示される構造およびそれらの構造等価物を含め、適切な量子回路網もしくは、より一般に、量子計算システムで、またはそれらの1つもしくは複数の組合せで実現されてよい。用語「量子計算システム」は、量子コンピュータ、量子情報処理システム、量子暗号システムまたは量子シミュレータを含んでよいが、これに限定されない。
【0098】
用語、量子情報および量子データは、最小の重要な系がキュービット、例えば、量子情報の単位を定義する系である、量子系によって伝達、保持または記憶される情報またはデータを指す。用語「キュービット」が対応する文脈で二準位系として適切に近似されてよい全ての量子系を包含することが理解される。そのような量子系には、例えば、二準位以上の多準位系を含んでよい。例として、そのような系には、原子、電子、光子、イオンまたは超伝導キュービットを含むことができる。多くの実装例では、計算基礎状態は基底および第1励起状態と識別されるが、しかしながら計算状態が高次励起状態と識別される他の構成が可能であることが理解される。量子メモリが、高忠実度および効率で長時間の間、量子データを記憶できる素子、例えば、伝送のために光が使用され、そして重ね合わせまたは量子コヒーレンスなどの量子データの量子特徴を記憶および保持するために物質が使用される光-物質インタフェースであることが理解される。
【0099】
量子回路素子は、量子処理動作を行うために使用されてよい。すなわち、量子回路素子は、重ね合わせおよびもつれなどの、量子力学的現象を使用して、非決定論的にデータに演算を行うように構成されてよい。キュービットなどの、或る量子回路素子は、同時に2つ以上の状態で情報を表現および演算するように構成されてよい。本明細書に開示されるプロセスで形成されてよい超伝導量子回路素子の例には、とりわけ、コプレーナ導波路、量子LC発振器、キュービット(例えば、磁束キュービットまたは電荷キュービット)、超伝導量子干渉素子(SQUID)(例えば、RF-SQUIDまたはDCSQUID)、インダクタ、コンデンサ、伝送線路、接地面などの回路素子を含む。
【0100】
対照的に、古典回路素子は一般に決定論的にデータを処理する。古典回路素子は、データに基本算術、論理および/または入出力動作を行うことによってコンピュータプログラムの命令を集合的に実施するように構成されてよく、データはアナログまたはデジタル形式で表現される。一部の実装例では、古典回路素子は、電気または電磁接続を通じて量子回路素子にデータを送信および/またはそれからデータを受信するために使用されてよい。本明細書に開示されるプロセスで形成されてよい古典回路素子の例には、高速単一磁束量子(RSFQ)素子、30相互量子論理(RQL)素子、およびバイアス抵抗器を使用しないRSFQのエネルギー効率バージョンであるERSFQ素子を含む。他の古典回路素子は、同様に本明細書に開示されるプロセスで形成されてよい。
【0101】
本明細書に記載される回路素子などの、超伝導量子回路素子および/または超伝導古典回路素子を使用する量子計算システムの動作中に、超伝導回路素子は、超伝導体材料が超伝導特性を呈することを許容する温度にクライオスタット内で冷却される。
【0102】
本明細書が多くの具体的な実施詳細を含むが、これらは、特許請求され得るものの範囲への限定としてでなく、むしろ特定の実装例に固有であり得る特徴の記述として解釈されるべきである。別々の実装例の文脈で本明細書に記載される或る特徴が、組み合わせて単一の実装例でも実装できる。反対に、単一の実装例の文脈で記載される様々な特徴が、別々に複数の実装例でも、または任意の適切な下位組合せでも実装できる。その上、特徴が或る組合せで作用すると上記され、しかもそのように最初に特許請求され得るが、特許請求された組合せからの1つまたは複数の特徴が、一部の場合には、同組合せから削除でき、そして特許請求された組合せは、下位組合せまたは下位組合せの変形とされ得る。
【0103】
同様に、動作が特定の順に図面に描かれるが、これは、望ましい結果を達成するために、そのような動作が図示される特定の順にもしくは順番に行われること、または全ての例示された動作が行われることを必要とすると理解されるべきでない。例えば、特許請求の範囲に列挙される行為は異なる順に行え、それでも望ましい結果を達成できる。或る状況では、マルチタスキングおよび並列処理が有利であり得る。その上、上記した実装例における様々な部品の分離は、全ての実装例においてそのような分離を必要とするとして理解されるべきでない。
【0104】
幾つかの実装例が記載された。にもかかわらず、本発明の趣旨および範囲から逸脱することなく様々な変更がなされ得ることが理解されるであろう。他の実装例は以下の特許請求の範囲内である。
【符号の説明】
【0105】
100 量子コンピュータ
102 量子計算層
104 制御層
106 古典処理層
108 キュービット(量子素子)
110 制御素子
112 処理コア
114 局所パッチ
126 配列
128 線回路層
130 点
132 線
134 検出事象
140 量子ゲート
142 誤り
144 検出事象