様々な図面における同様な参照番号および指定は同様な要素を示す。
本明細書は、当該量子システム上でエラー訂正動作が実行している間にその場で量子ビット性能を連続的におよび効果的に最適化するための量子システムおよび方法を説明する。当該方法は、エラー検出からの出力を直接監視し、この情報を、当該量子システムに関連付けられた量子ゲートを較正するためのフィードバックとして提供する。幾つかの実装では、当該物理量子ビットは、1つまたは複数の独立なハードウェア・パターン、即ち、各ハードウェア・パターンに帰属可能であるエラーが非重複である構成に空間的に分割される。ハードウェア・パターンの当該1つまたは複数の異なるセットはついで、全ての物理量子ビットおよび動作が最適化されるように一時的にインタリーブされる。当該方法により、ハードウェア・パターンの各セクションの最適化を個々におよび並列に実施でき、O(1)スケーリングをもたらしうる。
例示的な動作環境
図1Aは、反復コードに対する例示的なエラー訂正システム100の1次元略斜視図である。システム100は2次元サーフェスコードの1次元分割である。当該システムは量子ビット102の1次元アレイを含む。明確さのため、9個の量子ビットが図1Aに示されているが、当該システムが、かなり大きな数の量子ビット、例えば、何百万もの量子ビットを含んでもよい。量子ビットの当該アレイは、測定量子ビット、例えば、106、110、114、および118とラベル付けされた測定量子ビットとインタリーブされた、データ量子ビット、例えば、104、108、112、116、および120とラベル付けされたデータ量子ビットを含む。ビット・フリップ・エラー検出のケースでは、当該量子ビットは測定Zタイプ量子ビットであってもよい。
当該システムが、1組の読出し量子ゲート、例えば、読出し量子ゲート122を含んでもよい。当該読出しゲートは測定量子ビット、例えば、測定量子ビット106、110、114および118で動作するように構成されてもよい。各読出しゲートは対応する測定量子ビットの状態を提供してもよく、対応する1組の物理読出しゲート・パラメータに関連付けられてもよい。
当該システムが、1組のシングル量子ビット量子ゲート、例えば、シングル量子ビットゲート132および134を含んでもよい。当該シングル量子ビット量子ゲートは単一のデータ量子ビットまたは単一の測定量子ビットの何れかで動作するように構成されてもよい。図1Aに示すシングル量子ビットゲートはPauliXゲート、例えば、PauliXゲート134、およびHadamardゲート、例えば、Hadamardゲート132を含むが、幾つかの実装では、当該システムが、他のシングル量子ビットゲートを含んでもよい。例えば、当該シングル量子ビットゲートが、任意の位相シフトゲートまたは回転ゲートを含んでもよい。各シングル量子ビット量子ゲートは対応する1組の物理シングル量子ビット量子ゲート・パラメータに関連付けられてもよい。
当該システムが、1組の制御されたNOT(CNOT)ゲート、例えば、CNOTゲート124を含んでもよい。制御されたゲートは2つ以上の量子ビットに作用してもよく、当該量子ビットの1つまたは複数は幾つかの動作に対する制御として動作してもよい。CNOTゲートが、2つの量子ビット、即ち、コントロール量子ビットおよびターゲット量子ビットで動作してもよく、当該コントロール量子ビットが1>であるときにのみ当該ターゲット量子ビット上でNOT動作を実施する。図1AにおけるCNOTゲートは近傍の測定およびデータ量子ビットのペアで動作するように構成され、1つの量子ビットは当該コントロール量子ビットおよび他のターゲット量子ビットとして動作し、例えば、CNOTゲート124は近傍の量子ビット104および106のペアで動作する。エラー検出がビット・フリップ・エラーを検出するように設計される場合、CNOTゲートにより操作される各データ量子ビットはコントロール量子ビットであってもよく、各近傍の測定量子ビットは対応するターゲット量子ビットであってもよい。各CNOTゲートは対応する1組の物理CNOTゲート・パラメータに関連付けられてもよい。
ターゲット量子ビット、例えば、106で動作するCNOTゲート、例えば、124が当該ターゲット量子ビットに相対的な1つまたは複数の方向、例えば、図1Aに示すように、当該ターゲット量子ビットの左および右を定義してもよい。当該反復コードの例において、図1Aに示すように、CNOT量子ゲートはビット・フリップ・エラーを当該関連付けられたデータ量子ビットから検出のために当該関連付けられた測定量子ビットにコピーしてもよい。別の例では、当該エラー検出が位相フリップ・エラーを検出するように設計される場合、測定量子ビットは当該コントロール量子ビットであってもよく、近傍のデータ量子ビットは当該ターゲット量子ビットであってもよい。当該CNOT量子ゲートはついで、位相フリップ・エラーを当該関連付けられた測定量子ビットから当該関連付けられたデータ量子ビットにコピーしてもよい。
当該システムが、量子ビット102とデータ通信するエラー訂正サブシステム130を含んでもよい。当該エラー訂正サブシステムは、エラー検出からの出力を監視し、当該量子ゲートを較正するためにこの情報を当該システムにフィードバックするように構成されてもよい。エラー訂正サブシステム130は量子ビット102を1つまたは複数のハードウェア・パターンに空間的に分割し、量子測定を各ハードウェア・パターンにおける測定量子ビットに実施してもよい。当該1つまたは複数のハードウェア・パターンは、それぞれに相対的な各ハードウェア・パターンの最適化が本質的に独立でありうるように、独立であってもよい。量子ビットを1つまたは複数のハードウェア・パターンに分割するステップが図2を参照して以下でより詳細に説明される。測定出力、または検出イベントは測定量子ビットに対する状態の測定されたパターンの変化を示してもよく、これは、近傍のエラーの存在、即ち、当該エラーが当該関連付けられたデータ量子ビットまたは測定量子ビットで発生したかどうかを示す。したがって、それらにおける測定出力およびそれらの測定出力が、データ量子ビットまたは測定量子ビット上のエラーに直接相関しなくてもよい。エラーおよびゲート・パラメータを相関付けるステップを、図2Aおよび2Bを参照して以下でより詳細に説明する。
エラー訂正サブシステム130は、当該実施された量子測定の結果を使用して、測定量子ビットごとの現在のエラー率のような関心のある関連する量、またはメトリックを計算してもよい。エラー訂正サブシステム130はまた、1つまたは複数の測定された測定量子ビットに対する決定されたエラー率の平均値を計算するステップ、または時間におけるエラー率の変化を決定するステップのような、実施された量子測定の結果を用いて追加の計算を実施してもよい。エラー訂正サブシステム130がデータ・ストアを含んでもよく、実施された量子測定または追加の計算の結果を格納してもよい。
当該エラー訂正サブシステムは、実施された測定の結果を使用して、量子ビット102に作用する量子ゲートのパラメータを最適化してもよい。例えば、エラー訂正サブシステム130は量子ゲート・パラメータの適切な調整、例えば、1組の量子ゲート・パラメータの最小化を決定するための、Nelder−Meadアルゴリズムのような数値最適化アルゴリズムを実装してもよい。適切な調整が決定されると、当該エラー訂正サブシステムは、当該調整をフィードバックとして量子ビット102に提供し、それに応じて当該量子ゲートのパラメータを調節してもよい。
図1Bは、例示的なエラー訂正システムにおける量子ビット150の2次元略斜視図である。当該システムが、量子ビット150の2次元アレイを含んでもよい。再度、明確さのため、81個の量子ビットが図1Bに示されているが、当該システムが、かなり大きな数の量子ビット、例えば、何百万もの量子ビットを含んでもよい。量子ビットのアレイが、当該データ量子ビットが当該データ量子ビットの上、下、右、および左に対する4つの近傍の測定量子ビットを有するように、測定量子ビット、例えば、154、156、158、および160とラベル付けされた測定量子ビットとインタリーブされた、データ量子ビット、例えば、152とラベル付けされたデータ量子ビットを含んでもよい。図1Bは、より高い次元への図1のシステム100Aのスケーラビリティを示す。
以下の図2Aおよび2Bは、量子ゲート最適化を実施するために使用される例示的なハードウェア・パターンを示す。
図2Aは、量子ビットの1次元アレイを含むエラー訂正システムにおける例示的なハードウェア・パターン200の1次元略斜視図である。例えば、当該エラー訂正システムは図1Aを参照して上述したように量子ビット102の1次元アレイを含むエラー訂正システムであってもよく、ゲート・クロス・ハッチングはどの測定量子ビットがそのゲートからエラーを検出するかに対応する。
ハードウェア・パターン200が4つのハードェア・グルーピング206を含んでもよく、その各々は測定量子ビットおよびその量子ビットに対する対応するシングル量子ビット動作を含み、例えば、ハードェア・グルーピング202は測定量子ビット204および対応するシングル量子ビット動作208を含む。ハードウェア・パターン内のグルーピングを独立に動作させてもよい。シングル量子ビット動作208からのエラーは近傍のデータ量子ビットに伝播しなくてもよく、当該測定量子ビットからの相対的な検出フラクションを使用して、図6を参照して以下で説明するようにゲート・パラメータの変化を推論してもよい。
さらに、エラー検出がビット・フリップ・エラーを検出するように設計され、CNOTゲートにより操作される各データ量子ビットがコントロール量子ビットであり、各近傍の測定量子ビットが対応するターゲット量子ビットである場合、ビット・フリップ・エラーは、データ量子ビットおよび測定量子ビットのペアに適用される当該CNOTゲートの方向に起因して、データ量子ビットに伝播しなくてもよい。むしろ、ビット・フリップ・エラーは、特定の測定量子ビットおよびしたがって特定のハードェア・グルーピングに局所化されてもよい。
ゲートエラーの局所化のため、測定量子ビットは、1つのハードウェア・パターン200として、個々に完全に並列に最適化されるシングル量子ビット量子ゲート・パラメータを有してもよい。構成により、当該データ量子ビットおよび測定量子ビットが分割されるハードウェア・パターンが、測定量子ビットのみを含むハードェア・グルーピングを含む1つのパターンを含んでもよい。
図2Bは、量子ビットの1次元アレイを含むエラー訂正システムにおける例示的なハードウェア・パターン210および220の1次元略斜視図である。例えば、当該エラー訂正システムは図1Aを参照して上述のように量子ビット102の1次元アレイを含むエラー訂正システムであってもよく、ゲート・クロス・ハッチングはどの測定量子ビットがそのゲートからエラーを検出するかに対応する。
ハードウェア・パターン210が、複数のハードェア・グルーピング、例えば、ハードェア・グルーピング212を含んでもよく、その各々は、測定およびデータ量子ビットおよびCNOTゲートに対する対応するシングル量子ビット動作に沿って1つのデータ量子ビットおよび高々2つの測定量子ビットを含み、例えば、図2Bに示すように、ハードェア・グルーピング212は測定量子ビット214、シングル量子ビット動作216およびCNOTゲート218および219を含む。ハードウェア・パターン内の当該グルーピングを独立に動作させてもよい。シングル量子ビット動作216およびCNOTゲート218および219からのエラーはハードェア・グルーピング212外部に伝播しなくてもよく、図7および8を参照して以下で説明するように、各ハードェア・グルーピング内の測定量子ビットの検出イベントフラクションを使用して各グルーピング内のゲートに対するゲート・パラメータの変化を推論してもよい。
さらに、エラー検出がビット・フリップ・エラーを検出するように設計され、CNOTゲートにより操作される各データ量子ビットがコントロール量子ビットであり、各近傍の測定量子ビットが対応するターゲット量子ビットである場合、ハードウェア・パターン200と異なり、ビット・フリップ・エラーをデータ量子ビットからCNOTゲートを通じて近傍の測定量子ビットにコピーしてもよい。したがって、データ量子ビット上の単一のエラーは近傍の測定量子ビット上の2つの検出イベントを生成してもよく、同一の測定量子ビットまたはデータ量子ビット上でCNOTゲート・パラメータを並列に最適化するのが可能でないかもしれない。当該ハードウェア・パターン、例えば、210および220に自然な制限があってもよい。一般に、ハードウェア・パターンに完全に含まれるCNOTゲートが当該パターンにおいて最適化されてもよい。
次の最も近傍のデータ量子ビットが同時にそれらのシングル量子ビットパラメータを最適化させる場合、それらは両方ともエラーを同一の測定量子ビットにコピーしてもよい。したがって、エラーは混乱しうる。この問題を回避するために、全ての他のデータ量子ビットが、測定量子ビットへの二重マッピングエラーを回避するように最適化されてもよい。かかる混乱なしに同時にそれらのシングル量子ビットパラメータを最適化できる2つのハードウェア・パターン210および220が生成されてもよく、例えば、互いに相対的なパターン210および220の両方の最適化は本質的に独立である。構成により、当該データ量子ビットおよび測定量子ビットが分割されるハードウェア・パターンが少なくとも1つのパターンを含んでもよく、当該対応するハードェア・グルーピングはデータ量子ビットおよび測定量子ビットの両方を含む。
図2Aおよび2Bに示されたハードウェア・パターン200、210および220は、図1Aに示すような1次元エラー訂正システム内のエラー訂正を実施するために使用できる最小数のハードウェア・パターンを構成する。下記のテーブルは、全てのゲートを並列に最適化するためにインタリーブされうるパターンの数をカウントする。3つのインタリーブされたパターンがあり、各パターンにおいて1つのゲートが並列に最適化されてもよい。この数は、理想的な意味で、即ち、量子ビットが、相互作用すべきではない量子ビットとの任意の寄生相互作用を有さない状態で当該システムが実施されていると仮定して、任意のサイズの反復コードに対して定数であってもよい。当該示されたパターンは最小組のパターンであり、幾つかの実装では、必要に応じてより多くのものを追加してもよい。当該システムに対するかかるハードウェア・パターンを選択することによって、夫々のハードウェア・パターンにおける各ハードェア・グルーピング内のゲート・パラメータが、当該ゲート・パラメータを変更しハードェア・グルーピングごとの測定されたエラー率を最適化することで、最適化されてもよい。さらに、有限個のハードウェア・パターンを選択することによって、エラー検出を実行する量子コンピュータを最適化するために必要な各動作にアクセスしうる。ハードウェア・パターンが選択されると、全てのハードェア・グルーピングを並列に独立に最適化でき、これは任意のサイズの量子コンピュータにおける全ての単一のゲートを最適化するためのO(1)スケーリング戦略である。
最適化を要求する3つの別々のパターンがあるが、1つのパターン内に独立に最適化されうる複数の動作がある。ゲート・パラメータを最適化するステップが、図5乃至8を参照して以下でより詳細に説明される。
上のテーブルに示され、図2Aおよび2Bを参照して上述したハードウェア・パターンは代表的なパターンであり包括的ではない。特定の回路内のエラー伝播を追跡することで、厳密なパターンおよび各グルーピングを当該システムにカスタマイズでき、決定することができる。例えば、当該ハードウェア・パターンを当該システムソフトウェアで事前に計算する必要はない。幾つかの実装では、当該ハードウェア・パターンを、特定のゲート上のパラメータを変更し、検出イベントの変化が発見された場所を観測することにより決定してもよい。当該特定のゲートの各々におけるパラメータの各々をかかる方式で変更することで、生成された情報を処理し、当該ハードウェア・パターンを決定するために使用してもよい。ハードウェア・パターンを決定するかかる方法はハードウェア非理想性にセンシティブであり、システム性能および効率を高めうる。
図3は例示的なエラー訂正システムにおける量子ビットの1次元略斜視図の回路表現である。この簡略化された回路表現では、測定量子ビット304の出力は、3つの入力、即ち、関連付けられた測定量子ビット304に対して1つ、および各近傍のデータ量子ビット302および306に対して1つを有するマルチプレクサ308として動作してもよい。当該データまたは測定ボックス、例えば、データボックス302、306および測定ボックス304のうち1つの出力を直接探索するために、当該マルチプレクサへの入力のうち1つのみを一度に選択してもよい。ここから、図2Aおよび2Bを参照して上述した3つのハードウェア・パターン200、210および220が生ずる。
図4は、エラー訂正システムにおける例示的なハードウェア・パターンの2次元略斜視図400である。図2Aおよび2Bを参照して上述した同一の分析が当該示されたハードウェア・パターンを生成するためにサーフェスコードに適用されてもよい。当該ハードウェア・パターンが、測定量子ビットを含む1つのハードウェア・パターン404を含んでもよい。残りのハードウェア・パターン406乃至412が、データ量子ビットおよび測定量子ビットの両方を含んでもよい。
図4に示されたハードウェア・パターン404乃至412は、量子ビットの2次元アレイを含むシステムに対するエラー訂正を実施するために使用できる最小数のハードウェア・パターンを構成する。下記のテーブルは、全てのゲートを並列に最適化するようにインタリーブされるパターンの数をカウントする。5つのインタリーブされたパターンがあり、各パターンにおいて1つのゲートが最適化されてもよい。当該示されたパターンは代表的なものであり、最小セットではない。他のパターンが存在し、より複雑であってもよい。当該パターンの数と複雑度は、どの順番で量子ゲートが当該アレイにわたって実行されるかの厳密な詳細に依存する。上述のように、当該システムに対するかかるハードウェア・パターンを選択することによって、夫々のハードウェア・パターンにおける各ハードェア・グルーピング内のゲート・パラメータが、当該ゲート・パラメータを変更しハードェア・グルーピングごとの測定されたエラー率を最適化することで、最適化されてもよい。さらに、有限個のハードウェア・パターンを選択することによって、エラー検出を実行する量子コンピュータを最適化するために要求される各動作にアクセスしうる。ハードウェア・パターンが選択されると、全てのハードェア・グルーピングを独立に並列に最適化することができ、これは任意のサイズの量子コンピュータにおける全ての単一のゲートを最適化するためのO(1)スケーリング戦略である。
最適化を要求する5つの別々のパターンがあるが、1つのパターン内に独立に最適化されうる複数の動作がある。ゲート・パラメータを最適化するステップが図5乃至8を参照して以下でより詳細に説明される。
上のテーブルに示され、図4を参照して上述したハードウェア・パターンは代表的なパターンであり包括的ではない。特定の回路内のエラー伝播を追跡することで、厳密なパターンおよび各グルーピングを当該システムにカスタマイズし、決定することができる。例えば、当該ハードウェア・パターンをシステムのソフトウェアで事前に計算する必要はない。幾つかの実装では、当該ハードウェア・パターンを、特定のゲート上のパラメータを変更し、検出イベントの変化が発見された場所を観測することにより決定してもよい。当該特定のゲートの各々におけるパラメータの各々をかかる方式で変更することで、生成された情報を処理し、当該ハードウェア・パターンを決定するために使用してもよい。ハードウェア・パターンを決定するかかる方法はハードウェア非理想性にセンシティブであり、システム性能および効率を高めうる。
本明細書で説明されたハードウェア・パターンは反復コードを実行する量子ビットの1次元チェーンに対して固有であるが、この技術は大抵のエラー訂正枠組みに汎用化しうる。固定された最大サイズの量子ビットのグループを用いてエラーを検出し、任意の量子ビットが属するグループの数がシステムサイズに対応しない任意の枠組みが、本明細書で説明されたハードェアおよび方法を利用することができる。例えば、当該技術は、サブシステムコードを含む全てのトポロジコード、および最低レベルの連結に着目することで全ての連結されたコードと互換であってもよい。これはサーフェスおよびカラーコード、およびSteaneおよびShorコードを含む。本明細書で説明されたハードェアおよび方法は、システムサイズでのO(1)スケーリングを保存したい場合は、有限レート・ブロック・コードと互換でなくてもよい。ハードウェア・パターンおよびグルーピングを、エラー検出回路をシミュレートするか、または、コントロール・パラメータを物理的に変更し検出フラクションが変化する場所を決定することによって、アルゴリズム的に発見することができる。
特に、図2Aおよび2B、3および4を、反復コードおよびサーフェスコードに関して説明したが、ゲートから物理測定へのエラー・シグネチャを追跡する方法を、当該反復およびサーフェスコードの外部で適用し、任意の量子回路に適用でき、最適化のためのフィードバックを提供するための方法として使用してもよい。
その場量子エラー訂正の実施
図5は、エラー訂正を実行している間に量子ゲート・パラメータの連続的な最適化を実施するための例示的なプロセス500の流れ図である。例えば、プロセス500を、図1A乃至1Bおよび図3を参照して上述したシステム100または300によりエラー訂正手続きの間に実施してもよい。プロセス500は自己診断するためのエラー検出を使用し、当該システムが実行している間にコントロール・パラメータの連続的な最適化を可能とし、したがって計算に割り込むことなくシステムドリフトに対抗する。
当該システムはデータ量子ビットおよび測定量子ビットの集合を別々のハードウェア・パターンに空間的に分割する(ステップ502)。当該システムは、それぞれの別々のハードウェア・パターンに帰属可能であるエラーが他の別々のハードウェア・パターンに帰属可能であるエラーと重複しないように、データ量子ビットおよび測定量子ビットの集合を分割する。構成により、当該ハードウェア・パターンが、測定量子ビットを含むグルーピングを有する1つのパターン、およびデータ量子ビットおよび測定量子ビットの両方を含むグルーピングを有する2つ以上のパターンを含んでもよい。データ量子ビットおよび測定量子ビットの集合を別々のハードウェア・パターンに分割する構成が、図2Aおよび2Bおよび図4を参照して上でより詳細に説明されている。
当該システムは、測定量子ビットを含むグルーピングを有する各ハードウェア・パターン内の量子ビットで動作する量子ゲートのパラメータを最適化するための段階に入る(ステップ504)。構成により、データ量子ビットおよび測定量子ビットの集合内の測定量子ビットの各々は、ステップ502で構築されたハードウェア・パターンのうち1つを形成してもよい。例えば、1次元において、当該システムは、図2Aを参照して上述したハードウェア・パターン200内の測定量子ビットで動作する量子ゲートのパラメータを最適化してもよい。別の例では、2次元において、当該システムは、図4を参照して上述した、ハードウェア・パターン404内の測定量子ビットで動作する量子ゲートのパラメータを最適化してもよい。
当該測定量子ビットで動作する量子ゲートのパラメータの最適化を実施するステップを、最も単純な最適化段階と考えてもよい。例えば、エラー訂正を反復コードに実施するステップを考慮するとき、当該測定量子ビットはビット・フリップ・エラーを検出してもよい。測定およびデータ量子ビットのペアに適用されるCNOTゲートの方向に起因して、当該ビット・フリップ・エラーは測定量子ビットからデータ量子ビットに伝播しないので、エラーは特定の測定量子ビットに局所化される。測定量子ビットはしたがって、ステップ506および508を参照して以下で説明されるように、1つのハードウェア・パターンとして個々に完全に並列に最適化されるそれらの上で動作するシングル量子ビット量子ゲートのパラメータを有してもよい。
当該システムは、測定量子ビットで動作する読出しゲートのパラメータの最適化を実施する(ステップ506)。当該測定量子ビットで動作する当該読出しゲートのパラメータの最適化を、ハードウェア・パターン内の測定量子ビットごとに並列に実施してもよい。当該測定量子ビットで動作する当該読出しゲートのパラメータを最適化するための例示的なプロセスが図6を参照して以下で詳細に説明される。
当該システムは、当該測定量子ビットで動作するシングル量子ビット量子ゲートのパラメータの最適化を実施する(ステップ508)。当該測定量子ビットで動作する当該シングル量子ビット量子ゲートのパラメータの最適化を、当該ハードウェア・パターン内の測定量子ビットごとに、並列に実施してもよい。当該測定量子ビットで動作するシングル量子ビット量子ゲートのパラメータを最適化するための例示的なプロセスが図6を参照して以下で詳細に説明される。
当該システムは、データ量子ビットおよび測定量子ビットの両方を含むグルーピングを有する各ハードウェア・パターン内の量子ビットで動作する量子ゲートのパラメータを最適化するための段階に入る(ステップ510)。構成により、データおよび測定量子ビットの両方を含むグルーピングを有する各ハードウェア・パターンにおいて、当該データ量子ビットは、ステップ502で構築されたそれらの夫々のハードェア・グルーピングにおいて測定量子ビットを伴ってもよい。例えば、1次元において、当該システムは、図2Bを参照して上述したハードウェア・パターン210および220内のデータ量子ビットで動作するシングル量子ビット量子ゲートのパラメータを最適化してもよい。別の例では、2次元において、当該システムは、図4を参照して上述した、ハードウェア・パターン406、408、410および412におけるデータ量子ビットで動作するシングル量子ビット量子ゲートのパラメータを最適化してもよい。
当該データ量子ビットで動作するシングル量子ビット量子ゲートのパラメータの最適化を実施するステップは、測定量子ビットで動作する当該シングル量子ビット量子ゲートのパラメータの最適化を実施するステップよりも複雑であってもよい。例えば、エラー訂正を反復コードに実施するステップを考慮するとき、ビット・フリップ・エラーを、当該データ量子ビットおよび当該測定量子ビットの両方で動作するCNOTゲートを通じてデータ量子ビットから近傍の測定量子ビットにコピーしてもよい。したがって、データ量子ビット上の単一のエラーは、図2Aおよび2Bを参照して上述したように、その近傍の測定量子ビットの各々での出力、または検出イベントを生成してもよい。データ量子ビットは、したがって、次の最も近傍のデータ量子ビットが同時にそれらのシングル量子ビットゲートのパラメータを最適化する場合、それらは両方ともエラーを同一の測定量子ビットにコピーし、エラー混乱を生成しうるので、1つのハードウェア・パターンとして個々に完全に並列に最適化されるそれらで動作するシングル量子ビット量子ゲートのパラメータを有さなくてもよい。その代わり、ステップ512および図6を参照して以下で説明されるように、全ての他のデータ量子ビットが1つのハードウェア・パターンとして並列に最適化され、測定量子ビット上のエラーの二重マッピングを回避してもよい。
当該システムは、データ量子ビットおよび測定量子ビットの両方を含むグルーピングを有する各ハードウェア・パターンにおいて当該データ量子ビットで動作するシングル量子ビットゲートのパラメータの最適化を実施する(ステップ512)。各ハードウェア・パターンにおいてデータ量子ビットで動作するシングル量子ビット量子ゲートのパラメータの最適化を各ハードウェア・パターンに対して別々に実施してもよい。しかし、各ハードウェア・パターン内における各グルーピング内のデータ量子ビットで動作するシングル量子ビット量子ゲートのパラメータの最適化を当該ハードウェア・パターン内のデータ量子ビットごとに並列に実施してもよい。当該データ量子ビットで動作するシングル量子ビット量子ゲートのパラメータを最適化するための例示的なプロセスが図7を参照して以下で詳細に説明される。
データ量子ビットおよび測定量子ビットのペアで動作するCNOTゲートのパラメータの最適化を実施するステップはまた、エラー混乱に起因して複雑でありうる。データ量子ビット上のエラーは、関与するデータ量子ビットの各側の測定量子ビットに伝播してもよい。したがって、データ量子ビット上のエラーは、図2Bを参照して上述したように、その近傍の測定量子ビットの各々において出力、または検出イベントを生成してもよい。データ量子ビットおよび測定量子ビットのペアで動作するCNOTゲートのパラメータはしたがって、同一のデータ量子ビットまたは測定量子ビット上で並列に最適化されなくてもよい。これは自然にハードウェア・パターンを、例えば、ステップ510を参照して上述したのと同じものに制限する。エラー混乱を回避するために、単純なルール、即ち、ハードウェア・パターンに完全に含まれるCNOTゲートのみが当該パターンで最適化されてもよいという単純なルールがあってもよい。
当該システムは、ハードウェア・パターン内のデータ量子ビットおよび測定量子ビットの両方を含む各ハードェア・グルーピングにおけるデータ量子ビットおよび測定量子ビットのペアで動作するCNOTゲートのパラメータの最適化を実施する(ステップ514)。当該ハードウェア・パターンにおけるデータ量子ビットおよび測定量子ビットのペアで動作するCNOTゲートのパラメータの最適化を各ハードウェア・パターンに対して別々に実施してもよい。さらに、当該システムは、ハードウェア・パターン内の同一の方向を定義するCNOTゲートを選択し、当該ハードウェア・パターン内のデータ量子ビットごとに同一の方向を並列に定義する当該CNOTゲートのパラメータを最適化する。例えば、1次元において、データ量子ビットおよび測定量子ビットを含む各ハードウェア・パターンごとに、当該システムは、まず、当該データ量子ビットの左にあり当該選択されたCNOTゲート・パラメータを並列に最適化する1組のCNOTゲートを選択し、当該データ量子ビットの右にあり当該選択されたCNOTゲート・パラメータを並列に最適化する1組のCNOTゲートを選択してもよい。当該データ量子ビットおよび測定量子ビットで動作するCNOTゲートのパラメータを最適化するための例示的なプロセスが図8を参照して以下で詳細に説明される。
明確さのため、エラー訂正を実行している間に量子ゲート・パラメータの連続的な最適化を実施するための例示的なプロセス500の流れ図がステップ504乃至514を参照して説明されている。しかし、ステップ504乃至514の動作が提示された順序で逐次的に実施されることが必要でなくてもよい。当該ステップを異なるシーケンスで実施してもよく、複数回実施してもよい。即ち、必要に応じて、当該シーケンス内の次のステップが実施される前に例えば、幾つかの実装では、当該システムは、測定量子ビットを含む各ハードウェア・パターン内の量子ビットで動作する量子ゲートのパラメータを最適化するための段階に入る前に、まず、データ量子ビットおよび測定量子ビットの両方を含む各ハードウェア・パターン内の量子ビットで動作する量子ゲートのパラメータを最適化するための段階に入ってもよい。同様に、例えば、測定量子ビットを含む各ハードウェア・パターン内の量子ビットで動作する量子ゲートのパラメータを最適化するための段階にいったん入ると、当該システムは、最適化ステップ506を実施する前にまず最適化ステップ508を実施してもよい。ステップ506、508、512および514の間で循環することで、即ち、ハードウェア・パターンの間で循環することで、当該システムが実行している間に、全ての量子ビットに対する全てのゲートの全てのパラメータでのシステムドリフトに対抗してもよい。
図6は、測定量子ビットで動作する読出しゲートまたはシングル量子ビット量子ゲートのパラメータを最適化するための例示的なプロセス600の流れ図である。プロセス600を、図5のステップ506で上述したように読出し量子ゲートのパラメータを最適化するための、または図5のステップ508で上述したようにシングル量子ビット量子ゲートのパラメータを最適化するための、図1A乃至1Bおよび図3を参照して上述したシステム100または300により実施してもよい。構成により、図1A乃至1Bおよび図3で説明したデータ量子ビットおよび測定量子ビットの集合内の測定量子ビットの各々は、上で図5を参照してステップ502で構築されたハードウェア・パターンのうち1つを形成する。例えば、1次元において、当該システムは、図2Aを参照して上述したハードウェア・パターン202内の測定量子ビットで動作する読出し量子ゲートまたはシングル量子ビット量子ゲートのパラメータを最適化してもよい。別の例では、2次元において、当該システムは、図4を参照して上述した、ハードウェア・パターン404内の測定量子ビットで動作する量子ゲートのパラメータを最適化してもよい。
プロセス600を、対応するハードウェア・パターン内の測定量子ビットごとに並列に実施してもよい。プロセス600は、閉ループフィードバックを使用して測定量子ビットで動作する読出しゲートまたはシングル量子ビット量子ゲートのパラメータを最適化するプロセスを連続的に繰り返してもよい。
並列に、測定量子ビットごとに、当該システムは、エラー最小化に対する対応するメトリックを決定されたエラー率として定義する(ステップ602)。検出イベントのフラクションとも呼ばれる各量子ビットのエラー率を最小化することで、当該量子ゲートエラーを最小化してもよい。シングル測定量子ビットを含むハードウェア・パターンのケースにおいて、エラー最小化に対するメトリックはその量子ビットに対する検出イベントのフラクションであってもよい。図2Aおよび4に示すもののような、複数の測定量子ビットを含むハードウェア・パターンのケースでは、エラー最小化に対する当該メトリックは、全ての測定量子ビットに対して取られる検出イベントの平均フラクションである。
並列に、測定量子ビットごとに、当該システムは当該測定量子ビットを測定して現在のエラー率を決定する(ステップ604)。
当該システムは決定されたエラー率を格納する(ステップ606)。当該システムは、エラー率の変化が長時間にわたって監視され、量子ゲート・パラメータに加えられた変更と相関付けられるように、プロセス600の反復ごとの当該決定されたエラー率を格納する。
当該システムは、当該決定された現在のエラー率および以前の反復からの格納されたエラー率との間のエラー率の変化を計算する(ステップ608)。測定出力、または検出イベント、および測定量子ビットに対する状態の測定されたパターンの変化は、データ量子ビットまたは測定量子ビット上に関わらず、近傍のエラーの存在を示してもよい。しかし、検出イベント自体は測定量子ビットまたはデータ量子ビット上のエラーに直接相関しなくてもよい。したがって、エラーの変化をゲート・パラメータの変化と相関付けるために、局所化された検出イベントフラクションの変化、即ち、エラー率をゲート・パラメータの変化と比較してもよい。
並列に、測定量子ビットごとに、当該システムは、エラー率の計算された変化に基づいて読出しゲート・パラメータ、またはシングル量子ビット量子ゲート・パラメータを調節する(ステップ610)。当該システムは、Nelder−Mead方法のような数値最適化アルゴリズムを、ステップ608で計算されたエラー率の変化に基づいて適用して、当該読出しゲート・パラメータまたはシングル量子ビット量子ゲート・パラメータに行うための調整を決定してもよい。
当該システムは上述のステップ602乃至610を連続的に繰り返してもよい。原則として、ゲートエラーに関連付けられた物理プロセスに関するより多くの情報を取得するために、測定値Xおよび測定値Yの量子ビットを区別することが可能であってもよく、この情報を当該量子ゲートをより効率的に最適化するために当該システムにフィードバックしてもよい。
図7は、データ量子ビットで動作するシングル量子ビット量子ゲートのパラメータを最適化するための例示的なプロセス700の流れ図である。プロセス700を、図5のステップ512で上述したように当該シングル量子ビット量子ゲートのパラメータを最適化するための、図1A乃至1Bおよび図3を参照して上述したシステム100または300により実施してもよい。当該プロセスを、上の図5を参照してステップ502で構築したデータ量子ビットおよび測定量子ビットの両方を含むグルーピングを有するハードウェア・パターンごとに実施してもよい。例えば、1次元において、当該システムは、図2Bを参照して上述したハードウェア・パターン210および220内のデータ量子ビットで動作するシングル量子ビット量子ゲートのパラメータを最適化してもよい。別の例では、2次元において、当該システムは、図4を参照して上述したハードウェア・パターン406、408、410および412において測定量子ビットで動作する量子ゲートのパラメータを最適化してもよい。
プロセス700を、対応するハードウェア・パターンにおけるデータ量子ビットごとに並列に実施してもよい。プロセス700は、閉ループフィードバックを使用して当該データ量子ビットで動作するシングル量子ビット量子ゲートのパラメータを最適化する連続的に繰り返されるプロセスであってもよい。
並列に、データ量子ビットごとに、当該システムは、エラー最小化に対する対応するメトリックを決定されたエラー率として定義する(ステップ702)。検出イベントのフラクションとも呼ばれる各量子ビットのエラー率を最小化することで、量子ゲートエラーを最小化してもよい。図2Bおよび4に示すもののような、複数の測定量子ビットを含むグルーピングを有するハードウェア・パターンのこのケースにおいて、エラー最小化に対する当該メトリックは全ての測定量子ビットに対して取られる検出イベントの平均フラクションであってもよい。
並列に、データ量子ビットごとに、当該システムは当該対応する近傍の測定量子ビットを測定しては現在のエラー率を決定する(ステップ704)。例えば、1次元システムにおいて、当該システムは少なくとも2つの対応する測定量子ビットを測定してもよい。例えば、2次元システムにおいて、当該システムは少なくとも4つの対応する測定量子ビットを測定してもよい。
当該システムは決定されたエラー率を格納する(ステップ706)。当該システムは、エラー率の変化を長時間にわたって監視し、当該量子ゲート・パラメータに加えられた変更と相関付けうるように、当該決定されたプロセス700の反復ごとのエラー率を格納する。
当該システムは、決定された現在のエラー率および以前の反復からの格納されたエラー率との間のエラー率の変化を計算する(ステップ708)。測定出力、または検出イベント、および測定量子ビットに対する状態の測定されたパターンの変化は、データ量子ビットまたは測定量子ビット上に関わらず、近傍のエラーの存在を示してもよい。しかし、検出イベント自体は測定量子ビットまたはデータ量子ビット上のエラーに直接相関しなくてもよい。したがって、エラーの変化をゲート・パラメータの変化と相関付けるために、局所化された検出イベントフラクションの変化、即ち、エラー率をゲート・パラメータの変化と比較してもよい。
並列に、データ量子ビットごとに、当該システムは、エラー率の計算された変化に基づいてシングル量子ビットゲートのパラメータを調節する(ステップ710)。当該システムは、ステップ708で計算されたエラー率の変化に基づいて、Nelder−Mead方法のような数値最適化アルゴリズムを適用して、当該シングル量子ビット量子ゲート・パラメータに行われるべき調整を決定してもよい。
当該システムは上述のステップ702乃至710を連続的に繰り返してもよい。原則として、当該ゲートエラーに関連付けられた物理プロセスに関するより多くの情報を取得するために、測定値Xおよび測定値Yの量子ビットを区別することが可能であってもよく、この情報を、当該量子ゲートをより効率的に最適化するために当該システムにフィードバックしてもよい。
図8は、データ量子ビットおよび測定量子ビットのペアで動作するCNOTゲートのパラメータを最適化するための例示的なプロセス800の流れ図である。プロセス800を、図5の514ステップで上述したようにCNOTゲートのパラメータを最適化するための、図1A乃至1Bおよび図3を参照して上述したシステム100または300により実施してもよい。上の図5を参照してステップ502で構築されたデータ量子ビットおよび測定量子ビットの両方を含むグルーピングを有するハードウェア・パターンごとに、当該プロセスを実施してもよい。例えば、1次元において、当該システムは、図2Bを参照して上述したハードウェア・パターン210および220におけるデータ量子ビットおよび測定量子ビットのペアで動作するCNOTゲートのパラメータを最適化してもよい。別の例では、2次元において、当該システムは、図4を参照して上述したハードウェア・パターン406乃至412における測定量子ビットで動作する量子ゲートのパラメータを最適化してもよい。
当該CNOTゲートが動作するデータ量子ビットに関して同一の方向を定義する対応するハードウェア・パターンに完全に含まれるCNOTゲートごとにプロセス800を並列に実施してもよい。プロセス800は、閉ループフィードバックを使用して当該CNOTゲートのパラメータを最適化する、連続的に繰り返されるプロセスであってもよい。
並列に、データ量子ビットごとに、当該システムは、エラー最小化に対する対応するメトリックを決定されたエラー率として定義する(ステップ802)。検出イベントのフラクションとも呼ばれる各量子ビットのエラー率を最小化することで、量子ゲートエラーを最小化してもよい。これらの図2Bおよび4で示したものような、複数の測定量子ビットを含むグルーピングを有するハードウェア・パターンのこのケースにおいて、エラー最小化に対する当該メトリックは、全ての測定量子ビットに対して取られる検出イベントの平均フラクションであってもよい。
並列に、データ量子ビットごとに、当該システムは対応する近傍の測定量子ビットを測定して現在のエラー率を決定する(ステップ804)。例えば、1次元システムにおいて、当該システムは少なくとも2つの対応する測定量子ビットを測定してもよい。例えば、2次元システムにおいて、当該システムは少なくとも4つの対応する測定量子ビットを測定してもよい。
当該システムは当該決定されたエラー率を格納する(ステップ806)。当該システムは、エラー率の変化を長時間にわたって監視し、量子ゲート・パラメータに加えられた変更と相関付けうるように、プロセス800の反復ごとの決定されたエラー率を格納する。
当該システムは、決定された現在のエラー率および以前の反復からの格納されたエラー率との間のエラー率の変化を計算する(ステップ808)。測定出力、または検出イベント、および測定量子ビットに対する状態の測定されたパターンの変化は、データ量子ビットまたは測定量子ビット上に関わらず、近傍のエラーの存在を示してもよい。しかし、検出イベント自体は測定量子ビットまたはデータ量子ビット上のエラーに直接相関しなくてもよい。したがって、エラーの変化をゲート・パラメータの変化と相関付けるために、局所化された検出イベントフラクションの変化、即ち、エラー率をゲート・パラメータの変化と比較してもよい。
並列に、データ量子ビットごとに、当該システムは、エラー率の計算された変化に基づいてCNOTゲート・パラメータを調節する(ステップ810)。当該システムは、ステップ808で計算されたエラー率の変化に基づいて、Nelder−Mead方法のような数値最適化アルゴリズムを適用して、当該CNOT量子ゲート・パラメータに行われる調整を決定してもよい。
当該システムは上述のステップ802乃至810を連続的に繰り返してもよい。原則として、ゲートエラーに関連付けられた物理プロセスに関するより多くの情報を取得するために、測定値Xおよび測定値Yの量子ビットを区別することが可能であってもよく、この情報を、量子ゲートをより効率的に最適化するために当該システムにフィードバックしてもよい。
本明細書で説明されたデジタルおよび/または量子の主題およびデジタル機能の動作および量子動作の実装を、デジタル電子回路、適切な量子回路または、より一般的に、量子計算システムで、有形に具現化されたデジタルおよび/または量子コンピュータソフトウェアまたはファームウェアで、当該本明細書で開示された構造を含むデジタルおよび/または量子コンピュータハードウェアで、およびそれらの構造的な均等物で、またはそれらの1つまたは複数の組合せで実装することができる。「量子計算システム」という用語が、量子コンピュータ、量子情報処理システム、量子暗号理論システム、または量子シミュレータを含んでもよいがこれらに限定されない。
本明細書で説明したデジタルおよび/または量子の主題の実装を、1つまたは複数のデジタルおよび/または量子コンピュータプログラム、即ち、データ処理装置により実行するためのまたはその動作を制御するための有形非一時的記憶媒体で符号化されたデジタルおよび/または量子コンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。当該デジタルおよび/または量子コンピュータ記憶媒体は、マシン可読記憶デバイス、マシン可読記憶基板、ランダムまたはシリアル・アクセス・メモリデバイス、1つまたは複数の量子ビット、またはそれらの1つまたは複数の組合せであることができる。あるいはまたはさらに、当該プログラム命令を、デジタルおよび/または量子情報を符号化しうる人工的に生成された伝播信号、例えば、デジタルおよび/または量子データ処理装置により実行するための適切な受信機装置に送信するための情報を符号化するために生成されたマシン生成された電気的、光学的、または電磁気信号で符号化されることができる。
量子情報および量子データという用語は量子システムにより運搬されそれに保持または格納された情報またはデータを指し、当該最小非自明システムは量子ビット、即ち、量子情報のユニットを定義するシステムである。「量子ビット」という用語は、当該対応するコンテキストにおいて2レベルシステムとして適切に近似されうる全ての量子システムを包含することは理解される。かかる量子システムが、例えば、2つ以上のレベルを有するマルチレベルシステムを含んでもよい。例として、かかるシステムは原子、電子、光子、イオンまたは超電導量子ビットを含むことができる。多数の実装において、当該計算基本状態は、基底状態および第1の励起された状態で識別されるが、当該計算状態がより高レベル励起された状態で識別される他の構成が可能であることは理解される。「データ処理装置」という用語はデジタルおよび/または量子データ処理ハードウェアを指し、例としてプログラム可能デジタルプロセッサ、プログラム可能量子プロセッサ、デジタルコンピュータ、量子コンピュータ、複数のデジタルおよび量子プロセッサまたはコンピュータ、およびそれらの組合せを含む、処理のためにデジタルおよび/または量子データを処理するための全ての種類の装置、デバイス、およびマシンを包含する。当該装置はさらに、特定の量子システムに関する情報をシミュレートまたは生成するように設計された、特殊目的論理回路、例えば、FPGA(フィールドプログラム可能ゲートアレイ)、ASIC(特殊用途向け集積回路)、または量子シミュレータ、即ち、量子データ処理装置であることができるかまたはそれを含むことができる。特に、量子シミュレータは、普遍的量子計算を実施するための能力を有さない特殊目的量子コンピュータである。当該装置は場合によっては、ハードウェアに加えて、デジタルおよび/または量子コンピュータプログラム、例えば、プロセッサファームウェア、プロトコル・スタック、データベース管理システム、オペレーティング・システム、またはそれらの1つまたは複数の組合せを構成するコードに対する実行環境を生成するコードを含むことができる。
デジタルコンピュータプログラムはまた、プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードと称するかまたはそれとして説明されてもよく、コンパイル型またはインタプリタ型言語、または宣言型または手続型言語を含む任意の形態のプログラミング言語で書かれることができ、スタンドアロンプログラムまたはモジュール、コンポーネント、サブルーチン、またはデジタルコンピューティング環境で使用するのに適した他のユニットを含む任意の形態で展開されることができる。量子コンピュータプログラムはまた、プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードと称するかまたはそれとして説明されてもよく、コンパイル型またはインタプリタ型言語、または宣言型または手続型言語を含む任意の形態のプログラミング言語で書かれることができ、適切な量子プログラミング言語に変換でき、または、量子プログラミング言語、例えば、QCLまたはQuipperで書くことができる。
デジタルおよび/または量子コンピュータプログラムはファイルシステム内のファイルに対応してもよいがその必要はない。プログラムを、他のプログラムまたはデータを保持するファイルの一部、例えば、マークアップ言語ドキュメントで、問題となっているプログラム専用の単一のファイルで、または複数の協調ファイルで格納された1つまたは複数のスクリプト、例えば、1つまたは複数のモジュールを格納するファイル、サブプログラム、またはコードの部分に格納することができる。デジタルおよび/または量子コンピュータプログラムを、1つのサイトに配置するかまたはデジタルおよび/または量子データ通信ネットワークによって相互接続された複数のサイトわたって分散される、1つのデジタルまたは1つの量子コンピュータ上でまたは複数のデジタルおよび/または量子コンピュータ上で実行するように展開することができる。量子データ通信ネットワークは、量子システム、例えば、量子ビットを用いて量子データを送信しうるネットワークであると理解される。一般的に、デジタルデータ通信ネットワークは量子データを送信できないが、量子データ通信ネットワークは量子データおよびデジタルデータの両方を送信しうる。
本明細書で説明したプロセスおよび論理フローを、1つまたは複数のデジタルおよび/または量子プロセッサで動作し、必要に応じて、1つまたは複数のデジタルおよび/または量子コンピュータプログラムを実行して入力デジタルおよび量子データで動作して出力を生成することで機能を実施する、1つまたは複数のプログラム可能デジタルおよび/または量子コンピュータにより実施することができる。当該プロセスおよび論理フローはまた、特殊目的論理回路、例えば、FPGAまたはASIC、または量子シミュレータにより、またはの組合せ特殊目的論理回路または量子シミュレータおよび1つまたは複数のプログラムされたデジタルおよび/または量子コンピュータにより実施でき、装置をそれらとして実装することもできる。
1つまたは複数のデジタルおよび/または量子コンピュータのシステムが特定の動作またはアクションを実施する「ように構成される」ことは、当該システムは、動作において当該システムに当該動作またはアクションを実施させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールしていることを意味する。1つまたは複数のデジタルおよび/または量子コンピュータプログラムを、特定の動作またはアクションを実施するように構成することは、当該1つまたは複数のプログラムが、デジタルおよび/または量子データ処理装置により実行されたとき、当該装置に当該動作またはアクションを実施させる命令を含むことを意味する。量子コンピュータは、当該量子コンピューティング装置により実行されたとき、当該装置に当該動作またはアクションを実施させる命令をデジタルコンピュータから受信してもよい。
デジタルおよび/または量子コンピュータプログラムの実行に適したデジタルおよび/または量子コンピュータは、汎用目的または特殊目的デジタルおよび/または量子プロセッサまたはその両方、または任意の他種の中央デジタルおよび/または量子処理ユニットに基づくことができる。一般的に、中央デジタルおよび/または量子処理ユニットは、量子データ、例えば、光子、またはそれらの組合せを送信するのに適した読取専用メモリ、ランダム・アクセスメモリ、または量子システムから命令およびデジタルおよび/または量子データを受信する。
デジタルおよび/または量子コンピュータの本質的な要素は、命令を実施または実行するための中央演算装置および命令およびデジタルおよび/または量子データを格納するための1つまたは複数のメモリデバイスである。当該中央演算装置および当該メモリは特殊目的論理回路により補完するかまたは当該回路または量子シミュレータに組み込むことができる。一般的に、デジタルおよび/または量子コンピュータはまた、量子システムデジタルおよび/または量子データを送受信するために、1つまたは複数の大容量記憶デバイス、例えば、量子情報を格納するのに適した磁気、光磁気ディスク、光ディスクを含むかまたはそれらに動作可能に接続されてもよい。しかし、デジタルおよび/または量子コンピュータはかかるデバイスを有する必要はない。
デジタルおよび/または量子コンピュータプログラム命令およびデジタルおよび/または量子データを格納するのに適したデジタルおよび/または量子コンピュータ可読媒体は、例として半導体メモリデバイス、例えば、EPROM、EEPROM、およびフラッシュ・メモリデバイス、磁気ディスク、例えば、内部ハード・ディスクまたは取外し可能ディスク、磁気−光ディスク、CD−ROMおよびDVD−ROMディスク、および量子システム、例えば、トラップされた原子または電子を含む、全ての形態の不揮発性デジタルおよび/または量子メモリ、媒体およびメモリデバイスを含む。量子メモリが、ハイ・フィデリティおよび効率で長期間量子データを格納できるデバイス、例えば、光が送信に使用され物質が重ね合わせまたは量子コヒーレンスのような量子データの量子特徴を記憶し保存する光物質(light−matter)インタフェースであることは理解される。
本明細書で説明された様々なシステムまたはそれらの部分の制御を、1つまたは複数の非一時的マシン可読記憶媒体に格納され、1つまたは複数のデジタルおよび/または量子処理デバイスで実行可能な命令を含む、デジタルおよび/または量子コンピュータプログラム製品で実装することができる。本明細書で説明されたシステム、またはそれらの部分をそれぞれ、本明細書で説明された動作を実装するための実行可能命令を格納する1つまたは複数のデジタルおよび/または量子処理デバイスおよびメモリを含みうる装置、方法、またはシステムとして実装することができる。
本明細書は多数の具体的な実装詳細を含むが、これらはクレームされうるもの範囲への制限として解釈されるべきではなく、特定の実装に固有でありうる特徴の説明として解釈されるべきである。別々の実装の文脈で本明細書で説明した特定の特徴をまた、単一の実装における組合せで実装することができる。反対に、単一の実装の文脈で説明された様々な特徴をまた、複数の実装で別々にまたは任意の適切な部分的組合せで実装することができる。さらに、特徴は特定の組合せで動作するように上述され最初にそのようにクレームされているかもしれないが、クレームされた組合せからの1つまたは複数の特徴を幾つかのケースでは当該組合せから実施してもよく当該クレームされた組合せは部分的組合せまたは部分的組合せの変形に関連してもよい。
同様に、動作を図面において特定の順序で説明したが、これは、所望の結果を実現するために、かかる動作を示した特定の順序でまたは逐次的順序で実施されること、または全ての示された動作が実施されることを要求するものと理解されるべきではない。特定の環境において、マルチタスキングおよび並列処理が有利であるかもしれない。さらに、上述の実装における様々なシステムモジュールおよびコンポーネントの分離は、全ての実装におけるかかる分離を必要とするとは理解されるべきではなく、説明されたプログラムコンポーネントおよびシステムを一般に単一のソフトウェア製品に統合するかまたは複数のソフトウェア製品にパッケージ化できることは理解されるべきである。
主題の特定の実装を説明した。他の実装は添付の特許請求の範囲内にある。例えば、特許請求の範囲で記載した動作を異なる順序で実施して、依然として所望の結果を実現することができる。1例として、添付図面に示したプロセスは、所望の結果を実現するために示した特定の順序、または逐次的順序を必ずしも要求しない。幾つかのケースでは、マルチタスキングおよび並列処理が有利であるかもしれない。