IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7706546伸長係数のエラー軽減が有効化された量子コンピュータ
<>
  • 特許-伸長係数のエラー軽減が有効化された量子コンピュータ 図1
  • 特許-伸長係数のエラー軽減が有効化された量子コンピュータ 図2
  • 特許-伸長係数のエラー軽減が有効化された量子コンピュータ 図3A
  • 特許-伸長係数のエラー軽減が有効化された量子コンピュータ 図3B
  • 特許-伸長係数のエラー軽減が有効化された量子コンピュータ 図4
  • 特許-伸長係数のエラー軽減が有効化された量子コンピュータ 図5
  • 特許-伸長係数のエラー軽減が有効化された量子コンピュータ 図6
  • 特許-伸長係数のエラー軽減が有効化された量子コンピュータ 図7
  • 特許-伸長係数のエラー軽減が有効化された量子コンピュータ 図8
  • 特許-伸長係数のエラー軽減が有効化された量子コンピュータ 図9
  • 特許-伸長係数のエラー軽減が有効化された量子コンピュータ 図10
  • 特許-伸長係数のエラー軽減が有効化された量子コンピュータ 図11
  • 特許-伸長係数のエラー軽減が有効化された量子コンピュータ 図12
  • 特許-伸長係数のエラー軽減が有効化された量子コンピュータ 図13
  • 特許-伸長係数のエラー軽減が有効化された量子コンピュータ 図14
  • 特許-伸長係数のエラー軽減が有効化された量子コンピュータ 図15
  • 特許-伸長係数のエラー軽減が有効化された量子コンピュータ 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-07-03
(45)【発行日】2025-07-11
(54)【発明の名称】伸長係数のエラー軽減が有効化された量子コンピュータ
(51)【国際特許分類】
   G06N 10/70 20220101AFI20250704BHJP
