(57)【要約】【課題】量子コンピューティング・デバイスのモデル化および設計のための手法およびシステムを提供する。【解決手段】１つの例では、システムが、モデル化コンポーネントおよびシミュレーション・コンポーネントを含む。モデル化コンポーネントは、量子コンピューティング・デバイスの量子デバイス素子を電磁回路素子としてモデル化し、量子コンピューティング・デバイスの電磁回路データを生成する。シミュレーション・コンポーネントは、電磁回路データを使用して量子コンピューティング・デバイスをシミュレートし、量子コンピューティング・デバイスの応答関数を示す応答関数データを生成する。追加的または代替的に、応答関数に基づいてハミルトニアンが構築される。【選択図】図３
2021512387.tif 000002
【特許請求の範囲】
【請求項１】
量子コンピューティング・デバイス設計ツールのシステムであって、
コンピュータ実行可能コンポーネントを格納するメモリと、
前記メモリに格納されたコンピュータ実行可能コンポーネントを実行するプロセッサと
を備えており、前記コンピュータ実行可能コンポーネントが、
量子コンピューティング・デバイスの量子デバイス素子を電磁回路素子としてモデル化し、前記量子コンピューティング・デバイスの電磁回路データを生成するモデル化コンポーネントと、
前記電磁回路データを使用して前記量子コンピューティング・デバイスをシミュレートし、前記量子コンピューティング・デバイスの応答関数を示す応答関数データを生成するシミュレーション・コンポーネントと
を含んでいる、システム。
【請求項２】
前記量子デバイス素子が、前記量子コンピューティング・デバイスの第１の量子デバイス素子であり、前記モデル化コンポーネントが、前記量子コンピューティング・デバイスの前記第１の量子デバイス素子と第２の量子デバイス素子の間の接続に関連付けられた情報を示す接続データを生成する、請求項１に記載のシステム。
【請求項３】
前記モデル化コンポーネントが、前記接続データに基づいて前記量子コンピューティング・デバイスの前記電磁回路データを生成する、請求項２に記載のシステム。
【請求項４】
前記シミュレーション・コンポーネントが前記応答関数データに基づいてハミルトニアン・データを生成する、請求項１に記載のシステム。
【請求項５】
定義された基準を前記ハミルトニアン・データが満たすということの決定に応答して、前記シミュレーション・コンポーネントが、前記電磁回路データを使用して前記量子コンピューティング・デバイスを再シミュレートする、請求項４に記載のシステム。
【請求項６】
前記コンピュータ実行可能コンポーネントが、
前記ハミルトニアン・データに基づいて、前記量子コンピューティング・デバイスのレイアウトを示す設計データを生成する設計コンポーネントを含んでいる、請求項４に記載のシステム。
【請求項７】
前記モデル化コンポーネントが、電磁回路素子のライブラリに基づいて、前記量子コンピューティング・デバイスの前記量子デバイス素子を前記電磁回路素子としてモデル化する、請求項１に記載のシステム。
【請求項８】
前記シミュレーション・コンポーネントによって生成された前記応答関数データが、前記量子コンピューティング・デバイスの品質の改善を促進する、請求項１に記載のシステム。
【請求項９】
前記ハミルトニアン・データが、前記量子コンピューティング・デバイスのエネルギーに関連付けられた情報を示す、請求項４に記載のシステム。
【請求項１０】
コンピュータ実装方法であって、
プロセッサに動作可能なように結合されたシステムによって、量子コンピューティング・デバイスの量子デバイス素子を電磁回路素子としてモデル化し、前記量子コンピューティング・デバイスの電磁回路データを生成することと、
前記システムによって、前記電磁回路データを使用して前記量子コンピューティング・デバイスをシミュレートし、前記量子コンピューティング・デバイスのパラメータのセットを示すパラメータ・データを生成することと、
前記システムによって、前記パラメータ・データに基づいて、前記量子コンピューティング・デバイスのレイアウトを示す設計データを生成することと
を含んでいる、コンピュータ実装方法。
【請求項１１】
前記量子コンピューティング・デバイスを前記シミュレートすることが、前記電磁回路データを使用して前記量子コンピューティング・デバイスをシミュレートし、前記量子コンピューティング・デバイスの応答関数を示す応答関数データを生成することを含んでいる、請求項１０に記載のコンピュータ実装方法。
【請求項１２】
前記量子コンピューティング・デバイスを前記シミュレートすることが、前記応答関数データに基づいてハミルトニアン・データを生成することを含んでいる、請求項１１に記載のコンピュータ実装方法。
【請求項１３】
前記設計データを前記生成することが、前記ハミルトニアン・データに基づいて前記設計データを生成することを含んでいる、請求項１０に記載のコンピュータ実装方法。
【請求項１４】
定義された基準を前記ハミルトニアン・データが満たすということの決定に応答して、前記システムによって、前記電磁回路データを使用して前記量子コンピューティング・デバイスを再シミュレートすることをさらに含んでいる、請求項１０に記載のコンピュータ実装方法。
【請求項１５】
前記システムによって、前記量子コンピューティング・デバイスの量子デバイス素子間の１つまたは複数の接続に関連付けられた情報を示す接続データを生成することをさらに含んでいる、請求項１０に記載のコンピュータ実装方法。
【請求項１６】
前記量子デバイス素子を前記モデル化することが、前記接続データに基づいて前記量子コンピューティング・デバイスの前記電磁回路データを生成することを含んでいる、請求項１５に記載のコンピュータ実装方法。
【請求項１７】
前記量子デバイス素子を前記モデル化することが、電磁回路素子のライブラリに基づいて、前記量子コンピューティング・デバイスの前記量子デバイス素子を前記電磁回路素子としてモデル化することを含んでいる、請求項１０に記載のコンピュータ実装方法。
【請求項１８】
前記設計データを前記生成することが、前記量子コンピューティング・デバイスを改良することを含んでいる、請求項１０に記載のコンピュータ実装方法。
【請求項１９】
量子コンピューティング・デバイス設計のためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、プログラム命令が具現化されているコンピュータ可読記憶媒体を備えており、前記プログラム命令が、前記プロセッサに、
前記プロセッサによって、量子コンピューティング・デバイスの１つまたは複数の量子デバイス素子を１つまたは複数の電磁回路素子としてモデル化することと、
前記プロセッサによって、前記１つまたは複数の電磁回路素子に基づいて前記量子コンピューティング・デバイスの等価電磁回路を生成することと、
前記プロセッサによって、前記等価電磁回路をシミュレートし、前記量子コンピューティング・デバイスのパラメータのセットを示すパラメータ・データを生成することと、
前記プロセッサによって、前記パラメータ・データに基づいて、前記量子コンピューティング・デバイスのレイアウトを示す設計データを生成することと
を実行させるようにプロセッサによって実行可能である、コンピュータ・プログラム製品。
【請求項２０】
前記プログラム命令が、前記プロセッサに、
前記プロセッサによって、前記等価電磁回路をシミュレートし、前記量子コンピューティング・デバイスの応答関数を示す応答関数データを生成することを実行させるように、前記プロセッサによってさらに実行可能である、請求項１９に記載のコンピュータ・プログラム製品。
【請求項２１】
前記プログラム命令が、前記プロセッサに、
前記応答関数データに基づいて、前記プロセッサによってハミルトニアン・データを生成することを実行させるように、前記プロセッサによってさらに実行可能であり、前記ハミルトニアン・データが、前記量子コンピューティング・デバイスのエネルギーに関連付けられた情報を示す、請求項２０に記載のコンピュータ・プログラム製品。
【請求項２２】
コンピュータ実装方法であって、
プロセッサに動作可能なように結合されたシステムによって、量子コンピューティング・デバイスの１つまたは複数の量子デバイス素子を１つまたは複数の電磁回路素子としてモデル化することと、
前記システムによって、前記１つまたは複数の電磁回路素子に基づいて前記量子コンピューティング・デバイスの等価電磁回路を生成することと、
前記システムによって、前記等価電磁回路をシミュレートし、前記量子コンピューティング・デバイスの応答関数を示す応答関数データを生成することと、
前記システムによって、前記応答関数を使用して前記量子コンピューティング・デバイスのハミルトニアン・パラメータのセットを生成することと、
前記ハミルトニアン・パラメータのセットに基づいて、前記システムによって、前記量子コンピューティング・デバイスのレイアウトを生成することと
を含んでいる、コンピュータ実装方法。
【請求項２３】
定義された基準を、前記ハミルトニアン・パラメータのセットからのハミルトニアン・パラメータが満たしているということの決定に応答して、前記システムによって、前記等価電磁回路を再シミュレートすることをさらに含んでいる、請求項２２に記載のコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、量子コンピューティング・デバイスに関し、より詳細には、量子コンピューティング・デバイス設計に関する。
【背景技術】
【０００２】
量子コンピューティングは、トランジスタに基づく２進デジタル手法ではなく、量子物理学を採用して情報をエンコードする。例えば、量子コンピューティング・デバイスは、量子物理学の重ね合わせの原理および量子物理学のエンタングルメント原理に従って動作する量子のビット（quantum bits）（例えば、量子ビット（qubits））を採用することができる。量子物理学の重ね合わせの原理は、各量子ビットが「１」の値と「０」の値の両方を同時に表すことができるようにする。量子物理学のエンタングルメント原理の状態は、量子ビットが、重ね合わせにおいて互いに相関関係を持つことができるようにする。例えば、第１の値（例えば、「１」の値または「０」の値）の状態は、第２の値の状態によって決まることができる。そのため、量子コンピューティング・デバイスは、トランジスタに基づく２進デジタル手法ではなく、量子ビットを採用して情報をエンコードすることができる。しかし、量子コンピューティング・デバイスの設計は、従来の２進デジタル・デバイスと比較して、通常、困難であるか、または時間がかかるか、あるいはその両方である。例えば、Svore, et al., "Toward a Software Architecture for Quantum Computing Design Tools"は、「量子コンピューティング・アルゴリズムを表す高水準言語プログラムをテクノロジー固有の実装に変換するコンピュータ支援設計フロー」を開示している。Svore他は、「この設計フロー（図１）は、量子アルゴリズムを表す高水準プログラムをテクノロジー固有の実装またはシミュレーションにマッピングする４段階のプロセスである」ということも開示している。さらに、Svore他は、「設計フローの最初の３つの段階は、量子コンピュータ・コンパイラ（ＱＣＣ：quantum computer compiler）の一部であり、・・・最後の段階は、量子デバイス上の量子アルゴリズムのシミュレーションまたは実装である」と述べている。そのため、量子コンピューティング・デバイスの設計プロセスまたは量子コンピューティング・デバイスの設計あるいはその両方が改善され得る。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Svore, et al., "Toward a Software Architecture for Quantum Computing Design Tools"
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、量子コンピューティング・デバイスのモデル化および設計のための手法およびシステムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
以下に、本発明の１つまたは複数の実施形態の基本的理解を可能にするための概要を示す。この概要は、主要な要素または重要な要素を特定するよう意図されておらず、特定の実施形態の範囲または特許請求の範囲を正確に説明するよう意図されていない。この概要の唯一の目的は、後で提示されるより詳細な説明のための前置きとして、概念を簡略化された形態で提示することである。本明細書に記載された１つまたは複数の実施形態では、量子コンピューティング・デバイス設計を容易にするためのデバイス、システム、コンピュータ実装方法、装置、またはコンピュータ・プログラム製品、あるいはその組み合わせが説明される。
【０００６】
一実施形態によれば、量子コンピューティング・デバイス設計ツールのシステムは、モデル化コンポーネントおよびシミュレーション・コンポーネントを備えることができる。モデル化コンポーネントは、量子コンピューティング・デバイスの量子デバイス素子を電磁回路素子としてモデル化し、量子コンピューティング・デバイスの電磁回路データを生成することができる。シミュレーション・コンポーネントは、電磁回路データを使用して量子コンピューティング・デバイスをシミュレートし、量子コンピューティング・デバイスの応答関数を示す応答関数データを生成することができる。一実施形態では、このシステムは、量子コンピューティング・デバイスを設計する時間を最小限に抑えることができ、または量子コンピューティング・デバイスを設計するために採用される計算リソースの量を減らすことができ、あるいはその両方を行うことができる。特定の実施形態では、量子デバイス素子が、量子コンピューティング・デバイスの第１の量子デバイス素子であることができ、モデル化コンポーネントが、量子コンピューティング・デバイスの第１の量子デバイス素子と第２の量子デバイス素子の間の接続に関連付けられた情報を示す接続データを生成することができる。別の実施形態では、モデル化コンポーネントが、接続データに基づいて量子コンピューティング・デバイスの電磁回路データを生成することができる。特定の実施形態では、シミュレーション・コンポーネントが、量子コンピューティング・デバイスに関連付けられた情報を示す応答関数データを生成することができる。さらに、特定の実施形態では、シミュレーション・コンポーネントが、応答関数データに基づいて、ハミルトニアンまたはハミルトニアン・データあるいはその両方を構築することもできる。追加的または代替的に、定義された基準をハミルトニアン・データが満たすということの決定に応答して、シミュレーション・コンポーネントが、電磁回路データを使用して量子コンピューティング・デバイスを再シミュレートすることができる。追加的または代替的に、設計コンポーネントが、ハミルトニアン・データに基づいて、量子コンピューティング・デバイスのレイアウトを示す設計データを生成することができる。特定の実施形態では、モデル化コンポーネントが、電磁回路素子のライブラリに基づいて、量子コンピューティング・デバイスの量子デバイス素子を電磁回路素子としてモデル化することができる。特定の実施形態では、シミュレーション・コンポーネントによって生成された応答関数データが、量子コンピューティング・デバイスの品質の改善を促進することができる。
【０００７】
別の実施形態によれば、コンピュータ実装方法が提供される。コンピュータ実装方法は、プロセッサに動作可能なように結合されたシステムによって、量子コンピューティング・デバイスの量子デバイス素子を電磁回路素子としてモデル化し、量子コンピューティング・デバイスの電磁回路データを生成することを含むことができる。コンピュータ実装方法は、システムによって、電磁回路データを使用して量子コンピューティング・デバイスをシミュレートし、量子コンピューティング・デバイスのパラメータのセットを示すパラメータ・データを生成することを含むこともできる。一実施形態では、コンピュータ実装方法は、量子コンピューティング・デバイスを設計する時間を最小限に抑えることができ、または量子コンピューティング・デバイスを設計するために採用される計算リソースの量を減らすことができ、あるいはその両方を行うことができる。特定の実施形態では、コンピュータ実装方法は、シミュレートされた量子コンピューティング・デバイスの応答関数に基づいて、システムによって、ハミルトニアンを構築することを含むこともできる。さらに、コンピュータ実装方法は、パラメータ・データに基づいて、システムによって、量子コンピューティング・デバイスのレイアウトを示す設計データを生成することを含むことができる。一実施形態では、量子コンピューティング・デバイスをシミュレートすることが、電磁回路データを使用して量子コンピューティング・デバイスをシミュレートし、量子コンピューティング・デバイスの応答関数を示す応答関数データを生成することを含むことができる。別の実施形態では、量子コンピューティング・デバイスをシミュレートすることが、量子コンピューティング・デバイスに関連付けられた情報を示す応答関数データを生成することを含むことができる。別の実施形態では、量子コンピューティング・デバイスをシミュレートすることが、応答関数データに基づいて量子コンピューティング・デバイスのハミルトニアンまたはハミルトニアン・データあるいはその両方を構築することを含むことができる。さらに別の実施形態では、設計データを生成することが、ハミルトニアン・データに基づいて設計データを生成することを含むことができる。特定の実施形態では、コンピュータ実装方法は、定義された基準をハミルトニアン・データが満たすということの決定に応答して、システムによって、電磁回路データを使用して量子コンピューティング・デバイスを再シミュレートすることをさらに含むことができる。特定の実施形態では、コンピュータ実装方法は、システムによって、量子コンピューティング・デバイスの量子デバイス素子間の１つまたは複数の接続に関連付けられた情報を示す接続データを生成することをさらに含むことができる。一実施形態では、量子デバイス素子をモデル化することが、接続データに基づいて量子コンピューティング・デバイスの電磁回路データを生成することを含むことができる。別の実施形態では、量子デバイス素子をモデル化することが、電磁回路素子のライブラリに基づいて、量子コンピューティング・デバイスの量子デバイス素子を電磁回路素子としてモデル化することを含むことができる。さらに別の実施形態では、設計データを生成することが、量子コンピューティング・デバイスを改良することを含むことができる。
【０００８】
さらに別の実施形態によれば、量子コンピューティング・デバイス設計のためのコンピュータ・プログラム製品が、プログラム命令が具現化されたコンピュータ可読記憶媒体を含むことができる。プログラム命令は、プロセッサによって実行可能であり、プロセッサによって量子コンピューティング・デバイスの１つまたは複数の量子デバイス素子を１つまたは複数の電磁回路素子としてモデル化することを、プロセッサに実行させることができる。プログラム命令は、プロセッサによって、１つまたは複数の電磁回路素子に基づいて量子コンピューティング・デバイスの等価電磁回路を生成することを、プロセッサに実行させることもできる。さらに、プログラム命令は、プロセッサによって、等価電磁回路をシミュレートし、量子コンピューティング・デバイスのパラメータのセットを示すパラメータ・データを生成することを、プロセッサに実行させることができる。一実施形態では、コンピュータ・プログラム製品が、量子コンピューティング・デバイスを設計する時間を最小限に抑えることができ、または量子コンピューティング・デバイスを設計するために採用される計算リソースの量を減らすことができ、あるいはその両方を行うことができる。プログラム命令は、パラメータ・データに基づいて、プロセッサによって量子コンピューティング・デバイスのレイアウトを示す設計データを生成することを、プロセッサに実行させることもできる。特定の実施形態では、プログラム命令は、プロセッサによって、等価電磁回路をシミュレートし、量子コンピューティング・デバイスの応答関数を示す応答関数データを生成することを、プロセッサに実行させることもできる。特定の実施形態では、プログラム命令は、応答関数データに基づいて、プロセッサによってハミルトニアン・データを生成することを、プロセッサに実行させることもでき、ハミルトニアン・データは、量子コンピューティング・デバイスのエネルギーに関連付けられた情報を示す。
【０００９】
さらに別の実施形態によれば、量子コンピューティング・デバイス設計ツールのシステムは、モデル化コンポーネント、シミュレーション・コンポーネント、および設計コンポーネントを備えることができる。モデル化コンポーネントは、量子コンピューティング・デバイスの量子デバイス素子を電磁回路素子としてモデル化し、量子コンピューティング・デバイスの電磁回路データを生成することができる。シミュレーション・コンポーネントは、電磁回路データを使用して量子コンピューティング・デバイスをシミュレートし、量子コンピューティング・デバイスの応答関数を示す応答関数データを生成することができる。シミュレーション・コンポーネントは、応答関数データに基づいてハミルトニアン・データを生成することもでき、ハミルトニアン・データは、量子コンピューティング・デバイスのエネルギーに関連付けられた情報を示す。設計コンポーネントは、ハミルトニアン・データに基づいて、量子コンピューティング・デバイスのレイアウトを示す設計データを生成することができる。一実施形態では、このシステムは、量子コンピューティング・デバイスを設計する時間を最小限に抑えることができ、または量子コンピューティング・デバイスを設計するために採用される計算リソースの量を減らすことができ、あるいはその両方を行うことができる。特定の実施形態では、量子デバイス素子が、量子コンピューティング・デバイスの第１の量子デバイス素子であり、モデル化コンポーネントが、量子コンピューティング・デバイスの第１の量子デバイス素子と第２の量子デバイス素子の間の接続に関連付けられた情報を示す接続データを生成することができる。特定の実施形態では、モデル化コンポーネントが、接続データに基づいて量子コンピューティング・デバイスの電磁回路データを生成することができる。
【００１０】
さらに別の実施形態によれば、コンピュータ実装方法が提供される。コンピュータ実装方法は、プロセッサに動作可能なように結合されたシステムによって、量子コンピューティング・デバイスの１つまたは複数の量子デバイス素子を１つまたは複数の電磁回路素子としてモデル化することを含むことができる。コンピュータ実装方法は、システムによって、１つまたは複数の電磁回路素子に基づいて量子コンピューティング・デバイスの等価電磁回路を生成することを含むこともできる。さらに、コンピュータ実装方法は、システムによって、等価電磁回路をシミュレートし、量子コンピューティング・デバイスの応答関数を示す応答関数データを生成することを含むことができる。一実施形態では、コンピュータ実装方法は、量子コンピューティング・デバイスを設計する時間を最小限に抑えることができ、または量子コンピューティング・デバイスを設計するために採用される計算リソースの量を減らすことができ、あるいはその両方を行うことができる。コンピュータ実装方法は、システムによって、応答関数を使用して量子コンピューティング・デバイスのハミルトニアンおよびハミルトニアン・パラメータのセットを生成することを含むこともできる。さらに、コンピュータ実装方法は、ハミルトニアン・パラメータのセットに基づいて、システムによって、量子コンピューティング・デバイスのレイアウトを生成することを含むことができる。特定の実施形態では、コンピュータ実装方法は、定義された基準を、ハミルトニアン・パラメータのセットからのハミルトニアン・パラメータが満たしているということの決定に応答して、システムによって、等価電磁回路を再シミュレートすることを含むこともできる。
【図面の簡単な説明】
【００１１】
【図１】本明細書に記載された１つまたは複数の実施形態に従って、量子コンピューティング・デバイスのコンポーネントを含んでいる、例示的な非限定的システムのブロック図である。
【図２】本明細書に記載された１つまたは複数の実施形態に従って、量子コンピューティング・デバイスのコンポーネントを含んでいる、別の例示的な非限定的システムのブロック図である。
【図３】本明細書に記載された１つまたは複数の実施形態に従って、量子コンピューティング・デバイス設計を容易にする、例示的な非限定的システムを示す図である。
【図４】本明細書に記載された１つまたは複数の実施形態に従って、量子デバイス素子および電磁回路素子を含んでいる、例示的な非限定的システムを示す図である。
【図５】本明細書に記載された１つまたは複数の実施形態に従って、量子デバイス素子、電磁回路素子、および概略素子を含んでいる、例示的な非限定的システムを示す図である。
【図６】本明細書に記載された１つまたは複数の実施形態に従って、量子デバイス素子、電磁回路素子、および概略素子を含んでいる、別の例示的な非限定的システムを示す図である。
【図７】本明細書に記載された１つまたは複数の実施形態に従って、量子デバイス素子および電磁回路素子を含んでいる、別の例示的な非限定的システムを示す図である。
【図８】本明細書に記載された１つまたは複数の実施形態に従って、等価電磁回路に関連付けられた例示的な非限定的システムを示す図である。
【図９】本明細書に記載された１つまたは複数の実施形態に従って、応答関数に関連付けられた例示的な非限定的グラフである。
【図１０】本明細書に記載された１つまたは複数の実施形態に従って、例示的な非限定的量子コンピューティング・デバイスを示す図である。
【図１１】本明細書に記載された１つまたは複数の実施形態に従って、量子コンピューティング・デバイス設計を容易にするための、例示的な非限定的コンピュータ実装方法のフロー図である。
【図１２】本明細書に記載された１つまたは複数の実施形態に従って、量子コンピューティング・デバイス設計を容易にするための、別の例示的な非限定的コンピュータ実装方法のフロー図である。
【図１３】本明細書に記載された１つまたは複数の実施形態を容易にすることができる例示的な非限定的動作環境のブロック図である。
【発明を実施するための形態】
【００１２】
以下の詳細な説明は、例にすぎず、実施形態、または実施形態の適用もしくは使用、あるいはその両方を制限するよう意図されていない。さらに、先行する「背景技術」または「発明の概要」のセクション、あるいは「発明を実施するための形態」のセクションで提示された、いずれかの明示されたか、または暗示された情報によって制約されるという意図はない。
【００１３】
ここで、図面を参照して１つまたは複数の実施形態が説明され、図面全体を通じて、類似する参照番号が、類似する要素を参照するために使用されている。以下の説明では、説明の目的で、１つまたは複数の実施形態を十分に理解できるように、多数の特定の詳細が示されている。しかし、これらの特定の詳細がなくても、さまざまな事例において、１つまたは複数の実施形態が実践され得るということは明らかである。
【００１４】
量子コンピューティングは、トランジスタに基づく２進デジタル手法ではなく、量子物理学を採用して情報をエンコードする。例えば、量子コンピューティング・デバイスは、量子物理学の重ね合わせの原理および量子物理学のエンタングルメント原理に従って動作する量子のビット（quantum bits）（例えば、量子ビット（qubits））を採用することができる。量子物理学の重ね合わせの原理は、各量子ビットが「１」の値と「０」の値の両方を同時に表すことができるようにする。量子物理学のエンタングルメント原理の状態は、量子ビットが、重ね合わせにおいて互いに相関関係を持つことができるようにする。例えば、第１の値（例えば、「１」の値または「０」の値）の状態は、第２の値の状態によって決まることができる。そのため、量子コンピューティング・デバイスは、トランジスタに基づく２進デジタル手法ではなく、量子ビットを採用して情報をエンコードすることができる。しかし、量子コンピューティング・デバイスの設計は、従来の２進デジタル・デバイスと比較して、通常、困難であるか、または時間がかかるか、あるいはその両方である。例えば、Svore, et al., "Toward a Software Architecture for Quantum Computing Design Tools"は、「量子コンピューティング・アルゴリズムを表す高水準言語プログラムをテクノロジー固有の実装に変換するコンピュータ支援設計フロー・・・この設計フロー（図１）は、量子アルゴリズムを表す高水準プログラムをテクノロジー固有の実装またはシミュレーションにマッピングする４段階のプロセスである。設計フローの最初の３つの段階は、量子コンピュータ・コンパイラ（ＱＣＣ）の一部である。最後の段階は、量子デバイス上の量子アルゴリズムのシミュレーションまたは実装である。」ということを開示している（Svore他の要約、図１、および３ページを参照）。そのため、量子コンピューティング・デバイスの設計プロセスまたは量子コンピューティング・デバイスの設計あるいはその両方が改善され得る。
【００１５】
これらの問題またはその他の問題あるいはその両方に対処するために、本明細書に記載された実施形態は、改良された量子コンピューティング・デバイス設計のためのシステム、コンピュータ実装方法、およびコンピュータ・プログラム製品を含んでいる。１つの態様では、量子コンピューティング・デバイスは、等価電磁回路を採用することによって設計され得る。例えば、量子コンピューティング・デバイスの１つまたは複数の量子デバイス素子と同等である電磁回路に基づいて、量子コンピューティング・デバイスを設計するための回路設計またはハミルトニアン計算あるいはその両方が決定され得る。ハミルトニアン計算は、例えば、量子コンピューティング・デバイスのエネルギーまたは電磁特性あるいはその両方に関連付けられた情報を示すことができる。そのため、回路設計と回路設計のためのハミルトニアン計算との間の改良された転換が実現され得る。一実施形態では、等価電磁回路素子を決定するために、量子コンピューティング・デバイスの１つまたは複数の量子デバイス素子がモデル化され得る。１つまたは複数の量子デバイス素子に関連付けられた１つまたは複数の接続に基づいて、量子コンピューティング・デバイスの等価電磁回路が生成され得る。量子コンピューティング・デバイスの応答関数を示す応答関数データを取得するために、（例えば、量子コンピューティング・デバイスのレイアウトをシミュレートするのではなく）等価電磁回路がシミュレートされ得る。応答関数データ（例えば、量子コンピューティング・デバイスの応答関数）は、例えば、インピーダンス、アドミッタンス、または量子コンピューティング・デバイスの別の電気的パラメータ、あるいはその組み合わせを含むことができる。１つの態様では、量子コンピューティング・デバイスの応答関数から１つまたは複数のパラメータを計算するために、モデル化ツールが採用され得る。例えば、量子コンピューティング・デバイスの応答関数から１つまたは複数のハミルトニアン・パラメータを計算するために、ハミルトニアン・モデル化ツールが採用され得る。１つの例では、量子コンピューティング・デバイスの応答関数から１つまたは複数のハミルトニアン・パラメータを計算するために、量子情報処理用の非線形素子に関連付けられたブラックボックス量子化手法（black-box quantization technique）が採用され得る。そのため、量子コンピューティング・デバイスを設計する時間が短縮され得る。例えば、量子コンピューティング・デバイスを準備するか、またはシミュレートするか、あるいはその両方を行う時間が短縮され得る。さらに、量子コンピューティング・デバイスを設計するために採用される計算リソース量が削減され得る。量子コンピューティング・デバイスの設計も最適化され得る。さらに、量子コンピューティング・デバイス設計システムの精度または量子コンピューティング・デバイス設計システムの効率あるいはその両方が改善され得る。さらに、量子コンピューティング・デバイスの品質を改善することができ、量子コンピューティング・デバイスの性能を改善することができ、量子コンピューティング・デバイスの効率を改善することができ、量子コンピューティング・デバイスのタイミング特���を改善することができ、量子コンピューティング・デバイスの電力特性を改善することができ、または量子コンピューティング・デバイスの別の特性を改善することができ、あるいはその組み合わせを行うことができる。
【００１６】
図１は、本明細書に記載された１つまたは複数の実施形態に従って、量子コンピューティング・デバイス設計のための例示的な非限定的システム１００のブロック図を示している。さまざまな実施形態では、システム１００は、量子コンピューティング・デバイス技術、量子コンピューティング設計技術、量子ビット技術、量子コンピューティング・デバイス・モデル化技術、量子回路技術、量子コンピューティング・デバイス・シミュレーション技術、量子プロセッサ技術、人工知能技術、医薬および材料技術、サプライ・チェーンおよび物流技術、金融サービス技術、またはその他のデジタル技術、あるいはその組み合わせなどの、ただしこれらに限定されない技術に関連付けられた、量子コンピューティング・デバイス設計システムであることができる。システム１００は、抽象的ではない、人間による一連の精神的活動として実行され得ない本質的に高度に技術的な問題を解決するためのハードウェアまたはソフトウェアあるいはその両方を採用することができる。さらに、特定の実施形態では、実行されるプロセスの一部は、機械学習に関連する定義されたタスクを実行するために、１つまたは複数の特殊なコンピュータ（例えば、１つまたは複数の特殊な処理ユニット、量子コンピューティング・デバイス設計ツールを含む特殊なコンピュータなど）によって実行されてよい。前述の技術、コンピュータ・アーキテクチャ、または同様のもの、あるいはその組み合わせにおける進歩を通じて生じる新しい問題を解決するために、一部の実施形態では、システム１００またはシステム１００のコンポーネントあるいはその両方が採用され得る。システム１００の１つまたは複数の実施形態は、量子コンピューティング・デバイス・システム、量子コンピューティング設計システム、量子ビット・システム、量子コンピューティング・デバイス・モデル化システム、量子回路システム、量子コンピューティング・デバイス・シミュレーション・システム、量子プロセッサ・システム、人工知能システム、医薬および材料システム、サプライ・チェーンおよび物流システム、金融サービス・システム、またはその他のシステム、あるいはその組み合わせに、技術的改善を提供できる。システム１００の１つまたは複数の実施形態は、量子コンピューティング・デバイスの処理性能を改善すること、量子コンピューティング・デバイスの処理効率を改善すること、量子コンピューティング・デバイスの処理特性を改善すること、量子コンピューティング・デバイスのタイミング特性を改善すること、または量子コンピューティング・デバイスの電力効率を改善すること、あるいはその組み合わせによって、量子コンピューティング・デバイス（例えば、量子プロセッサ）に技術的改善を提供することもできる。
【００１７】
図１に示された実施形態では、システム１００は、量子コンピューティング・デバイス設計ツール１０２を含むことができる。図１に示されているように、量子コンピューティング・デバイス設計ツール１０２は、モデル化コンポーネント１０４およびシミュレーション・コンポーネント１０６を含むことができる。量子コンピューティング・デバイス設計ツール１０２の態様は、マシン内で具現化された（例えば、１つまたは複数のマシンに関連付けられた１つまたは複数のコンピュータ可読媒体内で具現化された）機械実行可能コンポーネントを構成できる。そのようなコンポーネントは、１つまたは複数のマシン（例えば、コンピュータ、コンピューティング・デバイス、仮想マシンなど）によって実行された場合に、マシンに、説明された動作を実行させることができる。１つの態様では、量子コンピューティング・デバイス設計ツール１０２は、コンピュータ実行可能コンポーネントおよび命令を格納するメモリ１０８を含むこともできる。さらに、量子コンピューティング・デバイス設計ツール１０２は、量子コンピューティング・デバイス設計ツール１０２による命令（例えば、コンピュータ実行可能コンポーネントおよび対応する命令）の実行を容易にするために、プロセッサ１１０を含むことができる。図に示されているように、１つまたは複数の実施形態では、モデル化コンポーネント１０４、シミュレーション・コンポーネント１０６、メモリ１０８、またはプロセッサ１１０、あるいはその組み合わせは、電気的に、または通信によって、あるいはその両方によって、互いに結合され得る。
【００１８】
量子コンピューティング・デバイス設計ツール１０２（例えば、量子コンピューティング・デバイス設計ツール１０２のモデル化コンポーネント１０４）は、量子デバイス素子データ１１２を受信できる。量子デバイス素子データ１１２は、例えば、量子コンピューティング・デバイスの１つまたは複数の量子デバイス素子の機械可読記述であることができる。追加的または代替的に、量子デバイス素子データは、量子コンピューティング・デバイスの１つまたは複数の量子デバイス素子の１つまたは複数のモデルに関連付けられ得る。量子コンピューティング・デバイスは、例えば、量子回路、量子プロセッサ、量子ビット・デバイス、量子ビット単位セル、または量子ビットを採用する別の種類のコンピューティング・デバイス、あるいはその組み合わせであることができる。１つまたは複数の量子デバイス素子からの量子デバイス素子は、例えば、量子コンピューティング・デバイスの量子ビット素子、量子コンピューティング・デバイスの結合器、量子コンピューティング・デバイスの読み出し、量子コンピューティング・デバイスのバス、または量子コンピューティング・デバイスの別の素子を含むことができる。一実施形態では、量子デバイス素子データ１１２は、量子コンピューティング・デバイスのモデルに関連付けられ得る。例えば、量子コンピューティング・デバイスのモデルはコンピュータ・シミュレータによって生成され得る。コンピュータ・シミュレータは、例えば、量子コンピューティング・デバイスに関連付けられた１つまたは複数の電磁場シミュレーションを実行する静的な場のシミュレータであることができる。１つの例では、量子コンピューティング・デバイスのモデルは、２次元モデルであることができる。別の例では、量子コンピューティング・デバイスのモデルは、３次元モデルであることができる。
【００１９】
モデル化コンポーネント１０４は、量子デバイス素子データ１１２に関連付けられた量子デバイス素子を電磁回路素子としてモデル化し、量子コンピューティング・デバイスの電磁回路データを生成することができる。例えば、モデル化コンポーネント１０４は、量子コンピューティング・デバイスの量子デバイス素子を電磁回路素子としてモデル化し、量子コンピューティング・デバイスの電磁回路データを生成することができる。電磁回路素子は、例えば、インダクタ、コンデンサ、抵抗器、インダクタ―コンデンサ回路網、インダクタ―抵抗器回路網、インダクタ―コンデンサ―抵抗器回路網、コンデンサ―抵抗器回路網、共振器、マイクロ波共振器、別の種類の電磁回路素子などであることができる。一実施形態では、モデル化コンポーネント１０４は、量子コンピューティング・デバイスの量子デバイス素子間の１つまたは複数の接続に関連付けられた情報を示す接続データを生成することができる。例えば、モデル化コンポーネント１０４は、量子コンピューティング・デバイスの第１の量子デバイス素子と量子コンピューティング・デバイスの第２の量子デバイス素子の間の接続に関連付けられた情報を示す接続データを生成することができる。１つの態様では、モデル化コンポーネント１０４が、接続データに基づいて量子コンピューティング・デバイスの電磁回路データを生成することができる。特定の実施形態では、モデル化コンポーネント１０４が、電磁回路素子のライブラリに基づいて、量子コンピューティング・デバイスの量子デバイス素子を電磁回路素子としてモデル化することができる。例えば、電磁回路素子のライブラリは、量子デバイス素子に対応する既定の電磁回路素子のセットを含むことができる。追加的または代替的に、特定の実施形態では、量子デバイス素子データ１１２は、量子コンピューティング回路内の量子デバイス素子に関連付けられた１つまたは複数の位置に関する情報を示す位置データをさらに含むことができる。例えば、この位置データは、量子コンピューティング回路内の１つまたは複数の量子デバイス素子の位置にタグ付けする１つまたは複数のタグを含むことができる。
【００２０】
シミュレーション・コンポーネント１０６は、電磁回路データを使用して量子コンピューティング・デバイスをシミュレートし、量子コンピューティング・デバイスのパラメータ・データ１１４を生成することができる。一実施形態では、このパラメータ・データは、応答関数データを含むことができる。例えば、シミュレーション・コンポーネント１０６は、電磁回路データを使用して量子コンピューティング・デバイスをシミュレートし、量子デバイスの応答関数データを生成することができる。応答関数データは、量子コンピューティング・デバイスの応答関数を示すことができる。１つの例では、この応答関数は、量子コンピューティング・デバイスの多次元応答関数（multi-dimensional response function）であることができる。別の実施形態では、このパラメータ・データは、ハミルトニアン・データを含むことができる。例えば、シミュレーション・コンポーネント１０６は、応答関数データに基づいてハミルトニアン・データを生成することができる。１つの例では、ハミルトニアン・データは応答関数から計算され得る。ハミルトニアン・データは、量子コンピューティング・デバイスのエネルギーまたは量子コンピューティング・デバイスの電磁特性あるいはその両方に関連付けられた情報を示すことができる。１つの態様では、ハミルトニアン・データは、量子コンピューティング・デバイスに関連するクロストーク、相互接続、コネクタ、プリント基板レイアウト、電気的バス、またはその他の電気的特性、あるいはその組み合わせの理解を促進することができる。特定の実施形態では、定義された基準をハミルトニアン・データが満たすということの決定に応答して、シミュレーション・コンポーネント１０６が、電磁回路データを使用して量子コンピューティング・デバイスを再シミュレートすることができる。例えば、シミュレーション・コンポーネント１０６は、ハミルトニアン・データに関連付けられた望ましいハミルトニアン値が取得されるまで、電磁回路データを使用して量子コンピューティング・デバイスを再シミュレートすることができる。
【００２１】
特定の実施形態では、モデル化コンポーネント１０４は、人工知能の原理に関連する分類、相関関係、推論、または式、あるいはその組み合わせに基づいて、電磁回路データを生成することができる。例えば、モデル化コンポーネント１０４は、１つまたは複数の量子デバイス素子を分類するため、または電磁回路データを生成するため、あるいはその両方のために、自動分類システムまたは自動分類プロセスあるいはその両方を採用できる。１つの例では、モデル化コンポーネント１０４は、１つまたは複数の量子デバイス素子に関する推論を学習するため、または生成するため、あるいはその両方のために、確率または統計あるいはその両方に基づく（例えば、有用性およびコストを考慮して解析を行う）解析を採用できる。１つの態様では、モデル化コンポーネント１０４は推論コンポーネント（図示されていない）を含むことができ、推論コンポーネントは、１つまたは複数の量子デバイス素子に関連する推論を学習すること、または生成すること、あるいはその両方を容易にするために、推論に基づく方式を一部分において利用して、モデル化コンポーネント１０４の態様をさらに強化できる。モデル化コンポーネント１０４は、任意の適切な機械学習に基づく手法、統計に基づく手法、または確率に基づく手法、あるいはその組み合わせを採用できる。例えば、モデル化コンポーネント１０４は、エキスパート・システム、ファジー論理、ＳＶＭ、隠れマルコフ・モデル（ＨＭＭ：Hidden Markov Model）、欲張り検索アルゴリズム、ルールに基づくシステム、ベイジアン・モデル（例えば、ベイジアン・ネットワーク）、ニューラル・ネットワーク、その他の非線形トレーニング手法、データ融合、有用性に基づく解析システム、ベイジアン・モデルを採用するシステムなどを採用することができる。別の態様では、モデル化コンポーネント１０４は、電磁回路データの生成に関連する一連の機械学習計算を実行できる。例えば、モデル化コンポーネント１０４は、一連のクラスタリング機械学習計算、一連のロジスティック回帰機械学習計算、一連の決定木機械学習計算、一連のランダム・フォレスト機械学習計算、一連の回帰ツリー機械学習計算、一連の最小二乗機械学習計算、一連のインスタンスに基づく機械学習計算、一連の回帰機械学習計算、一連のサポート・ベクター回帰機械学習計算、一連のＫ平均機械学習計算、一連のスペクトラル・クラスタリング機械学習計算、一連のルール学習機械学習計算、一連のベイジアン機械学習計算、一連のディープ・ボルツマン機械計算、一連のディープ・ビリーフ・ネットワーク計算、または電磁回路データを決定するための一連のさまざまな機械学習計算、あるいはその組み合わせを実行することができる。
【００２２】
量子コンピューティング・デバイス設計ツール１０２（例えば、モデル化コンポーネント１０４またはシミュレーション・コンポーネント１０６あるいはその両方）が、人間によって実行できない（例えば、１人の人間の知性の能力を上回る）量子コンピューティング・デバイス設計プロセスを実行するということが、理解されるべきである。例えば、特定の期間にわたって量子コンピューティング・デバイス設計ツール１０２（例えば、モデル化コンポーネント１０４またはシミュレーション・コンポーネント１０６あるいはその両方）によって処理されるデータの量、処理されるデータの速度、または処理されるデータのデータ型、あるいはその組み合わせは、同じ期間にわたって１人の人間の知性によって処理され得る量より多く、速度より速く、かつデータ型とは異なるデータ型であることができる。量子コンピューティング・デバイス設計ツール１０２（例えば、モデル化コンポーネント１０４またはシミュレーション・コンポーネント１０６あるいはその両方）は、上で参照された量子コンピューティング・デバイス設計プロセスを実行しながら、１つまたは複数の他の機能を実行することに向けて完全に動作可能であることもできる（例えば、完全に電源が投入される、完全に実行されるなど）。さらに、量子コンピューティング・デバイス設計ツール１０２（例えば、モデル化コンポーネント１０４またはシミュレーション・コンポーネント１０６あるいはその両方）によって生成されるパラメータ・データまたは設計データあるいはその両方は、ユーザによって手動で取得することが不可能な情報を含むことができる。例えば、パラメータ・データ１１４に含まれる情報の種類、パラメータ・データ１１４に含まれる情報の多様性、またはパラメータ・データ１１４の最適化、あるいはその組み合わせは、ユーザによって手動で取得される情報より複雑であることができる。
【００２３】
さらに、量子コンピューティング・デバイスの従来の設計ツールと比較して、システム１００がさまざまな利点を提供できるということが、理解されるべきである。例えば、システム１００を採用することによって、量子コンピューティング・デバイスを設計する時間が短縮され得る。さらに、システム１００を採用することによって、量子コンピューティング・デバイスを準備するか、またはシミュレートするか、あるいはその両方を行う時間が短縮され得る。また、システム１００を採用することによって、量子コンピューティング・デバイスを設計するために採用される計算リソース量が削減され得る。システム１００を採用することによって、量子コンピューティング・デバイスの設計も最適化され得る。さらに、量子コンピューティング・デバイス設計システムの精度または量子コンピューティング・デバイス設計システムの効率あるいはその両方が改善され得る。さらに、システム１００を採用することによって、量子コンピューティング・デバイスの品質を改善することができ、量子コンピューティング・デバイスの性能を改善することができ、量子コンピューティング・デバイスの効率を改善することができ、量子コンピューティング・デバイスのタイミング特性を改善することができ、量子コンピューティング・デバイスの電力特性を改善することができ、または量子コンピューティング・デバイスの別の特性を改善することができ、あるいはその組み合わせを行うことができる。
【００２４】
図２は、本明細書に記載された１つまたは複数の実施形態に従って、例示的な非限定的システム２００のブロック図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。
【００２５】
システム２００は、量子コンピューティング・デバイス設計ツール１０２を含んでいる。図２に示されている量子コンピューティング・デバイス設計ツール１０２は、モデル化コンポーネント１０４、シミュレーション・コンポーネント１０６、メモリ１０８、プロセッサ１１０、または設計コンポーネント２０２、あるいはその組み合わせを含むことができる。設計コンポーネント２０２は、パラメータ・データ１１４に基づいて設計データ２０４を生成することができる。設計データ２０４は、量子コンピューティング・デバイスのレイアウトを示すことができる。例えば、設計データ２０４は、量子コンピューティング・デバイス内の１つまたは複数のコンポーネントの位置を含むことができる。追加的または代替的に、設計データ２０４は、量子コンピューティング・デバイス内の１つまたは複数のコンポーネントの電気的パラメータを含むことができる。追加的または代替的に、設計データ２０４は、量子コンピューティング・デバイス内の１つまたは複数のコンポーネントの値または設定あるいはその両方を含むことができる。追加的または代替的に、設計データ２０４は、量子コンピューティング・デバイス内の１つまたは複数のコンポーネントのサイズ、形状、または配置、あるいはその組み合わせを含むことができる。一実施形態では、量子コンピューティング・デバイスのレイアウトは、パラメータ・データに基づいて変更され得る。別の実施形態では、設計コンポーネント２０２は、応答関数データに基づいて設計データ２０４を生成することができる。別の実施形態では、設計コンポーネント２０２は、ハミルトニアン・データに基づいて設計データ２０４を生成することができる。特定の実施形態では、量子コンピューティング・デバイスのレイアウトは、応答関数データまたはハミルトニアン・データあるいはその両方に基づいて変更され得る。
【００２６】
量子コンピューティング・デバイスの従来の設計ツールと比較して、システム２００がさまざまな利点を提供できるということが、理解されるべきである。例えば、システム２００を採用することによって、量子コンピューティング・デバイスを設計する時間が短縮され得る。さらに、システム２００を採用することによって、量子コンピューティング・デバイスを準備するか、またはシミュレートするか、あるいはその両方を行う時間が短縮され得る。また、システム２００を採用することによって、量子コンピューティング・デバイスを設計するために採用される計算リソース量が削減され得る。システム２００を採用することによって、量子コンピューティング・デバイスの設計も最適化され得る。さらに、量子コンピューティング・デバイス設計システムの精度または量子コンピューティング・デバイス設計システムの効率あるいはその両方が改善され得る。さらに、システム２００を採用することによって、量子コンピューティング・デバイスの品質を改善することができ、量子コンピューティング・デバイスの性能を改善することができ、量子コンピューティング・デバイスの効率を改善することができ、量子コンピューティング・デバイスのタイミング特性を改善することができ、量子コンピューティング・デバイスの電力特性を改善することができ、または量子コンピューティング・デバイスの別の特性を改善することができ、あるいはその組み合わせを行うことができる。
【００２７】
図３は、本明細書に記載された１つまたは複数の実施形態に従って、例示的な非限定的システム３００のブロック図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。
【００２８】
システム３００は、量子コンピューティング・デバイスの等価電磁回路をシミュレートして応答関数を取得する設計プロセス３０２と、応答関数に基づいて量子コンピューティング・デバイスのハミルトニアン・データを取得するための設計プロセス３０４と、ハミルトニアン・データに基づいて量子コンピューティング・デバイスのレイアウトを生成するための設計プロセス３０６とを含んでいる。一実施形態では、ハミルトニアン・データは、設計プロセス３０２を介して取得された応答関数に基づいて（例えば、設計プロセス３０４を介して）取得され得る。ハミルトニアン・データは、例えば、量子コンピューティング・デバイスの電磁特性または量子コンピューティング・デバイスの１つまたは複数の位置でのエネルギーに関連付けられた情報あるいはその組み合わせに、関連付けられ得る。別の実施形態では、定義された基準を、設計プロセス３０４を介して取得されたハミルトニアン・データが満たしているということの決定に応答して、設計プロセス３０２を介して、等価電磁回路のシミュレーションが繰り返され得る。量子コンピューティング・デバイスのレイアウトは、設計プロセス３０４を介して取得されたハミルトニアン・データに基づいて、設計プロセス３０６を介して生成され得る。従来は、量子コンピューティング・デバイスの設計を容易にするために、量子コンピューティング・デバイスのレイアウトが描画され、量子コンピューティング・デバイスのレイアウトがシミュレートされるということが、理解されるべきである。これに対して、量子コンピューティング・デバイス設計ツール１０２は、シミュレーションのコストの削減またはシミュレーション時の計算能力の低減あるいはその両方を促進するために、設計プロセスを３０２介して等価電磁回路をシミュレートして応答関数を取得し、設計プロセス３０４を介して量子コンピューティング・デバイスのハミルトニアン・データを取得し、設計プロセス３０６を介して、ハミルトニアン・データに基づいて量子コンピューティング・デバイスのレイアウトを生成することができる。
【００２９】
図４は、本明細書に記載された１つまたは複数の実施形態に従って、例示的な非限定的システム４００のブロック図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。
【００３０】
システム４００は、量子デバイス素子４０２および電磁回路素子４０４を含んでいる。一実施形態では、モデル化コンポーネント１０４は、量子デバイス素子４０２から電磁回路素子４０４を生成することができる。量子デバイス素子４０２は、例えば、量子コンピューティング・デバイスの量子ビット素子、量子コンピューティング・デバイスの結合器、量子コンピューティング・デバイスの読み出し、量子コンピューティング・デバイスのバス、または量子コンピューティング・デバイスの別の素子であることができる。量子デバイス素子４０２は、量子コンピューティング・デバイスの特定の部分（例えば、量子コンピューティング・デバイスの特定の領域）にも関連付けられ得る。１つの例では、量子デバイス素子４０２は、接合点のない超伝導トランズモン量子ビット・レイアウトであることができる。トランズモンは、電荷に関連するノイズに対する感受性の減少を備えるように設計された量子ビットであることができる。電磁回路素子４０４は、例えば、静電容量ネットワークであることができる。一実施形態では、１つまたは複数の静電容量値が、量子デバイス素子４０２の静的シミュレーションから決定され得る。
【００３１】
図５は、本明細書に記載された１つまたは複数の実施形態に従って、例示的な非限定的システム５００のブロック図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。
【００３２】
システム５００は、量子デバイス素子４０２、電磁回路素子４０４、および概略素子５０２を含んでいる。一実施形態では、モデル化コンポーネント１０４が概略素子５０２を生成できる。概略素子５０２は、量子デバイス素子４０２に関連付けられた電磁回路素子４０４に基づいて生成され得る。一実施形態では、概略素子５０２は、電磁回路素子のライブラリに格納され得る。別の実施形態では、概略素子５０２は、量子デバイス素子４０２または量子デバイス素子４０２に関連付けられた量子デバイスあるいはその両方のシミュレーションを容易にするために、シミュレーション・ツールによって採用され得る。さらに、特定の実施形態では、モデル化コンポーネント１０４は、概略素子５０２に基づいて量子デバイス素子を識別するか、モデル化するか、あるいはその両方を行うことができる。１つの態様では、概略素子５０２は、電磁回路素子４０４の機能を表すことができる。例えば、概略素子５０２は、電磁回路素子４０４に対応する機能を有するブラック・ボックス・コンポーネントであることができる。
【００３３】
図６は、本明細書に記載された１つまたは複数の実施形態に従って、例示的な非限定的システム６００のブロック図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。
【００３４】
システム６００は、量子デバイス素子６０２、電磁回路素子６０４、および概略素子６０６を含んでいる。一実施形態では、モデル化コンポーネント１０４は、電磁回路素子６０４または概略素子６０６あるいはその両方を生成することができる。１つの例では、量子デバイス素子６０２は、量子ビット・レイアウトであることができる。電磁回路素子６０４は、例えば、静電容量ネットワークであることができる。概略素子６０６は、量子デバイス素子６０２に関連付けられた電磁回路素子６０４に基づいて生成され得る。一実施形態では、概略素子６０６は、電磁回路素子のライブラリに格納され得る。別の実施形態では、概略素子６０６は、量子デバイス素子６０２または量子デバイス素子６０２に関連付けられた量子デバイスあるいはその両方のシミュレーションを容易にするために、シミュレーション・ツールによって採用され得る。さらに、特定の実施形態では、モデル化コンポーネント１０４は、概略素子６０６に基づいて量子デバイス素子を識別するか、モデル化するか、あるいはその両方を行うことができる。
【００３５】
図７は、本明細書に記載された１つまたは複数の実施形態に従って、例示的な非限定的システム７００のブロック図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。
【００３６】
システム７００は、量子デバイス素子７０２および電磁回路素子７０４を含んでいる。一実施形態では、モデル化コンポーネント１０４が電磁回路素子７０４を生成できる。特定の実施形態では、電磁回路素子７０４は概略素子であることもできる。１つの例では、量子デバイス素子７０２は、量子コンピューティング・デバイスの一部であることができる。電磁回路素子７０４は、例えば、共振器素子であることができる。電磁回路素子７０４は、量子デバイス素子７０２から生成され得る。一実施形態では、電磁回路素子７０４は、電磁回路素子のライブラリに格納され得る。別の実施形態では、電磁回路素子７０４は、量子デバイス素子７０２または量子デバイス素子７０２に関連付けられた量子デバイスあるいはその両方のシミュレーションを容易にするために、シミュレーション・ツールによって採用され得る。さらに、特定の実施形態では、モデル化コンポーネント１０４は、電磁回路素子７０４に基づいて量子デバイス素子を識別するか、モデル化するか、あるいはその両方を行うことができる。
【００３７】
図８は、本明細書に記載された１つまたは複数の実施形態に従って、例示的な非限定的システム８００のブロック図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。
【００３８】
システム８００は、量子コンピューティング・デバイスの等価電磁回路８０２を含んでいる。等価電磁回路８０２は、概略素子のセットとして形式設定された電磁回路素子のセットを含むことができる。例えば、等価電磁回路８０２は、第１の概略素子８０４として形式設定された第１の電磁回路素子、第２の概略素子８０６として形式設定された第２の電磁回路素子、第３の概略素子８０８として形式設定された第３の電磁回路素子などを含むことができる。１つの例では、第１の概略素子８０４（例えば、第１の電磁回路素子）を、第２の電磁概略素子８０６（例えば、第２の電磁回路素子）および第３の概略素子８０８（例えば、第３の電磁回路素子）に接続することができる。１つの態様では、等価電磁回路８０２の機能は、等価電磁回路８０２に関連付けられた量子コンピューティング・デバイスの機能に対応することができる。例えば、モデル化コンポーネント１０４は、量子コンピューティング・デバイスの１つまたは複数の量子デバイス素子をモデル化し、電磁回路素子のセットを等価電磁回路８０２内に生成することができる。
【００３９】
図９は、本明細書に記載された１つまたは複数の実施形態に従って、例示的な非限定的グラフ９００のブロック図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。
【００４０】
グラフ９００は、本明細書に記載された１つまたは複数の実施形態に従って、応答関数９０２を示している。グラフ９００の横軸は、周波数（ＧＨｚ）を示している。グラフ９００の縦軸は、インピーダンス（Ω）を示している。一実施形態では、応答関数９０２は、量子コンピューティング・デバイスのシミュレーション・コンポーネント１０６によって生成された応答関数であることができる。１つの態様では、応答関数９０２に基づいて、量子コンピューティング・デバイスのハミルトニアン・データが決定され得る。応答関数９０２は、量子コンピューティング・デバイス内の１つまたは複数の位置でインピーダンスまたはアドミッタンスあるいはその両方に対応することができる。
【００４１】
図１０は、本明細書に記載された１つまたは複数の実施形態に従って、例示的な非限定的システム１０００のブロック図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。
【００４２】
システム１０００は、量子コンピューティング・デバイス１００２を含むことができる。例えば、量子コンピューティング・デバイス１００２は、量子コンピューティング・デバイス１００２の１つまたは複数の量子デバイス素子をモデル化するためにモデル化コンポーネント１０４によって採用された量子コンピューティング・デバイスのモデルであることができる。一実施形態では、量子コンピューティング・デバイス１００２のモデルはコンピュータ・シミュレータによって生成され得る。コンピュータ・シミュレータは、例えば、量子コンピューティング・デバイス１００２に関連付けられた１つまたは複数の電磁場シミュレーションを実行する静的な場のシミュレータであることができる。量子コンピューティング・デバイス１００２は、例えば、量子回路、量子プロセッサ、量子ビット・デバイス、量子ビット単位セル、または量子ビットを採用する別の種類のコンピューティング・デバイス、あるいはその組み合わせであることができる。１つの態様では、量子コンピューティング・デバイス１００２は、例えば、量子ビット素子、結合器素子、読み出し素子、バス素子、または量子コンピューティング・デバイス１００２の別の素子などの、１つまたは複数の量子デバイス素子を含むことができる。さらに、量子コンピューティング・デバイス１００２は、量子物理学の原理に基づいて一連の計算を実行するマシンであることができる。例えば、量子コンピューティング・デバイス１００２は、量子ビットを使用して情報をエンコードすることができる。１つの実施形態では、量子コンピューティング・デバイス１００２は、ハードウェア量子プロセッサ（hardware quantum processor）（例えば、ハードウェア超伝導量子プロセッサ（hardware superconducting quantum processor））であることができる。例えば、量子コンピューティング・デバイス１００２は、量子ビットを使用して一連の命令スレッドを実行するハードウェア量子プロセッサであることができる。非限定的な例では、量子コンピューティング・デバイス１００２の部分１００４が第１の量子デバイス素子に対応することができ、量子コンピューティング・デバイス１００２の部分１００６が第２の量子デバイス素子に対応することができ、量子コンピューティング・デバイス１００２の部分１００８が第３の量子デバイス素子に対応することができる。
【００４３】
図１１は、本明細書に記載された１つまたは複数の実施形態に従って、量子コンピューティング・デバイス設計を容易にするための、例示的な非限定的コンピュータ実装方法１１００のフロー図を示している。１１０２で、プロセッサに動作可能なように結合されたシステムによって（例えば、モデル化コンポーネント１０４によって）、量子コンピューティング・デバイスの量子デバイス素子が、量子コンピューティング・デバイスの電磁回路データを生成するための電磁回路素子としてモデル化される。量子デバイス素子データは、例えば、量子コンピューティング・デバイスの１つまたは複数の量子デバイス素子の機械可読記述であることができる。追加的または代替的に、量子デバイス素子データは、量子コンピューティング・デバイスの１つまたは複数の量子デバイス素子の１つまたは複数のモデルに関連付けられ得る。量子コンピューティング・デバイスは、例えば、量子回路、量子プロセッサ、量子ビット・デバイス、量子ビット単位セル、または量子ビットを採用する別の種類のコンピューティング・デバイス、あるいはその組み合わせであることができる。１つまたは複数の量子デバイス素子からの量子デバイス素子は、例えば、量子コンピューティング・デバイスの量子ビット素子、量子コンピューティング・デバイスの結合器、量子コンピューティング・デバイスの読み出し、量子コンピューティング・デバイスのバス、または量子コンピューティング・デバイスの別の素子を含むことができる。一実施形態では、量子コンピューティング・デバイスの量子デバイス素子間の１つまたは複数の接続に関連付けられた情報を示す接続データが生成され得る。さらに、接続データに基づいて、量子コンピューティング・デバイスの電磁回路データが生成され得る。特定の実施形態では、電磁回路素子のライブラリに基づいて、量子コンピューティング・デバイスの量子デバイス素子が、電磁回路素子としてモデル化され得る。
【００４４】
１１０４で、別の量子デバイス素子が存在するかどうかが判定され得る。「はい」である場合、コンピュータ実装方法１１００が１１０２に戻る。「いいえ」である場合、コンピュータ実装方法１１００が１１０６に進む。
【００４５】
１１０６で、システムによって（例えば、シミュレーション・コンポーネント１０６によって）、電磁回路データを使用して量子コンピューティング・デバイスがシミュレートされ、量子コンピューティング・デバイスのパラメータのセットを示すパラメータ・データを生成する。一実施形態では、電磁回路データを使用して量子コンピューティング・デバイスをシミュレートし、量子コンピューティング・デバイスの応答関数を示す応答関数データを生成することができる。さらに別の実施形態では、応答関数データに基づいて、ハミルトニアン・データが生成され得る。ハミルトニアン・データは、量子コンピューティング・デバイスのエネルギーまたは量子コンピューティング・デバイスの電磁特性あるいはその両方に関連付けられた情報を示すことができる。１つの態様では、ハミルトニアン・データは、量子コンピューティング・デバイスに関連するクロストーク、相互接続、コネクタ、プリント基板レイアウト、電気的バス、またはその他の電気的特性、あるいはその組み合わせの理解を促進することができる。
【００４６】
１１０８で、定義された基準をパラメータ・データが満たすかどうかが判定される。「いいえ」である場合、コンピュータ実装方法１１００が１１０６に戻る。「はい」である場合、コンピュータ実装方法１１００が１１０８に進む。
【００４７】
１１１０で、システムによって（例えば、設計コンポーネント２０２によって）、パラメータ・データに基づいて、量子コンピューティング・デバイスのレイアウトを示す設計データが生成される。一実施形態では、量子コンピューティング・デバイスのレイアウトは、パラメータ・データに基づいて変更され得る。設計データは、量子コンピューティング・デバイスのレイアウトを示すことができる。例えば、設計データは、量子コンピューティング・デバイス内の１つまたは複数のコンポーネントの位置を含むことができる。追加的または代替的に、設計データは、量子コンピューティング・デバイス内の１つまたは複数のコンポーネントの電気的パラメータを含むことができる。追加的または代替的に、設計データは、量子コンピューティング・デバイス内の１つまたは複数のコンポーネントの値または設定あるいはその両方を含むことができる。追加的または代替的に、設計データは、量子コンピューティング・デバイス内の１つまたは複数のコンポーネントのサイズ、形状、または配置、あるいはその組み合わせを含むことができる。一実施形態では、ハミルトニアン・データに基づいて設計データが生成され得る。特定の実施形態では、コンピュータ実装方法１１００は、定義された基準をハミルトニアン・データが満たすということの決定に応答して、システムによって、電磁回路データを使用して量子コンピューティング・デバイスを再シミュレートすることを含むことができる。
【００４８】
図１２は、本明細書に記載された１つまたは複数の実施形態に従って、量子コンピューティング・デバイス設計を容易にするための、例示的な非限定的コンピュータ実装方法１２００のフロー図を示している。１２０２で、プロセッサに動作可能なように結合されたシステムによって（例えば、モデル化コンポーネント１０４によって）、１つまたは複数の量子デバイス素子がモデル化されて１つまたは複数の等価電磁回路素子を決定する。１２０４で、システムによって（例えば、モデル化コンポーネント１０４によって）、１つまたは複数の等価電磁回路素子に基づいて量子デバイスの等価電磁回路が生成される。１２０６で、システムによって（例えば、シミュレーション・コンポーネント１０６によって）、量子デバイスの等価電磁回路がシミュレートされて量子デバイスの応答関数を取得する。１２０８で、システムによって（例えば、シミュレーション・コンポーネント１０６によって）、応答関数を使用して量子デバイスのハミルトニアン・パラメータのセットが計算される。１２１０で、望ましいハミルトニアン・パラメータが取得されたかどうかが判定される。「いいえ」である場合、コンピュータ実装方法１２００が１２０６に戻る。「はい」である場合、コンピュータ実装方法１２００が１１０８に進む。１２１２で、システムによって（例えば、設計コンポーネント２０２によって）、少なくともハミルトニアン・パラメータのセットのサブセットを使用して量子デバイスのレイアウトが生成される。
【００４９】
説明を簡単にするために、一連の動作としてコンピュータ実装方法が示され、説明される。本革新技術が、示された動作によって、または動作の順序によって、あるいはその両方によって制限されず、例えば動作が、本明細書において提示されておらず、説明されていない他の動作と共に、さまざまな順序で、または同時に、あるいはその両方で発生できるということが、理解されるべきである。さらに、開示される対象に従ってコンピュータ実装方法を実装するために、示されているすべての動作が必要でなくてもよい。加えて、当業者は、コンピュータ実装方法が、代替として、状態図を介して相互に関連する一連の状態またはイベントとして表され得るということを理解するであろう。そのようなコンピュータ実装方法をコンピュータに輸送または転送するのを容易にするために、以下および本明細書全体を通じて開示されたコンピュータ実装方法を製品に格納できるということが、さらに理解されるべきである。製品という用語は、本明細書において使用されるとき、任意のコンピュータ可読記憶デバイスまたはコンピュータ可読記憶媒体からアクセスできるコンピュータ・プログラムを包含するよう意図されている。
【００５０】
さらに、少なくとも、量子デバイス（例えば、量子コンピューティング・デバイス）の設計データまたはレイアウトあるいはその両方を生成すること、電磁回路素子または等価電磁回路あるいはその両方をシミュレートすることなどが、電気的および機械的コンポーネントおよび回路の組み合わせから確立されるため、人間は、本明細書で開示された量子コンピューティング・デバイス設計ツール１０２（例えば、モデル化コンポーネント１０４、シミュレーション・コンポーネント１０６、または設計コンポーネント２０２、あるいはその組み合わせ）によって実行される処理を複製することも実行することもできない。例えば、人間は、設計データを生成すること、電磁回路素子または等価電磁回路あるいはその両方をシミュレートすることなどを、実行することができない。
【００５１】
開示される対象のさまざまな態様の背景を提供するために、図１３および以下の説明は、開示される対象のさまざまな態様が実装され得る適切な環境の概要を示すよう意図されている。図１３は、本明細書に記載された１つまたは複数の実施形態を容易にすることができる例示的な非限定的動作環境のブロック図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。
【００５２】
図１３を参照すると、本開示のさまざまな態様を実装するための適切な動作環境１３００は、コンピュータ１３１２を含むこともできる。コンピュータ１３１２は、処理ユニット１３１４、システム・メモリ１３１６、およびシステム・バス１３１８を含むこともできる。システム・バス１３１８は、システム・メモリ１３１６を含むが、これに限定されないシステム・コンポーネントを、処理ユニット１３１４に結合する。処理ユニット１３１４は、さまざまな使用可能なプロセッサのいずれかであることができる。デュアル・マイクロプロセッサおよびその他のマルチプロセッサ・アーキテクチャが、処理ユニット１３１４として採用されてもよい。システム・バス１３１８は、ＩＳＡ（Industry Standard Architecture）、ＭＣＡ（Micro Channel Architecture）、ＥＩＳＡ（Extended ISA）、ＩＤＥ（Intelligent Drive Electronics）、ＶＥＳＡローカル・バス（ＶＬＢ：VESA Local Bus）、ＰＣＩ（Peripheral Component Interconnect）、カードバス、ユニバーサル・シリアル・バス（ＵＳＢ：Universal Serial Bus）、ＡＧＰ（Advanced Graphics Port）、ＦｉｒｅＷｉｒｅ（ＩＥＥＥ  １３９４）、および小型コンピュータ・システム・インターフェイス（ＳＣＳＩ：Small Computer Systems Interface）を含むが、これらに限定されない、任意のさまざまな使用可能なバス・アーキテクチャを使用する、メモリ・バスもしくはメモリ・コントローラ、ペリフェラル・バスもしくは外部バス、またはローカル・バス、あるいはその組み合わせを含む、複数の種類のバス構造のいずれかであることができる。
【００５３】
システム・メモリ１３１６は、揮発性メモリ１３２０および不揮発性メモリ１３２２を含むこともできる。起動中などにコンピュータ１３１２内の要素間で情報を転送するための基本ルーチンを含んでいる基本入出力システム（ＢＩＯＳ：basic input/output system）が、不揮発性メモリ１３２２に格納される。コンピュータ１３１２は、取り外し可能／取り外し不可能な揮発性／不揮発性のコンピュータ記憶媒体を含むこともできる。例えば図１３は、ディスク・ストレージ１３２４を示している。ディスク・ストレージ１３２４は、磁気ディスク・ドライブ、フロッピー（Ｒ）・ディスク・ドライブ、テープ・ドライブ、Ｊａｚドライブ、Ｚｉｐドライブ、ＬＳ−１００ドライブ、フラッシュ・メモリ・カード、またはメモリ・スティックなどの、ただしこれらに限定されない、デバイスを含むこともできる。ディスク・ストレージ１３２４は、記憶媒体を、別々に、または他の記憶媒体と組み合わせて、含むことができる。システム・バス１３１８へのディスク・ストレージ１３２４の接続を容易にするために、インターフェイス１３２６などの、取り外し可能または取り外し不可能なインターフェイスが通常は使用される。図１３は、ユーザと、適切な動作環境１３００において説明された基本的なコンピュータ・リソースとの間の仲介として機能するソフトウェアも示している。そのようなソフトウェアは、例えば、オペレーティング・システム１３２８を含むこともできる。ディスク・ストレージ１３２４に格納できるオペレーティング・システム１３２８は、コンピュータ１３１２のリソースを制御し、割り当てるように動作する。
【００５４】
システムのアプリケーション１３３０は、プログラム・モジュール１３３２を介して、オペレーティング・システム１３２８によるリソースの管理を利用し、例えばシステム・メモリ１３１６またはディスク・ストレージ１３２４のいずれかに格納されたデータ１３３４をプログラムする。さまざまなオペレーティング・システムまたはオペレーティング・システムの組み合わせを使用して本開示が実装され得るということが、理解されるべきである。ユーザは、１つまたは複数の入力デバイス１３３６を介して、コマンドまたは情報をコンピュータ１３１２に入力する。入力デバイス１３３６は、マウス、トラックボール、スタイラス、タッチ・パッド、キーボード、マイクロホン、ジョイスティック、ゲーム・パッド、衛星放送受信アンテナ、スキャナ、ＴＶチューナー・カード、デジタル・カメラ、デジタル・ビデオ・カメラ、Ｗｅｂカメラなどのポインティング・デバイスを含むが、これらに限定されない。これらおよびその他の入力デバイスは、インターフェイス・ポート１３３８を介してシステム・バス１３１８を通り、処理ユニット１３１４に接続する。インターフェイス・ポート１３３８は、例えば、シリアル・ポート、パラレル・ポート、ゲーム・ポート、およびユニバーサル・シリアル・バス（ＵＳＢ）を含む。出力デバイス１３４０は、入力デバイス１３３６と同じ種類のポートの一部を使用する。このようにして、例えば、ＵＳＢポートを使用して、入力をコンピュータ１３１２に提供し、コンピュータ１３１２から出力デバイス１３４０に情報を出力できる。出力アダプタ１３４２は、特殊なアダプタを必要とする出力デバイス１３４０の中でも特に、モニタ、スピーカ、およびプリンタのような何らかの出力デバイス１３４０が存在することを示すために提供される。出力アダプタ１３４２の例としては、出力デバイス１３４０とシステム・バス１３１８の間の接続の手段を提供するビデオ・カードおよびサウンド・カードが挙げられるが、これらに限定されない。リモート・コンピュータ１３４４などの、その他のデバイスまたはデバイスのシステムあるいはその両方が、入力機能および出力機能の両方を提供するということに、注意するべきである。
【００５５】
コンピュータ１３１２は、リモート・コンピュータ１３４４などの１つまたは複数のリモート・コンピュータへの論理接続を使用して、ネットワーク環境内で動作できる。リモート・コンピュータ１３４４は、コンピュータ、サーバ、ルータ、ネットワークＰＣ、ワークステーション、マイクロプロセッサベースの機器、ピア・デバイス、またはその他の一般的なネットワーク・ノードなどであることができ、通常は、コンピュータ１３１２に関連して説明された要素の多くまたはすべてを含むこともできる。簡潔にするために、メモリ・ストレージ・デバイス１３４６のみが、リモート・コンピュータ１３４４と共に示されている。リモート・コンピュータ１３４４は、ネットワーク・インターフェイス１３４８を介してコンピュータ１３１２に論理的に接続されてから、通信接続１３５０を介して物理的に接続される。ネットワーク・インターフェイス１３４８は、ローカル・エリア・ネットワーク（ＬＡＮ：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）などの、ただしこれらに限定されない、多くの形態で利用可能である。さらに、本明細書において開示されたシステムまたはコンピュータ実装方法のメモリ・コンポーネントは、これらおよび任意のその他の適切な種類のメモリを含むが、これらに限定されない、メモリを含むよう意図されている。
【００６４】
前述した内容は、システムおよびコンピュータ実装方法の単なる例を含んでいる。当然ながら、本開示を説明する目的で、コンポーネントまたはコンピュータ実装方法の考えられるすべての組み合わせについて説明することは不可能であるが、当業者は、本開示の多くのその他の組み合わせおよび並べ替えが可能であるということを認識できる。さらに、「含む」、「有する」、「所有する」などの用語が、発明を実施するための形態、特許請求の範囲、付録、および図面において使用される範囲では、それらの用語は、「備えている」が特許請求における暫定的な用語として使用されるときに解釈されるような、用語「備えている」と同様の方法で、包含的であるよう意図されている。
【００６５】
さまざまな実施形態の説明は、例示の目的で提示されているが、網羅的であることは意図されておらず、開示された実施形態に限定されない。記載された実施形態の範囲および思想を逸脱することなく多くの変更および変形が可能であることは、当業者にとって明らかであろう。本明細書で使用された用語は、実施形態の原理、実際の適用、または市場で見られる技術を超える技術的改良を最も適切に説明するため、または他の当業者が本明細書で開示された実施形態を理解できるようにするために選択されている。
【図１】
2021512387.tif 000003
【図２】
2021512387.tif 000004
【図３】
2021512387.tif 000005
【図４】
2021512387.tif 000006
【図５】
2021512387.tif 000007
【図６】
2021512387.tif 000008
【図７】
2021512387.tif 000009
【図８】
2021512387.tif 000010
【図９】
2021512387.tif 000011
【図１０】
2021512387.tif 000012
【図１１】
2021512387.tif 000013
【図１２】
2021512387.tif 000014
【図１３】
2021512387.tif 000015
【国際調査報告】
2021512387.tif 000016
2021512387.tif 000017