(57)【要約】  特定のアプリケーションまたはアルゴリズムのためのアプリケーションまたはアルゴリズムに固有の量子コンピューティング回路を設計するための手法が提示される。設計コンポーネントは、アプリケーションまたはアルゴリズムの解析に基づいて、量子回路設計において互いの間の直接接続を使用する必要性の定義された可能性閾値を満たすということが決定された量子ビットの対を抽出できる抽出コンポーネントと、量子ビットの対に関連付けられた特性の解析に基づいて、アプリケーションまたはアルゴリズムに使用するための量子回路の回路設計を決定できる設計管理コンポーネント（ＤＭＣ）とを、備えることができる。ＤＭＣは、重み付け方式、および影響を受ける下流の量子ビットの数、量子ビットの対間の２量子ビット・ゲート動作の数、または量子ビットの対が測定に影響を与えるかどうか、あるいはその組み合わせを含む特性によって、量子ビットの対をソートすることができる。ソートに基づいて、ＤＭＣは、直接接続を割り当てる最高の順位の量子ビットの対を選択する。
2021536629.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実行可能コンポーネントを格納するメモリと、
前記メモリに動作可能なように結合され、コンピュータ実行可能コンポーネントを実行するプロセッサとを備えているシステムであって、前記コンピュータ実行可能コンポーネントが、
アプリケーションの解析に基づいて、互いの間の直接接続を使用する必要性の定義された可能性閾値を満たすということが決定された量子ビットの対を抽出する抽出コンポーネントと、
前記量子ビットの対に関連付けられた特性の解析に基づいて、前記アプリケーションに使用するための量子回路の回路設計を決定する設計管理コンポーネントとを備えている、システム。
【請求項２】
前記アプリケーションが、前記量子ビットの対が抽出される定義された量子アルゴリズムに関連付けられている、請求項１に記載のシステム。
【請求項３】
前記設計管理コンポーネントが、前記量子ビットの対に関連付けられた前記特性を解析し、前記量子ビットの対に関連付けられた前記特性および前記特性に関連付けられた重み値に基づいて、前記量子ビットの対をソートする、請求項１に記載のシステム。
【請求項４】
前記特性が、前記量子ビットの対のうちの１対の量子ビットに関連付けられた影響を受ける下流の量子ビットの数、前記１対の量子ビットの間の２量子ビット・ゲート動作の数、前記１対の量子ビットによる影響を受ける測定、および前記１対の量子ビットによる影響を受けると決定されている測定が存在しないこと、から成る特性の群から選択される、請求項３に記載のシステム。
【請求項５】
前記設計管理コンポーネントが、前記ソートに基づいて前記量子ビットの対のうちの他の量子ビットの対よりも高い順位を有する前記量子ビットの対のサブセットを決定し、直接接続を持つことが許可された量子ビットの対の最大数を示す定義された回路設計基準に基づいて、前記量子ビットの対の前記サブセットの前記量子ビットの対に直接接続を割り当てる、請求項３に記載のシステム。
【請求項６】
前記設計管理コンポーネントが、前記量子ビットの対に関連付けられた前記特性の前記解析に基づいて、前記回路設計を含む複数の回路設計が定義された回路設計基準の一部を満たしているということを決定する、請求項１に記載のシステム。
【請求項７】
前記設計管理コンポーネントが、前記複数の回路設計に関連付けられた単一量子ビット・ゲート動作および２量子ビット・ゲート動作の総数を決定し、前記複数の回路設計のうちの他の回路設計の２量子ビット・ゲート動作の他の総数と比べて、前記回路設計が最小の数の２量子ビット・ゲート動作を有するということの決定に基づいて、前記回路設計が前記量子回路に使用されるということを決定する、請求項６に記載のシステム。
【請求項８】
前記設計管理コンポーネントが、前記アプリケーションに関連付けられた定義されたアルゴリズムの仕様に関連する定義された回路設計基準を満たすように、前記アプリケーションに使用される量子ビットの数を決定し、当該量子ビットの量子ビットに使用される接続を決定し、前記量子ビットに使用される前記接続に基づいて、前記定義された回路設計基準を含む定義された回路設計基準に従って、前記回路設計を決定する、請求項１に記載のシステム。
【請求項９】
前記設計管理コンポーネントが、前記量子ビットのうちの他の量子ビットよりも多い数の接続を満たす前記量子ビットのサブセットを決定する、請求項８に記載のシステム。
【請求項１０】
前記設計管理コンポーネントが、前記定義された回路設計基準に基づいて、前記量子ビットのうちの補助量子ビットが有することになる１つまたは複数の補助量子ビットの特性を決定する、請求項８に記載のシステム。
【請求項１１】
前記設計管理コンポーネントが、前記回路設計の回路図を構築する、請求項１に記載のシステム。
【請求項１２】
プロセッサに動作可能なように結合されたシステムによって、アプリケーションを解析することに基づいて、互いの間の直接接続を利用する必要性の定義された可能性閾値を満たすということが決定された量子ビットの対を抽出することと、
前記システムによって、前記量子ビットの対の特性を解析することに基づいて、前記アプリケーションに使用するための量子回路の回路設計を決定することとを含む、コンピュータ実装方法。
【請求項１３】
前記システムによって、前記量子ビットの対に関連付けられた前記特性を解析することと、前記システムによって、前記量子ビットの対に関連付けられた前記特性および前記特性に関連付けられた重み値に基づいて、前記量子ビットの対をソートすることとをさらに含む、請求項１２に記載のコンピュータ実装方法。
【請求項１４】
前記特性が、前記量子ビットの対のうちの１対の量子ビットに関連付けられた影響を受ける下流の量子ビットの数、前記１対の量子ビットの間の２量子ビット・ゲート動作の数、前記１対の量子ビットによる影響を受ける測定、および前記１対の量子ビットによる影響を受けると決定されている測定が存在しないこと、から成る特性の群から選択される、請求項１３に記載のコンピュータ実装方法。
【請求項１５】
前記システムによって、前記量子ビットの対の前記ソートに基づいて、前記量子ビットの対のうちの他の量子ビットの対よりも高い順位を有する前記量子ビットの対のサブセットを決定することと、
直接接続を前記量子ビットの対の前記サブセットの量子ビットの対に割り当てることとをさらに含み、
前記量子ビットの対の前記サブセット内に存在できる量子ビットの対の最大数が、定義された回路設計基準に基づいて決定される、請求項１３に記載のコンピュータ実装方法。
【請求項１６】
前記システムによって、前記量子ビットの対に関連付けられた前記特性の前記解析に基づいて、前記回路設計を含む複数の回路設計が、定義された回路設計基準のうちの少なくとも１つの定義された回路設計基準を満たすということを決定することをさらに含む、請求項１２に記載のコンピュータ実装方法。
【請求項１７】
前記システムによって、前記複数の回路設計に関連付けられた単一量子ビット・ゲート動作および２量子ビット・ゲート動作の総数を決定することと、
前記システムによって、２量子ビット・ゲート動作の前記総数を比較することに基づいて、前記複数の回路設計のうちの前記回路設計が、前記複数の回路設計のうちの他の回路設計と比較して最小の数の２量子ビット・ゲート動作を有するということを決定することと、
前記システムによって、前記回路設計が前記最小の数の２量子ビット・ゲート動作を有するということを前記決定することに基づいて、前記回路設計が前記量子回路に使用されるということを決定することとをさらに含む、請求項１６に記載のコンピュータ実装方法。
【請求項１８】
前記システムによって、前記回路設計の回路図を構築することをさらに含む、請求項１２に記載のコンピュータ実装方法。
【請求項１９】
量子回路の回路設計の決定を容易にするコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、プログラム命令が具現化されているコンピュータ可読ストレージ媒体を備えており、前記プログラム命令が、プロセッサに、
アプリケーションの解析に基づいて、互いの間の直接接続を使用する必要性の定義された可能性閾値を満たすということが決定された量子ビットの対を抽出することと、
前記量子ビットの対の特性の解析に基づいて、前記アプリケーションに使用するための前記量子回路の前記回路設計を決定することとを実行させるように、前記プロセッサによって実行可能である、コンピュータ・プログラム製品。
【請求項２０】
前記プログラム命令が、前記プロセッサに、
前記量子ビットの対に関連付けられた前記特性を解析することと、
前記量子ビットの対に関連付けられた前記特性および前記特性に関連付けられた重み値に基づいて前記量子ビットの対をソートすることとを実行させるように、前記プロセッサによって実行可能であり、前記特性が、前記量子ビットの対のうちの１対の量子ビットに関連付けられた影響を受ける下流の量子ビットの数、前記１対の量子ビットの間の２量子ビット・ゲート動作の数、前記１対の量子ビットによる影響を受ける測定、および前記１対の量子ビットによる影響を受けると決定されている測定が存在しないこと、から成る特性の群から選択される、請求項１９に記載のコンピュータ・プログラム製品。
【請求項２１】
コンピュータ実行可能コンポーネントを格納するメモリと、
前記メモリに動作可能なように結合され、コンピュータ実行可能コンポーネントを実行するプロセッサとを備えているシステムであって、前記コンピュータ実行可能コンポーネントが、
アプリケーションに関連付けられたアルゴリズムの解析に基づいて、互いの間の直接接続の使用に対して定義された可能性閾値を満たすということが決定された量子ビットの対を抽出する抽出コンポーネントと、
前記量子ビットの対に関連付けられた特性の解析に基づいて、かつ前記特性に関連付けられた重みに基づいて、前記アルゴリズムに使用するための量子コンピューティング回路設計を決定する設計管理コンポーネントとを含む、システム。
【請求項２２】
前記設計管理コンポーネントが、前記量子ビットの対に関連付けられた前記特性を解析し、前記量子ビットの対に関連付けられた前記特性に基づいて、かつ前記特性に関連付けられた前記重みに基づいて、前記量子ビットの対を順位付けする、請求項２１に記載のシステム。
【請求項２３】
前記設計管理コンポーネントが、前記順位付けに基づいて前記量子ビットの対のうちの他の量子ビットの対よりも高い順位を有する前記量子ビットの対のサブセットを決定し、直接接続を持つことができる量子ビットの対の定義された数を示す定義された回路設計基準に基づいて、前記量子ビットの対の前記サブセットの前記量子ビットの対に直接接続を割り当てる、請求項２２に記載のシステム。
【請求項２４】
量子コンピューティング回路設計の決定を容易にするコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、プログラム命令が具現化されているコンピュータ可読ストレージ媒体を備えており、前記プログラム命令が、プロセッサに、
アプリケーションに関連付けられたアルゴリズムの解析に基づいて、互いの間の直接接続の使用に対して定義された可能性閾値を満たすということが決定された量子ビットの対を抽出することと、
前記量子ビットの対に関連付けられた特性の解析に基づいて、かつ前記特性に関連付けられた重みに基づいて、前記アルゴリズムに使用するための前記量子コンピューティング回路設計を決定することとを実行させるように、前記プロセッサによって実行可能である、コンピュータ・プログラム製品。
【請求項２５】
前記プログラム命令が、前記プロセッサに、
前記量子ビットの対に関連付けられた前記特性を解析することと、
前記量子ビットの対に関連付けられた前記特性の前記解析の結果に基づいて、かつ前記特性に関連付けられた前記重み値に基づいて前記量子ビットの対を順位付けすることとを実行させるように、前記プロセッサによって実行可能であり、前記特性が、前記量子ビットの対のうちの１対の量子ビットに関連付けられた影響を受ける下流の量子ビットの数、前記１対の量子ビットの間の２量子ビット・ゲート動作の数、前記１対の量子ビットによる影響を受ける測定、および前記１対の量子ビットによる影響を受けると決定されている測定が存在しないこと、から成る特性の群から選択される、請求項２４に記載のコンピュータ・プログラム製品。
【請求項２６】
請求項１ないし１１または２１ないし２３のいずれか一項に記載の前記システムによって生成された量子回路の回路設計を使用して量子コンピューティング回路の物理的レイアウトをエンジニアリングする方法。
【請求項２７】
請求項１２ないし１８のいずれか一項に記載の前記コンピュータ実装方法によって生成された量子回路の回路設計を使用して量子コンピューティング回路の物理的レイアウトをエンジニアリングする方法。
【請求項２８】
請求項２６または２７に記載のエンジニアリングする方法を使用してエンジニアリングされた量子コンピューティング回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は量子回路（例えば、量子回路設計）に関連している。
【背景技術】
【０００２】
量子コンピューティングは、トランジスタに基づく２進デジタル手法ではなく、量子物理学を採用して情報をエンコードおよび処理する。量子コンピューティング・デバイスは、量子物理学の法則に従って動作する量子ビット（quantum bits）（量子ビット（qubits）とも呼ばれる）を採用し、重ね合わせおよび量子もつれなどの現象を示すことができる。量子物理学の重ね合わせの原理は、量子ビットが「１」の値と「０」の値の両方を同時に部分的に表す状態になることを許容する。量子物理学の量子もつれの原理は、量子ビットの組み合わさった状態が個別の量子ビット状態に影響を与えることができないように、量子ビットが互いに相関関係を持つことを許容する。例えば、第１の量子ビットの状態は、第２の量子ビットの状態に依存することがある。そのため、量子回路は、量子ビットを採用し、トランジスタに基づく２進デジタル手法とは著しく異なることがある方法で情報をエンコードして処理することができる。しかし、量子回路の設計は、多くの場合、比較的困難であるか、または時間がかかるか、あるいはその両方である可能性がある。
【０００３】
量子回路設計に関して、従来の方法は、変動するレベル、および／または制限されたレベルの性能を伴って事実上すべての種類のアルゴリズムに利用できる、汎用量子コンピューティング回路を採用することである場合がある。汎用量子コンピューティング回路設計は、超伝導量子コンピューティング回路を作成して超伝導量子回路の動作を実行するためのアルゴリズムに利用できる。汎用量子コンピューティング回路は、通常、隣接する量子ビットのすべてに接続され得る量子ビットを含むことができ、すべての種類のアルゴリズムまたは事実上すべての種類のアルゴリズムを実行することができるが、例えば、リソースの制限および設計制約、ならびに汎用量子コンピューティング回路における量子ビットの接続の汎用性に少なくとも部分的に起因して、性能のレベルが変化するか、または制限されるか、あるいはその両方である。汎用量子コンピューティング回路に関しては、直接接続を有しない量子ビット間の操作のために、通常は、複数のスワップ・ゲートが使用され得る。しかし、汎用量子コンピューティング回路をアルゴリズムに使用することには、特に汎用量子コンピューティング回路を非理想的量子プロセッサで使用することに関して、複数の問題が存在することがある。特定の量子プロセッサは、例えば非理想的量子ビット（例えば、短いコヒーレンス時間）または非理想的ゲート（例えば、ゲート・エラー）あるいはその両方を含んでいることがあるため、非理想的であると見なすことができる。これらの非理想性またはその他の非理想性あるいはその両方に起因して、最終結果の妥当な忠実度を得たまま採用され得るゲート動作の数に対する制限が存在することがある。これらの種類の回路は、浅い、と表現されることが多い。汎用量子コンピューティング回路は、原理的に任意のアルゴリズムを実装できる一般的な接続性を有することができる。しかし、ゲートの忠実度が１００％でないため、使用されるゲート動作の数が比較的多いことに部分的に起因して、汎用量子コンピューティング回路をアルゴリズムに使用するときに、望ましくなく高いか、または過度に高いか、あるいはその両方である累積誤差率が存在することがある。汎用量子コンピューティング回路などの従来の量子コンピューティング回路設計のこれらおよびその他の欠陥は、量子回路設計の非効率的回路、有効でない回路、または非効率的性能、あるいはその組み合わせをもたらす可能性がある。
【発明の概要】
【０００４】
以下に、開示される対象の１つまたは複数の実施形態の基本的理解を可能にするための概要を示す。この概要は、主要な要素または重要な要素を特定するよう意図されておらず、特定の実施形態の範囲または特許請求の範囲を正確に説明するよう意図されていない。この概要の唯一の目的は、後で提示されるより詳細な説明のための前置きとして、概念を簡略化された形態で提示することである。本明細書に記載された１つまたは複数の実施形態では、システム、デバイス、構造、コンピュータ実装方法、装置、またはコンピュータ・プログラム製品、あるいはその組み合わせは、量子ビットの対に関連付けられた特性の解析に基づいて、アプリケーションに使用するための量子回路の回路設計の決定を容易にすることができる。
【０００５】
一実施形態によれば、システムは、コンピュータ実行可能コンポーネントを格納するメモリと、メモリに動作可能なように結合され、コンピュータ実行可能コンポーネントを実行するプロセッサとを備えている。コンピュータ実行可能コンポーネントは、アプリケーションの解析に基づいて、互いの間の直接接続を使用する必要性の定義された可能性閾値を満たすということが決定された量子ビットの対を抽出する抽出コンポーネントを含むことができる。コンピュータ実行可能コンポーネントは、量子ビットの対に関連付けられた特性の解析に基づいて、アプリケーションに使用するための量子回路の回路設計を決定する設計管理コンポーネントを含むこともできる。システムは、量子回路を使用してアプリケーションまたはアルゴリズムを実行するときに、システムが量子回路およびアプリケーションまたは関連するアルゴリズムの性能を高めることができるということを含む、複数の利点を有することができる。
【０００６】
一部の実施形態では、設計管理コンポーネントは、量子ビットの対に関連付けられた特性を解析することができ、量子ビットの対に関連付けられた特性および特性に関連付けられた重み値に基づいて、量子ビットの対をソートすることができる。特定の実施形態では、設計管理コンポーネントは、ソートに基づいて量子ビットの対のうちの他の量子ビットの対よりも高い順位を有する量子ビットの対のサブセットを決定することができ、直接接続を持つことが許可された量子ビットの対の最大数を示すことができる定義された回路設計基準に基づいて、量子ビットの対のサブセットの量子ビットの対に、直接接続を割り当てることができる。システムのこれらの実施形態は、システムが、アプリケーションまたは関連するアルゴリズムを実行するために量子回路において利用されるゲートの数を減らすことができ、アプリケーションまたは関連するアルゴリズムを実行するために量子回路において利用される接続を減らすことができるということを含む、複数の利点を提供することができる。
【０００７】
別の実施形態は、プロセッサに動作可能なように結合されたシステムによって、アプリケーションを解析することに基づいて、互いの間の直接接続を利用する必要性の定義された可能性閾値を満たすということが決定された量子ビットの対を抽出することを含む、コンピュータ実装方法に関連している。コンピュータ実装方法は、システムによって、量子ビットの対の特性を解析することに基づいて、アプリケーションに使用するための量子回路の回路設計を決定することも含む。コンピュータ実装方法は、量子回路を使用してアプリケーションまたは関連するアルゴリズムを実行するときに、方法が量子回路およびアプリケーションまたは関連するアルゴリズムの性能を高めることができるということを含む、複数の利点を有することができる。
【０００８】
特定の実施形態では、コンピュータ実装方法は、システムによって、量子ビットの対に関連付けられた特性を解析すること、およびシステムによって、量子ビットの対に関連付けられた特性および特性に関連付けられた重み値に基づいて、量子ビットの対をソートすることを、含むこともできる。他の実施形態では、コンピュータ実装方法は、システムによって、量子ビットの対のソートに基づいて、量子ビットの対のうちの他の量子ビットの対よりも高い順位を有する量子ビットの対のサブセットを決定することと、直接接続を量子ビットの対のサブセットの量子ビットの対に割り当てることとを含むことができ、量子ビットの対のサブセット内に存在できる量子ビットの対の最大数は、定義された回路設計基準に基づいて決定される。この方法のそのような実施形態は、この方法が、アプリケーションまたは関連するアルゴリズムを実行するために量子回路において利用されるゲートの数を減らすことができ、アプリケーションまたはアルゴリズムを実行するために量子回路において利用される接続を減らすことができるということを含む、複数の利点を提供することができる。
【０００９】
さらに別の実施形態は、量子回路の回路設計の決定を容易にするコンピュータ・プログラム製品に関連しており、このコンピュータ・プログラム製品は、プログラム命令が具現化されているコンピュータ可読ストレージ媒体を備えている。これらのプログラム命令は、アプリケーションの解析に基づいて、互いの間の直接接続を使用する必要性の定義された可能性閾値を満たすということが決定された量子ビットの対をプロセッサに抽出させるように、プロセッサによって実行可能である。これらのプログラム命令は、量子ビットの対の特性の解析に基づいて、アプリケーションに使用するための量子回路の回路設計を決定するように、プロセッサによって実行可能でもある。コンピュータ・プログラム製品は、量子回路を使用してアプリケーションまたは関連するアルゴリズムを実行するときに、コンピュータ・プログラム製品が量子回路およびアプリケーションまたは関連するアルゴリズムの性能を高めることができるということを含む、複数の利点を有することができる。
【００１０】
一部の実施形態では、これらのプログラム命令は、プロセッサに、量子ビットの対に関連付けられた特性を解析することと、量子ビットの対に関連付けられた特性および特性に関連付けられた重み値に基づいて量子ビットの対をソートすることとを実行させるように、プロセッサによって実行可能であることができ、これらの特性は、量子ビットの対のうちの１対の量子ビットに関連付けられた影響を受ける下流の量子ビットの数、その１対の量子ビットの間の２量子ビット・ゲート動作の数、その１対の量子ビットによる影響を受ける測定、およびその１対の量子ビットによる影響を受けると決定されている測定が存在しないこと、から成る特性の群から選択され得る。コンピュータ・プログラム製品のこれらの実施形態は、コンピュータ・プログラム製品が、アプリケーションまたは関連するアルゴリズムを実行するために量子回路において利用されるゲートの数を減らすことができ、アプリケーションまたはアルゴリズムを実行するために量子回路において利用される接続を減らすことができるということを含む、複数の利点を提供することができる。
【００１１】
さらに別の実施形態によれば、システムは、コンピュータ実行可能コンポーネントを格納するメモリと、メモリに動作可能なように結合され、コンピュータ実行可能コンポーネントを実行するプロセッサとを備えている。コンピュータ実行可能コンポーネントは、アプリケーションに関連付けられたアルゴリズムの解析に基づいて、互いの間の直接接続の使用に対して定義された可能性閾値を満たすということが決定された量子ビットの対を抽出する抽出コンポーネントを含むことができる。コンピュータ実行可能コンポーネントは、量子ビットの対に関連付けられた特性の解析に基づいて、かつ特性に関連付けられた重みに基づいて、アルゴリズムに使用するための量子コンピューティング回路設計を決定する設計管理コンポーネントを含むこともできる。システムは、量子コンピューティング回路設計を使用してアルゴリズムを実行するときに、システムが量子コンピューティング回路設計およびアルゴリズムの性能を高めることができるということを含む、複数の利点を有することができる。
【００１２】
特定の実施形態では、設計管理コンポーネントは、量子ビットの対に関連付けられた特性を解析することができ、量子ビットの対に関連付けられた特性に基づいて、かつ特性に関連付けられた重みに基づいて、量子ビットの対を順位付けすることができる。他の実施形態では、設計管理コンポーネントは、順位付けに基づいて量子ビットの対のうちの他の量子ビットの対よりも高い順位を有する量子ビットの対のサブセットを決定することができ、直接接続を持つことができる量子ビットの対の定義された数を示すことができる定義された回路設計基準に基づいて、量子ビットの対のサブセットの量子ビットの対に、直接接続を割り当てることができる。システムのそのような実施形態は、システムが、アルゴリズムを実行するために量子回路において利用されるゲートの数を減らすことができ、アルゴリズムを実行するために量子回路において利用される接続を減らすことができるということを含む、複数の利点を提供することができる。
【００１３】
さらに別の実施形態は、量子コンピューティング回路設計の決定を容易にするコンピュータ・プログラム製品に関連しており、このコンピュータ・プログラム製品は、プログラム命令が具現化されているコンピュータ可読ストレージ媒体を備えている。これらのプログラム命令は、アプリケーションに関連付けられたアルゴリズムの解析に基づいて、互いの間の直接接続の使用に対して定義された可能性閾値を満たすということが決定された量子ビットの対をプロセッサに抽出させるように、プロセッサによって実行可能である。これらのプログラム命令は、量子ビットの対に関連付けられた特性の解析に基づいて、かつ特性に関連付けられた重みに基づいて、アルゴリズムに使用するための量子コンピューティング回路設計を決定するように、プロセッサによって実行可能でもある。コンピュータ・プログラム製品は、量子コンピューティング回路設計を使用してアプリケーションまたは関連するアルゴリズムを実行するときに、コンピュータ・プログラム製品が量子コンピューティング回路設計およびアプリケーションまたは関連するアルゴリズムの性能を高めることができるということを含む、複数の利点を有することができる。
【００１４】
一部の例示的な実施形態では、これらのプログラム命令は、プロセッサに、量子ビットの対に関連付けられた特性を解析することと、量子ビットの対に関連付けられた特性の解析の結果に基づいて、かつ特性に関連付けられた重み値に基づいて、量子ビットの対を順位付けすることとを実行させるように、プロセッサによって実行可能であることができ、これらの特性は、量子ビットの対のうちの１対の量子ビットに関連付けられた影響を受ける下流の量子ビットの数、その１対の量子ビットの間の２量子ビット・ゲート動作の数、その１対の量子ビットによる影響を受ける測定、およびその１対の量子ビットによる影響を受けると決定されている測定が存在しないこと、から成る特性の群から選択され得る。コンピュータ・プログラム製品のこれらの実施形態は、コンピュータ・プログラム製品が、アプリケーションまたは関連するアルゴリズムを実行するために量子回路において利用されるゲートの数を減らすことができ、アプリケーションまたはアルゴリズムを実行するために量子回路において利用される接続を減らすことができるということを含む、複数の利点を提供することができる。
【００１５】
これらおよびその他の特徴は、以下の詳細な実施形態例の説明から明らかになり、その説明は添付の図面と併せて読む必要がある。
【図面の簡単な説明】
【００１６】
【図１】開示される対象のさまざまな態様および実施形態に従って、アプリケーションまたはアルゴリズムのための、アプリケーションまたはアルゴリズムに固有の量子コンピューティング回路設計を効率的に設計するために利用され得る、例示的な非限定的システムのブロック図を示す図である。
【図２】開示される対象のさまざまな態様および実施形態に従って、望ましいカスタム量子コンピューティング回路設計（例えば、アルゴリズムに固有の量子コンピューティング回路設計）が決定され得る、例示的な非限定的アルゴリズムを示す図である。
【図３】開示される対象のさまざまな態様および実施形態に従って、例示的なアルゴリズムの望ましい量子コンピューティング回路設計のための例示的なアルゴリズムに固有の回路図生成、および望ましい量子コンピューティング回路設計の対応する回路図の構築を示す図である。
【図４】開示される対象のさまざまな態様および実施形態に従って、例示的な量子コンピューティング回路を示す図である。
【図５】開示される対象のさまざまな態様および実施形態に従って、例示的な設計コンポーネントのブロック図を示す図である。
【図６】開示される対象のさまざまな態様および実施形態に従って、アプリケーションまたはアルゴリズムのための、アプリケーションまたはアルゴリズムに固有の量子コンピューティング回路設計を決定するための、例示的な非限定的方法のフロー図を示す図である。
【図７】開示される対象のさまざまな態様および実施形態に従って、アプリケーションまたはアルゴリズムのための、アプリケーションまたはアルゴリズムに固有の量子コンピューティング回路設計を決定する別の例示的な非限定的方法のフロー図を示す図である。
【図８】開示される対象のさまざまな態様および実施形態に従って、アプリケーションまたはアルゴリズムのための複数のアプリケーションまたはアルゴリズムに固有の量子コンピューティング回路設計のうちの、どのアプリケーションまたはアルゴリズムのためのアプリケーションまたはアルゴリズムに固有の量子コンピューティング回路設計がアプリケーションまたはアルゴリズムに使用されるかを決定する、例示的な非限定的方法のフロー図を示す図である。
【図９】本明細書に記載された１つまたは複数の実施形態を容易にすることができる例示的な非限定的動作環境のブロック図を示す図である。
【図１０】量子コンピューティング回路の例示的なトフォリ・ゲートを示す図である。
【発明を実施するための形態】
【００１７】
以下の詳細な説明は、例にすぎず、実施形態、または実施形態の適用もしくは使用、あるいはその両方を制限するよう意図されていない。さらに、先行する「背景技術」もしくは「発明の概要」のセクション、または「発明を実施するための形態」のセクションで提示された、いずれかの明示されたか、または暗示された情報によって制約されるという意図はない。
【００１８】
ここで、図面を参照して１つまたは複数の実施形態が説明され、図面全体を通じて、類似する参照番号が、類似する要素を参照するために使用されている。以下の説明では、説明の目的で、１つまたは複数の実施形態を十分に理解できるように、多数の特定の詳細が示されている。しかし、これらの特定の詳細がなくても、さまざまな事例において、１つまたは複数の実施形態が実践され得るということは明らかである。
【００１９】
超伝導量子コンピューティング回路の動作は、量子コンピューティング回路設計において固定され得る量子ビット（quantum bits）（qubitとも呼ばれる）を直接結合するために、共振結合器（例えば、「バス」）の接続性または容量結合器の接続性に依存することがある。汎用量子コンピューティング回路は、通常、隣接する量子ビットのすべてに接続され得る量子ビットを含むことができ、通常、事実上任意の種類のアルゴリズムを実行することができる。汎用量子コンピューティング回路に関しては、直接接続を含まない量子ビットでの動作のために、通常は、複数のスワップ・ゲートが使用され得る。非理想性に起因して、回路の動作中に採用され得るゲート動作の数に対する制限（例えば、「浅い」量子コンピューティング回路）が存在することがある。
【００２０】
コヒーレンス時間は、量子ビットが、外部環境によって影響を受ける前に量子もつれ状態を含む量子状態に留まることができる時間を特徴付けることができる。現在、コヒーレンス時間は比較的短くなることがあり、例えば超伝導量子ビットでは、５００マイクロ秒（μｓ）未満である。コヒーレンス時間を伸ばすことは困難であることがあり、このことが、「浅い」量子コンピューティング回路をもたらす可能性があり、「浅い」量子コンピューティング回路のゲート動作の数は、制限される場合がある。
【００２１】
量子エラー修正および長い有効コヒーレンス時間を有する論理量子ビットが実現され得る前でさえも、量子回路を使用することに利点があることがある。例えば量子動力学などの一部のアプリケーションは、古典的コンピュータ上で実行される場合、比較的洗練されたアルゴリズムを採用することができ、または比較的大きな量の計算能力を利用することができ、あるいはその両方を行うことができ、そのようなアプリケーションには望ましくない非効率的な古典的コンピュータを利用することができる。また、アプリケーションは、特定の（または固有の）アルゴリズムを含むか、または利用することができ、アルゴリズムは、量子回路が採用された場合に、それぞれ量子ビットのサブセットに対して、特定のシーケンシャル・ゲート動作を含むか、または採用することができる。量子回路の使用は、量子エラー修正および長いコヒーレンス時間を有する論理量子ビットがまだ達成されていないときにも、そのようなアプリケーション（例えば、洗練されたアルゴリズムを採用する量子動力学アプリケーションなどのアプリケーション）を実行する場合、通常、古典的計算よりも優れた性能を実現することができる。
【００２２】
超伝導量子コンピューティング回路では、特定のゲート動作によって、接続性の問題が克服され得る。例えば、超伝導量子コンピューティング回路では、ゲート分解およびスワップ・ゲートの使用によって、接続性の問題が克服され得る。理論的には、アプリケーションまたはアルゴリズムは、汎用量子コンピューティング回路上で実行され得る。しかし、汎用量子コンピューティング回路上でアプリケーションまたはアルゴリズムを実行する場合、アルゴリズムにおける非効率性をもたらす可能性のあるコストまたはトレードオフが存在することがある。これらの非効率性は、汎用量子コンピューティング回路を使用するアプリケーションまたはアルゴリズムの性能に悪影響を与える（例えば、性能を低下させる）可能性がある。例えば、汎用量子コンピューティング回路を使用してアプリケーションまたはアルゴリズムを実行する場合、コストおよびトレードオフとして、比較的に過度に多い数のゲート動作が存在し、この数が、汎用量子コンピューティング回路を使用するときに、コヒーレンス時間によって制限される可能性があることなどがある。汎用量子コンピューティング回路を使用してアプリケーションまたはアルゴリズムを実行する場合、ゲートの忠実度が１００％でないため、比較的に過度に高い累積誤差率が存在する可能もある。汎用量子コンピューティング回路を使用してアプリケーションまたはアルゴリズムを実行する場合、アプリケーションまたはアルゴリズムに含まれる量子ビットの数が多いほど、コストまたはトレードオフが高くなる可能性がある。
【００２３】
過剰なゲート動作を使用することの悪影響が、例えば、Linke, N. M. et al., Experimental comparison of two quantum computing architectures, Proc.Natl. Acad. Sci., Vol. 114, No. 13, 3305-3310 (2017)において、量子コンピューティング回路アーキテクチャを比較する実験結果によって示されている。図１０は、量子コンピューティング回路の例示的なトフォリ・ゲート１０００の図を示している。量子コンピューティング回路が、量子ビットの２つの接続されていない対の間に、トフォリ・ゲート１０００などのゲートを含んでいる場合、例えば星形回路アーキテクチャに利用されるスワップ動作を引き起こすために追加の２つの量子ビット・ゲートを使用することに起因して、オーバーヘッドが存在する可能性がある。２つの量子コンピューティングアーキテクチャの実験比較（Ｌｉｎｋｅ他）では、超伝導ハードウェア・システムでの星形接続アーキテクチャおよびイオン・トラップ・システムでの完全に接続された接続アーキテクチャを使用して、トフォリ・ゲート１０００などのゲートを含んでいる回路上で４つのアルゴリズムが実行され、表１のような特定の実験結果が得られた。
【００２４】
【表１】
2021536629.tif 000003
表１は、パーセンテージ値として表された回路の成功確率の要約であり、Ｏｂｓは観測確率を表し、第１の推定値は、総合誤差（１−Ｅｇ）√Ｎでのランダムな（Ｒａｎｄ：random）誤差伝搬を仮定しており、第２の推定値は、総合誤差（１−Ｅｇ）Ｎでの体系的（Ｓｙｓ：systematic）でコヒーレントな過回転および回転不足に基づき、Ｎはゲートの数であり、Ｅｇはゲート誤差パラメータである。
【００２５】
したがって、汎用量子コンピューティング回路などの従来の量子コンピューティング回路は、量子ビット間の過剰な接続または不必要な接続、量子ビットに関連付けられたコヒーレンス時間によって制限されることがある、過度に多い数のゲート動作、およびゲートの忠実度が１００％でないことによる過度に高い累積誤差率を含む、前述した問題などの複数の問題に対して、不十分である可能性がある。開示される対象は、従来の量子コンピューティング回路に伴うこれらの問題またはその他の問題あるいはその両方のすべてまたは少なくとも一部に対する解決策を、アプリケーションまたはアルゴリズムと共に使用するためのカスタム（例えば、アプリケーションまたはアルゴリズムに固有の）量子コンピューティング回路（例えば、超伝導量子コンピューティング回路）を決定する形態または設計する形態あるいはその両方で提示するように実装され得る。開示される対象は、アプリケーションまたはアルゴリズムと共に使用するためのカスタム量子コンピューティング回路を決定することまたは設計することあるいはその両方によって、例えば、アプリケーションまたはアルゴリズムを実行するために量子コンピューティング回路において利用されるゲートの数を減らし、アプリケーションまたはアルゴリズムを実行するために量子コンピューティング回路において利用される接続を減らし、量子コンピューティング回路を使用してアプリケーションまたはアルゴリズムを実行するときの量子コンピューティング回路およびアプリケーションまたはアルゴリズムの性能を高めることができる。
【００２６】
そのため、本明細書におけるさまざまな実施形態は、アプリケーションまたはアルゴリズムに固有の量子コンピューティング回路（例えば、超伝導量子コンピューティング回路）を設計するための手法に関連している。開示される対象は、例えば、特定のアプリケーションまたはアルゴリズムのための物理的レイアウト方式（例えば、量子コンピューティング回路の物理的レイアウト）をエンジニアリングする（engineer）ために（本明細書において使用されるとき、「エンジニアリングする」という用語は、製造または構築あるいはその両方を含む）、そのような手法を採用することができ、この物理的レイアウト方式は、特定のアプリケーションまたはアルゴリズムを実行するために量子コンピューティング回路上で利用される（例えば、汎用量子コンピューティング回路と比較して）削減された数のゲートを採用することができる。開示される対象は、アプリケーションまたはアルゴリズムの望ましい（例えば、最適な、改善された、適切な、または許容できる）性能、およびそれに応じて、（例えば、汎用量子コンピューティング回路と比較して、または汎用量子コンピューティング回路を上回る）量子コンピューティング回路の望ましい性能を実現できる、アプリケーションまたはアルゴリズム（例えば、量子アルゴリズム）のためのアプリケーションまたはアルゴリズムに固有の量子コンピューティング回路を生成することができる。
【００２７】
開示される対象は、特定のアプリケーションまたはアルゴリズムのための特定のアプリケーションまたはアルゴリズムに固有の量子コンピューティング回路（例えば、カスタム量子コンピューティング回路または調整された量子コンピューティング回路）を設計するために採用され得る設計コンポーネントを備えることができる。設計コンポーネントは、アプリケーションまたはアルゴリズムの解析の結果に少なくとも部分的に基づいて、アプリケーションまたはアルゴリズムに従って、量子回路設計において互いの間の直接接続（例えば、量子ビットの対内の量子ビット間の直接接続）を使用する必要性の定義された可能性閾値を満たすということが決定された量子ビットの対を抽出できる抽出コンポーネントを備えることができる。量子ビットの対は、例えば、アプリケーションまたはアルゴリズムおよび定義された回路設計基準（および、定義された回路設計基準に少なくとも部分的に基づく（例えば、定義された回路設計基準によって示されるか、または指定される）ことができる関連する定義された可能性閾値）に従って、アプリケーションまたはアルゴリズムに関して量子ビットの対内の量子ビット間の直接接続が望ましい（例えば、特に有益であるか、有利であるか、または好ましいか、あるいはその組み合わせである）、量子ビットの対であることができる。設計コンポーネントは、量子ビットの対に関連付けられた特性の解析の結果に少なくとも部分的に基づいて、アプリケーションまたはアルゴリズムに使用するための量子回路の回路設計を決定できる設計管理コンポーネントを含むこともできる。アプリケーションまたはアルゴリズムのための量子回路設計を決定することの一部として、設計管理コンポーネントは、例えば、量子ビットの対に関連付けられた特性の解析の結果、ならびに量子回路設計に関連付けられた適用可能な処理および設計制約に少なくとも部分的に基づいて、量子ビットの対（例えば、抽出された量子ビットの対）のうちのどれに量子ビットの対内の直接接続を割り当てるべきかを決定することができ、そのような解析は、本明細書においてさらに詳細に説明されるように、例えば、重み付け方式を特性に適用すること、および特性の重み付けに従って量子ビットの対をソートすることまたは順位付けすることあるいはその両方を実行することを、含むことができる。
【００２８】
設計管理コンポーネントは、重み付け方式および量子ビットの対に関連付けられた特性によって、量子ビットの対をソートすることができる。特性は、例えば、量子ビットの対のうちの１対の量子ビットに関して影響を受ける下流の量子ビットの数、１対の量子ビットの間の２量子ビット・ゲート動作の数、１対の量子ビットによる影響を受ける可能性のある測定、または１対の量子ビットによる影響を受ける測定が存在しないということの決定、あるいはその組み合わせを含むことができる。ソートの結果に少なくとも部分的に基づいて、設計管理コンポーネントは、量子ビットの対に割り当てられ得る直接接続の最大数を制限するか、または示す（例えば、最大数の定義された閾値を示す）ことができるプロセスまたは設計あるいはその両方の仕様に関連するか、または少なくとも部分的に基づくか、あるいはその両方であることができる定義された回路設計基準に従って、より高い順位の量子ビットの対であると決定された量子ビットの対のサブセットを選択することができる。設計管理コンポーネントは、直接接続をそれらのより高い順位の量子ビットの対に割り当てることができる。
【００２９】
設計管理コンポーネントが、プロセスまたは設計あるいはその両方の仕様、またはアプリケーションもしくはアルゴリズム、あるいはその両方に関連する定義された回路設計基準を満たすことができる２つ以上の回路設計を決定または作成した場合、設計管理コンポーネントは、本明細書においてさらに詳細に説明されるように、適用可能な回路設計基準（例えば、最も適切な回路設計を決定することに関連する他の回路設計基準）に従って、そのような回路設計を解析し、他の回路設計と比較して最も適切な回路設計を決定することができる。
【００３０】
ここで、開示される対象のこれらおよびその他の態様および実施形態が、図面に関して説明される。
【００３１】
図１は、開示される対象のさまざまな態様および実施形態に従って、アプリケーションまたはアルゴリズムのための、アプリケーションまたはアルゴリズムに固有の量子コンピューティング回路設計（例えば、超伝導量子コンピューティング回路）を効率的に設計するために利用され得る、例示的な非限定的システム１００のブロック図を示している。システム１００は、特定のアプリケーションまたはアルゴリズムのためのアプリケーションまたはアルゴリズムに固有の量子コンピューティング回路を設計するために利用され得る。
【００３２】
システム１００は、アプリケーションまたはアルゴリズムのための量子コンピューティング回路を設計するために採用され得る設計コンポーネント１０２を備えることができる。設計コンポーネント１０２は、本明細書において説明されているように、アプリケーションまたはアルゴリズムのためのアプリケーションまたはアルゴリズムに固有の量子コンピューティング回路を設計するためのさまざまな手法を採用することができる。設計コンポーネント１０２は、例えば、特定のアプリケーションまたはアルゴリズムのための物理的レイアウト方式（例えば、量子コンピューティング回路の物理的レイアウト）をエンジニアリングするために、そのような手法を採用することができ、物理的レイアウト方式は、特定のアプリケーションまたはアルゴリズムを実行する（例えば、より効率的に実行する）ために量子コンピューティング回路において利用される（例えば、汎用量子コンピューティング回路と比較して）削減された数のゲートを採用することができる。設計コンポーネント１０２は、アプリケーションまたはアルゴリズムの望ましい（例えば、最適な、改善された、適切な、または許容できる）性能、およびそれに応じて、（例えば、汎用量子コンピューティング回路と比較して）量子コンピューティング回路の望ましい性能を実現できる、アプリケーションまたはアルゴリズム（例えば、量子アルゴリズム）のためのアプリケーションまたはアルゴリズムに固有の量子コンピューティング回路を生成することができる。
【００３３】
設計コンポーネント１０２は、抽出コンポーネント１０４および設計管理コンポーネント１０６を備えることができる。設計管理コンポーネント１０６は、アプリケーションまたはアルゴリズムを解析することができる。例えば、設計管理コンポーネント１０６は、アプリケーションまたはアルゴリズムの特性、機能、または特徴、あるいはその組み合わせを解析することができる。アプリケーションまたはアルゴリズムの解析の一部として、設計管理コンポーネント１０６は、アプリケーションまたはアルゴリズムの量子ビットまたは量子ビットの対あるいはその両方を識別するか、または決定することができる。
【００３４】
一部の実施形態では、設計管理コンポーネント１０６が、アプリケーションまたはアルゴリズムの解析の結果に少なくとも部分的に基づいて、定義された回路設計基準に従って、量子回路設計において互いの間の直接接続（例えば、量子ビットの対内の量子ビット間の直接接続）を使用する必要性の定義された可能性閾値を満たすアプリケーションまたはアルゴリズムの量子ビットの対を決定し、抽出コンポーネント１０４が、そのような量子ビットの対をアプリケーションまたはアルゴリズムから抽出することができる。設計管理コンポーネント１０６は、本明細書においてさらに詳細に説明されるように、量子ビットの対に関連付けられた特性の解析の結果に少なくとも部分的に基づいて、定義された回路設計基準に従って、アプリケーションまたはアルゴリズムに使用するための量子コンピューティング回路設計を決定することができる。
【００３５】
図２を（図１と共に）参照すると、図２は、開示される対象のさまざまな態様および実施形態に従って、設計コンポーネント１０２が望ましいカスタム量子コンピューティング回路設計（例えば、アルゴリズムに固有の量子コンピューティング回路設計）を決定できる、例示的な非限定的アルゴリズム２００の図を示している。例えば、（例えば、設計管理コンポーネント１０６による）アルゴリズム２００（例えば、アルゴリズム２００の特性、機能、または特徴、あるいはその組み合わせ）の解析の結果に少なくとも部分的に基づいて、設計管理コンポーネント１０６は、定義された回路設計基準に従って、量子回路設計において互いの間の直接接続を使用する必要性の定義された可能性閾値を満たすアルゴリズム２００の量子ビットの対を決定することができる。例えば、アルゴリズム２００の解析の結果に少なくとも部分的に基づいて、設計管理コンポーネント１０６は、量子回路設計において互いの間の直接接続を使用する必要性の定義された可能性閾値を満たすアルゴリズム２００の量子ビットの対のセットを識別するか、または決定することができ、量子ビットの対のセットは、例えば、量子ビットの対１２２０２、量子ビットの対１３２０４、量子ビットの対２３２０６、量子ビットの対３４２０８、量子ビットの対４５２１０、量子ビットの対４６２１２、および量子ビットの対５６２１４を含むことができる。図２のアルゴリズム２００から観察され得るように、量子ビットの対のセット内の量子ビットの対（例えば、量子ビットの対２０２〜２１４）は、少なくとも潜在的に、直接接続を利用することができる。
【００３６】
抽出コンポーネント１０４は、アルゴリズム２００から量子ビットの対を抽出することができる。設計管理コンポーネント１０６は、量子ビットの対のセット内の量子ビットの対（例えば、量子ビットの対２０２〜２１４）に関連付けられた特性（例えば、属性）の解析の結果に少なくとも部分的に基づいて、定義された回路設計基準に従って、アルゴリズム２００（またはアプリケーション）に使用するための望ましい（例えば、カスタムまたは調整された）量子コンピューティング回路設計を決定することができる。アルゴリズム２００のための望ましい（例えば、カスタムまたは調整された）量子コンピューティング回路設計の決定を容易にするために、設計管理コンポーネント１０６は、アルゴリズム２００の量子ビットの対のセットの量子ビットの対（例えば、量子ビットの対２０２〜２１４）を解析して、量子ビットの対に関連付けられた特性を識別するか、または決定することができ、量子ビットの対に関連付けられた特性を解析することができる。例えば、設計管理コンポーネント１０６は、第１の量子ビットの対に関連付けられた特性の第１のセット、第２の量子ビットの対に関連付けられた特性の第２のセット、第３の量子ビットの対に関連付けられた特性の第３のセットなどを識別し、解析することができる。特性は、例えば、量子ビットの対（例えば、量子ビットの対２０２〜２１４）のうちの１つの量子ビットの対に関連付けられた影響を受ける下流の量子ビットの数、１つの量子ビットの対の間の２量子ビット・ゲート動作の数、１つの量子ビットの対による影響を受ける可能性のある測定、または１つの量子ビットの対による影響を受ける測定が存在しないということの決定、あるいはその組み合わせを含むことができる。
【００３７】
例えば、アルゴリズム２００の量子ビットの対の解析の結果、および量子ビットの対の特性に少なくとも部分的に基づいて、設計管理コンポーネント１０６は、（最も左に存在し、アルゴリズム２００において量子ビットの対を左から右に検討する場合、アルゴリズム２００において最も早い時間に適用される）量子ビットの対３４が、下流の他の量子ビットのすべてに影響を与える可能性があり、この量子ビットの数が、他の量子ビットの対のうちのどの量子ビットの対によって影響を受ける量子ビットの数よりも多いため、量子ビットの対３４２０８が、他の量子ビットの対（例えば、量子ビットの対２０２、２０４、２０６、２１０、２１２、および２１４）と比較して影響を受ける下流の量子ビットを最も多く有しているということを決定できる。設計管理コンポーネント１０６は、量子ビットの対２３２０６および量子ビットの対４５２１０が、他の量子ビットの対と比較して２番目に多い数の影響を受ける下流の量子ビットをそれぞれ有しているということも決定できる。
【００３８】
別の例として、設計管理コンポーネント１０６は、アルゴリズム２００に関して、量子ビットの対２３２０６および量子ビットの対４５２１０が、量子ビットの対のセットの他の量子ビットの対（例えば、量子ビットの対２０２、２０４、２０８、２１２、および２１４）と比較して最も多い数の２量子ビット・ゲート動作を有しているということを決定できる。例えば、設計管理コンポーネント１０６は、量子ビットの対２３２０６および量子ビットの対４５２１０が、アルゴリズム２００に対してそれぞれ３回呼び出されるということを決定することができ、この回数が、量子ビットのセットの他の量子ビットの対よりも多いということを決定することができ、したがって、量子ビットの対２３２０６および量子ビットの対４５２１０が、量子ビットの対のセットの他の量子ビットの対と比較して最も多い数の２量子ビット・ゲート動作を有しているということを決定することができる。
【００３９】
設計管理コンポーネント１０６は、量子ビットのセットの量子ビットの対（例えば、２０２〜２１４）に関連付けられた特性の解析の結果、および量子ビットの対に関連付けられた特性に関連付けられた（例えば、特性に割り当てられたか、または特性に対して決定された）重み値に少なくとも部分的に基づいて、定義された回路設計基準に従って、量子ビットの対のセットの量子ビットの対（例えば、量子ビットの対２０２〜２１４）をソートすることができる。設計管理コンポーネント１０６は、重みを決定して特性（例えば、特性の種類）に割り当てることができる。例えば、設計管理コンポーネント１０６は、第１の重みを決定し、量子ビットの対に関連付けられた第１の（例えば、特性の第１の種類の）特性（例えば、量子ビットの対に関連付けられた影響を受ける下流の量子ビットの数）に割り当てるか、第２の重みを決定し、量子ビットの対に関連付けられた第２の特性（例えば、量子ビットの対の間の２量子ビット・ゲート動作の数）に割り当てるか、または第３の重みを決定し、量子ビットの対に関連付けられた第３の特性（例えば、量子ビットの対による影響を受ける可能性のある測定、または量子ビットの対による影響を受ける測定が存在しないということの決定）に割り当てるか、あるいはその組み合わせなどを実行することができる。
【００４０】
量子ビットの対に関連付けられた特定の特性および特定の数の特性が本明細書において開示されているが、開示される対象のさまざまな実施形態に従って、本明細書で開示された特性に加えて、もしくは本明細書で開示された特性以外に、量子ビットの対の他の種類の特性が存在することができるため、および／または４つ以上、３つ、もしくは３つ未満になり得ると考えられる望ましい数の量子ビットの対の特性が存在することができるため、開示される対象がそのように限定されないということが理解されるべきである。
【００４１】
設計管理コンポーネント１０６は、量子ビットの対のセットの量子ビットの対（例えば、量子ビットの対２０２〜２１４）のソートの結果に少なくとも部分的に基づいて、定義された回路設計基準に従って、量子ビットの対のセットの量子ビットの対の順位を決定することができる。例えば、アルゴリズム２００に関して、設計管理コンポーネント１０６が、他の量子ビットの対（例えば、量子ビットの対２０２、２０４、２０６、２１０、２１２、および２１４）の重みスコアと比較して、量子ビットの対３４２０８が量子ビットの対のセットの量子ビットの対の最高の重みスコアを有するということを決定した場合、設計管理コンポーネント１０６は、他の量子ビットの対（例えば、量子ビットの対２０２、２０４、２０６、２１０、２１２、および２１４）の順位と比較して、量子ビットの対３４２０８が最も高く順位付けされるということを決定できる。設計管理コンポーネント１０６が、他の量子ビットの対（例えば、量子ビットの対２０２、２０４、２０８、２１２、および２１４）の重みスコアと比較して、量子ビットの対２３２０６または量子ビットの対４５２１０あるいはその両方が量子ビットの対のセットの量子ビットの対の２番目に高い重みスコアを有するということを決定した場合、設計管理コンポーネント１０６は、他の量子ビットの対の順位と比較して、量子ビットの対２３２０６または量子ビットの対４５２１０あるいはその両方が２番目に高く順位付けされる（または２番目の順位と同点になる）ということを決定できる。
【００４２】
例えば、アルゴリズム２００に関して、適用可能な回路設計基準が、１つの量子ビットの対の間の２量子ビット・ゲート動作の数に関する特性に割り当てられて適用される重み値、および１つの量子ビットの対による影響を受ける可能性のある測定（または量子ビットの対による影響を受ける測定が存在しないということの決定）に関する特性に割り当てられて適用される重み値よりも十分に高い重み値が、１つの量子ビットの対に関連付けられた影響を受ける下流の量子ビットの数に関する特性に割り当てられるということをもたらす場合、量子ビットの対２３２０６および量子ビットの対４５２１０が２番目に多い数の影響を受ける下流の量子ビットをそれぞれ有しており、量子ビットの対の間の最多の数の２量子ビット・ゲート動作をそれぞれ有していても、量子ビットの対３４２０８の重みスコアは、量子ビットの対２３２０６および量子ビットの対４５２１０（およびその他の量子ビットの対）の重みスコアよりも高くなる可能性がある。しかし、アルゴリズム２００に関して、適用可能な回路設計基準が異なっており、したがって、量子ビットの対の間の２量子ビット・ゲート動作の数に関する特性に割り当てられて適用される重み値よりも十分に高くないか、または低く、量子ビットの対による影響を受ける可能性のある測定（または量子ビットの対による影響を受ける測定が存在しないということの決定）に関する特性に割り当てられて適用される重み値よりも十分に高くないか、または低い重み値が、量子ビットの対に関連付けられた影響を受ける下流の量子ビットの数に関する特性に割り当てられている場合、量子ビットの対３４２０８が最多の数の影響を受ける下流の量子ビットを有していても、量子ビットの対３４２０８の重みスコアは、量子ビットの対２３２０６および量子ビットの対４５２１０の重みスコアの各々よりも低くなる可能性があり、その結果、設計管理コンポーネント１０６が量子ビットの対２３２０６および量子ビットの対４５２１０を量子ビットの対３４２０８よりも高く順位付けする可能性がある。
【００４３】
量子ビットの対のセットの量子ビットの対（例えば、量子ビットの対２０２〜２１４）の順位付けに少なくとも部分的に基づいて、設計管理コンポーネント１０６は、定義された回路設計基準に従って、量子ビットの対のセットの他の量子ビットの対（例えば、量子ビットの対２０２〜２１４）と比較してより高い順位を有するということが決定された量子ビットの対のうちの量子ビットの対のサブセットを選択することができる。アルゴリズム（例えば、アルゴリズム２００）またはアプリケーションのための望ましい（例えば、カスタムまたは調整された）量子コンピューティング回路設計に関して、設計管理コンポーネント１０６は、量子ビットのセットの他の量子ビットの対よりも高い順位（例えば、より高い重みスコア）を有するということが決定された対のサブセットの１つまたは複数の量子ビットの対の各々に直接接続を割り当てることができる。設計管理コンポーネント１０６は、アルゴリズム（例えば、アルゴリズム２００）またはアプリケーションのための量子コンピューティング回路設計の量子ビットの対に割り当てられ得る直接接続の最大数を制限するか、または示す（例えば、定義された閾値を示す）ことができるプロセスまたは設計あるいはその両方の仕様に関連することができる定義された回路設計基準に少なくとも部分的に基づいて、量子ビットの対のサブセットに含まれ得る量子ビットの対の数（例えば、１、２、３、またはそれ以上）を決定することができる。
【００４４】
量子コンピューティング回路が設計されている特定のアプリケーションもしくはアルゴリズム、または定義された回路設計基準、あるいはその両方に一部分において応じて、量子ビットの対のサブセットに含まれ得る量子ビットの対の数は、量子ビットの対に割り当てられ得る直接接続の最大数であることができ、または量子ビットの対に割り当てられ得る直接接続の最大数未満であることができる。例えば、適用可能なプロセスまたは設計あるいはその両方の仕様に関連する適用可能な定義された回路設計基準が、望ましい量子コンピューティング回路設計において直接接続を持つことができる量子ビットの対の最大数が４であるということを示すか、または指定する場合、設計管理コンポーネント１０６は、量子ビットの対のセットの最も高く順位付けされた４つの量子ビットの対を、量子ビットの対のサブセットに含まれるように識別して選択することができ、量子ビットの対のサブセットを構成する最も高く順位付けされたそれらの４つの量子ビットの対に、直接接続を割り当てることができる。アプリケーションまたはアルゴリズム（例えば、アルゴリズム２００）のための望ましい（例えば、カスタムまたは調整された）量子コンピューティング回路設計において、設計管理コンポーネント１０６は、量子ビットの対のサブセットに含まれていない量子ビットの対のセットの残りの量子ビットの対に対して、他の接続（例えば、非直接接続）を決定することができる。例えば、設計管理コンポーネント１０６は、アプリケーションまたはアルゴリズム（例えば、アルゴリズム２００）の特性または仕様あるいはその両方に少なくとも部分的に基づいて、定義された回路設計基準に従って、量子ビット間の単一のスワップ・ゲート接続または量子ビット間の２つのスワップ・ゲート接続を決定することができる。
【００４５】
別の例として、適用可能なプロセスまたは設計あるいはその両方の仕様に関連する適用可能な回路設計基準が、望ましい量子コンピューティング回路設計において、量子ビットの対のセット内の量子ビットの対の数よりも多い直接接続を持つことができる量子ビットの対の最大数を示すか、または指定する場合、設計管理コンポーネント１０６は、望ましい量子コンピューティング回路設計において、量子ビットの対のセット内の各量子ビットの対に直接接続が割り当てられ得るということを決定することができる。そのような場合、量子コンピューティング回路設計において、抽出された量子ビットの対の数が、直接接続を割り当てることができる量子ビットの対の最大数以下であるということの決定に応答して、設計管理コンポーネント１０６は、（抽出された量子ビットの対のすべてに直接接続が割り当てられ得るため）量子ビットの対の解析の部分を回避することができ、量子ビットの対の重みスコアの決定を回避することができ、または量子ビットの対の順位付けを回避することができ、あるいはその組み合わせが可能である。
【００４６】
一部の例では、設計管理コンポーネント１０６は、特定のアプリケーションまたはアルゴリズム（例えば、アルゴリズム２００）に関して、定義された回路設計基準（例えば、初期段階または第１の段階の回路設計基準）を満たす（例えば、一致するか、または満たすか、または上回る）ことができる２つ以上の望ましい（例えば、カスタムまたは調整された）量子コンピューティング回路設計を決定するか、または作成する（例えば、生成する）ことができる。そのような場合、設計管理コンポーネント１０６は、そのような望ましい量子コンピューティング回路設計を解析することができる。設計管理コンポーネント１０６は、そのような解析の結果に少なくとも部分的に基づいて、適用可能な定義された回路設計基準に従って、それらの回路設計のうちの最も望ましい（例えば、最も改良された、効率的な、または適切な）回路設計であることができる量子コンピューティング回路設計を決定することができる。適用可能な定義された回路設計基準は、例えば、複数の量子コンピューティング回路設計のうちのどの回路設計が最も望ましい量子コンピューティング回路設計であると見なされるかに関連しているか、そのように見なされることを示すか、または指定するか、あるいはその組み合わせが可能である。例えば、設計管理コンポーネント１０６は、そのような量子コンピューティング回路設計を解析することができ、そのような望ましい量子コンピューティング回路設計の解析の結果に少なくとも部分的に基づいて、そのような望ましい量子コンピューティング回路設計の量子コンピューティング回路設計のゲート動作の総数（例えば、単一量子ビット・ゲート動作または２量子ビット・ゲート動作あるいはその両方の総数）を決定することができる。一部の実施形態では、設計管理コンポーネント１０６は、そのような量子コンピューティング回路設計のうちの他の量子コンピューティング回路設計のゲート動作の他の総数と比較して、そのような望ましい量子コンピューティング回路設計のうちのゲート動作の最小の総数（例えば、単一量子ビット・ゲート動作または２量子ビット・ゲート動作あるいはその両方の最小の総数）を有することができる量子コンピューティング回路設計を決定することができる。設計管理コンポーネント１０６は、最小の総数のゲート動作を有しており、特定のアプリケーションまたはアルゴリズム（例えば、アルゴリズム２００）に関して採用するための最も望ましい量子コンピューティング回路設計であると決定された量子コンピューティング回路設計を決定することができ、（例えば、適用可能な）定義された回路設計基準に従って、特定のアプリケーションまたはアルゴリズムに関して採用されるその最も望ましい量子コンピューティング回路設計を選択することができる。
【００４７】
さまざまな他の実施形態に従って、アプリケーションまたはアルゴリズムのための（最も）望ましい（例えば、カスタムまたは調整された）量子コンピューティング回路設計を、アプリケーションまたはアルゴリズムのための複数の量子コンピューティング回路設計から決定して選択することに関連することができる適用可能な回路設計基準は、最小の総数のゲート動作を有する量子コンピューティング回路設計が、アプリケーションまたはアルゴリズムのための（最も）望ましい（例えば、カスタムまたは調整された）量子コンピューティング回路設計として選択されるべきであるということを指定するか、または示す回路設計基準に加えて、またはその代替として、（最も）望ましい量子コンピューティング回路設計を決定して選択するための異なる回路設計基準を指定するか、または示すことができるということが、理解されるべきである。
【００４８】
望ましい量子コンピューティング回路設計が決定された状態で、設計管理コンポーネント１０６は、望ましい量子コンピューティング回路設計の量子コンピューティング回路レイアウトの回路図を構築することができる。例えば、設計管理コンポーネント１０６は、量子ビットおよび量子ビットの対の特性、量子ビット間の接続（例えば、直接接続、単一のスワップ・ゲート接続、または２つのスワップ・ゲート接続）などに対応することができる、望ましい量子コンピューティング回路設計の量子コンピューティング回路レイアウトの望ましい（例えば、最適な、効率的な、適切な、または許容できる）回路図を決定して構築することができる。設計コンポーネント１０２は、回路図に少なくとも部分的に基づいてアプリケーションまたはアルゴリズムのための望ましい（例えば、カスタムまたは調整された）量子コンピューティング回路の製造を容易にするように、回路図を出力として提示することができ、または回路図を採用することができ、あるいはその両方が可能である。
【００４９】
開示される対象の他の態様および実施形態に関して、設計コンポーネント１０２は、定義された回路設計基準に従って、アプリケーションまたはアルゴリズムのための望ましい（例えば、カスタムまたは調整された）量子コンピューティング回路設計（例えば、アルゴリズムまたはアプリケーションに固有の量子コンピューティング回路設計）の決定を容易にするための特定の他の手法を採用することができる。図３を（図１と共に）簡単に参照すると、図３は、開示される対象のさまざまな態様および実施形態に従って、例示的なアルゴリズムの望ましい量子コンピューティング回路設計のための例示的なアルゴリズムに固有の回路図生成３００、および望ましい量子コンピューティング回路設計の対応する回路図の構築の図を示している。アルゴリズムに固有の回路図生成３００では、望ましい（例えば、カスタムまたは調整された）量子コンピューティング回路設計および対応する回路図が望まれる得るアルゴリズム３０２が存在することができる。
【００５０】
設計管理コンポーネント１０６は、アルゴリズム３０２を解析することができる。例えば、設計管理コンポーネント１０６は、アルゴリズム３０２の特性、機能、または特徴、あるいはその組み合わせを解析することができる。アルゴリズム３０２の特性、機能、または特徴、あるいはその組み合わせの解析の結果に少なくとも部分的に基づいて、設計管理コンポーネント１０６は、定義された回路設計基準に従って、アルゴリズム３０２において利用される量子ビットのセットの量子ビットの数を決定することができ、アルゴリズム３０２において利用される量子ビットのセットの量子ビットの各々の接続（例えば、量子コンピューティング回路の接続）を決定することができる。
【００５１】
一部の実施形態では、設計管理コンポーネント１０６は、アルゴリズム３０２の特性、機能、または特徴、あるいはその組み合わせの解析の結果に少なくとも部分的に基づいて、量子ビットのセットの他の量子ビットの接続と比較して、最も多く接続された量子ビット（例えば、他の量子ビットとの最多の数または相対的に多い数の接続を有する量子ビット）である量子ビットのセットの１つまたは複数の量子ビットを決定することができる。例えば、適用可能な特定の定義された回路設計基準に一部分において応じて、適用可能な回路設計基準は、唯一の最も多く接続された量子ビットが考慮されることを示すか、または指定することができ、あるいは適用可能な回路設計基準は、２つの最も多く接続された量子ビットが考慮されることを示すか、または指定することができ、あるいは適用可能な回路設計基準は、３つの最も多く接続された量子ビットが考慮されることを示すか、または指定することができる、などとなる。設計管理コンポーネント１０６は、量子ビットのセットの最も多く接続された量子ビットであると決定された量子ビットに少なくとも部分的に基づいて、アルゴリズム３０２のための望ましい（例えば、カスタムまたは調整された）量子コンピューティング回路設計の構成を決定することができる。例えば、設計管理コンポーネント１０６は、量子ビットのセットの最も多く接続された量子ビットであると決定された量子ビットの接続を少なくとも部分的に考慮するように、アルゴリズム３０２のための望ましい（例えば、カスタムまたは調整された）量子コンピューティング回路設計の構成を決定することができる。
【００５２】
特定の実施形態では、設計管理コンポーネント１０６は、アルゴリズム３０２の特性、機能、または特徴、あるいはその組み合わせの解析の結果に少なくとも部分的に基づいて、アルゴリズム３０２のための望ましい量子コンピューティング回路設計において、例えば補助量子ビットなどの、特定の量子ビットが利用されるかどうかを決定または判定することができる。そのような設計において、１つまたは複数の補助量子ビットが利用されるということが決定された場合、設計管理コンポーネント１０６は、アルゴリズム３０２のための望ましい量子コンピューティング回路設計において補助量子ビットの部分的または完全な使用が存在することになるかどうかを決定することができる。
【００５３】
設計管理コンポーネント１０６は、アルゴリズムの解析結果、量子ビットのセットの最も多く接続された量子ビットに関する決定、補助量子ビットに関する決定もしくは判定、または決定のその他の要因、あるいはその組み合わせに少なくとも部分的に基づいて、定義された回路設計基準に従って、アルゴリズム３０２のための望ましい量子コンピューティング回路設計を決定することができる。設計管理コンポーネント１０６は、望ましい量子コンピューティング回路設計の量子コンピューティング回路レイアウトの回路図３０４を決定することもできる。例えば、設計管理コンポーネント１０６は、９つの量子ビット（例えば、量子ビット３０６、３０８、３１０、３１２、３１４、３１６、３１８、３２０、および３２２）を含むことができる例示的な回路図３０４を決定または生成することができる。設計管理コンポーネント１０６は、望ましい量子コンピューティング回路設計に従って、互いに関連する９つの量子ビットを決定して配置することができ、例えば量子ビット３１４と３１８の間の接続３２４などの、量子ビット（例えば、量子ビット３０６〜３２２）間の接続を決定して配置することができる。
【００５４】
望ましい量子コンピューティング回路設計の量子コンピューティング回路レイアウトの例示的な回路図３０４が、決定または生成され得る回路図の一例にすぎないということが、理解されるべきである。さまざまな実施形態に従って、設計管理コンポーネント１０６を採用する設計コンポーネント１０２は、同じアルゴリズムについて、アルゴリズムに固有の異なる量子コンピューティング回路設計および関連する例示的な回路図３０４を決定することができ、または他のアルゴリズムについて、特定の（例えば、異なる）アルゴリズムに固有の量子コンピューティング回路設計および関連する例示的な回路図を決定することができ、あるいはその両方を実行することができる。
【００５５】
開示される対象の他の態様および実施形態に関して、アプリケーションまたはアルゴリズムのための望ましい（例えば、カスタムまたは調整された）量子コンピューティング回路設計を開発することにおいて、（例えば、設計コンポーネント１０２を採用する）開示される対象は、量子コンピューティング回路の回路の深さを増やすように動作することができる。例えば、１つの量子ビットをできるだけ多くの他の量子ビットともつれさせることが望ましいことがある、例示的なアルゴリズムが存在することがある。しかし、最大４つの量子ビットが１つの量子ビットに接続され得るという制約（例えば、処理制約または設計制約）が存在することがある。回路の深さを増やすことを容易にするために、設計コンポーネント１０２は、制約を順守しながら、できるだけ少ないステップで、対象としての１つの量子ビットともつれたできるだけ多くの量子ビット間のできるだけ多くの２量子ビット・ゲート動作を有することができる、アルゴリズムのための量子コンピューティング回路設計を決定するように、機能することができる。
【００５６】
図４を（図１と共に）簡単に参照すると、図４は、開示される対象のさまざまな態様および実施形態に従って、例示的な量子コンピューティング回路４００の図を示している。例示的な量子コンピューティング回路４００は、例示的なアルゴリズムのための従来の正方形アレイの量子コンピューティング回路設計４０２を含むことができる。例示的な量子コンピューティング回路４００は、例示的なアルゴリズムのための例示的なカスタマイズされた量子コンピューティング回路設計４０４（例えば、アルゴリズムまたはアプリケーションに固有の量子コンピューティング回路設計）を含むこともでき、カスタマイズされた量子コンピューティング回路設計４０４は、定義された回路設計基準に従って、本明細書に記載された手法を使用して、設計コンポーネント１０２によって設計され得る。
【００５７】
図４において観察され得るように、従来の正方形アレイの量子コンピューティング回路設計４０２は、量子ビット４０６を含むさまざまな量子ビットを含むことができ、量子ビット４０６は、制約に従って、４つの量子ビット（量子ビット４０８、４１０、４１２、および４１４）に直接接続され得る。量子コンピューティング回路設計４０２の正方形アレイ・レイアウトに起因して、これらの４つの量子ビット４０８、４１０、４１２、および４１４は、３つの他の量子ビットにそれぞれ接続することができ、例えば量子ビット４０８を量子ビット４１６、４１８、および４２０に接続することができ、量子ビット４１０を量子ビット４２０、４２２、および４２４に接続することができ、量子ビット４１２を量子ビット４２４、４２６、および４２８に接続することができ、量子ビット４１４を量子ビット４２８、４３０、および４１６に接続することができる。したがって、４つの直接接続（例えば、中央の量子ビットである量子ビット４０６への直接接続）と、単一のスワップ・ゲートで量子ビットをもつれさせる８つの接続（例えば、中央の量子ビットである量子ビット４０６への接続）とが存在することができる。観察され得るように、単一のスワップ・ゲートに関連付けられた特定の量子ビット（例えば、量子ビット４１６、４２０、４２４、および４２８）が、複数の量子ビットに接続され得る（例えば、量子ビット４１６を量子ビット４０８および４１４に接続することができ、量子ビット４２０を量子ビット４０８および４１４に接続することができ、量子ビット４２４を量子ビット４１０および４１２に接続することができ、量子ビット４２８を量子ビット４１２および４１４に接続することができる）。やはり観察され得るように、従来の正方形アレイの量子コンピューティング回路設計４０２において、２つのスワップ・ゲートを適用した後に中央の量子ビット４０６ともつれることができる１２個の量子ビットの対が存在することができる。
【００５８】
例示的なアルゴリズムのための例示的なカスタマイズされた量子コンピューティング回路設計４０４に関して、設計コンポーネント１０２は、量子ビット４４０を含むさまざまな量子ビットを含むように、カスタマイズされた量子コンピューティング回路設計４０４を設計することができ、量子ビット４４０は、このカスタマイズされた量子コンピューティング回路設計４０４の中央の量子ビットとも呼ばれ得る。一部の実施形態では、本明細書に記載された手法を採用する設計コンポーネント１０２は、カスタマイズされた量子コンピューティング回路設計４０４が、従来の正方形アレイの量子コンピューティング回路設計４０２と比較して、より少ない数のゲートを使用してより多くの量子ビットを中央の量子ビット４４０にもつれさせることができるように、回路の一部の接続を除去するか、または含まずに（例えば、不要な接続を除去するか、または含まずに）、カスタマイズされた量子コンピューティング回路設計４０４を構築または構成することができる。
【００５９】
設計コンポーネント１０２は、制約に従って、量子ビット４４０を４つの量子ビット（量子ビット４４２、４４４、４４６、および４４８）に直接接続することができる。設計コンポーネント１０２は、これらの４つの量子ビット４４２、４４４、４４６、および４４８を、３つの他の量子ビットにそれぞれ接続することができ、例えば量子ビット４４２を量子ビット４５０、４５２、および４５４に接続することができ、量子ビット４４４を量子ビット４５６、４５８、および４６０に接続することができ、量子ビット４４６を量子ビット４６２、４６４、および４６６に接続することができ、量子ビット４４８を量子ビット４６８、４７０、および４７２に接続することができる。したがって、４つの直接接続（例えば、中央の量子ビットである量子ビット４４０への直接接続）と、単一のスワップ・ゲートで量子ビットの対をもつれさせる１２個の接続（例えば、中央の量子ビットである量子ビット４４０への接続）とが存在することができる。やはり観察され得るように、カスタマイズされた量子コンピューティング回路設計４０４において、２つのスワップ・ゲートを適用した後に中央の量子ビット４４０ともつれることができる最大３６個の量子ビットの対が存在することができる。
【００６０】
したがって、例示的なカスタマイズされた量子コンピューティング回路設計４０４から観察され得るように、通常の量子コンピューティング回路設計４０２と比較して、特に、さらに一般的には、特定のアルゴリズムまたはアプリケーションのために設計コンポーネント１０２によって決定または作成され得るカスタマイズされた（例えば、アルゴリズムまたはアプリケーションに固有の）量子コンピューティング回路設計から観察され得るように、アルゴリズムまたはアプリケーションのために決定され得る通常の量子コンピューティング回路設計と比較して、カスタマイズされた量子コンピューティング回路設計（例えば、４０４）および通常の量子コンピューティング回路設計（例えば、４０２）が中央の量子ビットに接続された同じ数の量子ビットをそれぞれ含んでいるとしても、カスタマイズされた量子コンピューティング回路設計（例えば、４０４）は、通常の量子コンピューティング回路設計（例えば、４０２）の場合に単一のスワップ・ゲートを適用することによって中央の量子ビットともつれることができる量子ビットの対の数（例えば、８）よりも、単一のスワップ・ゲートを適用することによって中央の量子ビットともつれることができる大幅に多い数の（例えば、１２個の）量子ビットの対を含むことができ、カスタマイズされた量子コンピューティング回路設計（例えば、４０４）は、通常の量子コンピューティング回路設計（例えば、４０２）において量子ビットの対を中央の量子ビットにもつれさせるために利用され得る２つのスワップ・ゲートの数（例えば、１２）よりも、量子ビットの対を中央の量子ビットにもつれさせるための大幅に多い数の（例えば、３６個の）２つのスワップ・ゲートを含むことができる。カスタマイズされた量子コンピューティング回路設計（例えば、４０４）は、通常の量子コンピューティング回路設計（例えば、４０２）と比較して、回路設計において望ましくない（例えば、不要な）接続を減らすか、除去するか、またはその他の方法で含まないこともでき、カスタマイズされた量子コンピューティング回路設計が、特定のアルゴリズムのために、そのような特定のアルゴリズムに関して通常の量子コンピューティング回路設計と比較してより効率的かつ効果的に回路面積を使用することができ（例えば、望ましくない接続を除去することまたは含まないことに一部分において起因して、面積の使用量を減らすことができ）、または改良された（例えば、改善された）性能を達成することができ、あるいはその両方が可能であるため、カスタマイズされた量子コンピューティング回路設計（例えば、４０４）は、通常の量子コンピューティング回路設計（例えば、４０２）よりも大幅に効率的になることができる。
【００６１】
システム１００が、アプリケーションまたは関連するアルゴリズムのための量子コンピューティング回路を設計するために、汎用量子コンピューティング回路設計などを使用する従来技術と比較して、さまざまな利点を提供できるということが、理解されるべきである。例えば、アプリケーションまたは関連するアルゴリズムの解析に少なくとも部分的に基づいて、互いの間の直接接続を使用する必要性の定義された可能性閾値を満たすということが決定され得る量子ビットの対を抽出することができ、量子ビットの対に関連付けられた特性の解析の結果に少なくとも部分的に基づいて、アプリケーションまたは関連するアルゴリズムに使用するための量子コンピューティング回路設計を決定できるシステム１００は、有利に、汎用量子コンピューティング回路設計を使用してアプリケーションまたは関連するアルゴリズムを実行することと比較して、アプリケーションまたは関連するアルゴリズムを実行するために量子コンピューティング回路において利用されるゲートの数を減らし、アプリケーションまたは関連するアルゴリズムを実行するために量子コンピューティング回路において利用される接続を減らし、量子コンピューティング回路設計での面積の使用を改善し（例えば、使用される面積の量を減らし）、量子回路設計を使用してアプリケーションまたは関連するアルゴリズムを実行するときに、量子回路およびアプリケーションまたは関連するアルゴリズムの性能を高めることができる。
【００６２】
図５は、開示される対象のさまざまな態様および実施形態に従って、例示的な設計コンポーネント５００のブロック図を示している。設計コンポーネント５００は、本明細書においてさらに詳細に説明されるように、各コンポーネント（例えば、それぞれ名前が付けられたコンポーネント）とそれぞれ同じもしくは類似することができるか、または各コンポーネントと同じもしくは類似する機能を含むことができるか、あるいはその両方が可能な抽出コンポーネント５０２および設計管理コンポーネント５０４を備えることができる。
【００６３】
設計コンポーネント５００は、設計コンポーネント５００に関連付けられた動作を制御する（例えば、管理する）ことができる動作管理コンポーネント５０６を含むことができる。例えば、動作管理コンポーネント５０６は、定義された回路設計基準、定義された回路設計アルゴリズム（例えば、本明細書に記載された方法、システム、および手法によって本明細書において開示されたか、定義されたか、列挙されたか、具現化されたか、または示された回路設計アルゴリズム）に従って、設計コンポーネント５００のコンポーネントに動作を実行させるための命令を生成することを容易にすることができ、命令に少なくとも部分的に基づいて設計コンポーネント５００のコンポーネントによる動作の実行を容易にするために、命令を設計コンポーネント５００のコンポーネント（例えば、抽出コンポーネント５０２、設計管理コンポーネント５０４（またはそのコンポーネント）、プロセッサ・コンポーネント５２２、データ・ストア５２４）に伝達することができる。動作管理コンポーネント５０６は、設計コンポーネント５００のコンポーネント間のデータ・フローを制御すること、および設計コンポーネント５００と、設計コンポーネント５００に関連付けられた（例えば、接続された）別のコンポーネントまたはデバイス（例えば、コンピュータ、ラップトップ・コンピュータ、あるいはその他の種類のコンピューティング・デバイスもしくは通信デバイスまたはその両方）との間のデータ・フローを制御することを、容易にすることもできる。
【００６４】
設計管理コンポーネント５０４は、例えば、解析コンポーネント５０８、量子ビット識別コンポーネント５１０、重みコンポーネント５１２、ソート・コンポーネント５１４、接続割り当てコンポーネント５１６、設計選択コンポーネント５１８、および回路図生成コンポーネント５２０を備えることができる。解析コンポーネント５０８は、情報を解析して、アルゴリズムまたはアプリケーションのための望ましい（例えば、カスタムまたは調整された）量子コンピューティング回路設計を決定することを容易にするために、採用され得る。例えば、解析コンポーネント５０８は、アルゴリズムまたはアプリケーション（例えば、アプリケーションのアルゴリズム）の特性、機能、または特徴、あるいはその組み合わせを解析することができる。
【００６５】
アルゴリズムまたはアプリケーションの特性、機能、または特徴、あるいはその組み合わせの解析の結果に少なくとも部分的に基づいて、量子ビット識別コンポーネント５１０は、アルゴリズムまたはアプリケーションに利用される量子ビットまたは量子ビットの対を識別または決定することができる。一部の実施形態では、アプリケーションまたはアルゴリズムの解析の結果に少なくとも部分的に基づいて、量子ビット識別コンポーネント５１０は、アルゴリズムまたはアプリケーションのための量子回路設計において、定義された回路設計基準に従って、互いの間に直接接続を利用すべき可能性についての定義された閾値を満たすということが決定されたアルゴリズムまたはアプリケーションの量子ビットの対（例えば、量子ビットの対のセット）を識別または決定することができる。
【００６６】
抽出コンポーネント５０２は、アルゴリズムまたはアプリケーションから量子ビットの対を抽出することができる。例えば、抽出コンポーネント５０２は、アルゴリズムまたはアプリケーションから量子ビットの対に関連する情報を抽出することができる。一部の実施形態では、解析コンポーネント５０８は、量子ビットの対を解析して、量子ビットの対に関連付けられた特性を決定することを容易にすることができる。量子ビット識別コンポーネント５１０は、量子ビットの対のそのような解析の結果に少なくとも部分的に基づいて、量子ビットの対に関連付けられた特性を決定することができる。特性は、例えば、複数の量子ビットの対のうちの１つの量子ビットの対に関連付けられた影響を受ける下流の量子ビットの数、１つの量子ビットの対の間の２量子ビット・ゲート動作の数、および１つの量子ビットの対により影響され得る測定（または１つの量子ビットの対による影響を受ける測定が存在しないこと）を含むことができる。
【００６７】
重みコンポーネント５１２は、重み（例えば、重み値）を決定すること、または量子ビットの対に関連付けられた特性に重みを割り当てること、あるいはその両方を実行できる。例えば、重みコンポーネント５１２は、定義された回路設計基準に従って、第１の重みを決定すること、もしくは量子ビットの対に関連付けられた第１の特性に第１の重みを割り当てること、またはその両方を実行することができ、第２の重みを決定すること、もしくは量子ビットの対に関連付けられた第２の特性に第２の重みを割り当てること、またはその両方を実行することができ、または第３の重みを決定すること、もしくは量子ビットの対に関連付けられた第３の特性に第３の重みを割り当てること、またはその両方を実行することができ、あるいはその組み合わせを実行することができる、などとなる。一部の実施形態では、重みコンポーネント５１２は、特性および特性に割り当てられた重みの解析の結果に少なくとも部分的に基づいて、量子ビットの対に関連付けられた特性に関連する重みスコアを決定する（例えば、計算する）ことができる。
【００６８】
ソート・コンポーネント５１４は、特性および特性に割り当てられた重みに少なくとも部分的に基づいて、量子ビットの対をソートするか、または順位付けすることができる。例えば、ソート・コンポーネント５１４は、量子ビットの対に関連付けられた重みスコアに少なくとも部分的に基づいて、量子ビットの対をソートするか、または順位付けすることができ、ソート・コンポーネント５１４は、量子ビットの対に関連付けられた特性および特性に割り当てられた重みに少なくとも部分的に基づいて、量子ビットの対に関連付けられた重みスコアを決定することができる。
【００６９】
接続割り当てコンポーネント５１６は、量子ビット、量子ビットの対（例えば、量子ビットの対の特性）、量子ビットの対のソートまたは順位付け、および／またはアルゴリズムもしくはアプリケーションのその他の特性、機能、もしくは特徴、の解析の結果に少なくとも部分的に基づいて、定義された回路設計基準に従って、接続を決定すること、または量子ビットおよび／または量子ビットの対に接続を割り当てること、あるいはその両方を実行することができる。接続は、例えば、量子ビット間の直接接続（例えば、特定の量子ビットの対の間の直接接続）または非直接接続（例えば、単一のスワップ・ゲートまたは２つのスワップ・ゲート）を含むことができる。例えば、接続割り当てコンポーネント５１６は、量子ビットの対のセットの量子ビットの対の順位および直接接続が割り当てられ得る量子ビットの対の定義された数（例えば、最大数）に少なくとも部分的に基づいて、適用可能な定義された回路設計基準（例えば、量子コンピューティング回路に関するプロセスまたは設計あるいはその両方の制限に関連する回路設計基準）に従って、量子ビットの対のうちの特定の数のより高く順位付けされた量子ビットの対を決定すること、または選択すること、あるいはその両方を実行できる。接続割り当てコンポーネント５１６は、アルゴリズムまたはアプリケーションのための望ましい量子コンピューティング回路設計の決定または生成を容易にするために、より高く順位付けされた量子ビットの対に直接接続を割り当てることができる。接続割り当てコンポーネント５１６は、定義された回路設計基準に従って、アルゴリズムまたはアプリケーションのための望ましい量子コンピューティング回路設計の決定または生成を容易にするために、他の量子ビット（例えば、一次量子ビット（primary qubits）または補助量子ビットあるいはその両方）および／または量子ビットの対の間の接続（例えば、非直接接続）を決定するか、または割り当てるか、あるいはその両方を実行することもできる。
【００７０】
一部の例では、設計管理コンポーネント５０４は、特定のアルゴリズムまたはアプリケーションに関して、定義された回路設計基準（例えば、初期段階または第１の段階の回路設計基準）を満たすことができる２つ以上の望ましい（例えば、カスタムまたは調整された）量子コンピューティング回路設計を決定するか、または作成することができる。一部の実施形態では、設計選択コンポーネント５１８は、複数の望ましい量子コンピューティング回路設計の解析の結果に少なくとも部分的に基づいて、定義された回路設計基準（例えば、複数の望ましい量子コンピューティング回路設計のうちのどれが最も望ましい量子コンピューティング回路設計であるかを決定することに関連する他の（例えば、第２の段階の）適用可能な回路設計基準）に従って、複数の望ましい量子コンピューティング回路設計のうちの、最も望ましい（例えば、最も改良された、効率的な、または適切な）量子コンピューティング回路設計であることができる望ましい（例えば、最も望ましい）量子コンピューティング回路設計を決定するか、または選択するか、あるいはその両方を実行できる。一部の実施形態では、設計選択コンポーネント５１８は、複数の望ましい（例えば、少なくとも望ましい可能性がある）量子コンピューティング回路設計を解析することができ、そのような解析の結果に少なくとも部分的に基づいて、望ましい量子コンピューティング回路設計のゲート動作の総数（例えば、単一量子ビット・ゲート動作または２量子ビット・ゲート動作あるいはその両方の総数）を決定することができる。設計選択コンポーネント５１８は、他の望ましい量子コンピューティング回路設計のゲート動作の他の総数と比較して、望ましい量子コンピューティング回路設計のうちのゲート動作の最小の総数（例えば、単一量子ビット・ゲート動作または２量子ビット・ゲート動作あるいはその両方の最小の総数）を有する量子コンピューティング回路設計を決定することができる。設計選択コンポーネント５１８は、最小の総数のゲート動作を有しており、アルゴリズムまたはアプリケーションに関して採用するための最も望ましい量子コンピューティング回路設計であると決定された量子コンピューティング回路設計を決定することができ、定義された回路設計基準（例えば、適用可能な定義された回路設計基準）に従って、アルゴリズムまたはアプリケーションに関して採用されるそのような最も望ましい量子コンピューティング回路設計を選択することができる。
【００７１】
回路図生成コンポーネント５２０は、望ましい（例えば、カスタムまたは調整された）量子コンピューティング回路設計（例えば、最も望ましい量子コンピューティング回路設計）に少なくとも部分的に基づいて（例えば、望ましい量子コンピューティング回路設計に対応する）、アルゴリズムまたはアプリケーションと共に使用するための望ましい量子コンピューティング回路レイアウトを決定するため、または構築するため、あるいはその両方のために採用され得る。例えば、回路図生成コンポーネント５２０は、アルゴリズムまたはアプリケーションのための望ましい量子コンピューティング回路設計に従って、量子コンピューティング回路レイアウトにおいて互いに関連する量子ビットまたは量子ビットの対あるいはその両方を決定して配置することができ、量子コンピューティング回路レイアウトにおいて量子ビットまたは量子ビットの対あるいはその両方の間の接続を決定して配置することができる。
【００７２】
プロセッサ・コンポーネント５２２は、他のコンポーネント（例えば、抽出コンポーネント５０２、設計管理コンポーネント５０４、動作管理コンポーネント５０６、またはデータ・ストア５２４、あるいはその組み合わせ）と連動して機能し、設計コンポーネント５００のさまざまな機能の実行を容易にすることができる。プロセッサ・コンポーネント５２２は、本明細書においてさらに詳細に開示されるように、アルゴリズムもしくはアプリケーション、量子ビットもしくは量子ビットの対、重み（例えば、量子ビットの対に関連付けられた特性に割り当てられる重み）、定義された回路設計基準、定義された回路設計アルゴリズム、トラフィック・フロー、ポリシー、プロトコル、インターフェイス、ツール、またはその他の情報、あるいはその組み合わせに関連する情報などのデータを処理して、設計コンポーネント５００の動作を容易にし、設計コンポーネント５００と設計コンポーネント５００に関連付けられた（例えば、接続された）他のコンポーネント（例えば、コンピュータ、ラップトップ・コンピュータ、またはその他のコンピューティング・デバイスもしくは通信デバイス）の間のデータ・フローを制御することができる、１つまたは複数のプロセッサ、マイクロプロセッサ、またはコントローラを採用することができる。
【００７３】
データ・ストア５２４は、データ構造（例えば、ユーザ・データ、メタデータ）、コード構造（例えば、モジュール、オブジェクト、ハッシュ、クラス、プロシージャ）もしくは命令、アルゴリズムもしくはアプリケーションに関連する情報、量子ビットもしくは量子ビットの対、重み（例えば、量子ビットの対に関連付けられた特性に割り当てられる重み）、定義された回路設計基準、定義された回路設計アルゴリズム、トラフィック・フロー、ポリシー、プロトコル、インターフェイス、ツール、またはその他の情報、あるいはその組み合わせを格納し、設計コンポーネント５００に関連付けられた動作の制御を容易にすることができる。１つの態様では、プロセッサ・コンポーネント５２２は、処理することが望まれる情報を格納して取り出すため、または少なくとも部分的に機能を抽出コンポーネント５０２、設計管理コンポーネント５０４、動作管理コンポーネント５０６、もしくはデータ・ストア５２４、またはその組み合わせなど、または設計コンポーネント５００の実質的に任意のその他の動作可能な態様、あるいはその両方に提供するため、あるいはその両方のために、（例えば、メモリ・バスを介して）データ・ストア５２４に機能的に結合され得る。
【００７４】
システムまたはデバイスあるいはその両方は、本明細書では複数のコンポーネント間の相互作用に関して説明された（または説明される）。そのようなシステムおよびコンポーネントが、それらのコンポーネントもしくはそれらの内部で指定されたサブコンポーネント、指定されたコンポーネントもしくはサブコンポーネントの一部、または追加のコンポーネント、あるいはその組み合わせを含むことができるということが、理解されるべきである。サブコンポーネントは、親コンポーネント内に含まれるのではなく、他のコンポーネントに通信によって結合されたコンポーネントとして実装することもできる。さらに、１つまたは複数のコンポーネントまたはサブコンポーネントあるいはその両方は、集合的機能を提供する単一のコンポーネントに結合されてよい。コンポーネントは、簡潔にするために本明細書では具体的に説明されないが、当業者によって知られている１つまたは複数の他のコンポーネントと、相互作用してもよい。
【００７５】
図６は、開示される対象のさまざまな態様および実施形態に従って、アプリケーションまたはアルゴリズムのための、アプリケーションまたはアルゴリズムに固有の量子コンピューティング回路設計（例えば、超伝導量子コンピューティング回路設計）を決定するための、例示的な非限定的方法６００のフロー図を示している。方法６００は、例えば、設計コンポーネントまたはプロセッサ・コンポーネントあるいはその両方によって実行され得る。設計コンポーネンは、抽出コンポーネントおよび設計管理コンポーネントを備えることができる。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されているか、または省略されてよい。
【００７６】
６０２で、アプリケーションの解析に少なくとも部分的に基づいて、互いの間の直接接続を利用する必要性の定義された可能性閾値を満たすということが決定された量子ビットの対が抽出され得る。設計管理コンポーネントは、アプリケーション（またはアプリケーションのアルゴリズムもしくはアプリケーションに関連付けられたアルゴリズム）を解析することができる。設計管理コンポーネントは、アプリケーション（または関連するアルゴリズム）の解析の結果に少なくとも部分的に基づいて、アプリケーション（または関連するアルゴリズム）に関連付けられた量子ビットおよび量子ビットの対を識別することができる。また、そのような解析の結果に少なくとも部分的に基づいて、設計管理コンポーネントは、定義された回路設計基準に従って、量子コンピューティング回路設計（例えば、カスタムまたは調整された量子コンピューティング回路設計）において、互いの間の直接接続（例えば、量子ビットの対内の量子ビット間の直接接続）を利用する必要性の定義された可能性閾値を満たす量子ビットの対を決定することができる。抽出コンポーネントは、量子ビットの対を抽出し、量子ビットの対のセットを形成することができる。
【００７７】
６０４で、量子ビットの対の特性の解析に少なくとも部分的に基づいて、アプリケーションに使用するための量子回路の回路設計が決定され得る。設計管理コンポーネントは、アプリケーション（または関連するアルゴリズム）に関連付けられた量子ビットの対のセット内の量子ビットの対の特性を解析することができる。設計管理コンポーネントは、量子ビットの対の特性の解析の結果に少なくとも部分的に基づいて、アプリケーション（または関連するアルゴリズム）に使用するための量子回路の回路設計（例えば、カスタムまたは調整された量子コンピューティング回路設計）を決定することができる。
【００７８】
さまざまな実施形態に従って、回路設計の決定を容易にするために、設計管理コンポーネントは、本明細書においてさらに詳細に説明されるように、定義された回路設計基準に従って、量子ビットの対に関連付けられた特性に重み（例えば、重み値）を割り当て、量子ビットの対の重みスコアを決定し、量子ビットの対をソートして順位付けし、直接接続が割り当てられ得る量子ビットの対のサブセットを選択することができる。そのような定義された回路設計基準を満たすことができる２つ以上の量子コンピューティング回路設計が存在する場合、設計管理コンポーネントは、本明細書においてさらに詳細に説明されるように、定義された回路設計基準（例えば、複数の可能性のある量子コンピューティング回路設計から最も望ましい量子コンピューティング回路設計を選択することに関連する他の回路設計基準）に従って、複数の量子コンピューティング回路設計のうちのどれが最も望ましい量子コンピューティング回路設計であるかを決定できる。
【００７９】
図７は、開示される対象のさまざまな態様および実施形態に従って、アプリケーションまたはアルゴリズムのための、アプリケーションまたはアルゴリズムに固有の量子コンピューティング回路設計（例えば、超伝導量子コンピューティング回路設計）を決定する、別の例示的な非限定的方法７００のフロー図を示している。方法７００は、例えば、設計コンポーネントまたはプロセッサ・コンポーネントあるいはその両方によって実行され得る。設計コンポーネンは、抽出コンポーネントおよび設計管理コンポーネントを備えることができる。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されているか、または省略されてよい。
【００８０】
７０２で、アプリケーションまたはアルゴリズムが解析され得る。設計管理コンポーネントは、アプリケーションまたはアルゴリズムを解析して、アプリケーションまたはアルゴリズムの量子ビットおよび量子ビットの対を決定または識別すること、互いの間の直接接続（例えば、量子ビットの対内の量子ビット間の直接接続）を利用する必要性の定義された可能性閾値を満たすアプリケーションまたはアルゴリズムの量子ビットの対を決定または識別すること、または量子ビットの対（または量子ビット）の特性を決定すること、あるいはその組み合わせなどを、容易にすることができる。
【００８１】
７０４で、アプリケーションまたはアルゴリズムの解析の結果に少なくとも部分的に基づいて、互いの間の直接接続を利用する必要性の定義された可能性閾値を満たすアプリケーションまたはアルゴリズムの量子ビットの対が決定され得る。設計管理コンポーネントは、アプリケーションまたはアルゴリズムの解析の結果に少なくとも部分的に基づいて、互いの間の直接接続を利用する必要性の定義された可能性閾値を満たすアプリケーションまたはアルゴリズムの量子ビットの対を決定することができる。
【００８２】
７０６で、アプリケーションまたはアルゴリズムから量子ビットの対が抽出され得る。抽出コンポーネントは、アプリケーションまたはアルゴリズムから量子ビットの対を抽出することができる。例えば、抽出コンポーネントは、アプリケーションまたはアルゴリズムから量子ビットの対に関する情報を抽出することができる。
【００８３】
７０８で、量子ビットの対に関連付けられた特性が解析され得る。設計管理コンポーネントは、量子ビットの対に関連付けられた特性を解析し、例えば、量子ビットの対に関連付けられた特性を識別すること、および量子ビットの対に関連付けられた特性間の差異を決定または識別することを、容易にすることができる。量子ビットの対に関連付けられた特性は、本明細書においてさらに詳細に説明されている特性などの、量子ビットの対に関連付けられた特性を含むことができる。
【００８４】
７１０で、重みが特性に割り当てられ得る。設計管理コンポーネントは、定義された回路設計基準に従って、量子ビットの対に関連付けられた特性に重みを割り当てることができる。例えば、特定の適用可能な回路設計基準に従って、設計管理コンポーネントは、量子ビットの対に関連付けられた第１の特性に第１の重み（例えば、第１の重み値）を割り当てることができ、第１の重みは、量子ビットの対に関連付けられた第２の特性に割り当てられ得る第２の重みよりも大きくなることができ、第２の重みは、量子ビットの対に関連付けられた第３の特性に割り当てられ得る第３の重みよりも大きくなることができる、などとなる。
【００８５】
７１２で、量子ビットの対に関連付けられた特性および重みの解析の結果に少なくとも部分的に基づいて、量子ビットの対の重みスコアが決定され得る。設計管理コンポーネントは、量子ビットの対に関連付けられた特性および特性に割り当てられた重みの解析の結果に少なくとも部分的に基づいて、量子ビットの対の重みスコアを決定（例えば、計算）することができる。
【００８６】
７１４で、量子ビットの対の重みスコアに少なくとも部分的に基づいて、量子ビットの対がソートされ得る。設計管理コンポーネントは、量子ビットの対の重みスコアに少なくとも部分的に基づいて、量子ビットの対をソートするか、または順位付けするか、あるいはその両方を実行することができる。例えば、設計管理コンポーネントは、設計管理コンポーネントが、第１の量子ビットの対の第１の重みスコアが第２の量子ビットの対の第２の重みスコアより高いということを決定することに応答して、量子ビットの対のうちの第１の量子ビットの対を、量子ビットの対のうちの第２の量子ビットの対よりも高くソートするか、または順位付けするか、あるいはその両方を実行することができる。
【００８７】
７１６で、定義された回路設計基準に従って、量子コンピューティング回路設計における直接接続の割り当てのために、量子ビットの対のうちの、定義された数のより高い順位の量子ビットの対が選択され得る。定義された回路設計基準は、量子コンピューティング回路設計において直接接続が割り当てられ得る量子ビットの対の最大数を指定するか、または示すことができる。設計管理コンポーネントは、量子コンピューティング回路設計において直接接続が割り当てられ得る量子ビットの対の最大数に少なくとも部分的に基づいて、より高い順位の量子ビットの対の定義された数を決定することができ、定義された数は最大数に等しいか、または最大数以下であることができる。設計管理コンポーネントは、量子コンピューティング回路設計における直接接続の割り当てのために、量子ビットの対のうちの、定義された数のより高い順位の量子ビットの対を選択することができる。
【００８８】
７１８で、定義された数のより高い順位の量子ビットの対の一部であるより高い順位の量子ビットの対に、直接接続が割り当てられ得る。設計管理コンポーネントは、定義された数のより高い順位の量子ビットの対の一部であるより高い順位の量子ビットの対に、直接接続を割り当てることができる。
【００８９】
７２０で、望ましい量子コンピューティング回路設計におけるより高い順位の量子ビットの対への直接接続の割り当てに少なくとも部分的に基づいて、定義された回路設計基準に従って、アプリケーションまたはアルゴリズムのための望ましい（例えば、カスタムまたは調整された）量子コンピューティング回路設計が決定され得る。設計管理コンポーネントは、望ましい量子コンピューティング回路設計におけるより高い順位の量子ビットの対への直接接続の割り当てに少なくとも部分的に基づいて、アプリケーションまたはアルゴリズムのための望ましい（例えば、カスタムまたは調整された）量子コンピューティング回路設計を決定することができる。そのような直接接続の割り当てに少なくとも部分的に基づいて、設計管理コンポーネントは、量子ビットまたは量子ビットの対の間の他の接続（例えば、直接接続以外の接続）を決定して、残りの接続（例えば、量子回路の接続）を完了し、望ましい量子コンピューティング回路設計の構築および構成を完成させることができる。定義された回路設計基準を満たすことができる２つ以上の量子コンピューティング回路設計が存在する場合、設計管理コンポーネントは、本明細書においてさらに詳細に説明されるように、複数の可能性のある量子コンピューティング回路設計から最も望ましい量子コンピューティング回路設計を選択することに関連する他の回路設計基準に従って、複数の量子コンピューティング回路設計のうちのどれが最も望ましい量子コンピューティング回路設計であるかを決定できる。
【００９０】
図８は、開示される対象のさまざまな態様および実施形態に従って、アプリケーションまたはアルゴリズムのための複数のアプリケーションまたはアルゴリズムに固有の量子コンピューティング回路設計のうちの、どのアプリケーションまたはアルゴリズムのためのアプリケーションまたはアルゴリズムに固有の量子コンピューティング回路設計がアプリケーションまたはアルゴリズムに使用されるかを決定する、例示的な非限定的方法８００のフロー図を示している。方法８００は、例えば、設計コンポーネントまたはプロセッサ・コンポーネントあるいはその両方によって実行され得る。設計コンポーネンは、抽出コンポーネントおよび設計管理コンポーネントを備えることができる。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されているか、または省略されてよい。
【００９１】
８０２で、アプリケーションまたはアルゴリズムのための量子コンピューティング回路設計が解析され得る。一部の例では、アプリケーションまたはアルゴリズムに関して、設計管理コンポーネントは、定義された回路設計基準（例えば、初期段階または第１の段階の回路設計基準）を満たすことができる複数の量子コンピューティング回路設計を決定できる。設計管理コンポーネントは、本明細書に記載されたさまざまな手法を採用して、アプリケーションまたはアルゴリズムのための望ましい（例えば、カスタムまたは調整された）量子コンピューティング回路設計（例えば、アプリケーションまたはアルゴリズムに固有の量子コンピューティング回路設計）を決定することによって、アプリケーションまたはアルゴリズムのための量子コンピューティング回路設計を決定できる。設計管理コンポーネントは、アプリケーションまたはアルゴリズムのための量子コンピューティング回路設計を解析できる。
【００９２】
８０４で、解析の結果に少なくとも部分的に基づいて、量子コンピューティング回路設計のゲート動作の総数が決定され得る。設計管理コンポーネントは、量子コンピューティング回路設計の解析の結果に少なくとも部分的に基づいて、量子コンピューティング回路設計のゲート動作の総数（例えば、単一量子ビット・ゲート動作または２量子ビット・ゲート動作あるいはその両方の総数）を決定する（例えば、計算する）ことができる。
【００９３】
８０６で、他の量子コンピューティング回路設計のゲート動作の他の総数と比較して、最小の総数のゲート動作を有する量子コンピューティング回路設計が決定され得る。設計管理コンポーネントは、他の量子コンピューティング回路設計のゲート動作の他の総数と比較して、量子コンピューティング回路設計のうちのゲート動作の最小の総数（例えば、単一量子ビット・ゲート動作または２量子ビット・ゲート動作あるいはその両方の最小の総数）を有する量子コンピューティング回路設計を決定することができる。
【００９４】
８０８で、定義された回路設計基準に従って、最小の総数のゲート動作を有する量子コンピューティング回路設計が、アプリケーションまたはアルゴリズムのための望ましい（例えば、カスタムまたは調整された）量子コンピューティング回路設計になるように選択され得る。一部の実施形態では、定義された回路設計基準は、量子コンピューティング回路設計のうちの、最小の総数のゲート動作を有する量子コンピューティング回路設計が、アプリケーションまたはアルゴリズムのための（最も）望ましい（例えば、カスタムまたは調整された）量子コンピューティング回路設計として選択されることを、指定するか、または示すことができる。設計管理コンポーネントは、定義された回路設計基準に従って、最小の総数のゲート動作を有する量子コンピューティング回路設計を、アプリケーションまたはアルゴリズムのための（最も）望ましい（例えば、カスタムまたは調整された）量子コンピューティング回路設計になるように選択することができる。
【００９５】
説明を簡単にするために、一連の動作として方法またはコンピュータ実装方法あるいはその両方が示され、説明される。開示される対象が、示された動作によって、または動作の順序によって、あるいはその両方によって制限されず、例えば動作が、本明細書において提示されておらず、説明されていない他の動作と共に、さまざまな順序で、または同時に、あるいはその両方で発生できるということが、理解されるべきである。さらに、開示される対象に従ってコンピュータ実装方法を実装するために、示されているすべての動作が必要でなくてもよい。加えて、当業者は、コンピュータ実装方法が、代替として、状態図を介して相互に関連する一連の状態またはイベントとして表され得るということを理解するであろう。そのようなコンピュータ実装方法をコンピュータに輸送または転送するのを容易にするために、以下および本明細書全体を通じて開示されたコンピュータ実装方法を製品に格納できるということが、さらに理解されるべきである。製品という用語は、本明細書において使用されるとき、任意のコンピュータ可読デバイスまたはコンピュータ可読ストレージ媒体からアクセスできるコンピュータ・プログラムを包含するよう意図されている。
【００９６】
開示される対象のさまざまな態様の背景を提供するために、図９および以下の説明は、開示される対象のさまざまな態様が実装され得る適切な環境の概要を示すよう意図されている。図９は、本明細書に記載された１つまたは複数の実施形態を容易にすることができる例示的な非限定的動作環境のブロック図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されているか、または省略されてよい。図９を参照すると、本開示のさまざまな態様を実装するための適切な動作環境９００は、コンピュータ９１２を含むこともできる。コンピュータ９１２は、処理ユニット９１４、システム・メモリ９１６、およびシステム・バス９１８を含むこともできる。システム・バス９１８は、システム・メモリ９１６を含むが、これに限定されないシステム・コンポーネントを、処理ユニット９１４に結合する。処理ユニット９１４は、さまざまな使用可能なプロセッサのいずれかであることができる。デュアル・マイクロプロセッサおよびその他のマルチプロセッサ・アーキテクチャが、処理ユニット９１４として採用されてもよい。システム・バス９１８は、ＩＳＡ（Industry Standard Architecture）、ＭＣＡ（Micro Channel Architecture）、ＥＩＳＡ（Enhanced ISA）、ＩＤＥ（Intelligent Drive Electronics）、ＶＥＳＡローカル・バス（ＶＬＢ：VESA Local Bus）、ＰＣＩ（Peripheral Component Interconnects）、カードバス、ユニバーサル・シリアル・バス（ＵＳＢ：UniversalSerial Bus）、ＡＧＰ（Advanced Graphics Port）、ＦｉｒｅＷｉｒｅ（ＩＥＥＥ  １３９４）、および小型コンピュータ・システム・インターフェイス（ＳＣＳＩ：Small Computer Systems Interface）を含むが、これらに限定されない、任意のさまざまな使用可能なバス・アーキテクチャを使用する、メモリ・バスもしくはメモリ・コントローラ、ペリフェラル・バスもしくは外部バス、またはローカル・バス、あるいはその組み合わせを含む、複数の種類のバス構造のいずれかであることができる。システム・メモリ９１６は、揮発性メモリ９２０および不揮発性メモリ９２２を含むこともできる。起動中などにコンピュータ９１２内の要素間で情報を転送するための基本ルーチンを含んでいる基本入出力システム（ＢＩＯＳ：basic input/output system）が、不揮発性メモリ９２２に格納される。不揮発性メモリ９２２の例としては、読み取り専用メモリ（ＲＯＭ：read only memory）、プログラマブルＲＯＭ（ＰＲＯＭ：programmable ROM）、電気的プログラマブルＲＯＭ（ＥＰＲＯＭ：electrically programmable ROM）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ：electrically erasable programmable ROM）、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ（ＲＡＭ：random access memory）（例えば、強誘電体ＲＡＭ（ＦｅＲＡＭ：ferroelectric RAM））が挙げられるが、これらに限定されない。揮発性メモリ９２０は、外部キャッシュ・メモリとして機能するランダム・アクセス・メモリ（ＲＡＭ）を含むこともできる。例えばＲＡＭは、スタティックＲＡＭ（ＳＲＡＭ：static RAM）、ダイナミックＲＡＭ（ＤＲＡＭ：dynamic RAM）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ：synchronous DRAM）、ダブル・データ・レートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ：double data rate SDRAM）、拡張ＳＤＲＡＭ（ＥＳＤＲＡＭ）、シンクリンクＤＲＡＭ（ＳＬＤＲＡＭ：Synchlink DRAM）、ダイレクト・ラムバスＲＡＭ（ＤＲＲＡＭ：direct Rambus RAM）、ダイレクト・ラムバス・ダイナミックＲＡＭ（ＤＲＤＲＡＭ：direct Rambus dynamic RAM）、およびラムバス・ダイナミックＲＡＭなどの、ただしこれらに限定されない、多くの形態で利用可能である。
【００９７】
コンピュータ９１２は、取り外し可能／取り外し不可能な揮発性／不揮発性のコンピュータ・ストレージ媒体を含むこともできる。例えば図９は、ディスク・ストレージ９２４を示している。ディスク・ストレージ９２４は、磁気ディスク・ドライブ、フロッピー（Ｒ）・ディスク・ドライブ、テープ・ドライブ、Ｊａｚドライブ、Ｚｉｐドライブ、ＬＳ−１００ドライブ、フラッシュ・メモリ・カード、またはメモリ・スティックなどの、ただしこれらに限定されない、デバイスを含むこともできる。ディスク・ストレージ９２４は、コンパクト・ディスクＲＯＭデバイス（ＣＤ−ＲＯＭ：compact disk ROM device）、記録可能ＣＤドライブ（ＣＤ−Ｒドライブ：CD recordable drive）、再書き込み可能ＣＤドライブ（ＣＤ−ＲＷドライブ：CD rewritable drive）、またはデジタル多用途ディスクＲＯＭドライブ（ＤＶＤ−ＲＯＭ：digital versatile disk ROM drive）などの光ディスク・ドライブを含むが、これらに限定されないストレージ媒体を、別々に、または他のストレージ媒体と組み合わせて、含むこともできる。システム・バス９１８へのディスク・ストレージ９２４の接続を容易にするために、インターフェイス９２６などの、取り外し可能または取り外し不可能なインターフェイスが通常は使用される。図９は、ユーザと、適切な動作環境９００において説明された基本的なコンピュータ・リソースとの間の仲介として機能するソフトウェアも示している。そのようなソフトウェアは、例えば、オペレーティング・システム９２８を含むこともできる。ディスク・ストレージ９２４に格納できるオペレーティング・システム９２８は、コンピュータ９１２のリソースを制御し、割り当てるように動作する。システムのアプリケーション９３０は、例えばシステム・メモリ９１６またはディスク・ストレージ９２４のいずれかに格納されたプログラム・モジュール９３２およびプログラム・データ９３４を介して、オペレーティング・システム９２８によるリソースの管理を利用する。さまざまなオペレーティング・システムまたはオペレーティング・システムの組み合わせを使用して本開示が実装され得るということが、理解されるべきである。ユーザは、１つまたは複数の入力デバイス９３６を介して、コマンドまたは情報をコンピュータ９１２に入力する。入力デバイス９３６は、マウス、トラックボール、スタイラス、タッチ・パッド、キーボード、マイクロホン、ジョイスティック、ゲーム・パッド、衛星放送受信アンテナ、スキャナ、ＴＶチューナー・カード、デジタル・カメラ、デジタル・ビデオ・カメラ、Ｗｅｂカメラなどのポインティング・デバイスを含むが、これらに限定されない。これらおよびその他の入力デバイスは、インターフェイス・ポート９３８を介してシステム・バス９１８を通り、処理ユニット９１４に接続する。インターフェイス・ポート９３８は、例えば、シリアル・ポート、パラレル・ポート、ゲーム・ポート、およびユニバーサル・シリアル・バス（ＵＳＢ）を含む。出力デバイス９４０は、入力デバイス９３６と同じ種類のポートの一部を使用する。このようにして、例えば、ＵＳＢポートを使用して、入力をコンピュータ９１２に提供し、コンピュータ９１２から出力デバイス９４０に情報を出力できる。出力アダプタ９４２は、特殊なアダプタを必要とする出力デバイス９４０の中でも特に、モニタ、スピーカ、およびプリンタのような何らかの出力デバイス９４０が存在することを示すために提供される。出力アダプタ９４２の例としては、出力デバイス９４０とシステム・バス９１８の間の接続の方法を提供するビデオ・カードおよびサウンド・カードが挙げられるが、これらに限定されない。リモート・コンピュータ９４４などの、その他のデバイスまたはデバイスのシステムあるいはその両方が、入力機能および出力機能の両方を提供するということに、注意するべきである。
【００９８】
コンピュータ９１２は、リモート・コンピュータ９４４などの１つまたは複数のリモート・コンピュータへの論理接続を使用して、ネットワーク環境内で動作できる。リモート・コンピュータ９４４は、コンピュータ、サーバ、ルータ、ネットワークＰＣ、ワークステーション、マイクロプロセッサベースの機器、ピア・デバイス、またはその他の一般的なネットワーク・ノードなどであることができ、通常は、コンピュータ９１２に関連して説明された要素の多くまたはすべてを含むこともできる。簡潔にするために、メモリ・ストレージ・デバイス９４６のみが、リモート・コンピュータ９４４と共に示されている。リモート・コンピュータ９４４は、ネットワーク・インターフェイス９４８を介してコンピュータ９１２に論理的に接続されてから、通信接続９５０を介して物理的に接続される。ネットワーク・インターフェイス９４８は、ローカル・エリア・ネットワーク（ＬＡＮ：local-area networks）、広域ネットワーク（ＷＡＮ：wide-area networks）、セルラー・ネットワークなどの、有線通信ネットワークまたは無線通信ネットワークあるいはその両方を包含する。ＬＡＮ技術は、光ファイバ分散データ・インターフェイス（ＦＤＤＩ：Fiber Distributed Data Interface）、銅線分散データ・インターフェイス（ＣＤＤＩ：Copper Distributed Data Interface）、イーサネット（Ｒ）、トークン・リングなどを含む。ＷＡＮ技術は、ポイントツーポイント・リンク、総合デジタル通信網（ＩＳＤＮ：Integrated Services Digital Networks）およびその変形などの回路交換網、パケット交換網、およびデジタル加入者回線（ＤＳＬ：Digital Subscriber Lines）を含むが、これらに限定されない。通信接続９５０は、ネットワーク・インターフェイス９４８をシステム・バス９１８に接続するために採用されたハードウェア／ソフトウェアのことを指す。通信接続９５０は、説明を明確にするために、コンピュータ９１２内に示されているが、コンピュータ９１２の外部に存在することもできる。ネットワーク・インターフェイス９４８に接続するためのハードウェア／ソフトウェアは、単に例示の目的で、通常の電話の等級のモデム、ケーブル・モデム、およびＤＳＬモデムを含むモデム、ＩＳＤＮアダプタ、およびイーサネット（Ｒ）・カードなどの、内部および外部の技術を含むこともできる。
【００９９】
１つまたは複数の実施形態は、任意の可能な統合の技術的詳細レベルで、システム、方法、装置、またはコンピュータ・プログラム製品、あるいはその組み合わせであることができる。コンピュータ・プログラム製品は、プロセッサに１つまたは複数の実施形態の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読ストレージ媒体を含むことができる。コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであることができるが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・フロッピー（Ｒ）・ディスク、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ：random access memory）、読み取り専用メモリ（ＲＯＭ：read-only memory）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ：erasable programmable read-only memoryまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ：static random access memory）、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：compact disc read-only memory）、デジタル多用途ディスク（ＤＶＤ：digital versatile disk）、メモリ・スティック、フロッピー（Ｒ）・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含むことができる。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【０１００】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス／処理デバイスへ、またはネットワーク（例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ）を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えることができる。各コンピューティング・デバイス／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス／処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。開示される対象の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ：instruction-set-architecture）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む１つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであることができる。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）を含む任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続は、（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータに対して行われ得る。一部の実施形態では、開示される対象の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ：field-programmable gate arrays）、またはプログラマブル・ロジック・アレイ（ＰＬＡ：programmable logic arrays）を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行することができる。
【０１０１】
開示される対象の態様は、本明細書において、開示される対象の実施形態に従って、方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能／動作を実施する方法を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであることができる。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能／動作の態様を実施する命令を含んでいる製品を含むように、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであることもできる。コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能／動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込むこともでき、それによって、一連の操作可能な動作を、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で実行させる。
【０１０２】
図内のフローチャートおよびブロック図は、開示される対象のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための１つまたは複数の実行可能な命令を含んでいる、命令のモジュール、セグメント、または部分を表すことができる。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生することができる。例えば、連続して示された２つのブロックは、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行され得る。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【０１０３】
上記では、１つのコンピュータまたは複数のコンピュータあるいはその両方で実行されるコンピュータ・プログラム製品のコンピュータ実行可能命令との一般的な関連において、対象が説明されたが、当業者は、本開示を他のプログラム・モジュールと組み合わせて実装することもできるということを認識するであろう。通常、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するか、あるいはその両方を行うルーチン、プログラム、コンポーネント、データ構造などを含む。さらに、当業者は、本明細書で開示されたコンピュータ実装方法が、シングルプロセッサ・コンピュータ・システムまたはマルチプロセッサ・コンピュータ・システム、ミニコンピューティング・デバイス、メインフレーム・コンピュータ、コンピュータ、ハンドヘルド・コンピューティング・デバイス（例えば、ＰＤＡ、電話）、マイクロプロセッサベースまたはプログラム可能な家庭用電化製品または産業用電子機器などを含む、その他のコンピュータ・システム構成を使用して実践され得るということを理解するであろう。示された態様は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散コンピューティング環境内で実践されてもよい。ただし、本開示の態様の全部ではないとしても一部は、スタンドアロン・コンピュータ上で実践され得る。分散コンピューティング環境において、プログラム・モジュールは、ローカルおよびリモートのメモリ・ストレージ・デバイスに配置され得る。
【０１０４】
本出願において使用されるとき、「コンポーネント」、「システム」、「プラットフォーム」、「インターフェイス」などの用語は、１つまたは複数の特定の機能を含むコンピュータ関連の実体または操作可能なマシンに関連する実体を指すことができるか、またはそれらの実体を含むことができるか、あるいはその両方が可能である。本明細書で開示された実体は、ハードウェア、ハードウェアとソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかであることができる。例えば、コンポーネントは、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行ファイル、実行のスレッド、プログラム、またはコンピュータ、あるいはその組み合わせであることができるが、これらに限定されない。例として、サーバ上で実行されるアプリケーションおよびサーバの両方が、コンポーネントであることができる。１つまたは複数のコンポーネントが、プロセス内または実行のスレッド内あるいはその両方に存在することができ、コンポーネントは、１つのコンピュータ上に局在するか、または２つ以上のコンピュータ間で分散されるか、あるいはその両方が可能である。別の例では、各コンポーネントは、さまざまなデータ構造が格納されているさまざまなコンピュータ可読媒体から実行できる。コンポーネントは、１つまたは複数のデータ・パケット（例えば、ローカル・システム内または分散システム内の別のコンポーネントと情報をやりとりするか、またはインターネットなどのネットワークを経由して、信号を介して他のシステムと情報をやりとりするか、あるいはその両方によって情報をやりとりする、１つのコンポーネントからのデータ）を含んでいる信号などに従って、ローカルまたはリモートあるいはその両方のプロセスを介して通信できる。別の例として、コンポーネントは、電気または電子回路によって操作される機械的部品によって提供される特定の機能を有する装置であることができ、プロセッサによって実行されるソフトウェア・アプリケーションまたはファームウェア・アプリケーションによって操作される。そのような場合、プロセッサは、装置の内部または外部に存在することができ、ソフトウェア・アプリケーションまたはファームウェア・アプリケーションの少なくとも一部を実行できる。さらに別の例として、コンポーネントは、機械的部品を含まない電子コンポーネントを介して特定の機能を提供する装置であることができ、それらの電子コンポーネントは、電子コンポーネントの機能の少なくとも一部を与えるソフトウェアまたはファームウェアを実行するためのプロセッサまたはその他の方法を含むことができる。１つの態様では、コンポーネントは、例えばクラウド・コンピューティング・システム内で、仮想マシンを介して電子コンポーネントをエミュレートすることができる。
【０１０５】
加えて、「または」という用語は、排他的論理和ではなく、包含的論理和を意味するよう意図されている。すなわち、特に指定されない限り、または文脈から明らかでない限り、「ＸがＡまたはＢを採用する」は、自然な包含的順列のいずれかを意味するよう意図されている。すなわち、ＸがＡを採用するか、ＸがＢを採用するか、またはＸがＡおよびＢの両方を採用する場合、「ＸがＡまたはＢを採用する」が、前述の事例のいずれかにおいて満たされる。さらに、本明細書および添付の図面において使用される冠詞「ａ」および「ａｎ」は、単数形を対象にすることが特に指定されない限り、または文脈から明らかでない限り、「１つまたは複数」を意味すると一般に解釈されるべきである。本明細書において使用されるとき、「例」または「例示的」あるいはその両方の用語は、例、事例、または実例となることを意味するために使用される。誤解を避けるために、本明細書で開示された対象は、そのような例によって制限されない。加えて、「例」または「例示的」あるいはその両方として本明細書に記載された任意の態様または設計は、他の態様または設計よりも好ましいか、または有利であると必ずしも解釈されず、当業者に知られている同等の例示的な構造および技術を除外するよう意図されていない。
【０１０６】
本明細書において使用されるとき、「プロセッサ」という用語は、シングルコア・プロセッサと、ソフトウェアのマルチスレッド実行機能を備えるシングルプロセッサと、マルチコア・プロセッサと、ソフトウェアのマルチスレッド実行機能を備えるマルチコア・プロセッサと、ハードウェアのマルチスレッド技術を備えるマルチコア・プロセッサと、並列プラットフォームと、分散共有メモリを備える並列プラットフォームとを含むが、これらに限定されない、実質的に任意の計算処理ユニットまたはデバイスを指すことができる。さらに、プロセッサは、集積回路、特定用途向け集積回路（ＡＳＩＣ：application specific integrated circuit）、デジタル信号プロセッサ（ＤＳＰ：digital signal processor）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ：field programmable gate array）、プログラマブル・ロジック・コントローラ（ＰＬＣ：programmable logic controller）、複合プログラム可能論理デバイス（ＣＰＬＤ：complex programmable logic device）、個別のゲートまたはトランジスタ論理、個別のハードウェア・コンポーネント、あるいは本明細書に記載された機能を実行するように設計されたこれらの任意の組み合わせを指すことができる。さらに、プロセッサは、空間利用を最適化し、ユーザ機器の性能を向上するために、分子および量子ドットベースのトランジスタ、スイッチ、およびゲートなどの、ただしこれらに限定されない、ナノスケール・アーキテクチャを利用することができる。プロセッサは、計算処理ユニットの組み合わせとして実装されてもよい。本開示では、コンポーネントの動作および機能に関連する「ストア」、「ストレージ」、「データ・ストア」、「データ・ストレージ」、「データベース」、および実質的に任意のその他の情報格納コンポーネントなどの用語は、「メモリ・コンポーネント」、「メモリ」内に具現化された実体、またはメモリを備えているコンポーネントを指すために使用される。本明細書に記載されたメモリまたはメモリ・コンポーネントあるいはその両方が、揮発性メモリまたは不揮発性メモリのいずれかであることができ、あるいは揮発性メモリおよび不揮発性メモリの両方を含むことができるということが、理解されるべきである。不揮発性メモリの例としては、読み取り専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、電気的プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＲＯＭ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ（ＲＡＭ）（例えば、強誘電体ＲＡＭ（ＦｅＲＡＭ））が挙げられるが、これらに限定されない。揮発性メモリは、例えば外部キャッシュ・メモリとして機能できる、ＲＡＭを含むことができる。例えばＲＡＭは、シンクロナスＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、ダブル・データ・レートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）、拡張ＳＤＲＡＭ（ＥＳＤＲＡＭ）、シンクリンクＤＲＡＭ（ＳＬＤＲＡＭ）、ダイレクト・ラムバスＲＡＭ（ＤＲＲＡＭ）、ダイレクト・ラムバス・ダイナミックＲＡＭ（ＤＲＤＲＡＭ）、およびラムバス・ダイナミックＲＡＭ（ＲＤＲＡＭ：Rambus dynamic RAM）などの、ただしこれらに限定されない、多くの形態で利用可能である。さらに、本明細書において開示されたシステムまたはコンピュータ実装方法のメモリ・コンポーネントは、これらおよび任意のその他の適切な種類のメモリを含むが、これらに限定されない、メモリを含むよう意図されている。
【０１０７】
前述した内容は、システムおよびコンピュータ実装方法の単なる例を含んでいる。当然ながら、本開示を説明する目的で、コンポーネントまたはコンピュータ実装方法の考えられるすべての組み合わせについて説明することは不可能であるが、当業者は、本開示の多くのその他の組み合わせおよびソートが可能であるということを認識できる。さらに、「含む」、「有する」、「所有する」などの用語が、発明を実施するための形態、特許請求の範囲、付録、および図面において使用される範囲では、それらの用語は、「備えている」が特許請求における暫定的な用語として使用されるときに解釈されるような、用語「備えている」と同様の方法で、包含的であるよう意図されている。さまざまな実施形態の説明は、例示の目的で提示されているが、網羅的であることは意図されておらず、開示された実施形態に制限されない。説明された実施形態の範囲から逸脱することなく多くの変更および変形が、当業者にとって明らかであろう。本明細書で使用された用語は、実施形態の原理、実際の適用、または市場で見られる技術を超える技術的改良を最も適切に説明するため、または他の当業者が本明細書で開示された実施形態を理解できるようにするために選択されている。
【図１】
2021536629.tif 000004
【図２】
2021536629.tif 000005
【図３】
2021536629.tif 000006
【図４】
2021536629.tif 000007
【図５】
2021536629.tif 000008
【図６】
2021536629.tif 000009
【図７】
2021536629.tif 000010
【図８】
2021536629.tif 000011
【図９】
2021536629.tif 000012
【図１０】
2021536629.tif 000013
【手続補正書】
【提出日】令和3年7月2日(2021.7.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータ実行可能コンポーネントを格納するメモリと、
前記メモリに動作可能なように結合され、コンピュータ実行可能コンポーネントを実行するプロセッサとを備えているシステムであって、前記コンピュータ実行可能コンポーネントが、
アプリケーションの解析に基づいて、互いの間の直接接続を使用する必要性の定義された可能性閾値を満たすということが決定された量子ビットの対を抽出する抽出コンポーネントと、
前記量子ビットの対に関連付けられた特性の解析に基づいて、前記アプリケーションに使用するための量子回路の回路設計を決定する設計管理コンポーネントとを備えている、システム。
【請求項２】
前記アプリケーションが、前記量子ビットの対が抽出される定義された量子アルゴリズムに関連付けられている、請求項１に記載のシステム。
【請求項３】
前記設計管理コンポーネントが、前記量子ビットの対に関連付けられた前記特性を解析し、前記量子ビットの対に関連付けられた前記特性および前記特性に関連付けられた重み値に基づいて、前記量子ビットの対をソートする、請求項１に記載のシステム。
【請求項４】
前記特性が、前記量子ビットの対のうちの１対の量子ビットに関連付けられた影響を受ける下流の量子ビットの数、前記１対の量子ビットの間の２量子ビット・ゲート動作の数、前記１対の量子ビットによる影響を受ける測定、および前記１対の量子ビットによる影響を受けると決定されている測定が存在しないこと、から成る特性の群から選択される、請求項３に記載のシステム。
【請求項５】
前記設計管理コンポーネントが、前記ソートに基づいて前記量子ビットの対のうちの他の量子ビットの対よりも高い順位を有する前記量子ビットの対のサブセットを決定し、直接接続を持つことが許可された量子ビットの対の最大数を示す定義された回路設計基準に基づいて、前記量子ビットの対の前記サブセットの前記量子ビットの対に直接接続を割り当てる、請求項３に記載のシステム。
【請求項６】
前記設計管理コンポーネントが、前記量子ビットの対に関連付けられた前記特性の前記解析に基づいて、前記回路設計を含む複数の回路設計が定義された回路設計基準の一部を満たしているということを決定する、請求項１に記載のシステム。
【請求項７】
前記設計管理コンポーネントが、前記複数の回路設計に関連付けられた単一量子ビット・ゲート動作および２量子ビット・ゲート動作の総数を決定し、前記複数の回路設計のうちの他の回路設計の２量子ビット・ゲート動作の他の総数と比べて、前記回路設計が最小の数の２量子ビット・ゲート動作を有するということの決定に基づいて、前記回路設計が前記量子回路に使用されるということを決定する、請求項６に記載のシステム。
【請求項８】
前記設計管理コンポーネントが、前記アプリケーションに関連付けられた定義されたアルゴリズムの仕様に関連する定義された回路設計基準を満たすように、前記アプリケーションに使用される量子ビットの数を決定し、当該量子ビットの量子ビットに使用される接続を決定し、前記量子ビットに使用される前記接続に基づいて、前記定義された回路設計基準を含む定義された回路設計基準に従って、前記回路設計を決定する、請求項１に記載のシステム。
【請求項９】
前記設計管理コンポーネントが、前記量子ビットのうちの他の量子ビットよりも多い数の接続を満たす前記量子ビットのサブセットを決定する、請求項８に記載のシステム。
【請求項１０】
前記設計管理コンポーネントが、前記定義された回路設計基準に基づいて、前記量子ビットのうちの補助量子ビットが有することになる１つまたは複数の補助量子ビットの特性を決定する、請求項８に記載のシステム。
【請求項１１】
前記設計管理コンポーネントが、前記回路設計の回路図を構築する、請求項１に記載のシステム。
【請求項１２】
プロセッサに動作可能なように結合されたシステムが、アプリケーションを解析することに基づいて、互いの間の直接接続を利用する必要性の定義された可能性閾値を満たすということが決定された量子ビットの対を抽出することと、
前記システムが、前記量子ビットの対の特性を解析することに基づいて、前記アプリケーションに使用するための量子回路の回路設計を決定することとを含む、方法。
【請求項１３】
前記システムが、前記量子ビットの対に関連付けられた前記特性を解析することと、前記システムが、前記量子ビットの対に関連付けられた前記特性および前記特性に関連付けられた重み値に基づいて、前記量子ビットの対をソートすることとをさらに含む、請求項１２に記載の方法。
【請求項１４】
前記特性が、前記量子ビットの対のうちの１対の量子ビットに関連付けられた影響を受ける下流の量子ビットの数、前記１対の量子ビットの間の２量子ビット・ゲート動作の数、前記１対の量子ビットによる影響を受ける測定、および前記１対の量子ビットによる影響を受けると決定されている測定が存在しないこと、から成る特性の群から選択される、請求項１３に記載の方法。
【請求項１５】
前記システムが、前記量子ビットの対の前記ソートに基づいて、前記量子ビットの対のうちの他の量子ビットの対よりも高い順位を有する前記量子ビットの対のサブセットを決定することと、
直接接続を前記量子ビットの対の前記サブセットの量子ビットの対に割り当てることとをさらに含み、
前記量子ビットの対の前記サブセット内に存在できる量子ビットの対の最大数が、定義された回路設計基準に基づいて決定される、請求項１３に記載の方法。
【請求項１６】
前記システムが、前記量子ビットの対に関連付けられた前記特性の前記解析に基づいて、前記回路設計を含む複数の回路設計が、定義された回路設計基準のうちの少なくとも１つの定義された回路設計基準を満たすということを決定することをさらに含む、請求項１２に記載の方法。
【請求項１７】
前記システムが、前記複数の回路設計に関連付けられた単一量子ビット・ゲート動作および２量子ビット・ゲート動作の総数を決定することと、
前記システムが、２量子ビット・ゲート動作の前記総数を比較することに基づいて、前記複数の回路設計のうちの前記回路設計が、前記複数の回路設計のうちの他の回路設計と比較して最小の数の２量子ビット・ゲート動作を有するということを決定することと、
前記システムが、前記回路設計が前記最小の数の２量子ビット・ゲート動作を有するということを前記決定することに基づいて、前記回路設計が前記量子回路に使用されるということを決定することとをさらに含む、請求項１６に記載の方法。
【請求項１８】
前記システムが、前記回路設計の回路図を構築することをさらに含む、請求項１２に記載の方法。
【請求項１９】
量子回路の回路設計の決定を容易にするコンピュータ・プログラムであって、プロセッサに、
アプリケーションの解析に基づいて、互いの間の直接接続を使用する必要性の定義された可能性閾値を満たすということが決定された量子ビットの対を抽出することと、
前記量子ビットの対の特性の解析に基づいて、前記アプリケーションに使用するための前記量子回路の前記回路設計を決定することとを実行させる、コンピュータ・プログラム。
【請求項２０】
前記プロセッサに、
前記量子ビットの対に関連付けられた前記特性を解析することと、
前記量子ビットの対に関連付けられた前記特性および前記特性に関連付けられた重み値に基づいて前記量子ビットの対をソートすることとをさらに実行させ、前記特性が、前記量子ビットの対のうちの１対の量子ビットに関連付けられた影響を受ける下流の量子ビットの数、前記１対の量子ビットの間の２量子ビット・ゲート動作の数、前記１対の量子ビットによる影響を受ける測定、および前記１対の量子ビットによる影響を受けると決定されている測定が存在しないこと、から成る特性の群から選択される、請求項１９に記載のコンピュータ・プログラム。
【請求項２１】
コンピュータ実行可能コンポーネントを格納するメモリと、
前記メモリに動作可能なように結合され、コンピュータ実行可能コンポーネントを実行するプロセッサとを備えているシステムであって、前記コンピュータ実行可能コンポーネントが、
アプリケーションに関連付けられたアルゴリズムの解析に基づいて、互いの間の直接接続の使用に対して定義された可能性閾値を満たすということが決定された量子ビットの対を抽出する抽出コンポーネントと、
前記量子ビットの対に関連付けられた特性の解析に基づいて、かつ前記特性に関連付けられた重みに基づいて、前記アルゴリズムに使用するための量子コンピューティング回路設計を決定する設計管理コンポーネントとを含む、システム。
【請求項２２】
前記設計管理コンポーネントが、前記量子ビットの対に関連付けられた前記特性を解析し、前記量子ビットの対に関連付けられた前記特性に基づいて、かつ前記特性に関連付けられた前記重みに基づいて、前記量子ビットの対を順位付けする、請求項２１に記載のシステム。
【請求項２３】
前記設計管理コンポーネントが、前記順位付けに基づいて前記量子ビットの対のうちの他の量子ビットの対よりも高い順位を有する前記量子ビットの対のサブセットを決定し、直接接続を持つことができる量子ビットの対の定義された数を示す定義された回路設計基準に基づいて、前記量子ビットの対の前記サブセットの前記量子ビットの対に直接接続を割り当てる、請求項２２に記載のシステム。
【請求項２４】
量子コンピューティング回路設計の決定を容易にするコンピュータ・プログラムを記録したコンピュータ可読ストレージ媒体であって、前記コンピュータ・プログラムが、プロセッサに、
アプリケーションに関連付けられたアルゴリズムの解析に基づいて、互いの間の直接接続の使用に対して定義された可能性閾値を満たすということが決定された量子ビットの対を抽出することと、
前記量子ビットの対に関連付けられた特性の解析に基づいて、かつ前記特性に関連付けられた重みに基づいて、前記アルゴリズムに使用するための前記量子コンピューティング回路設計を決定することとを実行させる、コンピュータ可読ストレージ媒体。
【請求項２５】
前記コンピュータ・プログラムが、前記プロセッサに、
前記量子ビットの対に関連付けられた前記特性を解析することと、
前記量子ビットの対に関連付けられた前記特性の前記解析の結果に基づいて、かつ前記特性に関連付けられた前記重みに基づいて前記量子ビットの対を順位付けすることとをさらに実行させ、前記特性が、前記量子ビットの対のうちの１対の量子ビットに関連付けられた影響を受ける下流の量子ビットの数、前記１対の量子ビットの間の２量子ビット・ゲート動作の数、前記１対の量子ビットによる影響を受ける測定、および前記１対の量子ビットによる影響を受けると決定されている測定が存在しないこと、から成る特性の群から選択される、請求項２４に記載のコンピュータ可読ストレージ媒体。
【請求項２６】
請求項１ないし１１または２１ないし２３のいずれか一項に記載の前記システムによって生成された量子回路の回路設計を使用して量子コンピューティング回路の物理的レイアウトを製造または構築する方法。
【請求項２７】
請求項２６に記載の製造または構築する方法を使用して製造または構築された量子コンピューティング回路。
【国際調査報告】
2021536629.tif 000014
2021536629.tif 000015