【FI】
G06N10/70
【請求項の数】 16
(21)【出願番号】P 2023522837
(86)(22)【出願日】2021-11-09
(65)【公表番号】
(43)【公表日】2023-11-08
(86)【国際出願番号】 EP2021081161
(87)【国際公開番号】W WO2022101226
(87)【国際公開日】2022-05-19
【審査請求日】2024-04-11
(31)【優先権主張番号】17/095,030
(32)【優先日】2020-11-11
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】エッガー、ダニエル
(72)【発明者】
【氏名】グリーンバーグ、ドン
(72)【発明者】
【氏名】マクルーア サード、ダグラス
(72)【発明者】
【氏名】シェルドン、サラ、エリザベス
(72)【発明者】
【氏名】キム、ユンソク
【審査官】佐藤 直樹
(56)【参考文献】
【文献】米国特許出願公開第2018/0330265(US,A1)
【文献】Kandala ABHINAV et al.,Extending the computational reach of a noisy superconducting quantum processor,arXiv[online],v1,2018年05月11日,pp.1-10,[検索日2025.02.18],インターネット:<URL:https://arxiv.org/pdf/1805.04492>
【文献】Giurgica-Tiron TUDOR et al.,Digital zero noise extrapolation for quantum error mitigation,arXiv[online],v1,2020年05月21日,pp.1-11,[検索日2025.02.19],インターネット:<URL:https://arxiv.org/pdf/2005.10921>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 10/70
(57)【特許請求の範囲】
【請求項1】
コンピュータ実行可能コンポーネントを格納するメモリと、
前記メモリに動作可能に結合され、前記メモリに格納された前記コンピュータ実行可能コンポーネントを実行するプロセッサとを備えているシステムであって、前記コンピュータ実行可能コンポーネントが、
基準モデルからターゲット伸長係数に関連付けられたゲート・パラメータを補間する補間コンポーネントを含み、前記基準モデルが、複数の基準伸長係数で較正された量子ゲートの基準ゲート・パラメータを含む、システム。
【請求項2】
ゲートごとのエラーの決定およびゲート・パラメータの決定のうちの少なくとも1つに基づいて、伸長係数間隔内の基準伸長係数の数を決定することによって、前記複数の基準伸長係数を定義する、モデル・コンポーネントをさらに備える、請求項1に記載のシステム。
【請求項3】
前記伸長係数間隔内に含まれる前記基準伸長係数の数が、前記伸長係数間隔内の前記ゲートごとのエラーの決定における変化の数と共に増える、請求項2に記載のシステム。
【請求項4】
前記伸長係数間隔内に含まれる前記基準伸長係数の数が、前記伸長係数間隔内の前記ゲート・パラメータの決定における変化の数と共に増える、請求項3に記載のシステム。
【請求項5】
補間された前記ゲート・パラメータを使用して量子回路上で量子演算を実行することによって結果データを生成する実行コンポーネントであって、前記量子回路が前記量子ゲートを含む、前記実行コンポーネントと、
前記結果データをゼロ次ノイズ極限に外挿することによってエラーが軽減された結果を生成する軽減コンポーネントとをさらに備える、請求項1ないし4のいずれかに記載のシステム。
【請求項6】
前記量子ゲートを含んでいる量子回路のゲート数および量子ビット数に基づいて前記ターゲット伸長係数を識別する推奨コンポーネントをさらに備える、請求項1ないし5のいずれかに記載のシステム。
【請求項7】
プロセッサに動作可能に結合されたシステムによって、基準モデルからターゲット伸長係数に関連付けられたゲート・パラメータを補間することを含み、前記基準モデルが、複数の基準伸長係数で較正された量子ゲートの基準ゲート・パラメータを含む、コンピュータ実装方法。
【請求項8】
前記システムによって、ゲートごとのエラーの決定およびゲート・パラメータの決定のうちの少なくとも1つに基づいて、伸長係数間隔内に含まれる基準伸長係数の数を決定することをさらに含む、請求項に記載のコンピュータ実装方法。
【請求項9】
前記伸長係数間隔内に含まれる前記基準伸長係数の数が、前記伸長係数間隔内の前記ゲートごとのエラーの決定における変化の数と共に増え、前記伸長係数間隔内に含まれる前記基準伸長係数の数が、前記伸長係数間隔内の前記ゲート・パラメータの決定における変化の数と共に増える、請求項に記載のコンピュータ実装方法。
【請求項10】
前記システムによって、補間された前記ゲート・パラメータを使用して量子回路上で量子演算を実行することによって結果データを生成することであって、前記量子回路が前記量子ゲートを含む、前記生成することと、
前記システムによって、前記結果データをゼロ次ノイズ極限に外挿することによってエラーが軽減された結果を生成することとをさらに含む、請求項ないしのいずれかに記載のコンピュータ実装方法。
【請求項11】
前記システムによって、前記量子ゲートを含んでいる量子回路のゲート数および量子ビット数に基づいて前記ターゲット伸長係数を識別することをさらに含む、請求項10に記載のコンピュータ実装方法。
【請求項12】
量子コンピュータのエラー軽減のためのコンピュータ・プログラムであって、コンピュータに、
複数の基準伸長係数で量子ゲートに関連付けられた伸長係数の範囲を生成することと、
前記伸長係数の範囲からの伸長係数を受信することと、
前記複数の基準伸長係数に基づいて前記伸長係数に関連付けられたゲート・パラメータを補間することとを実行させる、コンピュータ・プログラム。
【請求項13】
ゲートごとのエラーの決定およびゲート・パラメータの決定のうちの少なくとも1つに基づいて、伸長係数間隔内の基準伸長係数の数を決定することによって、前記複数の基準伸長係数を定義することをさらに実行させる、請求項12に記載のコンピュータ・プログラム。
【請求項14】
前記量子ゲートを含んでいる量子回路のゲート数および量子ビット数に基づいて前記伸長係数の範囲から推奨される伸長係数を識別することをさらに実行させる、請求項12または13のいずれかに記載のコンピュータ・プログラム。
【請求項15】
前記量子回路の前記ゲート数および前記量子ビット数を、定義されたゲート数および量子ビット数の組み合わせに関連付けられた伸長係数の範囲を含んでいる参照テーブルと比較することをさらに実行させる、請求項14に記載のコンピュータ・プログラム。
【請求項16】
前記ゲート・パラメータを使用して、前記量子ゲートを含んでいる量子回路上で量子演算を実行することによって結果データを生成することと、
前記結果データをゼロ次ノイズ極限に外挿することによってエラーが軽減された結果を生成することとをさらに実行させる、請求項12ないし15のいずれかに記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
主題の開示は、量子演算においてエラー軽減を実施するための伸長係数の使用に関連しており、より詳細には、複数の基準伸長係数で較正された基準モデルから、ターゲット伸長係数(target stretch factor)に関連付けられた量子ゲート・パラメータを補間することに関連している。
【背景技術】
【0002】
量子コンピュータは、量子演算の精度を悪化させるノイズを生み出す。エラー軽減技術は、ノイズを考慮し、量子コンピュータの結果を改善することができる。従来のエラー軽減技術では、量子回路に対して数回、量子演算が実行される。量子演算の実行のうちの1つまたは複数において、量子回路に含まれているゲートの持続時間が、伸長係数として知られている特定の係数によって引き伸ばされ得る。ゲートの持続時間を引き伸ばすことによって、追加のノイズが量子演算の実行に導入される可能性がある。それによって、量子コンピュータは、複数の結果データセットを生成することができ、各結果データセットは、採用された伸長係数による影響を受ける各ノイズ量を含む。次に、エラーが軽減された結果が、複数の結果データセットから外挿され得る。しかし、量子演算の実行において利用される伸長係数ごとに、新しいゲート・パラメータが定義され、較正されなければならない。伸長係数ごとにゲート・パラメータを較正することは、科学者が量子コンピュータのハードウェアにアクセスすることを必要とし、著しく時間がかかる可能性がある。そのため、従来のエラー軽減技術は、較正要件によって制限される。
【0003】
他の従来のエラー軽減技術は、量子回路内で、すべての2量子ビット量子ゲートをそれ自身の複数のコピーに置き換えることによって実施される。例えば、量子回路内の各2量子ビット・ゲートは、奇数個の2量子ビット・ゲートに置き換えられ得る。しかし、これらの技術は、単一量子ビット・ゲートを無視し、コヒーレンス制限に近づいている量子回路の場合に不適切であることがある長い伸長係数に対応する可能性がある。さらに、従来のエラー軽減技術に対するさらなる制約は、2量子ビット・ゲートの2つの順次適用が、一致演算を作成しなければならないということである。
【発明の概要】
【0004】
以下に、本発明の1つまたは複数の実施形態の基本的理解を可能にするための概要を示す。この概要は、主要な要素または重要な要素を特定するよう意図されておらず、特定の実施形態の範囲または特許請求の範囲を正確に説明するよう意図されていない。この概要の唯一の目的は、後で提示されるより詳細な説明のための前置きとして、概念を簡略化された形態で提示することである。本明細書に記載された1つまたは複数の実施形態では、量子演算の伸長係数のエラー軽減を容易にすることができるシステム、コンピュータ実装方法、装置、またはコンピュータ・プログラム製品、あるいはその組み合わせが説明される。
【0005】
一実施形態によれば、システムが提供される。このシステムは、コンピュータ実行可能コンポーネントを格納できるメモリを備えることができる。このシステムは、メモリに動作可能に結合され、メモリに格納されたコンピュータ実行可能コンポーネントを実行することができる、プロセッサを備えることもできる。コンピュータ実行可能コンポーネントは、基準モデルから、ターゲット伸長係数に関連付けられたゲート・パラメータを補間できるエラー軽減コンポーネントを含むことができ、基準モデルは、複数の基準伸長係数で較正された量子ゲートの基準ゲート・パラメータ(reference gate parameters)を含むことができる。そのようなシステムの利点は、較正オーバーヘッドを減らすために、基準モデルが採用され得るということであることができる。
【0006】
一部の例では、システムは、ゲートごとのエラーの決定およびゲート・パラメータの決定のうちの少なくとも1つに基づいて、伸長係数間隔(stretch factor interval)内の基準伸長係数の数を決定することによって、複数の基準伸長係数を定義できる、モデル・コンポーネントを備えることができる。そのようなシステムの利点は、基準モデルが、量子ゲートの較正の動的領域に関連付けられた基準伸長係数を含むことができるということであることができる。
【0007】
実施形態によれば、システムが提供される。このシステムは、コンピュータ実行可能コンポーネントを格納できるメモリを備えることができる。このシステムは、メモリに動作可能に結合され、メモリに格納されたコンピュータ実行可能コンポーネントを実行することができる、プロセッサを備えることもできる。コンピュータ実行可能コンポーネントは、量子回路のゲート数および量子ビット数に基づいて量子回路のエラー軽減のための伸長係数を識別できる推奨コンポーネントを含むことができる。そのようなシステムの利点は、システムが、リチャードソン・エラー軽減(Richardson error mitigation)を容易にすることにおいて最も効率的であると予測された伸長係数の使用可能な選択であることができる。
【0008】
一部の例では、推奨コンポーネントは、量子回路のゲート数および量子ビット数を、定義されたゲート数および量子ビット数の組み合わせに関連付けられた伸長係数の範囲を含んでいる参照テーブルと比較することができる。そのようなシステムの利点は、類似する量子回路の過去の実行に基づく伸長係数の推奨であることができる。
【0009】
実施形態によれば、コンピュータ実装方法が提供される。コンピュータ実装方法は、プロセッサに動作可能に結合されたシステムによって、基準モデルから、ターゲット伸長係数に関連付けられたゲート・パラメータを補間することを含むことができ、基準モデルは、複数の基準伸長係数で較正された量子ゲートの基準ゲート・パラメータを含む。そのようなコンピュータ実装方法の利点は、ターゲット伸長係数で量子ゲートを較正しない、ターゲット伸長係数に対するゲート・パラメータの決定であることができる。
【0010】
一部の例では、コンピュータ実装方法は、システムによって、ゲートごとのエラーの決定およびゲート・パラメータの決定のうちの少なくとも1つに基づいて、伸長係数間隔内に含まれる基準伸長係数の数を決定することを含むことができる。そのようなコンピュータ実装方法の利点は、量子ゲートの動作における変化の増加に関連付けられた基準伸長係数で高度に較正された基準モデルの生成であることができる。
【0011】
別の実施形態によれば、コンピュータ実装方法が提供される。コンピュータ実装方法は、プロセッサに動作可能に結合されたシステムによって、量子回路のゲート数および量子ビット数に基づいて量子回路のエラー軽減のための伸長係数を推奨することを含むことができる。そのような方法の利点は、望ましい伸長係数を使用してエラー軽減プロトコルを効果的に実行するためのユーザの使用可能性であることができる。
【0012】
一部の例では、コンピュータ実装方法は、システムによって、量子ゲートのセットに関連付けられた最大伸長係数を決定するランダム化されたベンチマーク動作を実行することをさらに含むことができる。また、コンピュータ実装方法は、システムによって、量子ゲートのセットからの1つまたは複数の量子ゲートの使用可能性を監視することをさらに含むことができる。そのような方法の利点は、量子ハードウェアの能力(例えば、量子ゲートの最近の動作能力)に合うように伸長係数が調整されること、または推奨されること、あるいはその両方が可能であるということである。
【0013】
実施形態によれば、量子コンピュータのエラー軽減のためのコンピュータ・プログラム製品が提供される。コンピュータ・プログラム製品は、プログラム命令が具現化されているコンピュータ可読ストレージ媒体を備えることができる。プログラム命令は、プロセッサによって実行可能であり、プロセッサによって複数の基準伸長係数で量子ゲートに関連付けられた伸長係数の範囲を生成することを、プロセッサに実行させることができる。プログラム命令は、プロセッサによって伸長係数の範囲からの伸長係数を受信することを、プロセッサに実行させることもできる。さらに、プログラム命令は、プロセッサによって複数の基準伸長係数に基づいて伸長係数に関連付けられたゲート・パラメータを補間することを、プロセッサに実行させることができる。そのようなコンピュータ・プログラム製品の利点は、量子コンピュータの較正オーバーヘッドの低減であることができる。
【0014】
一部の例では、プログラム命令は、プロセッサによって、量子ゲートを含んでいる量子回路のゲート数および量子ビット数に基づいて、伸長係数の範囲から推奨される伸長係数を識別することを、プロセッサにさらに実行させることができる。そのようなコンピュータ・プログラム製品の利点は、エラー軽減の適用可能性の向上であることができる。
【0015】
本特許ファイルまたは出願ファイルは、カラーで作成された少なくとも1つの図面を含む。カラー図面を含む本特許または特許出願公開のコピーは、要求および必要な料金の支払いに応じて、米国特許局によって提供される。
【図面の簡単な説明】
【0016】
図1】本明細書に記載された1つまたは複数の実施形態に従って、1つまたは複数の量子演算のために伸長係数のエラー軽減を容易にすることができる例示的な非限定的システムのブロック図を示す図である。
図2】本明細書に記載された1つまたは複数の実施形態に従って、伸長係数間隔内で採用される基準伸長係数の数に影響を与えることができるクリフォードごとのエラー(error-per-Clifford)の変化を特徴付けることができる例示的な非限定的グラフを示す図である。
図3A】本明細書に記載された1つまたは複数の実施形態に従って、伸長係数間隔内で採用される基準伸長係数の数に影響を与えることができるゲート・パラメータの変化を特徴付けることができる例示的な非限定的グラフを示す図である。
図3B】本明細書に記載された1つまたは複数の実施形態に従って、伸長係数間隔内で採用される基準伸長係数の数に影響を与えることができるクリフォードごとのエラーの変化を特徴付けることができる例示的な非限定的グラフを示す図である。
図4】本明細書に記載された1つまたは複数の実施形態に従って、量子コンピュータによって採用される1つまたは複数のゲートに関連付けられた最大伸長係数を決定するか、または追跡するか、あるいはその両方を実行することができる例示的な非限定的システムのブロック図を示す図である。
図5】本明細書に記載された1つまたは複数の実施形態に従って、複数の基準伸長係数で較正された量子ゲートの1つまたは複数のゲート・パラメータを補間することができる例示的な非限定的システムのブロック図を示す図である。
図6】本明細書に記載された1つまたは複数の実施形態に従って、複数の基準伸長係数に関連付けられた1つまたは複数の量子ゲート・パラメータを特徴付けることができる例示的な非限定的基準モデルを示す図である。
図7】本明細書に記載された1つまたは複数の実施形態に従って、1つまたは複数の伸長係数スケジュールに基づいて1つまたは複数の量子コンピュータ上で1つまたは複数の量子演算を実行することができる例示的な非限定的システムのブロック図を示す図である。
図8】本明細書に記載された1つまたは複数の実施形態に従って、1つまたは複数のエラー軽減の外挿を実行して1つまたは複数の量子演算からエラーが軽減された結果を生成することができる例示的な非限定的システムのブロック図を示す図である。
図9】本明細書に記載された1つまたは複数の実施形態に従って、リチャードソン・エラー軽減プロトコル(Richardson error mitigation protocol)の有効性を示すことができる例示的な非限定的グラフを示す図である。
図10】本明細書に記載された1つまたは複数の実施形態に従って、量子演算のために伸長係数のエラー軽減を実施することにおいて1つまたは複数のシステムによって採用され得る例示的な非限定的動作方式を示す図である。
図11】本明細書に記載された1つまたは複数の実施形態に従って、伸長係数のエラー軽減において実施される1つまたは複数の伸長係数を推奨することができる例示的な非限定的システムのブロック図を示す図である。
図12】本明細書に記載された1つまたは複数の実施形態に従って、量子演算のために伸長係数のエラー軽減を実施することにおいて1つまたは複数のシステムによって採用され得る例示的な非限定的動作方式を示す図である。
図13】本明細書に記載された1つまたは複数の実施形態に従って、1つまたは複数の伸長係数のエラー軽減を容易にすることができる例示的な非限定的コンピュータ実装方法のフロー図を示す図である。
図14】本明細書に記載された1つまたは複数の実施形態に従ってクラウド・コンピューティング環境を示す図である。
図15】本明細書に記載された1つまたは複数の実施形態に従って抽象モデル・レイヤを示す図である。
図16】本明細書に記載された1つまたは複数の実施形態を容易にすることができる例示的な非限定的動作環境を示すブロック図である。
【発明を実施するための形態】
【0017】
以下の詳細な説明は、例にすぎず、実施形態、または実施形態の適用もしくは使用、あるいはその両方を制限するよう意図されていない。さらに、先行する「背景技術」または「発明の概要」のセクション、あるいは「発明を実施するための形態」のセクションで提示された、いずれかの明示されたか、または暗示された情報によって制約されるという意図はない。
【0018】
ここで、図面を参照して1つまたは複数の実施形態が説明され、図面全体を通じて、類似する参照番号が、類似する要素を参照するために使用されている。以下の説明では、説明の目的で、1つまたは複数の実施形態を十分に理解できるように、多数の特定の詳細が示されている。しかし、これらの特定の詳細がなくても、さまざまな事例において、1つまたは複数の実施形態が実践され得るということは明らかである。
【0019】
量子コンピューティングのエラー軽減の他の実施に伴う問題を前提として、本開示は、基準伸長係数に関して較正された1つまたは複数の基準モデルから、量子ゲート・パラメータを補間することによって、これらの問題のうちの1つまたは複数に対する解決策を生み出すために実施され得る。本明細書に記載された1つまたは複数の実施形態は、有利に、最小限の較正オーバーヘッドを伴って伸長係数の間隔に対してエラー軽減を実施することができる。本明細書に記載されたさまざまな実施形態は、複数の基準伸長係数によって特徴付けられた特定の範囲からの1つまたは複数の望ましい伸長係数の採用を可能にすることができる。
【0020】
本発明のさまざまな実施形態は、効率的、効果的、かつ自律的な引き伸ばされたパルスの較正およびゲート・パラメータの補間を(例えば、直接的な人間による誘導なしで)容易にする、コンピュータ処理システム、コンピュータ実装方法、装置、またはコンピュータ・プログラム製品、あるいはその組み合わせを対象にすることができる。例えば、本明細書に記載された1つまたは複数の実施形態は、基準伸長係数に関して複数の量子ゲートを較正し、基準モデルを生成することができる。さらに、さまざまな実施形態は、基準モデルから、望ましい伸長係数に関してゲート・パラメータを補間することができる。さらに、本明細書に記載された1つまたは複数の実施形態は、特定の量子回路で使用するための1つまたは複数の伸長係数を推奨することができる。さらに、1つまたは複数の実施形態は、特定の量子コンピュータのハードウェアとの互換性を高めるために、1つまたは複数の選択された伸長係数を調整することができる。
【0021】
コンピュータ処理システム、コンピュータ実装方法、装置、またはコンピュータ・プログラム製品、あるいはその組み合わせは、本質的に高度に技術的であり、抽象的ではなく、人間による一連の精神的活動として実行できない問題(例えば、量子コンピューティングのエラー軽減)を解決するための、ハードウェアまたはソフトウェアあるいはその両方を採用する。例えば、1人または複数の個人は、伸長係数の補間およびエラー軽減のための基準モデルを生成できない。
【0022】
また、本明細書に記載された1つまたは複数の実施形態は、複数の基準伸長係数で較正された1つまたは複数の基準モデルから、量子ゲート・パラメータを補間することによって、従来のエラー軽減を上回る技術的改良を構成することができる。さらに、本明細書に記載されたさまざまな実施形態は、特定の量子回路、または特定の量子コンピュータのハードウェア特性、あるいはその両方に基づいて、採用される伸長係数を推奨することによって、従来のエラー軽減技術を上回る技術的改良を示すことができる。さらに、本明細書に記載されたさまざまな実施形態は、較正オーバーヘッドを最小限に抑えながら、特定の範囲内の1つまたは複数の伸長係数の選択を可能にすることによって、従来のエラー軽減技術を上回る技術的改良を示すことができる。
【0023】
さらに、本明細書に記載された1つまたは複数の実施形態は、1つまたは複数の量子演算におけるエラーを軽減することによって、実用的応用を有することができる。例えば、本明細書に記載されたさまざまな実施形態は、基準モデルから量子ゲート・パラメータを補間することができ、それによって、量子ゲートを較正することに関連する制限によって妨げられずに、特定の範囲からの1つまたは複数の望ましい伸長係数の選択を可能にする。さらに、本明細書に記載された1つまたは複数の実施形態は、推奨コンポーネントを制御して、特定の量子回路を分析するか、またはエラー軽減のために採用される1つまたは複数の推奨される伸長係数を生成するか、あるいはその両方を実行することができる。それによって、1つまたは複数の実施形態は、ユーザが望ましい量子回路に適合する伸長係数を採用することを可能にすることができる。
【0024】
図1は、量子コンピューティングのエラー軽減を容易にすることができる例示的な非限定的システム100のブロック図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。本発明のさまざまな実施形態におけるシステム(例えば、システム100など)、装置、またはプロセスの態様は、1つまたは複数のマシン内で具現化された(例えば、1つまたは複数のマシンに関連付けられた1つまたは複数のコンピュータ可読媒体内で具現化された)1つまたは複数の機械実行可能コンポーネントを構成することができる。そのようなコンポーネントは、1つまたは複数のマシン(例えば、コンピュータ、コンピューティング・デバイス、または仮想マシン、あるいはその組み合わせなど)によって実行された場合に、マシンに、説明された動作を実行させることができる。
【0025】
図1に示されているように、システム100は、1つまたは複数のサーバ102、1つまたは複数のネットワーク104、入力デバイス106、または量子コンピュータ108、あるいはその組み合わせを備えることができる。サーバ102は、エラー軽減コンポーネント110を備えることができる。エラー軽減コンポーネント110は、通信コンポーネント112またはモデル・コンポーネント114あるいはその両方をさらに備えることができる。また、サーバ102は、少なくとも1つのメモリ116を備えるか、またはその他の方法で少なくとも1つのメモリ116に関連付けられ得る。サーバ102は、エラー軽減コンポーネント110および関連するコンポーネント、メモリ116、またはプロセッサ120、あるいはその組み合わせなどの、ただしこれらに限定されない、さまざまなコンポーネントに結合することができる、システム・バス118をさらに備えることができる。図1ではサーバ102が示されているが、他の実施形態では、さまざまな種類の複数のデバイスが、図1に示されている特徴に関連付けられるか、または図1に示されている特徴を備えることができる。さらに、サーバ102は、1つまたは複数のクラウド・コンピューティング環境と通信することができる。
【0026】
1つまたは複数のネットワーク104は、セルラー・ネットワーク、広域ネットワーク(WAN:wide area network)(例えば、インターネット)またはローカル・エリア・ネットワーク(LAN:local area network)を含むが、これらに限定されない、有線ネットワークおよび無線ネットワークを含むことができる。例えば、サーバ102は、例えばセルラー方式、WAN、ワイヤレス・フィディリティ(Wi-Fi:wireless fidelity)、Wi-Max、WLAN、またはBluetooth技術、あるいはその組み合わせなどを含むが、これらに限定されない、実質的に任意の望ましい有線技術または無線技術を使用して、1つまたは複数の入力デバイス106および/または量子コンピュータ108と(およびその逆方向に)通信することができる。さらに、示されている実施形態では、エラー軽減コンポーネント110を1つまたは複数のサーバ102上に設けることができるが、システム100のアーキテクチャがそのように制限されないということが理解されるべきである。例えば、エラー軽減コンポーネント110またはエラー軽減コンポーネント110の1つまたは複数のコンポーネントは、別のサーバ・デバイス、またはクライアント・デバイス、あるいはその組み合わせなどの、別のコンピュータ・デバイスに存在することができる。
【0027】
1つまたは複数の入力デバイス106は、パーソナル・コンピュータ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、携帯電話(例えば、スマートフォン)、(例えば、プロセッサを備えている)コンピュータ化されたタブレット、スマート・ウォッチ、キーボード、タッチ・スクリーン、またはマウス、あるいはその組み合わせなどを含むことができるが、これらに限定されない、1つまたは複数のコンピュータ化されたデバイスを含むことができる。1つまたは複数の入力デバイス106は、1つまたは複数の量子回路またはターゲット伸長係数あるいはその両方をシステム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)、あるいはその組み合わせなどを含むことができるが、これらに限定されない。
【0028】
さまざまな実施形態では、1つまたは複数の入力デバイス106または1つまたは複数のネットワーク104あるいはその両方が、1つまたは複数の設定またはコマンドあるいはその両方をシステム100に入力するために採用されることができる。例えば、本明細書に記載されたさまざまな実施形態では、1つまたは複数の入力デバイス106が、サーバ102または関連するコンポーネントあるいはその両方を動作させるか、または操作するか、あるいはその両方を実行するために採用されることができる。さらに、1つまたは複数の入力デバイス106は、サーバ102または関連するコンポーネントあるいはその両方によって生成された1つまたは複数の出力(例えば、表示、データ、または視覚化、あるいはその組み合わせなど)を表示するために採用されることができる。さらに、1つまたは複数の実施形態では、1つまたは複数の入力デバイス106が、クラウド・コンピューティング環境内に含まれるか、またはクラウド・コンピューティング環境に動作可能に結合されるか、あるいはその両方であることができる。
【0029】
さまざまな実施形態では、1つまたは複数の量子コンピュータ108は、(例えば、ディビンチェンゾの基準を満たしながら)計算処理を容易にするために、量子力学の法則(例えば、重ね合わせまたは量子もつれあるいはその両方)を利用できる量子ハードウェア・デバイスを備えることができる。1つまたは複数の実施形態では、1つまたは複数の量子コンピュータ108は、量子データ・プレーン、制御プロセッサ・プレーン、制御および測定プレーン、または量子ビット技術、あるいはその組み合わせを備えることができる。
【0030】
1つまたは複数の実施形態では、量子データ・プレーンは、物理量子ビットを備えている1つまたは複数の量子回路、量子ビットの位置を固定するための構造、または支援回路、あるいはその組み合わせを含むことができる。支援回路は、例えば、量子ビットの状態の測定を容易にするか、または(例えば、ゲートに基づくシステムの場合に)量子ビットに対するゲート動作を実行するか、あるいはその両方を行うことができる。一部の実施形態では、支援回路は、複数の量子ビットが互いに情報をやりとりすることを可能にすることができる有線ネットワークを備えることができる。さらに、有線ネットワークは、直接的電気接続または電磁放射(例えば、光信号、マイクロ波信号、または低周波信号、あるいはその組み合わせ)あるいはその両方を介して、制御信号の送信を容易にすることができる。例えば、支援回路は、1つまたは複数の量子ビットに動作可能に結合された1つまたは複数の超伝導共振器を備えることができる。本明細書において説明されているように、「超伝導」という用語は、アルミニウム(例えば、1.2ケルビンの超伝導臨界温度)またはニオブ(例えば、9.3ケルビンの超伝導臨界温度)などの、超伝導臨界温度以下で超伝導特性を示す材料を特徴付けることができる。さらに、当業者は、本明細書に記載されたさまざまな実施形態において他の超伝導体材料(例えば、水素化リチウム/水素化マグネシウム合金などの水素化物超伝導体)が使用され得るということを認識するであろう。
【0031】
1つまたは複数の実施形態では、制御プロセッサ・プレーンは、量子ゲートの動作または測定あるいはその両方のハミルトニアン・シーケンス(Hamiltonian sequence)を識別するか、またはトリガーするか、あるいはその両方を実行することができ、このシーケンスは、量子アルゴリズムを実施するために、(例えば、サーバ102などのホスト・プロセッサ、または1つまたは複数の入力デバイス106、あるいはその両方によって提供された)プログラムを実行する。例えば、制御プロセッサ・プレーンは、制御および測定プレーンのために、コンパイルされたコードをコマンドに変換することができる。1つまたは複数の実施形態では、制御プロセッサ・プレーンは、1つまたは複数の量子エラー修正アルゴリズムをさらに実行することができる。
【0032】
1つまたは複数の実施形態では、制御および測定プレーンは、実行される量子演算を規定できる制御プロセッサ・プレーンによって生成されたデジタル信号を、量子データ・プレーンにおいて1つまたは複数の量子ビットに対して演算を実行するためのアナログ制御信号に変換することができる。また、制御および測定プレーンは、データ・プレーンにおける量子ビットの1つまたは複数のアナログ測定出力を、システム100の他のコンポーネントと(例えば、制御プロセッサ・プレーンを介して、例えば、エラー軽減コンポーネント110などと)共有され得る古典的バイナリ・データに変換することができる。
【0033】
当業者は、さまざまな量子ビット技術が1つまたは複数の量子コンピュータ108の1つまたは複数の量子ビットの基礎を提供できるということを認識するであろう。2つの例示的な量子ビット技術は、捕捉イオン量子ビットまたは超伝導量子ビットあるいはその両方を含むことができる。例えば、量子コンピュータ108が捕捉イオン量子ビットを利用する場合、量子データ・プレーンは、量子ビットとして機能する複数のイオン、およびイオンを特定の位置に保持することに役立つ1つまたは複数のトラップを含むことができる。さらに、制御および測定プレーンは、イオンの量子状態に影響を与えるためにイオンのうちの1つまたは複数に向けられるレーザー源もしくはマイクロ波源、イオンを冷却するか、もしくはイオンの測定を可能にするか、またはその両方のためのレーザー、またはイオンの状態を測定するための1つまたは複数の光子検出器、あるいはその組み合わせを含むことができる。別の事例では、超伝導量子ビット(例えば、超伝導量子干渉デバイス(SQUID:superconducting quantum interference devices)など)は、(例えば、電子電荷または磁束の量子化された状態に起因する)量子化されたエネルギー・レベルを示すようにミリケルビン温度に冷却され得るリソグラフィで定義された電子回路であることができる。超伝導量子ビットは、トランズモン量子ビットなどの、ジョセフソン接合に基づくことができる。また、超伝導量子ビットは、マイクロ波制御電子機器に適合することができ、ゲートに基づく技術または統合された極低温制御と共に利用され得る。さらなる例示的な量子ビット技術は、光子量子ビット、量子ドット量子ビット、ゲートに基づく中性原子量子ビット、半導体量子ビット(例えば、光学的にゲーティングされるか、または電気的にゲーティングされる)、またはトポロジー的量子ビット、あるいはその組み合わせなどを含むことができるが、これらに限定されない。
【0034】
さまざまな実施形態では、1つまたは複数の量子コンピュータ108は、1つまたは複数の量子ゲート122を備えることができる。1つまたは複数の量子ゲート122は、1つまたは複数の量子コンピュータ108の複数の量子ビットを動作可能に結合することができる。1つまたは複数の量子コンピュータ108は、1つまたは複数の特定の量子回路に従って量子ゲート122のうちの1つまたは複数を制御することによって、1つまたは複数の量子演算を実行することができる。さまざまな実施形態では、1つまたは複数の量子ゲート122は、ゲートを実装するパルスが引き伸ばされ得る、任意の種類の量子ゲート122であることができる。1つまたは複数の量子ゲート122内に含まれ得るゲートの例示的な種類は、交差共鳴ゲート、単一量子ビット・ゲート、または多量子ビット・ゲート、あるいはその組み合わせなどを含むことができるが、これらに限定されない。
【0035】
1つまたは複数の実施形態では、通信コンポーネント112は、1つまたは複数の入力デバイス106から(例えば、直接的電気接続を介して、または1つまたは複数のネットワーク104を介して、あるいはその両方を介して)1つまたは複数のハミルトニアン、量子回路、またはターゲット伸長係数、あるいはその組み合わせを受信し、そのデータをエラー軽減コンポーネント110のさまざまな関連するコンポーネントと共有することができる。さらに、通信コンポーネント112は、(例えば、直接的電気接続を介して、または1つまたは複数のネットワーク104を介して、あるいはその両方を介して)エラー軽減コンポーネント110と1つまたは複数の量子コンピュータ108の間、またはその逆、あるいはその両方のデータの共有を容易にすることができる。
【0036】
時間に依存する駆動のハミルトニアンが、下記の方程式1によって特徴付けられ得る。
K(t)=Σαα(t)Pα (1)
ここで、「Σα」はインデックス・アルファにわたる合計を表すことができ、「Jα」は「Pα」に関連付けられた相互作用の時間に依存する強度を表すことができる。さらに、「Pα」は、時間不変ノイズ「λ」の影響を受けるN量子ビット・パウリ演算子であり、時間「cT」の間のスケーリングされた駆動「
【数1】

