第1の態様から見ると、本発明は、ハミルトニアン対称性の存在下での分子励起状態の量子計算のためのシステムであって、コンピュータ実行可能コンポーネントを記憶するメモリと、メモリに動作可能に結合され、メモリに記憶されたコンピュータ実行可能コンポーネントを実行するプロセッサとを含み、前記コンピュータ実行可能コンポーネントが、マッピングされた量子ビット・ハミルトニアンからの対称性を有する複数の励起演算子の交換特性に基づいて、マッピングされた量子ビット・ハミルトニアンからの複数の励起演算子をセクタに分類する初期化コンポーネントと、初期化コンポーネントによって分類されたセクタに基づいて、複数の励起演算子からの1つの励起演算子から運動方程式行列を生成する行列コンポーネントとを含む、システムを提供する。
さらなる態様から見ると、本発明は、システムであって、コンピュータ実行可能コンポーネントを記憶するメモリと、メモリに動作可能に結合され、メモリに記憶されたコンピュータ実行可能コンポーネントを実行するプロセッサとを含み、前記コンピュータ実行可能コンポーネントが、マッピングされた量子ビット・ハミルトニアンに固有の対称性に基づいて、マッピングされた量子ビット・ハミルトニアンからのペアの励起演算子から、運動方程式行列を生成する制御コンポーネントを含む、システムを提供する。
さらなる態様から見ると、本発明は、ハミルトニアン対称性の存在下での分子励起状態の量子計算のためのコンピュータ実施方法であって、プロセッサに動作可能に結合されたシステムによって、マッピングされた量子ビット・ハミルトニアンからの対称性を有する複数の励起演算子の交換特性に基づいて、マッピングされた量子ビット・ハミルトニアンからの複数の励起演算子をセクタに分類することと、システムによって、分類することに基づいて、複数の励起演算子からの1つの励起演算子から運動方程式行列を生成することとを含む、コンピュータ実施方法を提供する。
さらなる態様から見ると、本発明は、ハミルトニアン対称性の存在下での分子励起状態の量子計算のためのコンピュータ実施方法であって、マッピングされた量子ビット・ハミルトニアンに固有の対称性に基づいて、マッピングされた量子ビット・ハミルトニアンからのペアの励起演算子から、運動方程式行列を生成することを含む、コンピュータ実施方法を提供する。
さらなる態様から見ると、本発明は、ハミルトニアン対称性の存在下での分子励起状態の量子計算のためのコンピュータ・プログラム製品であって、プログラム命令が具現化されたコンピュータ可読記憶媒体を含み、プログラム命令が、プロセッサに、プロセッサに動作可能に結合されたシステムによって、マッピングされた量子ビット・ハミルトニアンからの対称性を有する複数の励起演算子の交換特性に基づいて、マッピングされた量子ビット・ハミルトニアンからの複数の励起演算子をセクタに分類することと、システムによって、複数の励起演算子のセクタへの分類に基づいて、複数の励起演算子からの1つの励起演算子から運動方程式行列を生成することとを行わせるようにプロセッサによって実行可能である、コンピュータ・プログラム製品を提供する。
ハミルトニアン対称性の存在下での分子励起状態の量子計算のためのコンピュータ・プログラム製品であって、プログラム命令が具現化されたコンピュータ可読記憶媒体を含み、プログラム命令が、プロセッサに、プロセッサに動作可能に結合されたシステムによって、マッピングされた量子ビット・ハミルトニアンに固有のハミルトニアン対称性に基づいて、マッピングされた量子ビット・ハミルトニアンからのペアの励起演算子から、運動方程式行列を生成することを行わせるようにプロセッサによって実行可能である、コンピュータ・プログラム製品。
さらなる態様から見ると、本発明は、ハミルトニアン対称性の存在下での分子励起状態の量子計算のためのコンピュータ・プログラム製品であって、処理回路によって読取り可能であり、本発明のステップを実行するための方法を実行するために処理回路によって実行される命令を記憶するコンピュータ可読記憶媒体を含む、コンピュータ・プログラム製品を提供する。
さらなる態様から見ると、本発明は、コンピュータ可読媒体に記憶され、デジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行されるとき、本発明のステップを実行するためのソフトウェア・コード部分を含む、コンピュータ・プログラムを提供する。
本発明の1つまたは複数の実施形態の基本的な理解を得るために、以下に概要を提示する。この概要は、重要な要素または必須の要素を特定すること、または特定の実施形態のいかなる範囲または特許請求の範囲のいかなる範囲を線引きすることを意図したものではない。その唯一の目的は、後述するさらに詳細な説明の前置きとして、概念を簡略化した形で提示することである。本明細書に記載の1つまたは複数の実施形態において、分子励起状態の量子計算を容易にすることができるシステム、コンピュータ実施方法、装置、またはコンピュータ・プログラム製品あるいはその組合せについて説明する。
一実施形態によれば、システムが提供される。システムは、コンピュータ実行可能コンポーネントを記憶できるメモリを含むことができる。システムは、メモリに動作可能に結合され、メモリに記憶されたコンピュータ実行可能コンポーネントを実行できるプロセッサも含むことができる。コンピュータ実行可能コンポーネントは、マッピングされた量子ビット・ハミルトニアンからの対称性を有する複数の励起演算子の交換特性に基づいて、マッピングされた量子ビット・ハミルトニアンからの複数の励起演算子をセクタに分類する初期化コンポーネントを含むことができる。コンピュータ実行可能コンポーネントは、初期化コンポーネントによって分類されたセクタに基づいて、複数の励起演算子からの1つの励起演算子から運動方程式行列を生成できる行列コンポーネントも含むことができる。このようなシステムの利点は、ハミルトニアン対称性を使用して、運動方程式の決定方法の計算要件を軽減できることであり得る。
いくつかの例では、セクタからの第1のセクタは、複数の励起演算子からの第1のペアの励起演算子を含むことができる。第1のペアの励起演算子は、対称性によって交換することができ、セクタからの第2のセクタは、複数の励起演算子からの第2のペアの励起演算子を含むことができる。また、第2のペアの励起演算子は、対称性によって反交換する。このようなシステムの利点は、分子励起状態を計算する際の計算の冗長性を削減できることであり得る。
一実施形態によれば、コンピュータ実施方法が提供される。コンピュータ実施方法は、プロセッサに動作可能に結合されたシステムによって、マッピングされた量子ビット・ハミルトニアンからの対称性を有する複数の励起演算子の交換特性に基づいて、マッピングされた量子ビット・ハミルトニアンからの複数の励起演算子をセクタに分類することを含むことができる。コンピュータ実施方法は、システムによって、分類することに基づいて、複数の励起演算子からの1つの励起演算子から運動方程式行列を生成することも含むことができる。このようなコンピュータ実施方法の利点は、量子コンピュータで運動方程式法を実行するための量子ビットの数を削減できることであり得る。
いくつかの例では、セクタからの第1のセクタは、複数の励起演算子からの第1のペアの励起演算子を含むことができる。第1のペアの励起演算子は、対称性によって交換することができ、セクタからの第2のセクタは、複数の励起演算子からの第2のペアの励起演算子を含むことができる。また、第2のペアの励起演算子は、対称性によって反交換することができる。さらに、コンピュータ実施方法は、システムによって、第2のペアの励起演算子に基づいて、第2のセクタにおける第2の運動方程式行列を生成することを含むことができる。運動方程式行列を生成することは、第1のペアの励起演算子に基づくことができる。このようなコンピュータ実施方法の利点は、従来の方法よりも多数のゲートを備えた量子回路を実行することが容易になる可能性があり、これにより、変分量子固有値解法手法において複雑な波動関数仮説の探索が可能になることであり得る。
一実施形態によれば、ハミルトニアン対称性の存在下での分子励起状態の量子計算のためのコンピュータ・プログラム製品が提供される。コンピュータ・プログラム製品は、プログラム命令が具現化されたコンピュータ可読記憶媒体を含むことができる。プログラム命令は、プロセッサに、プロセッサに動作可能に結合されたシステムによって、マッピングされた量子ビット・ハミルトニアンからの対称性を有する複数の励起演算子の交換特性に基づいて、マッピングされた量子ビット・ハミルトニアンからの複数の励起演算子をセクタに分類することを行わせるようにプロセッサによって実行可能であり得る。プログラム命令は、プロセッサに、システムによって、複数の励起演算子のセクタへの分類に基づいて、複数の励起演算子からの1つの励起演算子から運動方程式行列を生成することを行わせることもできる。このようなコンピュータ・プログラム製品の利点は、運動方程式法のコンテキストで行列を構築するための行列要素の評価の数を削減することであり得る。
いくつかの例では、プログラム命令はさらに、プロセッサに、システムによって、運動方程式行列に基づいて交換子を生成することを行わせることができる。また、プログラム命令は、プロセッサに、システムによって、対称性に関連してマッピングされた量子ビット・ハミルトニアンの基準状態の位置を考慮することができる縮小値に基づいて、交換子を実行することができる量子ビットの数を縮小することを行わせることもできる。このようなコンピュータ・プログラム製品の利点は、運動方程式法を実行するための量子コンピューティング・リソースを削減できることであり得る。
一実施形態によれば、システムが提供される。システムは、コンピュータ実行可能コンポーネントを記憶できるメモリを含むことができる。システムは、メモリに動作可能に結合され、メモリに記憶されたコンピュータ実行可能コンポーネントを実行できるプロセッサも含むことができる。コンピュータ実行可能コンポーネントは、マッピングされた量子ビット・ハミルトニアンに固有の対称性に基づいて、マッピングされた量子ビット・ハミルトニアンからのペアの励起演算子から、運動方程式行列を生成できる制御コンポーネントを含むことができる。このようなシステムの利点は、計算リソースの使用を最小限に抑えながら、運動方程式の計算のための1つまたは複数の行列を準備できることであり得る。
いくつかの例では、システムは、対称性を有するペアの励起演算子の交換特性に基づいて、ペアの励起演算子をセクタに分類することができる初期化コンポーネントも含むことができる。このようなシステムの利点は、システムが、既知の結果(たとえば、ゼロ)になる行列要素を計算しないようにできることであり得る。
一実施形態によれば、ハミルトニアン対称性の存在下での分子励起状態の量子計算のためのコンピュータ・プログラム製品が提供される。コンピュータ・プログラム製品は、プログラム命令が具現化されたコンピュータ可読記憶媒体を含むことができる。プログラム命令は、プロセッサに、プロセッサに動作可能に結合されたシステムによって、マッピングされた量子ビット・ハミルトニアンに固有のハミルトニアン対称性に基づいて、マッピングされた量子ビット・ハミルトニアンからのペアの励起演算子から、運動方程式行列を生成することを行わせるようにプロセッサによって実行可能であり得る。このようなコンピュータ・プログラム製品の利点は、先行技術と比較して、使用するコンピュータ・リソースが削減された、1つまたは複数の運動方程式行列の自律的な量子計算であり得る。
いくつかの例では、プログラム命令は、プロセッサに、システムによって、対称性を有するペアの励起演算子の交換特性に基づいて、ペアの励起演算子をセクタに分類することも行わせることができる。また、ペアの励起演算子からの第1の励起演算子およびペアの励起演算子からの第2の励起演算子は、システムによって、セクタから第1のセクタに分類され得る。このようなコンピュータ・プログラム製品の利点は、固有の対称特性を使用して、運動方程式の計算効率を向上できることである。
次に、本発明について、以下の図に示されているように好ましい実施形態を参照して単に例として説明する。
以下の詳細な説明は単なる例示であり、実施形態または実施形態の適用もしくは用途あるいはその組合せを限定することを意図していない。さらに、前述の背景技術もしくは発明の概要のセクションまたは発明を実施するための形態のセクションに示した、いかなる明示または暗示した情報も制約されることを意図していない。
次に、図面を参照して1つまたは複数の実施形態を説明するが、同様の参照番号は、全体を通して同様の要素を指すために使用されている。以下の説明では、説明の目的で、1つまたは複数の実施形態のより完全な理解を提供するために、多数の具体的な詳細を記載している。しかしながら、様々な場合において、1つまたは複数の実施形態がこれらの具体的な詳細なしで実施され得ることは明らかである。
分子励起状態の計算におけるEoM法の従来の実施に関する問題を考慮すると、本開示は、分子ハミルトニアンが、いくつかのパウリ対称性を有する量子ビットのセットにマッピングされるEoM法の実施中に計算される行列エントリの数を削減するような手順の形式で、これらの問題のうちの1つまたは複数に対する解決策を作り出すために実施され得る。本明細書に記載の様々な実施形態は、EoM行列のどのエントリがゼロになるかを予測し、それにより、考慮される励起演算子の数に応じて二次的に拡大する、実験の平均化の数を省くことができる。本明細書に記載の1つまたは複数の実施形態の追加の利点には、マッピングされたハミルトニアンにおける1つまたは複数の量子ビットの排除を可能にすることが含まれ得る。
本発明の様々な実施形態は、1つまたは複数のハミルトニアン対称性の存在下での分子励起状態の効率的、効果的、および自律的(たとえば、直接的な人間の誘導なしの)量子計算を容易にするコンピュータ処理システム、コンピュータ実施方法、装置、またはコンピュータ・プログラム製品あるいはその組合せを対象とし得る。1つまたは複数の実施形態は、EoM法で計算される要素の数を削減するか、またはそれによってEoM法の実施に必要とされる量子ビットの数を削減するか、あるいはその両方を行うことができる。たとえば、本明細書に記載の様々な実施形態は、マッピングされた量子ビット・ハミルトニアンの励起演算子を、1つまたは複数のハミルトニアン対称性(たとえば、パウリ対称性)を有するそれらの交換特性に基づいて分類することができる。1つまたは複数の対称性によって交換できる励起演算子の各セットを、あるセクタに分類することができ、1つまたは複数の対称性で反交換できる励起演算子の各セットを、別のセクタに分類することができる。さらに、セクタをまたがる行列要素は、ゼロとすることができる。さらに、それぞれのセクタのペアの励起演算子ごとに、1つまたは複数のEoM行列定義に基づいて交換子を生成するか、または、次いで縮小値を用いて交換子を縮小するか、あるいはその両方を行うことができる。
コンピュータ処理システム、コンピュータ実施方法、装置、またはコンピュータ・プログラム製品あるいはその組合せは、ハードウェアまたはソフトウェアあるいはその両方を使用して、抽象的ではなく、人間が一連の精神的行為として実行することができない本質的に高度な技術的な問題(たとえば、1つまたは複数のハミルトニアン対称性の存在下での分子励起状態の量子計算)を解決する。たとえば、本明細書に記載の実施形態の様々な特徴は、個人の精神的行為によって容易にまたは効率的にあるいはその両方では実行することができない、量子コンピューティングを対象とし得る。
図1は、1つまたは複数の量子コンピューティング・デバイス上での1つまたは複数のEoM法の実施を容易にすることができる例示的で非限定的なシステム100のブロック図を示す。簡潔にするために、本明細書に記載の他の実施形態で使用されている同様の要素についての繰り返しの説明は省略されている。本発明の様々な実施形態におけるシステム(たとえば、システム100など)、装置、またはプロセスの態様は、1つまたは複数のマシン内で具現化される、たとえば、1つまたは複数のマシンに関連付けられた1つまたは複数のコンピュータ可読媒体(または複数の媒体)で具現化される、1つまたは複数のマシン実行可能コンポーネントを構成することができる。このようなコンポーネントは、たとえばコンピュータ、コンピューティング・デバイス、仮想マシンなどの1つまたは複数のマシンによって実行されると、マシンに、記載されている動作を実行させることができる。
図1に示すように、システム100は、1つもしくは複数のサーバ102、1つもしくは複数のネットワーク104、または1つもしくは複数の入力デバイス106あるいはその組合せを含むことができる。サーバ102は、制御コンポーネント108を含むことができる。さらに、制御コンポーネント108は、受信コンポーネント110、初期化コンポーネント112、または行列コンポーネント114あるいはその組合せを含むことができる。また、サーバ102は、少なくとも1つのメモリ116を含むか、あるいは少なくとも1つのメモリ116と関連付けられ得る。サーバ102は、制御コンポーネント108および関連するコンポーネント、メモリ116、またはプロセッサ120あるいはその組合せなどであるがこれらに限定されない様々なコンポーネントに結合することができるシステム・バス118をさらに含むことができる。図1にはサーバ102が示されているが他の実施形態では、様々なタイプの複数のデバイスが、図1に示す特徴(たとえば、量子コンピューティング・デバイス)に関連付けられるか、またはそれを含むことができる。さらに、サーバ102は、1つまたは複数のネットワーク104を介して、図示されているクラウド・コンピューティング環境と通信することができる。
1つまたは複数のネットワーク104は、セルラ・ネットワーク、ワイド・エリア・ネットワーク(WAN)(たとえば、インターネット)またはローカル・エリア・ネットワーク(LAN)を含むがこれらに限定されない、有線ネットワークおよび無線ネットワークを含むことができる。たとえば、サーバ102は、たとえば、セルラ、WAN、ワイヤレス・フィデリティ(Wi-Fi)(R)、Wi-Max(R)、WLAN、Bluetooth(R)技術、それらの組合せなどを含むがこれらに限定されない、事実上任意の所望の有線または無線技術を使用して、1つまたは複数の入力デバイス106と通信することができる(逆も同様である)。さらに、図示されている実施形態では、制御コンポーネント108は、1つまたは複数のサーバ102上に設けられ得るが、システム100のアーキテクチャはそのようには限定されないことを理解されたい。たとえば、制御コンポーネント108、または制御コンポーネント108の1つもしくは複数のコンポーネントは、別のサーバ・デバイス、クライアント・デバイスなどの別のコンピュータ・デバイスに配置されることが可能である。
1つまたは複数の入力デバイス106には、パーソナル・コンピュータ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、携帯電話(たとえば、スマート・フォン)、コンピュータ化されたタブレット(たとえば、プロセッサを含む)、スマート・ウォッチ、キーボード、タッチ・スクリーン、マウス、それらの組合せなどを含み得るがこれらに限定されない、1つまたは複数のコンピュータ化されたデバイスが含まれ得る。システム100のユーザは、1つまたは複数の入力デバイス106を利用してデータをシステム100に入力し、それにより、(たとえば、直接接続を介して、または1つもしくは複数のネットワーク104を介して、あるいはその組合せで)前記データをサーバ102と共有することができる。たとえば、1つまたは複数の入力デバイス106は、(たとえば、直接接続を介して、または1つもしくは複数のネットワーク104を介して、あるいはその組合せで)受信コンポーネント110にデータを送信することができる。さらに、1つまたは複数の入力デバイス106は、システム100によって生成された1つまたは複数の出力をユーザに提示することができる1つまたは複数のディスプレイを備えることができる。たとえば、1つまたは複数のディスプレイには、陰極管ディスプレイ(「CRT」)、発光ダイオード・ディスプレイ(「LED」)、エレクトロルミネセント・ディスプレイ(「ELD」)、プラズマ・ディスプレイ・パネル(「PDP」)、液晶ディスプレイ(「LDC」)、有機発光ダイオード・ディスプレイ(「OLED」)、それらの組合せなどが含まれ得るが、これらに限定されない。
システム100のユーザは、1つもしくは複数の入力デバイス106または1つもしくは複数のネットワーク104あるいはその両方を利用して、1つもしくは複数の設定またはコマンドあるいはその両方をシステム100に入力することができる。たとえば、本明細書に記載の様々な実施形態では、システム100のユーザは、1つもしくは複数の入力デバイス106を介して、サーバ102を動作させ、かつ/もしくは操作し、かつ/またはコンポーネントを関連付けることができる。さらに、システム100のユーザは、1つまたは複数の入力デバイス106を利用して、サーバ102または関連するコンポーネントあるいはその両方によって生成された1つまたは複数の出力(たとえば、ディスプレイ、データ、視覚表現、または同様のもの、あるいはその組合せ)を表示することができる。様々な実施形態では、システム100のユーザは、1つもしくは複数の入力デバイス106または1つもしくは複数のネットワーク104あるいはその組合せを利用して、サーバ102(たとえば、制御コンポーネント108)にEoMデータ(たとえば、1つまたは複数のEoM法を開始するために使用できるデータ)を提供することができる。EoMデータの例には、1つまたは複数のマッピングされた量子ビット・ハミルトニアン、1つまたは複数の励起演算子、1つまたは複数の基準状態、1つまたは複数のマッピングされた量子ビット・ハミルトニアンから見出された1つまたは複数の対称性、1つまたは複数の基準状態を有するセクタの1つまたは複数の縮小値、その組合せなどが含まれ得るが、これらに限定されない。
受信コンポーネント110は、(たとえば、直接電気接続を介して、または1つもしくは複数のネットワーク104を介して、あるいはその両方で)1つまたは複数の入力デバイス106に動作可能に結合され得るか、またはシステム100に入力されたEoMデータを受信することができるか、あるいはその両方を行うことができる。さらに、受信コンポーネント110は、制御コンポーネント108の様々なコンポーネントなど、サーバ102の1つまたは複数のコンポーネントとEoMデータを共有することができる。たとえば、受信コンポーネント110は、(たとえば、直接電気接続を介して、または1つもしくは複数のネットワーク104を介して、あるいはその両方で)制御コンポーネント108の1つまたは複数の関連するコンポーネントに動作可能に結合され得る。
初期化コンポーネント112は、1つまたは複数のハミルトニアン対称性(たとえば、粒子対称性または空間対称性あるいはその両方)を有する励起演算子の1つまたは複数の交換特性に基づいて、1つまたは複数の励起演算子を分類することができる。初期化コンポーネント112によって分析された1つまたは複数の励起演算子または対称性あるいはその両方は、受信コンポーネント110によって受信されるEoMデータ内に含まれ得る。様々な実施形態において、初期化コンポーネント112は、励起演算子を、それぞれの対称性ごとに第1のセクタまたは第2のセクタに分類することができる。第1のセクタは、対象の対称性と交換することができる1つまたは複数の励起演算子を含むことができる。対照的に、第2のセクタは、対象の対称性と反交換することができる1つまたは複数の励起演算子を含むことができる。さらに、1つまたは複数の対称性を利用して、1つまたは複数の縮小値を相関させることができ、縮小値は、本明細書で後述するように、量子ビット・ハミルトニアンを縮小するために制御コンポーネント108によって使用することができる。様々な実施形態において、1つまたは複数の対称性は、対象の分子に固有であり得るか、または対象の量子ビット・ハミルトニアンから導出され得るか、あるいはその両方であり得る。
たとえば、初期化コンポーネント112は、以下の式に従って、1つまたは複数の励起演算子を2つのセクタに分類することができる。
ここで、「E」は、インデックス「Eμ」または「Ev」あるいはその両方を有する励起演算子のセットとすることができ、「S」は、対象の対称性を表すことができ、「WC」は、対称性によって交換する励起演算子のセットを表すことができ、または「WA」は、対称性によって反交換する励起演算子のセットを表すことができ、あるいはその組合せである。したがって、マッピングされた量子ビット・ハミルトニアンの励起演算子は、対称性によって交換できる第1のセクタ(「C」)、または対称性によって反交換できる第2のセクタ(「A」)に分類され得る。上記の式は、1つの対称性に関する初期化コンポーネント112による分類を例示しているが、初期化コンポーネント112のアーキテクチャは、そのようには限定されない。2つ以上の対称性が分析される場合、初期化コンポーネント112によって追加のセクタが分類され得る。たとえば、初期化コンポーネント112によって分類されるセクタの数は、2Nに等しくなる可能性があり、ここで、「N」は、対称性の数を表すことができる。たとえば、初期化コンポーネント112によって2つの対称性が分析される場合、励起演算子は、4つのセクタ(たとえば、{(交換、交換)、(交換、反交換)、(反交換、交換)、(反交換、反交換)})に分類され得る。このようにして、初期化コンポーネント112は、複数の対称性に関して1つまたは複数の分類を実行することができる。たとえば、対称性の数は0からX-1の範囲とすることができ、ここで「X」は対象の量子ビットの数を表すことができる。
行列コンポーネント114は、分類された励起演算子に基づいて、1つまたは複数のEoM行列を生成することができる。たとえば、行列コンポーネント114は、インデックス(たとえば、「Eμ」、「Ev」)が初期化コンポーネント112によって分類された同じセクタ内にある励起演算子(たとえば、「E」)からの行列要素を含む、1つまたは複数のEoM行列を生成することができる。たとえば、行列コンポーネント114は、両方のインデックスが対象の対称性によって交換する(たとえば、両方のインデックスが、初期化コンポーネント112によって分類された第1のセクタ「C」内に含まれる)励起演算子についての1つまたは複数のEoM行列を生成することができる。別の例では、行列コンポーネント114は、両方のインデックスが対象の対称性によって反交換する(たとえば、両方のインデックスが、初期化コンポーネント112によって分類された第2のセクタ「A」内に含まれる)励起演算子についての1つまたは複数のEoM行列を生成することができる。
1つまたは複数の実施形態では、行列コンポーネント114は、初期化コンポーネント112によって分類された複数のセクタにまたがる励起演算子を有するEoM行列を生成することを回避することができる。たとえば、行列コンポーネント114は、あるセクタ(たとえば、第1のセクタ「C」)内に分類された第1のインデックス(たとえば、「Eμ」)、および別のセクタ(たとえば、第2のセクタ「A」)に分類された第2のインデックス(たとえば、「Ev」)を有する励起演算子(たとえば、「E」)に基づいて1つまたは複数のEoM行列を生成することを回避することができる。初期化コンポーネント112によって分類された複数のセクタにまたがる励起演算子に基づいたEoM行列要素は、ゼロに等しくなり、したがって、このようなEoM行列要素の計算は、その結果が既知であるので不要である。したがって、行列コンポーネント114は、インデックス(たとえば、「Eμ」、「Ev」)が初期化コンポーネント112によって分類された同じセクタにある励起演算子(たとえば、「E」)からEoM行列を生成することのみによって(たとえば、複数の分類されたセクタにまたがる励起演算子からEoM行列を生成することを回避することによって)、EoM法の従来の実施と比較して、EoM行列内の計算対象となる要素の数を削減することができる。
図2は、本明細書に記載の1つまたは複数の実施形態による、交換子コンポーネント202をさらに含む例示的で非限定的なシステム100の図を示す。簡潔にするために、本明細書に記載の他の実施形態で使用されている同様の要素についての繰り返しの説明は省略されている。交換子コンポーネント202は、行列コンポーネント114によって生成された1つまたは複数のEoM行列に基づいて、1つまたは複数の交換子を生成することができる。
たとえば、交換子コンポーネント202は、以下の定義に従って1つまたは複数の交換子を生成することができる。
ここで、「H」は、マッピングされた量子ビット・ハミルトニアンとすることができ、「E」は、インデックス「Eμ」または「Ev」あるいはその両方を有する励起演算子のセットとすることができ、「|0>」は、マッピングされた量子ビット・ハミルトニアンからの基準状態を表すことができる。たとえば、基準状態は、対象の分子の基底エネルギー状態とすることができ、対象の状態と基準状態との間のエネルギー差は、分子の励起状態とすることができる。交換子コンポーネント202は、分類されたセクタ(たとえば、「WC」または「WA」のセット)内のペアの励起演算子(たとえば、「Eμ」および「Ev」)ごとに、上記で提供されたEoMマトリックス定義に基づいて、1つまたは複数の交換子(たとえば、Mμv、Qμv、VμvまたはWμvあるいはその組合せ)を生成することができる。したがって、行列コンポーネント114に関して上記で説明したように、交換子コンポーネント202は、同じ分類内に両方のインデックスを有する励起演算子に基づいて、1つまたは複数の交換子を生成することができる。
図3は、本明細書に記載の1つまたは複数の実施形態による、縮小コンポーネント302をさらに含む例示的で非限定的なシステム100の図を示す。簡潔にするために、本明細書に記載の他の実施形態で使用されている同様の要素についての繰り返しの説明は省略されている。縮小コンポーネント302は、交換子コンポーネント202によって生成された交換子を実行するために使用される量子ビットの数を、縮小値に基づいて縮小することができる。
縮小値は、マッピングされた量子ビット・ハミルトニアンの基準状態が配置された対称性セクタを線引きすることができる。たとえば、マッピングされた量子ビット・ハミルトニアンの各エネルギー状態は、対象の対称性のそれぞれのセクタに配置され得、縮小値は、基準状態(たとえば、「|0>」)が属する対象の対称性のセクタを表すことができる。縮小値は、たとえば、システム100に入力されるEoMデータに含まれ得る。縮小コンポーネント302は、交換子コンポーネント202によって生成された1つまたは複数の交換子を、縮小値を利用して縮小し、1つまたは複数の量子ビットの割当てを排除することができる。たとえば、縮小コンポーネント302は、1つまたは複数の交換子の生成後、縮小されたハミルトニアンが基準状態に対して正しい符号を有することを保証するために、縮小値を対象の量子ビット・ハミルトニアンの係数で乗算することによって、量子ビット・ハミルトニアンを縮小することができる。これにより、縮小コンポーネント302は、1つまたは複数の量子コンピューティング・デバイス上で(たとえば、交換子コンポーネント202によって生成された)1つまたは複数の交換子または(たとえば、行列コンポーネント114によって生成された)EoM行列あるいはその両方を実行するために必要な量子ビットの数を削減することができる。
図4は、本明細書に記載の1つまたは複数の実施形態による、計算コンポーネント402をさらに含む例示的で非限定的なシステム100の図を示す。簡潔にするために、本明細書に記載の他の実施形態で使用されている同様の要素についての繰り返しの説明は省略されている。計算コンポーネント402は、制御コンポーネント108の様々なコンポーネント(たとえば、初期化コンポーネント112、行列コンポーネント114、または交換子コンポーネント202あるいはその組合せ)によって生成される、(たとえば、縮小コンポーネント302によって縮小された)1つまたは複数の交換子またはEoM行列あるいはその両方に基づいて、EoM法の永年方程式を解くことができる。
たとえば、計算コンポーネント402は、生成された交換子(たとえば、縮小された交換子)またはEoM行列あるいはその両方を利用して、本明細書に記載のEoM行列定義に基づいて、以下の固有値方程式(たとえば、「式1」)を解くことができる。
ここで、「*」は複素共役を指すことができ、または、「E0n」は「n番目」の励起状態と基準状態の間のエネルギー・ギャップとすることができ、あるいはその両方である。
有利なことに、本明細書に記載のシステム100の様々な実施形態は、従来の技法と比較して、量子コンピュータ上でEoM法を実行するために必要な量子ビットの数、またはEoM法の行列を構築するために必要な行列要素の評価の数、あるいはその両方を削減することができる。たとえば、水素分子(「H2」)の場合、システム100は、EoM法を実行するために、従来の技法で必要とされる4量子ビットではなく1量子ビットを使用することを可能にすることができる。システム100は、より少ない量子ビットを利用することによって、従来の技法で利用できるよりも多数のゲートを有する量子回路上でのEoM法の動作を容易にし、これにより、変分量子固有値解法手法においてより複雑な波動関数仮説を探索できる可能性を提供することができる。別の例では、水素化リチウム(「LiH」)分子の場合、システム100は、従来の技法と比較して、エントリ評価の数を3分の1に削減することができる。一般的な分子の場合、システム100によって省かれるエントリ評価の数は、従来の手法と比較して、考慮される励起状態の数に応じて二次的に拡大することができる。
図5は、H2の解離プロファイルに関してシステム100の有効性を示すことができる例示的で非限定的なグラフ500の図を示す。簡潔にするために、本明細書に記載の他の実施形態で使用されている同様の要素についての繰り返しの説明は省略されている。図5に示すように、実線は、従来の技法および2量子ビットを使用して導出された分子エネルギー状態を表すことができる。たとえば、第1の線502は0番目の励起状態を表すことができ、第2の線504は1番目の励起状態を表すことができ、第3の線506は2番目の励起状態を表すことができ、第4の線は3番目の励起状態を表すことができる。さらに、塗りつぶした丸(たとえば、その位置にはさらに「x」が描かれている)は、1量子ビットを使用してシステム100によって決定される励起状態を表すことができる。グラフ500によって例示されるように、本明細書に記載のシステム100は、量子計算を実行するためにより少ない量子ビットを使用しながら、従来の技法と同じ結果を達成することができる。
図6は、LiHの解離プロファイルに関してシステム100の有効性を示すことができる例示的で非限定的なグラフ600の図を示す。簡潔にするために、本明細書に記載の他の実施形態で使用されている同様の要素についての繰り返しの説明は省略されている。図6に示すように、実線は、従来の技法および8量子ビットを使用して導出された24のそれぞれの分子励起状態を表すことができ、EoM行列内に300の元素が含まれている。さらに、塗りつぶした丸(たとえば、その位置にはさらに「x」が描かれている)は、6量子ビットを使用してシステム100によって決定されたそれぞれの励起状態を表すことができ、EoM行列内に100の要素が含まれている。グラフ600によって例示されるように、本明細書に記載のシステム100は、より少ない量子ビットおよびより少ない計算(たとえば、行列要素のより少ない数の評価)を使用しながら、従来の技法と同じ結果を達成することができ、これにより、分子励起状態を決定するために使用される量子コンピューティングの速度および効率が向上する。
図7は、本明細書に記載の1つまたは複数の実施形態による、ハミルトニアン対称性の存在下での分子励起状態の量子計算を容易にすることができる例示的で非限定的な方法700の流れ図を示す。簡潔にするために、本明細書に記載の他の実施形態で使用されている同様の要素についての繰り返しの説明は省略されている。
702において、方法700は、(たとえば、初期化コンポーネント112を介して)プロセッサ120に動作可能に結合されたシステム100によって、マッピングされた量子ビット・ハミルトニアンからの対称性を有する複数の励起演算子の交換特性に基づいて、マッピングされた量子ビット・ハミルトニアンからの複数の励起演算子を1つまたは複数のセクタに分類することを含むことができる。たとえば、励起演算子は、それぞれ2つのインデックスを含むことができ、これらは、システム100によって第1のセクタまたは第2のセクタに分類され得る。対象の対称性と交換できる励起演算子インデックスは、第1のセクタに分類され得、対象の対称性と反交換できる励起演算子インデックスは、第2セクタに分類され得る。たとえば、702での分類することは、本明細書に記載の励起演算子の第1のセット(「WC」)または励起演算子の第2のセット(「WA」)あるいはその両方を形成することを含むことができる。
704において、方法700は、(たとえば、行列コンポーネント114または交換子コンポーネント202あるいはその両方を介して)システム100によって、702での分類することに基づいて、複数の励起演算子からの1つまたは複数の励起演算子から1つまたは複数のEoM行列を生成することを含むことができる。たとえば、1つまたは複数のEoM行列は、702で分類された同じセクタ内の両方のインデックス(たとえば、「Eμ」または「Ev」あるいはその両方)を有する励起演算子から生成され得る。異なるセクタからのそれぞれのインデックスを有する励起演算子から導出される行列要素はゼロと等しくなり得、それにより、704での生成することは、EoM行列形成についてこのような励起演算子を分析することを回避することができる。したがって、702での分類することは、ゼロ以外の整数に等しいEoM行列を導出することができる励起演算子を効率的に選択すると同時に、既知の結果(たとえば、ゼロ)に等しくなり得るEoM行列を導出する可能性のある励起演算子の分析を回避するように、704でのEoM行列の形成を誘導することができる。これにより、方法700は、有利なことに、従来の技法と比較して、1つまたは複数のEoM行列を構築するために必要な行列要素の評価の数を削減することができる。
図8は、本明細書に記載の1つまたは複数の実施形態による、ハミルトニアン対称性の存在下での分子励起状態の量子計算を容易にすることができる例示的で非限定的な方法800の流れ図を示す。簡潔にするために、本明細書に記載の他の実施形態で使用されている同様の要素についての繰り返しの説明は省略されている。
802において、方法800は、(たとえば、初期化コンポーネント112を介して)プロセッサ120に動作可能に結合されたシステム100によって、マッピングされた量子ビット・ハミルトニアンからの対称性を有する複数の励起演算子の交換特性に基づいて、マッピングされた量子ビット・ハミルトニアンからの複数の励起演算子を1つまたは複数のセクタに分類することを含むことができる。たとえば、励起演算子は、それぞれ2つのインデックスを含むことができ、これらは、システム100によって第1のセクタまたは第2のセクタに分類され得る。対象の対称性と交換できる励起演算子インデックスは、第1のセクタに分類され得、対象の対称性と反交換できる励起演算子インデックスは、第2セクタに分類され得る。たとえば、802での分類することは、本明細書に記載の励起演算子の第1のセット(「WC」)または励起演算子の第2のセット(「WA」)あるいはその両方を形成することを含むことができる。
804において、方法800は、(たとえば、行列コンポーネント114または交換子コンポーネント202あるいはその両方を介して)システム100によって、802での分類することに基づいて、複数の励起演算子からの1つまたは複数の励起演算子から1つまたは複数のEoM行列を生成することを含むことができる。たとえば、1つまたは複数のEoM行列は、802で分類された同じセクタ内の両方のインデックス(たとえば、「Eμ」または「Ev」あるいはその両方)を有する励起演算子から生成され得る。異なるセクタからのそれぞれのインデックスを有する励起演算子から導出される行列要素はゼロと等しくなり得、それにより、804での生成することは、EoM行列形成についてこのような励起演算子を分析することを回避することができる。したがって、802での分類することは、ゼロ以外の整数に等しいEoM行列を導出することができる励起演算子を効率的に選択すると同時に、既知の結果(たとえば、ゼロ)に等しくなり得るEoM行列を導出する可能性のある励起演算子の分析を回避するように、804でのEoM行列の形成を誘導することができる。
806において、方法800は、(たとえば、交換子コンポーネント202を介して)システム100によって、1つまたは複数のEoM行列に基づいて1つまたは複数の交換子を生成することを含むことができる。たとえば、1つまたは複数の交換子は、本明細書に記載の様々な交換子定義に従って生成され得る。
808において、方法800は、(たとえば、縮小コンポーネント302を介して)システム100によって、対象の対称性に関連してマッピングされた量子ビット・ハミルトニアンの基準状態の位置を考慮する縮小値に基づいて、1つまたは複数の交換子を実行する量子ビットの数を縮小することを含むことができる。たとえば、縮小値は、基準状態に属するマッピングされた量子ビット・ハミルトニアンの対称性セクタを線引きすることができる。有利なことに、方法800は、量子コンピューティング・デバイス上でEoM行列または交換子あるいはその両方を実行するために必要とされる量子ビットの数を削減することができる。
810において、方法800は、(たとえば、計算コンポーネント402を介して)システム100によって、1つまたは複数の交換子に基づいて1つまたは複数の固有値方程式を解くことを含むことができる。たとえば、810での解くことは、本明細書に記載の式1に関して実行され得る。様々な実施形態では、810において、808での縮小の結果としての縮小された数の量子ビットを使用して、1つまたは複数の固有値方程式が解かれ得る。
本開示はクラウド・コンピューティングに関する詳細な説明を含むが、本明細書に記載された教示の実装はクラウド・コンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在知られている、または後に開発される他の任意のタイプのコンピューティング環境と組み合わせて実装することが可能である。
クラウド・コンピューティングは、最小限の管理労力、またはサービス・プロバイダとの最小限の対話で迅速にプロビジョニングおよび解放され得る構成可能なコンピューティング・リソース(たとえば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共用プールへの簡便かつオンデマンドのネットワーク・アクセスを可能にするためのサービス提供のモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含み得る。
特徴は、以下の通りである。
オンデマンド・セルフサービス:クラウド・コンシューマは、サービス・プロバイダとの間で人間の対話を必要とすることなく、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能を一方的にプロビジョニングすることができる。
広範なネットワーク・アクセス:機能は、ネットワーク上で利用可能であり、異種のシン・クライアント・プラットフォームまたはシック・クライアント・プラットフォーム(たとえば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準的なメカニズムを介してアクセスされる。
リソースのプール化:プロバイダのコンピューティング・リソースは、マルチテナント・モデルを使用して複数のコンシューマにサービス提供するようにプール化され、異なる物理リソースおよび仮想リソースが、要求に応じて動的に割当ておよび再割当てされる。コンシューマは一般に、提供されるリソースの正確な位置に対して制御も知識も有していないが、より高い抽象化レベルでは位置(たとえば、国、州、またはデータセンタ)を特定し得るという点で、位置の独立性があるといえる。
迅速な柔軟性:機能を、迅速かつ柔軟に、場合によっては自動的にプロビジョニングして素早くスケール・アウトし、迅速に解放して素早くスケール・インすることができる。コンシューマにとっては、プロビジョニングに利用可能な機能は、しばしば無制限であるように見え、いつでも任意の数量で購入することができる。
サービスの測定:クラウド・システムは、サービスのタイプ(たとえば、ストレージ、処理、帯域幅、およびアクティブなユーザ・アカウント)に適した一定の抽象化レベルでの計量機能を活用することによって、リソースの使用を自動的に制御および最適化する。リソースの使用状況を監視、制御、および報告することができ、利用するサービスのプロバイダとコンシューマの両方に透明性を提供する。
サービス・モデルは、以下の通りである。
ソフトウェア・アズ・ア・サービス(SaaS):クラウド・インフラストラクチャ上で動作しているプロバイダのアプリケーションを使用するために、コンシューマに提供される機能である。アプリケーションは、ウェブ・ブラウザ(たとえば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを介して様々なクライアント・デバイスからアクセス可能である。限定されたユーザ固有のアプリケーション構成設定を想定される例外として、コンシューマは、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能をも含む基礎となるクラウド・インフラストラクチャを管理も制御もしない。
プラットフォーム・アズ・ア・サービス(PaaS):プロバイダによってサポートされるプログラミング言語およびツールを使用して生成されたコンシューマが生成または取得したアプリケーションをクラウド・インフラストラクチャ上に展開するために、コンシューマに提供される機能である。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、またはストレージなどの基礎となるクラウド・インフラストラクチャを管理も制御もしないが、展開されたアプリケーション、および場合によってはアプリケーションをホストする環境構成を制御する。
インフラストラクチャ・アズ・ア・サービス(IaaS):オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアをコンシューマが展開および動作させることができる、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングするために、コンシューマに提供される機能である。コンシューマは、基礎となるクラウド・インフラストラクチャを管理も制御もしないが、オペレーティング・システム、ストレージ、展開されたアプリケーションを制御し、場合によっては選択されたネットワーキング・コンポーネント(たとえば、ホスト・ファイアウォール)を限定的に制御する。
展開モデルは、以下の通りである。
プライベート・クラウド:クラウド・インフラストラクチャは、ある組織のためだけに運用される。このクラウド・インフラストラクチャは、組織または第三者によって管理されてもよく、オンプレミスまたはオフプレミスで存在してもよい。
コミュニティ・クラウド:クラウド・インフラストラクチャは複数の組織で共有され、関心事項(たとえば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス上の考慮事項)を共有している特定のコミュニティをサポートする。このクラウド・インフラストラクチャは、組織または第三者によって管理されてもよく、オンプレミスまたはオフプレミスで存在してもよい。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆または大規模な業界グループにとって利用可能であり、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データおよびアプリケーションの移植性(たとえば、クラウド間の負荷分散のためのクラウド・バースティング)を可能にする標準化された技術または専用の技術によって結び付けられる2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の合成である。
クラウド・コンピューティング環境は、ステートレス性、低結合性、モジュール性、および意味的相互運用性に焦点を置くことを重視したサービスである。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
次に図9を参照すると、例示的なクラウド・コンピューティング環境900が示されている。図示のように、クラウド・コンピューティング環境900は、たとえば、携帯情報端末(PDA:personal digital assistant)もしくは携帯電話904、デスクトップ・コンピュータ906、ラップトップ・コンピュータ908、または自動車コンピュータ・システム910あるいはその組合せなどのクラウド・コンシューマによって使用されるローカル・コンピューティング・デバイスが通信することができる1つまたは複数のクラウド・コンピューティング・ノード902を含む。ノード902は、互いに通信してもよい。ノード902は、本明細書で上述したようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはその組合せなどの1つまたは複数のネットワーク内で物理的にまたは仮想的にグループ化されてもよい(図示せず)。これにより、クラウド・コンピューティング環境900は、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを保持する必要のないサービスとして、インフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはその組合せを提供することが可能になる。図9に示すコンピューティング・デバイス904~910のタイプは、例示のみを意図しており、コンピューティング・ノード902およびクラウド・コンピューティング環境900は、(たとえば、ウェブ・ブラウザを使用して)任意のタイプのネットワークまたはネットワーク・アドレス指定可能な接続あるいはその両方を介して任意のタイプのコンピュータ化されたデバイスと通信できることを理解されたい。
次に図10を参照すると、クラウド・コンピューティング環境900(図9)によって提供される機能抽象化層のセットが示されている。簡潔にするために、本明細書に記載の他の実施形態で使用されている同様の要素についての繰り返しの説明は省略されている。図10に示すコンポーネント、層、および機能は、例示のみを意図しており、本発明の実施形態はそれらに限定されないことを予め理解されたい。図示のように、以下の層および対応する機能が提供される。
ハードウェアおよびソフトウェア層1002は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例には、メインフレーム1004、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ1006、サーバ1008、ブレード・サーバ1010、記憶デバイス1012、ならびにネットワークおよびネットワーキング・コンポーネント1014が含まれる。いくつかの実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア1016およびデータベース・ソフトウェア1018を含む。
仮想化層1020は、抽象化層を提供し、この層から仮想エンティティの以下の例、すなわち、仮想サーバ1022、仮想ストレージ1024、仮想プライベート・ネットワークを含む仮想ネットワーク1026、仮想アプリケーションおよびオペレーティング・システム1028、ならびに仮想クライアント1030が提供され得る。
一例では、管理層1032は、以下に記載の機能を提供することができる。リソース・プロビジョニング1034は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を提供する。計量および価格決定1036は、クラウド・コンピューティング環境内でリソースが利用されるときのコスト追跡、およびこれらのリソースの消費に対する課金または請求を提供する。一例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことがある。セキュリティは、クラウド・コンシューマおよびタスクのための本人確認、ならびにデータおよび他のリソースのための保護を提供する。ユーザ・ポータル1038は、コンシューマおよびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理1040は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割当ておよび管理を提供する。サービス・レベル・アグリーメント(SLA)の計画および履行1042は、SLAに従って将来において要求されることが予想されるクラウド・コンピューティング・リソースの事前配置および調達を提供する。
ワークロード層1044は、クラウド・コンピューティング環境が利用され得る機能の例を提供する。この層から提供され得るワークロードおよび機能の例には、マッピングおよびナビゲーション1046、ソフトウェア開発およびライフサイクル管理1048、仮想教室教育配信1050、データ分析処理1052、トランザクション処理1054、ならびにEoM計算1056が含まれる。本発明の様々な実施形態は、図9および図10を参照して説明したクラウド・コンピューティング環境を利用して、EoM法の1つまたは複数の特徴(たとえば、1つまたは複数のEoM行列または交換子あるいはその両方)を計算し、分子励起状態を決定することができる。たとえば、システム100の1つまたは複数のコンポーネント(たとえば、初期化コンポーネント112または行列コンポーネント114あるいはその両方)を、量子コンピュータ上で実行することができ、システム100の1つまたは複数の他のコンポーネント(たとえば、計算コンポーネント402)を、古典コンピュータ上で実行することができ、クラウド・コンピューティング環境は、量子コンピュータと古典コンピュータとの間の通信、ならびに/または、量子コンピュータおよび/もしくは古典コンピュータの性能効率を促進することができる。
本発明は、任意の可能な技術的詳細の統合レベルでのシステム、方法、またはコンピュータ・プログラム製品あるいはその組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数の媒体)を含んでもよい。コンピュータ可読記憶媒体は、命令実行デバイスが使用するための命令を保持および記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、たとえば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、または上記の任意の適切な組合せとすることができるが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、消去可能プログラマブル読取り専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピ・ディスク、パンチカードまたは命令が記録された溝内の隆起構造などの機械的に符号化されたデバイス、および上記の任意の適切な組合せが含まれる。コンピュータ可読記憶媒体は、本明細書で使用される場合、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を介して伝播する電磁波(たとえば、光ファイバ・ケーブルを通る光パルス)、または電線を介して送信される電気信号などの、一過性の信号自体であると解釈されるべきではない。
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、または、ネットワーク、たとえばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、またはワイヤレス・ネットワークあるいはその組合せを介して外部コンピュータまたは外部記憶デバイスにダウンロードされてもよい。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはその組合せを含んでもよい。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、そのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体での記憶のために転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、または、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語および「C」プログラミング言語もしくは同様のプログラム言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上で、一部がユーザのコンピュータ上で、一部がユーザのコンピュータ上かつ一部がリモート・コンピュータ上で、または全体がリモート・コンピュータ上もしくはサーバ上で実行されてもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または(たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して接続されてもよい。いくつかの実施形態では、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して、たとえばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路をパーソナライズすることによって、電子回路がコンピュータ可読プログラム命令を実行してもよい。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照しながら本明細書で説明されている。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方のブロックの組合せは、コンピュータ可読プログラム命令によって実施され得ることが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/動作を実施するための手段を作り出すように、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて、マシンを作り出すものであってもよい。また、これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/動作の態様を実施する命令を含む製造品を含むように、コンピュータ可読媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに対して特定の方式で機能するように指示できるものであってもよい。
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル装置、または他のデバイスで実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/動作を実施するように、コンピュータ実施プロセスを作り出すべくコンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされて、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または一部を表すことがある。いくつかの代替の実装形態では、ブロックに記載された機能は、図に記載された順序とは異なる順序で行われてもよい。たとえば、連続して示されている2つのブロックは、実際には、関与する機能に応じて、実質的に同時に実行されてもよく、またはそれらのブロックは、場合によっては逆の順序で実行されてもよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組合せは、指定された機能または動作を実行するか、あるいは専用ハードウェアとコンピュータ命令との組合せを遂行する専用ハードウェア・ベースのシステムによって実装され得ることにも留意されたい。
図11および以下の説明は、開示された主題の様々な態様についてのコンテキストを提供するために、開示された主題の様々な態様を実施することができる好適な環境の概要説明を提供することを意図している。図11は、本明細書に記載の1つまたは複数の実施形態を容易にすることができる例示的で非限定的な動作環境のブロック図を示す。簡潔にするために、本明細書に記載の他の実施形態で使用されている同様の要素についての繰り返しの説明は省略されている。図11を参照すると、本開示の様々な態様を実施するための好適な動作環境1100は、コンピュータ1112を含むことができる。コンピュータ1112もまた、処理ユニット1114、システム・メモリ1116、およびシステム・バス1118を含むことができる。システム・バス1118は、システム・メモリ1116を含むがこれに限定されないシステム・コンポーネントを、処理ユニット1114に動作可能に結合することができる。処理ユニット1114は、様々な入手可能なプロセッサのうちの任意のものとすることができる。デュアル・マイクロプロセッサおよび他のマルチプロセッサ・アーキテクチャを処理ユニット1114として採用することもできる。システム・バス1118は、業界標準アーキテクチャ(ISA)、マイクロチャネル・アーキテクチャ(MSA)、拡張ISA(EISA)、インテリジェント・ドライブ・エレクトロニクス(IDE)、VESAローカル・バス(VLB)、周辺機器相互接続(PCI)、カード・バス、ユニバーサル・シリアル・バス(USB)、アドバンスト・グラフィックス・ポート(AGP)、ファイアワイヤ、および小型コンピュータ・システム・インターフェース(SCSI)を含むがこれらに限定されない任意の種類の利用可能なバス・アーキテクチャを使用した、メモリ・バスもしくはメモリ・コントローラ、周辺バスもしくは外部バス、またはローカル・バスあるいはその組合せを含む任意のいくつかのタイプのバス構造とすることができる。システム・メモリ1116は、揮発性メモリ1120および不揮発性メモリ1122を含むこともできる。不揮発性メモリ1122には、起動時などにコンピュータ1112内の要素間で情報を転送するための基本ルーチンを含む基本入出力システム(BIOS)が記憶され得る。限定ではなく例として、不揮発性メモリ1122には、読取り専用メモリ(ROM)、プログラマブルROM(PROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ(RAM)(たとえば、強誘電体RAM(FeRAM))が含まれ得る。揮発性メモリ1120にも、外部キャッシュ・メモリとして機能するランダム・アクセス・メモリ(RAM)が含まれ得る。限定ではなく例として、RAMは、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、ダブル・データ・レートSDRAM(DDR SDRAM)、エンハンストSDRAM(ESDRAM)、シンクリンクDRAM(SLDRAM)、ダイレクト・ラムバスRAM(DRRAM)、ダイレクト・ラムバス・ダイナミックRAM(DRDRAM)、およびラムバス・ダイナミックRAMなどの多くの形式で利用可能である。
コンピュータ1112は、取り外し可能/取り外し不可能な揮発性/不揮発性コンピュータ記憶媒体を含むこともできる。図11は、たとえば、ディスク・ストレージ1124を示している。ディスク・ストレージ1124には、磁気ディスク・ドライブ、フロッピ・ディスク・ドライブ、テープ・ドライブ、Jazドライブ、Zipドライブ、LS-100ドライブ、フラッシュ・メモリ・カード、またはメモリ・スティックなどのデバイスも含まれ得るが、これらに限定されない。ディスク・ストレージ1124には、単体での記憶媒体、またはコンパクト・ディスクROMデバイス(CD-ROM)、CD記録可能ドライブ(CD-Rドライブ)、CD書換え可能ドライブ(CD-RWドライブ)、もしくはデジタル多用途ディスクROMドライブ(DVD-ROM)などの光ディスク・ドライブを含むがこれらに限定されない他の記憶媒体と組み合わせた記憶媒体も含まれ得る。システム・バス1118へのディスク・ストレージ1124の接続を容易にするために、インターフェース1126などの取り外し可能または取り外し不可能なインターフェースが使用され得る。図11はまた、ユーザと、好適な動作環境1100に記載の基本的なコンピュータ・リソースとの間の仲介として機能することができるソフトウェアも示している。このようなソフトウェアには、たとえば、オペレーティング・システム1128も含まれ得る。オペレーティング・システム1128は、ディスク・ストレージ1124に記憶されることができ、コンピュータ1112のリソースを制御し、割り当てるように機能する。システム・アプリケーション1130は、たとえばシステム・メモリ1116内またはディスク・ストレージ1124上などに記憶されたプログラム・モジュール1132およびプログラム・データ1134を介したオペレーティング・システム1128によるリソースの管理を活用することができる。本開示は、様々なオペレーティング・システムまたはオペレーティング・システムの組合せを用いて実施され得ることを理解されたい。ユーザは、1つまたは複数の入力デバイス1136を介してコンピュータ1112にコマンドまたは情報を入力する。入力デバイス1136には、マウスなどのポインティング・デバイス、トラックボール、スタイラス、タッチ・パッド、キーボード、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星受信アンテナ、スキャナ、TVチューナ・カード、デジタル・カメラ、デジタル・ビデオ・カメラ、ウェブ・カメラなどが含まれ得るが、これらに限定されない。これらおよび他の入力デバイスは、1つまたは複数のインターフェース・ポート1138を経由してシステム・バス1118を介して処理ユニット1114に接続することができる。1つまたは複数のインターフェース・ポート1138には、たとえば、シリアル・ポート、パラレル・ポート、ゲーム・ポート、およびユニバーサル・シリアル・バス(USB)が含まれ得る。1つまたは複数の出力デバイス1140は、入力デバイス1136と同じタイプのポートのうちのいくつかを使用することができる。したがって、たとえば、USBポートを使用して、コンピュータ1112に入力を提供し、コンピュータ1112から出力デバイス1140に情報を出力することができる。出力アダプタ1142は、いくつかある出力デバイス1140の中に、特別なアダプタを必要とするモニタ、スピーカ、およびプリンタのような一部の出力デバイス1140が存在することを示すために設けられている。出力アダプタ1142には、限定ではなく例として、出力デバイス1140とシステム・バス1118との間の接続手段を提供するビデオ・カードおよびサウンド・カードが含まれ得る。1つまたは複数のリモート・コンピュータ1144など、他のデバイスまたはデバイスのシステムあるいはその両方が入力と出力の両方の機能を提供することに留意されたい。
コンピュータ1112は、リモート・コンピュータ1144などの1つまたは複数のリモート・コンピュータへの論理接続を使用するネットワーク化された環境において動作することができる。リモート・コンピュータ1144は、コンピュータ、サーバ、ルータ、ネットワークPC、ワークステーション、マイクロプロセッサ・ベースの機器、ピア・デバイスまたは他の共通ネットワーク・ノードなどとすることができ、典型的には、コンピュータ1112に関して説明した要素のうちの多くの要素またはすべての要素を含むこともできる。
簡潔にするために、メモリ・ストレージ・デバイス1146のみをリモート・コンピュータ1144と共に示している。リモート・コンピュータ1144はネットワーク・インターフェース1148を介してコンピュータ1112に論理的に接続され、さらに通信接続1150を介して物理的に接続され得る。さらに、動作は、複数の(ローカルおよびリモート)システムにわたって分散され得る。ネットワーク・インターフェース1148は、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、セルラ・ネットワークなどの有線または無線あるいはその両方の通信ネットワークを包含することができる。LAN技術には、ファイバ分散データ・インターフェース(FDDI)、銅線分散データ・インターフェース(CDDI)、Ethernet(R)、トークン・リングなどが含まれる。WAN技術には、ポイント・ツー・ポイント・リンク、統合サービス・デジタル・ネットワーク(ISDN)およびその変形などの回路交換ネットワーク、パケット交換ネットワーク、ならびにデジタル加入者線(DSL)が含まれるが、これらに限定されない。1つまたは複数の通信接続1150は、ネットワーク・インターフェース1148をシステム・バス1118に接続するために使用されるハードウェア/ソフトウェアを指す。通信接続1150は、説明を明確にするためにコンピュータ1112の内部に示されているが、コンピュータ1112の外部にある場合もある。ネットワーク・インターフェース1148に接続するためのハードウェア/ソフトウェアは、例示のみを目的として、正規電話グレード・モデム、ケーブル・モデムおよびDSLモデムを含むモデム、ISDNアダプタ、ならびにEthernet(R)カードなどの内部技術および外部技術を含むこともできる。
本発明の実施形態は、任意の可能な技術的詳細の統合レベルでのシステム、方法、装置、またはコンピュータ・プログラム製品あるいはその組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数の媒体)を含むことができる。コンピュータ可読記憶媒体は、命令実行デバイスが使用するための命令を保持および記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、たとえば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、または上記の任意の適切な組合せとすることができるが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、消去可能プログラマブル読取り専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピ・ディスク、パンチカードまたは命令が記録された溝内の隆起構造などの機械的に符号化されたデバイス、および上記の任意の適切な組合せも含まれ得る。コンピュータ可読記憶媒体は、本明細書で使用される場合、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を介して伝播する電磁波(たとえば、光ファイバ・ケーブルを通る光パルス)、または電線を介して送信される電気信号などの、一過性の信号自体であると解釈されるべきではない。
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、または、ネットワーク、たとえばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、またはワイヤレス・ネットワークあるいはその組合せを介して外部コンピュータまたは外部記憶デバイスにダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはその組合せを含むことができる。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、そのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体での記憶のために転送する。本発明の様々な態様の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、または、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語および「C」プログラミング言語もしくは同様のプログラム言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上で、一部がユーザのコンピュータ上で、一部がユーザのコンピュータ上かつ一部がリモート・コンピュータ上で、または全体がリモート・コンピュータ上もしくはサーバ上で実行され得る。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されることができ、または(たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに接続されることができる。いくつかの実施形態では、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して、たとえばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路をカスタマイズすることによって、電子回路がコンピュータ可読プログラム命令を実行することができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照しながら本明細書で説明されている。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方のブロックの組合せは、コンピュータ可読プログラム命令によって実施され得ることが理解されよう。これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/動作を実施する手段を作り出すように、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて、マシンを作り出すものとすることができる。また、これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/動作の態様を実施する命令を含む製造品を含むように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに対して特定の方式で機能するように指示できるものとすることもできる。また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル装置、または他のデバイスで実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/動作を実施するように、コンピュータ実施プロセスを作り出すべくコンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされて、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作行為を実行させるものとすることもできる。
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または一部を表すことがある。いくつかの代替の実装形態では、ブロックに記載された機能は、図に記載された順序とは異なる順序で行うことができる。たとえば、連続して示されている2つのブロックは、実際には、関与する機能に応じて、実質的に同時に実行することができ、またはそれらのブロックは、場合によっては逆の順序で実行することができる。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組合せは、指定された機能または動作を実行するか、あるいは専用ハードウェアとコンピュータ命令との組合せを遂行する専用ハードウェア・ベースのシステムによって実装され得ることにも留意されたい。
本主題について、1つまたは複数のコンピュータ上で動作するコンピュータ・プログラム製品のコンピュータ実行可能命令の一般的なコンテキストで上述したが、当業者には、本開示がまた他のプログラム・モジュールと組み合わせて実施され得ることが理解されよう。一般に、プログラム・モジュールには、特定のタスクを実行する、または特定の抽象データ型を実装する、あるいはその両方を行うルーチン、プログラム、コンポーネント、データ構造などが含まれる。また、当業者には、本発明のコンピュータ実施方法が、シングル・プロセッサまたはマルチプロセッサ・コンピュータ・システム、ミニコンピューティング・デバイス、メインフレーム・コンピュータ、ならびにコンピュータ、ハンドヘルド・コンピューティング・デバイス(たとえば、PDA、電話)、マイクロプロセッサ・ベースのまたはプログラム可能なコンシューマ向けのまたは産業用の電子機器などを含む他のコンピュータ・システム構成で実施され得ることが理解されよう。例示した態様は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境においても実施され得る。しかしながら、本開示のすべてではないとしてもいくつかの態様は、スタンドアロン・コンピュータ上で実施され得る。分散コンピューティング環境では、プログラム・モジュールは、ローカルおよびリモート両方のメモリ・ストレージ・デバイスに配置され得る。
「コンポーネント」、「システム」、「プラットフォーム」、「インターフェース」などの用語は、本出願で使用される場合、1つまたは複数の特定の機能性を有するコンピュータ関連のエンティティ、または演算マシンに関連するエンティティを指すか、またはそれらを含むか、あるいはその両方である場合がある。本明細書で開示されるエンティティは、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかとすることができる。たとえば、コンポーネントは、プロセッサ上で動作するプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、またはコンピュータあるいはその組合せとすることができるが、これらに限定されない。例として、サーバ上で動作するアプリケーションとそのサーバの両方を、コンポーネントとすることができる。1つまたは複数のコンポーネントがプロセスまたは実行スレッドあるいはその両方内に存在することができ、コンポーネントは、1つのコンピュータ上に局在しているか、または2つ以上のコンピュータ間に分散しているか、あるいはその両方である場合がある。別の例では、それぞれのコンポーネントは、様々なデータ構造が記憶された様々なコンピュータ可読媒体から実行することができる。コンポーネントは、1つまたは複数のデータ・パケット(たとえば、ローカル・システムまたは分散システム内の別のコンポーネントと、またはインターネットなどのネットワークを経由して他のシステムと、あるいはその両方と信号を介して対話する1つのコンポーネントからのデータ)を有する信号などに従って、ローカルまたはリモートあるいはその両方のプロセスを介して通信することができる。別の例として、コンポーネントは、プロセッサによって実行されるソフトウェアまたはファームウェア・アプリケーションによって動作する電気回路または電子回路によって動作する機械部品によって提供される特定の機能を有する装置とすることができる。このような場合、プロセッサは装置の内部にあっても外部にあってもよく、ソフトウェアまたはファームウェア・アプリケーションの少なくとも一部を実行することができる。さらに別の例として、コンポーネントは、機械部品なしで電子コンポーネントを介して特定の機能を提供する装置とすることができ、電子コンポーネントは、電子コンポーネントの機能を少なくとも部分的に与えるソフトウェアまたはファームウェアを実行するプロセッサまたは他の手段を含むことができる。一態様では、コンポーネントは、たとえばクラウド・コンピューティング・システム内の仮想マシンを介して電子コンポーネントをエミュレートすることができる。
さらに、「または」という用語は、排他的な「または」ではなく、包含的な「または」を意味するように意図されている。すなわち、特に指定のない限り、または文脈から明らかでない限り、「XはAまたはBを使用する」は、自然な包括的置換のうちのいずれかを意味するように意図されている。すなわち、XがAを使用するか、XがBを使用するか、またはXがAとBの両方を使用する場合、これらの例はいずれも「XはAまたはBを使用する」を満たしていることになる。さらに、本明細書および添付の図面で使用する冠詞「1つの(a)」および「1つの(an)」は、特に指定のない限り、または文脈から単数形を対象とすることが明らかでない限り、一般に、「1つまたは複数」を意味すると解釈されるべきである。「例」または「例示的」という用語あるいはその両方は、本明細書で使用される場合、例、事例、または例示としての役割を果たすものとして利用される。誤解を避けるために、本明細書に開示されている主題は、そのような例に限定されない。さらに、「例」または「例示的」という用語あるいはその両方として本明細書に記載した態様または設計はいずれも、必ずしも他の態様または設計よりも好ましいまたは有利であると解釈されるべきではなく、当業者に知られている同等の例示的な構造および技法を排除することを意味するものでもない。
「プロセッサ」という用語は、本明細書で使用される場合、シングルコア・プロセッサ、ソフトウェア・マルチスレッド実行能力を有するシングル・プロセッサ、マルチコア・プロセッサ、ソフトウェア・マルチスレッド実行能力を有するマルチコア・プロセッサ、ハードウェア・マルチスレッド技術を有するマルチコア・プロセッサ、並列プラットフォーム、および分散型共有メモリを有する並列プラットフォームを含むがこれらに限定されない、実質的に任意のコンピューティング処理ユニットまたはデバイスを指すことがある。さらに、プロセッサは、集積回路、特定用途向け集積回路(ASIC)、デジタル・シグナル・プロセッサ(DSP)、フィールド・プログラマブル、ゲート・アレイ(FPGA)、プログラマブル・ロジック・コントローラ(PLC)、コンプレックス・プログラマブル・ロジック・デバイス(CPLD)、ディスクリート・ゲートもしくはトランジスタ・ロジック、ディスクリート・ハードウェア・コンポーネント、または本明細書に記載の機能を実行するように設計されたそれらの任意の組合せを指すことがある。また、プロセッサは、ユーザ機器の空間使用を最適化するまたは性能を高めるために、分子および量子ドット・ベースのトランジスタ、スイッチ、およびゲートなどであるがこれらに限定されないナノスケール・アーキテクチャを利用することができる。プロセッサは、コンピューティング処理ユニットの組合せとして実装されることも可能である。本開示では、「ストア」、「ストレージ」、「データ・ストア」、「データ・ストレージ」、「データベース」という用語、およびコンポーネントの動作および機能に関連する実質的に任意の他の情報ストレージ・コンポーネントは、「メモリ・コンポーネント」、「メモリ」で具現化されたエンティティ、またはメモリを含むコンポーネントを指すために用いられる。本明細書に記載のメモリまたはメモリ・コンポーネントあるいはその両方が、揮発性メモリもしくは不揮発性メモリのいずれかであり得るか、または揮発性メモリと不揮発性メモリの両方を含み得ることを理解されたい。限定ではなく例として、不揮発性メモリには、読取り専用メモリ(ROM)、プログラマブルROM(PROM)、電気的プログラマブルROM(EPROM)、電気的消去可能ROM(EEPROM)、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ(RAM)(たとえば、強誘電体RAM(FeRAM))が含まれ得る。揮発性メモリには、たとえば、外部キャッシュ・メモリとして機能し得るRAMが含まれ得る。限定ではなく例として、RAMは、シンクロナスRAM(SRAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、ダブル・データ・レートSDRAM(DDR SDRAM)、エンハンストSDRAM(ESDRAM)、シンクリンクDRAM(SLDRAM)、ダイレクト・ラムバスRAM(DRRAM)、ダイレクト・ラムバス・ダイナミックRAM(DRDRAM)、およびラムバス・ダイナミックRAM(RDRAM)などの多くの形式で利用可能である。さらに、本明細書で開示されているシステムまたはコンピュータ実施方法のメモリ・コンポーネントは、これらを含むことに限定されないが、これらおよび他の任意の適切なタイプのメモリを含むように意図されている。
上記で説明したものは、システム、コンピュータ・プログラム製品、およびコンピュータ実施方法の例を含むにすぎない。当然ながら、本開示を説明するために、コンポーネント、製品、またはコンピュータ実施方法あるいはその組合せの考えられるすべての組合せを説明することは不可能であるが、当業者であれば、本開示の多くのさらなる組合せおよび置換えが可能であると理解することができる。さらに、「含む」、「有する」、「所有する」などの用語は、詳細な説明、特許請求の範囲、添付書類および図面で使用される限り、特許請求の範囲において「備える」という用語が移行語として用いられるときに解釈されるように、その「備える」という用語と同様に包括的であるように意図されている。様々な実施形態の説明を例示の目的で提示してきたが、網羅的であること、または開示された実施形態に限定されるようには意図されていない。説明した実施形態の範囲から逸脱することなく、多くの変更形態および変形形態が当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の適用例、または市場で見られる技術を超える技術的改良を最もよく説明するために、あるいは、本明細書で開示される実施形態を当業者が理解できるようにするために選択されたものである。