(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-26
(54)【発明の名称】中間回路演算を使用するハミルトニアン分解
(51)【国際特許分類】
G06N 10/60 20220101AFI20241219BHJP
【FI】
G06N10/60
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024537924
(86)(22)【出願日】2022-12-16
(85)【翻訳文提出日】2024-06-21
(86)【国際出願番号】 EP2022086466
(87)【国際公開番号】W WO2023117795
(87)【国際公開日】2023-06-29
(32)【優先日】2021-12-22
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】110000420
【氏名又は名称】弁理士法人MIP
(72)【発明者】
【氏名】チェン、エドワード
(72)【発明者】
【氏名】エッディン、アンドリュー
(72)【発明者】
【氏名】ヨーデル、テオドール
(57)【要約】
並列化されたもつれ測定を有する量子回路をコンパイルすることに関する技術が提供される。例えば、本明細書に記載された1つまたは複数の実施形態は、コンピュータ実行可能コンポーネントを格納できるメモリを備えることができるシステムを含むことができる。このシステムは、メモリに動作可能に結合され、メモリに格納されたコンピュータ実行可能コンポーネントを実行することができる、プロセッサを備えることもできる。コンピュータ実行可能コンポーネントは、ハイブリッド量子古典アルゴリズムのための1つまたは複数の量子回路をコンパイルすることができる回路コンパイル・コンポーネントを含むことができる。1つまたは複数の量子回路は、もつれ測定を並列化するための中間回路演算を含むことができる。
【特許請求の範囲】
【請求項1】
コンピュータ実行可能コンポーネントを格納するメモリと、
前記メモリに動作可能に結合され、前記メモリに格納された前記コンピュータ実行可能コンポーネントを実行するプロセッサと
を備えているシステムであって、前記コンピュータ実行可能コンポーネントが、
ハイブリッド量子古典アルゴリズムのための1つまたは複数の量子回路をコンパイルする回路コンパイル・コンポーネントを含み、前記1つまたは複数の量子回路が、もつれ測定を並列化するための中間回路演算を含む、システム。
【請求項2】
前記中間回路演算が、中間回路測定および中間回路測定リセットから成る群から選択された少なくとも1つの演算である、請求項1に記載のシステム。
【請求項3】
グループ化アルゴリズムを実行してパウリ文字列を複数のグループに並べ替え、前記もつれ測定を前記複数のグループに割り当てる割り当てコンポーネント
をさらに備える、請求項1または2のいずれかに記載のシステム。
【請求項4】
前記もつれ測定が、ベル基底もつれ測定およびオメガ基底もつれ測定から成る群から選択された少なくとも1つの要素を含む、請求項3に記載のシステム。
【請求項5】
前記ハイブリッド量子古典アルゴリズムを実行する量子コンピュータの測定基底、および前記量子コンピュータの量子ビット・トポロジーを特徴付ける量子ビット接続性グラフに基づいて量子部分回路を生成する部分回路コンポーネント
をさらに備える、請求項3または4のいずれかに記載のシステム。
【請求項6】
前記測定基底、前記量子ビット接続性グラフ、および論理量子ビットと物理的量子ビットの間の関係を特徴付ける単射写像に基づいて、前記複数のグループからの1つのグループに関して、前記1つまたは複数の量子回路のうちの1つの量子回路を生成する計算コンポーネント
をさらに備え、前記量子部分回路が前記量子回路に含まれる、請求項5に記載のシステム。
【請求項7】
コンピュータ実装方法であって、
プロセッサに動作可能に結合されたシステムによって、ハイブリッド量子古典アルゴリズムのための1つまたは複数の量子回路をコンパイルすることであって、前記1つまたは複数の量子回路が、もつれ測定を並列化するための中間回路演算を含む、コンパイルすること
を含む、コンピュータ実装方法。
【請求項8】
前記中間回路演算が、中間回路測定および中間回路測定リセットから成る群から選択された少なくとも1つの演算である、請求項7に記載のコンピュータ実装方法。
【請求項9】
前記システムによって、グループ化アルゴリズムを実行して、パウリ文字列を複数のグループに並べ替えることと、
前記システムによって、前記もつれ測定を前記複数のグループに割り当てることと
をさらに含む、請求項7または8のいずれかに記載のコンピュータ実装方法。
【請求項10】
前記システムによって、前記ハイブリッド量子古典アルゴリズムを実行する量子コンピュータの測定基底、および前記量子コンピュータの量子ビット・トポロジーを特徴付ける量子ビット接続性グラフに基づいて量子部分回路を生成することと、
前記システムによって、前記測定基底、前記量子ビット接続性グラフ、および論理量子ビットと物理的量子ビットの間の関係を特徴付ける単射写像に基づいて、前記複数のグループからの1つのグループに関して、前記1つまたは複数の量子回路のうちの1つの量子回路を生成することと
をさらに含み、前記量子部分回路が前記量子回路に含まれる、請求項9に記載のコンピュータ実装方法。
【請求項11】
コンピュータ実行可能コンポーネントを格納するメモリと、
前記メモリに動作可能に結合され、前記メモリに格納された前記コンピュータ実行可能コンポーネントを実行するプロセッサと
を備えているシステムであって、前記コンピュータ実行可能コンポーネントが、
量子コンピュータの量子ビット・トポロジーに基づいて、中間回路演算および並列化されたもつれ測定を含む1つまたは複数の量子回路をコンパイルする回路コンパイル・コンポーネントを含む、システム。
【請求項12】
ハイブリッド量子古典アルゴリズムを実施するために前記1つまたは複数の量子回路がコンパイルされ、前記中間回路演算が、中間回路測定および中間回路測定リセットから成る群から選択された少なくとも1つの演算である、請求項11に記載のシステム。
【請求項13】
グループ化アルゴリズムを実行してパウリ文字列を複数のグループに並べ替え、前記もつれ測定を前記複数のグループに割り当てる割り当てコンポーネント
をさらに備える、請求項11または12のいずれかに記載のシステム。
【請求項14】
前記量子コンピュータの測定基底、および前記量子ビット・トポロジーを特徴付ける量子ビット接続性グラフに基づいて量子部分回路を生成する部分回路コンポーネント
をさらに備える、請求項13に記載のシステム。
【請求項15】
前記測定基底、前記量子ビット接続性グラフ、および論理量子ビットと物理的量子ビットの間の関係を特徴付ける単射写像に基づいて、前記複数のグループからの1つのグループに関して、前記1つまたは複数の量子回路のうちの1つの量子回路を生成する計算コンポーネント
をさらに備え、前記量子部分回路が前記量子回路に含まれる、請求項14に記載のシステム。
【請求項16】
コンピュータ実装方法であって、
プロセッサに動作可能に結合されたシステムによって、量子コンピュータの量子ビット・トポロジーに基づいて、中間回路演算および並列化されたもつれ測定を含む1つまたは複数の量子回路をコンパイルすること
を含む、コンピュータ実装方法。
【請求項17】
ハイブリッド量子古典アルゴリズムを実施するために前記1つまたは複数の量子回路がコンパイルされ、前記中間回路演算が、中間回路測定および中間回路測定リセットから成る群から選択された少なくとも1つの演算である、請求項16に記載のコンピュータ実装方法。
【請求項18】
前記システムによって、グループ化アルゴリズムを実行して、パウリ文字列を複数のグループに並べ替えることと、
前記システムによって、前記もつれ測定を前記複数のグループに割り当てることと
をさらに含む、請求項16または17のいずれかに記載のコンピュータ実装方法。
【請求項19】
前記システムによって、前記量子コンピュータの測定基底、および前記量子ビット・トポロジーを特徴付ける量子ビット接続性グラフに基づいて量子部分回路を生成すること
をさらに含む、請求項18に記載のコンピュータ実装方法。
【請求項20】
前記測定基底、前記量子ビット接続性グラフ、および論理量子ビットと物理的量子ビットの間の関係を特徴付ける単射写像に基づいて、前記複数のグループからの1つのグループに関して、前記1つまたは複数の量子回路のうちの1つの量子回路を生成する計算コンポーネント
をさらに含み、前記量子部分回路が前記量子回路に含まれる、請求項19に記載のコンピュータ実装方法。
【請求項21】
量子回路をコンパイルするためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、プログラム命令が具現化されているコンピュータ可読ストレージ媒体を備えており、前記プログラム命令が、プロセッサによって実行可能であり、前記プロセッサに、
ハイブリッド量子古典アルゴリズムのための1つまたは複数の量子回路をコンパイルさせ、前記1つまたは複数の量子回路が、もつれ測定を並列化するための中間回路演算を含む、コンピュータ・プログラム製品。
【請求項22】
前記中間回路演算が、中間回路測定および中間回路測定リセットから成る群から選択された少なくとも1つの演算である、請求項21に記載のコンピュータ・プログラム製品。
【請求項23】
前記プログラム命令が、前記プロセッサに、
グループ化アルゴリズムを実行して、パウリ文字列を複数のグループに並べ替えることと、
前記もつれ測定を前記複数のグループに割り当てることと
をさらに行わせる、請求項21または22のいずれかに記載のコンピュータ・プログラム製品。
【請求項24】
前記プログラム命令が、前記プロセッサに、
前記ハイブリッド量子古典アルゴリズムを実行する量子コンピュータの測定基底、および前記量子コンピュータの量子ビット・トポロジーを特徴付ける量子ビット接続性グラフに基づいて量子部分回路を生成すること
をさらに行わせる、請求項23に記載のコンピュータ・プログラム製品。
【請求項25】
前記プログラム命令が、前記プロセッサに、
前記測定基底、前記量子ビット接続性グラフ、および論理量子ビットと物理的量子ビットの間の関係を特徴付ける単射写像に基づいて、前記複数のグループからの1つのグループに関して、前記1つまたは複数の量子回路のうちの1つの量子回路を生成すること
をさら行わせ、前記量子部分回路が前記量子回路に含まれる、請求項24に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、1つまたは複数のハイブリッド量子古典アルゴリズムのための量子コンピュータに対する呼び出しの数を減らすことに関連しており、より詳細には、中間回路測定または中間回路測定リセットあるいはその両方などの1つまたは複数の中間回路演算(mid-circuit operations)を利用して、1つまたは複数のもつれ測定を並列化し、ハイブリッド量子古典アルゴリズムを実行することに関連している。
【背景技術】
【0002】
ハミルトニアンの期待値(例えば、行列積の和)を計算するために、ハイブリッド量子古典アルゴリズム(例えば、変分量子固有ソルバー(VQE:variational quantum eigensolver)アルゴリズム)が採用され得る。古典的コンピュータは、本質的に、行列のサイズ、に関する制限を有し、それによって、分析され得るハミルトニアンのサイズに関する制限を有する。例えば、ハミルトニアンの基底状態を導き出す行列積の和の計算を促進するために、量子コンピュータが採用され得る。計算をさらに促進するために、量子コンピュータは、もつれ測定を利用して、単一の量子回路によって複数の行列の値を決定することができる。
【0003】
しかし、所与の量子コンピュータについては、量子ビット間の接続性に1つまたは複数の制限があることがある。例えば、各パウリ項が、量子コンピュータのハードウェア回路内の最近隣ではない量子ビットに関連付けられることがあり、それが、もつれ測定の実装を妨げる。そのような状況では、もつれ測定を実施するための従来の手段は、複数のスワップ・ゲートの使用を含むことができる。しかし、スワップ・ゲートの追加は、演算コストを増やすか、効率を低下させるか、またはエラーの可能性を高める結果をもたらすか、あるいはその組み合わせになる可能性がある。
【発明の概要】
【0004】
以下に、本発明の1つまたは複数の実施形態の基本的理解を可能にするための概要を示す。この概要は、主要な要素または重要な要素を特定するよう意図されておらず、特定の実施形態の範囲または特許請求の範囲を正確に説明するよう意図されていない。この概要の唯一の目的は、後で提示されるより詳細な説明のための前置きとして、概念を簡略化された形態で提示することである。本明細書に記載された1つまたは複数の実施形態では、1つまたは複数のハイブリッド量子古典アルゴリズムのための1つまたは複数の量子回路をコンパイルすることができるシステム、コンピュータ実装方法、装置、またはコンピュータ・プログラム製品、あるいはその組み合わせが説明される。
【0005】
実施形態によれば、システムが提供される。このシステムは、コンピュータ実行可能コンポーネントを格納できるメモリを備えているシステムを含むことができる。このシステムは、メモリに動作可能に結合され、メモリに格納されたコンピュータ実行可能コンポーネントを実行することができる、プロセッサを備えることもできる。コンピュータ実行可能コンポーネントは、ハイブリッド量子古典アルゴリズムのための1つまたは複数の量子回路をコンパイルすることができる回路コンパイル・コンポーネントを含むことができる。1つまたは複数の量子回路は、もつれ測定を並列化するための中間回路演算を含むことができる。そのようなシステムの利点は、量子ビット接続性が低い量子コンピュータを使用する、もつれ測定の使用であることができる。
【0006】
一部の実施形態によれば、中間回路演算は、中間回路測定および中間回路測定リセットの群から選択された少なくとも1つの演算である。そのようなシステムの利点は、追加のもつれ測定を可能にする1つまたは複数のテレポーテーション演算またはスワップ・ゲートあるいはその両方を実装するための中間回路測定リセットの使用であることができる。
【0007】
実施形態によれば、コンピュータ実装方法が提供される。コンピュータ実装方法は、プロセッサに動作可能に結合されたシステムによって、ハイブリッド量子古典アルゴリズムのための1つまたは複数の量子回路をコンパイルすることを含むことができる。1つまたは複数の量子回路は、もつれ測定を並列化するための中間回路演算を含むことができる。そのようなコンピュータ実装方法の利点は、順方向(feed-forward)または全対全(all-to-all)の量子ビット接続性に関連する追加の複雑さなしの既存の量子ビット・ハードウェアへの適用であることができる。
【0008】
一部の実施形態によれば、コンピュータ実装方法は、システムによって、グループ化アルゴリズムを実行してパウリ文字列(Pauli strings,パウリ紐、パウリ弦)を複数のグループに並べ替えることをさらに含むことができる。また、コンピュータ実装方法は、システムによって、もつれ測定を複数のグループに割り当てることを含むことができる。そのようなコンピュータ実装方法の利点は、1つまたは複数のハイブリッド量子古典アルゴリズムを実行する場合の量子コンピュータに対する呼び出しの数の削減であることができる。
【0009】
別の実施形態によれば、システムが提供される。このシステムは、コンピュータ実行可能コンポーネントを格納できるメモリを備えているシステムを含むことができる。このシステムは、メモリに動作可能に結合され、メモリに格納されたコンピュータ実行可能コンポーネントを実行することができる、プロセッサを備えることもできる。コンピュータ実行可能コンポーネントは、量子コンピュータの量子ビット・トポロジーに基づいて、中間回路演算および並列化されたもつれ測定を含むことができる、1つまたは複数の量子回路をコンパイルすることができる回路コンパイル・コンポーネントを含むことができる。そのようなシステムの利点は、量子コンピュータに必要とされる較正の量の削減であることができる(例えばこれは、少なくとも、量子コンピュータに対する呼び出しの数が減らされ得るためである)。
【0010】
一部の例によれば、このシステムは、グループ化アルゴリズムを実行してパウリ文字列を複数のグループに並べ替え、もつれ測定を複数のグループに割り当てることができる、割り当てコンポーネントを備えることもできる。このシステムは、量子コンピュータの測定基底、および量子ビット・トポロジーを特徴付けることができる量子ビット接続性グラフに基づいて、量子部分回路を生成することができる、部分回路コンポーネントをさらに備えることができる。そのようなシステムの利点は、単一の量子回路に含まれるもつれ測定の数の増加であることができる。
【0011】
別の実施形態によれば、コンピュータ実装方法が提供される。コンピュータ実装方法は、プロセッサに動作可能に結合されたシステムによって、量子コンピュータの量子ビット・トポロジーに基づいて、中間回路演算および並列化されたもつれ測定を含むことができる、1つまたは複数の量子回路をコンパイルすることを含むことができる。そのようなコンピュータ実装方法の利点は、採用された量子コンピュータの1つまたは複数のハードウェア制約を考慮しながらハイブリッド量子古典アルゴリズムを実行するために必要とされる量子回路の数の削減であることができる。
【0012】
一部の例では、ハイブリッド量子古典アルゴリズムを実装するために、1つまたは複数の量子回路がコンパイルされ得る。また、中間回路演算は、中間回路測定および中間回路測定リセットの群から選択された少なくとも1つの演算であることができる。そのようなコンピュータ実装方法の利点は、ハイブリッド量子古典アルゴリズムの実行時間の削減であることができる。
【0013】
実施形態によれば、量子回路をコンパイルするためのコンピュータ・プログラム製品が提供される。コンピュータ・プログラム製品は、プログラム命令が具現化されているコンピュータ可読ストレージ媒体を備えることができる。プログラム命令は、プロセッサによって実行可能であり、プロセッサに、ハイブリッド量子古典アルゴリズムのための1つまたは複数の量子回路をコンパイルさせることができる。1つまたは複数の量子回路は、もつれ測定を並列化するための中間回路演算を含むことができる。そのようなコンピュータ・プログラム製品の利点は、ansatz波動関数(ansatz wavefunction)の単一のコピーに対して実行され得るもつれ測定の数の増加であることができる。
【0014】
一部の例によれば、プログラム命令は、プロセッサに、グループ化アルゴリズムを実行してパウリ文字列を複数のグループに並べ替え、もつれ測定を複数のグループに割り当てることを、さらに行わせる。また、プログラム命令は、プロセッサに、ハイブリッド量子古典アルゴリズムを実行する量子コンピュータの測定基底、および量子コンピュータの量子ビット・トポロジーを特徴付けることができる量子ビット接続性グラフに基づいて、量子部分回路を生成させることができる。さらに、プログラム命令は、プロセッサに、測定基底、量子ビット接続性グラフ、および論理量子ビットと物理的量子ビットの間の関係を特徴付けることができる単射写像に基づいて、複数のグループからの1つのグループに関して、1つまたは複数の量子回路のうちの1つの量子回路を生成させることができる。さらに、量子部分回路が量子回路に含まれ得る。そのようなコンピュータ・プログラム製品の利点は、ハイブリッド量子古典アルゴリズムを実行するために必要とされる計算リソースの削減であることができる。
【図面の簡単な説明】
【0015】
【
図1】本明細書に記載された1つまたは複数の実施形態に従って、1つまたは複数の中間回路演算を使用して1つまたは複数のもつれ測定を並列化することができる1つまたは複数の量子回路をコンパイルすることができる例示的な非限定的システムのブロック図を示す図である。
【
図2】本明細書に記載された1つまたは複数の実施形態に従って、1つまたは複数のパウリ文字列を1つまたは複数のもつれ測定に割り当てるために使用され得る例示的な非限定的プロトコルを示す図である。
【
図3】本明細書に記載された1つまたは複数の実施形態に従って、量子コンピュータの量子ビット接続性に基づいて1つまたは複数のもつれ測定を実施することができる1つまたは複数の量子部分回路を生成することができる例示的な非限定的システムのブロック図を示す図である。
【
図4】本明細書に記載された1つまたは複数の実施形態に従って、量子コンピュータの量子ビット接続性に基づいて1つまたは複数のもつれ測定を実施するために生成され得る例示的な非限定的量子部分回路を示す図である。
【
図5】本明細書に記載された1つまたは複数の実施形態に従って、1つまたは複数の量子コンピュータに対する最小限の呼び出しを使用して1つまたは複数のハイブリッド量子古典アルゴリズムを実行できる1つまたは複数の量子回路をコンパイルすることができる例示的な非限定的システムのブロック図を示す図である。
【
図6】本明細書に記載された1つまたは複数の実施形態に従って、中間回路量子演算(例えば、中間回路測定、測定リセット、またはテレポーテーション、あるいはその組み合わせ)を使用してもつれ測定を並列化するために生成され得る例示的な非限定的量子回路を示す図である。
【
図7】本明細書に記載された1つまたは複数の実施形態に従って、もつれ測定を並列化し、1つまたは複数の量子コンピュータに対する呼び出しを減らすために実施され得る例示的な非限定的量子回路の変更を示す図である。
【
図8】本明細書に記載された1つまたは複数の実施形態に従って、コンパイルされた1つまたは複数の量子回路によって達成され得る効率の向上を示すことができる例示的な非限定的グラフおよび表の図である。
【
図9】本明細書に記載された1つまたは複数の実施形態に従って、1つまたは複数の中間回路演算を使用して1つまたは複数のもつれ測定を並列化することができる1つまたは複数の量子回路のコンパイルを容易にすることができる例示的な非限定的コンピュータ実装方法のフロー図を示す図である。
【
図10】本明細書に記載された1つまたは複数の実施形態に従ってクラウド・コンピューティング環境を示す図である。
【
図11】本明細書に記載された1つまたは複数の実施形態に従って抽象モデル・レイヤを示す図である。
【
図12】本明細書に記載された1つまたは複数の実施形態を容易にすることができる例示的な非限定的動作環境を示すブロック図である。
【発明を実施するための形態】
【0016】
以下の詳細な説明は、例にすぎず、実施形態、または実施形態の適用もしくは使用、あるいはその両方を制限するよう意図されていない。さらに、先行する「背景技術」または「発明の概要」のセクション、あるいは「発明を実施するための形態」のセクションで提示された、いずれかの明示された、または暗示された情報によって制約されるという意図はない。
【0017】
ここで、図面を参照して1つまたは複数の実施形態が説明され、図面全体を通じて、類似する参照番号が、類似する要素を参照するために使用されている。以下の説明では、説明の目的で、1つまたは複数の実施形態を十分に理解できるように、多数の特定の詳細が示されている。しかし、これらの特定の詳細がなくても、さまざまな事例において、1つまたは複数の実施形態が実践され得るということは明らかである。
【0018】
量子回路をコンパイルする他の実装に伴う問題(例えば、多数のスワップ・ゲートの追加が演算コストを増やすか、効率を低下させるか、またはエラーの可能性を高める結果をもたらすか、あるいはその組み合わせになる可能性がある)を前提として、本開示は、量子コンピュータ・ハードウェア内で物理的に互いに直接接続されていない量子ビット間のもつれ状態を測定するために中間回路演算を採用することによって、これらの問題のうちの1つまたは複数に対する解決策を作り出すために実施され得る。本明細書に記載された1つまたは複数の実施形態は、有利なことに、1つまたは複数のハイブリッド量子古典アルゴリズムを実行する場合に古典的コンピュータから量子コンピュータに対して行われる呼び出しの数を減らすことができる。さらに、本明細書に記載されたさまざまな実施形態は、最近隣の量子ビット以外の量子ビット間のもつれ測定を実施することができる。それによって、本明細書に記載された1つまたは複数の実施形態は、1つまたは複数のハイブリッド量子古典アルゴリズム(例えば、VQEアルゴリズム)が、量子ビット接続性が減らされた1つまたは複数の量子コンピュータ(例えば、超伝導量子ビット、ドット、または光子を利用する量子コンピュータ)上で実行されることを可能にすることができる。例えば、本明細書に記載されたさまざまな実施形態は、1つまたは複数の量子回路を実行する量子コンピュータの測定基底または量子ビット・トポロジーあるいはその両方に基づいて、並列化されたもつれ測定を実施することができる。
【0019】
本発明のさまざまな実施形態は、効率的、効果的、かつ自律的な(例えば、直接的な人間による誘導のない)量子回路のコンパイルを容易にする、コンピュータ処理システム、コンピュータ実装方法、装置、またはコンピュータ・プログラム製品、あるいはその組み合わせを対象にすることができる。例えば、本明細書に記載された1つまたは複数の実施形態は、もつれ測定を、1つまたは複数のハイブリッド量子古典アルゴリズムによる測定のために指定されたパウリ文字列に割り当てることができる。さらに、本明細書に記載された1つまたは複数の実施形態は、1つまたは複数のハイブリッド量子古典アルゴリズムを実行する1つまたは複数の量子コンピュータの測定基底または量子ビット接続性あるいはその両方に基づいて、1つまたは複数の量子部分回路を生成することができる。さらに、本明細書に記載されたさまざまな実施形態は、1つまたは複数の量子部分回路を使用し、1つまたは複数の中間回路演算(例えば、中間回路測定、測定リセット)を利用して(例えば、1つまたは複数のテレポーテーション演算またはスワップ・ゲートあるいはその両方によって)もつれ測定を並列化することによって、量子コンピュータに対する呼び出しの数を減らすことができる、1つまたは複数の量子回路を生成することができる。
【0020】
コンピュータ処理システム、コンピュータ実装方法、装置、またはコンピュータ・プログラム製品、あるいはその組み合わせは、本質的に高度に技術的であり、抽象的ではなく、人間による一連の精神的活動として実行できない問題(例えば、量子ビット接続性が低い量子コンピュータにおいてもつれ測定を可能にすること)を解決するための、ハードウェアまたはソフトウェアあるいはその両方を採用する。例えば、1人または複数の個人は、量子コンピュータの隔たっている量子ビット間のもつれ測定を実施するための中間回路演算を使用して量子回路をコンパイルすることができない。
【0021】
また、本明細書に記載された1つまたは複数の実施形態は、ansatz波動関数の単一のコピーに対して実行され得るもつれ測定の数を増やすために、中間回路演算(例えば、中間回路測定または測定リセットあるいはその両方の演算)を利用することによって、ハイブリッド量子古典アルゴリズムのための量子回路の従来の生成を上回る技術的改良を構成することができ、それによって、順方向または全対全の量子ビット接続性によって必要とされる追加の複雑さを伴わずに、もつれ測定が既存の量子ビット・ハードウェアに適用されることを可能にする。さらに、本明細書に記載された1つまたは複数の実施形態は、並列化されたもつれ測定を利用して、量子コンピュータに対する呼び出しの数を減らし、それによって、アルゴリズムの合計実行時間を短縮し、(例えば、量子コンピュータ・ハードウェアの動作および較正におけるずれを減らすことによって)計算結果の精度を改善することによる、実用的応用を有することができる。本明細書に記載された1つまたは複数の実施形態は、ハイブリッド量子古典アルゴリズムを実行する1つまたは複数の量子コンピュータの量子ビット接続性に基づいて、並列化されたもつれ測定を含むことができる1つまたは複数の量子回路のコンパイルを制御することができる。
【0022】
図1は、1つまたは複数のハイブリッド量子古典アルゴリズム(例えば、1つまたは複数のVQEアルゴリズム)のための1つまたは複数の量子回路をコンパイルすることができる例示的な非限定的システム100のブロック図を示しており、これらの量子回路は、1つまたは複数の中間回路演算を利用して複数のもつれ測定を並列化することができる。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。本発明のさまざまな実施形態におけるシステム(例えば、システム100など)、装置、またはプロセスの態様は、1つまたは複数のマシン内で具現化された(例えば、1つまたは複数のマシンに関連付けられた1つまたは複数のコンピュータ可読媒体内で具現化された)1つまたは複数の機械実行可能コンポーネントを構成することができる。そのようなコンポーネントは、1つまたは複数のマシン(例えば、コンピュータ、コンピューティング・デバイス、仮想マシン、または同様のもの、あるいはその組み合わせ)によって実行された場合に、マシンに、説明された動作を実行させることができる。さまざまな実施形態では、標準的な意味の量子力学に従って、パウリ演算子が「I」、「X」、「Z」、または「Y」によって示され得る。
【0023】
図1に示されているように、システム100は、1つまたは複数のサーバ102、1つまたは複数のネットワーク104、入力デバイス106、または量子コンピュータ108、あるいはその組み合わせを備えることができる。サーバ102は、回路コンパイル・コンポーネント110、アルゴリズム・コンポーネント111、または通信コンポーネント112、あるいはその組み合わせを備えることができる。回路コンパイル・コンポーネント110は、割り当てコンポーネント114をさらに備えることができる。また、サーバ102は、少なくとも1つのメモリ116を備えるか、または他の方法で少なくとも1つのメモリ116に関連付けられ得る。サーバ102は、回路コンパイル・コンポーネント110(および例えば、関連するコンポーネント)、アルゴリズム・コンポーネント111、通信コンポーネント112、メモリ116、またはプロセッサ120、あるいはその組み合わせなどの、ただしこれらに限定されない、さまざまなコンポーネントに結合することができる、システム・バス118をさらに備えることができる。
図1ではサーバ102が示されているが、他の実施形態では、さまざまな種類の複数のデバイスが、
図1に示されている特徴に関連付けられるか、または
図1に示されている特徴を備えることができる。さらに、サーバ102は、1つまたは複数のクラウド・コンピューティング環境と通信することができる。
【0024】
1つまたは複数のネットワーク104は、セルラー・ネットワーク、広域ネットワーク(WAN:wide area network)(例えば、インターネット)またはローカル・エリア・ネットワーク(LAN:local area network)を含むが、これらに限定されない、有線ネットワークおよび無線ネットワークを含むことができる。例えば、サーバ102は、例えばセルラー方式、WAN、ワイヤレス・フィディリティ(Wi-Fi(登録商標):wireless fidelity)、WiMax(登録商標)、WLAN、またはBluetooth(登録商標)技術、あるいはその組み合わせなどを含むが、これらに限定されない、実質的に任意の望ましい有線技術または無線技術を使用して、1つまたは複数の入力デバイス106および/または量子コンピュータ108と(およびその逆方向に)通信することができる。さらに、示されている実施形態では、回路コンパイル・コンポーネント110またはアルゴリズム・コンポーネント111あるいはその両方を1つまたは複数のサーバ102上に設けることができるが、システム100のアーキテクチャがそのように制限されないということが理解されるべきである。例えば、回路コンパイル・コンポーネント110(または回路コンパイル・コンポーネント110の1つまたは複数のコンポーネント)またはアルゴリズム・コンポーネント111あるいはその両方は、別のサーバ・デバイス、クライアント・デバイス、または同様のもの、あるいはその組み合わせなどの、別のコンピュータ・デバイスに位置することができる。
【0025】
1つまたは複数の入力デバイス106は、パーソナル・コンピュータ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、携帯電話(例えば、スマートフォン)、(例えば、プロセッサを備えている)コンピュータ化されたタブレット、スマート・ウォッチ、キーボード、タッチ・スクリーン、マウス、または同様のもの、あるいはその組み合わせなどを含むことができるが、これらに限定されない、1つまたは複数のコンピュータ化されたデバイスを含むことができる。1つまたは複数の入力デバイス106は、1つまたは複数のハミルトニアン123またはハイブリッド量子古典アルゴリズム122あるいはその両方をシステム100に入力するために採用されることが可能であり、それによって、(例えば、直接接続を介して、または1つまたは複数のネットワーク104を介して、あるいはその両方によって)前述のデータをサーバ102と共有する。例えば、1つまたは複数の入力デバイス106は、(例えば、直接接続を介して、または1つまたは複数のネットワーク104を介して、あるいはその両方によって)データを通信コンポーネント112に送信することができる。さらに、1つまたは複数の入力デバイス106は、システム100によって生成された1つまたは複数の出力をユーザに提示できる1つまたは複数のディスプレイを備えることができる。例えば、1つまたは複数のディスプレイは、陰極管ディスプレイ(CRT:cathode tube display)、発光ダイオード・ディスプレイ(LED:light-emitting diode display)、電界発光ディスプレイ(ELD:electroluminescent display)、プラズマ・ディスプレイ・パネル(PDP:plasma display panel)、液晶ディスプレイ(LCD:liquid crystal display)、または有機発光ダイオード・ディスプレイ(OLED:organic light-emitting diode display)、あるいはその組み合わせなどを含むことができるが、これらに限定されない。
【0026】
さまざまな実施形態では、1つまたは複数の入力デバイス106または1つまたは複数のネットワーク104あるいはその両方が、1つまたは複数の設定またはコマンドあるいはその両方をシステム100に入力するために採用されることができる。例えば、本明細書に記載されたさまざまな実施形態では、1つまたは複数の入力デバイス106が、サーバ102または関連するコンポーネントあるいはその両方を動作させるか、または操作するか、あるいはその両方を実行するために採用されることができる。さらに、1つまたは複数の入力デバイス106は、サーバ102または関連するコンポーネントあるいはその両方によって生成された1つまたは複数の出力(例えば、表示、データ、または視覚化、あるいはその組み合わせなど)を表示するために採用されることができる。さらに、1つまたは複数の実施形態では、1つまたは複数の入力デバイス106が、クラウド・コンピューティング環境内に含まれるか、またはクラウド・コンピューティング環境に動作可能に結合されるか、あるいはその両方であることができる。
【0027】
1つまたは複数の実施形態では、1つまたは複数のハイブリッド量子古典アルゴリズム122をシステム100に入力するために、1つまたは複数の入力デバイス106が採用され得る。1つまたは複数のハイブリッド量子古典アルゴリズム122は、定義されたタスクを実行するために、量子コンピューティング・ハードウェアおよび古典的コンピューティング・ハードウェアの組み合わせのための計算ルーチンを記述することができる。例えば、1つまたは複数のハイブリッド量子古典アルゴリズム122は、アルゴリズム・コンポーネント111によって実行されるべき最適化技術または分析技術あるいはその両方と共に、1つまたは複数の量子コンピュータ108によって実行される量子状態の準備および測定を記述することができる。さまざまな実施形態では、1つまたは複数のハイブリッド量子古典アルゴリズム122の定義されたタスクは、例えば、エルミート演算子の基底状態固有ベクトルまたは固有値あるいはその両方を決定することであることができる。さらに、1つまたは複数のハミルトニアン123をシステム100に入力するために、1つまたは複数の入力デバイス106が採用され得る。1つまたは複数のハミルトニアン123は、1つまたは複数のハイブリッド量子古典アルゴリズム122によって分析されることが可能であり、または測定されるパウリ文字列の1つまたは複数の行列を定義することができ、あるいはその両方が可能である。
【0028】
1つまたは複数の実施形態では、回路コンパイル・コンポーネント110は、1つまたは複数のハイブリッド量子古典アルゴリズム122、またはハミルトニアン123、または1つまたは複数の量子コンピュータ108の量子ビット・トポロジー、あるいはその組み合わせに基づいて1つまたは複数の量子回路124をコンパイルすることができる。例えば、回路コンパイル・コンポーネント110は、もつれ測定を、1つまたは複数のハミルトニアン123によって記述されたパウリ文字列のうちの1つまたは複数に割り当てることができる。さらに、回路コンパイル・コンポーネント110は、中間回路演算(例えば、中間回路測定、測定リセット、またはテレポーテーション、あるいはその組み合わせ)を使用して1つまたは複数のハイブリッド量子古典アルゴリズム122を実施する量子回路124をコンパイルすることによって、もつれ測定を実施することができる。本明細書において使用されるとき、「中間回路演算」という用語は、回路の最初の初期化と最後の測定の間に発生することができる1つまたは複数の非ユニタリ演算(例えば、非ユニタリ再初期化演算(non-unitary reinitialization operations)、または非ユニタリ測定演算(non-unitary measurement operations)、あるいはその両方)のことを指すことができる。例示的な中間回路演算は、中間回路測定演算(mid-circuit measurement operations)または中間回路測定リセット演算(mid-circuit measurement reset operations)あるいはその両方を含むことができる。1つまたは複数の量子回路124は、1つまたは複数の量子コンピュータ108の計算ルーチンを記述することができる。例えば、1つまたは複数の量子回路124は、量子データに対する1つまたは複数のコヒーレントな量子演算を表すことができる。さまざまな実施形態では、1つまたは複数の量子回路124は、1つまたは複数のハイブリッド量子古典アルゴリズム122を実行するために1つまたは複数の量子コンピュータ108によって使用される量子ビットの数または量子ビットの接続性あるいはその両方を記述することができる。例えば、1つまたは複数の量子回路124は、1つまたは複数の量子ビットに関して、初期化およびリセット演算(例えば、1つまたは複数の望ましい状態への1つまたは複数の量子ビットの初期化)、量子ゲート(例えば、アダマール・ゲート、位相シフタ・ゲート(phase shifter gates)、制御されたゲート(controlled gate)、制御されないゲート(uncontrolled gate)、位相回転ゲート、制御NOTゲート(CNOT:controlled-NOT)ゲート、単一量子ビット・ゲート、多量子ビット・ゲート、交差共鳴ゲート、または同様のもの、あるいはその組み合わせ)、測定演算、測定リセット演算、または古典的に制御される量子ゲート、あるいはその組み合わせを表すことができる。
【0029】
さらに、アルゴリズム・コンポーネント111は、1つまたは複数のハイブリッド量子古典アルゴリズム122によって定義された古典的コンピューティング計算を実行し、1つまたは複数の量子回路124を1つまたは複数の量子コンピュータ108と共有して、(例えば、量子実行コンポーネント126によって)量子コンピューティング計算を実行することができる。
【0030】
さまざまな実施形態では、1つまたは複数のハイブリッド量子古典アルゴリズム122は、例えば、1つまたは複数のVQEアルゴリズムであることができ、VQEアルゴリズムは、古典的コンピューティング・ハードウェア(例えば、アルゴリズム・コンポーネント111を介する1つまたは複数のサーバ102)と量子コンピューティング・ハードウェア(例えば、量子実行コンポーネント126を介する1つまたは複数の量子コンピュータ108)の間で計算作業を共有して、全量子位相推定アルゴリズムによって必要とされる長いコヒーレンス時間を短縮することができる。VQEアルゴリズムは、ターゲット波動関数の形態に関する1つまたは複数の仮定を使用して初期化され得る。1つまたは複数の仮定に基づいて、1つまたは複数の調整可能なパラメータを含むansatzが構築されることが可能であり、ansatzを生成することができる量子回路124が設計され得る。VQEアルゴリズムの実行全体を通じて、結果として得られるハミルトニアン行列の期待値を最小化するためにansatzのパラメータが変分的に調整され得る。古典的コンピューティング・ハードウェア(例えば、アルゴリズム・コンポーネント111を介する1つまたは複数のサーバ102)は、ハミルトニアン行列の1つまたは複数の項を事前に計算するか、または1つまたは複数の量子回路124のコンパイル中にパラメータを更新するか、あるいはその両方を行うことができる。量子ハードウェア(例えば、量子実行コンポーネント126を介する1つまたは複数の量子コンピュータ108)は、(例えば、現在の反復のansatzのパラメータ値のセットによって定義された)量子状態を準備するか、またはハミルトニアン行列内のさまざまな相互作用項の測定を実行するか、あるいはその両方を行うことができる。状態の準備は、十分な統計データを導出するのに十分な回数、個々の演算子が測定されるまで、複数の反復にわたって繰り返され得る。さらに、量子ハミルトニアンの粒子-正孔のマッピングを使用して、試行波動関数の改善された開始点を生成することによって、VQEアルゴリズムの効率が改善され得る。さらに、電子構造計算に必要とされる量子ビットの数を減らすための方法(例えば、量子ビット・テーパリングなど)は、ハミルトニアンの冗長な自由度を取り除くことができる。
【0031】
例えば、さまざまな実施形態では、1つまたは複数のVQEアルゴリズムによる分析のために、1つまたは複数の初期量子ハミルトニアン123をシステム100に入力するために、1つまたは複数の入力デバイス106が採用され得る。例えば、初期量子ハミルトニアン123は、パウリ行列の和を含むことができるか、またはジョーダン-ウィグナー・エンコーディング(Jordan-Wigner encoding)の1つまたは複数のバージョンを適用することによって取得され得るか、あるいはその両方が可能である。初期量子ハミルトニアン123は、化学系の粒子間相互作用を特徴付けることができ、波動関数を定常固有状態に発達させることができる、分離可能な、または分離不可能な演算子のセットであることができる(例えば、定常固有状態の固有値は、エネルギーである)。1つまたは複数の実施形態では、システム100は、1つまたは複数の特定の分子または原子あるいはその両方の種類/基底のセットの原子(例えば、内部または絶対)座標を使用して初期化されることが可能であり、これらの原子座標から初期量子ハミルトニアン123が導出され得る。
【0032】
さまざまな実施形態では、1つまたは複数の量子コンピュータ108は、(例えば、DiVincenzo基準を満たしながら)計算処理を容易にするために、量子力学の法則(例えば、重ね合わせまたはもつれた量子あるいはその両方)を利用できる量子ハードウェア・デバイスを備えることができる。1つまたは複数の実施形態では、1つまたは複数の量子コンピュータ108は、量子データ・プレーン、制御プロセッサ・プレーン、制御および測定プレーン、または量子ビット技術、あるいはその組み合わせを備えることができる。
【0033】
1つまたは複数の実施形態では、量子データ・プレーンは、物理量子ビットを備えている1つまたは複数の量子回路、量子ビットの位置を固定するための構造、または支援回路、あるいはその組み合わせを含むことができる。支援回路は、例えば、量子ビットの状態の測定を容易にするか、または(例えば、ゲートに基づくシステムの場合に)量子ビットに対するゲート動作を実行するか、あるいはその両方を行うことができる。一部の実施形態では、支援回路は、複数の量子ビットが相互作用することを可能にすることができる有線ネットワークを備えることができる。さらに、有線ネットワークは、直接的電気接続または電磁放射(例えば、光信号、マイクロ波信号、または低周波信号、あるいはその組み合わせ)あるいはその両方を介して、制御信号の送信を容易にすることができる。例えば、支援回路は、1つまたは複数の量子ビットに動作可能に結合された1つまたは複数の超伝導共振器を備えることができる。本明細書において説明されているように、「超伝導」という用語は、アルミニウム(例えば、1.2ケルビンの超伝導臨界温度)またはニオブ(例えば、9.3ケルビンの超伝導臨界温度)などの、超伝導臨界温度以下で超伝導特性を示す材料を特徴付けることができる。さらに、当業者は、本明細書に記載されたさまざまな実施形態において他の超伝導体材料(例えば、水素化リチウム/水素化マグネシウム合金などの水素化物超伝導体)が使用され得るということを認識するであろう。
【0034】
1つまたは複数の実施形態では、制御プロセッサ・プレーンは、量子ゲートの演算または測定あるいはその両方のハミルトニアン・シーケンスを識別するか、またはトリガーするか、あるいはその両方を行うことができ、このシーケンスは、量子アルゴリズム(例えば、ハイブリッド量子古典アルゴリズムの一部)を実施するために、(例えば、アルゴリズム・コンポーネント111を介してサーバ102などのホスト・プロセッサによって提供された)プログラムを実行する。例えば、制御プロセッサ・プレーンは、制御および測定プレーンのために、コンパイルされたコードをコマンドに変換することができる。1つまたは複数の実施形態では、制御プロセッサ・プレーンは、1つまたは複数の量子エラー修正アルゴリズムをさらに実行することができる。
【0035】
1つまたは複数の実施形態では、制御および測定プレーンは、実行される量子演算を記述し得る、制御プロセッサ・プレーンによって生成されたデジタル信号を、量子データ・プレーンにおいて1つまたは複数の量子ビットに対して演算を実行するためのアナログ制御信号に変換することができる。また、制御および測定プレーンは、データ・プレーンにおける量子ビットの1つまたは複数のアナログ測定出力を、システム100の他のコンポーネントと(例えば、制御プロセッサ・プレーンを介して、例えば、アルゴリズム・コンポーネント111などと)共有され得る古典的バイナリ・データに変換することができる。
【0036】
当業者は、さまざまな量子ビット技術が1つまたは複数の量子コンピュータ108の1つまたは複数の量子ビットの基礎を提供できるということを認識するであろう。2つの例示的な量子ビット技術は、捕捉イオン量子ビットまたは超伝導量子ビットあるいはその両方を含むことができる。例えば、超伝導量子ビット(例えば、超伝導量子干渉デバイス(SQUID:superconducting quantum interference devices)など)は、(例えば、電子電荷または磁束の量子化された状態に起因する)量子化されたエネルギー・レベルを示すようにミリケルビン温度に冷却され得る、リソグラフィで定義された電子回路であることができる。超伝導量子ビットは、トランズモン量子ビットなどの、ジョセフソン接合に基づくものであってよい。また、超伝導量子ビットは、マイクロ波制御電子機器に適合することができ、ゲートに基づく技術または統合された極低温制御と共に利用され得る。さらなる例示的な量子ビット技術は、光子量子ビット、量子ドット量子ビット、ゲートに基づく中性原子量子ビット、半導体量子ビット(例えば、光学的にゲーティングされるか、または電気的にゲーティングされる)、またはトポロジー的量子ビット、あるいはその組み合わせなどを含むことができるが、これらに限定されない。
【0037】
1つまたは複数の実施形態では、通信コンポーネント112は、ハイブリッド量子古典アルゴリズムを実行するために、アルゴリズム・コンポーネント111から1つまたは複数の量子回路124を受信し、1つまたは複数の量子回路124を(例えば、直接的電気接続を介して、または1つまたは複数のネットワーク104を介して、あるいはその両方を介して)1つまたは複数の量子コンピュータ108と共有することができる。さらに、通信コンポーネント112は、(例えば、直接的電気接続を介して、または1つまたは複数のネットワーク104を介して、あるいはその両方を介して)量子実行コンポーネント126とアルゴリズム・コンポーネント111の間、またはその逆、あるいはその両方の計算結果データの共有を容易にすることができる。例えば、さまざまな実施形態では、回路コンパイル・コンポーネント110は、1つまたは複数のハイブリッド量子古典アルゴリズム122を実行するために、1つまたは複数の量子コンピュータ108によって(例えば、量子実行コンポーネント126によって)実行され得る1つまたは複数の量子回路124をコンパイルすることができる。本明細書に記載された1つまたは複数の実施形態に従って、各量子回路124が、1つまたは複数の量子コンピュータ108に対する各呼び出しに関連付けられることが可能であり、量子コンピュータ108は、量子回路124を実行して結果データを生成することができ、この結果データは、特定のタスクを完了するためにアルゴリズム・コンポーネント111によって(例えば、ハイブリッド量子古典アルゴリズム122に従って)さらに処理され得る。
【0038】
さまざまな実施形態では、割り当てコンポーネント114は、もつれ測定を、1つまたは複数のハミルトニアン123によって定義されたパウリ文字列に割り当てることができる。例えば、パウリ文字列は、1つまたは複数の量子回路124に従って、1つまたは複数のハイブリッド量子古典アルゴリズム122または1つまたは複数の量子コンピュータ108あるいはその両方によって分析され得る。割り当てられたもつれ測定は、複数のパウリ文字列が量子コンピュータ108に対する同一の呼び出しで(例えば、同じ量子回路124によって)実施されることを可能にすることができる。例えば、割り当てコンポーネント114は、1つまたは複数の一致する特性(例えば、量子ビット接続性など)を使用してパウリ文字列をグループ化することができる。別の例では、割り当てコンポーネント114は、類似性に基づいてパウリ文字列をグループ化することができ、定義されたしきい値より大きい類似性値を有しているパウリ文字列が、一緒にグループ化される。1つまたは複数の実施形態では、グループのサイズは、1つまたは複数の量子コンピュータ108の量子ビットの数または量子ビット接続性あるいはその両方に依存することができる。さらに、割り当てコンポーネント114は、1つまたは複数のもつれ測定リスト128から、1つまたは複数のもつれ測定をグループに割り当てることができる。1つまたは複数の実施形態では、回路コンパイル・コンポーネント110は、割り当てコンポーネント114によって定義されたグループごとに、量子回路124を生成することができる。
【0039】
例えば、1つまたは複数のもつれ測定リスト128は、1つまたは複数のメモリ116に格納され得る。1つまたは複数のもつれ測定リスト128は、パウリ文字列の測定を並列化するために使用され得る複数のもつれ測定を定義することができる。1つまたは複数の実施形態では、1つまたは複数のもつれ測定リスト128は、例えば、物理的に最も近いパウリ文字列から、物理的に最も遠く離れているパウリ文字列まで、順序付けられ得る。例えば、量子ビットq0、q1、q2、またはq3、あるいはその組み合わせの線形チェーンを前提として、もつれ測定(XXII,YYII,ZZII)は、もつれ測定リスト128上でもつれ測定(XXIIX,YYIIY,ZIIZ)より高くなることができ、パウリ文字列の順序付けは、線形チェーン内の量子ビットの物理的配置に対応することができる。別の例では、順序付けは、量子ビット接続性を表す量子ビットの1つまたは複数の格子(例えば、量子ビット接続性を特徴付ける六方格子)に基づくことができる。もつれ測定の例としては、ベル基底もつれ測定、オメガ基底もつれ測定(Omega basis entangled measurements)、エンタングリオンもつれ測定(Entanglion entangled measurements)、2量子ビット以上のもつれ測定、グリーンバーガー=ホーン=ツァイリンガー(Greenberger-Horne-Zeilinger)状態、W状態、または同様のもの、あるいはその組み合わせが挙げられ得るが、これらに限定されない。さらに、さまざまな実施形態では、割り当てコンポーネント114は、もつれ測定の割り当てを記述する、1つまたは複数のデータベース、リスト、テーブル、チャートまたは同様のもの、あるいはその組み合わせを生成することができる。例えば、割り当てコンポーネント114は、(例えば、1つまたは複数のメモリ116に格納された)1つまたは複数の割り当てリスト130を生成することができ、1つまたは複数の割り当てリスト130は、割り当てコンポーネント114によって実行される1つまたは複数の割り当てを定義し得る。
【0040】
図2は、本明細書に記載された1つまたは複数の実施形態に従って、割り当てコンポーネント114によって実施され得る例示的な非限定的疑似コード202の図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。
図2に示されているように、「P」はパウリ文字列のリストであることができ、「H」は1つまたは複数の割り当てリスト130であることができ、「E」はもつれ測定の1つのリスト(例えば、1つまたは複数のもつれ測定リスト128)であることができ、「G」は割り当てコンポーネント114によって生成された1つまたは複数のグループであることができ、または「e」はもつれ測定の1つまたは複数の要素であることができ、あるいはその組み合わせであることができる。
【0041】
1つまたは複数の実施形態では、割り当てコンポーネント114は、1つまたは複数の発見的アルゴリズムを使用して、パウリ文字列のグループ化を容易にすることができる。例えば、例示的な疑似コード202は、最大次数優先彩色(LDFC:largest degree first coloring)アルゴリズムを使用してグループ化を容易にする。しかし、割り当てコンポーネント114のアーキテクチャは、LDFCアルゴリズムを使用する実施形態に限定されず、1つまたは複数の代替のグループ化アルゴリズム(例えば、最大優先アルゴリズム、再帰的最大優先アルゴリズム(recursive largest-first algorithms)、量子ビット単位の交換アルゴリズム(qubit-wise commuting algorithms)、交換アルゴリズム、非交換アルゴリズム、または同様のもの、あるいはその組み合わせ)を使用する他の実施形態も予想される。1つまたは複数の実施形態では、1つまたは複数の量子コンピュータ108に対する呼び出しの数をさらに減らすために、割り当てコンポーネント114によって使用される1つまたは複数の発見的アルゴリズムが、割り当てコンポーネント114によって生成されるグループの数を最小限に抑えることを容易にすることができる(例えば、各グループが、量子回路124に関連付けられ、各量子回路124が、1つまたは複数の量子コンピュータ108に対する呼び出しに関連付けられる)。さらに、グループの数を最小限に抑えることは、1つまたは複数の量子回路124において必要とされるもつれ測定の数の削減をもたらすこともできる。
【0042】
図3は、本明細書に記載された1つまたは複数の実施形態に従って、部分回路コンポーネント302をさらに備えている例示的な非限定的回路コンパイル・コンポーネント110の図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。さまざまな実施形態では、部分回路コンポーネント302は、もつれ測定のうちの1つまたは複数を実施するために、1つまたは複数の量子回路124に含まれ得る1つまたは複数の量子部分回路304を生成することができる。1つまたは複数の実施形態では、1つまたは複数の量子部分回路304が、1つまたは複数のメモリ116に格納されるか、または(例えば、
図3に示されているような)回路コンパイル・コンポーネント110の1つまたは複数の関連するコンポーネントによって取り出されるか、あるいはその両方が可能である。
【0043】
1つまたは複数の実施形態では、1つまたは複数の量子コンピュータ108の量子ビット接続性が、1つまたは複数の量子ビット接続性グラフ306によって表され得る。例えば、1つまたは複数の量子ビット接続性グラフ306は、1つまたは複数の量子コンピュータ108のハードウェアまたはハードウェア接続あるいはその両方を表すことができる。例えば、1つまたは複数の量子ビット接続性グラフ306は、1つまたは複数の量子コンピュータ108内に含まれる物理的量子ビット、または1つまたは複数の量子コンピュータ108によって使用される量子ビット接続性、あるいはその両方を表すことができる。例えば、1つまたは複数の量子コンピュータ108の量子ビットは、量子ビット接続を表すノード間の線を使用して、1つまたは複数の量子ビット接続性グラフ306内のノードとして表され得る。さまざまな実施形態では、1つまたは複数の量子ビット接続性グラフ306は、1つまたは複数の入力デバイス106または量子コンピュータ108あるいはその両方を介してシステム100に入力され得る。
【0044】
さらに、1つまたは複数のパウリ測定基底リスト(Pauli measurement bases lists)305をシステム100に入力するために、1つまたは複数の入力デバイス106または量子コンピュータ108あるいはその両方が採用されることが可能であり、1つまたは複数のパウリ測定基底リスト305は、1つまたは複数の量子コンピュータ108の1つまたは複数の測定基底を表すことができる。例えば、1つまたは複数の量子コンピュータ108のネイティブなハードウェアは、2量子ビット・ゲートに基づくことができ、それによって、1つまたは複数の量子コンピュータ108の測定基底は、1つまたは複数の量子コンピュータ108に関連付けられた1つまたは複数のパウリ測定基底リスト305から表されるような、単一量子ビット測定基底(single-qubit measurement basis)および2量子ビット測定基底(two-qubit measurement basis)を含むことができる。別の例では、1つまたは複数の量子コンピュータ108のネイティブなハードウェアは、3つ以上の量子ビットを含む量子ゲートに基づくことができ、それによって、1つまたは複数の量子コンピュータ108の測定基底は、1つまたは複数のパウリ測定基底リスト305から表されるような、単一量子ビット測定基底、2量子ビット測定基底、および1つまたは複数の追加の測定基底を含むことができる。
【0045】
2つ以上の量子ビットを含む測定基底ごとに、部分回路コンポーネント302は、1つまたは複数の量子ビット接続性グラフ306に基づいて量子ビット間のもつれ測定を実施することができる1つまたは複数の量子部分回路304を生成することができる。例えば、1つまたは複数の量子ビット接続性グラフ306は、対象となる量子ビット間の1つまたは複数の経路(例えば、接続線、中間ノード、または隣接ノード、あるいはその組み合わせの集合)を記述することができる。1つまたは複数の量子コンピュータ108の特定の測定基底に従って、部分回路コンポーネント302は、一連の量子演算を1つまたは複数の量子部分回路304にコンパイルすることができ、一連の量子演算は、1つまたは複数の量子ビット接続性グラフ306の対象となる経路を通って、測定対の1つまたは複数の対象となる量子ビットを移動することができる。例えば、一連の量子演算は、量子ゲート(例えば、スワップ・ゲート)、量子テレポーテーション、測定演算(例えば、ベル測定)、スタビライザ、および回復演算(例えば、データ量子ビットのセット間のもつれ量子状態を維持することができる演算)、動的でカップリング演算、アルゴリズム的演算(例えば、位相推定、グローバー検索、または同様のもの、あるいはその組み合わせ)、または同様のもの、あるいはその組み合わせを含むことができるが、これらに限定されない。
【0046】
図4は、本明細書に記載された1つまたは複数の実施形態に従って、部分回路コンポーネント302によって生成され得る例示的な非限定的量子部分回路304a、304b、または304c、あるいはその組み合わせの図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。
図4は、1つまたは複数の量子コンピュータ108が2量子ビット測定基底「m」を有する事例に関する。例えば、mは[XX,ZZ]に等しい可能性がある。さらに、単一量子ビット測定は、測定演算の前に適切な単一量子ビット・クリフォード・ゲートを挿入することによって実施され得る。ここで、「L」は1つまたは複数の量子ビット接続性グラフ304のターゲット経路「P」の長さであり、部分回路コンポーネント302は、ターゲット経路Pに沿って測定対の第1の量子ビットを移動するために、(例えば、第1の例示的な量子部分回路304aに示されているような)テレポーテーションのfloor(L/2)回の使用および(例えば、第2の例示的な量子部分回路304bに示されているような)単一量子ビット・スワップ・ゲートのL%2回の使用を採用することができる。さらに、部分回路コンポーネント302は、経路P内の最後の量子ビットおよび測定対の第2の量子ビットにおいて(例えば、第3の例示的な量子部分回路304cに示されているような)ベル測定回路を適用することができる。
【0047】
図5は、本明細書に記載された1つまたは複数の実施形態に従って、計算コンポーネント502をさらに備えている例示的な非限定的回路コンパイル・コンポーネント110の図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。さまざまな実施形態では、計算コンポーネント502は、割り当てコンポーネント114によって生成されたパウリ文字列グループの各々について、量子回路124を生成することができる。さらに、生成された量子回路124は、1つまたは複数の量子コンピュータ108の測定基底または量子ビット接続性あるいはその両方に基づいて、割り当てられたもつれ測定を可能にするための1つまたは複数の中間回路演算を含むことができる。
【0048】
さまざまな実施形態では、計算コンポーネント502は、1つまたは複数のパウリ測定基底リスト305、1つまたは複数の量子ビット接続性グラフ306、または1つまたは複数の単射写像504、あるいはその組み合わせを入力として受け取ることができる。1つまたは複数の単射写像504は、(例えば、1つまたは複数のハイブリッド量子古典アルゴリズム122の)論理量子ビットと(例えば、1つまたは複数の量子コンピュータ108の)物理的量子ビットの間の1つまたは複数の関係を表すことができる。例えば、物理的量子ビットは、1つまたは複数の単射写像504において頂点として表され得る。1つまたは複数の実施形態では、1つまたは複数の単射写像504は、1つまたは複数のハイブリッド量子古典アルゴリズム122に従って、1つまたは複数の論理量子ビットがどの物理的量子ビットに対応するかを表すことができる。さまざまな実施形態では、1つまたは複数の単射写像504は、1つまたは複数のハイブリッド量子古典アルゴリズム122に含まれることが可能であり、または1つまたは複数の入力デバイス106を介してシステム100に別々に入力されることが可能であり、あるいはその両方が可能である。
【0049】
図6は、本明細書に記載された1つまたは複数の実施形態に従って、例示的な非限定的疑似コード600または計算コンポーネント502によって生成され得る第1の例示的な量子回路124aあるいはその両方の図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。疑似コード600では、「f」は1つまたは複数の単射写像504であることができ、「G」は1つまたは複数の量子ビット接続性グラフ306であることができ、「V」は1つまたは複数の量子ビット接続性グラフ306内の物理的量子ビットを表す頂点であることができ、「M」は1つまたは複数の課せられた測定であることができ、「m」は1つまたは複数のパウリ測定基底リスト305からの特定の測定基底であることができ、「C」は計算コンポーネント502によって生成されている量子回路124であることができ、「q」は量子ビット接続性グラフ306の対応する第1の頂点「v」を有する第1の物理的量子ビットであることができ、「q’’」は量子ビット接続性グラフ306の対応する第2の頂点「v’」を有する第2の物理的量子ビットであることができ、「T’’」は「q」と「q」の間の経路上の量子ビットのリストを含むことができ、「M’」はループの反復において完了されるM
0からの測定のリストであることができ、「multiQubitMeasurement(m,P)」は本明細書に記載されたさまざまな実施形態に従って1つまたは複数の量子部分回路304を生成するために部分回路コンポーネント302によって実行される1つまたは複数のアルゴリズムであることができる。
【0050】
図6に示されているように、計算コンポーネント502は、単一量子ビット測定に関連付けられた量子回路124の一部の生成を開始することができ、その後、対処された単一量子ビット測定を適用可能なパウリ測定基底リスト305から除去する。単一量子ビット測定が完了した後に、測定された量子ビットは、1つまたは複数のその後のもつれ測定を容易にするために、残りの量子ビットのための補助量子ビットとして機能することができる(例えば、多量子ビット・パウリ測定を可能にするために、補助量子ビットを介して量子ビット状態がテレポートされ得る)。例えば、(例えば、疑似コード600でGとして表された)1つまたは複数の量子ビット接続性グラフ306からの1つまたは複数のターゲット経路Pは、前に測定された量子ビットなどの補助量子ビット間の量子状態テレポーテーションを表すことができる。その後、計算コンポーネント502は、もつれ測定による多量子ビット測定に関して量子回路124の一部を生成することができ、最近隣の量子ビットを含むもつれ測定から開始して、スワップ・ゲートまたはテレポーテーションあるいはその両方などの1つまたは複数の量子演算を利用することができるもつれ測定に進み、もつれ測定の量子ビット対に関連付けられた量子ビット接続性グラフ306のターゲット経路に沿って測定を移動する。
【0051】
例えば、計算コンポーネント502によって、疑似コード600および本明細書に記載されたさまざまな実施形態に従って、2量子ビット測定基底を含む1つまたは複数の量子コンピュータ108に関して、第1の例示的な量子回路124aが生成され得る。
図6に示されているように、ハイブリッド量子古典アルゴリズム122が、例えば、1つまたは複数のハイブリッド量子古典アルゴリズム122の1つまたは複数のansatz波動関数のコピーとして、量子回路124(例えば、第1の例示的な量子回路124a)に組み込まれ得る。さらに、第1の例示的な量子回路124aの部分602は、最近隣の量子ビットの中間回路もつれ測定をことができる。その後、第1の例示的な量子回路124aの部分604は、中間回路測定リセット演算を含むことができる。さらに、第1の例示的な量子回路124aの部分606は、1つまたは複数のテレポーテーション演算またはスワップ・ゲートあるいはその両方によって可能にされるもつれ測定を含むことができる。例えば、部分602、604、または606、あるいはその組み合わせは、部分回路コンポーネント302によって生成された1つまたは複数の量子部分回路304(例えば、第1の例示的な量子部分回路304a、第2の例示的な量子部分回路304b、または第3の例示的な量子部分回路304c、あるいはその組み合わせなど)のコンパイルを含むことができる。また、第1の例示的な量子回路124aに示されている、1つまたは複数のエコー・シーケンスは、部分602の中間回路測定または部分604の中間回路測定リセット演算あるいはその両方と連携して、1つまたは複数の未使用部分(idling portion)608において未使用状態であることができる。さらに、1つまたは複数の実施形態では、1つまたは複数の量子回路124の時刻同期は、第1の例示的な量子回路124aに示されている時刻同期より制限的でないことができる。例えば、第1の例示的な量子回路124aに関して、部分602内に含まれている測定は、同時に、または時間において連続的に実行され得る。
【0052】
図7は、本明細書に記載された1つまたは複数の実施形態に従って、回路コンパイル・コンポーネント110によって生成され得る例示的な非限定的第2の量子回路124bの図を、比較回路702と共に示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。第2の例示的な量子回路124bおよび比較回路702は、4つの量子ビットを備えている、2量子ビット測定基底を含む1つまたは複数の量子コンピュータ108を使用してVQEアルゴリズムを実行し、水素化リチウム分子のエネルギーを見つけることに関することができる。関連するハミルトニアン123は、100個のパウリ文字列を含むことができる。テンソル積基底(TBP:tensor product basis)のパウリ文字列グループ化だけを使用してVQEアルゴリズムを実行し、1つまたは複数の量子コンピュータ108への25個の回路(例えば、呼び出し)を得ることができる。比較回路702は、最近隣のベル状態測定だけを利用して、呼び出しを17回に減らすが、比較回路702は、指定された量子コンピュータ108の量子ビット・トポロジーを考慮することを無視する可能性がある。本明細書に記載されたさまざまな実施形態に従って、第2の例示的な量子回路124bは、量子コンピュータ108の量子ビット・トポロジーに基づいて、ベル状態測定およびテレポートされたベル状態測定と共にパウリ文字列のTBPグループ化を利用して、呼び出しを16回に減らすことができる。例えば、第2の例示的な量子回路124bは、(例えば、
図7に示されているように)602の中間回路測定および604の中間回路測定リセットの後に、1つまたは複数のテレポートされたベル状態測定を部分606に含むことができる。
【0053】
図8は、本明細書に記載されたさまざまな実施形態に従って、回路コンパイル・コンポーネント110によって達成可能な呼び出しの削減の大きさが、ハミルトニアン123のサイズまたは1つまたは複数のハイブリッド量子古典アルゴリズム122の複雑さあるいはその両方と共にどのように変化するかを示すことができる、例示的な非限定的グラフ802および表804の図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。グラフ802では、線806は、どの回路最適化技術も利用せずに、量子ビット接続性が制限されて、量子コンピュータ108上でVQEアルゴリズムを実行することを表すことができる。線808は、TBPを利用してパウリ文字列をグループ化し、量子コンピュータ108に対する呼び出しを減らす、量子コンピュータ108上でVQEアルゴリズムを実行することを表すことができる。線810は、回路コンパイル・コンポーネント110を利用して、中間回路測定演算また中間回路測定リセット演算あるいはその両方を含んでいる量子回路124を生成し、量子コンピュータ108の量子ビット・トポロジーに基づくベル状態測定と共に、TBPグループ化などの並列化されたもつれ測定を可能にする、量子コンピュータ108上でVQEアルゴリズムを実行することを表すことができる。グラフ802に示されているように、回路コンパイル・コンポーネント110は、比較のTBP手法を上回る、回路(例えば、量子回路124)の数における11~36%の削減を達成することができる。
【0054】
表804は、4個の量子ビットおよび12個の量子ビットを備えている量子コンピュータ108上で水素化リチウム分子および水分子を分析するためのVQEアルゴリズムの実行中に利用される呼び出し(すなわち、量子回路)の数を示している。パウリ文字列グループ化またはもつれ測定あるいはその両方なしで、水素化リチウム分子を分析することは、量子コンピュータ108に対する100回の呼び出しを含む。TBPを採用することによって、呼び出しを25回に減らすことができ、回路コンパイル・コンポーネント110を介する(例えば、中間回路測定演算または中間回路測定リセット演算あるいはその両方によって可能にされる)ベル状態測定と共にTBPを採用することによって、量子コンピュータ108の量子ビット・トポロジーを考慮しながら、呼び出しを16回にさらに減らすことができる。パウリ文字列グループ化またはもつれ測定あるいはその両方なしで、水分子を分析することは、量子コンピュータ108に対する550回の呼び出しを含む。TBPを採用することによって、呼び出しを100回に減らすことができ、回路コンパイル・コンポーネント110を介する(例えば、中間回路測定演算または中間回路測定リセット演算あるいはその両方によって可能にされる)ベル状態測定と共にTBPを採用することによって、量子コンピュータ108の量子ビット・トポロジーを考慮しながら、呼び出しを89回にさらに減らすことができる。
【0055】
図9は、本明細書に記載された1つまたは複数の実施形態に従って、1つまたは複数の量子コンピュータ108の量子ビット・トポロジーに基づいてもつれ測定を並列化することができる1つまたは複数の量子回路124のコンパイルを容易にすることができる例示的な非限定的コンピュータ実装方法900のフロー図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。
【0056】
902で、コンピュータ実装方法900は、プロセッサ120に動作可能に結合されたシステム100によって、(例えば、割り当てコンポーネント114を介して)パウリ文字列を複数のグループに並べ替えるためのグループ化アルゴリズムを実行することを含むことができる。また、コンピュータ実装方法900は、システム100によって、(例えば、割り当てコンポーネント114を介して)もつれ測定を複数のグループに割り当てることを含むことができる。例えば、1つまたは複数のハイブリッド量子古典アルゴリズム122によって分析される1つまたは複数のハミルトニアン123によって、パウリ文字列が定義され得る。
【0057】
906で、コンピュータ実装方法900は、システム100によって、(例えば、部分回路コンポーネント302を介して)1つまたは複数の量子コンピュータ108の測定基底および量子コンピュータ108の量子ビット・トポロジーを特徴付けることができる1つまたは複数の量子ビット接続性グラフ306に基づいて1つまたは複数の量子部分回路304を生成することを含むことができる。さまざまな実施形態では、1つまたは複数のパウリ測定基底リスト305によって測定基底が定義され得る。例えば、906で、第1の例示的な量子部分回路302a、第2の例示的な量子部分回路302b、または第3の例示的な量子部分回路302c、あるいはその組み合わせが生成され得る。908で、コンピュータ実装方法900は、システム100によって、(例えば、計算コンポーネント502を介して)測定基底、量子ビット接続性グラフ306、または論理量子ビットと物理的量子ビットの間の関係を特徴付けることができる1つまたは複数の単射写像504、あるいはその組み合わせに基づいて、902で生成された複数のグループからの1つのグループに関して、量子回路124を生成することを含むことができる。さらに、906で生成された1つまたは複数の量子部分回路304が、908で生成された量子回路124に含まれ得る。
【0058】
910で、コンピュータ実装方法900は、システム100によって、(例えば、回路コンパイル・コンポーネント110を介して)902で生成された、関連する量子回路124を有さない追加のパウリ文字列グループが存在するかどうかを判定することができる。関連する量子回路124を有さない追加のパウリ文字列グループが存在する場合、コンピュータ実装方法900は、追加のパウリ文字列グループのうちの1つについてステップ908を繰り返し、追加の量子回路124を生成することができる。関連する量子回路124を有さない追加のパウリ文字列グループが存在しない場合、コンピュータ実装方法900は912に進むことができる。912で、コンピュータ実装方法900は、システム100によって、(例えば、回路コンパイル・コンポーネント110を介して)1つまたは複数のハイブリッド量子古典アルゴリズム122を実行するために、量子回路124のうちの1つまたは複数をコンパイルすることができ、1つまたは複数の量子回路124は、もつれ測定を並列化するための1つまたは複数の中間回路演算(例えば、中間回路測定演算または中間回路測定リセット演算あるいはその両方)を含むことができる。
【0059】
本開示にはクラウド・コンピューティングに関する詳細な説明が含まれているが、本明細書において示された内容の実装は、クラウド・コンピューティング環境に限定されないと理解されるべきである。本発明の実施形態は、現在既知であるか、または今後開発される任意のその他の種類のコンピューティング環境と組み合わせて実装できる。
【0060】
クラウド・コンピューティングは、構成可能な計算リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供モデルであり、管理上の手間またはサービス・プロバイダとのやりとりを最小限に抑えて、これらのリソースを迅速にプロビジョニングおよび解放することができる。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つのデプロイメント・モデルを含むことができる。
【0061】
特徴は、次のとおりである。
【0062】
オンデマンドのセルフ・サービス:クラウドの利用者は、サーバの時間およびネットワーク・ストレージなどの計算能力を一方的に、サービス・プロバイダとの人間的なやりとりを必要とせず、必要に応じて自動的にプロビジョニングすることができる。
【0063】
幅広いネットワーク・アクセス:クラウドの能力は、ネットワークを経由して利用可能であり、標準的なメカニズムを使用してアクセスできるため、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による利用を促進する。
【0064】
リソース・プール:プロバイダの計算リソースは、プールされ、マルチテナント・モデルを使用して複数の利用者に提供される。さまざまな物理的および仮想的リソースが、要求に従って動的に割り当ておよび再割り当てされる。場所に依存しないという感覚があり、利用者は通常、提供されるリソースの正確な場所に関して管理することも知ることもないが、さらに高い抽象レベルでは、場所(例えば、国、州、またはデータセンター)を指定できる場合がある。
【0065】
迅速な順応性:クラウドの能力は、迅速かつ柔軟に、場合によっては自動的にプロビジョニングされ、素早くスケールアウトし、迅速に解放されて素早くスケールインすることができる。プロビジョニングに使用できる能力は、利用者には、多くの場合、任意の量をいつでも無制限に購入できるように見える。
【0066】
測定されるサービス:クラウド・システムは、計測機能を活用することによって、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザのアカウント)に適した抽象レベルで、リソースの使用を自動的に制御および最適化する。リソースの使用状況は監視、制御、および報告することができ、利用されるサービスのプロバイダと利用者の両方に透明性が提供される。
【0067】
サービス・モデルは、次のとおりである。
【0068】
SaaS(Software as a Service):利用者に提供される能力は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションの利用である。それらのアプリケーションは、Webブラウザ(例えば、Webベースの電子メール)などのシン・クライアント・インターフェイスを介して、さまざまなクライアント・デバイスからアクセスできる。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能を含む基盤になるクラウド・インフラストラクチャを、限定的なユーザ固有のアプリケーション構成設定を行う可能性を除き、管理することも制御することもない。
【0069】
PaaS(Platform as a Service):利用者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、利用者が作成または取得したアプリケーションをクラウド・インフラストラクチャにデプロイすることである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、デプロイされたアプリケーション、および場合によってはアプリケーション・ホスティング環境の構成を制御することができる。
【0070】
IaaS(Infrastructure as a Service):利用者に提供される能力は、処理、ストレージ、ネットワーク、およびその他の基本的な計算リソースのプロビジョニングであり、利用者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをデプロイして実行できる。利用者は、基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、およびデプロイされたアプリケーションを制御することができ、場合によっては、選択されたネットワーク・コンポーネント(例えば、ホスト・ファイアウォール)を限定的に制御できる。
【0071】
デプロイメント・モデルは、次のとおりである。
【0072】
プライベート・クラウド:このクラウド・インフラストラクチャは、組織のためにのみ運用される。この組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
【0073】
コミュニティ・クラウド:このクラウド・インフラストラクチャは、複数の組織によって共有され、関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスに関する考慮事項)を共有している特定のコミュニティをサポートする。これらの組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
【0074】
パブリック・クラウド:このクラウド・インフラストラクチャは、一般ユーザまたは大規模な業界団体が使用できるようになっており、クラウド・サービスを販売する組織によって所有される。
【0075】
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、データとアプリケーションの移植を可能にする標準化された技術または独自の技術(例えば、クラウド間の負荷バランスを調整するためのクラウド・バースト)によって固有の実体を残したまま互いに結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合である。
【0076】
クラウド・コンピューティング環境は、ステートレス、疎結合、モジュール性、および意味的相互運用性に重点を置いたサービス指向の環境である。クラウド・コンピューティングの中心になるのは、相互接続されたノードのネットワークを含んでいるインフラストラクチャである。
【0077】
ここで
図10を参照すると、例示的なクラウド・コンピューティング環境1000が示されている。図示されているように、クラウド・コンピューティング環境1000は、クラウドの利用者によって使用されるローカル・コンピューティング・デバイス(例えば、パーソナル・デジタル・アシスタント(PDA:personal digital assistant)または携帯電話1004、デスクトップ・コンピュータ1006、ラップトップ・コンピュータ1008、または自動車コンピュータ・システム1010、あるいはその組み合わせなど)が通信できる1つまたは複数のクラウド・コンピューティング・ノード1002を含んでいる。ノード1002は、互いに通信してよい。ノード1002は、1つまたは複数のネットワーク内で、本明細書において前述されたプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはこれらの組み合わせなどに、物理的または仮想的にグループ化されてよい(図示されていない)。これによって、クラウド・コンピューティング環境1000は、クラウドの利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のないインフラストラクチャ、プラットフォーム、またはSaaS、あるいはその組み合わせを提供できる。
図10に示されたコンピューティング・デバイス1004~1010の種類は、例示のみが意図されており、コンピューティング・ノード1002およびクラウド・コンピューティング環境1000は、任意の種類のネットワークまたはネットワーク・アドレス可能な接続(例えば、Webブラウザを使用した接続)あるいはその両方を経由して任意の種類のコンピュータ制御デバイスと通信することができると理解される。
【0078】
ここで
図11を参照すると、クラウド・コンピューティング環境1000(
図10)によって提供される機能的抽象レイヤのセットが示されている。本明細書に記載の他の実施形態で使用している同様の要素の繰り返しの説明は、簡潔さのために省略する。
図11に示されたコンポーネント、レイヤ、および機能は、例示のみが意図されており、本発明の実施形態がこれらに限定されないということが、あらかじめ理解されるべきである。図示されているように、次のレイヤおよび対応する機能が提供される。
【0079】
ハードウェアおよびソフトウェア・レイヤ1102は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム1104、RISC(Reduced Instruction Set Computer)アーキテクチャベースのサーバ1106、サーバ1108、ブレード・サーバ1110、ストレージ・デバイス1112、ならびにネットワークおよびネットワーク・コンポーネント1114が挙げられる。一部の実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア1116およびデータベース・ソフトウェア1118を含む。
【0080】
仮想化レイヤ1120は、仮想サーバ1122、仮想ストレージ1124、仮想プライベート・ネットワークを含む仮想ネットワーク1126、仮想アプリケーションおよびオペレーティング・システム1128、ならびに仮想クライアント1130などの仮想的実体を提供できる抽象レイヤを備える。
【0081】
一例を挙げると、管理レイヤ1132は、以下で説明される機能を提供することができる。リソース・プロビジョニング1134は、クラウド・コンピューティング環境内でタスクを実行するために利用される計算リソースおよびその他のリソースの動的調達を行う。計測および価格設定1136は、クラウド・コンピューティング環境内でリソースが利用された際のコスト追跡、およびそれらのリソースの利用に対する請求書の作成と送付を行う。一例を挙げると、それらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでよい。セキュリティは、クラウドの利用者およびタスクのID検証を行うとともに、データおよびその他のリソースの保護を行う。ユーザ・ポータル1138は、クラウド・コンピューティング環境へのアクセスを利用者およびシステム管理者に提供する。サービス・レベル管理1140は、必要なサービス・レベルを満たすように、クラウドの計算リソースの割り当てと管理を行う。サービス水準合意(SLA:Service Level Agreement)計画および実行1142は、今後の要求が予想されるクラウドの計算リソースの事前準備および調達を、SLAに従って行う。
【0082】
ワークロード・レイヤ1144は、クラウド・コンピューティング環境で利用できる機能の例を示している。このレイヤから提供されてよいワークロードおよび機能の例としては、マッピングおよびナビゲーション1146、ソフトウェア開発およびライフサイクル管理1148、仮想クラスルーム教育の配信1150、データ解析処理1152、トランザクション処理1154、および量子回路124生成1156が挙げられる。本発明のさまざまな実施形態は、
図10および11を参照して説明されたクラウド・コンピューティング環境を利用して、1つまたは複数のハイブリッド量子古典アルゴリズム122を実行するための量子回路124をコンパイルすることができ、量子回路は、中間回路演算および並列化されたもつれ測定を含むことができる。
【0083】
本発明は、任意の可能な統合の技術的詳細レベルで、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読ストレージ媒体を含んでよい。コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・フロッピー(登録商標)ディスク、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル・バーサタイル・ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(登録商標)ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【0084】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【0085】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Smalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide area network)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル・ロジック回路、フィールドプログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
【0086】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【0087】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を含むような特定の方法で、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに機能するように指示できるものであってもよい。
【0088】
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれてもよく、それによって、一連の動作可能なステップを、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で実行させる。
【0089】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【0090】
本明細書に記載されたさまざまな実施形態のその他の背景を提供するために、
図12および以下の説明は、本明細書に記載されたさまざまな実施形態が実装され得る適切なコンピューティング環境1200の概要を示すよう意図されている。実施形態は、1つまたは複数のコンピュータ上で実行されることができるコンピュータ実行可能命令の一般的状況において上で説明されたが、当業者は、実施形態が、他のプログラム・モジュールと組み合わせて、またはハードウェアとソフトウェアの組み合わせとして、あるいはその両方で実装されることもできるということを認識するであろう。
【0091】
通常、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造などを含む。さらに、当業者は、本発明の方法が、シングルプロセッサ・コンピュータ・システムまたはマルチプロセッサ・コンピュータ・システム、ミニコンピュータ、メインフレーム・コンピュータ、モノのインターネット(IoT:Internet of Things)デバイス、分散コンピューティング・システムだけでなく、パーソナル・コンピュータ、ハンドヘルド・コンピューティング・デバイス、マイクロプロセッサベースのコンシューマ・エレクトロニクスまたはプログラマブル・コンシューマ・エレクトロニクスなどを含む、他のコンピュータ・システム構成を使用して実践されることができ、これらの各々が1つまたは複数の関連するデバイスに動作可能に結合され得るということを理解するであろう。
【0092】
本明細書において示された実施形態は、通信ネットワークを介してリンクされたリモート処理デバイスによって特定のタスクが実行される、分散コンピューティング環境内で実践されることもできる。分散コンピューティング環境において、プログラム・モジュールは、ローカルおよびリモートの両方のメモリ・ストレージ・デバイスに配置され得る。例えば、1つまたは複数の実施形態では、コンピュータ実行可能コンポーネントは、1つまたは複数の分散されたメモリ・ユニットを含むことができるか、または1つまたは複数の分散されたメモリ・ユニットから成ることができる、メモリから実行されることができる。本明細書において使用されるとき、「メモリ」および「メモリ・ユニット」という用語は交換可能である。さらに、本明細書に記載された1つまたは複数の実施形態は、コンピュータ実行可能コンポーネントのコードを、分散された方法で、例えば、1つまたは複数の分散されたメモリ・ユニットからのコードを実行するように結合しているか、または協調して動作している複数のプロセッサで、実行することができる。本明細書において使用されるとき、「メモリ」という用語は、1つの位置での単一のメモリまたはメモリ・ユニット、あるいは1つまたは複数の位置での複数のメモリまたはメモリ・ユニットを包含することができる。
【0093】
コンピューティング・デバイスは、通常、コンピュータ可読ストレージ媒体、機械可読ストレージ媒体、または通信媒体、あるいはその組み合わせを含むことができる、さまざまな媒体を含み、本明細書では、次のように2つの用語が互いに異なって使用される。コンピュータ可読記憶媒体または機械可読ストレージ媒体は、コンピュータによってアクセスされることができる任意の使用可能なストレージ媒体であることができ、揮発性媒体および不揮発性媒体、取り外し可能な媒体および取り外し不可能な媒体を両方とも含む。例として、コンピュータ可読ストレージ媒体または機械可読ストレージ媒体は、コンピュータ可読命令または機械可読命令、プログラム・モジュール、構造化データまたは非構造化データなどの情報の格納のための任意の方法または技術に関連して実装されることができるが、これらに限定されない。
【0094】
コンピュータ可読ストレージ媒体は、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM:electrically erasable programmable read only memory)、フラッシュ・メモリまたはその他のメモリ技術、コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、ブルーレイ・ディスク(BD:Blu-ray(登録商標) disc)またはその他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたはその他の磁気ストレージ・デバイス、半導体ドライブまたはその他の半導体ストレージ・デバイス、あるいは望ましい情報を格納するために使用され得るその他の有形の媒体もしくは非一過性の媒体またはその両方を含むことができるが、これらに限定されない。これに関して、本明細書における「有形」または「非一過性」という用語は、ストレージ、メモリ、またはコンピュータ可読媒体に適用されるとき、それ自体が伝搬する一過性の信号のみを修飾語句として除外し、それ自体が単に伝搬する一過性の信号ではないすべての標準的なストレージ、メモリ、またはコンピュータ可読媒体に対する権利を放棄しないと理解されるべきである。
【0095】
コンピュータ可読ストレージ媒体は、媒体によって格納された情報に関するさまざまな動作のために、例えばアクセス要求、クエリ、またはその他のデータ検索プロトコルを介して、1つまたは複数のローカル・コンピューティング・デバイスまたはリモート・コンピューティング・デバイスによってアクセスされることができる。
【0096】
通信媒体は、通常、コンピュータ可読命令、データ構造、プログラム・モジュール、あるいはその他の構造化データまたは非構造化データを、変調データ信号(例えば、搬送波またはその他の搬送機構)などのデータ信号で具現化し、任意の情報配信または輸送媒体を含む。「変調データ信号」という用語は、1つまたは複数の信号内の情報をエンコードするような方法で設定または変更される特性のうちの1つまたは複数を有する信号のことを指す。例として、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、および音響、RF、赤外線、およびその他の無線媒体などの無線媒体を含むが、これらに限定されない。
【0097】
図12を再び参照すると、本明細書に記載された態様のさまざまな実施形態を実装するための例示的な環境1200がコンピュータ1202を含んでおり、コンピュータ1202は、処理ユニット1204、システム・メモリ1206、およびシステム・バス1208を含んでいる。システム・バス1208は、システム・メモリ1206を含むが、これに限定されないシステム・コンポーネントを、処理ユニット1204に結合する。処理ユニット1204は、さまざまな市販されているプロセッサのいずれかであることができる。デュアル・マイクロプロセッサおよびその他のマルチプロセッサ・アーキテクチャが、処理ユニット1204として採用されることもできる。
【0098】
システム・バス1208は、さまざまな市販されているバス・アーキテクチャのいずれかを使用するメモリ・バス(メモリ・コントローラを含むか、または含まない)、ペリフェラル・バス、およびローカル・バスにさらに相互接続することができる複数の種類のバス構造のいずれかであることができる。システム・メモリ1206は、ROM1210およびRAM1212を含んでいる。基本入出力システム(BIOS:basic input/output system)は、ROM、消去可能プログラマブル読み取り専用メモリ(EPROM:erasable programmable read only memory)、EEPROMなどの、不揮発性メモリに格納されることができ、BIOSは、起動などの間にコンピュータ1202内の要素間で情報を転送するのに役立つ基本的なルーチンを含む。RAM1212は、データをキャッシュするためのスタティックRAMなどの高速なRAMを含むこともできる。
【0099】
コンピュータ1202は、内部ハード・ディスク・ドライブ(HDD:hard disk drive)1214(例えば、EIDE、SATA)、1つまたは複数の外部ストレージ・デバイス1216(例えば、磁気フロッピー(登録商標)ディスク・ドライブ(FDD:magnetic floppy disk drive)1216、メモリ・スティックまたはフラッシュ・ドライブ・リーダ、メモリ・カード・リーダ、その組み合わせなど)、および光ディスク・ドライブ1220(例えば、CD-ROMディスク、DVD、BDなどに対して読み取りまたは書き込みを行うことができるドライブ)をさらに含む。内部HDD1214がコンピュータ1202内にあるように示されているが、内部HDD1214は、外部の適切な筐体(図示されていない)内で使用するように構成されることもできる。さらに、環境1200内に示されていないが、HDD1214に加えて、またはHDD1214の代わりに、半導体ドライブ(SSD:solid state drive)が使用されることができる。HDD1214、外部ストレージ・デバイス1216、および光ディスク・ドライブ1220は、HDDインターフェイス1224、外部ストレージ・インターフェイス1226、および光学ドライブ・インターフェイス1228によって、システム・バス1208にそれぞれ接続されることができる。外部ドライブの実装のためのインターフェイス1224は、ユニバーサル・シリアル・バス(USB:Universal Serial Bus)インターフェイス技術、および電気電子技術者協会(IEEE:Institute of Electrical and Electronics Engineers)1394インターフェイス技術のうちの少なくとも1つまたは両方を含むことができる。その他の外部ドライブ接続技術が、本明細書に記載された実施形態の企図に含まれる。
【0100】
ドライブおよびそれらに関連するコンピュータ可読ストレージ媒体は、データ、データ構造、コンピュータ実行可能命令などの不揮発性ストレージを提供する。コンピュータ1202のドライブおよびストレージ媒体は、適切なデジタル形式での任意のデータの格納に対応する。上記のコンピュータ可読ストレージ媒体の説明は各種のストレージ・デバイスに言及しているが、コンピュータによって読み取ることができる他の種類のストレージ媒体が、現在存在しているか、または将来開発されるかに関わらず、例示的な動作環境内で使用されることもできるということ、およびさらに、任意のそのようなストレージ媒体が、本明細書に記載された方法を実行するためのコンピュータ実行可能命令を含むことができるということが、当業者によって理解されるべきである。
【0101】
オペレーティング・システム1230、1つまたは複数のアプリケーション・プログラム1232、その他のプログラム・モジュール1234、およびプログラム・データ1236を含む複数のプログラム・モジュールが、ドライブおよびRAM1212に格納されることができる。オペレーティング・システム、アプリケーション、モジュール、またはデータ、あるいはその組み合わせのすべてまたは一部が、RAM1212にキャッシュされることもできる。本明細書に記載されたシステムおよび方法は、さまざまな市販されているオペレーティング・システムまたはオペレーティング・システムの組み合わせを利用して実装されることができる。
【0102】
コンピュータ1202は、任意選択的に、エミュレーション技術を含むことができる。例えば、ハイパーバイザ(図示されていない)またはその他の媒介が、オペレーティング・システム1230のハードウェア環境をエミュレートすることができ、エミュレートされるハードウェアは、任意選択的に、
図12に示されているハードウェアと異なることができる。そのような実施形態では、オペレーティング・システム1230が、コンピュータ1202でホストされた複数の仮想マシン(VM:virtual machine)のうちの1つのVMを含むことができる。さらに、オペレーティング・システム1230は、Java(登録商標)実行時環境または.NETフレームワークなどの実行時環境をアプリケーション1232に提供することができる。実行時環境は、アプリケーション1232が実行時環境を含んでいる任意のオペレーティング・システム上で実行されることを可能にする、一貫性のある実行環境である。同様に、オペレーティング・システム1230はコンテナをサポートすることができ、アプリケーション1232はコンテナの形態であることができ、コンテナは、例えばアプリケーション用のコード、ランタイム、システム・ツール、システム・ライブラリ、および設定を含んでいる、軽量なスタンドアロンの実行可能なソフトウェアのパッケージである。
【0103】
さらに、コンピュータ1202は、信頼できる処理モジュール(TPM:trusted processing module)などのセキュリティ・モジュールを使用して有効化されることができる。例えば、TPMを使用すると、ブート・コンポーネントは、時間的に次のブート・コンポーネントをハッシュし、保護された値とのハッシュ結果の一致を待機してから、次のブート・コンポーネントを読み込む。このプロセスは、コンピュータ1202のコード実行スタック内の任意の層で行われることができ、例えば、アプリケーション実行レベルで、またはオペレーティング・システム(OS:operating system)カーネル・レベルで適用され、それによって、コード実行の任意のレベルでセキュリティを有効化する。
【0104】
ユーザは、1つまたは複数の有線/無線入力デバイス(例えば、キーボード1238、タッチ・スクリーン1240、およびマウス1242などのポインティング・デバイス)を介して、コマンドおよび情報をコンピュータ1202に入力することができる。その他の入力デバイス(図示されていない)は、マイクロホン、赤外線(IR:infrared)遠隔制御、無線周波(RF:radio frequency)遠隔制御、またはその他の遠隔制御、ジョイスティック、仮想現実コントローラまたは仮想現実ヘッドセットあるいはその両方、ゲーム・パッド、タッチペン、画像入力デバイス(例えば、カメラ)、ジェスチャー・センサ入力デバイス、視覚移動センサ(vision movement sensor)入力デバイス、感情または顔検出デバイス、生体測定入力デバイス(例えば、指紋または虹彩スキャナ)など含むことができる。これらおよびその他の入力デバイスは、多くの場合、システム・バス1208に結合されることができる入力デバイス・インターフェイス1244を介して処理ユニット1204に接続されるが、パラレル・ポート、IEEE1394シリアル・ポート、ゲーム・ポート、USBポート、IRインターフェイス、BLUETOOTH(登録商標)インターフェイスなどの、その他のインターフェイスによって接続されることができる。
【0105】
モニタ1246またはその他の種類のディスプレイ・デバイスが、ビデオ・アダプタ1248などのインターフェイスを介してシステム・バス1208に接続されることもできる。モニタ1246に加えて、コンピュータは通常、スピーカ、プリンタ、または同様のもの、あるいはその組み合わせなどの、他の周辺出力機器(図示されていない)を含む。
【0106】
コンピュータ1202は、有線通信または無線通信あるいはその両方を介するリモート・コンピュータ1250などの1つまたは複数のリモート・コンピュータへの論理接続を使用して、ネットワーク環境内で動作することができる。リモート・コンピュータ1250は、ワークステーション、サーバ・コンピュータ、ルータ、パーソナル・コンピュータ、ポータブル・コンピュータ、マイクロプロセッサベースのエンターテインメント機器、ピア・デバイス、またはその他の一般的なネットワーク・ノードであることができ、通常は、コンピュータ1202に関連して説明された要素のうちの多くまたはすべてを含むが、簡潔にするために、メモリ/ストレージ・デバイス1252のみが示されている。図に示されている論理接続は、ローカル・エリア・ネットワーク(LAN)1254またはさらに大きいネットワーク(例えば、広域ネットワーク(WAN)1256)あるいはその両方との有線接続/無線接続を含む。そのようなLANおよびWANネットワーク環境は、事務所および会社において一般的であり、イントラネットなどの企業全体のコンピュータ・ネットワークを容易にし、それらはすべて、グローバル通信ネットワーク(例えば、インターネット)に接続することができる。
【0107】
コンピュータ1202は、LANネットワーク環境内で使用された場合、有線または無線あるいはその両方の通信ネットワーク・インターフェイスまたはアダプタ1258を介して、ローカル・ネットワーク1254に接続されることができる。アダプタ1258は、LAN1254との有線通信または無線通信を容易にすることができ、LAN1254は、無線モードでアダプタ1258と通信するために配置された無線アクセスポイント(AP:access point)を含むこともできる。
【0108】
コンピュータ1202は、WANネットワーク環境内で使用された場合、モデム1260を含むことができ、またはインターネットを経由するなどのWAN1256を経由して通信を確立するためのその他の手段によって、WAN1256上の通信サーバに接続されることができる。内部または外部に存在する有線デバイスまたは無線デバイスであることができるモデム1260は、入力デバイス・インターフェイス1244を介してシステム・バス1208に接続されることができる。ネットワーク環境内で、コンピュータ1202またはその一部に関連して示されたプログラム・モジュールは、リモート・メモリ/ストレージ・デバイス1252に格納されることができる。示されているネットワーク接続が例であり、コンピュータ間の通信リンクを確立するその他の手段が使用され得るということが、理解されるであろう。
【0109】
コンピュータ1202は、LANネットワーク環境内またはWANネットワーク環境内のいずれかで使用された場合、前述したような外部ストレージ・デバイス1216に加えて、または外部ストレージ・デバイス1216の代わりに、クラウド・ストレージ・システムまたはその他のネットワークベースのストレージ・システムにアクセスすることができる。一般に、コンピュータ1202とクラウド・ストレージ・システムの間の接続は、例えば、それぞれアダプタ1258またはモデム1260によって、LAN1254またはWAN1256を経由して確立されることができる。コンピュータ1202を関連するクラウド・ストレージ・システムに接続するときに、外部ストレージ・インターフェイス1226は、アダプタ1258またはモデム1260あるいはその両方を用いて、他の種類の外部ストレージと同様に、クラウド・ストレージ・システムによって提供されたストレージを管理することができる。例えば、外部ストレージ・インターフェイス1226は、クラウド・ストレージ・ソースがコンピュータ1202に物理的に接続されているかのように、クラウド・ストレージ・ソースへのアクセスを提供するように構成されることができる。
【0110】
コンピュータ1202は、無線通信において動作可能に配置された任意の無線デバイスまたは実体(例えば、プリンタ、スキャナ、デスクトップ・コンピュータまたはポータブル・コンピュータあるはその両方、ポータブル・データ・アシスタント、通信衛星、無線で検出可能なタグに関連付けられた機器のいずれかの部品または位置(例えば、キオスク、新聞売店、商品棚など)、および電話)と通信するよう機能することができる。この通信は、ワイヤレス・フィディリティ(Wi-Fi(登録商標))およびBLUETOOTH(登録商標)無線技術を含むことができる。したがって、この通信は、従来のネットワークと同様に事前に定義された構造であるか、または単に、少なくとも2つのデバイス間のアドホック通信であることができる。
【0111】
前述した内容は、システム、コンピュータ・プログラム製品、およびコンピュータ実装方法の単なる例を含んでいる。当然ながら、本開示を説明する目的で、コンポーネント、製品、またはコンピュータ実装方法、あるいはその組み合わせの考えられるすべての組み合わせについて説明することは不可能であるが、当業者は、本開示の多くのその他の組み合わせおよび並べ替えが可能であるということを認識できる。さらに、「含む」、「有する」、「所有する」などの用語が、発明を実施するための形態、特許請求の範囲、付録、および図面において使用される範囲では、それらの用語は、「備えている」が特許請求における暫定的な用語として使用されるときに解釈されるような、用語「備えている」と同様の方法で、包含的であるよう意図されている。さまざまな実施形態の説明は、例示の目的で提示されているが、網羅的であることは意図されておらず、開示された実施形態に制限されない。記載された実施形態の範囲と精神を逸脱することなく多くの変更および変形が可能であることは、当業者にとって明らかであろう。本明細書で使用された用語は、実施形態の原理、実際の適用、または市場で見られる技術を超える技術的改良を最も適切に説明するため、または他の当業者が本明細書で開示された実施形態を理解できるようにするために選択されている。
【手続補正書】
【提出日】2024-07-01
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータ実行可能コンポーネントを格納するメモリと、
前記メモリに動作可能に結合され、前記メモリに格納された前記コンピュータ実行可能コンポーネントを実行するプロセッサと
を備えているシステムであって、前記コンピュータ実行可能コンポーネントが、
ハイブリッド量子古典アルゴリズムのための1つまたは複数の量子回路をコンパイルする回路コンパイル・コンポーネントを含み、前記1つまたは複数の量子回路が、もつれ測定を並列化するための中間回路演算を含む、システム。
【請求項2】
前記中間回路演算が、中間回路測定および中間回路測定リセットから成る群から選択された少なくとも1つの演算である、請求項1に記載のシステム。
【請求項3】
グループ化アルゴリズムを実行してパウリ文字列を複数のグループに並べ替え、前記もつれ測定を前記複数のグループに割り当てる割り当てコンポーネント
をさらに備える、請求項1または2のいずれかに記載のシステム。
【請求項4】
前記もつれ測定が、ベル基底もつれ測定およびオメガ基底もつれ測定から成る群から選択された少なくとも1つの要素を含む、請求項3に記載のシステム。
【請求項5】
前記ハイブリッド量子古典アルゴリズムを実行する量子コンピュータの測定基底、および前記量子コンピュータの量子ビット・トポロジーを特徴付ける量子ビット接続性グラフに基づいて量子部分回路を生成する部分回路コンポーネント
をさらに備える、請求項
3に記載のシステム。
【請求項6】
前記測定基底、前記量子ビット接続性グラフ、および論理量子ビットと物理的量子ビットの間の関係を特徴付ける単射写像に基づいて、前記複数のグループからの1つのグループに関して、前記1つまたは複数の量子回路のうちの1つの量子回路を生成する計算コンポーネント
をさらに備え、前記量子部分回路が前記量子回路に含まれる、請求項5に記載のシステム。
【請求項7】
コンピュータの処理によるコンピュータ実装方法であって、
プロセッサに動作可能に結合されたシステムによって、ハイブリッド量子古典アルゴリズムのための1つまたは複数の量子回路をコンパイルすることであって、前記1つまたは複数の量子回路が、もつれ測定を並列化するための中間回路演算を含む、コンパイルすること
を含む、コンピュータ実装方法。
【請求項8】
前記中間回路演算が、中間回路測定および中間回路測定リセットから成る群から選択された少なくとも1つの演算である、請求項7に記載のコンピュータ実装方法。
【請求項9】
前記システムによって、グループ化アルゴリズムを実行して、パウリ文字列を複数のグループに並べ替えることと、
前記システムによって、前記もつれ測定を前記複数のグループに割り当てることと
をさらに含む、請求項7または8のいずれかに記載のコンピュータ実装方法。
【請求項10】
前記システムによって、前記ハイブリッド量子古典アルゴリズムを実行する量子コンピュータの測定基底、および前記量子コンピュータの量子ビット・トポロジーを特徴付ける量子ビット接続性グラフに基づいて量子部分回路を生成することと、
前記システムによって、前記測定基底、前記量子ビット接続性グラフ、および論理量子ビットと物理的量子ビットの間の関係を特徴付ける単射写像に基づいて、前記複数のグループからの1つのグループに関して、前記1つまたは複数の量子回路のうちの1つの量子回路を生成することと
をさらに含み、前記量子部分回路が前記量子回路に含まれる、請求項9に記載のコンピュータ実装方法。
【請求項11】
コンピュータ実行可能コンポーネントを格納するメモリと、
前記メモリに動作可能に結合され、前記メモリに格納された前記コンピュータ実行可能コンポーネントを実行するプロセッサと
を備えているシステムであって、前記コンピュータ実行可能コンポーネントが、
量子コンピュータの量子ビット・トポロジーに基づいて、中間回路演算および並列化されたもつれ測定を含む1つまたは複数の量子回路をコンパイルする回路コンパイル・コンポーネントを含む、システム。
【請求項12】
ハイブリッド量子古典アルゴリズムを実施するために前記1つまたは複数の量子回路がコンパイルされ、前記中間回路演算が、中間回路測定および中間回路測定リセットから成る群から選択された少なくとも1つの演算である、請求項11に記載のシステム。
【請求項13】
グループ化アルゴリズムを実行してパウリ文字列を複数のグループに並べ替え、前記もつれ測定を前記複数のグループに割り当てる割り当てコンポーネント
をさらに備える、請求項11または12のいずれかに記載のシステム。
【請求項14】
前記量子コンピュータの測定基底、および前記量子ビット・トポロジーを特徴付ける量子ビット接続性グラフに基づいて量子部分回路を生成する部分回路コンポーネント
をさらに備える、請求項13に記載のシステム。
【請求項15】
前記測定基底、前記量子ビット接続性グラフ、および論理量子ビットと物理的量子ビットの間の関係を特徴付ける単射写像に基づいて、前記複数のグループからの1つのグループに関して、前記1つまたは複数の量子回路のうちの1つの量子回路を生成する計算コンポーネント
をさらに備え、前記量子部分回路が前記量子回路に含まれる、請求項14に記載のシステム。
【請求項16】
コンピュータ実装方法であって、
プロセッサに動作可能に結合されたシステムによって、量子コンピュータの量子ビット・トポロジーに基づいて、中間回路演算および並列化されたもつれ測定を含む1つまたは複数の量子回路をコンパイルすること
を含む、コンピュータ実装方法。
【請求項17】
ハイブリッド量子古典アルゴリズムを実施するために前記1つまたは複数の量子回路がコンパイルされ、前記中間回路演算が、中間回路測定および中間回路測定リセットから成る群から選択された少なくとも1つの演算である、請求項16に記載のコンピュータ実装方法。
【請求項18】
前記システムによって、グループ化アルゴリズムを実行して、パウリ文字列を複数のグループに並べ替えることと、
前記システムによって、前記もつれ測定を前記複数のグループに割り当てることと
をさらに含む、請求項16または17のいずれかに記載のコンピュータ実装方法。
【請求項19】
前記システムによって、前記量子コンピュータの測定基底、および前記量子ビット・トポロジーを特徴付ける量子ビット接続性グラフに基づいて量子部分回路を生成すること
をさらに含む、請求項18に記載のコンピュータ実装方法。
【請求項20】
前記測定基底、前記量子ビット接続性グラフ、および論理量子ビットと物理的量子ビットの間の関係を特徴付ける単射写像に基づいて、前記複数のグループからの1つのグループに関して、前記1つまたは複数の量子回路のうちの1つの量子回路を生成する計算コンポーネント
をさらに含み、前記量子部分回路が前記量子回路に含まれる、請求項19に記載のコンピュータ実装方法。
【請求項21】
量子回路をコンパイルするためのコンピュータ・
プログラムであって
、プロセッサに、
ハイブリッド量子古典アルゴリズムのための1つまたは複数の量子回路をコンパイル
することを実行させるためコンピュータ・プログラムであり、前記1つまたは複数の量子回路が、もつれ測定を並列化するための中間回路演算を含む、コンピュータ・
プログラム。
【請求項22】
量子回路をコンパイルするためのコンピュータ・プログラムであって、プロセッサに、
量子コンピュータの量子ビット・トポロジーに基づいて、中間回路演算および並列化されたもつれ測定を含む1つまたは複数の量子回路をコンパイルすること
を実行させるためのコンピュータ・プログラム。
【請求項23】
請求項21または22に記載のコンピュータ・プログラムをコンピュータ可読に格納する記録媒体。
【国際調査報告】