」の下での発展の後のオブザーバブル「E(λ)」の期待値は、増幅されたノイズ強度「cλ」の下での測定に相当する。したがって、複数の異なるオブザーバブル「c」に関連付けられたオブザーバブルが(1つまたは複数の量子コンピュータ108によって)計算されることが可能であり、E(λ)がゼロノイズ極限「E」に逆向きに外挿され得る。さまざまな実施形態では、1つまたは複数の量子コンピュータ108は、採用された伸長係数ごとに較正された量子ゲート・セットを使用可能にすることができ、伸長係数は、特定の量子演算(例えば、特定の量子アルゴリズムの実行)のために採用された特定の量子回路の1つまたは複数の特性に依存することができる。
【0037】
さまざまな実施形態では、モデル・コンポーネント114は、1つまたは複数の基準モデルを生成することによって、さまざまな伸長係数を実施することに関連する較正オーバーヘッドを減らすことができ、基準モデルから、ターゲット伸長係数のゲート・パラメータが補間され得る。例えば、モデル・コンポーネント114によって生成された1つまたは複数の基準モデルは、1つまたは複数の量子コンピュータ108の量子ゲート・パラメータを、ユニタリー時間発展でのそれらの影響に関連付けることができる。さまざまな実施形態では、モデル・コンポーネント114は、分析的考慮事項または経験的測定結果あるいはその両方に基づいて、1つまたは複数の基準モデルを生成することができる。1つまたは複数の基準モデルから補間され得る例示的なゲート・パラメータは、交差共鳴パルスの振幅、交差共鳴パルスの位相、断熱ゲートによる導関数除去(DRAG:derivative removal by adiabatic gate)値(例えば、単一量子ビット・パルスのDRAG係数)、または単一量子ビット・パルスの振幅、あるいはその組み合わせなどを含むことができるが、これらに限定されない。
【0038】
例えば、持続時間「T」の交差共鳴パルスの振幅「Ω」は、下記の方程式2に従う三次のモデルによって、(例えば、θZX=ωZXTによって特徴付けられる)ZX回転に関連付けられ得る。
【0039】
【数2】

