(57)【要約】【課題】標準デバッギング動作をシミュレーションする量子回路デバッギングを自動化するための技法を提供する。【解決手段】本技術は、ソース量子回路に対応するソフトウェア・コードに挿入されたインストルメンテーション命令情報に基づいてソース量子回路をインストルメント化された回路内に再書込みすることを含む。インストルメント化された回路は、ソース量子回路内のキュビットの異なる状態データに対応する測定データを取得するために実行され得る。測定データは、ソース量子回路に関連する量子コンピュータの１つまたは複数の内部状態またはプロセスに対応する生成された情報を出力するために処理され得る。【選択図】図１
2020535519.tif 000002
【特許請求の範囲】
【請求項１】
システムであって、
コンピュータ実行可能構成要素を記憶するメモリと、
前記メモリに記憶されたコンピュータ実行可能構成要素を実行するプロセッサと、
を備え、前記コンピュータ実行可能構成要素が、
ソース回路に対応するソフトウェア・コードに関連するインストルメンテーション命令情報に基づいてインストルメント化された回路内に量子コンピュータの前記ソース回路を再書込みする回路再書込み構成要素、および、
前記インストルメント化された回路を実行して測定データを生み出す実行構成要素
を備える、システム。
【請求項２】
前記回路再書込み構成要素が、前記インストルメンテーション命令情報に基づく回路再書込みルールを適用する、請求項１に記載のシステム。
【請求項３】
前記回路再書込み構成要素が、前記インストルメンテーション命令情報に由来するデッド・コードを取り除くために、回路再書込みルールを適用する、請求項１に記載のシステム。
【請求項４】
前記インストルメンテーション命令情報が、前記ソフトウェア・コードにおいて２つの量子回路命令の間に挿入されたブレーク・ポイントを含む、請求項１に記載のシステム。
【請求項５】
前記インストルメンテーション命令情報が、前記ソフトウェア・コード内の対象の量子コード・セグメントの前に挿入された開始ブレークポイントと、前記対象の量子コードセグメントの後に挿入された終了ブレークポイントとを含む、請求項１に記載のシステム。
【請求項６】
前記量子コンピュータの１つまたは複数の内部状態またはプロセスに対応する情報を推論するために前記測定データを評価する統計的推定手続きをさらに含む、請求項１に記載のシステム。
【請求項７】
前記統計的推定手続きが、状態トモグラフィおよび再構成を含む、請求項６に記載のシステム。
【請求項８】
前記統計的推定手続きが、プロセス・トモグラフィおよび再構成を含む、請求項６に記載のシステム。
【請求項９】
コンピュータ実装される方法であって、
量子コンピュータに関連付けられているソース量子回路をインストルメント化するインストルメンテーション命令情報に基づいて、インストルメント化された回路内に前記ソース量子回路を、プロセッサに動作可能なように結合されたシステムによって、自動的に再書込みすることと、
前記インストルメント化された回路をデバイスによって実行して、前記ソース回路内の異なる位置に対応する測定データを取得することと、
前記測定データを前記デバイスによって出力することと
を含む、コンピュータ実装される方法。
【請求項１０】
状態トモグラフィを介して前記測定データを統計的に評価することをさらに含む、請求項９に記載のコンピュータ実装される方法。
【請求項１１】
プロセス・トモグラフィを介して前記測定データを統計的に評価することをさらに含む、請求項９に記載のコンピュータ実装される方法。
【請求項１２】
ブレークポイントが１つまたは複数のキュビットのパーティションを含む、前記ソース量子回路に対応するソフトウェアに挿入された前記ブレークポイントに対応する情報を受信することをさらに含む、請求項９に記載のコンピュータ実装される方法。
【請求項１３】
開始ブレークポイントが、前記ソース量子回路に対応するソフトウェアにおいて対象の量子コード・セグメントの前に挿入され、終了ブレークポイントが、対象の前記量子コード・セグメントの後に挿入される、前記開始ブレークポイントおよび前記終了ブレークポイントに対応する情報を受信することをさらに含む、請求項９に記載のコンピュータ実装される方法。
【請求項１４】
前記インストルメント化された回路内に前記ソース量子回路を前記自動的に再書込みすることが、前記インストルメント化された回路のうちの少なくとも１つからデッド・コードを削除することを含む、請求項９に記載のコンピュータ実装される方法。
【請求項１５】
前記ソース量子回路を前記インストルメント化された回路内に前記自動的に再書込みすることが、ブレークポイントに対して前記回路を介して前方または後方にインストルメンテーションの１つまたは複数の影響を伝搬することによって１つまたは複数のゲートを取り除くことを含む、請求項９に記載のコンピュータ実装される方法。
【請求項１６】
量子コンピュータ・ソフトウェアのデバッギングを円滑にするコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、プログラム命令が具現化されたコンピュータ可読記憶媒体を備え、前記プログラム命令は、
ソース量子回路に対応するソフトウェア・コードに挿入されたインストルメンテーション命令情報に基づいて前記ソース量子回路をインストルメント化された回路に自動的に再書込みすること、
前記インストルメント化された回路を実行して前記ソース量子回路内のキュビットの異なる状態データに対応する測定データを取得すること、および、
前記測定データを処理して前記ソース量子回路に関連する量子コンピュータの１つまたは複数の内部状態またはプロセスに対応する生成された情報を出力すること
をプロセッサに行わせるために前記プロセッサによって実行可能である、コンピュータ・プログラム製品。
【請求項１７】
前記プログラム命令はさらに、
前記回路を介して前方または後方にインストルメンテーションの１つまたは複数の影響を伝搬することによって、その状態が前記インストルメンテーションに因果的につながれ得る１つまたは複数のキュビットに対応するデッド・コードを、前記ソース量子回路を自動的に再書込みすることの一部として、取り除くこと
を前記プロセッサに行わせるために前記プロセッサによって実行可能である、請求項１６に記載のコンピュータ・プログラム製品。
【請求項１８】
前記プログラム命令がさらに、
アプリケーション・プログラミング・インターフェースを介して前記インストルメンテーション命令情報を入力すること
を前記プロセッサに行わせるために前記プロセッサによって実行可能である、請求項１６に記載のコンピュータ・プログラム製品。
【請求項１９】
前記プログラム命令がさらに、
アプリケーション・プログラミング・インターフェースを介して１つまたは複数の分析パラメータを入力すること
を前記プロセッサに行わせるために前記プロセッサによって実行可能である、請求項１６に記載のコンピュータ・プログラム製品。
【請求項２０】
前記プログラム命令がさらに、
アプリケーション・プログラミング・インターフェースを介してグラフィカル・データとして前記測定データまたは前記生成された情報を出力すること
を前記プロセッサに行わせるために前記プロセッサによって実行可能である、請求項１６に記載のコンピュータ・プログラム製品。
【請求項２１】
コンピュータ実装される方法であって、
ソース量子回路に対応するソフトウェア・コードに挿入されたインストルメンテーション命令情報に基づいてインストルメント化された回路内に前記ソース量子回路を、プロセッサに動作可能なように結合されたシステムによって、再書込みすることと、
前記インストルメント化された回路を前記システムによって実行して、前記ソース量子回路内のキュビットの異なる状態データに対応する測定データを取得することと、
前記システムによって前記測定データを処理して、前記ソース量子回路に関連する量子コンピュータの１つまたは複数の内部状態またはプロセスに対応する生成された情報を出力することと
を含む、コンピュータ実装される方法。
【請求項２２】
前記ソース量子回路を前記インストルメント化された回路内に前記再書込みすることが、前記インストルメンテーション命令情報に由来するデッド・コードを取り除くことを含む、請求項２１に記載のコンピュータ実装される方法。
【請求項２３】
前記測定データを前記処理することが、状態トモグラフィおよび再構成を実行すること、あるいはプロセス・トモグラフィおよび再構成を実行することを含む、請求項２１に記載のコンピュータ実装される方法。
【請求項２４】
システムであって、
コンピュータ実行可能構成要素を記憶するメモリと、
前記メモリに記憶されたコンピュータ実行可能構成要素を実行するプロセッサと、
を備え、前記コンピュータ実行可能構成要素が、
ソース量子回路に対応するソフトウェア・コードに挿入されたインストルメンテーション命令情報に基づいて前記ソース量子回路をインストルメント化された回路内に再書込みする回路再書込み構成要素、
前記インストルメント化された回路を実行して前記ソース量子回路内のキュビットの異なる状態データに対応する測定データを取得する実行構成要素、および、
前記測定データを処理して前記ソース量子回路に関連する量子コンピュータの１つまたは複数の内部状態またはプロセスに対応する生成された情報を出力する統計的推定構成要素
を備える、システム。
【請求項２５】
前記回路再書込み構成要素が、前記インストルメント化された回路の少なくとも１つのインストルメント化された回路からデッド・コードを取り除く、請求項２４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、量子計算に関し、より詳細には、量子回路のデバッギングに関する。
【背景技術】
【０００２】
内部状態の測定は、実行結果を変え、不可逆的プロセスであるので、コード実行を介するシングルステップの間の従来の計算機械の内部状態の観測などの標準デバッギング方法は、量子コンピュータでは不可能である。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
量子回路デバッギングの自動化を円滑にすることが求められる。
【課題を解決するための手段】
【０００４】
本発明の１つまたは複数の実施形態の基本理解をもたらすために、以下に概要を提示する。本概要は、極めて重要なまたは決定的な要素を識別すること、あるいは特定の実施形態の範囲または本特許請求の範囲を線引きすることを意図されていない。その唯一の目的は、後で提示されるさらに詳しい説明に対する前置きとして、簡略化された形で概念を示すことである。本明細書に記載の１つまたは複数の実施形態において、量子回路デバッギングの自動化を円滑にするデバイス、システム、コンピュータ実装される方法、装置またはコンピュータ・プログラム製品あるいはその組合せが説明される。
【０００５】
一実施形態によれば、システムは、ソース回路に対応するソフトウェア・コードに関連するインストルメンテーション命令情報（instrumentation instruction information）に基づいてインストルメント化された回路（instrumented circuit）内に量子コンピュータのソース回路を再書込みする回路再書込み構成要素を備えることができる。実行構成要素は、インストルメント化された回路を実行して測定データを生み出すことができる。回路再書込み構成要素は、回路再書込みルールを適用して、インストルメンテーション命令情報に由来するデッド・コードを取り除くことができる。一態様では、システムによって生み出された測定データは、デバッグまたは改良あるいはその両方が行われた量子回路をもたらすことができる。
【０００６】
もう１つの実施形態によれば、コンピュータ実装される方法が提供される。このコンピュータ実装される方法は、ソース量子回路は量子コンピュータと関連付けられているソース量子回路をインストルメント化するインストルメンテーション命令情報に基づいて、インストルメント化された回路内にソース量子回路を、プロセッサに動作可能なように結合されたシステムによって、自動的に再書込みすることを含むことができる。さらに、このコンピュータ実装される方法は、インストルメント化された回路を、デバイスによって、実行してソース回路内の異なる位置に対応する測定データを取得することと、測定データをデバイスによって出力することとを含むことができる。一態様では、コンピュータ実装される方法によって生み出された測定データは、デバッグまたは改良あるいはその両方が行われた量子回路をもたらすことができる。
【０００７】
さらにもう１つの実施形態によれば、量子回路デバッギングを円滑にするコンピュータ・プログラム製品は、プログラム命令が具現化されたコンピュータ可読記憶媒体を備えることができる。プログラム命令は、プロセッサによって実行可能になり得、ソース量子回路に対応するソフトウェア・コードに挿入されたインストルメンテーション命令情報に基づいてソース量子回路をインストルメント化された回路に自動的に再書込みすること、インストルメント化された回路を実行してソース量子回路内のキュビットの異なる状態データに対応する測定データを取得すること、および測定データを処理してソース量子回路に関連する量子コンピュータの１つまたは複数の内部状態またはプロセスに対応する生成された情報を出力することをプロセッサに行わせることができる。一態様では、コンピュータ・プログラム製品によって生み出された生成された情報は、デバッグまたは改良あるいはその両方が行われた量子回路をもたらすことができる。
【０００８】
もう１つの実施形態では、コンピュータ実装される方法は、ソース量子回路に対応するソフトウェア・コードに挿入されたインストルメンテーション命令情報に基づいてソース量子回路をインストルメント化された回路内に再書込みすることと、インストルメント化された回路を実行してソース量子回路内のキュビットの異なる状態データに対応する測定データを取得することと、測定データを処理してソース量子回路に関連する量子コンピュータの１つまたは複数の内部状態またはプロセスに対応する生成された情報を出力することとを含むことができる。測定データを処理することは、状態トモグラフィおよび再構成を実行すること、またはプロセス・トモグラフィおよび再構成を実行することを含むことができる。一態様では、コンピュータ実装される方法によって生み出された生成された情報は、デバッグまたは改良あるいはその両方が行われた量子回路をもたらすことができる。
【０００９】
さらにもう１つの実施形態では、システムは、ソース量子回路に対応するソフトウェア・コードに挿入されたインストルメンテーション命令情報に基づいてソース量子回路をインストルメント化された回路内に再書込みする回路再書込み構成要素を備え得る。実行構成要素は、インストルメント化された回路を実行してソース量子回路内のキュビットの異なる状態データに対応する測定データを取得することができる。統計的推定構成要素は、測定データを処理してソース量子回路に関連する量子コンピュータの１つまたは複数の内部状態またはプロセスに対応する生成された情報を出力することができる。一態様では、システムによって生み出された生成された情報は、デバッグまたは改良あるいはその両方が行われた量子回路をもたらすことができる。
【図面の簡単な説明】
【００１０】
【図１】本明細書に記載の１つまたは複数の実施形態による量子デバッガ構成要素を含む例示的な、非限定的システムのブロック図である。
【図２】本明細書に記載の１つまたは複数の実施形態による量子デバッガ構成要素を含む例示的な、非限定的システムのブロック図である。
【図３】本明細書に記載の１つまたは複数の実施形態による量子デバッガ構成要素を含む例示的な、非限定的システムのブロック図である。
【図４】本明細書に記載の１つまたは複数の実施形態によるインストルメント化された回路インスタンス内に再書込みされたブレークポイントを有する入力回路を含むもう１つの例示的な、非限定的システムのブロック図である。
【図５】本明細書に記載の１つまたは複数の実施形態による、インストルメンテーションの影響を回路を通して後方へ伝搬すること（たとえば、ブレークポイントに対して）によってその状態がインストルメンテーションに因果的につながれ得るキュビットを判定する手法を使用するインストルメント化された回路を再書込みする例示的な、非限定的システムのブロック図である。
【図６】本明細書に記載の１つまたは複数の実施形態による、インストルメンテーションの影響を回路を通して後方へ伝搬すること（たとえば、ブレークポイントに対して）によってその状態がインストルメンテーションに因果的につながれ得るキュビットを判定する手法を使用するインストルメント化された回路を再書込みする例示的な、非限定的システムのブロック図である。
【図７】本明細書に記載の１つまたは複数の実施形態による、インストルメンテーションの影響を回路を通して前方へ伝搬すること（たとえば、ブレークポイントに対して）によってその状態がインストルメンテーションに因果的につながれ得るキュビットを判定する手法を使用するインストルメント化された回路を再書込みする例示的な、非限定的システムのブロック図である。
【図８】本明細書に記載の１つまたは複数の実施形態による、インストルメンテーションの影響を回路を通して前方へ伝搬すること（たとえば、ブレークポイントに対して）によってその状態がインストルメンテーションに因果的につながれ得るキュビットを判定する手法を使用するインストルメント化された回路を再書込みする例示的な、非限定的システムのブロック図である。
【図９】本明細書に記載の１つまたは複数の実施形態によるデバッギング（図１０）を円滑にするインストルメント化された回路（図９）内への注釈付き量子回路の再書込みを円滑にする例示的な、非限定的コンピュータ実装される方法の流れ図である。
【図１０】本明細書に記載の１つまたは複数の実施形態によるデバッギング（図１０）を円滑にするインストルメント化された回路（図９）内への注釈付き量子回路の再書込みを円滑にする例示的な、非限定的コンピュータ実装される方法の流れ図である。
【図１１】本明細書に記載の１つまたは複数の実施形態による、インストルメント化された回路内に注釈付き量子回路を再書込みすること、インストルメント化された回路を実行して出力を提供すること、および出力を処理することを円滑に進める例示的な、非限定的コンピュータ実装される方法の流れ図である。
【図１２】本明細書に記載の１つまたは複数の実施形態を円滑に進めることができる例示的な、非限定的動作環境のブロック図である。
【発明を実施するための形態】
【００１１】
以下の詳細な説明は、単に例示であり、実施形態もしくは適用例またはその両方あるいは実施形態の利用法を制限することを意図されていない。さらに、前述の背景技術または発明の概要のセクションにおいて、あるいは発明を実施するための形態のセクションにおいて示される明示的または黙示的情報のいずれによる制約も意図されていない。
【００１２】
１つまたは複数の実施形態について、図面を参照してここで説明する。図面を通して、類似の参照番号は類似の要素を参照するために使用される。以下の記述では、説明を目的として、１つまたは複数の実施形態のより十分な理解をもたらすために、多くの具体的詳細が記載される。しかしながら、様々なケースで、１つまたは複数の実施形態がこれらの具体的詳細なしに実施され得ることは明らかである。
【００１３】
量子計算は、トランジスタに基づく２値デジタル技法と対照に、情報をエンコードするために量子物理学を使用する。たとえば、量子コンピュータは、量子情報の基本単位である量子ビット（たとえば、キュビット）を使用することができる。キュビットは、量子物理学の重ね合わせ原理（superposition principle of quantum physics）および量子物理学のエンタングルメント原理（entanglement principle）に従って動作する。量子物理学の重ね合わせ原理は、各キュビットが同時に「１」の値および「０」の値の両方を表すことができると述べる。量子物理学のエンタングルメント原理は、重ね合わせ内のキュビットは互いに相関し得ると述べる。たとえば、第１の値（たとえば、「１」の値または「０」の値）の状態は、第２の値の状態に依存し得る。そのようなものとして、量子コンピュータは、キュビットを使用して情報をエンコードすることができる。
【００１４】
量子計算の知られているプロパティは、量子計算回路内のキュビットまたはキュビットのサブセットの状態を測定することは、測定されない場合の結果に対して、回路の結果を変更するということである。結果として、キュビットの測定は、一般に、不可逆的プロセスであり、それにより標準デバッギング技法の方法（命令の実行を通してシングルステップしつつ計算機械の内部状態を観測することなど）は、量子コンピュータでは不可能である。
【００１５】
図１〜３は、本明細書に記載の１つまたは複数の実施形態による量子デバッガ構成要素を含む例示的な、非限定的システムのブロック図を示す。本明細書に記載の他の実施形態において使用される類似の要素の繰り返しの説明は、簡潔にするために、省略される。
【００１６】
図１〜３は、量子回路のデバッギングを円滑にするデバッガ構成要素１０２などを含む、例示的な、非限定的システム１００のブロック図を示す。ソース量子回路（たとえば、デバッグされることになる）に対応する量子回路コード１０４は、デバッガ構成要素１０２への入力として取得することができる。ユーザ・インターフェース１０６（または自動化されたプロセス）は、たとえば、たとえばコード／回路におけるそのポイントにおけるキュビットの状態またはキュビットのセットの測定を円滑にするために、適切な位置において少なくとも１つのブレークポイントを挿入することによって、または命令集合の周りの開始および終了ブレークポイントの少なくとも１つのペアを挿入することによって、あるいはその両方によって、インストルメント化された量子回路コード（instrumented quantum circuit code）１０８内に量子回路コード１０４を修正するために使用することができる。理解されるように、いくつかの実施形態において、インストルメント化された量子回路コード１０８がデバッガ構成要素１０２への入力としてより直接に提供され得るように、ユーザ・インターフェース１０６（または任意の自動化された動作機構あるいはその両方）は、デバッガ構成要素１０２の外部でもよい。
【００１７】
図１にさらに表されるように、回路再書込み構成要素１１０は、複数のインストルメント化された量子回路（１１２（１）〜１１２（ｎ））内にソース回路を再書込みすることができ（インストルメント化された量子回路コード１０８および回路再書込みルール１１１に基づく）、インストルメント化された量子回路は、インストルメント化された量子回路を介して異なる場所において測定値を取得するように、様々なインスタンスである。一般に、本明細書に記載のように、回路再書込みは、インストルメンテーション命令を挿入し、インストルメンテーションに由来するデッド・コードを取り除くことができる。
【００１８】
システム１００は、抽象的ではないおよび人間による精神的活動のセットとして実行することができない、量子回路のデバッギングを含む、本質的に高度に技術的な問題を解決するためにハードウェアまたはソフトウェアあるいはその両方を使用することができる。さらに、ある種の実施形態では、実行されるプロセスのうちのいくつかは、機械学習に関連する定義されたタスクを実行するための１つまたは複数の専用のコンピュータ（たとえば、１つまたは複数の専用の処理装置、トモグラフィおよび再構成などの専用のコンピュータ、統計的推定など）によって実行することができる。システム１００またはシステム１００の構成要素あるいはその両方は、前述の技術、コンピュータ・アーキテクチャなど、あるいはその組合せにおける進歩を通して生じる新しい問題を解決するために使用することができる。システム１００の１つまたは複数の実施形態は、量子回路システム、量子プロセッサ・システム、量子計算システム、人工知能システム、または他のシステムあるいはその組合せに技術的改良をもたらすことができる。システム１００の１つまたは複数の実施形態はまた、量子プロセッサの処理性能の改善、量子プロセッサの処理効率の改善、量子プロセッサの処理特性の改善、量子プロセッサのタイミング特性の改善または量子プロセッサの電力効率の改善あるいはその組合せによって量子プロセッサ（たとえば、超電導量子プロセッサ）に技術的改良をもたらすことができる。
【００１９】
図２は、デバッガ構成要素１０２に組み込むことができるシステム１００の別の構成要素、すなわち回路実行構成要素１１４、を表す。回路実行構成要素１１４は、インストルメント化された量子回路１１２（１）〜１１２（ｎ）を実行して個々の実行動作に対応する測定データ１１６（１）〜１１６（ｎ）を取得することができる。たとえば、実行構成要素は、１つまたは複数のキュビットをゲートまたはインストルメント化された回路あるいはその両方に入力し、指定された測定点において結果を測定し、次いで、次のインストルメント化された回路などで処理を繰り返すことができる。測定データは、ソース回路に関する状態情報を推論するために、結合させることができる。
【００２０】
図３に表されるように、測定データ１１６（１）〜１１６（ｎ）は、ソース回路内の様々な場所において量子コンピュータの推論されたデータ（inferred data）１２０（たとえば、推論された内部状態／推論されたプロセス）を出力するために、統計的推定構成要素１１８によって処理することができる。たとえば、統計的推定構成要素１１８は、測定データ、またはよく知られているプロセス・トモグラフィおよび再構成動作あるいはその両方で、よく知られている状態トモグラフィおよび再構成動作を実行することができる。補助的クラシック計算システム（たとえば、大きなクラスタまたは特殊用途機械）は、結果として生じる測定データ１１６（１）〜１１６（ｎ）の処理専用でもよい。推論されたデータ１２０は、図１のユーザ・インターフェース１０６の一部でもよい、ユーザ・インターフェース・インスタンス１２２で適切な形式で出力され得る。このようにして、キュビット状態またはキュビットの相関関係からの状態が、全体の実行結果を変えることなく、実際に測定することができるかのように、量子回路コード１０４（量子ソース回路に対応する）に関する情報が取得され得る。
【００２１】
さらに一般的には、本明細書に記載の１つまたは複数の実施形態において、量子コンピュータの内部状態またはプロセスあるいはその両方を推論する任意の統計的推定手続きが、注釈付き入力回路のインストルメンテーション回路の作成（図１の回路再書込みルール１１１を使用する）、インストルメンテーション回路の実行、および、入力回路内の異なる場所におけるキュビット状態およびデータに関して生じているものを推定するための、たとえば、よく知られている統計的分析技法を使用する、測定結果のアンサンブルの後処理によって、実装され得る。測定データ１１６（４）とユーザ・インターフェース１２２との間に図３に示された破線矢印を介して示されるように、統計的推定は単にオプションであり、測定データの表現はユーザ・インターフェース１２２を介して直接提示され得ることにさらに留意されたい。たとえば、回路への所与の入力に基づくある特定の状態にその回路によって転換されることが予期されるキュビット状態は、キュビットがその時点で実際に予期された状態にあるかどうかを確かめるために、直接評価され得る。
【００２２】
本明細書に記載されるのは、注釈付き／インストルメント化されたソース量子回路／コード１０８から導出される、インストルメント化された回路１１２を備える、量子回路のアンサンブルを実行することによってデバッギング（デバッギング構成要素１０２を介する）および関連する動作行動をシミュレーションするためにシステム１００において具現化される技術である。インストルメント化された回路は、インストルメンテーション命令を挿入するために回路再書込みルール１１１を適用することによって生み出され得ることが理解されよう。ルール１１１はまた、インストルメンテーションに由来するデッド・コードを取り除くことができる。
【００２３】
本明細書に記載の実施形態は、回路再書込み構成要素１１０を介して示されるように、量子回路を自動的に再書込みすることによって、量子回路のデバッギングを円滑にするシステム、コンピュータ実装される方法、およびコンピュータ・プログラム製品を含む。量子プログラムを介するシングルステップに関する一態様では、インストルメント化されたソフトウェア・コードにおいて、ブレークポイント（たとえば、図４）は、ソース量子回路に対応するソフトウェア・コード内の量子回路命令のペアの間に挿入される。ソース回路およびインストルメント化された回路は、たとえば量子アセンブリ言語（ＱＡＳＭ：Quantum Assembly Language）ソフトウェア・コードによって具現化される適切な回路表現を使用し、指定することができる。ブレークポイントは、ハードウェアまたはシミュレータあるいは他の数学モデルにおいてインスタンス化され得るシステムのキュビットの（部分的）パーティションを含む。
【００２４】
任意の適切な形の状態トモグラフィおよび再構成（統計的推定構成要素１１８として表される）を使用して、ソース量子回路内の異なる場所におけるキュビットに対応する状態が、推定され得る。これは、ブレークポイントの前および後の分岐回路／動作の適切な修正と、トモグラフィ方法を円滑に進める前動作および後動作によるこれらの動作の置換とを含むことができる。
【００２５】
もう１つの態様において、前述の概念は、それらの命令が適用される量子プロセスを推定するために命令集合（対象の量子コード・セグメント）に適用することができる。開始および終了ブレークポイントは、対象となる量子コード・セグメントの周囲に挿入される。キュビットの（部分的）パーティションが与えられる。
【００２６】
任意の形のプロセス・トモグラフィおよび再構成（統計的推定構成要素１１８として表される）を使用し、パーティションの各サブセットに対応するプロセスが、推定される。これは、ブレークポイントの前および後の分岐回路／動作の適切な修正と、トモグラフィ方法を円滑に進める前動作および後動作によるこれらの動作の置換とを含むことができる。
【００２７】
したがって、単一のブレークポイントを介してあるいは命令集合の周りを囲む開始および終了ブレークポイントを介してのどちらでも、ゲートの組合せを介して回路を変更することおよびそれらを再実行することによって、システム（すなわち、一部のまたはすべての観測可能なシステム状態）の低減された密度行列が、たとえば任意の適切な形の状態またはプロセス・トモグラフィおよび再構成を使用し、パーティション内のキュビットの各サブセットについて推定され得る。回路は、各推定を可能にするために再書込みするルールに従って再書込みされる。たとえば、回路を通してインストルメンテーションの影響を前方に伝搬することによって、その状態がインストルメンテーションに因果的につながれ得るキュビットが、パーティション内の将来の動作を取り除くように決定され得、適切な後回転および測定によって置換され得る。
【００２８】
図１〜３に示す実施形態において、システム１００は、デバッガ構成要素１０２を含み得る。図１に示すように、デバッガ構成要素１０２は、回路再書込み構成要素１１０を含み得る。デバッガ構成要素１０２の態様は、たとえば１つまたは複数の機械に関連する１つまたは複数のコンピュータ可読媒体において具現化された、機械内に具現化された機械実行可能構成要素を構成することができる。そのような構成要素は、１つまたは複数の機械、たとえば、コンピュータ、計算デバイス、仮想機械など、によって実行されるとき、記述された動作を機械に実行させることができる。一態様では、デバッガ構成要素１０２はまた、コンピュータ実行可能構成要素および命令を記憶するメモリを含むことができる。さらに、デバッガ構成要素１０２は、デバッガ構成要素１０２によって命令（たとえば、コンピュータ実行可能構成要素および対応する命令）の実行を円滑に進めるために、プロセッサを含むことができる。図示するように、デバッガ１０２の様々な構成要素は、１つまたは複数の実施形態において互いに電気的にまたは通信可能なようにあるいはその両方で結合され得る。
【００２９】
デバッガ構成要素１０２は、量子回路データ１０４、１０８を受信することができる。量子回路データ１０４、１０８は、たとえば、量子回路の機械可読記述になり得る。量子回路は、一連の量子ゲートに関連する１つまたは複数の量子計算のモデルになり得る。１つの例では、量子回路データは、量子回路を記述するテキスト形式言語（たとえば、ＱＡＳＭテキスト形式言語）を示すテキスト・データを含むことができる。たとえば、テキスト・データは、たとえば、１つまたは複数のキュビットに関連する量子回路の１つまたは複数のキュビットゲートをテキストで記述することができる。一実施形態で、量子回路データは、量子回路に関連する１つまたは複数の位置を識別する１つまたは複数の要素の情報を示すマーカー・データを追加で含むことができる。たとえば、要素が、１つまたは複数のキュビットに関連する量子回路の１つまたは複数のキュビットゲートの測定位置にタグを付けるためにコードに追加され得る。
【００３０】
ある種の実施形態では、デバッガ構成要素１０２は、人工知能の原理に関連する分類、相関関係、推論または表現あるいはその組合せに基づいて、インストルメント化された量子回路コード１０８またはインストルメント化された量子回路１１２を生成することができる。たとえば、学習された前のユーザ行動に基づいて、１つまたは複数のブレークポイントは、デバッグされることになる回路に対応するコードに自動的に挿入される（または挿入を提案される）ことが可能である。さらに、デバッガ構成要素１０２は、自動的分類システムまたは自動的分類プロセスあるいはその両方を使用して、再書込みされたインストルメント化された量子回路１１２を決定することができる。１つの例では、デバッガ構成要素１０２は、確率論に基づくまたは統計に基づくあるいはその両方に基づく分析（たとえば、分析ユーティリティおよびコストに組み込むこと）を使用して、たとえばトモグラフィおよび再構成を使用する、インストルメント化された量子回路のセットに関する推論を学習するまたは生成するあるいはその両方を行うことができる。一態様では、回路再書込み構成要素１１０は、推論に基づく方式を部分的に使用して学習を円滑にするまたはインストルメント化された量子回路１１２のセットに関連する推論を生成するあるいはその両方を行うデバッガ構成要素１０２の自動化された態様をさらに強化することができる推論構成要素（図示せず）を含むことができる。たとえば、デバッガは、保存された測定データまたは推論データあるいはその両方で、ソース回路のいくらかの部分が以前にデバッグされたことを認識し、その保存されたデータを呼び出して合計デバッギング時間を減らすことができる。
【００３１】
回路再書込み構成要素１１０は、任意の適切な機械学習に基づく技法、統計に基づく技法または確率論に基づく技法あるいはその組合せを使用することができる。たとえば、回路再書込み構成要素１１０は、エキスパート・システム、ファジー論理、ＳＶＭ、隠れマルコフモデル（ＨＭＭ：Hidden Markov Model）、欲張り探索アルゴリズム、ルールに基づくシステム、ベイジアン・モデル（たとえば、ベイジアン・ネットワーク）、ニューラル・ネットワーク、他の非線形訓練技法、データ融合、ユーティリティに基づく分析システム、ベイジアン・モデルを使用するシステムなどを使用することができる。もう１つの態様において、デバッガ構成要素１０２は、クラスタリング機械学習計算、１セットのロジスティック回帰機械学習計算、１セットの決定木機械学習計算、１セットのランダム・フォレスト機械学習計算、１セットの回帰木機械学習計算、１セットの最小二乗機械学習計算（least square machine learning computations）、１セットのインスタンスに基づく機械学習計算、１セットの回帰機械学習計算、１セットのサポート・ベクトル回帰機械学習計算、１セットのｋ平均法機械学習計算、１セットのスペクトル・クラスタリング機械学習計算、１セットのルール学習機械学習計算、１セットのベイジアン機械学習計算、１セットのディープ・ボルツマン機械計算、１セットのディープ・ビリーフ・ネットワーク計算（deep belief network computations）、または１セットの異なる機械学習計算あるいはその組合せなど、インストルメント化された量子回路１１２の生成に関連する１セットの機械学習計算を実行することができる。
【００３２】
デバッガ構成要素１０２（たとえば、回路再書込み構成要素１１０または回路実行構成要素１１４あるいはその両方）は１人の人間によって実行することはできない（たとえば、１人の人間の精神の能力より大きい）回路生成プロセスまたは実行プロセスあるいはその両方を実行することができることを理解されたい。たとえば、ある特定の期間にわたってデバッガ構成要素１０２（たとえば、回路再書込み構成要素１１０または回路実行構成要素１１４あるいはその両方）によって処理されるデータの量、処理されるデータの速度または処理されるデータのデータ・タイプあるいはその組合せは、同じ期間にわたって単一の人間の精神によって処理することができる量、速度およびデータ・タイプより大きい、速い、および異なることが可能である。一般に、量子回路処理は、単一の人間の精神には複雑すぎて、可能な状態および組合せの数は、膨大になり得る。量子デバッガ構成要素１０２（たとえば、回路再書込み構成要素１１０または回路実行構成要素１１４あるいはその両方）はまた、前述のプロセスもまた実行しつつ１つまたは複数の他の機能の実行に向けて完全に動作可能になり得る。さらに、状態はほとんどが予測不可能であるので、デバッガ構成要素１０２によって生成される測定データ１１６は、ユーザが手動で取得することは不可能な情報を含むことができる。
【００３３】
図４は、本明細書に記載の１つまたは複数の実施形態によるインストルメント化された回路インスタンス内に再書込みされたブレークポイントを有する入力回路を含むもう１つの例示的な、非限定的システムのブロック図を示す。本明細書に記載の他の実施形態において使用される類似の要素の繰り返しの説明は、簡潔にするために、省かれる。
【００３４】
図４は、ブロック４４４によって表される複数のインストルメント化された回路インスタンス内へのブレークポイントを有する入力回路（ブロック４４４）の、回路再書込み構成要素１１０を介する、再書込みの概念を例示する。ブロック４４４内の例示されたブレークポイントは、分析のタイプを指定して任意の関連する分析パラメータを実行することができる、ことに留意されたい。
【００３５】
ブロック４４４によって表されるインストルメント化された回路インスタンスのうちの１つまたは複数（あるいは、一部の実施形態では、それぞれのそのような回路インスタンス）は、直接にあるいは１つまたは複数のゲートを介してでもよい、再書込みされたインストルメンテーション・コード内に１つまたは複数のキュビットを入力する。再書込みされたインストルメンテーション・コードは、インストルメント化された回路の実行可能インスタンスの間で異なり得る。
【００３６】
再書込み回路に関する態様を見ると、図５および６は、本明細書に記載の１つまたは複数の実施形態による、インストルメンテーションの影響を回路を通して後方へ伝搬すること（たとえば、ブレークポイントに対して）によってその状態がインストルメンテーションに因果的につながれ得るキュビットを判定する手法を使用するインストルメント化された回路を再書込みする例示的な、非限定的システムのブロック図を示す。本明細書に記載の他の実施形態において使用される類似の要素の繰り返しの説明は、簡潔にするために、省かれる。
【００３７】
図５は、回路内の指定された場所において挿入されたブレークポイントに基づいてブレークポイントを有する入力回路５５４内に処理されているソース回路５５２（ソフトウェアに対応する）を例示する。インストルメント化された回路インスタンス５５６は、たとえば、各インストルメント化された回路内のＰｊまたはＰｋあるいはその両方ｉを変えることによって、各インストルメント化された回路インスタンスについて異なるインストルメンテーション・コードで再書込みされる。たとえば、Ｐｊ、Ｐｋは、合計１６のインストルメント化された回路をもたらす｛ｉｄｅｎｔｉｔｙ，Ｘ，Ｙ，Ｚ｝におけるすべてのゲートを介して変化させることができる。これらのインストルメント化された回路のそれぞれは、複数のゲートに対応する変更された回路内の様々な場所において測定データをもたらし、実行される。
【００３８】
測定がキュビット状態で行われた後は、キュビット状態（ならびに任意の相関性のあるキュビットのそれ）は、もはや有効ではなく、「デッド」コードをもたらす（測定動作は、測定されない場合にキュビット状態に関連するキュビット状態を変更し得、したがって、残りのコードは、さらなる測定に関して本質的にデッドであるので、測定されたキュビットを別のゲートに渡すことによって、何も学習され得ない）ことが理解されよう。キュビットがゲートを介して相互作用するとき、それらの状態はもはや分離可能ではないことに留意されたい。インストルメント化された量子回路の再書込みは、これを組み込み、デッド・コードを取り除くことができる。
【００３９】
図５に表された、デッド・コードを取り除く１つの手法は、図６のブロック６６０に表された、ブレークポイントの前に回路を介してインストルメンテーションの影響を前方／後方に伝搬することによってその状態がインストルメンテーションに因果的につながれ得るキュビットを判定することを目的とする。概念的に、これは、「過去光円錐」に類似すると考えることができる。たとえば、キュビットの状態（またはキュビットのセット）が、１つのインストルメント化された回路内のゲートにおいて測定される場合、ゲートは、次のインストルメント化された回路において取り除くことができ、そして、測定されたキュビット状態またはシミュレーションされたキュビット状態が、次のインストルメント化された回路において適切なゲートに入力され得る。この手法は、より小さい回路（後述される代替手法に関連する）を生み出すが、ゲートは意図されたキュビットにのみ作用することを想定する。
【００４０】
図７および８は、本明細書に記載の１つまたは複数の実施形態による、インストルメンテーションの影響を回路を通して前方へ伝搬すること（たとえば、ブレークポイントに対して）によってその状態がインストルメンテーションに因果的につながれ得るキュビットを判定する手法を使用するインストルメント化された回路を再書込みする例示的な、非限定的システムのブロック図を示す。本明細書に記載の他の実施形態において使用される類似の要素の繰り返しの説明は、簡潔にするために、省略される。
【００４１】
図７および８に表された代替手法は、たとえば、インストルメンテーションの影響を回路を通して前方へ伝搬することによってその状態がインストルメンテーションに因果的につながれ得るキュビットを判定する、ブレークポイントを過ぎた未来のコード／分岐回路を削除する、すなわち、この代替手法は、ブレークポイントを過ぎたキュビットの「未来光円錐」（キュビットの可能な行先のセット）と類似するものを削除する。たとえば、再書込みされた回路内のある特定のブレークポイントに基づいて測定が行われるように、回路７７２が再書込みされた（ブレークポイントを有する入力回路７７４）後は、測定されたキュビット状態／任意の相関性のあるキュビットに関連するその特定の再書込みされたインストルメント化された回路インスタンス７７６の残りの部分においてさらなる実行は意味がない（したがって、必要とされない）。したがって、図８のブロック８８０によって表されるように、未来の分岐回路は、ブレークポイントを越えた斜めの破線によって表されるように、削除することができる。測定ポイントは、所望の測定データの完全なセットを取得するために、その次の測定ポイントなどにおいて測定データを取得するために実行される、次の再書込みされたインストルメント化された回路インスタンスにおいて移動され得る。いずれの手法でも、不必要なゲート（デッド・コードに対応する）はインストルメント化された回路において取り除かれることが理解されよう。
【００４２】
図９および１０は、本明細書に記載の１つまたは複数の実施形態による量子回路デバッギングの自動化を円滑にする例示的な、非限定的コンピュータ実装される方法の流れ図を示す。本明細書に記載の他の実施形態において使用される類似の要素の繰り返しの説明は、簡潔にするために、省略される。
【００４３】
９０２において、量子回路は入力である。９０４において、量子回路は、１つまたは複数のブレークポイントおよび１つまたは複数の分析パラメータで注釈を付けられ、ブレークポイント９０６を有する量子回路をもたらす。９０８において、量子回路は、図１０を参照して本明細書で説明されるように、デバッグされる。デバッギングは、９１０を介して表されるような量子回路の状態およびデータのスナップショットをもたらす。
【００４４】
図１０は、各注釈を容易にするデバッギング動作を要約する。１００２で、注釈付き入力回路および関連するブレークポイントが、たとえば本明細書に記載のようなインストルメンテーションの影響を前方／後方に伝搬する手法を使用して、不必要なゲートを取り除くために処理される。結果として生じるインストルメント化された回路は、１００６で生成され、１００８で実行される。１０１０で、インストルメント化された回路の実行の結果が、１０１２で返すために、結合および処理される。
【００４５】
プロセスは、標準デバッギング環境の錯覚（illusion）を生み出し、インストルメンテーション回路および再構成ソフトウェアがユーザによって見られる必要がない（望まれない限り）ようなやり方でソフトウェアにおいて自動化することができる。
【００４６】
説明を簡単にするために、コンピュータ実装される方法論は、一連の動作として図示および説明される。本イノベーションは、示された動作または動作の順番あるいはその両方によって制限されず、たとえば、動作は、本明細書に提示および記載されていない他の動作を有して、様々な順番でまたは同時にあるいはその両方で生じることが可能であることを把握および理解されたい。さらに、示されている動作のすべてが、本開示の主題によるコンピュータ実装される方法論を実装するために必要とされなくてもよい。加えて、このコンピュータ実装される方法論は、別法として、状態図またはイベントを介して一連の相互に関連する状態として表すことができることが当業者には把握および理解されよう。加えて、以下でおよび本明細書を通して開示されるコンピュータ実装される方法論は、そのようなコンピュータ実装される方法論のコンピュータへの移送および転送を容易にするために製造品に記憶することができることをさらに理解されたい。本明細書では、製造品という用語は、任意のコンピュータ可読デバイスまたは記憶媒体からアクセス可能なコンピュータ・プログラムを包含することが意図されている。
【００４７】
さらに、少なくともインストルメント化された回路の生成、および測定データを取得するためのインストルメント回路の実行などは、電気的および機械的構成要素および回路の組合せから確立されるので、人間は、量子回路デバッガ構成要素１０２によって実行される処理を再現または実行することはできない。
【００４８】
図１１は、本明細書に記載の１つまたは複数の実施形態による、インストルメント化された回路内に注釈付き量子回路を再書込みすること、インストルメント化された回路を実行して出力を提供すること、および出力を処理することによるものを含む、量子回路のデバッギングを円滑にする例示的な、非限定的コンピュータ実装される動作の流れ図を示す。
【００４９】
動作１１０２は、ソース量子回路に対応するソフトウェア・コードに挿入されたインストルメンテーション命令情報に基づいてソース量子回路をインストルメント化された回路内に再書込みすることを表す。動作１１０４は、インストルメント化された回路を実行してソース量子回路内のキュビットの異なる状態データに対応する測定データを取得することを表す。動作１１０６は、測定データを処理してソース量子回路に関連する量子コンピュータの１つまたは複数の内部状態またはプロセスに対応する生成された情報を出力することを表す。
【００５０】
本開示の主題の様々な態様の状況を提供するために、図１２ならびに以下の論考は、本開示の主題の様々な態様を実装することができる適切な環境の一般的説明を提供することが意図されている。図１２は、本明細書に記載の１つまたは複数の実施形態を円滑に進めることができる例示的な、非限定的な動作環境のブロック図を示す。本明細書に記載の他の実施形態において使用される類似の要素の繰り返しの説明は、簡潔にするために、省略される。
【００５１】
図１２を参照すると、本開示の様々な態様を実装するための適切な動作環境１２００はまた、コンピュータ１２１２を含むことができる。コンピュータ１２１２はまた、処理装置１２１４、システム・メモリ１２１６、およびシステム・バス１２１８を含むことができる。システム・バス１２１８は、処理装置１２１４に、システム・メモリ１２１６を含むがこれに限定されないシステム構成要素を結合させる。処理装置１２１４は、様々な利用可能なプロセッサのいずれかでもよい。デュアル・マイクロプロセッサおよび他のマルチプロセッサ・アーキテクチャはまた、処理装置１２１４として使用することができる。システム・バス１２１８は、業界標準アーキテクチャ（ＩＳＡ：Industrial Standard Architecture）、マイクロチャネル・アーキテクチャ（ＭＳＡ：Micro-Channel Architecture）、拡張ＩＳＡ（ＥＩＳＡ：Extended ISA）、インテリジェント・ドライブ・エレクトロニクス（ＩＤＥ：Intelligent Drive Electronics）、ＶＥＳＡローカル・バス（ＶＬＢ：VESA Local Bus）、周辺構成要素相互接続（ＰＣＩ）、カード・バス、ユニバーサル・シリアル・バス（ＵＳＢ）、アドバンスト・グラフィックス・ポート（ＡＧＰ：Advanced Graphics Port）、ファイヤーワイヤ（ＩＥＥＥ１３９４）、およびスモール・コンピュータ・システム・インターフェース（ＳＣＳＩ：Small Computer Systems Interface）を含むがこれらに限定されない、任意の様々な利用可能なバス・アーキテクチャを使用する、メモリバスもしくはメモリ・コントローラ、周辺バスもしくは外部バス、またはローカル・バスあるいはその組合せを含む、いくつかのタイプのバス構造体のいずれかでもよい。
【００５２】
システム・メモリ１２１６はまた、揮発性メモリ１２２０および不揮発性メモリ１２２２を含むことができる。起動中などに、コンピュータ１２１２内の要素間で情報を転送するための基本ルーチンを含む、基本入出力システム（ＢＩＯＳ：basic input/output system）が、不揮発性メモリ１２２２に記憶される。コンピュータ１２１２はまた、取り外し可能／取り外し不可能な、揮発性／不揮発性のコンピュータ記憶媒体を含むことができる。図１２は、たとえば、ディスク・ストレージ１２２４を示す。ディスク・ストレージ１２２４はまた、磁気ディスク・ドライブ、フロッピ・ディスク・ドライブ、テープ・ドライブ、Ｊａｚドライブ、Ｚｉｐドライブ、ＬＳ−１００ドライブ、フラッシュ・メモリ・カード、またはメモリ・スティックのようなデバイスを含むことができるが、これらに限定されない。ディスク・ストレージ１２２４はまた、別個にまたは他の記憶媒体と組み合わせて記憶媒体を含むことができる。システム・バス１２１８へのディスク・ストレージ１２２４の接続を円滑にするために、インターフェース１２２６などの取り外し可能または取り外し不可能なインターフェースが、通常は、使用される。図１２はまた、ユーザと適切な動作環境１２００内に記載された基本コンピュータ資源との間の媒介として動作するソフトウェアを示す。そのようなソフトウェアはまた、たとえば、オペレーティング・システム１２２８を含むことができる。ディスク・ストレージ１２２４に記憶することができるオペレーティング・システム１２２８は、コンピュータ１２１２の資源を制御するおよび割り当てるように動作する。
【００５３】
システム・アプリケーション１２３０は、たとえばシステム・メモリ１２１６にまたはディスク・ストレージ１２２４に記憶された、プログラム・モジュール１２３２およびプログラム・データ１２３４を介するオペレーティング・システム１２２８による資源の管理を活用する。本開示は様々なオペレーティング・システムまたはオペレーティング・システムの組合せと実装することができることを理解されたい。ユーザは、入力デバイス１２３６を介してコンピュータ１２１２にコマンドまたは情報を入力する。入力デバイス１２３６は、マウスなどのポインティング・デバイス、トラックボール、スタイラス、タッチパッド、キーボード、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星放送受信アンテナ、スキャナ、ＴＶチューナ・カード、デジタル・カメラ、デジタル・ビデオ・カメラ、ウェブ・カメラなどを含むが、これらに限定されない。これらのおよび他の入力デバイスは、インターフェース・ポート１２３８を介してシステム・バス１２１８を介して処理装置１２１４に接続する。インターフェース・ポート１２３８は、たとえば、シリアル・ポート、パラレル・ポート、ゲーム・ポート、およびユニバーサル・シリアル・バス（ＵＳＢ）を含む。出力デバイス１２４０は、入力デバイス１２３６と同タイプのポートのうちのいくつかを使用する。したがって、たとえば、ＵＳＢポートが、コンピュータ１２１２に入力を提供するために、およびコンピュータ１２１２から出力デバイス１２４０に情報を出力するために、使用され得る。出力アダプタ１２４２は、特別なアダプタを必要とする、数ある出力デバイス１２４０の中でも、モニタ、スピーカ、およびプリンタのような、いくつかの出力デバイス１２４０が存在することを示すために提供される。出力アダプタ１２４２は、出力デバイス１２４０とシステム・バス１２１８との間の接続の手段を提供するビデオおよびサウンド・カードを例として含むが、これらに限定されない。他のデバイスまたはデバイスのシステムあるいはその両方はリモート・コンピュータ１２４４などの入力と出力との両方の能力を提供することに留意されたい。
【００５４】
コンピュータ１２１２は、リモート・コンピュータ１２４４など、１つまたは複数のリモート・コンピュータへの論理接続を使用するネットワーク環境において動作することができる。リモート・コンピュータ１２４４は、コンピュータ、サーバ、ルータ、ネットワークＰＣ、ワークステーション、マイクロプロセッサに基づく機器、ピア・デバイスまたは他の共通ネットワーク・ノードなどでもよく、通常は、コンピュータ１２１２に関連して記載された要素のうちの多数またはすべてを含むことができる。簡潔にするために、メモリ記憶デバイス１２４６のみが、リモート・コンピュータ１２４４と示されている。リモート・コンピュータ１２４４は、ネットワーク・インターフェース１２４８を介してコンピュータ１２１２に論理的に接続され、次いで、通信接続１２５０を介して物理的に接続される。ネットワーク・インターフェース１２４８は、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、セルラ・ネットワークなどの、ワイヤまたはワイヤレスあるいはその両方の通信ネットワークを包含する。ＬＡＮ技術は、光ファイバ分散データ・インターフェース（ＦＤＤＩ：Fiber Distributed Data Interface）、銅分散データ・インターフェース（ＣＤＤＩ：Copper Distributed Data Interface）、イーサネット（Ｒ）、トークン・リングなどを含む。ＷＡＮ技術は、２地点間リンク、デジタル総合サービス網（ＩＳＤＮ：Integrated Services Digital Networks）およびその変更形態などの回路交換ネットワーク、パケット交換ネットワーク、ならびにデジタル加入者回線（ＤＳＬ：Digital Subscriber Line）を含むが、これらに限定されない。通信接続１２５０は、ネットワーク・インターフェース１２４８をシステム・バス１２１８に接続するために使用されるハードウェア／ソフトウェアを指す。通信接続１２５０は、説明を分かりやすくするために、コンピュータ１２１２内に示されているが、通信接続１２５０は、コンピュータ１２１２外部にあってもよい。ネットワーク・インターフェース１２４８への接続のためのハードウェア／ソフトウェアはまた、例示のみを目的として、通常の電話向けのモデム、ケーブル・モデムおよびＤＳＬモデムを含むモデム、ＩＳＤＮアダプタ、ならびにイーサネット（Ｒ）・カードなど、内部および外部技術を含むことができる。
【００５５】
本発明は、統合の任意の可能な技術的詳細レベルにおいて、システム、方法、装置またはコンピュータ・プログラム製品あるいはその組合せになり得る。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令を有する１つまたは複数のコンピュータ可読記憶媒体を含むことができる。コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および記憶することができる有形デバイスでもよい。コンピュータ可読記憶媒体は、たとえば、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、または前述の任意の適切な組合せでもよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非包括的リストはまた、以下を含み得る：ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピ・ディスク、パンチ・カードまたは命令が記録された溝内の隆起した構造体などの機械的にエンコードされたデバイス、ならびに前述の任意の適切な組合せ。本明細書では、コンピュータ可読記憶媒体は、無線波または他の自由に伝搬する電磁波、導波管または他の伝送媒体を介して伝搬する電磁波（たとえば、光ファイバ・ケーブルを通過する光パルス）、あるいはワイヤを介して送信される電気的信号など、一過性信号それ自体として解釈されるべきではない。
【００５６】
本明細書に記載のコンピュータ可読プログラム命令は、ネットワーク、たとえば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークまたはワイヤレスネットワークあるいはその組合せ、を介してコンピュータ可読記憶媒体からそれぞれの計算／処理デバイスにまたは外部コンピュータまたは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバあるいはその組合せを備えることができる。各計算／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれの計算／処理デバイス内のコンピュータ可読記憶媒体における記憶のためにコンピュータ可読プログラム命令を転送する。本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令集合アーキテクチャ（ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または類似のプログラミング言語などの手続き型プログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードでもよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータで、スタンドアロンのソフトウェア・パッケージとして、部分的にユーザのコンピュータで、部分的にユーザのコンピュータでおよび部分的にリモート・コンピュータで、あるいは完全にリモート・コンピュータまたはサーバで実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む、任意のタイプのネットワークを介してユーザのコンピュータに接続することができ、あるいは、その接続は、外部コンピュータに対して行われ得る（たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して）。いくつかの実施形態では、たとえば、プログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル論理アレイ（ＰＬＡ）を含む、電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を使用して電子回路をカスタマイズすることによって、コンピュータ可読プログラム命令を実行することができる。
【００５７】
本発明の態様は、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照して本明細書で説明される。流れ図またはブロック図あるいはその両方の各ブロックならびに流れ図またはブロック図あるいはその両方のブロックの組合せはコンピュータ可読プログラム命令によって実装され得ることが理解されよう。これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行する命令が、流れ図またはブロック図あるいはその両方の１つまたは複数のブロックにおいて指定された機能／動作を実装するための手段を生み出すように、汎用コンピュータ、特殊用途コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて、機械を作り出すものであってよい。また、これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、流れ図またはブロック図あるいはその両方の１つまたは複数のブロックにおいて指定された機能／動作の態様を実装する命令を含む製造品を備えるように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置または他のデバイスあるいはその組合せに特定の方式で機能するように指示することができるものであってもよい。また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル装置、または他のデバイスで実行する命令が、流れ図またはブロック図あるいはその両方の１つまたは複数のブロックにおいて指定された機能／動作を実装するように、コンピュータ実装されるプロセスを生み出すべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラマブル装置または他のデバイスで一連の演算動作を実行させるものであってもよい。
【００５８】
図中の流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を示す。これに関連して、流れ図またはブロック図内の各ブロックは、指定された論理機能を実装するための１つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または部分を表し得る。いくつかの代替実装形態において、ブロックに示された機能は、図に示された順番以外で生じ得る。たとえば、連続して示された２つのブロックは、実際には、実質的に同時に実行することが可能であり、あるいは、それらのブロックは、関係する機能性に応じて、逆の順番で実行することも時に可能である。ブロック図または流れ図あるいはその両方の各ブロック、ブロック図または流れ図あるいはその両方のブロックの組合せは、指定された機能または動作を実行するあるいは特殊用途ハードウェアおよびコンピュータ命令の組合せを実施する特殊用途のハードウェアに基づくシステムによって、実装することができることにも留意されたい。
【００５９】
本主題は、１つまたは複数のコンピュータで実行するコンピュータ・プログラム製品のコンピュータ実行可能命令の一般的状況において前述されているが、本開示はまた、他のプログラム・モジュールと組み合わせて実装することができるまたは実装され得ることが当業者には認識されよう。一般に、プログラム・モジュールは、特定のタスクを実行するまたは特定の抽象的データ・タイプを実装するあるいはその両方を行うルーチン、プログラム、構成要素、データ構造体などを含む。さらに、本発明のコンピュータ実装される方法は、シングル・プロセッサまたはマルチプロセッサ・コンピュータ・システム、ミニ計算デバイス、メインフレーム・コンピュータ、ならびにコンピュータ、ハンドヘルド計算デバイス（たとえば、ＰＤＡ、電話）、マイクロプロセッサに基づくまたはプログラム可能な家庭用または産業用エレクトロニクスなどを含む、他のコンピュータ・システム構成と実施され得ることが、当業者には理解されよう。示されている態様はまた、通信ネットワークを通してリンクされたリモート処理デバイスによってタスクが実行される分散型計算環境において実施され得る。しかしながら、本開示の、すべてではなくても、いくつかの態様は、スタンドアロンのコンピュータで実施することができる。分散型計算環境において、プログラム・モジュールは、ローカル・メモリ記憶デバイスおよびリモート・メモリ記憶デバイスの両方に位置し得る。
【００６０】
本願では、「構成要素」、「システム」、「プラットフォーム」、「インターフェース」などの用語は、コンピュータ関連エンティティまたは１つまたは複数の特定の機能性を有する動作機械に関連するエンティティを指し得るまたは含み得るあるいはその両方である。本明細書で開示されるエンティティは、ハードウェア、ハードウェアとソフトウェアとの組合せ、ソフトウェア、あるいは実行中のソフトウェアでもよい。たとえば、構成要素は、プロセッサで実行するプロセス、プロセッサ、オブジェクト、実行ファイル、実行のスレッド、プログラムまたはコンピュータあるいはその組合せでもよいが、これらに限定されない。例示として、サーバで実行するアプリケーションとサーバとの両方が構成要素になり得る。１つまたは複数の構成要素が、プロセスまたは実行のスレッドあるいはその両方に存在することができ、構成要素は、１つのコンピュータ上に局在化され得るまたは２つ以上のコンピュータの間で分散され得るあるいはその両方が可能である。もう１つの例では、それぞれの構成要素は、様々なデータ構造体が記憶された様々なコンピュータ可読媒体から実行することができる。構成要素は、１つまたは複数のデータ・パケット（たとえば、ローカル・システム、分散型システムにおいて、または信号を介して他のシステムとインターネットなどのネットワークを横断して、あるいはその組合せで別の構成要素と相互作用する１つの構成要素からのデータ）を有する信号によるような、ローカルまたはリモートあるいはその両方のプロセスを介して通信することができる。もう１つの例として、構成要素は、プロセッサによって実行されるソフトウェアまたはファームウェア・アプリケーションによって動作させられる、電気または電子回路によって動作させられる機械部分によって提供される特定の機能性を有する装置でもよい。そのような場合、プロセッサは、装置の内部または外部でもよく、ソフトウェアまたはファームウェア・アプリケーションの少なくとも一部を実行することができる。さらにもう１つの例として、構成要素は、機械部分なしに電子構成要素を介して特定の機能性をもたらす装置でもよく、ここで、電子構成要素は、プロセッサあるいは電子構成要素の機能性を少なくとも部分的に与えるソフトウェアまたはファームウェアを実行するための他の手段を含み得る。一態様では、構成要素は、仮想機械、たとえばクラウド計算システム内の、を介して電子構成要素をエミュレートすることができる。
【００６１】
加えて、「または」という用語は、排他的「または」ではなくて包含的「または」を意味することが意図されている。すなわち、別段の指定がない限り、または文脈から明らかでない限り、「ＸがＡまたはＢを使用する」は、自然な包含的置換のいずれも意味することが意図されている。すなわち、ＸがＡを使用する、ＸがＢを使用する、またはＸがＡとＢの両方を使用する場合、そのとき、「ＸがＡまたはＢを使用する」は、前述の場合のいずれの場合にも満たされる。さらに、本明細書および添付の図面において使用される冠詞「ａ」および「ａｎ」（１つのおよび一）は、別段の指定がない限り、または文脈から単数形を対象とすることが明らかでない限り、「１つまたは複数の」を意味するものと一般に解釈されるべきである。本明細書では、「例」または「例示」あるいはその両方の用語は、例、場合、または説明の役割を果たすことを意味するために使用される。誤解を避けるために、本明細書で開示される主題は、そのような例によって制限されない。加えて、「例」または「例示」あるいはその両方として本明細書に記載されたいずれの態様または設計も、他の態様または設計より好ましいまたは有利なものとして必ずしも解釈されるべきではなく、当業者に知られている同等の例示的構造体および技法を除外することも意図されていない。
【００６２】
本明細書において使用されるとき、「プロセッサ」という用語は、シングルコア・プロセッサ、ソフトウェア・マルチスレッド実行能力を有するシングル・プロセッサ、マルチコア・プロセッサ、ソフトウェア・マルチスレッド実行能力を有するマルチコア・プロセッサ、ハードウェア・マルチスレッド技術を有するマルチコア・プロセッサ、パラレル・プラットフォーム、および分散型共有メモリを有するパラレル・プラットフォームを備えるが、これらに限定されない、任意の計算処理装置またはデバイスを実質的に指し得る。加えて、プロセッサは、集積回路、特定用途向け集積回路（ＡＳＩＣ）、デジタル信号プロセッサ（ＤＳＰ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、プログラマブル論理コントローラ（ＰＬＣ）、複合プログラマブル論理デバイス（ＣＰＬＤ）、ディスクリート・ゲートまたはトランジスタ論理、ディスクリート・ハードウェア構成要素、または本明細書に記載の機能を実行するように設計されたその任意の組合せを指し得る。さらに、プロセッサは、使用空間を最適化するまたはユーザ機器のパフォーマンスを上げるために、分子および量子ドットに基づくトランジスタ、スイッチおよびゲートなどの、しかしこれらに限定されない、ナノスケール・アーキテクチャを活用することができる。プロセッサはまた、計算処理装置の組合せとして実装することができる。本開示では、「ストア」、「ストレージ」、「データ・ストア」、「データ・ストレージ」、「データベース」などの用語、および構成要素の動作および機能性に関連する実質的にすべての他の情報記憶構成要素は、「メモリ構成要素」、「メモリ」において具現化されたエンティティ、またはメモリを備える構成要素を指すために使用される。メモリまたは本明細書に記載のメモリ構成要素あるいはその両方は、揮発性メモリまたは不揮発性メモリのいずれでもよく、あるいは揮発性と不揮発性の両方のメモリを含み得ることを理解されたい。例として、限定ではなく、不揮発性メモリは、読取り専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、電気的にプログラム可能なＲＯＭ（ＥＰＲＯＭ）、電気的に消去可能なＲＯＭ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ（ＲＡＭ）（たとえば、強誘電ＲＡＭ（ＦｅＲＡＭ：ferroelectric RAM））を含み得る。揮発性メモリは、たとえば、外部キャッシュメモリとして動作することができる、ＲＡＭを含み得る。例として、そして限定ではなく、ＲＡＭは、シンクロナスＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、ダブル・データ・レートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）、拡張ＳＤＲＡＭ（ＥＳＤＲＡＭ）、Ｓｙｎｃｈｌｉｎｋ  ＤＲＡＭ（ＳＬＤＲＡＭ）、ダイレクト・ラムバスＲＡＭ（ＤＲＲＡＭ）、ダイレクト・ラムバス・ダイナミックＲＡＭ（ＤＲＤＲＡＭ）、およびラムバス・ダイナミックＲＡＭ（ＲＤＲＡＭ）などの多数の形で利用可能である。加えて、本明細書に記載のシステムまたはコンピュータ実装される方法の開示されているメモリ構成要素は、これらのおよび任意の他の適切なタイプのメモリを、これらに限定されることなく、含むことが意図されている。
【００６３】
前述されているものは、システムおよびコンピュータ実装される方法の単なる例を含む。本開示の説明を目的として構成要素またはコンピュータ実装される方法のあらゆる考えられる組合せを記述することは、もちろん、不可能であり、本開示の多数のさらなる組合せおよび置換が可能であることが当業者には認識され得る。さらに、「含む」、「有する」、「所有する」などの用語が、詳細な説明、請求項、付属書および図面で使用される範囲で、そのような用語は、請求において暫定的単語として使用されるときに「備える」が解釈されるような、「備える」という用語と類似の形で包含的であることが意図されている。
【００６４】
様々な実施形態の記述が、説明を目的として提示されているが、包括的であることまたは開示される実施形態に制限されることは意図されてない。多数の修正形態および変更形態が、記載された実施形態の範囲および思想を逸脱することなく、当業者には明らかとなろう。本明細書で使用される専門用語は、実施形態の原理、市場で見つかる技術と比べた実際的応用または技術的改良、を最もよく説明するために、あるいは本明細書で開示される実施形態を当業者が理解できるようにするために、選択された。
【図１】
2020535519.tif 000003
【図２】
2020535519.tif 000004
【図３】
2020535519.tif 000005
【図４】
2020535519.tif 000006
【図５】
2020535519.tif 000007
【図６】
2020535519.tif 000008
【図７】
2020535519.tif 000009
【図８】
2020535519.tif 000010
【図９】
2020535519.tif 000011
【図１０】
2020535519.tif 000012
【図１１】
2020535519.tif 000013
【図１２】
2020535519.tif 000014
【手続補正書】
【提出日】令和2年4月20日(2020.4.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
システムであって、
コンピュータ実行可能構成要素を記憶するメモリと、
前記メモリに記憶されたコンピュータ実行可能構成要素を実行するプロセッサと、
を備え、前記コンピュータ実行可能構成要素が、
ソース回路に対応するソフトウェア・コードに関連するインストルメンテーション命令情報に基づいてインストルメント化された回路内に量子コンピュータの前記ソース回路を再書込みする回路再書込み構成要素、および、
前記インストルメント化された回路を実行して測定データを生み出す実行構成要素
を備える、システム。
【請求項２】
前記回路再書込み構成要素が、前記インストルメンテーション命令情報に基づく回路再書込みルールを適用する、請求項１に記載のシステム。
【請求項３】
前記回路再書込み構成要素が、前記インストルメンテーション命令情報に由来するデッド・コードを取り除くために、回路再書込みルールを適用する、請求項１又は２に記載のシステム。
【請求項４】
前記インストルメンテーション命令情報が、前記ソフトウェア・コードにおいて２つの量子回路命令の間に挿入されたブレーク・ポイントを含む、請求項１乃至３のいずれかに記載のシステム。
【請求項５】
前記インストルメンテーション命令情報が、前記ソフトウェア・コード内の対象の量子コード・セグメントの前に挿入された開始ブレークポイントと、前記対象の量子コードセグメントの後に挿入された終了ブレークポイントとを含む、請求項１乃至４のいずれかに記載のシステム。
【請求項６】
前記量子コンピュータの１つまたは複数の内部状態またはプロセスに対応する情報を推論するために前記測定データを評価する統計的推定手続きをさらに含む、請求項１乃至５のいずれかに記載のシステム。
【請求項７】
前記統計的推定手続きが、状態トモグラフィおよび再構成を含む、請求項６に記載のシステム。
【請求項８】
前記統計的推定手続きが、プロセス・トモグラフィおよび再構成を含む、請求項６又は７に記載のシステム。
【請求項９】
システムであって、
コンピュータ実行可能構成要素を記憶するメモリと、
前記メモリに記憶されたコンピュータ実行可能構成要素を実行するプロセッサと、
を備え、前記コンピュータ実行可能構成要素が、
ソース量子回路に対応するソフトウェア・コードに挿入されたインストルメンテーション命令情報に基づいて前記ソース量子回路をインストルメント化された回路内に再書込みする回路再書込み構成要素、
前記インストルメント化された回路を実行して前記ソース量子回路内のキュビットの異なる状態データに対応する測定データを取得する実行構成要素、および、
前記測定データを処理して前記ソース量子回路に関連する量子コンピュータの１つまたは複数の内部状態またはプロセスに対応する生成された情報を出力する統計的推定構成要素
を備える、システム。
【請求項１０】
前記回路再書込み構成要素が、前記インストルメント化された回路の少なくとも１つのインストルメント化された回路からデッド・コードを取り除く、請求項９に記載のシステム。
【請求項１１】
プロセッサを動作可能なように結合した古典コンピュータによって実装される方法であって、前記プロセッサの動作が、
量子コンピュータに関連付けられているソース量子回路をインストルメント化するインストルメンテーション命令情報に基づいて、インストルメント化された回路内に前記ソース量子回路を、自動的に再書込みすることと、
前記インストルメント化された回路をデバイスによって実行して、前記ソース回路内の異なる位置に対応する測定データを取得することと、
前記測定データを前記デバイスによって出力することと
を含む、方法。
【請求項１２】
状態トモグラフィを介して前記測定データを統計的に評価することをさらに含む、請求項１１に記載の方法。
【請求項１３】
プロセス・トモグラフィを介して前記測定データを統計的に評価することをさらに含む、請求項１１又は１２に記載の方法。
【請求項１４】
ブレークポイントが１つまたは複数のキュビットのパーティションを含む、前記ソース量子回路に対応するソフトウェアに挿入された前記ブレークポイントに対応する情報を受信することをさらに含む、請求項１１乃至１３のいずれかに記載の方法。
【請求項１５】
開始ブレークポイントが、前記ソース量子回路に対応するソフトウェアにおいて対象の量子コード・セグメントの前に挿入され、終了ブレークポイントが、対象の前記量子コード・セグメントの後に挿入される、前記開始ブレークポイントおよび前記終了ブレークポイントに対応する情報を受信することをさらに含む、請求項１１乃至１４のいずれかに記載の方法。
【請求項１６】
前記インストルメント化された回路内に前記ソース量子回路を前記自動的に再書込みすることが、前記インストルメント化された回路のうちの少なくとも１つからデッド・コードを削除することを含む、請求項１１乃至１５のいずれかに記載の方法。
【請求項１７】
前記ソース量子回路を前記インストルメント化された回路内に前記自動的に再書込みすることが、ブレークポイントに対して前記回路を介して前方または後方にインストルメンテーションの１つまたは複数の影響を伝搬することによって１つまたは複数のゲートを取り除くことを含む、請求項１１乃至１６のいずれかに記載の方法。
【請求項１８】
プロセッサを動作可能なように結合したコンピュータによって実装される方法であって、前記プロセッサの動作が、
ソース量子回路に対応するソフトウェア・コードに挿入されたインストルメンテーション命令情報に基づいてインストルメント化された回路内に前記ソース量子回路を、再書込みすることと、
前記インストルメント化された回路を前記システムによって実行して、前記ソース量子回路内のキュビットの異なる状態データに対応する測定データを取得することと、
前記システムによって前記測定データを処理して、前記ソース量子回路に関連する量子コンピュータの１つまたは複数の内部状態またはプロセスに対応する生成された情報を出力することと
を含む、方法。
【請求項１９】
前記ソース量子回路を前記インストルメント化された回路内に前記再書込みすることが、前記インストルメンテーション命令情報に由来するデッド・コードを取り除くことを含む、請求項１８に記載の方法。
【請求項２０】
前記測定データを前記処理することが、状態トモグラフィおよび再構成を実行すること、あるいはプロセス・トモグラフィおよび再構成を実行することを含む、請求項１８又は１９に記載の方法。
【請求項２１】
量子コンピュータ・ソフトウェアのデバッギングを円滑にする古典コンピュータのコンピュータ・プログラムであって、実行されることで前記古典コンピュータのプロセッサに、
ソース量子回路に対応するソフトウェア・コードに挿入されたインストルメンテーション命令情報に基づいて前記ソース量子回路をインストルメント化された回路に自動的に再書込みすること、
前記インストルメント化された回路を実行して前記ソース量子回路内のキュビットの異なる状態データに対応する測定データを取得すること、および、
前記測定データを処理して前記ソース量子回路に関連する量子コンピュータの１つまたは複数の内部状態またはプロセスに対応する生成された情報を出力すること
を行わせる、コンピュータ・プログラム。
【請求項２２】
前記回路を介して前方または後方にインストルメンテーションの１つまたは複数の影響を伝搬することによって、その状態が前記インストルメンテーションに因果的につながれ得る１つまたは複数のキュビットに対応するデッド・コードを、前記ソース量子回路を自動的に再書込みすることの一部として、取り除くこと
をさらに行わせる、請求項２１に記載のコンピュータ・プログラム。
【請求項２３】
アプリケーション・プログラミング・インターフェースを介して前記インストルメンテーション命令情報を入力すること
をさらに行わせる、請求項２１又は２２に記載のコンピュータ・プログラム。
【請求項２４】
アプリケーション・プログラミング・インターフェースを介して１つまたは複数の分析パラメータを入力すること
をさらに行わせる、請求項２１乃至２３のいずれかに記載のコンピュータ・プログラム。
【請求項２５】
アプリケーション・プログラミング・インターフェースを介してグラフィカル・データとして前記測定データまたは前記生成された情報を出力すること
をさらに行わせる、請求項２１乃至２４のいずれかに記載のコンピュータ・プログラム。
【国際調査報告】
2020535519.tif 000015
2020535519.tif 000016