(58)【調査した分野】(Int.Cl.,DB名)
前記量子システムの前記決定された出力情報および前記計算された出力情報に基づいて、前記量子ハードウェアの忠実度を推定するステップが、前記量子システムの前記決定された出力情報を前記量子システムの前記計算された出力情報にフィッティングするステップを含む、請求項8に記載の方法。
前記量子ハードウェアの前記忠実度を推定するために、前記量子ハードウェアの前記決定された出力情報を前記量子ハードウェアの前記計算された出力情報にフィッティングするステップが、
前記量子ハードウェアの前記計算された出力情報および完全混合量子状態の凸結合を定義するステップと、
前記定義された凸結合を前記量子ハードウェアの前記決定された出力情報と比較することによって、前記量子ハードウェアの前記忠実度を推定するステップと
を含む、請求項9に記載の方法。
【発明の概要】
【課題を解決するための手段】
【0003】
本明細書は、量子コンピューティングシステムにおける量子ハードウェアの忠実度を推定することに関する。特に、本明細書は、複数のキュービットを有する、複雑な非クリフォード量子回路の忠実度を推定するための技術を説明する。
【0004】
一般に、本明細書において説明する主題の発明的一態様は、量子ゲートのセットにアクセスするアクションと、量子ゲートのセットから量子ゲートのサブセットをサンプリングするアクションであって、量子ゲートのサブセットが量子回路を定義する、アクションと、量子回路を量子システムに適用し、量子システムの出力情報を決定するために量子システム上で測定を行うアクションと、量子システムへの量子回路の適用に基づいて量子システムの出力情報を計算するアクションと、量子システムの決定された出力情報および計算された出力情報に基づいて量子回路の忠実度を推定するアクションとを含む方法において実装することができる。
【0005】
本態様の他の実装形態は、対応するコンピュータシステム、装置、および1つまたは複数のコンピュータ記憶デバイスに記録されたコンピュータプログラムを含み、各々が、本方法のアクションを行うように構成される。1つまたは複数のコンピュータのシステムは、動作時にシステムにアクションを行わせるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをシステムにインストールすることによって、特定の動作またはアクションを行うように構成することができる。1つまたは複数のコンピュータプログラムは、データ処理装置によって実行されるとき、装置にアクションを行わせる命令を含むことによって、特定の動作またはアクションを行うように構成することができる。
【0006】
上記および他の実装形態は、各々任意選択で、以下の特徴のうち1つまたは複数を単独でまたは組み合わせて含むことができる。いくつかの実装形態では、量子システムの忠実度を推定することは、量子システムの決定された出力情報を量子システムの計算された出力情報にフィッティングすることを含む。
【0007】
場合によっては、量子回路の忠実度を推定するために、量子システムの決定された出力情報を量子システムの計算された出力情報にフィッティングすることは、量子システムの計算された出力情報および完全混合(totally mixed)量子状態の凸結合を定義することと、定義された凸結合を量子システムの決定された出力情報と比較することによって、量子回路の忠実度を推定することとを含む。
【0008】
いくつかの実装形態では、凸結合は、以下によって与えられる。
【0009】
【数1】
ここで、αは量子回路の忠実度を表し、|ψ〉は量子システムへの量子回路の適用に基づく量子システムの計算された量子状態を表し、I/Nは完全混合状態を表す。
【0010】
場合によっては、本方法は、イベントの完了まで量子ゲートのセットから量子ゲートのサブセットを繰り返しサンプリングするステップであって、量子ゲートの各サブセットがそれぞれの量子回路を定義する、ステップと、量子ゲートのサンプリングされたサブセットごとに、それぞれの量子回路を量子システムに適用し、量子システムの出力情報を決定するために量子システムについてそれぞれの測定を行うステップと、量子システムへのそれぞれの量子回路の適用に基づいて量子システムの出力情報を計算するステップと、量子システムの決定された出力情報および計算された出力情報に基づいてそれぞれの量子回路の忠実度を推定するステップとをさらに含む。
【0011】
いくつかの実装形態では、推定される忠実度の不確実さが所定のしきい値を下回るとき、イベントの完了が発生する。
【0012】
場合によっては、量子ゲートのセットは、量子ゲートのユニバーサルセットを含む。
【0013】
場合によっては、量子ゲートのセットは、単一キュービット量子ゲート、および2キュービット量子ゲートを含む。
【0014】
いくつかの実装形態では、量子ゲートのセット中の各ゲートが、それぞれの量子ゲート忠実度に関連する。
【0015】
他の実装形態では、量子ゲートのサンプリングされたサブセットは、比較可能なそれぞれの量子ゲート忠実度の同数の量子ゲートを含む。
【0016】
場合によっては、量子ゲートのセットから量子ゲートのサブセットをサンプリングすることは、量子ゲートのセットから量子ゲートのサブセットをランダムにサンプリングすることを含む。
【0017】
本明細書において説明する主題は、以下の利点のうちの1つまたは複数を実現するために、特定の方法で実装することができる。
【0018】
量子ハードウェア、たとえば量子ゲートのシステムは、本質的に誤りを起こしやすく、誤りは、訂正可能となる前に特徴づけられる必要がある。量子プロセストモグラフィなどのプロセスによる完全な特徴づけは、たとえば計算コストおよび効率の観点から実用的でない。たとえば、量子プロセストモグラフィは、必要とされる測定の数が指数関数的に増えるので、量子システム中のキュービットの数が増えるにつれて極めて高くなる。加えて、実際的には平均忠実度などのより全般的な量を推定することで十分である場合があるので、完全な特徴づけは不要であることが多い。
【0019】
誤りを特徴づけるための代替方法は、量子ハードウェアにおいて量子ゲートの限定的なセットを使用することを含む。たとえば、クリフォードゲートを用いたランダム化ベンチマーキングは、単一キュービットゲートおよび2キュービットゲートの忠実度を測定するための大幅に拡張された方法である。しかしながら、そのような技法は、ユニバーサル量子ゲートセットを採用する量子回路の忠実度を直接測定するために適用することができない。これらの限定的な回路群によって生成された量子状態が、ユニバーサル量子ゲートを用いる回路によって生成される量子状態とは、重要な面において非常に異なる場合があるので、そのような方法を使用して得られた結果は、したがってただちに注目されるものではない、または例示的、非実用的とみなされる場合がある。たとえば、クリフォード回路は、古典コンピュータを使用して常に効率的にシミュレートされ、Porter-Thomas分布を示さない場合がある。
【0020】
量子ハードウェアの複雑性および多様性が増大すると、古典コンピュータによって容易に、かつ効率的にシミュレートできるタイプではない量子回路には、回路忠実度を測定することが必須である。
【0021】
本明細書で説明するような量子コンピューティングシステムのための忠実度推定を実装するシステムは、ますます複雑になる量子ハードウェアの忠実度を推定することができる。
【0022】
本明細書で説明するような量子コンピューティングシステムのための忠実度推定を実装するシステムは、量子計算のデジタルモデルと量子計算のアナログモデルの両方に適用可能である。量子計算のデジタルモデルの場合、システムは、量子ゲートの限定的なセットの使用を必要としない。たとえば、システムは、量子ゲートのユニバーサルセットから選ばれたゲートから構成される複雑なランダム量子回路を利用してもよく、したがってますます多くのキュービットおよび量子ゲートとともにますます複雑になる量子回路の量子回路忠実度の直接測定が可能となる。同様に、量子計算のアナログモデルの場合、システムは、連続ハミルトニアン進化(continuous Hamiltonian evolution)を実装する量子ハードウェアの忠実度を直接決定することを可能にする。
【0023】
量子回路の忠実度を推定するための他のシステムおよび方法とは異なり、本明細書で説明するような量子コンピューティングシステムのための忠実度推定を実装するシステムは、量子回路の忠実度が、キュービット数のべき乗のいくつかの測定が行われる必要なしに、推定されることを可能にする。
【0024】
本明細書の主題の1つまたは複数の実装形態の詳細は、添付の図面および以下の説明に記載される。説明、図面、および特許請求の範囲から、主題の他の特徴、態様、および利点が明らかとなるであろう。
【発明を実施するための形態】
【0026】
様々な図面における同様の参照符号および名称は、同様の要素を示す。
【0027】
本明細書は、量子ハードウェア、たとえば量子回路に対する、忠実度ベンチマーキングのための方法およびシステムを説明する。利用可能な量子ゲートの所与のユニバーサルファミリー(universal family)からの量子回路のランダムインスタンスが選択され、選ばれた測定に対する選択された量子回路の統計値は、古典的シミュレーションを使用して数値的に計算される。同じ量子回路のラン(run)のシーケンスが行われ、量子ハードウェアの測定が行われる。量子回路の忠実度は、数値的に取得された予想統計値および実験的に決定された統計値を使用して推定される。
【0028】
例示的な動作環境
図1Aは、忠実度推定のための例示的なシステム100を示す。例示的なシステム100は、以下で説明するシステム、コンポーネント、技法を実装することができる1つまたは複数の場所において、1つまたは複数の古典コンピュータまたは量子コンピューティングデバイス上に古典的または量子力学的コンピュータプログラムとして実装されるシステムの一例である。
【0029】
システムは、忠実度推定システム104と通信している量子ハードウェア102を含む。量子ハードウェア102は、1つまたは複数のキュービット106、たとえばキュービット108を含む場合がある量子システムを含む。1つまたは複数のキュービットは、アルゴリズム動作または量子計算を行うように使用されてもよい。1つまたは複数のキュービットの特定の実現は、量子コンピューティングデバイスが行っているアルゴリズム動作または量子計算のタイプによって決まる。たとえば、キュービットは、原子、分子、またはソリッドステートの量子システムにより実現されるキュービットを含んでもよい。他の例では、キュービットは、限定はしないが超伝導キュービットまたは半導体キュービットを含んでもよい。明快のために、
図1Aでは4つのキュービットが示されるが、システムは、より小さいまたはより大きい数のキュービットを含んでもよい。
【0030】
1つまたは複数のキュービット106の各々が、たとえばそれぞれの制御可能な結合を通して、1つまたは複数の他のキュービットと相互作用してもよい。いくつかの例では、1つまたは複数のキュービット106は、最隣接相互作用を受けてもよい。
【0031】
1つまたは複数のキュービット106は様々な方法で配列されてもよい。1つまたは複数のキュービットの特定の配列は、キュービットが実行するように使用されているアルゴリズム動作または量子計算によって決まってもよい。いくつかの例では、キュービットは、1次元アレイで、たとえば鎖状に配列されてもよい。他の例では、キュービットは、2次元アレイで、たとえば格子状に配列されてもよい。明快のために、4つのキュービットは、
図1では1次元アレイで示されるが、システムは他の形でキュービットを配列してもよい。
【0032】
量子ハードウェア102は、量子ゲート110のセットを含む。量子ゲート110のセットは、単一キュービットゲート、たとえば量子ゲート112、および2キュービットゲート、たとえば量子ゲート114を含む。単一キュービット量子ゲートは、単一のキュービット上で動作する量子ゲートである。例示的な単一キュービットゲートは、限定はしないがアダマールゲート、パウリX、Y、もしくはZゲート、または位相シフトゲートを含む。2キュービット量子ゲートは、2つのキュービット上で動作する量子ゲートである。例示的な2キュービットゲートは、限定はしないがスワップゲート、制御ゲート、トフォリゲート、またはフレドキンゲートを含む。
【0033】
量子ゲート110のセットは、量子ゲートのユニバーサルセットを含んでもよい。量子ゲートのユニバーサルセットは、量子コンピューティングデバイス上で可能な任意の計算動作を減らすことができるゲートのセットである。たとえば、単一および2キュービット量子ゲートのユニバーサルセットの一例は、アダマールゲート、π/8ゲート、および制御NOTゲートを含む。
【0034】
量子ゲート110のセットは、1つまたは複数の量子回路、たとえば量子回路116を定義するためにサンプリングされてもよい。明快のために、量子回路116は、固定数の代表的量子ゲート、たとえば量子ゲート112および114を含むが、量子ゲートのサンプリングされたセットによって定義される量子回路は、様々な配列でより多いまたはより少ない量子ゲートを含んでもよい。
【0035】
サンプリングされた量子回路116は、初期状態122、たとえば基底状態で用意された量子システム、たとえば1つまたは複数のキュービットを入力として受け取る。量子回路は、量子システム上で動作し、最終状態120の量子システムを出力する。ここにおいて、最終状態は、量子回路によって量子システム上で行われる動作によって決定される。
【0036】
量子ゲート110のセット内の各量子ゲートおよび量子ゲート110のセットのサブセットで定義される各量子回路が、それぞれのゲート忠実度または量子回路忠実度に関連する。量子ゲート忠実度および量子回路忠実度は、どのくらい確実にゲートまたは回路が入力を予想される出力に変換するかの尺度を示す。たとえば、パウリX量子ゲートは、単一キュービット上で作用し、0状態を1状態に、および1状態を0状態にマッピングする。パウリXゲートの忠実度は、どのくらい正確かつ確実にマッピングが実現されるかを示す、たとえばゲートが0状態を1状態に、その逆も同様に確実にマッピングするかどうかを示す0と1との間の数を含んでもよい。
【0037】
量子ハードウェア102は、1つまたは複数の測定デバイス118、たとえば測定デバイス124を含む。測定デバイス118は、量子システムバイスの特性を決定するために、量子システム上で動作してもよく、たとえば測定デバイス124が、最終状態120において量子システム上で動作する。
【0038】
忠実度推定システム104は、古典的または量子力学的処理デバイスを含んでもよく、量子ハードウェア102と通信する。忠実度推定システム104は、量子ゲート110のセットにアクセスし、それぞれの量子回路、たとえば量子回路116を定義するために、量子ゲート110のセットから量子ゲートのサブセットをサンプリングするように構成されてもよい。忠実度推定システム104は、定義された量子回路が量子システム、たとえば1つまたは複数のキュービット106に繰り返し適用されるようにし、1つまたは複数の測定デバイス118を使用して量子システムの出力情報、たとえば統計値を決定するために、量子システム上でそれぞれの測定を行ってもよい。
【0039】
忠実度推定システム104は、量子システムへの量子回路の適用に基づいて、たとえば量子システム上で定義された量子回路を適用した後に、量子システムの出力情報、たとえば予想統計値を計算することと、量子回路の忠実度を推定するために、量子システムの決定された出力情報を量子システムの計算された出力情報にフィッティングすることとを行うように構成されてもよい。量子回路の忠実度を推定することについては、
図2および
図3に関して以下でより詳細に説明する。
【0040】
図1Bは、忠実度推定のための例示的なシステム150を示す。例示的なシステム150は、以下で説明するシステム、コンポーネント、技法を実装することができる1つまたは複数の場所において、1つまたは複数の古典コンピュータまたは量子コンピューティングデバイス上に古典的または量子力学的コンピュータプログラムとして実装されるシステムの一例である。
【0041】
システムは、忠実度推定システム154と通信している量子ハードウェア152を含む。量子ハードウェア152は、1つまたは複数のキュービット156、たとえばキュービット158を含む場合がある量子システムを含む。
図1Aに関して上記で説明したように、1つまたは複数のキュービットは、アルゴリズム動作または量子計算を行うように使用されてもよい。1つまたは複数のキュービットの特定の実現は、量子コンピューティングデバイスが行っているアルゴリズム動作または量子計算のタイプによって決まる。たとえば、キュービットは、原子、分子、またはソリッドステートの量子システムにより実現されるキュービットを含んでもよい。他の例では、キュービットは、限定はしないが超伝導キュービットまたは半導体キュービットを含んでもよい。明快のために、
図1Bでは4つのキュービットが示されるが、システムは、より小さいまたはより大きい数のキュービットを含んでもよい。
【0042】
1つまたは複数のキュービット156の各々は、たとえばそれぞれの制御可能な結合を通して1つまたは複数の他のキュービットと相互作用してもよい。いくつかの例では、1つまたは複数のキュービット156は、最隣接相互作用を受けてもよい。
【0043】
1つまたは複数のキュービット156は様々な方法で配列されてもよい。1つまたは複数のキュービットの特定の配列は、キュービットが実行するように使用されているアルゴリズム動作または量子計算によって決まってもよい。いくつかの例では、キュービットは、1次元アレイで、たとえば鎖状に配列されてもよい。他の例では、キュービットは、2次元アレイで、たとえば格子状に配列されてもよい。明快のために、4つのキュービットは、
図1では1次元アレイで示されるが、システムは他の形でキュービットを配列してもよい。
【0044】
量子ハードウェア152は、連続ハミルトニアン進化を行うための1つまたは複数のコンポーネント160を含む。連続ハミルトニアン進化を行うための1つまたは複数のコンポーネント160は、1つまたは複数のハミルトニアンを実装し、ひいては1つまたは複数のハミルトニアンは、それが適用される量子システムの進化を定義するユニタリー演算子を決定してもよい。たとえば、コンポーネント160は、ハミルトニアンHを実装してもよく、ハミルトニアンHはひいてはユニタリー演算子162を生じさせる。ユニタリー演算子162は、初期状態164で用意され、量子システムの最終状態166となる、量子システムの進化を定義する。
【0045】
量子システムの各連続ハミルトニアン進化は、それぞれの量子ハードウェア忠実度に関連する。量子ハードウェア忠実度は、
図1Aに関して上記で説明したように、どのくらい確実にハードウェアが入力を予想される出力に変換するかの尺度を示す。
【0046】
量子ハードウェア152は、1つまたは複数の測定デバイス168、たとえば測定デバイス172を含む。測定デバイス168は、量子システムの特性を決定するために、量子システム上で動作してもよく、たとえば測定デバイス172が、最終状態166において量子システム上で動作する。
【0047】
忠実度推定システム154は、古典的または量子力学的処理デバイスを含んでもよく、量子ハードウェア152と通信する。忠実度推定システム154は、量子ハードウェア512にアクセスし、特定の連続ハミルトニアン進化のためのコンポーネント160を選択するように構成されてもよい。忠実度推定システム154は、量子ハードウェアが、量子システム上の選択されたコンポーネント、たとえば1つまたは複数のキュービット156に対応する連続ハミルトニアン進化を繰り返し実行し、量子システムの出力情報を決定するために量子システム上でそれぞれの測定を行うようにしてもよい。
【0048】
忠実度推定システム154は、量子システム上で選択された連続ハミルトニアン進化を行うことに基づいて、量子システムの出力情報を計算することと、量子ハードウェアの忠実度を推定するために量子システムの決定された出力情報を量子システムの計算された出力情報にフィッティングすることとを行うように構成されてもよい。量子ハードウェアの忠実度を推定することについては、
図4および
図5に関して以下でより詳細に説明する。
【0049】
ハードウェアをプログラミングする
図2は、量子回路の忠実度をベンチマーキングするための例示的なプロセス200のフローチャートである。便宜上、プロセス200は、1つまたは複数の場所にある1つまたは複数の古典的または量子力学的コンピューティングデバイスのシステムによって行われるものと説明する。たとえば、量子コンピューティングシステム、たとえば本明細書に従って適切にプログラムされた、
図1Aの量子コンピューティングシステム100は、プロセス200を行うことができる。
【0050】
システムは、量子ゲートのセットにアクセスする(ステップ202)。量子ゲートのセットは、1つまたは複数の単一キュービットゲートを含んでもよい。量子ゲートのセット中の各量子ゲートが、それぞれの量子ゲート忠実度に関連してもよい。量子ゲートのセットは、1つまたは複数の2キュービットゲートを含んでもよい。例示的な単一および2キュービットゲートについては、
図1Aに関して上記で説明される。いくつかの実装形態では、量子ゲートのセットは、量子ゲートのユニバーサルセットを含む。量子ゲートのユニバーサルセットについては、
図1Aに関して上記で説明される。
【0051】
システムは、量子ゲートのセットから量子ゲートのサブセットをサンプリングする(ステップ204)。いくつかの実装形態では、システムは、量子ゲートのセットから量子ゲートのサブセットをランダムにサンプリングしてもよい。サンプリングされた量子ゲートのサブセットは、量子回路を定義する。たとえば、量子ゲートの利用可能なセットから量子ゲートのサブセットをランダムにサンプリングすることによって、システムは、量子回路のランダムインスタンスを生成する。
【0052】
いくつかの実装形態では、システムは、量子ゲートのセットか量子ゲートのサブセットを繰り返しサンプリングしてもよく、サンプリングされた各サブセットが、それぞれの量子回路を定義する。システムは、比較可能なそれぞれの量子ゲート忠実度の同数の量子ゲートを含む量子ゲートのサブセットをサンプリングしてもよく、たとえば量子ゲートのサンプリングされたサブセットによって定義される量子回路のインスタンスは、比較可能な量子ゲート忠実度の同数の量子ゲートを含んでもよい。比較可能なそれぞれの量子ゲート忠実度の同数の量子ゲートを含む量子ゲートのサブセットをサンプリングすることによって、システムは、プロセス200によって得られる結果の一貫性を向上させ、大きな系統誤差を避けることができる。
【0053】
システムは、量子回路を量子システムに適用し、出力情報、たとえば量子システムの統計値を決定するために、量子システム上で測定を行う(ステップ206)。たとえば、システムは、量子システム、たとえば
図1Aに示すように1つまたは複数のキュービットを含む量子システムを含み、または場合によってはこれにアクセスし、サンプリングされた量子ゲートのサブセットによって定義された量子回路を量子システムの初期化された状態に繰り返し適用してもよい。量子回路の適用ごとに、システムは、量子システム上でそれぞれの測定を行い、量子システムの出力情報を決定するために測定結果を使用してもよい。一例として、システムは、それぞれの量子回路を定義する量子ゲートのサブセットをサンプリングし、対象の量子システム上で量子回路のm個のランを実行し、計算ベースで測定されたビットストリングのシーケンス{x
1,x
2,…,x
m}を取得してもよい。
【0054】
上記で説明したように、いくつかの実装形態では、システムは、量子ゲートのセットから量子ゲートのサブセットを繰り返しサンプリングしてもよく、サンプリングされた各サブセットが、それぞれの量子回路を定義する。そのような場合、システムは、サンプリングされた各量子回路を量子システムに繰り返し適用してもよく、サンプリングされた回路の各々に対して量子システムのそれぞれの統計値を決定するために、量子システム上でそれぞれの測定を行う。
【0055】
システムは、量子回路を量子システムに適用することに基づいて、量子システムの出力情報、たとえば予想される、たとえば正確なまたは理想的な統計値を計算する(ステップ208)。たとえば、システムは、量子回路を量子システムに適用した後に量子システムの出力情報を計算するために、利用可能な計算技術、たとえば古典的コンピューティング技術を使用してもよい。
【0056】
上記の例を続けると、量子システムの出力情報を決定するために、システムは、考えられる各ビットストリングy
jを取得する確率に対応する確率のセット{p(y
j)}を計算してもよい。ステップ204に関して上記で説明したように、いくつかの実装形態では、システムは、量子ゲートのセットから量子ゲートのサブセットを繰り返しサンプリングしてもよく、サンプリングされた各サブセットが、それぞれの量子回路を定義する。そのような場合、システムは、サンプリングされた各量子回路に対して、考えられる各ビットストリングを取得する確率に対応する確率のセットを計算してもよい。
【0057】
システムは、量子システムの決定された出力情報および計算された出力情報に基づいて、量子回路の忠実度を推定する(ステップ210)。システムは、量子システムの決定された出力情報を、量子システムの計算された出力情報にフィッティングすることによって、量子回路の忠実度を推定してもよい。システムは、ステップ206で測定を行った結果を(i)ステップ208で計算されたような量子システムへの量子回路の適用に基づく量子システムの出力情報と、(ii)完全混合量子状態との統計的混合にフィッティングしてもよい。量子回路の忠実度を推定するために、量子システムの決定された出力情報を量子システムの計算された出力情報にフィッティングすることについては、
図3に関して以下でより詳細に説明する。
【0058】
複数の量子回路を定義するために、システムが量子ゲートのサブセットを繰り返しサンプリングする場合は、システムは、各量子回路のそれぞれの忠実度を推定するために、量子システムに対するそれぞれの決定された出力情報を量子システムのそれぞれの計算された出力情報にフィッティングする。システムは、イベントの完了まで、たとえば推定される忠実度の不確実性が所定のしきい値を下回るときまで、量子ゲートのセットから量子ゲートのサブセットを繰り返しサンプリングしてもよい。繰り返し数を増やすことによって、推定される忠実度の不確実性は、たとえば繰り返し数の逆2乗根の法則に従って、確実性の所望のしきい値まで減らされてもよい。
【0059】
図3は、量子回路の忠実度を推定するために、量子システムの決定された出力情報、たとえば統計値を、量子システムの計算された出力情報、たとえば統計値にフィッティングするための例示的なプロセス300のフローチャートである。便宜上、プロセス300は、1つまたは複数の場所にある1つまたは複数の古典的または量子力学的コンピューティングデバイスのシステムによって行われるものと説明する。たとえば、本明細書に従って適切にプログラムされた1つまたは複数の古典的プロセッサ、たとえば
図1Aの古典的プロセッサ104がプロセス300を行うことができる。
【0060】
システムは、
図2のステップ208に関して上記で説明した量子システムの計算された出力情報、および完全混合量子状態の凸結合を定義する(ステップ302)。たとえば、凸結合は、以下の式(1)によって与えられてもよい。
【数2】
式(1)において、αは量子回路の忠実度を表し、|ψ〉は量子システムへの量子回路の適用に基づく量子システムの計算された量子状態を表し、I/Nは|ψ〉を含むヒルベルト空間の次元Nを有する完全混合状態を表す。
【0061】
システムは、式(1)中の定義された凸結合を
図2のステップ206に関して上記で説明した量子システムの決定された出力情報と比較することによって、量子回路の忠実度を推定する(ステップ304)。たとえば、システムは、定義された凸結合を量子システムの決定された出力情報と比較し、パラメータαの値を求めることによって量子回路の忠実度を推定してもよい。
【0062】
図2において上記で示した例を続けると、システムは、対応する実験的に取得されたビットストリングのシーケンス{x
1,x
2,…,x
m}に対して量子ゲートのサンプリングされたサブセットごとに、量
【数3】
を数値的に計算してもよい。一定の仮定の下で、たとえば量子回路は十分に長い(回路の深さは、log(n)において可能な補正までn
1/Dよりも速く増えることはなく、ここでnはキュービットの数であり、Dはキュービットアレイの寸法であり、たとえば
図1Aに示すように、1Dアレイのキュービットの場合、D=1、深さ=nであり、またはキュービットの任意のペア間で2キュービットゲートが実行される仮定の構成に対して一定の深さ、もしくはnの対数の深さでは、Dは無限である場合がある)と仮定すると、パラメータα、たとえば量子回路忠実度は、α=c+ln(N)+γによって推定されてもよく、ここでγはオイラー定数であり、cは上記で定義される。いくつかの実装形態では、αの推定における誤差は、k/m
1/2によって与えられてもよく、ここでk≒1である。これは必要とされる測定の数を表してもよく、キュービットの数とは無関係である。
【0063】
いくつかの実装形態では、システムは、任意の数の統計集合(statistical aggregate)との数値的比較を通して、量子回路の忠実度を推定してもよい。たとえば、上記の場合のような量
【数4】
を使用する代わりに、システムは、量
【数5】
、たとえば確率の2乗和を使用してもよい。他の量もまた使用されてもよい。本量は量子回路のシミュレーションを使用して計算されてもよい統計集合であることが必須条件であり、しかも本量は量子回路の物理的実装における誤差に等しく反応しなければならない。
【0064】
上記で説明したように、いくつかの実装形態では、システムは、量子ゲートのサブセットを繰り返しサンプリングし、量子ゲートのサブセットによって定義される量子回路について対応する忠実度を繰り返し推定してもよい。量子回路について忠実度を繰り返し推定することによって、システムは、忠実度推定の信頼性を増大させ、系統誤差または相関関係が得られる結果に影響を及ぼす可能性を低減することができる。単純な一例として、忠実度を繰り返し推定することによって、システムは、量子ハードウェアが意図した通りに機能していると判定することができる。
【0065】
図4は、量子ハードウェアの忠実度をベンチマーキングするための例示的なプロセス400のフローチャートである。便宜上、プロセス400は、1つまたは複数の場所にある1つまたは複数の古典的または量子力学的コンピューティングデバイスのシステムによって行われるものと説明する。たとえば、量子コンピューティングシステム、たとえば本明細書に従って適切にプログラムされた
図1Bの量子コンピューティングシステム150が、プロセス400を行うことができる。
【0066】
システムは、量子ハードウェアにアクセスする(ステップ402)。量子ハードウェアは、
図1Bに関して上記で説明したように、1つまたは複数の異なる連続ハミルトニアン進化を行うように構成されてもよい。各連続ハミルトニアン進化は、それぞれの量子ハードウェア忠実度に関連してもよい。
【0067】
システムは、特定の連続ハミルトニアン進化を選択する(ステップ404)。たとえば、システムは、それが適用される量子システムの進化を定義するユニタリー演算子を決定する特定のハミルトニアンを実装するように構成される1つまたは複数のコンポーネントを選択してもよい。場合によっては、システムは、特定の連続ハミルトニアン進化をランダムに選択してもよい。
【0068】
いくつかの実装形態では、システムは、連続ハミルトニアン進化を繰り返し選択してもよい。たとえば、場合によっては、量子ハードウェアは、各キュービット相互作用が関連するそれぞれの忠実度を有する、1つまたは複数の相互作用キュービットに1つまたは複数の異なる連続ハミルトニアン進化を行うように構成されてもよい。これらの場合、システムは、比較可能な忠実度の相互作用を含む連続ハミルトニアン進化を繰り返し選択してもよい。比較可能な忠実度のキュービット相互作用を含む連続ハミルトニアン進化を選択することによって、システムは、プロセス400によって得られる結果の一貫性を向上させ、大きな系統誤差を避けることができる。
【0069】
システムは、量子システムの選択された連続ハミルトニアン進化を行い、量子システムの出力情報値を決定するために、量子システム上で測定を行う(ステップ406)。たとえば、システムは、量子システム、たとえば
図1Bに示すように1つまたは複数のキュービットを含む量子システムを含み、または場合によってこれにアクセスし、
図1Bに関して上記で説明したように、量子システムの進化を定義するユニタリー演算子を生じさせるハミルトニアンを実装する1つまたは複数の対応するコンポーネントを選択することによって、選択された連続ハミルトニアン進化を繰り返し行ってもよい。量子システムの進化ごとに、システムは、量子システム上でそれぞれの測定を行い、量子システムの出力情報を決定するために測定結果を使用してもよい。
【0070】
上記で説明したように、いくつかの実装形態では、システムは、連続ハミルトニアン進化を繰り返し選択してもよい。そのような場合、システムは、量子システムの選択された各連続ハミルトニアン進化を繰り返し行い、選択された連続ハミルトニアン進化に対して量子システムのそれぞれの出力情報を決定するために量子システム上でそれぞれの測定を行ってもよい。
【0071】
システムは、選択された連続ハミルトニアン進化を行うことに基づいて、量子システム上で量子システムの出力情報を計算する(ステップ408)。たとえば、システムは、量子システムの選択された連続進化の後に量子システムの出力情報を計算するために、利用可能な計算技術、たとえば古典的コンピューティング技術を使用してもよい。
【0072】
システムは、量子システムの決定された出力情報および計算された出力情報に基づいて、量子ハードウェアの忠実度を推定する(ステップ410)。システムは、量子システムの決定された出力情報を量子システムの計算された出力情報にフィッティングすることによって量子ハードウェアの忠実度を推定してもよい。システムは、ステップ406で測定を行った結果を、(i)ステップ408で計算されたように量子システム上で選択された連続ハミルトニアン進化を行うことに基づく量子システムの出力情報と、(ii)完全混合量子状態との統計的混合にフィッティングしてもよい。量子ハードウェアの忠実度を推定するために、量子システムの決定された出力情報を量子システムの計算された出力情報にフィッティングすることについては、
図5に関して以下でより詳細に説明する。
【0073】
システムが連続ハミルトニアン進化を繰り返し選択する場合には、システムは、それぞれの選択された連続ハミルトニアン進化に対応する各量子ハードウェアのそれぞれの忠実度を推定するために、量子システムに対するそれぞれの決定された出力情報を量子システムのそれぞれの計算された出力情報にフィッティングする。システムは、イベントの完了まで、たとえば推定される忠実度の不確実性が所定のしきい値を下回るときまで連続ハミルトニアン進化を繰り返し選択してもよい。繰り返し数を増やすことによって、推定される忠実度の不確実性は、たとえば繰り返し数の逆2乗根の法則に従って、確実性の所望のしきい値まで減らされてもよい。
【0074】
図5は、量子ハードウェアの忠実度を推定するために、量子システムの決定された出力情報を量子システムの計算された出力情報にフィッティングするための例示的なプロセス500のフローチャートである。便宜上、プロセス500は、1つまたは複数の場所にある1つまたは複数の古典的または量子力学的コンピューティングデバイスのシステムによって行われるものとして説明する。たとえば、本明細書に従って適切にプログラムされた1つまたは複数の古典的プロセッサ、たとえば
図1の古典的プロセッサ104が、プロセス500を行うことができる。
【0075】
システムは、
図4のステップ408に関して上記で説明した量子システムの計算された出力情報、および完全混合量子状態の凸結合を定義する(ステップ502)。たとえば、凸結合は、以下の式(1)によって与えられてもよい。
【数6】
式(1)において、αは量子回路の忠実度を表し、|ψ〉は量子システム上で連続ハミルトニアン進化を行うことに基づく量子システムの計算された量子状態を表し、I/Nは|ψ〉を含むヒルベルト空間の次元Nを有する完全混合状態を表す。
【0076】
システムは、式(1)中の定義された凸結合を
図4のステップ406に関して上記で説明した量子ハードウェアの決定された出力情報と比較することによって量子ハードウェアの忠実度を推定する(ステップ504)。たとえば、システムは、定義された凸結合を量子システムの決定された出力情報と比較し、パラメータαの値を求めることによって量子ハードウェアの忠実度を推定してもよい。
【0077】
上記で説明したように、いくつかの実装形態では、システムは、連続ハミルトニアン進化を繰り返し選択し、連続ハミルトニアン進化に対応する量子ハードウェアについて対応する忠実度を繰り返し推定してもよい。量子ハードウェアについて忠実度を繰り返し推定することによって、システムは、忠実度推定の信頼性を増大させ、系統的誤差または相関関係が得られる結果に影響を及ぼす可能性を低減することができる。単純な一例として、忠実度を繰り返し推定することによって、システムは、量子ハードウェアが意図した通りに機能していると判定することができる。
【0078】
本明細書で説明する、デジタルおよび/または量子対象物ならびにデジタル関数演算および量子演算の実装形態は、デジタル電子回路、好適な量子回路、もしくはより一般的には、量子計算システムにおいて、有形に具現化されたデジタルおよび/もしくは量子コンピュータソフトウェアもしくはファームウェアにおいて、本明細書で開示する構造およびそれらの構造的等価物を含むデジタルおよび/もしくは量子コンピュータハードウェアにおいて、またはそれらのうちの1つもしくは複数の組合せにおいて、実装されることがある。「量子計算システム」という用語は、限定はしないが量子コンピュータ、量子情報処理システム、量子暗号システム、または量子シミュレータを含む場合がある。
【0079】
本明細書で説明するデジタルおよび/または量子対象物の実装形態は、1つまたは複数のデジタルおよび/または量子コンピュータプログラムとして実装されることがあり、たとえばデータ処理装置によって実行されるように、またはデータ処理装置の動作を制御するために、有形の非一時的記憶媒体上に符号化されたデジタルおよび/または量子コンピュータプログラム命令の1つまたは複数のモジュールとして実装されることがある。デジタルおよび/または量子コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、1つもしくは複数のキュービット、またはそれらのうちの1つもしくは複数の組合せであることがある。代替的にまたは追加として、プログラム命令は、デジタルおよび/または量子情報を符号化することができる、人為的に生成された伝搬信号、たとえばデータ処理装置による実行のために好適な受信機装置に送信するためのデジタルおよび/または量子情報を符号化するために生成される機械生成の電気、光、または電磁信号上で符号化されることがある。
【0080】
量子情報および量子データという用語は、量子システムによって搬送され、量子システムに保持または記憶される情報またはデータを指し、ここで、最小非自明システムはキュービット、たとえば量子情報の単位を定義するシステムである。「キュービット」という用語は、対応する文脈において2レベルシステムとして適切に近似される場合があるすべての量子システムを包含することを理解される。そのような量子システムは、たとえば2以上のベルを有するマルチレベルシステムを含む場合がある。例として、そのようなシステムは、原子キュービット、電子キュービット、光子キュービット、イオンキュービット、または超伝導キュービットを含むことができる。多くの実装形態では、計算基底状態(computational basis state)は、基底の(ground)、第1の励起状態で識別されるが、計算状態が上位レベルの励起状態で識別される他のセットアップが考えられると理解される。「データ処理装置」という用語は、デジタルおよび/または量子データ処理ハードウェアを指し、例として、プログラマブルデジタルプロセッサ、プログラマブル量子プロセッサ、デジタルコンピュータ、量子コンピュータ、複数のデジタルおよび量子プロセッサまたはコンピュータ、ならびにそれらの組合せを含むデジタルおよび/または量子データを処理するためのすべての種類の装置、デバイス、機械を包含する。装置は、専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)、ASIC(特定用途向け集積回路)、または量子シミュレータ、たとえば特定の量子システムに関する情報をシミュレートまたは生成するように設計された量子データ処理装置であることもあり、またはこれらをさらに含むことがある。特に、量子シミュレータは、万能量子計算を行う能力のない専用量子コンピュータである。装置は、場合によってはハードウェアに加えて、デジタルおよび/または量子コンピュータプログラムのための実行環境を作成するコード、たとえばプロセッサファームウェアを構成するコード、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを含むことができる。
【0081】
プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれる、または説明される場合もあるデジタルコンピュータプログラムは、コンパイラ型もしくはインタープリタ型言語、または宣言型もしくは手続き型言語を含むプログラム言語の任意の形態で書くことができ、またデジタルコンピュータプログラムは、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境で使用するのに適した他のユニットとしてを含む任意の形態で展開することができる。プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれる、または説明される場合もある量子コンピュータプログラムは、コンパイラ型もしくはインタープリタ型言語、または宣言型もしくは手続き型言語を含むプログラム言語の任意の形態で書かれ、好適な量子プログラミング言語に変換されることがあり、あるいは量子プログラミング言語、たとえばQCLまたはQuipperで書かれることがある。
【0082】
デジタルおよび/または量子コンピュータプログラムが、ファイルシステムにおいてファイルに対応してもよいが、対応する必要はない。プログラムは、他のプログラムまたはデータ、たとえばマークアップ言語ドキュメントに記憶された1つまたは複数のスクリプトを入れたファイルの一部分に、当該プログラムに専用の単一ファイルに、または複数の協調ファイル(coordinated file)、たとえば1つもしくは複数のモジュール、サブプログラム、もしくはコードの部分を記憶するファイルに記憶することができる。デジタルおよび/または量子コンピュータプログラムは、1つのデジタルまたは1つの量子コンピュータ上で、あるいは1つのサイトに位置する、または複数のサイトにわたって分散し、デジタルおよび/または量子データ通信ネットワークによって相互接続される複数のデジタルおよび/または量子コンピュータ上で、実行されるように展開することができる。量子データ通信ネットワークは、量子システム、たとえばキュービットを使用して量子データを送信する場合があるネットワークであると理解される。一般的に、デジタルデータ通信ネットワークは、量子データを送信することができないが、量子データ通信ネットワークは、量子データとデジタルデータの両方を送信する場合がある。
【0083】
本明細書で説明するプロセスおよび論理フローは、1つまたは複数のプログラマブルデジタルおよび/または量子コンピュータによって実行可能であり、1つまたは複数のデジタルおよび/または量子プロセッサで適宜に動作し、入力デジタルおよび量子データ上で動作し、出力を生成することによって機能を実行するために1つまたは複数のデジタルおよび/または量子コンピュータプログラムを実行する。プロセスおよび論理フローは、専用論理回路、たとえばFPGAもしくはASIC、または量子シミュレータによって、あるいは専用論理回路または量子シミュレータおよび1つまたは複数のプログラムされたデジタルおよび/または量子コンピュータの組合せによって実行されることも可能であり、装置がこれらとして実装されることも可能である。
【0084】
1つまたは複数のデジタルおよび/または量子コンピュータのシステムが特定の動作またはアクションを行う「ように構成され」るとは、動作時にシステムに動作またはアクションを行わせるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをシステムがインストールしていることを意味する。1つまたは複数のデジタルおよび/または量子コンピュータが特定の動作またはアクションを行うように構成されるとは、1つまたは複数のプログラムが、デジタルおよび/または量子データ処理装置によって実行されると、装置に動作またはアクションを行わせる命令を含むことを意味する。量子コンピュータが、デジタルコンピュータから、量子コンピューティング装置によって実行されると、装置に動作またはアクションを行わせる命令を受け取る場合もある。
【0085】
デジタルおよび/または量子コンピュータプログラムの実行に好適なデジタルおよび/または量子コンピュータは、汎用または専用デジタルおよび/または量子プロセッサ、または両方、または任意の他の種類の中央デジタルおよび/または量子処理ユニットに基づくことができる。一般的に、中央デジタルおよび/または量子処理ユニットが、命令ならびにデジタルおよび/または量子データを読取り専用メモリ、ランダムアクセスメモリ、または量子データ、たとえば光子の送信に好適な量子システム、またはそれらの組合せから受け取ることになる。
【0086】
デジタルおよび/または量子コンピュータの必須要素は、命令を行うまたは実行するための中央処理ユニットと、命令ならびにデジタルおよび/または量子データを記憶するための1つまたは複数のメモリデバイスである。中央処理ユニットおよびメモリは、専用論理回路もしくは量子シミュレータによって補われることがあり、または専用論理回路もしくは量子シミュレータに組み込まれることがある。一般的に、デジタルおよび/または量子コンピュータはまた、デジタルおよび/または量子データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば磁気、光磁気ディスク、光ディスク、または量子情報を記憶するのに好適な量子システムを含む、あるいはこれらの大容量記憶デバイスからデジタルおよび/または量子データを受け取る、またはこれらの大容量記憶デバイスにデジタルおよび/または量子データを転送する、または両方のために動作可能に結合されることになる。しかしながら、デジタルおよび/または量子コンピュータが、そのようなデバイスを有する必要はない。
【0087】
デジタルおよび/または量子コンピュータプログラム命令ならびにデジタルおよび/または量子データを記憶するのに好適なデジタルおよび/またはコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえばEPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、CD-ROMおよびDVD-ROMディスク、ならびに量子システム、たとえば捕捉された原子または電子を含む、あらゆる形態の不揮発性デジタルおよび/または量子メモリ、媒体、メモリデバイスを含む。量子メモリは、量子データを高い忠実度および効率で長時間記憶することができるデバイス、たとえば光が伝送に使用される光-物質インターフェース、および重ね合わせまたは量子コヒーレンスなど量子データの量子特徴を記憶し、保存するための物質であると理解される。
【0088】
本明細書で説明する様々なシステム、またはそれらの一部の制御は、1つまたは複数の非一時的機械可読記憶媒体に記憶され、1つまたは複数のデジタルおよび/または量子処理デバイス上で実行可能である命令を含むデジタルおよび/または量子コンピュータプログラム製品において実装可能である。本明細書で説明するシステム、またはそれらの一部は、各々、装置、方法、またはシステムとして実装可能であり、システムは、1つまたは複数のデジタルおよび/または量子処理デバイスと、本明細書で説明する動作を行うために実行可能な命令を記憶するためのメモリとを含む場合がある。
【0089】
本明細書は、多くの特定の実装形態の詳細を含むが、これらは、特許請求される可能性のあるものの範囲への制限として解釈されるべきではなく、むしろ特定の実装形態に固有である場合がある特徴の説明として解釈されるべきである。本明細書において別個の実装形態の文脈で説明されるいくつかの特徴は、単一の実装形態において組み合わせて実装されることもある。逆に、単一の実装形態の文脈で説明される様々な特徴は、複数の実装形態において別々に、または任意の適切な部分的な組合せで実装されることもある。さらに、特徴は、ある組合せで機能するものとして上記で説明され、さらに当初はそのように特許請求される場合があるが、特許請求される組合せからの1つまたは複数の特徴は、場合によってはその組合せから削除されることがあり、特許請求される組合せは、部分的な組合せ、または部分的な組合せの変形を対象とする場合がある。
【0090】
同様に、動作は、特定の順序で図面に示されるが、これは、望ましい結果を達成するために、このような動作が図示された特定の順序でもしくは順次に行われること、または例示したすべての動作が行われることを必要とするものと理解されるべきではない。いくつかの環境では、マルチタスクおよび並列処理が有利である場合がある。さらに、上記で説明した実装形態における様々なシステムモジュールおよびコンポーネントの分離は、すべての実装形態においてそのような分離を必要とすると理解されるべきではなく、記載するプログラムコンポーネントおよびシステムは、一般的に単一のソフトウェア製品に一緒に統合される、または複数のソフトウェア製品にパッケージ化されることがあると理解されるべきである。
【0091】
主題の特定の実装形態について説明した。他の実装形態も、特許請求の範囲内である。たとえば、特許請求の範囲に記載するアクションは、異なる順序で行われ、やはり望ましい結果を実現することがある。一例として、添付図に示すプロセスは、望ましい結果を達成するために、図示した特定の順序、または一連の順序を必ずしも必要としない。場合によっては、マルチタスクおよび並列処理が有利である可能性がある。