ここで、「δ」は、1つまたは複数の量子コンピュータ108の制御量子ビットの非調和性を表すことができ、「Δ」は、1つまたは複数の量子コンピュータ108の制御量子ビットとターゲット量子ビットの間の周波数差を表すことができ、または「J」は、それらの量子ビット間の結合強度を表すことができ、あるいはその組み合わせが可能である。
【0040】
1つまたは複数の基準モデルは、複数の基準伸長係数を含む(c∈[cmin,cmax]によって特徴付けられる)伸長係数の連続的間隔を考慮することができる。さまざまな実施形態では、1つまたは複数の量子コンピュータ108の量子ゲート122の各々は、基準伸長係数の各々に関して較正され得る。さらに、較正されたゲート・パラメータは、1つまたは複数の基準モデル内の基準伸長係数に対してプロットされ得る。それによって、モデル・コンポーネント114は、1つまたは複数の量子コンピュータ108の量子ゲート122の各々に関して、パラメータ値と基準伸長係数の間の関係を特徴付けるために、プロットされたデータに対する1つまたは複数の経験的適合を採用することができる。
【0041】
図2は、本明細書に記載された1つまたは複数の実施形態に従って、ゲート・パラメータと伸長係数の間の関係を特徴付ける1つまたは複数の基準モデルを生成するために、モデル・コンポーネント114によって採用され得る、さまざまな経験的適合を表す例示的な非限定的グラフ200の図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。さまざまな実施形態では、モデル・コンポーネント114は、特定の量子ゲート122の振幅パラメータを、較正された基準伸長係数データに適合させることができる。さらに、グラフ200に示されているように、特定の量子ゲート122のモデル・コンポーネント114は、多項式適合または区分線形適合(piecewise linear fits)あるいはその両方を使用して、特定の量子ゲート122の角度パラメータまたは差分パラメータあるいはその両方を、較正された基準伸長係数データに適合させることができる。グラフ200によって例示された基準モデルは、1~2の範囲内の伸長係数間隔に対する較正を考慮することができる。
【0042】
図2に示されているように、線202は、量子ゲート122(例えば、交差共鳴ゲート)に対して実行された最初の伸長係数の較正を表すことができる。線204は、量子ゲート122に対して実行された、その後の第2の伸長係数の較正を表すことができる。線206は、最初の伸長係数の較正から生じるパラメータを使用する区分線形適合を表すことができる。線208は、第2の伸長係数の較正から生じるパラメータを使用する区分線形適合を表すことができる。線210は、最初の伸長係数の較正から生じるパラメータを使用する多項式適合を表すことができる。線212は、第2の伸長係数の較正から生じるパラメータを使用する多項式適合を表すことができる。さまざまな実施形態では、(例えば、時間に反比例する)θZX=ωZXTを利用する振幅パラメータの適合の感度は、位相パラメータまたはDRAGパラメータあるいはその両方などの他のゲート・パラメータに関する適合よりも、低くなることができる。
【0043】
さまざまな実施形態では、モデル・コンポーネント114は、1つまたは複数の量子コンピュータ108の量子ゲート122の1つまたは複数の動作特性に基づいて、各量子ゲートに関連付けられた伸長係数間隔を決定することができる。例えば、モデル・コンポーネント114は、エラー軽減(例えば、リチャードソン・エラー軽減)のための量子ゲート122をまだ生成しながら、最小限の量の較正オーバーヘッドが必要とされるように、伸長係数間隔を決定することができる。例えば、モデル・コンポーネント114は、量子ゲート122の基準伸長係数として機能する伸長係数の数、またはどの伸長係数が、特定の量子ゲート122のクリフォードごとのエラー値またはパラメータ値あるいはその両方における基準伸長係数に基づく変化として機能するか、あるいはその両方を決定することができる。
【0044】
例えば、モデル・コンポーネント114は、ゲートごとのエラー(例えば、クリフォードごとのエラー)の決定に基づいて、伸長係数間隔内に含まれる基準伸長係数の数または値あるいはその両方を定義することができる。例えば、伸長係数間隔内に含まれる基準伸長係数の数は、伸長係数間隔内のゲートごとのエラー(例えば、クリフォードごとのエラー)の決定における変化の数と共に増えることができる。別の例では、モデル・コンポーネント114は、ゲート・パラメータに基づいて、伸長係数間隔内に含まれる基準伸長係数の数または値あるいはその両方を定義することができる。例えば、伸長係数間隔内に含まれる基準伸長係数の数は、伸長係数間隔内のゲート・パラメータの決定における変化の数と共に増えることができる。
【0045】
図3A~Bは、本明細書に記載された1つまたは複数の実施形態に従って、1つまたは複数の量子ゲート122の1つまたは複数の動作特性を特徴付け、基準伸長係数を識別するために、モデル・コンポーネント114によって生成され得る、例示的な非限定的グラフ300または302あるいはその両方の図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。1つまたは複数の実施形態では、グラフ300または302あるいはその両方は、1つまたは複数の量子コンピュータ108の量子ゲート122に関する1つまたは複数の分析的考慮事項に基づいて(例えば、方程式2に従って)、モデル・コンポーネント114によって生成され得る。図3Aに示されているように、例示的なグラフ300は、交差共鳴パルスの振幅(例えば、図3Aでは「amp_CR」として参照される)を、基準モデリングのための対象のゲート・パラメータと見なすことができる。図3Bに示されているように、モデル・コンポーネント114は、クリフォードごとのエラー値が伸長係数値の関数としてどのように変化するかを最初に推定することによって、例示的なグラフ302を生成することができる。例えば、モデル・コンポーネント114は、伸長係数間隔内の通常は線形に間隔を空けられた伸長係数のセットに対してクリフォードごとのエラーが決定される、最初の推定を実行することができる。次に、モデル・コンポーネント114は、クリフォードごとのエラー値間の変化の量に基づいて、基準伸長係数を選択することができる。
【0046】
例示的なグラフ300、302の領域A内で、特定の量子ゲート122に、領域B内より大きい、ゲート・パラメータまたはクリフォードごとのエラー値あるいはその両方における変化の量が発生することができる。例えば、領域A内の1つの基準点から別の基準点までのゲート・パラメータ値間またはクリフォードごとのエラー値間あるいはその両方での差は、領域B内の1つの基準から別の基準までのゲート・パラメータ値間またはクリフォードごとのエラー値間あるいはその両方での差よりも大きくなり得る。例えば、領域A内の振幅またはクリフォードごとのエラー値あるいはその両方における変化を特徴付ける経験的適合の傾きは、領域Bよりも大きくなり得る。
【0047】
さまざまな実施形態では、モデル・コンポーネント114は、領域B内に含まれる基準伸長係数の数より大きくなるように、領域A内に含まれる基準伸長係数の数を定義することができる。例えば、モデル・コンポーネント114は、図3Aに示されているように、領域Aに対応する5つの基準伸長係数および領域Bに対応する3つの基準伸長係数を識別することができる。別の事例では、モデル・コンポーネント114は、図3Bに示されているように、領域Aに対応する4つの基準伸長係数および領域Bに対応する2つの基準伸長係数を識別することができる。それによって、領域Aに関連付けられた基準伸長係数の密度は、領域Bに関連付けられた基準伸長係数の密度より大きくなることができる。
【0048】
1つまたは複数の実施形態では、エラー軽減コンポーネント110は、モデル・コンポーネント114によって決定された基準伸長係数値を、1つまたは複数の入力デバイス106を介して、1人または複数のデータ・サイエンティストと共有することができる。それによって、データ・サイエンティストは、基準伸長係数に関して、1つまたは複数の量子コンピュータ108の量子ゲート122を較正することができる。較正の結果として、基準伸長係数に関連付けられた基準ゲート・パラメータが決定され得る。例えば、特定の量子ゲートの基準ゲート・パラメータは、較正に従って基準伸長係数を達成するゲート・パラメータであることができる。さらに、基準ゲート・パラメータをシステム100に入力し、基準ゲート・パラメータをエラー軽減コンポーネント110と共有するために、入力デバイス106のうちの1つまたは複数が使用され得る。本明細書に記載されたさまざまな実施形態に従って、モデル・コンポーネント114は、基準伸長係数に対して基準ゲート・パラメータをプロットし、経験的適合(例えば、区分線形適合、多項式適合)を使用して1つまたは複数の基準モデルを生成することができる。
【0049】
1つまたは複数の実施形態では、エラー軽減コンポーネント110は、1つまたは複数の量子ゲート122の自動化された較正を容易にするために、モデル・コンポーネント114によって決定された基準伸長係数値を、1つまたは複数の入力デバイス106または量子コンピュータ108あるいはその両方と共有することができる。例えば、較正は、1つまたは複数の量子コンピュータ108の動作を実行して関連するパルスのゲート・パラメータの値を決定する、複数の較正ルーチンを実行できる。各較正ルーチンは、較正の対象となる関連するパルスのゲート・パラメータに関連付けられた精度を返すこともできる。それによって、自動化された較正は、次の較正ルーチンを実行できるかどうか、または最後の較正ルーチンが繰り返される必要があるかどうかを、判定することができる。
【0050】
図4は、本明細書に記載された1つまたは複数の実施形態に従って、ゲート・リソース・コンポーネント402、追跡コンポーネント404、または調整コンポーネント406、あるいはその組み合わせをさらに備えている例示的な非限定的システム100の図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。さまざまな実施形態では、ゲート・リソース・コンポーネント402は、量子コンピュータ108の1つまたは複数の量子ゲート122の1つまたは複数の動作能力を定義することができる。また、追跡コンポーネント404は、1つまたは複数の変化が発生したかどうかを識別するために、ゲート・リソース・コンポーネント402によって定義された動作能力を追跡することができる。さらに、調整コンポーネント406は、ゲート・リソース・コンポーネント402によって定義され、追跡コンポーネント404によって追跡される動作能力に対応するように、1つまたは複数のターゲット伸長係数を変更することができる。
【0051】
量子コンピュータ108の1つまたは複数の量子ゲート122(例えば、交差共鳴ゲート)は、異なるゲート長およびゲート・エラーを有して、最初に最適化され得る。したがって、各量子ゲートで採用され得る最大伸長係数は変わることができる。例えば、量子コンピュータ108の第1の量子ゲート122は、2の最大伸長係数を採用することに成功することができ、一方、量子コンピュータ108の第2の量子ゲート122は、2の伸長係数で失敗する可能性がある。
【0052】
さまざまな実施形態では、ゲート・リソース・コンポーネント402は、1つまたは複数のゲート・リソース・テーブル408を生成することができる。例えば、1つまたは複数の量子コンピュータ108の各量子ゲート122は、1つまたは複数のゲート・リソース・テーブル408内で表され得る。さらに、ゲート・リソース・コンポーネント402は、ゲート・リソース・テーブル408に、各量子ゲート122で採用され得る最小伸長係数および最大伸長係数を追加することができる。例えば、1つまたは複数のゲート・リソース・テーブル408は、各識別子(例えば、タイトルまたは番号あるいはその両方)によって各量子ゲート122を表すことができ、各量子ゲート122に関連付けられた最小伸長係数値および最大伸長係数値をリストすることができる。さまざまな実施形態では、量子ゲート122の数、位置、または組成、あるいはその組み合わせが、1つまたは複数の入力デバイス106を介して、量子コンピュータ108に精通している1人または複数のデータ・サイエンティストまたは1つまたは複数のコンピュータ・プログラムあるいはその両方によって、システム100に入力され得る。一部の実施形態では、ゲート・リソース・コンポーネント402は、1つまたは複数の量子コンピュータ108から、量子ゲート122の数、位置、または組成、あるいはその組み合わせを定義するデータを取り出すことができる。1つまたは複数の実施形態では、量子ゲート122は、例えば、名前および伸長係数によって識別され得る(例えば、伸長係数が量子ゲート122の名前に組み込まれ得る)。例えば、例示的な量子ゲート122の名前は、CNOT_1.00(例えば、伸長係数が1.00である)、CNOT_1.50(例えば、伸長係数が1.50である)、またはCNOT_2.00(例えば、伸長係数が2.00である)、あるいはその組み合わせを含むことができるが、これらに限定されない。さまざまな実施形態では、1つまたは複数のゲート・リソース・テーブル408は、1つまたは複数のメモリ116内に格納され得る。1つまたは複数の実施形態では、1つまたは複数のゲート・リソース・テーブル408は、サーバ102の外部のコンピュータ・アーキテクチャに格納され得る。一部の実施形態では、1つまたは複数の量子ゲート122は、1つまたは複数の量子コンピュータ108内の機能または互いの近接性あるいはその両方に基づいて、1つまたは複数のゲート・リソース・テーブル408内で、族として知られているセットにさらにグループ化され得る。
【0053】
量子ゲート122に関連付けられた最小伸長係数または最大伸長係数あるいはその両方が、1つまたは複数の分析的考慮事項または1つまたは複数の測定結果あるいはその両方に基づいて、ゲート・リソース・コンポーネント402によって計算され得る。例えば、さまざまな実施形態では、量子ゲート122のハードウェア特性をシステム100に入力するために、1つまたは複数の入力デバイス106が採用され得る。例示的なハードウェア特性は、量子ゲート122の材料組成、量子ゲート122の接続性、量子ゲート122の長さ、量子ゲート122の忠実度、または量子ゲート122の忠実度の変動、あるいはその組み合わせなどを含むことができるが、これらに限定されない。例えば、特定の量子ゲート122の最大伸長係数は、超えた場合に量子ゲート122が不安定になりすぎて使用できなくなるか、または多過ぎるエラーが発生して使用できなくなる、伸長係数値を定義することができる。ハードウェア特性に基づいて、ゲート・リソース・コンポーネント402は、1つまたは複数の量子コンピュータ108のハードウェア特性に基づく量子システムの数値モデルに従って、量子ゲートで採用され得る最小伸長係数または最大伸長係数あるいはその両方を計算することができる。別の例では、量子ゲート122は、正常な動作を実現できる最小伸長係数値または最大伸長係数値あるいはその両方を識別するために、値が増加する複数の伸長係数を使用して操作されることが可能であり、1つまたは複数の量子コンピュータ108は、識別された最小伸長係数または最大伸長係数あるいはその両方を(例えば、1つまたは複数のネットワーク104を介して)ゲート・リソース・コンポーネント402と共有することができる。
【0054】
さまざまな実施形態では、1つまたは複数の量子ゲート122は、動作の変動の影響を受けやすいことがある。変動の結果として、量子ゲート122によって採用できる最大伸長係数が、時間と共に変化する可能性がある。追跡コンポーネント404は、1つまたは複数のゲート・リソース・テーブル408に反映された最大伸長係数が最新であることを保証するために、1つまたは複数の量子ゲート122の動作状態を追跡することができる。例えば、追跡コンポーネント404は、ランダムな量子ゲート動作のシーケンスの実施中に測定される平均エラー率を推定することによって量子コンピュータ108のハードウェアの能力を評価するために、1つまたは複数のランダム化されたベンチマーキング・プロトコルを実行することができる。例えば、ランダム化されたベンチマーキングは、一様にランダムなクリフォード演算に基づくことができる。さらに、(例えば、量子ゲート122の忠実度に基づいて)最大伸長係数値を決定するために、(例えば、追跡コンポーネント404によって)量子プロセス断層撮影(QPT:quantum process tomography)または量子ゲート・セット断層撮影(GST:quantum gate set tomography)あるいはその両方が実施され得る。ランダム化されたベンチマーキング・プロトコルが採用される場合、「m」個のクリフォード・ゲートを含むクリフォード・ゲートの複数のシーケンスが作成され得る。長さmのいずれかの特定のクリフォード・ゲートのシーケンスでは、1個~m-1個のクリフォード・ゲートが、クリフォード・グループからランダムに選択され得る。m個のクリフォード・ゲートのシーケンスが一致演算を作成するように、最後のクリフォード・ゲートが選択され得る。mの関数として量子ビット集団を示す曲線を作成するために、各長さmでの測定結果の平均値が求められ得る。さらに、経験的適合を使用して、この曲線からゲート忠実度が抽出され得る。
【0055】
1つまたは複数の実施形態では、追跡コンポーネント404は、1つまたは複数のゲート・リソース・テーブル408に含まれる最大伸長係数を検証するために、ランダム化されたベンチマーキング・プロトコルを定期的に実施することができる。例えば、追跡コンポーネント404は、1つまたは複数のスケジュールに従って、ランダム化されたベンチマーキング・プロトコルを実施することができる。例えば、追跡コンポーネント404は、ランダム化されたベンチマーキング・プロトコルを毎日、数日の間隔(例えば、2日ごと)、毎週、または別の望ましい時間間隔で実施することができる。さらに、追跡コンポーネント404によって実施されるランダム化されたベンチマーキングのスケジュールは、量子ゲート122間で変わることができる。例えば、最も高い最大伸長係数に関連付けられた量子ゲートは、ゲートの変動の影響を最も受けやすいゲートであることができ、そのため、より低い最大伸長係数に関連付けられた量子ゲートよりも頻繁な追跡コンポーネント404によるランダム化されたベンチマーキングの対象になり得る。例えば、最も高い最大伸長係数に関連付けられた量子ゲートは、追跡コンポーネント404による毎日のランダム化されたベンチマーキングの対象になることができ、一方、最も低い最大伸長係数に関連付けられた量子ゲートは、追跡コンポーネント404による毎週のランダム化されたベンチマーキングの対象になることができる。さまざまな実施形態では、追跡コンポーネント404によって実施されるランダム化されたベンチマーキングのスケジュールは、システム100または量子コンピュータ108あるいはその両方に割り当てられた保守オーバーヘッドの量に基づいて変わることができる。
【0056】
1つまたは複数の実施形態では、調整コンポーネント406は、(例えば、ゲート・リソース・コンポーネント402によって生成されたか、または追跡コンポーネント404によって更新されたか、あるいはその両方である)1つまたは複数のゲート・リソース・テーブル408を参照して、使用可能な量子ゲート122の能力に合うように1つまたは複数のターゲット伸長係数が変更されるべきであるかどうかを判定することができる。例えば、1つまたは複数の量子コンピュータ108によって1つまたは複数の量子演算の間に実行される1つまたは複数の量子回路を定義するために、1つまたは複数の入力デバイス106が使用され得る。量子演算の結果を改善するためにエラー軽減が採用される場合、エラー軽減プロトコルの間に利用される1つまたは複数のターゲット伸長係数を定義するためにも、1つまたは複数の入力デバイス106が使用され得る。
【0057】
調整コンポーネント406は、受信された(例えば、1つまたは複数のネットワーク104または通信コンポーネント112あるいはその両方を介して受信された)量子回路を分析し、量子演算中に1つまたは複数の量子コンピュータ108からのどの量子ゲート122が動作するかを識別することができる。例えば、調整コンポーネント406は、量子ゲートによって確立され、量子回路によって規定された量子ビットの接続性に基づいて、量子コンピュータ108の量子ゲート122を特定の量子回路と関連付けることができる。別の例では、特定の量子回路の各量子ゲート122が、1つまたは複数の量子コンピュータ108によって実行されなければならない。特定の量子回路が、量子コンピュータ108によってネイティブにサポートされていない量子ゲート122を含んでいる場合、量子ゲート122は、ネイティブにサポートされている量子ゲート122に分解され得る。例えば、特定の量子回路が、制限された量子ビットの接続性に起因して1つまたは複数の量子コンピュータ108によってサポートされていない量子ゲート122を規定する場合、(例えば、量子コンピュータ108によってサポートされているゲートに分解される)スワップ・ゲートが、調整コンポーネント406によって量子回路に挿入され得る。それによって、調整コンポーネント406は、量子演算に関連する量子ゲート122を識別することができ、1つまたは複数のゲート・リソース・テーブル408を参照して、関連する量子ゲート122で利用され得る許容できる(例えば、最大伸長係数によって制限された)伸長係数の範囲を識別することができる。入力デバイス106を介して提供された1つまたは複数のターゲット伸長係数が許容できる伸長係数の範囲内である場合、エラー軽減コンポーネント110は、特定のターゲット伸長係数を使用して、本明細書に記載された1つまたは複数のエラー軽減プロトコルの実施を進めることができる。入力デバイス106を介して提供された1つまたは複数の伸長係数が許容できる伸長係数の範囲外である場合、調整コンポーネント406は、ターゲット伸長係数の値を許容できる範囲内の1つまたは複数の値に変更することができる。例えば、調整コンポーネント406は、1つまたは複数のターゲット伸長係数の値を、最初に提供された値に最も近い許容できる範囲内の値に変更することができる。別の事例では、調整コンポーネント406は、1つまたは複数のターゲット伸長係数の値を、許容できる範囲の中心内の値に変更することができる。
【0058】
さまざまな実施形態では、許容できる範囲内の1つまたは複数の伸長係数が、まだ使用不可能であることがある。許容できる範囲内の使用不可能な伸長係数は、高いクリフォードごとのエラー値などの性能ベンチマークに示され得る。例えば、例示的な許容できる伸長係数の範囲は、1.0~3.0であることができる。しかし、伸長係数2.1~2.3が、不十分な忠実度に起因する使用不可能な伸長係数であることがある(例えば、これらの伸長係数に対して1つまたは複数の較正プロトコルが無効だった可能性がある)。調整コンポーネント406は、ターゲット伸長係数が2.1~2.3の範囲内にないことを保証することができる。
【0059】
さらに、調整コンポーネント406は、1つまたは複数のハードウェア制約を満たすようにターゲット伸長係数を変更することができる。例えば、一部の量子コンピュータ108のハードウェアは、定義された数の倍数のサンプルを含むパルスのみを読み込むことができる(例えば、16の倍数のサンプルであるパルスのみを読み込むことができる)。調整コンポーネント406は、パルスが、調整コンポーネント406は、パルスが、量子コンピュータ108のハードウェアに対して定義された数の倍数になるように、ターゲット伸長係数を変更することを選択できる。例えば、定義された数が16であり、2.1の伸長係数を使用するパルスが168個のサンプルを含んでいる場合、調整コンポーネント406は、パルスが(16の倍数である)160個のサンプルを含むように、2のターゲット伸長係数を使用することを選択できる。
【0060】
ゲート・リソース・コンポーネント402、追跡コンポーネント404、または調整コンポーネント406、あるいはその組み合わせがどのように連携して動作できるかの非限定的な実施形態を例示するために、以下の例示的な使用事例が検討される。1つまたは複数のエラー軽減プロトコルにおいて1.0以上~2.0以下の範囲内の伸長係数が正常に採用され得るように、1つまたは複数の量子コンピュータ108の量子ゲート122が最初に最適化され得る。ゲート・リソース・コンポーネント402は、量子ゲート122の一意の識別子に関連して、1つまたは複数のゲート・リソース・テーブル408内に、許容できる伸長係数の範囲(例えば、1.0~2.0)を格納することができる。最初の最適化の後に、量子ゲート122に1つまたは複数の動作の変動が発生し、許容できる伸長係数の範囲が1.0以上~1.8以下の新しい範囲に狭くなる可能性がある。例えば、1つまたは複数の量子コンピュータ108において量子ビット・コヒーレンス時間T1およびT2が変動することがあり、これが、大きい伸長係数を採用する量子ゲート122に悪影響を与える可能性がある。1つまたは複数の定義されたスケジュールに従って追跡コンポーネント404によって実行されるランダム化されたベンチマーキング・プロトコルの間に、追跡コンポーネント404は、狭くなった範囲を識別し、それに応じて、1つまたは複数のゲート・リソース・テーブル408を更新することができる。1つまたは複数の量子コンピュータ108による量子ゲート122を利用する量子演算の実行の前に、調整コンポーネント406は、量子演算に関連して与えられた1つまたは複数のターゲット伸長係数を、1つまたは複数のゲート参照テーブル408に格納された伸長係数の許容範囲(例えば、1.0~1.8)と比較することができる。ターゲット伸長係数が1.8より大きい場合、調整コンポーネント406は、量子ゲート122の能力に合うように、ターゲット伸長係数の値を1.8に変更することができる。
【0061】
図5は、本明細書に記載された1つまたは複数の実施形態に従って、補間コンポーネント502をさらに備えている例示的な非限定的システム100の図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。さまざまな実施形態では、補間コンポーネント502は、モデル・コンポーネント114によって生成された1つまたは複数の基準モデルに基づいて、特定の量子ゲート122に対して、(例えば、1つまたは複数の入力デバイス106によって提供されたか、または調整コンポーネント406によって変更されたか、あるいはその両方である)ターゲット伸長係数を達成できる1つまたは複数の量子ゲート・パラメータを決定することができる。
【0062】
1つまたは複数の実施形態では、補間コンポーネント502は、基準伸長係数に関して較正された近くの基準ゲート・パラメータに基づいて、ターゲット伸長係数のゲート・パラメータを補間することができる。本明細書において説明されているように、モデル・コンポーネント114によって生成された1つまたは複数の基準モデルは、基準ゲート・パラメータに対して基準伸長係数をプロットし(例えば、1つまたは複数の較正プロトコルによって決定し)、プロットされたデータへの経験的適合を含むことができる。補間コンポーネント502は、1つまたは複数のターゲット伸長係数に関して、経験的適合からのゲート・パラメータをさらに補間することができる。それによって、補間コンポーネント502は、他の方法では較正されなかった伸長係数(例えば、非基準伸長係数)に関して、基準モデルからゲート・パラメータを補間することができる。
【0063】
図6は、本明細書に記載された1つまたは複数の実施形態に従って、補間コンポーネント502によって実行され得るゲート・パラメータの補間を表すことができる例示的な非限定的基準モデル600の図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。本明細書に記載されたさまざまな実施形態に従って、モデル・コンポーネント114によって、例示的な基準モデル600が生成され得る。
【0064】
図6に示されているように、例示的な基準モデル600は、ゲート・パラメータ「p」(例えば、交差共鳴パルスの振幅)に対して、(例えば、「
【数3】

」、「
【数4】

」、「
【数5】

」、および「
【数6】

」によって表された)4つの基準伸長係数をプロットすることができる。本明細書において説明されているように、クリフォードごとのエラー計算における変化の重大度、またはゲート・パラメータにおける変化(例えば、経験的適合の傾きが増すにつれて基準伸長係数の密度が増えることがある)の重大度、あるいはその両方に基づいて、モデル・コンポーネント114によって4つの基準伸長係数が識別され得る。さらに、各基準伸長係数に関連付けられたゲート・パラメータ値(例えば、基準ゲート・パラメータ)を決定するために、基準伸長係数で量子ゲートが較正され得る。
【0065】
それによって、補間コンポーネント502は、適合されたモデル上のターゲット伸長係数の位置を特定し、その位置に対応するゲート・パラメータ値を参照することによって、ターゲット伸長係数に関連付けられたゲート・パラメータを補間することができる。例えば、較正された基準伸長係数データの経験的適合602でのターゲット伸長係数「
【数7】

