(57)【要約】  量子回路の局所最適化を容易にする技術が提供される。一実施例では、コンピュータ実装方法が、プロセッサに動作可能に結合されたデバイスによって、量子回路内のキュービットのそれぞれのペア間の量子ゲートのそれぞれの数に従って量子回路に対応する第１の行列の行列要素にそれぞれの重みを加えることと、上記デバイスによって、行列要素のそれぞれの重みに基づいて第１の行列を第２の行列に変換することと、上記デバイスによって、第２の行列に従って量子回路内のそれぞれのキュービットの順序を置換し、その結果として置換量子回路とすることとを含む。
2022501731.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実装方法であって、
プロセッサに動作可能に結合されたデバイスによって、量子回路内のキュービットのそれぞれのペア間の量子ゲートのそれぞれの数に従って、前記量子回路に対応する第１の行列の行列要素にそれぞれの重みを加えることと、
前記デバイスによって、前記行列要素の前記それぞれの重みに基づいて前記第１の行列を第２の行列に変換することと、
前記デバイスによって、前記第２の行列に従って前記量子回路内のそれぞれのキュービットの順序を置換し、その結果として置換量子回路とすることとを含むコンピュータ実装方法。
【請求項２】
前記変換することは、
前記行列要素の前記それぞれの重みに基づいてキュービットの順序付きリストを生成することと、
前記キュービットの順序付きリストに基づいて前記第１の行列を前記第２の行列に変換することとを含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記生成することは、
前記キュービットの順序付きリスト内の第１のキュービットとして、第１の数のキュービット間接続と第１の統合行列要素重み付けとを有する前記量子回路内のキュービットを選択することと、
それぞれ、キュービット間接続の前記第１の数および前記第１の統合行列要素重み付けから、キュービット間接続の数を増やし、統合行列要素重み付けを減らすことによって、前記キュービットの順序付きリストにキュービットを格納することとを含む、請求項２に記載のコンピュータ実装方法。
【請求項４】
前記変換することは、
前記キュービットの順序付きリストを逆転させて、キュービットの逆転順序付きリストとすることと、
前記キュービットの逆転順序付きリストに基づいて前記第１の行列を前記第２の行列に変換することとをさらに含む、請求項２に記載のコンピュータ実装方法。
【請求項５】
前記生成することは、
幅優先探索によって前記第１の行列を前記第２の行列に変換することを含む、請求項２に記載のコンピュータ実装方法。
【請求項６】
請求項１ないし５のいずれかに記載の方法のすべてのステップを実施するようになされた手段を含むシステム。
【請求項７】
コンピュータ・プログラムであって、前記コンピュータ・プログラムがコンピュータ・システム上で実行されると、請求項１ないし５のいずれかに記載の方法のすべてのステップを実施するための命令を含むコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は量子コンピューティングに関し、より詳細には、量子回路の設計および最適化に関する。
【背景技術】
【０００２】
コンピュータ技術が進歩し、従来型コンピューティング・デバイスの物理的スケールが縮小するにつれて、コンピューティング技術が従来型（古典的）コンピュータの物理的限界を超えて進歩し続けることができるようにする技法として量子コンピューティングに対する関心が高まっている。
【０００３】
量子コンピューティング・アルゴリズムは、まず、それぞれの量子ビット（キュービット）と、キュービットのペア間の相互作用を容易にするそれぞれの量子ゲートとを含む量子回路を構築し、その後、構築された量子回路を量子コンピューティング・アーキテクチャにマッピングすることによって設計することができる。現在および近い将来のハードウェア上で量子アルゴリズムを実行するためには、量子回路を、物理的局所接続性が限られていることがある量子デバイスに効率的にマッピングすることが望ましい。
【０００４】
量子アルゴリズムを特定のハードウェア・アーキテクチャにコンパイルする効率は、例えば、コンパイルされるアルゴリズムのゲート数と深度とによって測ることができる。Williamsらの米国特許出願公開第２００６／０１２３３６３号「METHOD AND APPARATUS FOR AUTOMATIC DESIGN OF QUANTUM CIRCUITS」に記載されているように、量子回路のゲート数は、「コンパクト化技法」によって削減することができる。Williamsらの段落８３には以下の記載がある。
「一実施形態は、サブ回路またはゲートあるいはその両方のうちでなくすことができるかまたはよりコンパクトなゲートに書き換えることができるパターンを探索するために、決定回路リダクション演算子を適用する。別の実施形態は、特定のユニタリ行列Ｕの回路を計算するとともに、Ｕの逆行列の回路も計算する。次に、これらの２つの計算された回路を調べていずれがより小さいかを判断し、その回路が使用される。別の実施形態は、コンパクトな回路に到るヒューリスティックな手法を使用する無作為コンパクト化と呼ばれるものである。」
量子回路に付随するゲート数を最適化することに加えて、当技術分野では、例えば回路を大幅には変更されないままとする、局所的相互作用によりハードウェアのための回路を最適化することができる技法が必要である。
【発明の概要】
【０００５】
以下に、本発明の１つまたは複数の実施形態について基本的な理解が得られるようにするための概要を示す。本概要は、主要または重要な要素を特定すること、または、特定の実施形態の範囲または特許請求の範囲を規定することを意図していない。その唯一の目的は、後述のより詳細な説明の前置きとして概念を簡略的な形で示すことである。本明細書に記載の１つまたは複数の実施形態では、量子回路の局所最適化を容易にするシステム、コンピュータ実装方法、装置またはコンピュータ・プログラム製品あるいはこれらの組み合わせについて説明する。
【０００６】
一実施形態によると、システムが、コンピュータ実行可能コンポーネントを記憶するメモリと、メモリに記憶されたコンピュータ実行可能コンポーネントを実行するプロセッサとを含み得る。コンピュータ実行可能コンポーネントは、量子回路におけるキュービットのそれぞれのペア間の量子ゲートのそれぞれの数に従って量子回路に対応する第１の行列の行列要素にそれぞれの重みを加える行列重み付けコンポーネントと、行列要素のそれぞれの重みに基づいて第１の行列を第２の行列に変換するバンド幅削減コンポーネントと、第２の行列に従って量子回路内のそれぞれのキュービットの順序を置換し、置換量子回路とする置換コンポーネントとを含み得る。本実施形態によるシステムは、（例えば、電力消費、必要処理サイクルなどの点で）量子計算動作の効率向上と、量子コンピュータ・ハードウェア上に量子回路を実装する能力の向上という利点などの利点を有する。
【０００７】
特定の実施形態では、バンド幅削減コンポーネントは、それぞれの行列要素のそれぞれの重みに基づいてキュービットの順序付きリストを生成する探索コンポーネントを含むことができ、バンド幅削減コンポーネントは、キュービットの順序付きリストに基づいて第１の行列を第２の行列に変換することができる。本実施形態によるシステムは、量子回路最適化性能の向上という利点などの利点を有する。他の実施形態では、探索コンポーネントは、キュービットの順序付きリスト内の第１のキュービットとして、第１の数のキュービット間接続と第１の統合行列要素重み付けとを有する、量子回路におけるキュービットを選択することができる。探索コンポーネントは、さらに、それぞれ、キュービット間接続の第１の数および第１の統合行列要素重み付けから、キュービット間接続の数を増やし、統合行列要素重み付けを減らすことによって、キュービットの順序付きリストにキュービットを格納することができる。これらの実施形態によるシステムは、量子回路最適化性能のさらなる向上という利点などの利点を有する。さらなる実施形態では、バンド幅削減コンポーネントは、キュービットの順序付きリストを逆転し、それによってキュービットの逆転順序付きリストとすることができ、キュービットの逆転順序付きリストに基づいて第１の行列を第２の行列に変換することができる。これに加えて、またはこれに代えて、バンド幅削減コンポーネントは、幅優先探索によって第１の行列を第２の行列に変換することができる。これらの実施形態によるシステムは、様々な量子回路構成の最適化効率の向上という利点などの利点を有する。さらに他の実施形態では、システムは、置換量子回路のそれぞれのキュービットにＳＷＡＰゲートをマッピングするＳＷＡＰマッピング・コンポーネントを含み得る。本実施形態によるシステムは、関連付けられた量子回路におけるＳＷＡＰゲートまたは付随する物理接続あるいはその両方の削減という利点などの利点を有する。さらに他の実施形態では、第１の行列は第１のバンド幅を有し得、第２の行列は第１のバンド幅より狭い第２のバンド幅を有し得る。本実施形態によるシステムは、量子回路の複雑さを、ほぼ第１のバンド幅と第２のバンド幅との差程度、削減するという利点などの利点を有する。
【０００８】
別の実施形態によると、コンピュータ実装方法が、プロセッサに動作可能に結合されたデバイスによって、量子回路内のキュービットのそれぞれのペア間の量子ゲートのそれぞれの数に従って、量子回路に対応する第１の行列の行列要素にそれぞれの重みを加えることと、デバイスによって、行列要素のそれぞれの重みに基づいて第１の行列を第２の行列に変換することと、デバイスによって、第２の行列に従って量子回路内のそれぞれのキュービットの順序を置換し、その結果として置換量子回路とすることとを含み得る。本実施形態によるコンピュータ実装方法は、（例えば、電力消費、必要処理サイクルなどの点で）量子計算動作の効率向上と、量子コンピュータ・ハードウェア上に量子回路を実装する能力の向上という利点などの利点を有する。
【０００９】
特定の実施形態では、変換することは、それぞれの行列要素のそれぞれの重みに基づいてキュービットの順序付きリストを生成することと、キュービットの順序付きリストに基づいて第１の行列を第２の行列に変換することとを含み得る。本実施形態によるコンピュータ実装方法は、量子回路最適化性能の向上という利点などの利点を有する。他の実施形態では、生成することは、キュービットの順序付きリスト内の第１のキュービットとして、第１の数のキュービット間接続と第１の統合行列要素重み付けとを有する量子回路内のキュービットを選択することと、それぞれ、キュービット間接続の第１の数および第１の統合行列要素重み付けから、キュービット間接続の数を増やし、統合行列要素重み付けを減らすことによって、キュービットの順序付きリストにキュービットを格納することとを含み得る。本実施形態によるコンピュータ実装方法は、量子回路最適化性能のさらなる向上という利点などの利点を有する。さらに他の実施形態では、変換することは、キュービットの順序付きリストを逆転させて、キュービットの逆転順序付きリストとすることと、キュービットの逆転順序付きリストに基づいて第１の行列を第２の行列に変換することとをさらに含み得る。これに加えて、またはこれに代えて、生成することは、幅優先探索によって第１の行列を前記第２の行列に変換することを含み得る。これらの実施形態によるシステムは、様々な量子回路構成の最適化効率の向上という利点などの利点を有する。
【００１０】
さらなる実施形態によると、量子回路の局所最適化のためのコンピュータ・プログラム製品が、プログラム命令が実現されたコンピュータ可読記憶媒体を含み得る。プログラム命令は、処理コンポーネントによって実行可能とすることができ、処理コンポーネントに、量子回路内のキュービットのそれぞれのペア間の量子ゲートのそれぞれの数に従って量子回路に対応する第１の行列の行列要素にそれぞれの重みを加えさせ、行列要素のそれぞれの重みに基づいて第１の量子行列を第２の量子行列に変換させ、第２の行列に従って量子回路内のそれぞれのキュービットの順序を置換させて置換量子回路とさせることができる。本実施形態によるコンピュータ・プログラム製品は、（例えば、電力消費、必要処理サイクルなどの点で）量子計算動作の効率向上と、量子コンピュータ・ハードウェア上に量子回路を実装する能力の向上という利点などの利点を有する。
【００１１】
特定の実施形態では、プログラム命令は、プロセッサに、それぞれの行列要素のそれぞれの重みに基づいてキュービットの順序付きリストを生成させ、キュービットの順序付きリストに基づいて第１の行列を第２の行列に変換させることができる。本実施形態によるコンピュータ・プログラム製品は、量子回路最適化性能の向上という利点などの利点を有する。他の実施形態では、プログラム命令は、プロセッサに、幅優先探索によって第１の行列を第２の行列に変換させることができる。本実施形態によるコンピュータ・プログラム製品は、様々な量子回路構成の最適化効率の向上という利点などの利点を有する。
【００１２】
さらなる実施形態によると、システムが、コンピュータ実行可能コンポーネントを記憶するメモリと、メモリに記憶されたコンピュータ実行可能コンポーネントを実行するプロセッサとを含み得る。コンピュータ実行可能コンポーネントは、量子回路内のキュービットのそれぞれのペア間の量子ゲートのそれぞれの数に従って量子回路に対応するグラフのエッジにそれぞれの重みを加えるグラフ重み付けコンポーネントと、グラフ内の頂点のうちのそれぞれの頂点の次数と、グラフ内のエッジのうちのそれぞれのエッジの重みとに基づいてグラフの頂点を再配置し、それによって修正グラフとするグラフ修正コンポーネントと、修正グラフに従って量子回路内のそれぞれのキュービットの順序を置換し、それによって置換量子回路とする置換コンポーネントとを含み得る。本実施形態によるシステムは、（例えば、消費電力、必要処理サイクルなどの点で）量子計算動作の効率向上と、量子コンピュータ・ハードウェア上に量子回路を実装する能力の向上という利点などの利点を有する。
【００１３】
特定の実施形態では、グラフ修正コンポーネントは、グラフの頂点のうちのそれぞれの頂点の次数と、グラフのエッジのうちのそれぞれのエッジの重みとに基づいてキュービットの順序付きリストを生成する探索コンポーネントと、キュービットの順序付きリストに基づいてグラフの頂点を再配置することができるグラフ修正コンポーネントとを含み得る。本実施形態によるシステムは、量子回路最適化性能の向上という利点などの利点を有する。他の実施形態では、探索コンポーネントは、キュービットの順序付きリスト内の第１のキュービットとして、第１の次数と第１の統合エッジ重みとを有するグラフの頂点に対応するキュービットを選択し、それぞれ、第１の次数と第１の統合エッジ重みから、次数を増大させることと、統合エッジ重みを減少させることとによってキュービットの順序付きリストにキュービットを格納することができる。本実施形態によるシステムは、量子回路最適化性能のさらなる向上という利点などの利点を有する。さらなる実施形態では、グラフ修正コンポーネントは、キュービットの順序付きリストを逆転させて、キュービットの逆転順序付きリストとすることと、キュービットの逆転順序付きリストに基づいてグラフの頂点を再配置することとが可能である。これに加えてまたはこれに代えて、グラフ修正コンポーネントは、幅優先探索によってグラフの頂点を再配置することができる。これらの実施形態によるシステムは、様々な量子回路構成の最適化効率の向上という利点などの利点を有する。
【００１４】
さらに他の実施形態によると、コンピュータ実装方法が、プロセッサに動作可能に結合されたデバイスによって、量子回路内のキュービットのそれぞれのペア間の量子ゲートのそれぞれの数に従って量子回路に対応するグラフのエッジにそれぞれの重みを加えることと、上記デバイスによって、グラフの頂点のうちのそれぞれの頂点の次数とグラフのエッジのうちのそれぞれのエッジの重みとに基づいてグラフの頂点を再配置して、修正グラフとすることと、上記デバイスによって、修正グラフに従って量子回路内のそれぞれのキュービットの順序を置換して、置換量子回路とすることを含み得る。本実施形態によるコンピュータ実装方法は、（例えば、電力消費、必要処理サイクルなどの点で）量子コンピューティング動作の効率向上と、量子コンピュータ・ハードウェア上に量子回路を実装する能力の向上という利点などの利点を有する。
【００１５】
特定の実施形態では、再配置は、グラフの頂点のうちのそれぞれの頂点の次数と、グラフのエッジのうちのそれぞれのエッジの重みとに基づいて、キュービットの順序付きリストを生成することと、キュービットの順序付きリストに基づいてグラフの頂点を再配置することとを含み得る。本実施形態によるコンピュータ実装方法は、量子回路最適化性能の向上という利点などの利点を有する。他の実施形態では、再配置は、キュービットの順序付きリスト内の第１のキュービットとして、第１の次数と第１の統合エッジ重みとを有するグラフの頂点に対応するキュービットを選択することと、それぞれ第１の次数および第１の統合エッジ重みとから、次数を増やすことと統合エッジ重みを減らすこととによってキュービットの順序付きリストにキュービットを格納することとを含み得る。本実施形態によるコンピュータ実装方法は、量子回路最適化性能のさらなる向上という利点などの利点を有する。さらに他の実施形態では、再配置は、幅優先探索によってグラフの頂点を再配置することを含み得る。これらの実施形態によるコンピュータ実装方法は、様々な量子回路構成の最適化効率の向上という利点などの利点を有する。
【図面の簡単な説明】
【００１６】
【図１】本明細書に記載の１つまたは複数の実施形態による、量子回路の局所最適化を容易にするシステムを示すブロック図である。
【図２】本明細書に記載の１つまたは複数の実施形態による局所最適化の前の例示の量子回路を示す図である。
【図３】本明細書に記載の１つまたは複数の実施形態による局所最適化の前の例示のキュービット構成を示す図である。
【図４】本明細書に記載の１つまたは複数の実施形態による、例示の量子ＳＷＡＰゲートを示す図である。
【図５】本明細書に記載の１つまたは複数の実施形態による局所最適化後の、図２の量子回路を示す図である。
【図６】本明細書に記載の１つまたは複数の実施形態による局所最適化後の、図３のキュービット構成を示す図である。
【図７】本明細書に記載の１つまたは複数の実施形態によるそれぞれの量子回路に関連付けられたそれぞれの行列を示す図である。
【図８】本明細書に記載の１つまたは複数の実施形態によるそれぞれの量子回路に関連付けられたそれぞれの行列を示す図である。
【図９】本明細書に記載の１つまたは複数の実施形態による量子回路に対応する行列の最適化を容易にするシステムを示すブロック図である。
【図１０】本明細書に記載の１つまたは複数の実施形態による局所最適化の前の例示の量子回路を示す図である。
【図１１】本明細書に記載の１つまたは複数の実施形態による、図１０の量子回路に関連付けられた行列を示す図である。
【図１２】本明細書に記載の１つまたは複数の実施形態による局所最適化後の、図１０の量子回路を示す図である。
【図１３】本明細書に記載の１つまたは複数の実施形態による、図１２の量子回路に関連付けられた行列を示す図である。
【図１４】本明細書に記載の１つまたは複数の実施形態による量子回路の局所最適化を容易にする別のシステムを示すブロック図である。
【図１５】本明細書に記載の１つまたは複数の実施形態による、図１０の量子回路に関連付けられたグラフを示す図である。
【図１６】本明細書に記載の１つまたは複数の実施形態による、図１２の量子回路に関連付けられたグラフを示す図である。
【図１７】本明細書に記載の１つまたは複数の実施形態による量子回路に対応するグラフの最適化を容易にするシステムを示すブロック図である。
【図１８】本明細書に記載の１つまたは複数の実施形態による局所最適化された量子回路のＳＷＡＰゲートのマッピングを容易にするシステムを示すブロック図である。
【図１９】本明細書に記載の１つまたは複数の実施形態による、それぞれの例示の非限定的処理コンポーネントを示す図である。
【図２０】本明細書に記載の１つまたは複数の実施形態による、それぞれの例示の非限定的処理コンポーネントを示す図である。
【図２１】本明細書に記載の１つまたは複数の実施形態による量子回路の局所最適化を容易にするそれぞれの例示の非限定的コンピュータ実装方法を示す流れ図である。
【図２２】本明細書に記載の１つまたは複数の実施形態による量子回路の局所最適化を容易にするそれぞれの例示の非限定的コンピュータ実装方法を示す流れ図である。
【図２３】本明細書に記載の１つまたは複数の実施形態を実装可能な例示の非限定的動作環境を示すブロック図である。
【発明を実施するための形態】
【００１７】
以下の詳細な説明は例示に過ぎず、実施形態または実施形態の適用もしくは用途、あるいはその両方を限定することを意図していない。また、上記の「背景技術」もしくは「発明の概要」の項、または「発明を実施するための形態」の項に示されているいかなる明示的または暗黙的情報によっても限定されることを意図していない。
【００１８】
以下、１つまたは複数の実施形態について図面を参照しながら説明するが、図面全体を通じて同様の要素を指すために同様の参照番号が使用されている。以下の説明では、１つまたは複数の実施形態をよりよく理解することができるように、説明のために多くの特定の詳細が記載されている。しかし、様々な場合において、１つまたは複数の実施形態はこれらの特定の詳細がなくても実施可能であることは明らかである。
【００１９】
次に図を参照すると、図１は、本明細書に記載の１つまたは複数の実施形態による量子回路の局所最適化を容易にするシステム１００のブロック図を示す。図１に示すように、システム１００は、量子回路に対応する行列（例えば第１の行列）の行列要素にそれぞれの重みを加える行列重み付けコンポーネント１１０を含む。一態様では、行列重み付けコンポーネント１１０によって加えられる重みは、量子回路内のキュービットのそれぞれのペア間の量子ゲートのそれぞれの数に対応し得る。行列重み付けコンポーネント１１０によって処理可能な行列の特定の非限定的な例については、図７、図８、図１１および図１３を参照しながら以下で詳述する。
【００２０】
一態様では、所与の量子回路に対応する行列は、行列重み付けコンポーネント１１０自体によって生成され得るか、またはこれに代えて、行列は、システム１００の外部にある１つまたは複数のコンポーネントを介して行列重み付けコンポーネント１１０に提供され得る。行列は、例えばｎ×ｎ正方疎行列とすることができ、ｎは量子回路内のキュービットの数である。上述のように、行列重み付けコンポーネント１１０は、基礎にある量子回路内のキュービットのそれぞれのペア間の量子ゲートのそれぞれの数に従って、行列のそれぞれの要素に重み付けすることができる。量子回路のキュービットにはインデックス付けすることができ、行列にはそれに応じて値を代入することができる。一例として、行列Ｍの場合、行列要素Ｍｉ，ｊに、インデックスｉを有する第１のキュービットとインデックスｊを有する第２のキュービットとの間の量子ゲートの数に対応する値を代入することができる。互いの間に量子ゲートを有しない回路内のキュービットは、行列において対応する値０またはその他の適切なヌル値あるいはその両方を有し得る。
【００２１】
図１によってさらに示すように、システム１００は、行列重み付けコンポーネント１１０によって処理された行列（例えば第１の行列）を、行列重み付けコンポーネント１１０によって加えられたそれぞれの行列要素のそれぞれの重みに基づいて、第２の、異なる行列に変換することができるバンド幅削減コンポーネント１２０を含む。一態様では、バンド幅削減コンポーネント１２０によって処理された第２の行列は、行列重み付けコンポーネント１１０によって処理された元の行列のバンド幅より小さいバンド幅を有することができ、以下で詳述するように、それによって基礎にある量子回路の簡素度が向上する。
【００２２】
図１のシステム１００は、バンド幅削減コンポーネント１２０によって処理された第２の行列に従って基礎にある量子回路内のキュービットのうちのそれぞれのキュービットの順序を置換し、それによって置換量子回路とすることができる置換コンポーネント１３０をさらに含む。一態様では、行列重み付けコンポーネント１１０と、バンド幅削減コンポーネント１２０と、置換コンポーネント１３０とが共同で動作して、対応する疎行列におけるバンド幅およびプロファイル削減を利用することによって、局所接続性によるハードウェア上の量子回路効率を向上させることができる。それにより、システム１００は、局所相互作用によりハードウェアの量子回路を最適化する問題に対処し、その結果として、従来の技法により作製された量子回路と比較してより簡素またはより効率的あるいはその両方である量子回路を作製することができる解決策が得られる。さらにこれによって、量子コンピュータを高速化し、量子コンピュータの電力使用量を低減し、量子コンピュータによって使用される処理サイクルまたはその他のコンピューティング資源あるいはその両方を削減し、量子ハードウェアなどに量子回路をマッピングするために使用される時間または処理サイクルあるいはその両方を削減することができる。本明細書に示す実施形態のその他の利点も実現可能である。
【００２３】
図２を参照すると、図２００は、図３の図３００に示すような５ビット量子ハードウェア・アーキテクチャにマッピング可能な例示のモジュロ乗算量子回路Ｕ７を示す。図２００によって示すように、モジュロ乗算回路の結果として、キュービット１と２、キュービット０と１、キュービット０と３の間の一連の制御ＮＯＴ（ＣＮＯＴ）ゲートを介した相互作用が生じる。しかし、図３００によって示すように、このハードウェア・アーキテクチャではキュービット０と３は互いに直接接続されていないため、図２００に示す量子回路の図３００に示すアーキテクチャへのマッピングは、キュービット０と３との間のＣＮＯＴゲートを仲介するために、ここではキュービット０と２の間と、キュービット２と３の間に、追加のＳＷＡＰゲートを含むことになる。２つのキュービット間の例示のＳＷＡＰゲートの量子回路図を、図４の図４００に示す。
【００２４】
それに対して、図１に関して上述した技法など、本明細書に記載の１つまたは複数の局所最適化技法を使用することによって、量子回路のそれぞれのキュービットの再ラベル付けまたはその他の方法による再割り当てあるいはその両方を行うことによって、図２００に示す量子回路を置換して、図５の５００によって示す量子回路とすることができる。図５００によって示す量子回路を、図６の図６００によって示すような５ビット量子ハードウェア・アーキテクチャにマッピングすることができる。一態様では、図５００に示す量子回路を図６００に示すようにして量子ハードウェアにマッピングすることで、ハードウェア・アーキテクチャの互いに直接接続されたキュービットのみの間に量子ゲートを設定することができる。さらにこれにより、量子回路によって使用されるＳＷＡＰゲートの数を削減することができる一方、量子回路によって使用される他の量子ゲートの数を変更されないままとすることができる。
【００２５】
図１に戻ると、行列重み付けコンポーネント１１０とバンド幅削減コンポーネント１２０は、量子回路のそれぞれの２キュービット・ゲートを疎行列として処理することができる。このようにして、バンド幅削減コンポーネント１２０は、対応する行列のバンド幅を削減することによって量子回路の局所最適化を容易にすることができる。
【００２６】
図７の図７００および７０２に、バンド幅削減コンポーネント１２０による最適化の前と後の例示の量子回路にそれぞれ対応する疎行列を示す。一態様では、疎行列はＡｉｊと示すことができ、行列Ａｊｉのそれぞれの要素は、対応する回路におけるキュービットｉとｊとの間の２キュービット・ゲートの数に対応し得る。図７００および図７０２によって示す行列では、量子ゲートに関連付けられた要素Ａｉｊが正方形によって表され、量子ゲートに関連付けられていない要素は空白のままとされている。以下の様々な例に関してさらに説明するように、対応するキュービット・ペア間の量子ゲートの異なる数に基づいて、それぞれの行列要素には異なる（例えばより大きい）重みを与えることができる。
【００２７】
一態様では、バンド幅削減コンポーネント１２０は、最初に、行列の非ゼロ要素を主対角線のできるだけ近くに移動し、それによって行列のバンド幅を最小化する行列の行および列の置換を見つけることによって、図７００に示す行列を処理することができる。例えば、最適化前の図７００によって示す行列は、行列全体に空間的に散在する要素を有し、一方、最適化後の図７０２によって示す行列の要素は、（０，０）から（７，７）まで通る対角線（図示せず）として視覚化可能な、行列の主対角線に沿ってほぼ整列されている。それにより、結果の量子回路は、（例えば、図３および図６によって示すアーキテクチャと同様にして）直接隣接するキュービット間の接続を優先することができ、それによって回路に関連付けられたＳＷＡＰゲートの数を削減して量子ハードウェア上の簡素化された回路設計を容易にすることができる。
【００２８】
一態様では、バンド幅削減コンポーネント１２０は、それぞれの非ゼロ要素を行列の主対角線に向かって移動させる対称行列の行および列の置換を見つけるために、任意の適合するアルゴリズムまたはアルゴリズムの組み合わせを使用することができる。例えば、バンド幅削減コンポーネント１２０は、疎ＬＵ（lower-upper）分解におけるメモリ・フットプリントの低減またはｉＬＵ（逆ＬＵ）事前条件付けの安定性増大のため、あるいはその両方のために使用されるものに類似したアルゴリズムを使用することができる。
【００２９】
特定の非限定的な一例として、バンド幅削減コンポーネント１２０は、最低次数のノードまたは頂点から開始し、次数を増やすことによって頂点を並べ替える、カットヒル・マキー並べ替えなどの幅優先探索技法を使用することができる。場合によっては、ソートされた結果の頂点を（例えば逆カットヒル・マキー並べ替えを使用して）逆転させてバンド幅削減性能を向上させることができる。
【００３０】
ただし、バンド幅削減コンポーネント１２０は、量子回路行列のバンド幅を削減するために任意の適合する技法または技法の組み合わせを使用することができることに留意されたい。また、明記されていない限り、本説明も特許請求される主題も、いかなる特定のアルゴリズムにも限定されることを意図していない。
【００３１】
別の態様では、行列重み付けコンポーネント１１０によって加えられ、バンド幅削減コンポーネント１２０によって使用される重みは、複数の量子ゲートに関連付けられたキュービットのペアを互いに隣接して配置することを優先させ、それによって、対応する量子回路に付随するＳＷＡＰゲートの数またはその他の物理的オーバーヘッドあるいはその両方をさらに削減することができる。バンド幅削減コンポーネント１２０によって実行可能な重み付き行列バンド幅削減の図式的一例を、図８の図８００および図８０２によって示す。ここで、図８００および図８０２によって示す行列に関連付けられた量子回路は、回路内の各キュービットが回路において少なくとも１つの量子ゲートを介して互いに接続されるように物理的に構成された５キュービット回路である。したがって、図８００および図８０２に示す行列によって示すように、主対角線の真上にある要素以外の行列の各要素は非ゼロである。
【００３２】
図８によってさらに示すように、それぞれの行列要素には、例えば、重み付けスケールに従って、行列重み付けコンポーネント１１０によって異なる重みを割り当てることができる。ここで、重み付けスケールは、量子回路内のそれぞれのキュービット・ペアに対応する量子ゲートの数に対応し得る。したがって、例えば、重み１の付いた行列要素は、１つの量子ゲートによって接続されたキュービット・ペアに対応することができ、重み２の付いた行列要素は２つの量子ゲートによって接続されたキュービット・ペアに対応することができる、という具合である。
【００３３】
図８００は、バンド幅削減コンポーネント１２０による最適化の前の例示の量子回路行列を示す。標準バンド幅最小化技法は、行列構造のみに作用するため、そのような技法は、主対角線に沿った要素以外の行列の各要素が非ゼロであるために、図８００に示す行列を変化させないことになる。それに対して、図８に示すような要素重みを使用することによって、バンド幅削減コンポーネント１２０は、キュービット間の反復する相互作用を優先することにより、追加的な局所最適化を容易にすることができる。さらにこれによって、量子回路における隣接キュービット間で共用される量子ゲートの数を増やすことができ、それによって、回路に付随するＳＷＡＰ数またはその他の物理的オーバーヘッドあるいはその両方を低減することができる。
【００３４】
バンド幅削減コンポーネント１２０による最適化後の重み付き量子回路行列の一例を、図８０２によって示す。図８０２が示すように、バンド幅削減コンポーネント１２０は、行列の最大重み要素を主対角線に向かって移動させることができ、それによって、キュービット・ペア間の反復相互作用によりよく対応するように、対応する量子回路内のキュービットを再配置することができる。
【００３５】
次に図９を参照すると、本明細書に記載の１つまたは複数の実施形態による量子回路に対応する行列の最適化を容易にするシステム９００のブロック図が示されている。説明を簡潔にするために、本明細書に記載の他の実施形態で採用されている同様の要素の繰り返しの説明は省く。図９に示すように、システム９００は、図１に関して上述したように動作可能なバンド幅削減コンポーネント１２０を含む。一態様では、バンド幅削減コンポーネント１２０は、例えば行列重み付けコンポーネント１１０によって割り当てられた行列要素のそれぞれの重みに基づいてキュービットの順序付きリスト９２０を生成することができる探索コンポーネント９１０を含み得る。次に、バンド幅削減コンポーネント１２０は、探索コンポーネント９１０によって生成された順序付きリスト９２０に基づいて、行列重み付けコンポーネント１１０によって処理された元の（第１の）行列を最適化された（第２の）行列に変換することができる。
【００３６】
一態様では、探索コンポーネント９１０は、順序付きリスト９２０内の第１のキュービットとして、第１の数のキュービット間接続と第１の統合行列要素重み付けとを有する、関連付けられた量子回路におけるキュービットを選択することによって、順序付きリスト９２０の生成を開始することができる。非限定的な一例として、探索コンポーネント９１０は、最小のキュービット間接続数（例えば、最低次数を有する行列重み付けコンポーネント１１０によって重み付けされた行列の行に対応する）と最小統合重みとを有する、量子回路内のキュービットを選択することができる。次に、探索コンポーネント９１０は、それぞれ、キュービット間接続の第１の数と第１の統合行列要素重み付けとから、キュービット間接続の数を増やし、統合行列要素重み付けを減らすことによって、順序付きリスト９２０にキュービットを格納することができる。別の言い方をすれば、探索コンポーネント９１０は、行列重み付けコンポーネントによって重み付けされた行列を参照し、最低次数および最低重みを有するキュービットから行列の走査を開始することができ、キュービットが最も低い次数および最も高い重みの順に並べ替え、例えば最低次数から最高次数の順および最高重みから最低重みの順に並べ替えられる探索走査によって、順序付きリスト９２０にキュービットを追加することができる。
【００３７】
別の態様では、探索コンポーネント９１０は、生成された順序付きリスト９２０を逆転させて、逆転順序付きリストを得ることができる。次に、バンド幅削減コンポーネント１２０が、逆転順序付きリストを使用して元の量子回路行列を最適化された行列に変換することができる。図７に関する非限定的な一例として、探索コンポーネント９１０は、カットヒル・マキー探索などの１つまたは複数の探索アルゴリズムを使用して、図７００によって示す元の行列に基づいて順序付きリスト［０，４，２，１，５，７，３，６］を生成することができる。探索コンポーネント９１０は、次にこのリストを逆転させて、例えば［６，３，７，５，１，２，４，０］を得ることができ、これをバンド幅削減コンポーネント１２０が、逆転リストに従ってリストによって指定されている順序で行列の要素を並べ替えるために使用することができる。したがって、例えば、バンド幅削減コンポーネントは、図７００に示されている要素６を図７０２に示されている要素０に、図７００に示されている要素３を図７０２に示されている要素１に、という具合に、行列の各要素が再割り当てされるまで、再割り当てすることができる。さらなる一態様では、バンド幅削減コンポーネント１２０は、例えば、どちらの順序付きリストが行列のバンド幅をよりよく削減するかの判断に基づいて、元の順序付きリスト９２０または逆転順序付きリストのいずれかを使用することができる。
【００３８】
上述のように、探索コンポーネント９１０は、例えば行列重み付けコンポーネント１１０によって加えられた行列要素重みを組み込むことによって、従来技術と比較して向上した局所量子回路最適化を提供することができる。例えば、図８に関して上述したように、探索コンポーネント９１０は、次数と重みの両方に従ってキュービットの順序付きリスト９２０を生成することができ、その結果、次数のみで動作する技法と比較して回路性能を向上させることができる図８０２に示すような最適化された量子回路行列とすることができる。様々な実施例において、探索コンポーネント９１０は、図８に関して示したようにして重み付き行列走査を使用することにより、量子回路のゲート数または深度あるいはその両方を最大１桁、削減することができる。
【００３９】
一態様では、探索コンポーネント９１０は、加重カットヒル・マキー探索など、１つまたは複数の幅優先探索技法によって順序付きリスト９２０を生成することができる。ただし、探索コンポーネント９１０は、順序付きリスト９２０の生成または関連付けられた行列の変換あるいはその両方のために、任意の適合する探索アルゴリズムまたはアルゴリズムの組み合わせを使用することができることを理解されたい。
【００４０】
次に図１０ないし図１３を参照すると、本明細書に記載の様々な態様により実行可能な量子回路最適化の特定の非限定的な例が示されている。具体的には、図１０ないし図１３は、当技術分野においてはサイモンのアルゴリズムが知られているためにここで例として使用する、サイモンのアルゴリズムの量子回路のために実行可能なそれぞれの回路最適化を示している。
【００４１】
図１０の図１０００に、サイモンのアルゴリズムのための従来の量子回路を示す。ここでは、この回路は２６個の量子ゲートを含み、ゲート深度は１４である。図１０００によって示す回路は、図１１の図１１００により行列形式で表される。図１１００に示すように、図１０００に示す回路に対応する行列は、３７の重み付きプロファイル（例えば、行列内のより高い重み付き要素が主対角線にどの程度移動されているかの程度の測度）を備えたバンド幅７を有する。
【００４２】
一態様では、上述のような１つまたは複数の回路最適化技法を実行することによって、図１０の図１０００によって示す量子回路を（例えば置換コンポーネント１３０によって）図１２の図１２００によって示す量子回路に変換することができる。上述の操作の結果、図１２００に示す回路は依然として２６個の量子ゲートを使用し得るが、回路深度を１４から１０に低減することができる。さらにこれによって、図１２００によって示す回路を量子ハードウェアにマッピングするために使用されるＳＷＡＰゲートまたはその他の相互接続あるいはその両方の数を大幅に削減することができる。例えば、量子ハードウェア実装形態の一例では、ハードウェアにマッピングされるゲート数（ＳＷＡＰゲートおよびその他の類似のゲートを含む）を、図１０００によって示す回路と比較して約３３％削減することができ、同様に、回路深度を約４２％削減することができる。図１２００によって示す回路は、図１３の図１３００により行列形式で表される。図１１００によって示す行列と比較すると、行列バンド幅を７から４に削減することができ、重み付きプロファイルを３７から２３に削減することができる。
【００４３】
次に図１４を参照すると、本明細書に記載の様々な実施形態による量子回路の局所最適化を容易にする別のシステム１４００のブロック図が示されている。説明を簡潔にするために、本明細書に記載の他の実施形態で採用されている同様の要素の繰り返しの説明は省く。図１４に示すように、システム１４００は、量子回路内のキュービットのそれぞれのペア間の量子ゲートのそれぞれの数に従って量子回路に対応するグラフのエッジにそれぞれの重みを加えることができる、グラフ重み付けコンポーネント１４１０を含む。
【００４４】
一態様では、所与の量子回路に対応するグラフを、グラフ重み付けコンポーネント１４１０自体によって生成可能であるか、またはこれに代えて、グラフは、システム１４００の外部にある１つまたは複数のコンポーネントを介してグラフ重み付けコンポーネント１４１０に提供することができる。グラフは、例えば、回路内のキュービットに対応するそれぞれの頂点と、量子回路内のキュービットのそれぞれのペアによって共用される量子ゲートに対応するそれぞれのエッジとを含み得る。一実施例では、グラフ重み付けコンポーネント１４１０は、基礎にある量子回路におけるキュービットのそれぞれのペア間の量子ゲートのそれぞれの数に従ってグラフのそれぞれのエッジに重み付けすることができる。量子回路のキュービットは、インデックス付けされることができ、グラフにはそれに応じて値を代入することができる。
【００４５】
一態様では、量子回路に対応するグラフの生成または重み付けあるいはその両方のためにグラフ重み付けコンポーネント１４１０によって使用される技法は、行列重み付けコンポーネント１１０に関して上述した行列の要素の生成または重み付けあるいはその両方のために使用されるものと同様とすることができる。特定の非限定的な一例として、図１５の図１５００に、図１０の図１０００によって示されるようなサイモンのアルゴリズムのための量子回路のグラフ表現を示す。上述のように、図１５００によって示されるグラフは、基礎にある量子回路内のそれぞれのキュービットに対応する頂点と、回路内のそれぞれの量子ゲートを表すエッジとを含み得る。図１０００においてインデックス１および６の付いたキュービットは２つの量子ゲートを介して接続されているため、図１５００における頂点１と６との間のエッジにはグラフ重み付けコンポーネント１４１０によって重み２が与えられ得る。この重み付けは、図１５００では頂点１と６とを接続する二重線で表されている。ただし、この表現は単に例示を目的としたものに過ぎず、重みはグラフ内のそれぞれのエッジに任意の適合する方式で加えることができることを理解されたい。
【００４６】
図１４に戻ると、システム１４００は、グラフ重み付けコンポーネント１４１０によって生成または処理あるいはその両方が行われたグラフ内の頂点を再配置し、修正グラフとすることができるグラフ修正コンポーネント１４２０をさらに含む。一態様では、グラフ修正コンポーネント１４２０は、グラフ内のそれぞれの頂点の次数（例えばエッジを介して所与の頂点に接続されている頂点の数）、グラフ内のそれぞれのエッジの重み、またはその他の適切な因子あるいはこれらの組み合わせに基づいて、グラフ内の頂点を再配置することができる。図１４に示すシステム１４００は、修正された行列について図１に関して上述したのと同様にして、修正されたグラフに従って量子回路内のキュービットのうちのそれぞれのキュービットの順序を置換することができる置換コンポーネント１３０をさらに含み得る。一態様では、システム１４００は、局所相互作用によりハードウェアのための量子回路を最適化するという問題に対処し、その結果として、従来の技術により作製された量子回路と比較して、より簡素またはより効率的あるいはその両方の量子回路を作製することができる解決策が得られる。
【００４７】
一態様では、グラフ修正コンポーネント１４２０は、１つまたは複数のグラフ再ラベル付け技法によってグラフ内の頂点を再配置することができる。より具体的には、グラフ修正コンポーネント１４２０は、グラフ内のそれぞれの頂点に付けられたラベル、そしてさらには量子回路内の対応するキュービットを再配置することができ、一方、グラフの基礎にある物理構造はその他の点では変更されないままとすることができる。非限定的な一例として、図１６の図１６００に、グラフ修正コンポーネント１４２０による処理後の図１５００によって示されるグラフを示す。図１６００で示すように、グラフ修正コンポーネント１４２０は、グラフの構造自体には物理的変更を加えずに、基礎にある量子回路に関連付けられた局所接続を最適化するために、グラフ内の頂点に再ラベル付けすることができる。一態様では、図１６００によって示されるグラフ構造の結果として、（例えば、置換コンポーネント１３０により）図１２の図１２００によって示されるものと類似した量子回路となり得る。
【００４８】
次に図１７を参照すると、本明細書に記載の１つまたは複数の実施形態による量子回路に対応するグラフの最適化を容易にするシステム１７００のブロック図が示されている。説明を簡潔にするために、本明細書に記載の他の実施形態で採用されている同様の要素の繰り返しの説明は省く。図１７に示すように、システム１７００は、図１４に関して上述したように動作可能なグラフ修正コンポーネント１４２０を含む。一態様では、グラフ修正コンポーネント１４２０は、グラフ内のそれぞれの頂点の次数と、例えばグラフ重み付けコンポーネント１４１０によってそれらの頂点に加えられたそれぞれの重みとに基づいてキュービットの順序付きリスト１７２０を生成することができる探索コンポーネント１７１０を含み得る。次に、グラフ修正コンポーネント１４２０は、探索コンポーネント１７１０によって生成された順序付きリスト１７２０に基づいて、例えば、図１５００および図１６００によって示すようにしてグラフ内の頂点に再ラベル付けすることによって、グラフ内の頂点を再配置することができる。
【００４９】
一態様では、探索コンポーネント１７１０は、順序付きリスト１７２０内の第１のキュービットとして、第１の次数と第１の統合エッジ重みとを有するグラフ内の頂点に対応するキュービットを選択することによって、順序付きリスト１７２０の生成を開始することができる。非限定的な一例として、探索コンポーネント１７１０は、最低次数（そしてさらには最小キュービット間接続数）と、その頂点に接続されたエッジに関連付けられた最低合計エッジ重みとを有するグラフ内の頂点に対応する量子回路内のキュービットを選択することができる。次に、探索コンポーネント１７１０は、それぞれ、第１の次数および第１の統合エッジ重みから、次数を増やし、統合重みを減らすことによって、順序付きリスト１７２０にキュービットを格納することができる。別の態様では、探索コンポーネント１７１０は、生成された順序付きリスト１７２０を逆転して逆転順序付きリストを得ることができる。その後、グラフ修正コンポーネント１４２０が、この逆転順序付きリストを使用して量子回路グラフのそれぞれのノードの再ラベル付けまたは再配置を行うことができる。
【００５０】
上述のように、探索コンポーネント１７１０は、例えばグラフ重み付けコンポーネント１４１０によって加えられたグラフ・エッジ重みを組み込むことによって、従来の技術と比較して向上した局所量子回路最適化を提供することができる。例えば、図１５および図１６に関して上述したように、探索コンポーネント１７１０は、次数と重みの両方に従ってキュービットの順序付きリスト１７２０を生成することができ、その結果として、次数のみに基づいて動作する技法よりも回路性能を向上させることができる、図１６００によって示すような最適化された量子回路グラフが得られる。様々な実施形態において、図１５および図１６に関して示したような重み付きグラフの走査を使用することによって、探索コンポーネント１７１０は量子回路のゲート数または深度あるいはその両方を最大１桁削減することができる。
【００５１】
一態様では、探索コンポーネント１７１０は、図９に関して上述した探索コンポーネント９１０によって使用される技法と同様とすることができる１つまたは複数の技法により、順序付きリスト１７２０を生成することができる。このような技法には、加重カットヒル・マキー探索などの幅優先探索技法が含まれ得る。ただし、探索コンポーネント９１０と同様に、探索コンポーネント１７１０は、順序付きリスト１７２０の生成または関連付けられたグラフの変換あるいはその両方のために任意の適切な探索アルゴリズムまたはアルゴリズムの組み合わせを使用することができることに留意されたい。
【００５２】
次に図１８を参照すると、本明細書に記載の１つまたは複数の実施形態による局所的に最適化された量子回路のＳＷＡＰゲートのマッピングを容易にするシステム１８００のブロック図が示されている。説明を簡潔にするために、本明細書に記載の他の実施形態で採用されている同様の要素の繰り返しの説明は省く。図１８に示すシステム１８００は、例えば図１または図１４あるいはその両方に関して上記に示した説明に従って置換コンポーネント１３０によって処理された置換量子回路のそれぞれのキュービットにＳＷＡＰゲートをマッピングすることができる、ＳＷＡＰマッピング・コンポーネント１８１０を含む。一態様では、ＳＷＡＰマッピング・コンポーネント１８１０を使用して、置換コンポーネント１３０によって生成された置換量子回路を量子ハードウェアに直接マッピングすることを容易にすることができるか、またはその代わりに、１つまたは複数のトランスパイラ・コンポーネントまたはその他の処理ステップあるいはその両方を、置換コンポーネント１３０とＳＷＡＰマッピング・コンポーネント１８１０との間に挿入することができる。上述のように、置換コンポーネント１３０は、局所接続性を向上させた量子回路を作製するために本明細書に記載のような様々な技法を使用することができる。したがって、システム１８００で使用されるＳＷＡＰマッピング・コンポーネント１８１０によって使用されるＳＷＡＰゲートの数は、従来の量子回路に付随するＳＷＡＰゲート数よりも少なくすることができる。その他の利点も実現可能である。
【００５３】
次に図１９を参照すると、本明細書に記載の１つまたは複数の態様を実装するために使用可能な処理コンポーネント１９００が１つまたは複数の実施形態に従って示されている。説明を簡潔にするために、本明細書に記載の他の実施形態で採用されている同様の要素の繰り返しの説明は省く。
【００５４】
図１９に示すように、処理コンポーネント１９００は、上述のような行列重み付けコンポーネント１１０、バンド幅削減コンポーネント１２０、または置換コンポーネント１３０あるいはこれらの組み合わせのうちの１つまたは複数のコンポーネントを実装するために使用可能な少なくとも１つのプロセッサ１９１０（例えば、中央演算処理装置、グラフィカル・プロセッシング・ユニットなど）に関連付けられ得る。プロセッサ１９１０は、データ・バス１９２０を介して、通信コンポーネント１９３０またはメモリ１９４０あるいはその両方など、処理コンポーネント１９００の１つまたは複数の追加のサブコンポーネントに接続することができる。通信コンポーネント１９３０はプロセッサ１９１０とは別個に実装されるものとして図示されているが、実施形態によってはプロセッサ１９１０を、さらに通信コンポーネント１９３０を実装するために使用することも可能である。さらに他の実施形態では、通信コンポーネント１９３０は処理コンポーネント１９００の外部にあってよく、別個の通信リンクを介して処理コンポーネント１９００と通信してもよい。
【００５５】
メモリ１９４０は、本明細書に記載の１つまたは複数の実施形態による処理コンポーネント１９００が、処理コンポーネント１９００によって使用されるデータを記憶するために使用することができる。これに加えて、またはこれに代えて、メモリ１９４０には、処理コンポーネント１９００によって実行されると処理コンポーネント１９００（またはその１つまたは複数のプロセッサ１９１０、あるいはその両方）に、上述のような行列重み付けコンポーネント１１０、バンド幅削減コンポーネント１２０、または置換コンポーネント１３０あるいはこれらの組み合わせを実装させる機械可読命令が記憶され得る。
【００５６】
図２０に、１つまたは複数の実施形態による本明細書に記載の１つまたは複数の態様を実装するために使用可能な別の処理コンポーネント２０００を示す。説明を簡潔にするために、本明細書に記載の他の実施形態で採用されている同様の要素の繰り返しの説明は省く。
【００５７】
図２０に示すように、処理コンポーネント２０００は、上述のようなグラフ重み付けコンポーネント１４１０、グラフ修正コンポーネント１４２０、または置換コンポーネント１３０あるいはこれらの組み合わせのうちの１つまたは複数のコンポーネントを実装するために使用可能な少なくとも１つのプロセッサ２０１０に関連付けられ得る。プロセッサ２０１０は、データ・バス２０２０を介して、通信コンポーネント２０３０またはメモリ２０４０あるいはその両方など、処理コンポーネント２０００の１つまたは複数の追加のサブコンポーネントに接続することができる。一態様では、通信コンポーネント２０３０は、図１９に関して上述した通信コンポーネント１９３０と同様に構成することができる。
【００５８】
図１９に関して上述したメモリ１９４０と同様に、メモリ２０４０は、本明細書に記載の１つまたは複数の実施形態により処理コンポーネント２０００によって使用されるデータを格納するために、処理コンポーネント２０００によって使用されることができる。これに加えて、またはこれに代えて、メモリ２０４０は、処理コンポーネント２０００によって実行されると、処理コンポーネント（または、その１つまたは複数のプロセッサ２０１０、あるいはその両方）に、上述のようなグラフ重み付けコンポーネント１４１０、グラフ修正コンポーネント１４２０、または置換コンポーネント１３０、あるいはこれらの組み合わせを実装させる機械可読命令が記憶されていてもよい。
【００５９】
様々な実施形態では、図１９および図２０に示す処理コンポーネント１９００、２０００は、コンピューティング・タスク（例えば、受信データに関連付けられたコンピューティング・タスク）を実行する、ハードウェア、ソフトウェア（例えば、１組のスレッド、１組のプロセス、実行時のソフトウェアなど）、またはハードウェアとソフトウェアとの組み合わせとすることができるか、またはこれらを含み得る。例えば処理コンポーネント１９００、２０００は、大規模または複雑あるいはその両方のマルチキュービット回路のシミュレーションを実行するか、または人間が行うことができない（例えば、人間の頭脳の能力を超える）その他の操作を実行するか、あるいはその両方を行うことができる。例えば、ある期間にわたって処理コンポーネント１９００、２０００によって処理されるデータの量、データを処理する速度、または処理可能なデータの種類、あるいはこれらの組み合わせは、同じ期間にわたって１人の人間の頭脳によって処理可能な量、速度およびデータの種類に比べて、それぞれ、大量であり、高速であり、異なり得る。例えば、処理コンポーネント１９００、２０００によって処理されるデータは、１つまたは複数のコンピューティング・デバイスに関連付けられた、生データ（例えば生テキスト・データ、生数値データなど）または圧縮データ（例えば、圧縮テキスト・データ、圧縮数値データなど）あるいはその両方とすることができる。また、処理コンポーネント１９００、２０００は、上記で言及したデータも処理しながら、１つまたは複数の他の機能の実行のために完全に動作可能（例えば完全に電力投入、完全に実行されるなど）とすることができる。
【００６０】
図２１に、本明細書に記載の１つまたは複数の実施形態による量子回路の局所最適化を容易にする例示の非限定的なコンピュータ実装方法２１００の流れ図を示す。説明を簡潔にするために、本明細書に記載の他の実施形態で採用されている同様の要素の繰り返しの説明は省く。
【００６１】
２１０２で、プロセッサ（例えば処理コンポーネント１９００のプロセッサ１９１０）に動作可能に結合されたデバイスが（例えば、行列重み付けコンポーネント１１０によって）、量子回路に対応する第１の行列の行列要素にそれぞれの重みを加えることができる。一態様では、重みは、量子回路内のキュービットのそれぞれのペア間の量子ゲートのそれぞれの数に従って加えることができる。
【００６２】
２１０４で、デバイスは（例えばバンド幅削減コンポーネント１２０）によって、２１０２で加えられたような行列要素のそれぞれの重みに基づいて第１の行列を第２の行列に変換することができる。
【００６３】
２１０６で、デバイスは（例えば置換コンポーネント１３０によって）、２１０４で生成された第２の行列に従って量子回路内のそれぞれのキュービットの順序を置換することができ、その結果として置換量子回路が得られる。
【００６４】
図２２に、本明細書に記載の１つまたは複数の実施形態による量子回路の局所最適化を容易にする別の例示の非限定的なコンピュータ実装方法２２００の流れ図を示す。説明を簡潔にするために、本明細書に記載の他の実施形態で採用されている同様の要素の繰り返しの説明は省く。
【００６５】
２２０２で、プロセッサ（例えば処理コンポーネント２０００のプロセッサ２０１０）に動作可能に結合されたデバイスが（例えばグラフ重み付けコンポーネント１４１０によって）、量子回路に対応するグラフのエッジにそれぞれの重みを加えることができる。一態様では、重みは、量子回路内のキュービットのそれぞれのペア間の量子ゲートのそれぞれの数に従って加えられ得る。
【００６６】
２２０４で、デバイスは（例えばグラフ修正コンポーネント１４２０によって）、グラフの頂点のうちのそれぞれの頂点の次数と、２２２０で加えられたようなグラフのエッジのうちのそれぞれのエッジの重みとに基づいて、グラフの頂点を再配置することができ、その結果、修正グラフが得られる。
【００６７】
２２０６で、デバイスは（例えば置換コンポーネント１３０によって）、２２０４で生成された修正グラフに従って量子回路内のそれぞれのキュービットの順序を置換することができ、その結果、置換量子回路が得られる。
【００６８】
説明を簡単にするために、コンピュータ実装方法について、一連の動作として図示し、説明している。本発明は、例示されている動作によって、または動作の順序あるいはその両方によって限定されず、例えば動作は様々な順序で、または並行して、あるいはその組み合わせで行われてもよく、本明細書で提示も記載もされていない他の動作とともに行われてもよいことを理解および了解されたい。また、開示されている主題によるコンピュータ実装方法を実装するために、例示されているすべての動作が必要ではない場合もある。さらに、当業者は、コンピュータ実装方法は、代わりに状態遷移図またはイベントにより、一連の相互に関連する状態として表すこともできることを理解し、了解するであろう。さらに、以下および本明細書全体を通して開示されているコンピュータ実装方法は、そのようなコンピュータ実装方法をコンピュータに移送し、伝送するのを容易にするために製造品に記憶され得ることも理解されたい。本明細書で使用する製造品という用語は、任意のコンピュータ可読デバイスまたは記憶媒体からアクセス可能なコンピュータ・プログラムを包含することが意図されている。
【００６９】
また、処理コンポーネント間のデータ・パケットまたは通信あるいはその両方の構成は、電気および機械コンポーネントと回路との組み合わせに基づいて設定され、人間は、処理コンポーネント間の上記のデータ・パケット構成または上記の通信あるいはその両方を再現または実行することはできない。例えば、人間は、処理コンポーネント間などの無線ネットワークまたは有線ネットワークあるいはその両方を介した送信のためのデータを生成することができない。また、人間は、上述のような１つまたは複数のプロセス中に生成された情報に対応するビットのシーケンスを含み得るデータをパケット化すること、上述のような１つまたは複数のプロセス中に生成された情報に対応するビットのシーケンスを含み得るデータを送信することなどはできない。
【００７０】
本開示の主題の様々な態様に状況を与えるため、図２３および以下の説明は、開示の主題の様々な態様を実装可能な適切な環境の概要を示すことを意図している。図２３は、本明細書で開示されている１つまたは複数の実施形態を容易にすることができる例示の非限定的動作環境のブロック図を示す。簡潔にするために、本明細書に記載の他の実施形態で採用される同様の要素の繰り返しの説明は省く。図２３を参照すると、本開示の様々な態様を実装するのに適した動作環境２３００は、コンピュータ２３１２も含むことができる。コンピュータ２３１２は、処理ユニット２３１４と、システム・メモリ２３１６と、システム・バス２３１８も含むことができる。システム・バス２３１８は、システム・メモリ２３１６を含むがこれには限定されないシステム・コンポーネントを処理ユニット２３１４に結合する。処理ユニット２３１４は、様々な入手可能なプロセッサのいずれであってもよい。処理ユニット２３１４として、デュアル・マイクロプロセッサおよびその他のマルチプロセッサ・アーキテクチャも採用することができる。システム・バス２３１８は、業界標準アーキテクチャ（Industry Standard Architecture（ＩＳＡ））、マイクロ・チャネル・アーキテクチャ（Micro Channel Architecture（ＭＣＡ））、拡張ＩＳＡ（ＥＩＳＡ）、インテリジェント・ドライブ・エレクトロニクス（Intelligent Drive Electronics（ＩＤＥ））、ＶＥＳＡローカル・バス（ＶＬＢ）、ペリフェラル・コンポーネント・インターコネクト（Peripheral Component Interconnect（ＰＣＩ））、カード・バス、ユニバーサル・シリアル・バス（ＵＳＢ）、アドバンスト・グラフィックス・ポート（Advanced Graphics Port（ＡＧＰ））、Ｆｉｒｅｗｉｒｅ（ＩＥＥＥ１３９４）、およびスモール・コンピュータ・システム・インターフェース（ＳＣＳＩ）を含むがこれらには限定されない任意の様々な利用可能なバス・アーキテクチャを使用する、メモリ・バスもしくはメモリ・コントローラ、周辺機器用バスもしくは外部バス、またはローカル・バスあるいはこれらの組み合わせを含む、数種類のバス・アーキテクチャのうちのいずれかとすることができる。システム・メモリ２３１６は、揮発性メモリ２３２０と不揮発性メモリ２３２２も含むことができる。起動時などにコンピュータ２３１２内の要素間で情報を伝送するための基本ルーチンを含むベーシック・インプット／アウトプット・システム（ＢＩＯＳ）が、不揮発性メモリ２３２２に記憶される。例として、限定的ではなく、不揮発性メモリ２３２２は、読み取り専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（programable ROM（ＰＲＯＭ））、電気的プログラマブルＲＯＭ（electrically programable ROM（ＥＰＲＯＭ））、電気的消去可能ＲＯＭ（electrically erasable ROM（ＥＥＰＲＯＭ））、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ（ＲＡＭ）（例えば強誘電ＲＡＭ（ＦｅＲＡＭ））を含み得る。揮発性メモリ２３２０は、例えば外部キャッシュ・メモリとして機能することができるランダム・アクセス・メモリ（ＲＡＭ）を含み得る。例として、限定的ではなく、ＲＡＭは、スタティックＲＡＭ（static RAM（ＳＲＡＭ））、ダイナミックＲＡＭ（dynamic RAM（ＤＲＡＭ））、同期ＤＲＡＭ（synchronous DRAM（Ｓ���ＲＡＭ））、ダブル・データ・レートＳＤＲＡＭ（double data rate SDRAM（ＤＤＲ  ＳＤＲＡＭ））、エンハンストＳＤＲＡＭ（enhanced SDRAM（ＥＳＤＲＡＭ））、シンクリンクＤＲＡＭ（Synchlink DRAM（ＳＬＤＲＡＭ））、ダイレクトＲａｍｂｕｓ  ＲＡＭ（ＤＲＲＡＭ）、ダイレクトＲａｍｂｕｓダイナミックＲＡＭ（ＤＲＤＲＡＭ）、およびＲａｍｂｕｓダイナミックＲＡＭなどの多くの形態で入手可能である。
【００７１】
コンピュータ２３１２は、取り外し可能／取り外し不能な揮発性／不揮発性のコンピュータ記憶媒体も含むことができる。図２３は、例えば、ディスク・ストレージ２３２４を示している。ディスク・ストレージ２３２４は、磁気ディスク・ドライブ、ソリッド・ステート・ドライブ、フロッピィ・ディスク・ドライブ、テープ・ドライブ、Ｊａｚドライブ、Ｚｉｐドライブ、ＬＳ−１００ドライブ、フラッシュ・メモリ・カード、またはメモリ・スティックなどのデバイスも含み得るが、これらには限定されない。ディスク・ストレージ２３２４は、コンパクト・ディスクＲＯＭデバイス（ＣＤ−ＲＯＭ）、ＣＤレコーダブル・ドライブ（ＣＤ−Ｒドライブ）、ＣＤリライタブル・ドライブ（ＣＤ−ＲＷドライブ）、デジタル多用途ディスクＲＯＭドライブ（ＤＶＤ−ＲＯＭ）、またはＢｌｕ−ｒａｙディスク・ドライブなどの光ディスク・ドライブを含むがこれらには限定されないその他の記憶媒体と別個に、または組み合わせた記憶媒体を含み得る。ディスク・ストレージ２３２４のシステム・バス２３１８への接続を容易にするために、典型的には、インターフェース２３２６などの取り外し可能または取り外し不能インターフェースが使用される。図２３は、適切な動作環境２３００において、ユーザと記載されている基本コンピュータ資源との間に介在するものとしての役割を果たすソフトウェアも図示している。このようなソフトウェアは、例えば、オペレーティング・システム２３２８も含み得る。オペレーティング・システム２３２８は、ディスク・ストレージ２３２４に記憶することができ、コンピュータ２３１２の資源を制御し、割り当てる役割を果たす。システム・アプリケーション２３３０は、例えばシステム・メモリ２３１６またはディスク・ストレージ２３２４に記憶されているプログラム・モジュール２３３２およびプログラム・データ２３３４を介してオペレーティング・システム２３２８による資源の管理を利用する。本開示は、様々なオペレーティング・システムまたはオペレーティング・システムの組み合わせとともに実装可能であることを理解されたい。ユーザは入力デバイス２３３６を介してコンピュータ２３１２にコマンドまたは情報を入力する。入力デバイス２３３６は、マウスなどのポインティング・デバイス、トラック・ボール、スタイラス、タッチ・パッド、キーボード、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星放送受信アンテナ、スキャナ、ＴＶチューナ・カード、デジタル・カメラ、デジタル・ビデオ・カメラ、ウェブ・カメラなどを含むがこれらには限定されない。上記およびその他の入力デバイスは、インターフェース・ポート２３３８を介してシステム・バス２３１８により処理ユニット２３１４に接続する。インターフェース・ポート２３３８は、例えば、シリアル・ポート、パラレル・ポート、ゲーム・ポート、およびユニバーサル・シリアル・バス（ＵＳＢ）を含む。出力デバイス２３４０は、入力デバイス２３３６と同じ種類のポートのうちのいくつかを使用する。したがって、例えば、コンピュータ２３１２に入力を提供し、コンピュータ２３１２から出力デバイス２３４０に情報を出力するために、ＵＳＢポートを使用することができる。専用アダプタを必要とする出力デバイス２３４０は他にもあるが特に、モニタ、スピーカ、およびプリンタなどのいくつかの出力デバイス２３４０があることを例示するために、出力アダプタ２３４２が示されている。出力アダプタ２３４２は、例えば、出力デバイス２３４０とシステム・バス２３１８との間に接続の手段を提供する、ビデオ・カードおよびサウンド・カードを含むが、これらには限定されない。リモート・コンピュータ２３４４などの他のデバイスまたはデバイスのシステムあるいはその両方が、入力機能と出力機能の両方を提供することに留意されたい。
【００７２】
コンピュータ２３１２は、リモート・コンピュータ２３４４などの１つまたは複数のリモート・コンピュータへの論理接続を使用して、ネットワーク化環境で動作することができる。リモート・コンピュータ２３４４は、コンピュータ、サーバ、ルータ、ネットワークＰＣ、ワークステーション、マイクロプロセッサ使用機器、ピア・デバイスまたはその他の一般的なネットワーク・ノードなどとすることができ、典型的には、コンピュータ２３１２に関連して説明した要素の多くまたはすべても含み得る。簡潔にするために、リモート・コンピュータ２３４４とともにメモリ・ストレージ・デバイス２３４６のみが図示されている。リモート・コンピュータ２３４４は、ネットワーク・インターフェース２３４８を介してコンピュータ２３１２に論理的に接続され、次に、通信接続部２３５０を介して物理的に接続される。ネットワーク・インターフェース２３４８は、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、セルラ・ネットワークなどの、有線または無線あるいはその両方の通信ネットワークに対応する。ＬＡＮ技術は、ファイバ分散データ・インターフェース（ＦＤＤＩ）、銅線分散データ・インターフェース（ＣＤＤＩ）、Ｅｔｈｅｒｎｅｔ（Ｒ）、トークン・リングなどを含む。ＷＡＮ技術は、ポイント・ツー・ポイント・リンク、統合サービス・デジタル通信網（ＩＳＤＮ）およびその変形、パケット交換網、およびデジタル加入者回線（ＤＳＬ）などの回線交換ネットワークを含むが、これらには限定されない。通信接続部２３５０とは、ネットワーク・インターフェース２３４８をシステム・バス２３１８に接続するために採用されるハードウェア／ソフトウェアを指す。通信接続部２３５０は、図がわかりやすいようにコンピュータ２３１２内部に示されているが、コンピュータ２３１２の外部にあってもよい。ネットワーク・インターフェース２３４８への接続のためのハードウェア／ソフトウェアは、例示に過ぎないが通常の電話級モデム、ケーブル・モデム、およびＤＳＬモデムを含むモデム、ＩＳＤＮアダプタ、およびＥｔｈｅｒｎｅｔ（Ｒ）カードなどの内蔵および外付け技術も含み得る。
【００７３】
本発明の様々な実施形態は、任意の可能な統合の技術詳細度のシステム、方法、装置、またはコンピュータ・プログラム製品あるいはこれらの組み合わせとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の１つまたは複数の態様を実施させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体（または複数の媒体）を含み得る。コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持し、記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学式ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適合する組み合わせであってよいが、これらには限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには以下のものも含まれ得る。すなわち、可搬コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、可搬コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピィ・ディスク、パンチカードまたは命令が記録された溝内の隆起構造などの機械的に符号化されたデバイス、およびこれらの任意の適合する組み合わせが含まれ得る。本明細書で使用されるコンピュータ可読記憶媒体とは、電波もしくはその他の自由に伝播する電磁波、導波路もしくはその他の伝送媒体を伝播する電磁波（例えば光ファイバ・ケーブルを通る光パルス）、またはワイヤを介して伝送される電気信号などの、一過性の信号自体であると解釈すべきではない。
【００７４】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング／処理デバイスに、または、ネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくは無線ネットワークまたはこれらの組み合わせを介して外部コンピュータもしくは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、交換機、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはこれらの組み合わせを含み得る。各コンピューティング／処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令を、それぞれのコンピューティング／処理デバイス内のコンピュータ可読記憶媒体への記憶のために転送する。本発明の１つまたは複数の実施形態の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データまたは、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語、もしくは同様のプログラム言語などの手続き型プログラミング言語を含む、１つもしくは複数のプログラミング言語の任意の組み合わせで書かれたソース・コードもしくはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上でまたは一部がユーザのコンピュータ上で、または一部がユーザのコンピュータ上で一部がリモート・コンピュータ上で、または全体がリモート・コンピュータもしくはサーバ上で実行されてもよい。後者の場合、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）もしくはワイド・エリア・ネットワーク（ＷＡＮ）を含む、任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続は（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータに対して行うことができる。実施形態によっては、本発明の１つまたは複数の態様を実行するために、例えばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ）を含む電子回路が、コンピュータ可読プログラム命令の状態情報を使用して電子回路をパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。
【００７５】
本明細書では本発明の１つまたは複数の態様について、本発明の１つまたは複数の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品を示すフローチャート図またはブロック図あるいはその両方を参照しながら説明している。フローチャート図またはブロック図あるいはその両方の図の各ブロック、および、フローチャート図またはブロック図あるいはその両方の図のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装可能であることはわかるであろう。これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラマブル・データ処理装置のプロセッサにより実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックで規定されている機能／動作を実装する手段を形成するようなマシンを実現するように、汎用コンピュータ、専用コンピュータ、またはその他のプログラマブル・データ処理装置のプロセッサに供給することができる。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方のブロックで規定されている機能／動作の態様を実装する命令を含む製造品を含むように、コンピュータ、プログラマブル・データ処理装置、またはその他のデバイスあるいはこれらの組み合わせに対して特定の方式で機能するように指示することができるコンピュータ可読記憶媒体に記憶することもできる。コンピュータ可読プログラム命令は、コンピュータ、その他のプログラマブル装置またはその他のデバイス上で実行される命令がフローチャートまたはブロック図あるいはその両方のブロックで規定されている機能／動作を実装するように、コンピュータ、その他のプログラマブル装置、またはその他のデバイス上で一連の動作が実行されてコンピュータ実装プロセスを実現するようにするために、コンピュータ、その他のプログラマブル・データ処理装置、またはその他のデバイスにロードすることもできる。
【００７６】
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能および動作を示す。この点において、フローチャートまたはブロック図の各ブロックは、規定されている論理機能を実装するための１つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または部分を表し得る。代替の一部の実装形態では、ブロックに記載されている機能は、図に記載されている順序とは異なる順序で行われてもよい。例えば、連続して示されている２つのブロックは、関与する機能に応じて、実際には実質的に並行して実行されてよく、またはそれらのブロックは場合によっては逆の順序で実行されてもよい。また、ブロック図またはフローチャート図あるいはその両方の図の各ブロック、およびブロック図またはフローチャート図あるいはその両方の図のブロックの組み合わせは、規定されている機能もしくは動作を実行する専用ハードウェア・ベースのシステムによって実装可能であるか、または専用ハードウェアとコンピュータ命令との組み合わせとして機能するかもしくは実施することができることもわかるであろう。
【００７７】
本主題について、コンピュータ上で稼働するコンピュータ・プログラム製品のコンピュータ実行可能命令の一般的文脈で上述したが、当業者は、本開示は他のプログラム・モジュールと組み合わせて実装することもできることがわかるであろう。一般に、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ・タイプを実装するかあるいはその両方である、ルーチン、プログラム、コンポーネント、データ構造などを含む。また、当業者は、本発明のコンピュータ実装方法が、シングル・プロセッサまたはマルチプロセッサ・コンピュータ・システム、ミニコンピューティング・デバイス、メインフレーム・コンピュータを含む他のコンピュータ・システム構成、およびコンピュータ、ハンドヘルド・コンピューティング・デバイス（例えばＰＤＡ、電話）、マイクロプロセッサ・ベースまたはプログラマブル消費者向け電子機器または産業用電子機器などでも実装可能であることがわかるであろう。例示の態様は、通信ネットワークによって連結されたリモート処理デバイスによってタスクが実行される分散コンピューティング環境でも実装可能である。ただし、本開示のすべての態様ではないが一部の態様は、スタンドアロン・コンピュータ上で実装可能である。分散コンピューティング環境では、プログラム・モジュールは、ローカル・メモリ・ストレージ・デバイスとリモート・ストレージ・デバイスの両方に配置可能である。
【００７８】
本出願で使用する「コンポーネント」、「システム」、「プラットフォーム」、「インターフェース」などの用語は、コンピュータ関連実体、または１つまたは複数の特定の機能を備えた実働マシンに関連する実体を指すか、または含むか、あるいはその両方であり得る。本明細書で開示されている実体は、ハードウェア、ハードウェアとソフトウェアの組み合わせ、ソフトウェア、または実行時のソフトウェアとすることができる。例えば、コンポーネントは、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、またはコンピュータ、あるいはこれらの組み合わせであり得るが、これらには限定されない。例として、サーバ上で実行されるアプリケーションとそのサーバの両方がコンポーネントであり得る。１つまたは複数のコンポーネントがプロセスまたは実行のスレッドあるいはその両方内に存在可能であり、コンポーネントは１つのコンピュータ上にローカルに存在するか、または２つ以上のコンピュータに分散されるか、あるいはその両方であってよい。別の実施例では、それぞれのコンポーネントが、様々なデータ構造が記憶された様々なコンピュータ可読媒体から実行され得る。コンポーネントは、１つまたは複数のデータ・パケット（例えば、ローカル・システム内、分散システム内の別のコンポーネントと、またはインターネットなどのネットワークを介して他のシステムと、あるいはこれらの組み合わせと、信号を介してやり取りする１つのコンポーネントからのデータ）を有する信号に従うなどして、ローカル・プロセスまたはリモート・プロセスあるいはその両方を介して通信することができる。別の例として、コンポーネントは、プロセッサによって実行されるソフトウェア・アプリケーションまたはファームウェア・アプリケーションによって動作させられる、電気回路または電子回路によって動作させられる機械的部品によって提供される特定の機能を備えた装置とすることができる。そのような場合、プロセッサは、装置の内部または外部のプロセッサとすることができ、ソフトウェア・アプリケーションまたはファームウェア・アプリケーションの少なくとも一部を実行することができる。さらに別の例として、コンポーネントは、機械的部品なしに電子コンポーネントによって特定の機能を提供する装置とすることができ、電子コンポーネントは、電子コンポーネントの機能を少なくとも部分的に与えるソフトウェアまたはファームウェアを実行するプロセッサまたはその他の手段を含み得る。一態様では、コンポーネントは、例えばクラウド・コンピューティング・システム内の仮想マシンを介して電子コンポーネントをエミュレートすることができる。
【００７９】
また、「または（ｏｒ）」という用語は、排他的「または（ｏｒ）」ではなく包含的「または（ｏｒ）」を意味することが意図されている。すなわち、別に明記されているか文脈から明らかでない限り、「ＸがＡまたはＢを採用する」は、自然な包含的置換のいずれかを意味することが意図されている。すなわち、ＸがＡを採用するか、ＸがＢを採用するか、またはＸがＡとＢの両方を採用する場合、上記事例のいずれかの下で「ＸがＡまたはＢを採用する」が満たされる。また、別に明記されているか文脈から単数形であることが指示されていない限り、本明細書および添付図面で使用されている冠詞「ａ」および「ａｎ」は広く「１つまたは複数」を意味するものと解釈されるべきである。本明細書で使用されている「例」または「例示の」あるいはその両方の用語は、例、事例または例示となることを意味するために使用されている。疑義を避けるために、本明細書で開示されている主題はそのような例によって限定されない。さらに、本明細書で「例」または「例示の」あるいはその両方として記載されているいずれの態様または設計も、必ずしも他の態様または設計より好ましいかまたは有利であるものと解釈されるべきではなく、当業者に知られている同等の例示の構造および技術を排除することを意味していない。
【００８０】
本明細書で採用されている「プロセッサ」という用語は、シングルコア・プロセッサ、ソフトウェア・マルチスレッド実行機能を備えたシングル・プロセッサ、マルチコア・プロセッサ、ソフトウェア・マルチスレッド実行機能を備えたマルチコア・プロセッサ、ハードウェア・マルチスレッド技術を備えたマルチコア・プロセッサ、パラレル・プラットフォーム、および分散共用メモリを備えたパラレル・プラットフォームを含むがこれらには限定されない、実質的にあらゆるコンピューティング処理ユニットまたはデバイスを指し得る。また、プロセッサは、本明細書に記載の機能を実行するように設計された、集積回路、特定用途向け集積回路（application specific integrated circuit（ＡＳＩＣ））、デジタル・シグナル・プロセッサ（digital signal processor（ＤＳＰ））、フィールド・プログラマブル・ゲート・アレイ（field programable gate array（ＦＰＧＡ））、プログラマブル・ロジック・コントローラ（programable logic controller（ＰＬＣ））、コンプレックス・プログラマブル・ロジック・デバイス（complex programmable logic device（ＣＰＬＤ））、ディスクリート・ゲートもしくはトランジスタ・ロジック、ディスクリート・ハードウェア・コンポーネント、またはこれらの任意の組み合わせを指し得る。また、プロセッサは、ユーザ装置の空間利用を最適化するため、またはパフォーマンスを向上させるために、分子および量子ドット・ベースのトランジスタ、スイッチ、およびゲートなどであるがこれらには限定されないナノスケール・アーキテクチャを利用することができる。プロセッサは、コンピューティング処理ユニットの組み合わせとして実装することもできる。本開示では、「ストア」、「ストレージ」、「データ・ストア」、「データ・ストレージ」、「データベース」、およびコンポーネントの動作および機能に関連する実質的にあらゆるその他の情報記憶コンポーネントなどの用語を使用して、「メモリ・コンポーネント」、「メモリ」において実現される実体、またはメモリを含むコンポーネントを指す。本明細書に記載のメモリまたはメモリ・コンポーネントあるいはその両方は、揮発性メモリもしくは不揮発性メモリとすることができ、または揮発性と不揮発性の両方のメモリを含み得ることを理解すべきである。例として、限定的ではなく、不揮発性メモリは、読み取り専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、電気的プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＲＯＭ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ（ＲＡＭ）（例えば強誘電ＲＡＭ（ＦｅＲＡＭ））を含み得る。揮発性メモリは、例えば外部キャッシュ・メモリとして機能することができるＲＡＭを含み得る。例として、限定的ではなく、ＲＡＭは、同期ＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、ダブル・データ・レートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）、エンハンストＳＤＲＡＭ（ＥＳＤＲＡＭ）、シンクリンクＤＲＡＭ（ＳＬＤＲＡＭ）、ダイレクトＲａｍｂｕｓ  ＲＡＭ（ＤＲＲＡＭ）、ダイレクトＲａｍｂｕｓダイナミックＲＡＭ（ＤＲＤＲＡＭ）、およびＲａｍｂｕｓダイナミックＲＡＭ（ＲＤＲＡＭ）などの多くの形態で入手可能である。また、本明細書のシステムまたはコンピュータ実装方法の開示のメモリ・コンポーネントは、上記および任意のその他の適合する種類のメモリを含むことを意図しているが、これらを含むことには限定されない。
【００８１】
上記で説明した内容は、システムおよびコンピュータ実装方法の単なる例を含む。当然ながら、本開示を説明するために、コンポーネントまたはコンピュータ実装方法の考えられるあらゆる組み合わせを記載することは不可能であるが、当業者には、本開示の多くの他の組み合わせおよび置換が可能であることがわかる。また、詳細な説明、特許請求の範囲、付属書および添付図面において「含んでいる（ｉｎｃｌｕｄｅ）」、「有している（ｈａｓ）」、「保有している（ｐｏｓｓｅｓｓｅｓ）」などの用語が使用されている限りにおいて、そのような用語は、「含む（ｃｏｍｐｒｉｓｉｎｇ）」が請求項における移行語として採用されている場合に解釈されるように、「含む（ｃｏｍｐｒｉｓｉｎｇ）」という用語と同様に包含的であることが意図されている。様々な実施形態の説明は例示のために示したものであり、網羅的であること、または開示されている実施形態に限定されることは意図されていない。記載されている実施形態の範囲および趣旨から逸脱することなく、当業者には様々な修正および変形が明らかであろう。本明細書で使用されている用語は、実施形態の原理、実際の適用、もしくは市場に見られる技術に優る技術的改良を最もよく説明するため、または当業者が本明細書で開示されている実施形態を理解することができるようにするために選択された。
【図１】
2022501731.tif 000003
【図２】
2022501731.tif 000004
【図３】
2022501731.tif 000005
【図４】
2022501731.tif 000006
【図５】
2022501731.tif 000007
【図６】
2022501731.tif 000008
【図７】
2022501731.tif 000009
【図８】
2022501731.tif 000010
【図９】
2022501731.tif 000011
【図１０】
2022501731.tif 000012
【図１１】
2022501731.tif 000013
【図１２】
2022501731.tif 000014
【図１３】
2022501731.tif 000015
【図１４】
2022501731.tif 000016
【図１５】
2022501731.tif 000017
【図１６】
2022501731.tif 000018
【図１７】
2022501731.tif 000019
【図１８】
2022501731.tif 000020
【図１９】
2022501731.tif 000021
【図２０】
2022501731.tif 000022
【図２１】
2022501731.tif 000023
【図２２】
2022501731.tif 000024
【図２３】
2022501731.tif 000025
【手続補正書】
【提出日】令和3年7月2日(2021.7.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータに実装される方法であって、
プロセッサに動作可能に結合されたデバイスによって、量子回路内のキュービットのそれぞれのペア間の量子ゲートのそれぞれの数に従って、前記量子回路に対応する第１の行列の行列要素にそれぞれの重みを加えることと、
前記デバイスによって、前記行列要素の前記それぞれの重みに基づいて前記第１の行列を第２の行列に変換することと、
前記デバイスによって、前記第２の行列に従って前記量子回路内のそれぞれのキュービットの順序を置換し、その結果として置換量子回路とすることとを含む方法。
【請求項２】
前記変換することは、
前記行列要素の前記それぞれの重みに基づいてキュービットの順序付きリストを生成することと、
前記キュービットの順序付きリストに基づいて前記第１の行列を前記第２の行列に変換することとを含む、請求項１に記載の方法。
【請求項３】
前記生成することは、
前記キュービットの順序付きリスト内の第１のキュービットとして、第１の数のキュービット間接続と第１の統合行列要素重み付けとを有する前記量子回路内のキュービットを選択することと、
それぞれ、キュービット間接続の前記第１の数および前記第１の統合行列要素重み付けから、キュービット間接続の数を増やし、統合行列要素重み付けを減らすことによって、前記キュービットの順序付きリストにキュービットを格納することとを含む、請求項２に記載の方法。
【請求項４】
前記変換することは、
前記キュービットの順序付きリストを逆転させて、キュービットの逆転順序付きリストとすることと、
前記キュービットの逆転順序付きリストに基づいて前記第１の行列を前記第２の行列に変換することとをさらに含む、請求項２または請求項３に記載の方法。
【請求項５】
前記生成することは、
幅優先探索によって前記第１の行列を前記第２の行列に変換することを含む、請求項２ないし請求項４のいずれかに記載の方法。
【請求項６】
請求項１ないし５のいずれかに記載の方法のすべてのステップを実施するようになされた手段を含むシステム。
【請求項７】
コンピュータ・プログラムであって、前記コンピュータ・プログラムがコンピュータ・システム上で実行されると、請求項１ないし５のいずれかに記載の方法のすべてのステップを実施するための命令を含むコンピュータ・プログラム。
【国際調査報告】
2022501731.tif 000026
2022501731.tif 000027
2022501731.tif 000028