」の位置は、図6の星印によって表され得る。点線604によって示されているように、ターゲット伸長係数「
【数8】

」に関連付けられたゲート・パラメータ値が、経験的適合602から補間され得る。
【0066】
図7は、本明細書に記載された1つまたは複数の実施形態に従って、実行コンポーネント702をさらに備えている例示的な非限定的システム100の図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。さまざまな実施形態では、実行コンポーネント702は、1つまたは複数の基準モデルから補間された1つまたは複数のゲート・パラメータを使用して、1つまたは複数の量子コンピュータ108上で、1つまたは複数の量子演算を実行することができる。
【0067】
1つまたは複数の実施形態では、量子演算を実行するために1つまたは複数の量子コンピュータ108上で実行される1つまたは複数の量子回路を定義するために、1つまたは複数の入力デバイス106が使用され得る。さらに、量子演算に関して1つまたは複数のエラー軽減プロトコルにおいて利用される1つまたは複数のターゲット伸長係数を定義するために、1つまたは複数の入力デバイス106が使用され得る。補間コンポーネント502は、1つまたは複数の基準モデルからターゲット伸長係数を達成するために、1つまたは複数のゲート・パラメータを補間することができる。実行コンポーネント702は、1つまたは複数の量子コンピュータ108上で、1つまたは複数の補間されたゲート・パラメータを使用して、量子回路を実行することができる。
【0068】
例えば、実行コンポーネント702は、1つまたは複数の量子コンピュータ108上で、複数回、量子回路を実行して、結果データを生成することができる。実行コンポーネント702は、各実行で、各補間されたゲート・パラメータを利用することができる。したがって、1つまたは複数の量子コンピュータ108上の量子回路の各実行は、各伸長係数に関連付けられた結果データを生成することができ、それによって、各ノイズ量を組み込む。さまざまな実施形態では、実行コンポーネント702は、1つまたは複数のネットワーク104を介して、1つまたは複数の実行コマンドを1つまたは複数の量子コンピュータ108に送信することができる。例えば、実行コンポーネント702は、量子コンピュータ108によって実行される量子回路、または実行中に量子コンピュータ108によって使用されるゲート・パラメータ値、あるいはその両方を規定する、1つまたは複数のデジタル信号を生成することができる。
【0069】
図8は、軽減コンポーネント802をさらに備えている例示的な非限定的システム100の図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。さまざまな実施形態では、軽減コンポーネント802は、結果データからノイズを除去するために、1つまたは複数のエラー軽減プロトコルを実施することができる。軽減コンポーネント802によって実施されるエラー軽減プロトコルは、変化する伸長係数による影響を受ける際の、量子回路の異なる実行によって生成される結果データ間の差に基づいて、ノイズを識別することができる。1つまたは複数の実施形態では、軽減コンポーネント802は、リチャードソン・エラー軽減または別の外挿方法を使用して、実行コンポーネント702によって獲得された結果データをゼロ次ノイズ極限(zero-order noise limit)に外挿することによって、エラーが軽減された結果を生成することができる。
【0070】
図9は、本明細書に記載された1つまたは複数の実施形態に従って、軽減コンポーネント802によって実施される1つまたは複数のエラー軽減プロトコルの有効性を示す例示的な非限定的グラフの図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。図9のグラフは、エラー軽減コンポーネント110によって生成され得るリチャードソン・エラーが軽減された水素分子解離エネルギー曲線を示している。例えば、図9に示された軽減された結果データは、ターゲット伸長係数1.00、1.50、および2.00を使用してクラウド・コンピューティングに基づく量子コンピュータ108上で実行された結果データのセットを考慮することができる。例えば、ターゲット伸長係数に対する1つまたは複数の量子コンピュータ108のゲート・パラメータは、基準伸長係数1.0、1.26、1.58、および2.00からパラメータを補間することによって、補間コンポーネント502によって取得された。図9に示されている結果は、(例えば、三角形によって示されている)エラーが軽減された結果データが、1.0の伸長係数で行われた実行よりも(例えば、星印によって示された)理想的な結果データに近いということを示している。
【0071】
図10は、本明細書に記載された1つまたは複数の実施形態に従って、エラー軽減コンポーネント110によって実行される1つまたは複数のエラー軽減プロトコルを容易にすることができる例示的な非限定的動作方式1000の図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。動作方式1000は、エラー軽減コンポーネント110(および例えば、エラー軽減コンポーネント110の関連するコンポーネント)、1つまたは複数の入力デバイス106、または1つまたは複数の量子コンピュータ108、あるいはその組み合わせの間の通信の例示的な非限定的経路を示すことができる。さまざまな実施形態では、図10に示されたデータの通信または転送あるいはその両方は、クラウド・コンピューティング環境などの1つまたは複数のネットワーク104を経由して実行され得る。例えば、システム100は、クラウド・コンピューティング環境を使用して1つまたは複数の量子コンピュータ108を制御することができる。
【0072】
1002で、ゲート・リソース・コンポーネント402が、伸長係数間隔を入力デバイス106のうちの1つまたは複数と共有することができる。伸長係数間隔は伸長係数の範囲であることができ、この範囲から、本明細書に記載された1つまたは複数のエラー軽減プロトコルを実施するための1つまたは複数のターゲット伸長係数が選択され得る。1つまたは複数の実施形態では、量子ゲート122または量子ゲート122の族あるいはその両方に関連付けられた最小伸長係数値(「cmin」)および最大伸長係数(「cmax」)によって、(例えば、「[cmin,cmax]」として特徴付けられる)伸長係数間隔が定義され得る。例えば、ゲート・リソース・コンポーネント402は、量子演算を実行するために使用できる1つまたは複数の量子ゲート122または量子ゲート122の族あるいはその両方に関して、1つまたは複数のゲート・リソース・テーブル408を分析することができる。ゲート・リソース・コンポーネント402は、(例えば、1つまたは複数のゲート・リソース・テーブル408において定義された)量子ゲート122または量子ゲート122の族あるいはその両方に関連付けられた最も小さい最小伸長係数値として、間隔の最小伸長係数値(「cmin」)を定義することができる。また、ゲート・リソース・コンポーネント302は、(例えば、1つまたは複数のゲート・リソース・テーブル408において定義された)量子ゲート122または量子ゲート122の族あるいはその両方に関連付けられた最も大きい最大伸長係数値として、間隔の最大伸長係数値(「cmax」)を定義することができる。それによって、伸長係数間隔は、演算に使用できる1つまたは複数の量子ゲート122または量子ゲート122の族あるいはその両方に関連付けられた許容できる伸長係数の最も広い範囲を特徴付けることができる。
【0073】
本明細書に記載された1つまたは複数の実施形態に従って、エラー軽減のための1つまたは複数のターゲット伸長係数として、伸長係数間隔から1つまたは複数の伸長係数値を選択するために、1つまたは複数の入力デバイス106が使用され得る。例えば、ターゲット伸長係数として機能するように、伸長係数間隔内から複数の伸長係数値を選択するために、1つまたは複数の入力デバイス106が使用され得る。1004で、1つまたは複数の入力デバイス106は、1つまたは複数の量子演算の実行を容易にするために、選択されたターゲット伸長係数をエラー軽減コンポーネント110と共有することができる。さらに、1004で、量子演算を実行するために選択されたターゲット伸長係数を使用して実行され得る1つまたは複数の量子回路を定義するために、1つまたは複数の入力デバイス106が使用され得る。
【0074】
さまざまな実施形態では、調整コンポーネント406によって、選択されたターゲット伸長係数または1つまたは複数の特定の量子回路あるいはその両方が分析され得る。本明細書において説明されているように、調整コンポーネント406は、1つまたは複数の特定の量子回路の実行のために、1つまたは複数の量子コンピュータ108の関連する量子ゲート122を識別することができる。例えば、1つまたは複数の量子コンピュータ108が複数の量子ゲート122を備えている場合、調整コンポーネント406は、演算に使用できる量子ゲート122(例えば、別の量子演算を現在実行していないか、または演算のための状態にあるか、あるいはその両方である量子ゲート122)を識別することができる。さらに、調整コンポーネント406は、1つまたは複数の量子回路によって規定された量子ビットの接続性を満たす1つまたは複数の量子ゲート122を、特定の量子演算に関連する量子ゲート122として識別することができる。例えば、1つまたは複数の特定の量子回路は、量子ゲート122によって結合される量子ビットの数または量子ゲート122によって示される(例えば、論理条件を含む)結合の種類あるいはその両方を規定することができ、調整コンポーネント406によって識別された関連する量子ゲート122のうちの1つまたは複数は、量子回路の規定を満たすことができる。さらに、1つまたは複数の実施形態では、調整コンポーネント406は、1つまたは複数のターゲット伸長係数を、1つまたは複数の関連する量子ゲート122の1つまたは複数の更新された(例えば、追跡コンポーネント404によって更新された)能力とさらに比較することができる。
【0075】
1つまたは複数のターゲット伸長係数が、1つまたは複数の関連する量子ゲート122の更新された許容できる伸長係数の範囲外である場合、調整コンポーネント406は、許容できる伸長係数の範囲内になるように、1つまたは複数のターゲット伸長係数の値を変更することができる。例えば、調整コンポーネント406は、ターゲット伸長係数値を許容できる範囲内に移動する最小量を、1つまたは複数のターゲット伸長係数値に足すか、または1つまたは複数のターゲット伸長係数値から引くことができる。1006で、調整コンポーネント406は、(例えば、変更されたか、または変更されていない)1つまたは複数のターゲット伸長係数を補間コンポーネント502と共有することができる。
【0076】
さまざまな実施形態では、補間コンポーネント502は、1つまたは複数のターゲット伸長係数を達成できる1つまたは複数の量子ゲート122のパラメータを決定することができる。例えば、補間コンポーネント502は、(例えば、モデル・コンポーネント114によって生成された)1つまたは複数の基準モデルを使用して、1つまたは複数の経験的適合から1つまたは複数の量子ゲート122のパラメータを補間することができる。それによって、補間コンポーネント502は、複数の基準伸長係数で較正されたモデルから、1つまたは複数の量子ゲート122のパラメータを補間することができる。較正された基準モデルから1つまたは複数の量子ゲート・パラメータ122を補間することは、有利に、特定のターゲット伸長係数に対して1つまたは複数の量子コンピュータ108を較正せずに、補間コンポーネント502が1つまたは複数の量子ゲート122のパラメータを決定することを可能にする。1008で、補間コンポーネント502は、1つまたは複数の補間された量子ゲート122のパラメータを実行コンポーネント702と共有することができる。
【0077】
一部の実施形態では、補間コンポーネント502は、1つまたは複数の入力デバイス106内に備えられ得る。例えば、1002で、モデル・コンポーネント114が、1つまたは複数の補間関数を1つまたは複数の入力デバイス106とさらに共有することができる。例えば、モデル・コンポーネント114は、1つまたは複数の基準モデルに基づいて1つまたは複数の補間関数を生成することができる。1つまたは複数の補間関数は、モデル・コンポーネント114によって実行される経験的適合を特徴付けることができる。それによって、1つまたは複数の補間関数は、1つまたは複数のターゲット伸長係数入力に基づいて、1つまたは複数の量子ゲート122のパラメータを出力することができる。例えば、1つまたは複数の基準モデルの経験的適合は、1つまたは複数の補間関数として表され得る(例えば、1つまたは複数の基準伸長係数を較正することによって観察される)ゲート・パラメータと伸長係数の関係を特徴付けることができる。
【0078】
1つまたは複数の実施形態では、実行コンポーネント702は、1つまたは複数の特定の量子回路、1つまたは複数のターゲット伸長係数、または1つまたは複数の補間された量子ゲート122のパラメータ、あるいはその組み合わせに基づいて、1つまたは複数の実行スケジュールを生成することができる。1つまたは複数の実行スケジュールは、量子回路を、それぞれが各ターゲット伸長係数に関連付けられる複数の回路として特徴付けることができる。例えば、1つまたは複数の入力デバイス106によって2つの量子回路および3つのターゲット伸長係数が定義される場合、実行コンポーネント702は、6つの各量子回路(例えば、量子回路ごとに3つの伸長係数に基づく変化)を含む実行スケジュールを生成することができる。1010で、実行コンポーネント702が、1つまたは複数のコマンド信号を1つまたは複数の量子コンピュータ108に送信し、特定の量子演算を実行することができる。例えば、1つまたは複数のコマンド信号は、1つまたは複数の量子コンピュータ108によって実行される1つまたは複数の実行スケジュールおよび関連する補間された量子ゲート122のパラメータを特徴付けることができる。
【0079】
1つまたは複数の量子コンピュータ108は、コマンド信号に基づいて1つまたは複数の量子演算を実行し、結果データのセットを生成することができる。例えば、1つまたは複数の量子コンピュータ108は、関連する補間された量子ゲート122のパラメータを使用して、1つまたは複数の実行スケジュールに従い、およびそれによって、1つまたは複数のターゲット伸長係数に従い、1つまたは複数の特定の量子回路を実行することができる。さまざまな実施形態では、1つまたは複数の量子コンピュータ108は、量子回路の実行ごとに各結果データセットを生成することができる。例えば、実行スケジュールが6つの量子回路の実行(例えば、前述したように、それぞれ3つのターゲット伸長係数に対応する3つの変化を含む2つの量子回路)を含む場合、1つまたは複数の量子コンピュータ108は、6つの実行の各々に関連付けられた結果データを生成することができる。さらに、6つの量子回路の実行すべての結果データは、特定の量子演算に関連付けられた結果データのセットを構成することができる。
【0080】
1つまたは複数の実施形態では、結果データセットは、データ生成の状況を指定するラベルを含むことができる。例えば、ラベルは、関連する結果データを達成するために1つまたは複数の量子コンピュータ108によって実行された量子回路、ターゲット伸長係数、または量子ゲート122のパラメータ、あるいはその組み合わせを説明することができる。例えば、結果データのセットが6つのデータセットを含む場合、各データセットは、データセットに含まれる結果データを達成した量子回路、ターゲット伸長係数、または量子ゲート122のパラメータ、あるいはその組み合わせを説明するラベル(例えば、ヘッダー・エントリ)を含むことができる。1012で、1つまたは複数の量子コンピュータ108が、特定の量子演算の結果データのセットを1つまたは複数の軽減コンポーネント802と共有することができる。
【0081】
さまざまな実施形態では、軽減コンポーネント802は、リチャードソン・エラー軽減プロトコルなどの1つまたは複数のエラー軽減プロトコルを実施し、結果データのセットをゼロノイズ極限に外挿することができる。例えば、軽減コンポーネント802は、データセットのラベルを分析し、どのデータセットが同じ量子回路の変化に関連付けられているか、およびどのターゲット伸長係数が各変化に関連付けられているかを確認することができる。例えば、結果データのセット内のさまざまなデータセットは、採用されたさまざまなターゲット伸長係数に基づく変化するノイズ量を伴う特定の量子回路を特徴付けることができる。それによって、軽減コンポーネント802は、リチャードソン・エラー軽減技術を使用して、結果データのセットからエラーが軽減された結果を外挿することができる。1014で、軽減コンポーネント802が、エラーが軽減された結果データを1つまたは複数の入力デバイス106と共有することができる。
【0082】
図11は、本明細書に記載された1つまたは複数の実施形態に従って、推奨コンポーネント1102をさらに備えている例示的な非限定的システム100の図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。さまざまな実施形態では、推奨コンポーネント1102は、1つまたは複数の入力デバイス106を介するターゲット伸長係数としての選択のために、1つまたは複数の推奨される伸長係数を生成することができる。
【0083】
1つまたは複数の実施形態では、推奨コンポーネント1102は、特定の量子回路の量子ゲート122の数(例えば、量子ゲート122の総数、またはゲートの種類別の量子ゲート122の数(1量子ビット・ゲート、または2量子ビット・ゲート、あるいはその両方などの数など)、あるいはその両方)または量子ビットの数あるいはその両方に基づいて、1つまたは複数の推奨される伸長係数を生成することができる。例えば、量子回路の量子ゲート122または量子ビットあるいはその両方の数が増えるにつれて、量子回路の実行のために推奨される最大伸長係数が減ることができる。例えば、多数の量子ゲート122または量子ビットあるいはその両方を含む量子回路(例えば、高い回路の深さを有する量子回路)で大きい伸長係数値を採用することは、結果データに圧倒的な量のノイズをもたらす可能性があり、それによって、エラー軽減プロトコルを妨げる。例えば、量子回路内のゲートの忠実度が特定のしきい値(例えば、50%)を下回る場合、量子回路は、1つまたは複数の量子コンピュータ108によって実行されるには深過ぎると見なされ得る。推奨コンポーネント1102は、(例えば、1つまたは複数の入力デバイス106を介して定義された)1つまたは複数の特定の量子回路を分析し、1つまたは複数のエラー軽減プロトコルの有効性を最大化するか、またはそうでなければ改善することができるか、あるいはその両方である伸長係数の最適なセットを決定することができる。例えば、推奨コンポーネント1102は、(例えば、1つまたは複数の入力デバイス106を介して定義された)1つまたは複数の特定の量子回路を分析し、量子演算の結果データのセット内のノイズの望ましい分布を達成できる伸長係数の最適なセットを決定することができる。
【0084】
さまざまな実施形態では、推奨コンポーネント1102は、1つまたは複数の量子コンピュータ108上で実行される複数のベンチマーク量子演算(benchmark quantum operations)を介して較正されるか、またはトレーニングされるか、あるいはその両方を実行され得る。例えば、量子演算は、特定の伸長係数を使用して1つまたは複数の量子コンピュータ108上で複数回実行されることが可能であり、量子ゲート122の数または量子ビット数あるいはその両方は、各実行によって異なることができる(例えば、それによって、量子回路の深さを変更する)。例えば、複数の基準伸長係数に関して、複数の異なる回路の深さ「p」および複数の異なる量子ビット数「N」を使用して、基準となるすべて対すべての接続性の量子交互演算子仮説(QAOA:quantum alternating operator ansatz)が(例えば、1つまたは複数の量子コンピュータ108上またはシミュレータ上あるいはその両方で)実行され得る。実行によって達成された結果データのセットは、特定の量子回路プロファイル(quantum circuit profile)(p,N)に推奨される許容できる伸長係数の範囲を定義することができる。例えば、許容できる伸長係数は、定義されたしきい値を下回るヘリンジャー距離を達成する伸長係数であることができる。
【0085】
さらに、推奨コンポーネント1102は、1つまたは複数のベンチマーク量子演算の実行に基づいて、1つまたは複数の推奨テーブル1104を生成するか、または1つまたは複数の推奨テーブル1104にデータを追加するか、あるいはその両方を実行することができる。図11に示されているように、1つまたは複数の推奨テーブル1104は、例えば、1つまたは複数のメモリ116に格納され得る。例えば、1つまたは複数の推奨テーブル1104は、複数の量子回路プロファイル(p,N)(例えば、ゲート数または量子ビット数あるいはその両方のさまざまな組み合わせを有しており、それによってさまざまな回路の深さを有している、複数の量子回路)を指定することができる。推奨コンポーネント1102は、1つまたは複数の推奨テーブル1104に、各量子回路プロファイル(p,N)に関連付けられた許容できる伸長係数の範囲を追加することができる。
【0086】
推奨コンポーネント1102は、(例えば、1つまたは複数の入力デバイス106を介して提供された)1つまたは複数の特定の量子回路を、1つまたは複数の推奨テーブル1104の量子回路プロファイルと比較することができる。1つまたは複数の量子回路が、1つまたは複数の推奨テーブル1104の量子回路プロファイルと同じ回路の深さ(例えば、同じゲート数および量子ビット数の組み合わせ)を有している場合、推奨コンポーネント1102は、関連する許容できる伸長係数の範囲を、推奨される伸長係数の範囲として識別することができる。1つまたは複数の特定の量子回路が、量子回路プロファイルと異なる回路の深さ(例えば、異なるゲート数および量子ビット数の組み合わせ)を有している場合、推奨コンポーネント1102は、最も近く一致する量子回路プロファイル(例えば、1つまたは複数の特定の量子回路からの量子ゲート122の数または量子ビット数あるいはその両方の組み合わせにおける最も小さい逸脱を有する量子回路プロファイル)に関連付けられた許容できる伸長係数の範囲を識別することができる。
【0087】
さまざまな実施形態では、推奨コンポーネント1102は、(例えば、推奨される伸長係数の範囲からターゲット伸長係数を選択するために1つまたは複数の入力デバイス106が使用され得る場合に)1つまたは複数のターゲット伸長係数の選択のために、推奨される伸長係数の範囲を1つまたは複数の入力デバイス106と共有することができる。1つまたは複数の実施形態では、推奨コンポーネント1102は、関連する許容できる伸長係数の範囲から、1つまたは複数の伸長係数を、推奨されるターゲット伸長係数として選択することができる(例えば、推奨されるターゲット伸長係数は、1.0の値と、特定の量子ゲート122に関連付けられた最大伸長係数との間で、線形に間隔を空けられ得る)。さらに、推奨コンポーネント1102は、1つまたは複数の入力デバイス106を介して、承認のために1つまたは複数の推奨される伸長係数を1つまたは複数の入力デバイス106と共有することができる。
【0088】
1つまたは複数の実施形態では、推奨コンポーネント1102は、1つまたは複数の発見的手法を実施して、1つまたは複数の推奨される伸長係数を決定することができる。例えば、推奨コンポーネント1102は、1つまたは複数の基準伸長係数での較正中に量子ゲート122に対して観察されたエラー率と共に、特定の量子回路によって規定された単一量子ビット量子ゲート122または2量子ビット量子ゲート122あるいはその両方の数を数えることに基づいて、1つまたは複数の推奨されるターゲット伸長係数を生成することができる。
【0089】
図12は、本明細書に記載された1つまたは複数の実施形態に従って、エラー軽減コンポーネント110によって実行される1つまたは複数のエラー軽減プロトコルを容易にすることができる例示的な非限定的動作方式1200を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。動作方式1200は、エラー軽減コンポーネント110(および例えば、エラー軽減コンポーネント110の関連するコンポーネント)、1つまたは複数の入力デバイス106、または1つまたは複数の量子コンピュータ108、あるいはその組み合わせの間の通信の例示的な非限定的経路を示すことができる。さまざまな実施形態では、図12に示されたデータの通信または転送あるいはその両方は、クラウド・コンピューティング環境などの1つまたは複数のネットワーク104を経由して実行され得る。例えば、システム100は、クラウド・コンピューティング環境を使用して1つまたは複数の量子コンピュータ108を制御することができる。
【0090】
動作方式1000と比較すると、動作方式1200は、推奨コンポーネント1102を組み込んでいる。例えば、1つまたは複数の量子コンピュータ108上で1つまたは複数の量子演算を実行するための1つまたは複数の量子回路を定義するために、1つまたは複数の入力デバイス106が使用され得る。1202で、1つまたは複数の入力デバイス106が、1つまたは複数の特定の量子回路を推奨コンポーネント1102と共有することができる。推奨コンポーネント1102は、複数の推奨される伸長係数、または推奨される伸長係数の範囲、あるいはその組み合わせなどを含むが、これらに限定されない、1つまたは複数の推奨を生成することができる。例えば、推奨コンポーネント1102は、本明細書に記載されたさまざまな実施形態に従って、1つまたは複数の特定の量子回路を、1つまたは複数の推奨テーブル1004に格納された1つまたは複数の量子回路プロファイルと比較することができる。
【0091】
1204で、推奨コンポーネント1102は、承認または選択あるいはその両方のために、1つまたは複数の推奨を1つまたは複数の入力デバイス106と共有することができる。例えば、1つまたは複数の推奨される伸長係数を、本明細書に記載されたさまざまな実施形態に従って1つまたは複数のエラー軽減プロトコルにおいて利用されるターゲット伸長係数として承認するために、1つまたは複数の入力デバイス106が使用され得る。別の例では、伸長係数の推奨される範囲から1つまたは複数のターゲット伸長係数を選択するために、1つまたは複数の入力デバイス106が使用され得る。
【0092】
その後、動作方式1200は、動作方式1000を参照して本明細書において説明されたステップ1006~1014を実施することができる。例えば、1つまたは複数の入力デバイス106は、1つまたは複数の量子演算を実行する量子コンピュータ108の1つまたは複数の量子ゲート122の能力への適合を容易にするために、(例えば、承認済みの推奨される伸長係数、推奨される範囲から選択された伸長係数、または推奨コンポーネント1102によって生成された1つまたは複数の推奨とは無関係な定義された伸長係数、あるいはその組み合わせを含むことができる)1つまたは複数のターゲット伸長係数を、調整コンポーネント406と共有することができる。その後、本明細書に記載されたさまざまな実施形態に従って、1つまたは複数の量子コンピュータ108上でターゲット伸長係数を使用して1つまたは複数の特定の量子回路が実行され得る。さらに、量子コンピュータ108上の実行によって生成された結果データは、リチャードソン・エラー軽減などの1つまたは複数のエラー軽減プロトコルの対象になることができる。
【0093】
図13は、本明細書に記載された1つまたは複数の実施形態に従って、エラー軽減を使用して1つまたは複数の量子コンピュータ108上で1つまたは複数の量子演算を実行することを容易にすることができる、例示的な非限定的コンピュータ実装方法1300のフロー図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。
【0094】
1302で、コンピュータ実装方法1300は、プロセッサ120に動作可能に結合されたシステム100によって、(例えば、モデル・コンポーネント114によって)複数の基準伸長係数で較正された1つまたは複数の量子ゲート122の基準ゲート・パラメータを含むことができる1つまたは複数の基準モデルを生成することを含むことができる。1304で、コンピュータ実装方法1300は、システム100によって、(例えば、エラー軽減コンポーネント110によって)1つまたは複数の量子回路を受信することを含むことができる。例えば、量子コンピュータ108上で1つまたは複数の量子演算がどのように実行されるかを規定できる(例えば、利用される量子ビットの数、利用される量子ゲート122の数、量子ビットもしくは量子ゲート122またはその両方の接続性、利用される量子ゲート122の種類、測定動作、量子ビットのリセット動作、または統計値を収集するために各量子回路を繰り返す回数、あるいはその組み合わせなどを規定できる)1つまたは複数の量子回路を定義するために、1つまたは複数の入力デバイス106が使用され得る。
【0095】
1306で、コンピュータ実装方法1300は、システム100によって、(例えば、推奨コンポーネント1102によって)量子回路のゲート数または量子ビット数あるいはその両方に基づいて量子回路のエラー軽減のための1つまたは複数の伸長係数を推奨することを含むことができる。例えば、推奨コンポーネント1102は、本明細書に記載されたさまざまな実施形態に従って、少なくとも量子回路の回路の深さに基づいて、量子回路で採用され得る1つまたは複数の推奨される伸長係数または推奨される伸長係数の間隔あるいはその両方を識別することができる。さらに、推奨される伸長係数は、選択または承認あるいはその両方のために1つまたは複数の入力デバイス106と共有され得る。1308で、コンピュータ実装方法1300は、システム100によって、(例えば、エラー軽減コンポーネント110によって)1つまたは複数のエラー軽減プロトコルを容易にするために量子回路で採用され得る1つまたはターゲット伸長係数を受信することを含むことができる。例えば、推奨される伸長係数のうちの1つまたは複数をターゲット伸長係数として選択するため、推奨される伸長係数の範囲から1つまたは複数のターゲット伸長係数を選択するため、または推奨されなかった1つまたは複数のターゲット伸長係数を定義するため、あるいはその組み合わせのために、1つまたは複数の入力デバイス106が使用され得る。
【0096】
1310で、コンピュータ実装方法1300は、システム100によって、(例えば、調整コンポーネント406によって)量子回路の1つまたは複数の量子ゲート122の1つまたは複数の能力に合うように1つまたは複数のターゲット伸長係数を調整することを含むことができる。例えば、1つまたは複数のターゲット伸長係数値は、本明細書に記載されたさまざまな実施形態に従って、1つまたは複数の量子ゲート122の動作能力における1つまたは複数の変動に基づいて変更され得る。1312で、コンピュータ実装方法1300は、システム100によって、(例えば、補間コンポーネント502によって)1つまたは複数のターゲット伸長係数に関して、1つまたは複数の基準モデルから1つまたは複数の量子ゲート122のパラメータを補間することを含むことができる。1314で、コンピュータ実装方法1300は、システム100によって、(例えば、実行コンポーネント702によって)1つまたは複数の特定の量子回路、ターゲット伸長係数、または補間されたゲート・パラメータ、あるいはその組み合わせに従って1つまたは複数の量子コンピュータ108上で量子演算を実行することによって結果データを生成することを含むことができる。例えば、実行コンポーネント702は、本明細書に記載されたさまざまな実施形態に従って、変化するターゲット伸長係数に起因して変化するノイズ量を伴う量子回路の実行に関連付けられた結果データのセットを生成するために、1つまたは複数の実行スケジュールを生成することができる。1316で、コンピュータ実装方法1300は、システム100によって、(例えば、軽減コンポーネント802によって)結果データをゼロ次ノイズ極限に外挿することによってエラーが軽減された結果を生成することを含むことができる。例えば、軽減コンポーネント802は、本明細書に記載されたさまざまな実施形態に従って、リチャードソン・エラー軽減プロトコルを実施することができる。
【0097】
本開示にはクラウド・コンピューティングに関する詳細な説明が含まれているが、本明細書において示された内容の実装は、クラウド・コンピューティング環境に限定されないと理解されるべきである。本発明の実施形態は、現在既知であるか、または今後開発される任意のその他の種類のコンピューティング環境と組み合わせて実装できる。
【0098】
クラウド・コンピューティングは、構成可能な計算リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供モデルであり、管理上の手間またはサービス・プロバイダとのやりとりを最小限に抑えて、これらのリソースを迅速にプロビジョニングおよび解放することができる。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つのデプロイメント・モデルを含むことができる。
【0099】
特徴は、次のとおりである。
【0100】
オンデマンドのセルフ・サービス:クラウドの利用者は、サーバの時間およびネットワーク・ストレージなどの計算能力を一方的に、サービス・プロバイダとの人間的なやりとりを必要とせず、必要に応じて自動的にプロビジョニングすることができる。
【0101】
幅広いネットワーク・アクセス:クラウドの能力は、ネットワークを経由して利用可能であり、標準的なメカニズムを使用してアクセスできるため、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による利用を促進する。
【0102】
リソース・プール:プロバイダの計算リソースは、プールされ、マルチテナント・モデルを使用して複数の利用者に提供される。さまざまな物理的および仮想的リソースが、要求に従って動的に割り当ておよび再割り当てされる。場所に依存しないという感覚があり、利用者は通常、提供されるリソースの正確な場所に関して管理することも知ることもないが、さらに高い抽象レベルでは、場所(例えば、国、州、またはデータセンター)を指定できる場合がある。
【0103】
迅速な順応性:クラウドの能力は、迅速かつ柔軟に、場合によっては自動的にプロビジョニングされ、素早くスケールアウトし、迅速に解放されて素早くスケールインすることができる。プロビジョニングに使用できる能力は、利用者には、多くの場合、任意の量をいつでも無制限に購入できるように見える。
【0104】
測定されるサービス:クラウド・システムは、計測機能を活用することによって、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザのアカウント)に適した抽象レベルで、リソースの使用を自動的に制御および最適化する。リソースの使用状況は監視、制御、および報告することができ、利用されるサービスのプロバイダと利用者の両方に透明性が提供される。
【0105】
サービス・モデルは、次のとおりである。
【0106】
SaaS(Software as a Service):利用者に提供される能力は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションの利用である。それらのアプリケーションは、Webブラウザ(例えば、Webベースの電子メール)などのシン・クライアント・インターフェイスを介して、さまざまなクライアント・デバイスからアクセスできる。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能を含む基盤になるクラウド・インフラストラクチャを、限定的なユーザ固有のアプリケーション構成設定を行う可能性を除き、管理することも制御することもない。
【0107】
PaaS(Platform as a Service):利用者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、利用者が作成または取得したアプリケーションをクラウド・インフラストラクチャにデプロイすることである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、デプロイされたアプリケーション、および場合によってはアプリケーション・ホスティング環境の構成を制御することができる。
【0108】
IaaS(Infrastructure as a Service):利用者に提供される能力は、処理、ストレージ、ネットワーク、およびその他の基本的な計算リソースのプロビジョニングであり、利用者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをデプロイして実行できる。利用者は、基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、およびデプロイされたアプリケーションを制御することができ、場合によっては、選択されたネットワーク・コンポーネント(例えば、ホスト・ファイアウォール)を限定的に制御できる。
【0109】
デプロイメント・モデルは、次のとおりである。
【0110】
プライベート・クラウド:このクラウド・インフラストラクチャは、組織のためにのみ運用される。この組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
【0111】
コミュニティ・クラウド:このクラウド・インフラストラクチャは、複数の組織によって共有され、関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスに関する考慮事項)を共有している特定のコミュニティをサポートする。これらの組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
【0112】
パブリック・クラウド:このクラウド・インフラストラクチャは、一般ユーザまたは大規模な業界団体が使用できるようになっており、クラウド・サービスを販売する組織によって所有される。
【0113】
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、データとアプリケーションの移植を可能にする標準化された技術または独自の技術(例えば、クラウド間の負荷バランスを調整するためのクラウド・バースト)によって固有の実体を残したまま互いに結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合である。
【0114】
クラウド・コンピューティング環境は、ステートレス、疎結合、モジュール性、および意味的相互運用性に重点を置いたサービス指向の環境である。クラウド・コンピューティングの中心になるのは、相互接続されたノードのネットワークを含んでいるインフラストラクチャである。
【0115】
ここで図14を参照すると、例示的なクラウド・コンピューティング環境1400が示されている。図示されているように、クラウド・コンピューティング環境1400は、クラウドの利用者によって使用されるローカル・コンピューティング・デバイス(例えば、パーソナル・デジタル・アシスタント(PDA:personal digital assistant)または携帯電話1404、デスクトップ・コンピュータ1406、ラップトップ・コンピュータ1408、または自動車コンピュータ・システム1410、あるいはその組み合わせなど)が通信できる1つまたは複数のクラウド・コンピューティング・ノード1402を含んでいる。ノード1402は、互いに通信してよい。ノード1402は、1つまたは複数のネットワーク内で、本明細書において前述されたプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはこれらの組み合わせなどに、物理的または仮想的にグループ化されてよい(図示されていない)。これによって、クラウド・コンピューティング環境1400は、クラウドの利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のないインフラストラクチャ、プラットフォーム、またはSaaS、あるいはその組み合わせを提供できる。図14に示されたコンピューティング・デバイス1404~1410の種類は、例示のみが意図されており、コンピューティング・ノード1402およびクラウド・コンピューティング環境1400は、任意の種類のネットワークまたはネットワーク・アドレス可能な接続(例えば、Webブラウザを使用した接続)あるいはその両方を経由して任意の種類のコンピュータ制御デバイスと通信することができると理解される。
【0116】
ここで図15を参照すると、クラウド・コンピューティング環境1400(図14)によって提供される機能的抽象レイヤのセットが示されている。本明細書に記載の他の実施形態で使用している同様の要素の繰り返しの説明は、簡潔さのために省略する。図15に示されたコンポーネント、レイヤ、および機能は、例示のみが意図されており、本発明の実施形態がこれらに限定されないということが、あらかじめ理解されるべきである。図示されているように、次のレイヤおよび対応する機能が提供される。
【0117】
ハードウェアおよびソフトウェア・レイヤ1502は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム1504、RISC(Reduced Instruction Set Computer)アーキテクチャベースのサーバ1506、サーバ1508、ブレード・サーバ1510、ストレージ・デバイス1512、ならびにネットワークおよびネットワーク・コンポーネント1514が挙げられる。一部の実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア1513およびデータベース・ソフトウェア1518を含む。
【0118】
仮想化レイヤ1520は、仮想サーバ1522、仮想ストレージ1524、仮想プライベート・ネットワークを含む仮想ネットワーク1526、仮想アプリケーションおよびオペレーティング・システム1528、ならびに仮想クライアント1530などの仮想的実体を提供できる抽象レイヤを備える。
【0119】
一例を挙げると、管理レイヤ1532は、以下で説明される機能を提供することができる。リソース・プロビジョニング1534は、クラウド・コンピューティング環境内でタスクを実行するために利用される計算リソースおよびその他のリソースの動的調達を行う。計測および価格設定1536は、クラウド・コンピューティング環境内でリソースが利用された際のコスト追跡、およびそれらのリソースの利用に対する請求書の作成と送付を行う。一例を挙げると、それらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでよい。セキュリティは、クラウドの利用者およびタスクのID検証を行うとともに、データおよびその他のリソースの保護を行う。ユーザ・ポータル1538は、クラウド・コンピューティング環境へのアクセスを利用者およびシステム管理者に提供する。サービス・レベル管理1540は、必要なサービス・レベルを満たすように、クラウドの計算リソースの割り当てと管理を行う。サービス水準合意(SLA:Service Level Agreement)計画および実行1542は、今後の要求が予想されるクラウドの計算リソースの事前準備および調達を、SLAに従って行う。
【0120】
ワークロード・レイヤ1544は、クラウド・コンピューティング環境で利用できる機能の例を示している。このレイヤから提供されてよいワークロードおよび機能の例としては、マッピングおよびナビゲーション1546、ソフトウェア開発およびライフサイクル管理1548、仮想クラスルーム教育の配信1550、データ解析処理1552、トランザクション処理1554、および量子コンピューティング1556が挙げられる。本発明のさまざまな実施形態は、本明細書に記載されたさまざまな実施形態に従って、図14および15を参照して説明されたクラウド・コンピューティング環境を利用して、1つまたは複数の量子コンピュータ108を制御するか、または1つまたは複数のエラー軽減プロトコルを実行するか、あるいはその両方を行うことができる。
【0121】
本発明は、任意の可能な統合の技術的詳細レベルで、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読ストレージ媒体を含んでよい。コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・フロッピー(R)・ディスク、ハード・ディスク、ランダム・アクセス・メモリ(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)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【0122】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【0123】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide area network)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル・ロジック回路、フィールドプログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
【0124】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【0125】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を含むような特定の方法で、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに機能するように指示できるものであってもよい。
【0126】
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれてもよく、それによって、一連の動作可能なステップを、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で実行させる。
【0127】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【0128】
本明細書に記載されたさまざまな実施形態のその他の背景を提供するために、図16および以下の説明は、本明細書に記載されたさまざまな実施形態が実装され得る適切なコンピューティング環境1600の概要を示すよう意図されている。実施形態は、1つまたは複数のコンピュータ上で実行されることができるコンピュータ実行可能命令の一般的状況において上で説明されたが、当業者は、実施形態が、他のプログラム・モジュールと組み合わせて、またはハードウェアとソフトウェアの組み合わせとして、あるいはその両方で実装されることもできるということを認識するであろう。
【0129】
通常、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造などを含む。さらに、当業者は、本発明の方法が、シングルプロセッサ・コンピュータ・システムまたはマルチプロセッサ・コンピュータ・システム、ミニコンピュータ、メインフレーム・コンピュータ、モノのインターネット(IoT:Internet of Things)デバイス、分散コンピューティング・システムだけでなく、パーソナル・コンピュータ、ハンドヘルド・コンピューティング・デバイス、マイクロプロセッサベースのコンシューマ・エレクトロニクスまたはプログラマブル・コンシューマ・エレクトロニクスなどを含む、他のコンピュータ・システム構成を使用して実践されることができ、これらの各々が1つまたは複数の関連するデバイスに動作可能に結合され得るということを理解するであろう。
【0130】
本明細書において示された実施形態は、通信ネットワークを介してリンクされたリモート処理デバイスによって特定のタスクが実行される、分散コンピューティング環境内で実践されることもできる。分散コンピューティング環境において、プログラム・モジュールは、ローカルおよびリモートの両方のメモリ・ストレージ・デバイスに配置され得る。例えば、1つまたは複数の実施形態では、コンピュータ実行可能コンポーネントは、1つまたは複数の分散されたメモリ・ユニットを含むことができるか、または1つまたは複数の分散されたメモリ・ユニットから成ることができる、メモリから実行されることができる。本明細書において使用されるとき、「メモリ」および「メモリ・ユニット」という用語は交換可能である。さらに、本明細書に記載された1つまたは複数の実施形態は、コンピュータ実行可能コンポーネントのコードを、分散された方法で、例えば、1つまたは複数の分散されたメモリ・ユニットからのコードを実行するように結合しているか、または協調して動作している複数のプロセッサで、実行することができる。本明細書において使用されるとき、「メモリ」という用語は、1つの位置での単一のメモリまたはメモリ・ユニット、あるいは1つまたは複数の位置での複数のメモリまたはメモリ・ユニットを包含することができる。
【0131】
コンピューティング・デバイスは、通常、コンピュータ可読ストレージ媒体、機械可読ストレージ媒体、または通信媒体、あるいはその組み合わせを含むことができる、さまざまな媒体を含み、本明細書では、次のように2つの用語が互いに異なって使用される。コンピュータ可読記憶媒体または機械可読ストレージ媒体は、コンピュータによってアクセスされることができる任意の使用可能なストレージ媒体であることができ、揮発性媒体および不揮発性媒体、取り外し可能な媒体および取り外し不可能な媒体を両方とも含む。例として、コンピュータ可読ストレージ媒体または機械可読ストレージ媒体は、コンピュータ可読命令または機械可読命令、プログラム・モジュール、構造化データまたは非構造化データなどの情報の格納のための任意の方法または技術に関連して実装されることができるが、これらに限定されない。
【0132】
コンピュータ可読ストレージ媒体は、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM:electrically erasable programmable read only memory)、フラッシュ・メモリまたはその他のメモリ技術、コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、ブルーレイ・ディスク(BD:Blu-ray disc)またはその他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたはその他の磁気ストレージ・デバイス、半導体ドライブまたはその他の半導体ストレージ・デバイス、あるいは望ましい情報を格納するために使用され得るその他の有形の媒体もしくは非一過性の媒体またはその両方を含むことができるが、これらに限定されない。これに関して、本明細書における「有形」または「非一過性」という用語は、ストレージ、メモリ、またはコンピュータ可読媒体に適用されるとき、それ自体が伝搬する一過性の信号のみを修飾語句として除外し、それ自体が単に伝搬する一過性の信号ではないすべての標準的なストレージ、メモリ、またはコンピュータ可読媒体に対する権利を放棄しないと理解されるべきである。
【0133】
コンピュータ可読ストレージ媒体は、媒体によって格納された情報に関するさまざまな動作のために、例えばアクセス要求、クエリ、またはその他のデータ検索プロトコルを介して、1つまたは複数のローカル・コンピューティング・デバイスまたはリモート・コンピューティング・デバイスによってアクセスされることができる。
【0134】
通信媒体は、通常、コンピュータ可読命令、データ構造、プログラム・モジュール、あるいはその他の構造化データまたは非構造化データを、変調データ信号(例えば、搬送波またはその他の搬送機構)などのデータ信号で具現化し、任意の情報配信または輸送媒体を含む。「変調データ信号」という用語は、1つまたは複数の信号内の情報をエンコードするような方法で設定または変更される特性のうちの1つまたは複数を有する信号のことを指す。例として、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、および音響、RF、赤外線、およびその他の無線媒体などの無線媒体を含むが、これらに限定されない。
【0135】
図16を再び参照すると、本明細書に記載された態様のさまざまな実施形態を実装するための例示的な環境1600がコンピュータ1602を含んでおり、コンピュータ1602は、処理ユニット1604、システム・メモリ1606、およびシステム・バス168を含んでいる。システム・バス1608は、システム・メモリ1606を含むが、これに限定されないシステム・コンポーネントを、処理ユニット1604に結合する。処理ユニット1604は、さまざまな市販されているプロセッサのいずれかであることができる。デュアル・マイクロプロセッサおよびその他のマルチプロセッサ・アーキテクチャが、処理ユニット1604として採用されることもできる。
【0136】
システム・バス1608は、さまざまな市販されているバス・アーキテクチャのいずれかを使用するメモリ・バス(メモリ・コントローラを含むか、または含まない)、ペリフェラル・バス、およびローカル・バスにさらに相互接続することができる複数の種類のバス構造のいずれかであることができる。システム・メモリ1606は、ROM1610およびRAM1612を含んでいる。基本入出力システム(BIOS:basic input/output system)は、ROM、消去可能プログラマブル読み取り専用メモリ(EPROM:erasable programmable read only memory)、EEPROMなどの、不揮発性メモリに格納されることができ、BIOSは、起動などの間にコンピュータ1602内の要素間で情報を転送するのに役立つ基本的なルーチンを含む。RAM1612は、データをキャッシュするためのスタティックRAMなどの高速なRAMを含むこともできる。
【0137】
コンピュータ1602は、内部ハード・ディスク・ドライブ(HDD:hard disk drive)1614(例えば、EIDE、SATA)、1つまたは複数の外部ストレージ・デバイス1616(例えば、磁気フロッピー(R)・ディスク・ドライブ(FDD:magnetic floppy disk drive)、メモリ・スティックまたはフラッシュ・ドライブ・リーダ、メモリ・カード・リーダなど)、および光ディスク・ドライブ1620(例えば、CD-ROMディスク、DVD、BDなどに対して読み取りまたは書き込みを行うことができるドライブ)をさらに含む。内部HDD1614がコンピュータ1602内にあるように示されているが、内部HDD1614は、外部の適切な筐体(図示されていない)内で使用するように構成されることもできる。さらに、環境1600内に示されていないが、HDD1614に加えて、またはHDD1614の代わりに、半導体ドライブ(SSD:solid state drive)が使用されることができる。HDD1614、外部ストレージ・デバイス1616、および光ディスク・ドライブ1620は、HDDインターフェイス1624、外部ストレージ・インターフェイス1626、および光学ドライブ・インターフェイス1628によって、システム・バス1608にそれぞれ接続されることができる。外部ドライブの実装のためのインターフェイス1624は、ユニバーサル・シリアル・バス(USB:Universal Serial Bus)インターフェイス技術、および電気電子技術者協会(IEEE:Institute of Electrical and Electronics Engineers)1394インターフェイス技術のうちの少なくとも1つまたは両方を含むことができる。その他の外部ドライブ接続技術が、本明細書に記載された実施形態の企図に含まれる。
【0138】
ドライブおよびそれらに関連するコンピュータ可読ストレージ媒体は、データ、データ構造、コンピュータ実行可能命令などの不揮発性ストレージを提供する。コンピュータ1602のドライブおよびストレージ媒体は、適切なデジタル形式での任意のデータの格納に対応する。上記のコンピュータ可読ストレージ媒体の説明は各種のストレージ・デバイスに言及しているが、コンピュータによって読み取ることができる他の種類のストレージ媒体が、現在存在しているか、または将来開発されるかに関わらず、例示的な動作環境内で使用されることもできるということ、およびさらに、任意のそのようなストレージ媒体が、本明細書に記載された方法を実行するためのコンピュータ実行可能命令を含むことができるということが、当業者によって理解されるべきである。
【0139】
オペレーティング・システム1630、1つまたは複数のアプリケーション・プログラム1632、その他のプログラム・モジュール1634、およびプログラム・データ1636を含む複数のプログラム・モジュールが、ドライブおよびRAM1612に格納されることができる。オペレーティング・システム、アプリケーション、モジュール、またはデータ、あるいはその組み合わせのすべてまたは一部が、RAM1612にキャッシュされることもできる。本明細書に記載されたシステムおよび方法は、さまざまな市販されているオペレーティング・システムまたはオペレーティング・システムの組み合わせを利用して実装されることができる。
【0140】
コンピュータ1602は、任意選択的に、エミュレーション技術を含むことができる。例えば、ハイパーバイザ(図示されていない)またはその他の媒介が、オペレーティング・システム1630のハードウェア環境をエミュレートすることができ、エミュレートされるハードウェアは、任意選択的に、図16に示されているハードウェアと異なることができる。そのような実施形態では、オペレーティング・システム1630が、コンピュータ1602でホストされた複数の仮想マシン(VM:virtual machine)のうちの1つのVMを含むことができる。さらに、オペレーティング・システム1630は、Java(R)実行時環境または.NETフレームワークなどの実行時環境をアプリケーション1632に提供することができる。実行時環境は、アプリケーション1632が実行時環境を含んでいる任意のオペレーティング・システム上で実行されることを可能にする、一貫性のある実行環境である。同様に、オペレーティング・システム1630はコンテナをサポートすることができ、アプリケーション1632はコンテナの形態であることができ、コンテナは、例えばアプリケーション用のコード、ランタイム、システム・ツール、システム・ライブラリ、および設定を含んでいる、軽量なスタンドアロンの実行可能なソフトウェアのパッケージである。
【0141】
さらに、コンピュータ1602は、信頼できる処理モジュール(TPM:trusted processing module)などのセキュリティ・モジュールを使用して有効化されることができる。例えば、TPMを使用すると、ブート・コンポーネントは、時間的に次のブート・コンポーネントをハッシュし、保護された値とのハッシュ結果の一致を待機してから、次のブート・コンポーネントを読み込む。このプロセスは、コンピュータ1602のコード実行スタック内の任意の層で行われることができ、例えば、アプリケーション実行レベルで、またはオペレーティング・システム(OS:operating system)カーネル・レベルで適用され、それによって、コード実行の任意のレベルでセキュリティを有効化する。
【0142】
ユーザは、1つまたは複数の有線/無線入力デバイス(例えば、キーボード1638、タッチ・スクリーン1640、およびマウス1642などのポインティング・デバイス)を介して、コマンドおよび情報をコンピュータ1602に入力することができる。その他の入力デバイス(図示されていない)は、マイクロホン、赤外線(IR:infrared)遠隔制御、無線周波(RF:radio frequency)遠隔制御、またはその他の遠隔制御、ジョイスティック、仮想現実コントローラまたは仮想現実ヘッドセットあるいはその両方、ゲーム・パッド、タッチペン、画像入力デバイス(例えば、カメラ)、ジェスチャー・センサ入力デバイス、視覚移動センサ(vision movement sensor)入力デバイス、感情または顔検出デバイス、生体測定入力デバイス(例えば、指紋または虹彩スキャナ)など含むことができる。これらおよびその他の入力デバイスは、多くの場合、システム・バス1608に結合されることができる入力デバイス・インターフェイス1644を介して処理ユニット1604に接続されるが、パラレル・ポート、IEEE1394シリアル・ポート、ゲーム・ポート、USBポート、IRインターフェイス、BLUETOOTH(R)インターフェイスなどの、その他のインターフェイスによって接続されることができる。
【0143】
モニタ1646またはその他の種類のディスプレイ・デバイスが、ビデオ・アダプタ1648などのインターフェイスを介してシステム・バス1608に接続されることもできる。モニタ1646に加えて、コンピュータは通常、スピーカ、プリンタなどの、その他の周辺出力機器(図示されていない)を含む。
【0144】
コンピュータ1602は、有線通信または無線通信あるいはその両方を介するリモート・コンピュータ1650などの1つまたは複数のリモート・コンピュータへの論理接続を使用して、ネットワーク環境内で動作することができる。リモート・コンピュータ1650は、ワークステーション、サーバ・コンピュータ、ルータ、パーソナル・コンピュータ、ポータブル・コンピュータ、マイクロプロセッサベースのエンターテインメント機器、ピア・デバイス、またはその他の一般的なネットワーク・ノードであることができ、通常は、コンピュータ1602に関連して説明された要素のうちの多くまたはすべてを含むが、簡潔にするために、メモリ/ストレージ・デバイス1652のみが示されている。図に示されている論理接続は、ローカル・エリア・ネットワーク(LAN)1654またはさらに大きいネットワーク(例えば、広域ネットワーク(WAN)1656)あるいはその両方との有線接続/無線接続を含む。そのようなLANおよびWANネットワーク環境は、事務所および会社において一般的であり、イントラネットなどの企業全体のコンピュータ・ネットワークを容易にし、それらはすべて、グローバル通信ネットワーク(例えば、インターネット)に接続することができる。
【0145】
コンピュータ1602は、LANネットワーク環境内で使用された場合、有線または無線あるいはその両方の通信ネットワーク・インターフェイスまたはアダプタ1658を介して、ローカル・ネットワーク1654に接続されることができる。アダプタ1658は、LAN1654との有線通信または無線通信を容易にすることができ、LAN1654は、無線モードでアダプタ1658と通信するために配置された無線アクセスポイント(AP:access point)を含むこともできる。
【0146】
コンピュータ1602は、WANネットワーク環境内で使用された場合、モデム1660を含むことができ、またはインターネットを経由するなどのWAN1656を経由して通信を確立するためのその他の手段によって、WAN1656上の通信サーバに接続されることができる。内部または外部に存在する有線デバイスまたは無線デバイスであることができるモデム1660は、入力デバイス・インターフェイス1644を介してシステム・バス1608に接続されることができる。ネットワーク環境内で、コンピュータ1602またはその一部に関連して示されたプログラム・モジュールは、リモート・メモリ/ストレージ・デバイス1652に格納されることができる。示されているネットワーク接続が例であり、コンピュータ間の通信リンクを確立するその他の手段が使用され得るということが、理解されるであろう。
【0147】
コンピュータ1602は、LANネットワーク環境内またはWANネットワーク環境内のいずれかで使用された場合、前述したような外部ストレージ・デバイス1616に加えて、または外部ストレージ・デバイス1616の代わりに、クラウド・ストレージ・システムまたはその他のネットワークベースのストレージ・システムにアクセスすることができる。一般に、コンピュータ1602とクラウド・ストレージ・システムの間の接続は、例えば、それぞれアダプタ1658またはモデム1660によって、LAN1654またはWAN1656を経由して確立されることができる。コンピュータ1602を関連するクラウド・ストレージ・システムに接続するときに、外部ストレージ・インターフェイス1626は、アダプタ1658またはモデム1660あるいはその両方を用いて、他の種類の外部ストレージと同様に、クラウド・ストレージ・システムによって提供されたストレージを管理することができる。例えば、外部ストレージ・インターフェイス1626は、クラウド・ストレージ・ソースがコンピュータ1602に物理的に接続されているかのように、クラウド・ストレージ・ソースへのアクセスを提供するように構成されることができる。
【0148】
コンピュータ1602は、無線通信において動作可能に配置された任意の無線デバイスまたは実体(例えば、プリンタ、スキャナ、デスクトップ・コンピュータまたはポータブル・コンピュータあるはその両方、ポータブル・データ・アシスタント、通信衛星、無線で検出可能なタグに関連付けられた機器のいずれかの部品または位置(例えば、キオスク、新聞売店、商品棚など)、および電話)と通信するよう機能することができる。この通信は、ワイヤレス・フィディリティ(Wi-Fi)およびBLUETOOTH(R)無線技術を含むことができる。したがって、この通信は、従来のネットワークと同様に事前に定義された構造であるか、または単に、少なくとも2つのデバイス間のアドホック通信であることができる。
【0149】
前述した内容は、システム、コンピュータ・プログラム製品、およびコンピュータ実装方法の単なる例を含んでいる。当然ながら、本開示を説明する目的で、コンポーネント、製品、またはコンピュータ実装方法、あるいはその組み合わせの考えられるすべての組み合わせについて説明することは不可能であるが、当業者は、本開示の多くのその他の組み合わせおよび並べ替えが可能であるということを認識できる。さらに、「含む」、「有する」、「所有する」などの用語が、発明を実施するための形態、特許請求の範囲、付録、および図面において使用される範囲では、それらの用語は、「備えている」が特許請求における暫定的な用語として使用されるときに解釈されるような、用語「備えている」と同様の方法で、包含的であるよう意図されている。さまざまな実施形態の説明は、例示の目的で提示されているが、網羅的であることは意図されておらず、開示された実施形態に制限されない。記載された実施形態の範囲と精神を逸脱することなく多くの変更および変形が可能であることは、当業者にとって明らかであろう。本明細書で使用された用語は、実施形態の原理、実際の適用、または市場で見られる技術を超える技術的改良を最も適切に説明するため、または他の当業者が本明細書で開示された実施形態を理解できるようにするために選択されている。
図1
図2
図3A
図3B
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16