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

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

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

特表2024-510703量子計算における読み出しエラーの低減
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-11
(54)【発明の名称】量子計算における読み出しエラーの低減
(51)【国際特許分類】
   G06N 10/70 20220101AFI20240304BHJP
   G06N 10/80 20220101ALI20240304BHJP
【FI】
G06N10/70
G06N10/80
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023545897
(86)(22)【出願日】2022-03-18
(85)【翻訳文提出日】2023-07-27
(86)【国際出願番号】 CN2022081719
(87)【国際公開番号】W WO2022194282
(87)【国際公開日】2022-09-22
(31)【優先権主張番号】17/206,996
(32)【優先日】2021-03-19
(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)【復代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】バルコウソス、パナギオティス
(72)【発明者】
【氏名】グエンター、ヤコブ マックス
(72)【発明者】
【氏名】タッチーノ、フランチェスコ
(72)【発明者】
【氏名】ウートン、ジェイムズ ロビン
(72)【発明者】
【氏名】タヴェルネッリ、イヴァーノ
(57)【要約】
量子プログラムにおけるエラーを低減するシステムが提供される。システムは、メモリに記憶されたコンピュータ実行可能な構成要素を実行するプロセッサを含み得る。コンピュータ実行可能な構成要素は、1つ又は複数の量子ビットに対する操作の後、読み出し前に、一度に循環反復符号に従って1つ又は複数の量子ビットをエンコーディングさせるコンパイル構成要素を含む。
【特許請求の範囲】
【請求項1】
メモリに記憶されたコンピュータ実行可能な構成要素を実行するプロセッサ、前記コンピュータ実行可能な構成要素が、
1つ又は複数の量子ビットに対する操作の後、読み出し前に、一度に循環反復符号に従って前記1つ又は複数の量子ビットをエンコーディングさせるコンパイル構成要素を有する
を備えるシステム。
【請求項2】
前記コンピュータ実行可能な構成要素が、前記1つ又は複数の量子ビットのうちの特定の量子ビットに結合された補助量子ビットの第1のチェーン、前記特定の量子ビットに結合された補助量子ビットの第2のチェーン、及び前記補助量子ビットの第1のチェーン及び前記補助量子ビットの第2のチェーンを接合するフラグ量子ビットを識別する分岐識別構成要素をさらに備え、前記1つ又は複数の量子ビットを前記エンコーディングすることが、
反復エンコーディングを使用して前記補助量子ビットの第1のチェーンをエンコーディングすること;及び
前記反復エンコーディングを使用して前記補助量子ビットの第2のチェーンをエンコーディングすること
によって前記特定の量子ビットをエンコーディングすることを備える、請求項1に記載のシステム。
【請求項3】
前記1つ又は複数の量子ビットが複数の量子ビットを有し、前記エンコーディングすることが、前記複数の量子ビットのうちの第1の量子ビット及び前記複数の量子ビットのうちの第2の量子ビットを並列かつ互いに独立して循環反復エンコーディングすることを有する、請求項1に記載のシステム。
【請求項4】
量子ハードウェアに、前記フラグ量子ビットの状態を測定させる監視構成要素をさらに備え、前記状態が、前記特定の量子ビットの誤ったエンコーディング又は誤りのないエンコーディングのうちの1つを表す、請求項2に記載のシステム。
【請求項5】
制御されたNOT(CNOT)ゲートが、前記フラグ量子ビット及び前記補助量子ビットの第1のチェーンの端の補助量子ビットを結合し、第2のCNOTが、前記フラグ量子ビットを前記補助量子ビットの第2のチェーンの端の補助量子ビットに結合する、請求項2に記載のシステム。
【請求項6】
前記特定の量子ビット、前記補助量子ビットの第1のチェーン、前記補助量子ビットの第2のチェーン、及び前記フラグ量子ビットが、循環接続を有するレイアウトで配置される、請求項2に記載のシステム。
【請求項7】
前記1つ又は複数の量子ビットが、重六角形の接続性を示す量子ビットレイアウトに含まれる、請求項1に記載のシステム。
【請求項8】
前記1つ又は複数の量子ビットが、クラウドベースの量子コンピュータ又はローカル量子コンピュータのうちの1つの量子プロセッサを構成する、請求項1に記載のシステム。
【請求項9】
プロセッサによって、1つ又は複数の量子ビットに対する操作の後、読み出し前に、一度に循環反復符号に従って前記1つ又は複数の量子ビットをエンコーディングさせる段階を備える、コンピュータ実装方法。
【請求項10】
前記プロセッサによって、前記1つ又は複数の量子ビットのうちの特定の量子ビットに結合された補助量子ビットの第1のチェーン、前記特定の量子ビットに結合された補助量子ビットの第2のチェーン、及び前記補助量子ビットの第1のチェーン及び前記補助量子ビットの第2のチェーンを接合するフラグ量子ビットを識別する段階をさらに備え、ここで、前記1つ又は複数の量子ビットを前記エンコーディングする段階が、
反復エンコーディングに従って、前記補助量子ビットの第1のチェーンをエンコーディングすること;及び
反復エンコーディングに従って、前記補助量子ビットの第2のチェーンをエンコーディングすること
によって前記特定の量子ビットをエンコーディングする段階を有する、請求項9に記載のコンピュータ実装方法。
【請求項11】
前記1つ又は複数の量子ビットは複数の量子ビットを有し、前記1つ又は複数の量子ビットを前記エンコーディングする段階は、前記複数の量子ビットのうちの第1の量子ビット及び前記複数の量子ビットのうちの第2の量子ビットを並列かつ互いに独立してエンコーディングする段階を有する、請求項9に記載のコンピュータ実装方法。
【請求項12】
前記プロセッサによって、量子ハードウェアに前記フラグ量子ビットの状態を測定させる段階をさらに備え、前記状態が、前記特定の量子ビットの誤ったエンコーディング又は誤りのないエンコーディングのうちの1つを表す、請求項10に記載のコンピュータ実装方法。
【請求項13】
前記プロセッサによって、量子観測量の時間伝播の量子計算において前記1つ又は複数の量子ビットを前記エンコーディングする段階を適用する段階をさらに備える、請求項9に記載のコンピュータ実装方法。
【請求項14】
前記プロセッサによって、変分量子アルゴリズムにおいて前記1つ又は複数の量子ビットを前記エンコーディングする段階を適用する段階をさらに備える、請求項9に記載のコンピュータ実装方法。
【請求項15】
前記特定の量子ビット、前記補助量子ビットの第1のチェーン、前記補助量子ビットの第2のチェーン、及び前記フラグ量子ビットが、循環接続を有するレイアウトで配置される、請求項9に記載のコンピュータ実装方法。
【請求項16】
量子計算における読み出しエラーを低減するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品が、プログラム命令を具現化するコンピュータ可読記憶媒体を備え、前記プログラム命令が、プロセッサに、
複数の量子ビットに対する操作の後、読み出し前に、一度に循環反復符号に従って1つ又は複数の量子ビットをエンコーディングさせる
ように、前記プロセッサによって実行可能である、コンピュータプログラム製品。
【請求項17】
前記プログラム命令が、前記プロセッサに、前記1つ又は複数の量子ビットのうちの特定の量子ビットに結合された補助量子ビットの第1のチェーン、前記特定の量子ビットに結合された補助量子ビットの第2のチェーン、及び前記補助量子ビットの第1のチェーン及び前記補助量子ビットの第2のチェーンを接合するフラグ量子ビットを識別させるように、前記プロセッサによってさらに実行可能であり、前記1つ又は複数の量子ビットを前記エンコーディングすることが、
反復エンコーディングを使用して前記補助量子ビットの第1のチェーンをエンコーディングすること;及び
前記反復エンコーディングを使用して前記補助量子ビットの第2のチェーンをエンコーディングすること
によって前記特定の量子ビットをエンコーディングすることを有する、請求項16に記載のコンピュータプログラム製品。
【請求項18】
前記1つ又は複数の量子ビットが複数の量子ビットを有し、前記1つ又は複数の量子ビットを前記エンコーディングすることが、前記複数の量子ビットのうちの第1の量子ビット及び前記複数の量子ビットのうちの第2の量子ビットを並列にエンコーディングすることを有する、請求項16に記載のコンピュータプログラム製品。
【請求項19】
前記プログラム命令が、前記プロセッサに、量子ハードウェアに前記フラグ量子ビットの状態を測定させることを行わせるように、前記プロセッサによってさらに実行可能であり、前記状態が、前記複数の量子ビットの誤ったエンコーディング又は誤りのないエンコーディングのうちの1つを表す、請求項17に記載のコンピュータプログラム製品。
【請求項20】
前記特定の量子ビット、前記補助量子ビットの第1のチェーン、前記補助量子ビットの第2のチェーン、及び前記フラグ量子ビットが、循環接続を有するレイアウトで配置される、請求項17に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の1つ又は複数の実施形態は、量子計算における読み出しエラーの低減に関する。
【0002】
量子コンピュータは、量子デバイスに含まれる量子情報をデコヒーレンス及び緩和し得る環境に結合された量子デバイスから構築される。したがって、そのようなデバイスは外部ノイズの影響を受け得る。結果として、量子デバイスによって形成された量子プロセッサにはノイズが多くなり得、量子プロセッサを使用する量子計算にエラーが存在し得る。そのようなノイズ又はエラーは、量子デバイスのアーキテクチャに関係なく存在し得る。
【0003】
読み出しエラーは、量子計算を定義する操作に従って量子デバイスが操作された後、量子計算で利用される量子デバイスの量子測定から発生し得る。したがって、読み出しエラーを低減させるための改善された技術が所望され得る。
【発明の概要】
【課題を解決するための手段】
【0004】
以下、本発明の1つ又は複数の実施形態の基本的な理解を提供するための概要を示す。本概要は、主要な要素又は重要な要素を識別すること、又は特定の実施形態の任意の範囲又は特許請求の範囲の任意の範囲を示すことを意図するものではない。その唯一の目的は、後で示されるより詳細な説明の前置きとして、概念を簡略化された形式で示すことである。
【0005】
1つの実施形態によれば、システムが提供される。システムは、メモリに記憶されたコンピュータ実行可能な構成要素を実行するプロセッサを含む。コンピュータ実行可能な構成要素は、1つ又は複数の量子ビットに対する操作の後、読み出し前に、一度に循環反復符号に従って1つ又は複数の量子ビットをエンコーディングさせるコンパイル構成要素を含む。したがって、読み出しを定義する測定は、エンコードされた量子ビット状態に作用する唯一の操作であるが、1つ又は複数の量子ビットの接合状態の準備を記述する他のすべての操作は、エンコーディングなしで実装できる。したがって、循環反復符号を使用して、1つ又は複数の量子ビットをエンコーディングすることにより、エンコードされた量子ビットを含む量子計算における読み出しエラーを低減させることができる。
【0006】
さらに、又は他の実施形態では、コンピュータ実行可能な構成要素には、1つ又は複数の量子ビットのうちの特定の量子ビットに結合された補助量子ビットの第1のチェーン、特定の量子ビットに結合された補助量子ビットの第2のチェーン、及び補助量子ビットの第1のチェーン及び補助量子ビットの第2のチェーンを接合するフラグ量子ビットを識別する分岐識別構成要素も含まれる。1つ又は複数の量子ビットのエンコーディングは、反復エンコーディングを使用して補助量子ビットの第1のチェーンをエンコーディングすること、及び反復エンコーディングを使用して補助量子ビットの第2のチェーンをエンコーディングすることによって特定の量子ビットをエンコーディングすることを含む。
【0007】
別の実施形態によれば、コンピュータ実装方法が提供される。コンピュータ実装方法は、プロセッサによって、1つ又は複数の量子ビットに対する操作の後、読み出し前に、一度に循環反復符号に従って1つ又は複数の量子ビットをエンコーディングさせる段階を含む。
【0008】
さらなる実施形態によれば、量子計算における読み出しエラーを低減させるためのコンピュータプログラム製品が提供される。コンピュータプログラム製品は、そのコンピュータプログラム製品で具現化されたプログラム命令を有するコンピュータ可読記憶媒体を含む。プログラム命令は、プロセッサに、複数の量子ビットに対する操作の後、読み出し前に、一度に循環反復符号を使用して、1つ又は複数の量子ビットをエンコーディングさせることを行わせるように、プロセッサによってさらに実行可能である。
【図面の簡単な説明】
【0009】
図1】本明細書に記載の1つ又は複数の実施形態による、量子計算における読み出しエラーを低減させるための動作環境の非限定的な例を示す。
【0010】
図2】本明細書に記載の1つ又は複数の実施形態による、量子計算における読み出しエラーを低減させるためのコンピューティングシステムの非限定的な例を示す。
【0011】
図3】本明細書に記載の1つ又は複数の実施形態による、チェーン内の特定の量子ビットデバイスの循環反復エンコーディングのための量子ビットデバイスの閉ループチェーンの概略的な非限定的な例を示す。
【0012】
図4A】本明細書に記載の1つ又は複数の実施形態による、単一量子ビットに対する操作を表すユニタリ(U)及び単一量子ビットの循環反復エンコーディングを表す別のユニタリ(Uエンコーディング)の間の時間的関係を概略的に示す。
【0013】
図4B】本明細書に記載の1つ又は複数の実施形態による、2つの量子ビットに対する操作を表すユニタリ(U)及び、2つの量子ビットの循環反復エンコーディングを表す2つのユニタリ(U(0) エンコーディング及びU(1) エンコーディング)の間の時間的関係を概略的に示す。
【0014】
図5A】本明細書に記載の態様による、循環反復エンコーディングを表すユニタリの非限定的な例を示す。
【0015】
図5B】本明細書に記載の態様による、それぞれの量子ビットの循環反復エンコーディングを表すユニタリの非限定的な例を示す。
【0016】
図6A】本明細書に記載の1つ又は複数の実施形態による、量子計算における読み出しエラーを低減させるための動作環境に含まれる量子ビットデバイスのレイアウトの非限定的な例を示す。
【0017】
図6B図6Aに示すレイアウトに存在する閉ループチェーン650の非限定的な例を示す。
【0018】
図7A】本明細書に記載の1つ又は複数の実施形態による、量子計算における読み出しエラーを低減させるための動作環境に含まれる量子ビットデバイスの別のレイアウトの非限定的な例を示す。
【0019】
図7B図7Aに示すレイアウトに存在する閉ループチェーン650の非限定的な例を示す。
【0020】
図7C】本明細書に記載の1つ又は複数の実施形態による、図7Aに示すレイアウトに存在し、2つの量子ビットの循環反復エンコーディングに利用され得る2つの閉ループチェーンの非限定的な例を示す。
【0021】
図8】本明細書に記載の1つ又は複数の実施形態による、量子計算における読み出しエラーを低減させるためのコンピューティングシステムの非限定的な例を示す。
【0022】
図9】本明細書に記載の1つ又は複数の実施形態による、水素化ヘリウム(HeH)分子の電子エネルギ構造を計算するための量子回路の非限定的な例を示す。
【0023】
図10】本明細書に記載の1つ又は複数の実施形態による、循環反復エンコーディングを使用した、様々な原子間距離でのHeH分子のエネルギ期待値の量子計算の結果を示す。
【0024】
図11】本明細書に記載の1つ又は複数の実施形態による、循環反復エンコーディングを使用した、様々な原子間距離でのH分子のエネルギ期待値の量子計算の結果を示す。
【0025】
図12】本明細書に記載の1つ又は複数の実施形態による、モデルハミルトニアンを使用して観測量の時間発展を計算するための量子回路の非限定的な例を示す。
【0026】
図13】本明細書に記載の1つ又は複数の実施形態による、横磁場イジングモデルにおけるz方向に沿った総スピン成分の時間発展の量子計算の結果を示す。
【0027】
図14】本明細書に記載の1つ又は複数の実施形態による、量子計算における読み出しエラーを低減させるためのコンピュータ実装方法の非限定的な例を示す。
【0028】
図15】本明細書に記載の1つ又は複数の実施形態を実施できる動作環境の非限定的な例のブロック図である。
【0029】
図16】本明細書に記載の1つ又は複数の実施形態による、クラウドコンピューティング環境の非限定的な例のブロック図である。
【0030】
図17】本明細書に記載の1つ又は複数の実施形態による、抽象化モデル層の非限定的な例のブロック図である。
【発明を実施するための形態】
【0031】
本開示の実施形態は、量子計算における読み出しエラーの低減の問題に対処する。そのために、本開示の実施形態は、冗長性を利用して量子情報をノイズの影響から保護する量子反復符号の例示的な形式を利用する。具体的には、本開示の実施形態は、循環反復エンコーディングに従って、1つ又はいくつかの量子ビットデバイスをそれぞれの状態でエンコーディングさせる。これらのエンコードされた状態は、1つ又は複数の量子ビットデバイスでの操作が実行された後、読み出し前に一度にエンコードされる。したがって、読み出しを定義する測定は、エンコードされた量子ビット状態に作用する唯一の操作であるが、量子計算を定義する他のすべての操作はエンコーディングなしで実装できる。循環反復エンコーディングは、量子ビットデバイスの閉ループチェーンを利用する。そのようなチェーン内の量子ビットデバイスは、エンコーディングのために識別される。その量子ビットデバイスはルート量子ビットと呼ばれる。補助量子ビットデバイスの第1及び第2のチェーンが閉ループチェーン内で識別される。補助量子ビットデバイスのこれらのチェーンのそれぞれは、ルート量子ビットに結合される。フラグ量子ビットと呼ばれる別の量子ビットデバイスも識別される。フラグ量子ビットは、補助量子ビットの第1及び第2のチェーンに加わる。
【0032】
一連の制御されたNOT(CNOT)ゲートは、補助量子ビットの第1及び第2のチェーンのそれぞれで反復エンコーディングを定義する。CNOTゲートはまた、補助量子ビットの第1のチェーンの端にある量子ビットデバイスも結合する。別のCNOTゲートはさらに、補助量子ビットの第2のチェーンの端にある量子ビットデバイスにフラグ量子ビットを結合する。どちらの場合も、フラグ量子ビットはそのようなCNOTゲートのターゲットである。したがって、補助量子ビットの両方のチェーンのフラグ量子ビットへのそれぞれの結合と共に、それらのチェーンの反復エンコーディングは、循環反復エンコーディングを構成する。フラグ量子ビットの単一量子ビット状態を測定することで、エンコーディングの品質を検出できる。誤りのないエンコーディングにより、ルート量子ビットの単一量子ビット状態に対してエラーが低減された結果を提供する多数決による評価が行われ得る。
【0033】
本明細書に記載の例示的な循環反復エンコーディングは、様々なタイプの量子計算に適用できる。電子構造の量子計算及びモデルハミルトニアンの時間伝播の結果から、循環反復エンコーディングが読み出しエラー低減のための一般的な技術と比較してより高い精度をもたらすことが明らかになった。
【0034】
本開示の例示的な実施形態は、読み出し校正行列、非循環反復符号、及び小規模スタビライザ符号などの読み出しエラーを低減させるための一般的な手法と比較して、いくつかの利点を提供し得る。一例として、本開示の実施形態は、エンコードされる量子回路に制約を課すことを回避し、任意の数の量子ビットデバイスの単一量子ビット状態をエンコードするために利用できる。明らかに対照的に、一般的なスタビライザ符号は2つの量子ビットデバイスの単一量子ビット状態しかエンコードできず、限られた論理ゲートのセットに適用できる。別の例として、読み出しエラーを低減させることによって、本開示の実施形態により、量子計算からより正確な推定値がもたらされ得る。結果として、本明細書に記載の実施形態を使用して、化学的精度に取り組み、期待値及び物理的観測量のダイナミクスをより良く推定できる。その点で、本開示の実施形態は、変分アルゴリズムに適用できるだけでなく、本実施形態は、量子回路によって生成される特定の波動関数における観測量の測定を伴うシミュレーションにも適用できる。さらに別の例として、本開示の実施形態は、古典的な測定後の読み出しエラーの低減とは明らかに対照的に、指数関数的に大きくならない。したがって、多くの量子ビットの循環反復エンコーディングを実装でき、その結果、読み出しエラーが低減され、それに関連付けられたエンコードされた量子ビットを利用する量子計算の精度が向上する。
【0035】
本開示のいくつかの例示的な実施形態は、単に例示のために量子ビットデバイス及び量子回路を参照して説明される。しかし、本開示はその点に限定されるものではない。実際、本開示の原理は、量子演算の任意の表現、及び量子コンピュータの物理的実装で利用される任意のタイプの量子デバイス(高次元粒子デバイスなど)に適用できる。さらに、単に例示として、本開示の循環反復強度によってもたらされる改善が、電子構造計算及びモデルハミルトニアンの時間伝播の量子計算に対して示されている。さらに、本開示の原理は、これらのタイプの量子計算に限定されるものではない。実際、本開示の循環反復エンコーディングは、物理学、化学、材料科学、サイバセキュリティ、生物情報学、及び同様のもののような幅広い分野の量子計算に広く適用できる。
【0036】
図面を参照すると、図1は、本明細書に記載の1つ又は複数の実施形態による、量子計算における読み出しエラーを低減させるための動作環境100の非限定的な例を示す。動作環境100は、コンパイラシステム120に動作可能に結合されたユーザデバイス110(例えば、古典的なコンピュータ)を含む。ユーザデバイス110は、量子プログラム112を定義するデータを、コンパイルのためにコンパイラシステム120に送信できる。量子プログラム112は、1つ又はいくつかの量子アルゴリズムを定義できる。したがって、量子プログラム112は、量子プログラム112の少なくとも一部を表す量子回路群114を含むことができる。量子回路群114は、1又は複数の量子回路を含む。場合によっては、量子回路群114は、量子プログラム112に含まれる量子アルゴリズム(変分量子アルゴリズムなど)を表す特定の量子回路を含む。
【0037】
量子回路群114内の各量子回路は、様々な量子ゲートの1つ又はいくつかを含むことができる。これらの量子ゲートは、他の多くのゲートの中でも、例えば、パウリ演算子を表すパウリゲート(例えば、Xゲート又はYゲート);アダマールゲート;回転ゲート(例えば、Rゲート及び位相シフトゲート);制御された位相シフトゲート;CNOTゲート;トフォリ(又は制御-制御-NOT)ゲート:スワップゲート;フレドキンゲートを含み得る。量子プログラム112を定義するデータは、いくつかの実施形態では、量子回路群114の第1の量子回路を構成する1つ又はいくつかの第1の量子ゲートを定義する第1のデータを含み得る。量子プログラム112を定義するデータはまた、量子回路群114の第2の量子回路を構成する1つ又はいくつかの第2の量子ゲートを定義する第2のデータを含み得る。さらに、又はいくつかの実施形態では、特定の量子ゲートを定義するのではなく、量子プログラム112を定義するデータは、量子回路群114の少なくとも1つを構成する1つ又はいくつかの一般的なユニタリ行列Uを定義する第1のデータを含み得る。
【0038】
コンパイラシステム120は、量子プログラム112を定義するデータを受信できる。いくつかの実施形態では、図2に示すように、コンパイラシステム120は、量子プログラム112を定義するデータを受信できる取込構成要素210を含み得る。図2にさらに示すように、コンパイラシステム120はまた、他の構成要素、1つ又はいくつかのプロセッサ260、及び1つ又はいくつかのメモリデバイス270(メモリ270と呼ばれる)を含み得る。プロセッサ260及びメモリ270は、互いに電気的、光学的、及び/又は通信可能に接続できる。
【0039】
図1の参照に戻ると、次いで、コンパイラシステム120は、量子ハードウェア130上で実行するために量子プログラム112をコンパイルできる。いくつかの実施形態では、量子ハードウェア130は、クラウドベースの量子コンピュータを具現化するか、又はクラウドベースの量子コンピュータを含む。他の実施形態では、量子ハードウェア130は、ローカル量子コンピュータを具現化するか、又はローカル量子コンピュータを含む。その空間的フットプリントに関係なく、量子ハードウェア130は、特定のレイアウトで配置された複数の量子ビットデバイス140を含み得る。量子ビットデバイスは、いくつかのタイプのうちの1つのソリッドステートデバイスになり得る。量子ビットデバイス140の各量子ビットデバイスは、量子ビットデバイスに含まれる量子情報をデコヒーレンス及び緩和する環境に結合される。したがって、量子ハードウェア130はノイズがあり得る。単に例示として、量子ビットデバイスは、ジョセフソン接合デバイス、半導体量子ドット、又は半導体材料の欠陥(Si及びGeの空孔など)であり得る。他の実施形態では、量子ビットデバイスは、イオントラップ内に構築された原子量子ビットを含み得る。例えば、原子量子ビットは、カルシウムイオン、イッテルビウムイオン、又は同様のイオンで具現化できる。1つの実施形態では、量子ハードウェア130は、それぞれトランスモンで具現化される複数の量子ビットデバイス124を含む。
【0040】
場合によっては、複数の量子ビットデバイス140の特定のレイアウトは、重六角形の接続性を示し得る。そのようなレイアウトには、閉ループチェーンを形成する量子ビットデバイスの1つ又はいくつかのチェーンが含まれる。したがって、そのようなチェーン内の量子ビットデバイスは循環接続性を有すると言われる。図3の略図300は、量子ビットデバイスの閉ループチェーンを概略的に示す。場合によっては、複数の量子ビットデバイス140の特定のレイアウトは、量子ビットのいくつかの閉ループチェーンをサポートする接続性を示し得る。これらの量子ビットのいくつかの閉ループチェーンのそれぞれは、本明細書に記載の循環反復エンコーディングに従って量子ビットをエンコーディングすることを可能にし得る。
【0041】
さらに図1を参照すると、コンパイラシステム120は、量子プログラム112のコンパイル中に量子ビットデバイス140に含まれる量子ビットデバイスの循環接続を利用できる。具体的には、コンパイラシステム120は、循環反復(CR)エンコーディングに従って、閉ループチェーン内の1つ又は複数の量子ビットをエンコーディングさせ得る。
【0042】
量子ハードウェア130における読み出し操作に影響を与える不正確さの主な原因は、計算基底でのビット反転によって表すことができるため、コンパイラシステム120は、その形式の読み出しエラーを検出して修正するように特別に設計された反復エンコーディングスキームを実装できる。具体的には、一般的な状態
【数1】
で与えられる量子ビットデバイスの閉ループチェーン内の特定の量子ビットデバイスを検討する。その特定の量子ビットデバイスは、本明細書ではルート量子ビットと呼ばれる。最初に状態|0>で準備されたnrep追加の量子ビットデバイスを使用することにより、次のマッピングは以下のように表すことができる。
【数2】
rep追加量子ビットデバイスは、本明細書では補助量子ビットと呼ばれる。図3の略図350に示す例では、ルート量子ビットはqで示され、補助量子ビットは白丸で示されている。補助量子ビットの第1のサブセットは、第1の反復分岐を形成する。第1の反復分岐内の量子ビットデバイスは、a、a、…、aN-1、及びaで示される。ここで、N=nrep/2である。補助量子ビットの第2のサブセットは、第2の反復分岐を形成する。第2の反復分岐内の量子ビットデバイスは、b、b、…、bN-1、及びbで示される。説明を簡単にするために、本開示の実施形態は、nrep+1が奇数である反復符号に関して説明される。
【0043】
前述のマッピングは反復エンコーディングを表しており、nrepスタビライザ{Z;Z,…,Znrep-1nrep}によって正式に生成できる。ここで、Zは量子ビットデバイスiに適用されるパウリσ量子ゲートである。ルート量子ビットはインデックスi=0に関連付けられる。状態
【数3】
は状態
【数4】
のnrep+1コピーと同等ではないことに留意されたい。これは一般に複製禁止定理に違反し、元の単一量子ビット状態のZ演算子に関連付けられた固有値のみが重複して記憶されるためである。結果として、パウリX演算子に関連付けられたビットフリップチャネルによって発生するエラーを、そのような反復エンコーディングによって検出し、低減できる。
【0044】
コンパイラシステム120は、1つ又は複数の量子ビットに対する操作の後、かつ量子測定(読み出しと呼ばれる)の前に、一度に循環反復エンコーディングを実装できる。すなわち、これらの測定は、エンコードされた状態に作用する唯一の操作である。1つ又は複数のルート量子ビットの接合状態の準備を記述する他のすべての操作は、エンコーディングなしで実装できる。そのような他の操作は、特定の量子計算の少なくとも一部を表し、エンコードされている1つ又は複数のルート量子ビットに作用するユニタリUによって一般的に表すことができる。したがって、そのユニタリの後に1つ又は複数の第2のユニタリが続く可能性があり、各ユニタリは、エンコードされるルート量子ビットのそれぞれの循環反復エンコーディングに関連する演算を表す。さらに、いくつかの実施形態では、1つ又は複数の第2のユニタリのそれぞれは、同じエンコーディング演算の構造を有する。したがって、同じエンコーディングユニタリを利用して、エンコーディングされている複数の量子ビットのセット内の各量子ビットをエンコードできる。したがって、複数のルート量子ビットのそれぞれを個別にエンコードでき、その結果、複数のルート量子ビットの循環反復エンコーディングが行われる。
【0045】
例示として、図4Aは、1量子ビットの計算を表すUで示されるユニタリ410及び、ルート量子ビットqの循環反復エンコーディングに関する演算を表すUエンコーディングで示される第2のユニタリ420の間の時間的関係を示す概略的な量子回路400を示す。測定値は、図4Aの右側にダイヤルアイコンとして概略的に示されている。
【0046】
別の例示として、図4Bは、2量子ビットの計算を表すUで示されるユニタリ460及び、それぞれがそれぞれのルート量子ビットの循環反復エンコーディングに関する演算を表す2つのユニタリの間の時間的関係を示す概略的な量子回路450を示す。U(0) エンコーディングによって示される第1のユニタリ470は、2つの第1の反復分岐A0及びB0並びにフラグ量子ビットfを操作することによって第1のルート量子ビットqをエンコードする。反復分岐A0は、a0、a0、…、a0N-1、及びa0で示される補助量子ビットを含み、反復分岐B0は、b0、b0、…、b0N-1、及びb0で示される補助量子ビットを含む。U(1) エンコーディングによって示される第2のユニタリ470は、2つの反復分岐A1及びB1並びにフラグ量子ビットfを操作することによって第2のルート量子ビットqをエンコードする。反復分岐A1は、a1、a1、…、a1N-1、及びa1で示される補助量子ビットを含み、反復分岐B1は、b1、b1、…、b1N-1、及びb1で示される補助量子ビットを含む。したがって、ルート量子ビットq及びqは、個別に(例えば、互いに独立して)かつ並列にエンコードされる。さらに、U(0) エンコーディング及びU(1) エンコーディングは同じエンコーディング演算の構造を有している。q及びqを個別にエンコードした後、q及びqを含む量子ビットのレイアウトに循環接続が存在するならば、これらのエンコードされた量子ビットのそれぞれを、エンコードされた量子ビットのネットワークに配置できる。測定値は、この場合も図4Bの右側にダイヤルアイコンとして概略的に示されている。
【0047】
循環反復エンコーディングは、例えば、nrep補助量子ビットをターゲットとしたnrep CNOTゲートを適用することで実行できる。最後に、いくつかの実施形態では、コンパイラシステム120は、各セットがnrep量子ビットデバイスを有する補助量子ビットの2つのセットを識別できる分岐識別構成要素220(図2)を含み得る。これらのセットのそれぞれが反復分岐を構成する。分岐識別構成要素220は、ルート量子ビット(例えば、図3のq)及び補助量子ビットデバイスの両方のセットに接続されている別の量子ビットデバイスを識別することもできる。他の量子ビットデバイスは、フラグ量子ビット(図3の略図350でfで示す)として機能する。
【0048】
前述したように、ユニタリUエンコーディングは循環反復エンコーディングを表す。ユニタリUエンコーディングは、補助量子ビットの第1及び第2のセットによってそれぞれ定義される第1及び第2の反復分岐に対応する補助レジスタに作用することにより、各ルート量子ビットをそのエンコーディングバージョンにマッピングする。そのユニタリUエンコーディングは、エンコードされる複数の量子ビットのセット内の各量子ビットをエンコードするために適用できる。上記で説明したように、2つの量子ビットの場合、U(0) エンコーディング図4B)はUエンコーディングと同じであり、U(1) エンコーディング図4B)もUエンコーディングと同じである。
【0049】
場合によっては、Uエンコーディングは、エンコーディングを定義するCNOT操作の配置を含む。そのような配置は、補助量子ビットを順次ターゲットとする一連のCNOT操作に対応できる(例については図2を参照)。コンパイラシステム120は、Uエンコーディングを構成できる。そのために、いくつかの実施形態では、コンパイラシステム120は、第1の反復分岐、第2の反復分岐、フラグ量子ビット、及びルート量子ビットを定義するデータを受信できるコンパイル構成要素230を含み得る。場合によっては、そのようなデータは分岐識別構成要素220から受信できる。他の場合には、コンパイル構成要素220は、そのようなデータをレイアウト272からロードできる。次いで、コンパイル構成要素230は、受信したデータを使用してUエンコーディングを構成できる。
【0050】
循環反復エンコーディングでは、第1の反復分岐及び第2の反復分岐が、状態|0>で初期化されるフラグ量子ビットによって接続される分割反復レイアウトを利用する。第1の反復分岐及び第2の反復分岐のそれぞれは、同じ数の量子ビットデバイス(上記で説明したnrep)を有し、CNOTゲートによってフラグ量子ビットに接続し、どちらの場合もフラグ量子ビットがターゲットになる。フラグ量子ビットは、図3の略図350でfで示されている。循環反復エンコーディングは補助(auxiliary/ancillary/ancilla)量子ビットの反復分岐に依存するため、2N補助量子ビットの単一チェーンを使用する反復エンコーディングに比べてエラー伝播に対する感度が低下する可能性がある。さらに、UエンコーディングのCNOTゲートの多くは並列に実行でき、したがって、有効なエンコーディング回路の深さが削減される。
【0051】
図5Aは、本明細書に記載の態様による、Uエンコーディングの非限定的な例を示す。ユニタリ510はUエンコーディングを具現化する。ユニタリ510は、第1の反復分岐のそれぞれの補助量子ビットに対して動作するCNOTゲートの第1のシーケンスを含む。ユニタリ510はまた、第2の反復分岐のそれぞれの補助量子ビットに対して動作するCNOTゲートの第2のシーケンスを含む。図5Aに示すように、CNOTゲートの第1のシーケンスは、ルート量子ビットがコントロールであり、aがターゲットである、ルート量子ビット及びaを結合する第1のCNOTゲート520(1);aがコントロールであり、aがターゲットである、a及びaを結合する第2のCNOTゲート520(2)を含み;aN-1がコントロールであり、aがターゲットである、aN-1及びaを結合するCNOTゲート520(N)まで同様に連続(断線したCNOTゲートで示す)して継続する。さらに、CNOTゲートの第2のシーケンスは、ルート量子ビットがコントロールであり、bがターゲットである、ルート量子ビット及びbを結合する第1のCNOTゲート540(1);bがコントロールであり、bがターゲットである、b及びbを結合する第2のCNOTゲート540(2)を含み;bN-1がコントロールであり、bがターゲットである、bN-1及びbを結合するCNOTゲート540(N)まで同様に連続(断線したCNOTゲートで示す)して継続する。反復エンコーディングは循環反復エンコーディングであるため、CNOTゲート530は、aがコントロールであり、フラグ量子ビットがターゲットである、補助量子ビットaにフラグ量子ビットを結合する。さらに、CNOTゲート550も、bがコントロールであり、フラグ量子ビットがターゲットである、補助量子ビットbにフラグ量子ビットを結合する。
【0052】
図5Aでは、循環反復エンコーディングにおける第1の反復分岐の後に第2の反復分岐が使用されているが、本開示はその点に限定されるものではない。実際、循環反復エンコーディングの長所の1つは、第1の反復分岐のCNOTゲート及び第2の反復分岐のCNOTゲートの並列実行である。そのようなシナリオでは、例えば、CNOTゲート520(2)及びCNOTゲート540(2)は、図5Aにおいて位置合わせされる。
【0053】
図5Bは、2量子ビットの計算を表すUで示されるユニタリ562及び、それぞれがそれぞれのルート量子ビットq及びqの循環反復エンコーディングに関する演算を表す2つのユニタリの間の時間的関係を示す概略的な量子回路560を示す。2つのユニタリには、本明細書に記載の態様による、2つの量子ビットをエンコーディングするためのU(0) エンコーディング及びU(1) エンコーディングが含まれる。ユニタリ565はU(0) エンコーディングを具現化する。ユニタリ565は、第1の反復分岐A0のそれぞれの補助量子ビットに対して動作するCNOTゲートの第1のシーケンスを含む。ユニタリ565はまた、第2の反復分岐B0のそれぞれの補助量子ビットに対して動作するCNOTゲートの第2のシーケンスを含む。前述したように、これらの分岐のそれぞれはルート量子ビットqに結合される。図5Bに示すように、CNOTゲートの第1のシーケンスは、ルート量子ビットがコントロールであり、a0がターゲットである、ルート量子ビットq及びa0を結合する、第1のCNOTゲート570(1)を含み;a0N-1がコントロールであり、a0がターゲットである、a0N-1及びa0を結合するCNOTゲート570(N)まで連続して継続する。さらに、CNOTゲートの第2のシーケンスは、ルート量子ビットがコントロールであり、b0がターゲットである、ルート量子ビットq及びb0を結合する、第1のCNOTゲート576(1)を含み;b0N-1がコントロールであり、b0がターゲットである、b0N-1及びb0を結合するCNOTゲート576(N)まで連続して継続する。反復エンコーディングは循環反復エンコーディングであるため、CNOTゲート572は、a0がコントロールであり、フラグ量子ビットfがターゲットである、補助量子ビットa0にフラグ量子ビットfを結合する。さらに、CNOTゲート574も、b0がコントロールであり、フラグ量子ビットがターゲットである、補助量子ビットb0にフラグ量子ビットfを結合する。
【0054】
ユニタリ590はU(1) エンコーディングを具現化する。ユニタリ590の演算構造はユニタリ565と同じである。具体的には、ユニタリ590は、第1の反復分岐A1のそれぞれの補助量子ビットに対して動作するCNOTゲートの第1のシーケンスを含む。ユニタリ590はまた、第2の反復分岐B1のそれぞれの補助量子ビットに対して動作するCNOTゲートの第2のシーケンスを含む。前述したように、これらの分岐のそれぞれはルート量子ビットqに結合される。図5Bに示すように、CNOTゲートの第1のシーケンスは、ルート量子ビットがコントロールであり、a1がターゲットである、ルート量子ビットq及びa1を結合する、第1のCNOTゲート580(1)を含み;a1N-1がコントロールであり、a1がターゲットである、a1N-1及びa1を結合するCNOTゲート580(N)まで連続して継続する。さらに、CNOTゲートの第2のシーケンスは、ルート量子ビットがコントロールであり、b1がターゲットである、ルート量子ビットq及びb1を結合する、第1のCNOTゲート586(1)を含み;b1N-1がコントロールであり、b1がターゲットである、b1N-1及びb1を結合するCNOTゲート586(N)まで連続して継続する。反復エンコーディングは循環反復エンコーディングであるため、CNOTゲート582は、a1がコントロールであり、フラグ量子ビットfがターゲットである、補助量子ビットa1にフラグ量子ビットfを結合する。さらに、CNOTゲート574も、b1がコントロールであり、フラグ量子ビットがターゲットである、補助量子ビットb1にフラグ量子ビットfを結合する。
【0055】
前述したように、U(0) エンコーディング及びU(1) エンコーディングは同じエンコーディング演算の構造を有している。したがって、ユニタリ590及びユニタリ565は、エンコーディング操作の同じ構造を有し、したがって、互いに対称的であると呼ぶことができる。この場合も、図5Bでは、それぞれの循環反復エンコーディングにおいて第2の反復分岐B0及びB1が第1の反復分岐A0及びA1の後に使用されるが、本開示はその点に限定されるものではない。前述したように、循環反復エンコーディングの長所の1つは、第1の反復分岐のCNOTゲート及び第2の反復分岐のCNOTゲートの並列実行である。その点で、ユニタリ565及びユニタリ590は同時に実装でき、その結果、ルート量子ビットq及びルート量子ビットqが並列かつ互いに独立して循環反復エンコーディングされる。
【0056】
一般的な場合と同様、ルート量子ビットの初期の非エンコード状態は
【数5】
のように表すことができ、ここで、第1の量子ビットデバイス及び最後の量子ビットデバイスはそれぞれ、ルート量子ビット及びフラグ量子ビットに対応し、その間にある2つのセットの量子ビットは、2つの反復分岐、例えば、{a,a,…,aN-1,a}及び{b,b,…,bN-1,b}を構成する。例えば、図3を参照すること。
【0057】
分割反復エンコーディング中にエラーがない場合は、Uエンコーディング後の状態は
【数6】
で表すことができる。実際、各分岐からのフラグ量子ビットをターゲットとする最後のCNOTゲート(例えば、図4Bのゲート430及びゲート450)は、両方のコントロール量子ビットデバイス(a及びb)が同じ状態にあるため、フラグ量子ビットを|0>のままにする。しかし、1つの量子ビットが反復分岐の1つ、例えば、第1の反復分岐で反転した場合、状態は
【数7】
になる。したがって、フラグ量子ビットの状態|1>が観測されると、エンコーディング中にエラーが検出される;例えば、誤ったエンコーディングが検出される。そのような場合、関連付けられた結果ビット列は破棄される。逆に、状態|0>であるフラグ量子ビットは、誤りのないエンコーディングを表す。誤りのないエンコーディングでの結果は保持され、他の量子ビットに対して多数決による評価が実行される。いくつかの実施形態では、監視構成要素240は、フラグ量子ビットの状態を決定でき、それに応答して、結果ビット列を破棄又は保持できる。評価構成要素150は、結果ビットストリームが保持されるときに多数決による評価を実行できる。
【0058】
量子ビットの閉ループチェーンの複数のレプリカを含むレイアウト、又は循環接続(例については図3を参照すること)を有する配置で配置された量子ビットデバイス140の場合、それぞれのレプリカに対応する複数のルート量子ビットは、個別に(例えば、互いに独立して)互いに並行してエンコードできる。複数の量子ビットの循環反復エンコーディングは、複数の量子ビットのそれぞれに対して、互いに並行して実行できるため、循環反復エンコーディングはスケーラブルである。これらのエンコードされたルート量子ビット及び関連付けられた量子ビットの閉ループチェーンのそれぞれは、量子ビットデバイス140を使用した多量子ビット量子計算で利用できる。
【0059】
エンコーディングの1つ又は複数のインスタンスがそれぞれ1つ又は複数の量子ビットに対して構成された後、コンパイラシステム120は、量子プログラム112のコンパイルされたバージョンを生成できる。コンパイルされたバージョンは、CR反復ユニタリ128(例えば、Uエンコーディング)を含む1つ又はいくつかのコンパイルされた量子回路124を含む。コンパイラシステム120は、量子プログラム112のコンパイルされたバージョンを実行させることができる。量子プログラム112のコンパイルされたバージョンを実行させることは、量子ハードウェア130による実行のために1つ又は複数のコンパイルされた量子回路124を送信することを含み得る。1つ又は複数のコンパイルされた量子回路124を実行させることは、量子プログラム112によって定義される量子計算における演算を実行させること、及び1つ又は複数の量子ビットでの操作の実行後、読み出し前に、一度に循環反復符号に従って1つ又は複数の量子ビットのエンコーディングを実行させることも含む。さらに、量子プログラム112のコンパイルされたバージョンを実行させることは、コンパイルされた量子回路124内に表されるすべての量子ビットデバイスを計算基底で測定させることも含む。換言すれば、量子プログラム112のコンパイルされたバージョンの実行の一部は、量子プログラム112によって定義される量子計算に利用されるすべての量子ビットデバイス及び循環反復エンコーディングに利用される第2の量子ビットデバイスを測定することを含む。いくつかの実施形態では、コンパイラシステム120は、そのようなすべての量子ビットデバイスの計算基底で測定させる監視構成要素240(図2)を含むことができる。
【0060】
コンパイラシステム120は、それらの測定から得られる読み出しデータを受信でき、次いで、ルート量子ビットの測定値を復元するために多数決による評価を実施できる。より具体的には、結果ビット列の後処理段階で適用される多数決による評価を介して、エラーが低減された読み出し結果を個々のルート量子ビットに対して復元できる。特に、計算基底での量子測定の結果として得られる任意のビット文字列b…bnrepは、2つの値のどちらがnrep+1出力ビットに、より多く現れるかに応じて0又は1としてデコードされる。(nrep+1)=2未満のビット値がノイズによって反転された場合、デコードは成功する。そのために、コンパイラシステム120は、ルート量子ビット、フラグ量子ビット、及び補助量子ビットから読み出しデータを受信できる。次いで、コンパイラシステム120は、受信した読み出しデータを使用して多数決による評価を実施できる。いくつかの実施形態では、図2に示すように、コンパイラシステム120は、読み出しデータを受信でき、読み出しデータをメモリ270に保持できる評価構成要素250を含み得る。読み出しデータは、1つ又はいくつかのレコード276(読み出しデータ276と呼ぶ)に保持できる。次いで、評価構成要素250は、上記で説明した多数決による手順を実行できる。
【0061】
循環接続を有する複数の量子ビットデバイスの群を含むことができる量子ビットデバイス140(図1)のいくつかのレイアウトが存在する。そのようなレイアウトを使用する量子計算は、本明細書に記載の循環反復エンコーディングを利用できる。単に例示の目的で、図6Aは、本明細書に記載の1つ又は複数の実施形態による、量子ビットデバイス140のレイアウト600の非限定的な例を示す。レイアウト600では、20量子ビットデバイスが、量子ビットデバイスの多くの閉ループチェーンを示す幾何学的形状に配置されている。20量子ビットデバイスのそれぞれには、0から19までの番号のインデックスが付けられる。一例では、20量子ビットデバイスは、20個のトランスモンデバイスで具現化される。
【0062】
図6Bは、図6Aに示すレイアウト600に存在する閉ループチェーン650の非限定的な例を示す。閉ループチェーン650は、a及びaを含む第1の反復分岐及び、b及びbを含む第2の反復分岐を反復分岐として使用できる2つの分岐に分割された4つの補助量子ビットデバイス(例えば、補助量子ビット)を含む。分岐のそれぞれは、一方の端部でルート量子ビットに結合され、さらに他方の端部でフラグ量子ビットに結合される。閉ループチェーン650のレプリカも図6Aのレイアウト600に存在する。量子ビットデバイスの両方の閉ループチェーンは、2量子ビットの量子計算で利用できる。閉ループチェーン650の一例は、第1の反復分岐として量子ビットデバイス11及び16;第2の反復分岐として量子ビットデバイス18及び13;フラグ量子ビットとして量子ビットデバイス17;及びルート量子ビットとして量子ビットデバイス12を含む。その場合、レプリカは、第1の反復分岐として量子ビットデバイス1及び6;第2の反復分岐として量子ビットデバイス8及び3;フラグ量子ビットとして量子ビットデバイス2;及びルート量子ビットとして量子ビットデバイス7を含む。量子ビットデバイスを表す前述の番号は、図6Aに示すそれぞれのインデックスに対応する。
【0063】
単に別の例示として、図7Aは、量子ビットデバイス140のレイアウト700の非限定的な例を示す。レイアウト700では、65量子ビットデバイスが、量子ビットデバイスの多くの閉ループチェーンを示す幾何学的形状に配置されている。65量子ビットデバイスのそれぞれには、0から64までの番号のインデックスが付けられる。一例では、65量子ビットデバイスは、65個のトランスモンデバイスで具現化される。
【0064】
図7Bは、図7Aに示すレイアウト700に存在する閉ループチェーン750の非限定的な例を示す。閉ループチェーン750は、a、a、a、a、及びaを含む第1の反復分岐及び、b、b、b、b、及びbを含む第2の反復分岐を反復分岐として使用できる2つの分岐に分割された10個の補助量子ビットデバイスを含む。分岐のそれぞれは、一方の端部でルート量子ビットに結合され、さらに他方の端部でフラグ量子ビットに結合される。閉ループチェーン750の一例は、第1の反復分岐として量子ビットデバイス32、31、39、45、46;第2の反復分岐として量子ビットデバイス48、49、40、35、及び34;ルート量子ビットとして量子ビットデバイス33;フラグ量子ビットとして量子ビットデバイス47を含む。量子ビットデバイスを表す前述の番号は、図7Aに示すそれぞれのインデックスに対応する。
【0065】
レイアウト750のレプリカは、2つの量子ビットの循環反復エンコーディングに利用できる。そのためには、一例として、図7Cは、そのようなエンコーディングに利用できる2つの閉ループチェーン、量子ビットデバイス33、32、31、39、45、46、47、48、49、40、35を含む第1の閉ループチェーン、及び34、及び量子ビットデバイス19、20、21、12、8、7、6、5、4、11、17、及び18を含む第2の閉ループチェーンを示す。第2の閉ループチェーンは、量子ビットデバイス25によって第1の閉ループチェーンに結合される。この配置では、エンコードされているルート量子ビットは、量子ビットデバイス19及び量子ビットデバイス33であり、フラグ量子ビットは、量子ビットデバイス47及び量子ビットデバイス6である。補助量子ビットは白丸で表される。量子ビットデバイスを表す前述の番号は、図7Aに示すそれぞれのインデックスに対応する。
【0066】
図8は、本明細書に記載の1つ又は複数の実施形態による、量子プログラム/計算における読み出しエラー低減のためのコンパイラシステム120の非限定的な例のブロック図である。図8に示すように、コンパイラシステム120は、1つ又はいくつかのプロセッサ810及び1つ又はいくつかのメモリデバイス830(メモリ830と呼ばれる)を含み得る。いくつかの実施形態では、プロセッサ810は、単一のコンピューティング装置(例えば、ブレードサーバデバイス又は別のタイプのサーバデバイス)内に配置され得る。他の実施形態では、プロセッサ810は、2つ以上のコンピューティング装置(例えば、複数のブレードサーバデバイス又は他のタイプのサーバデバイス)にわたって分散され得る。
【0067】
プロセッサ810は、例えば、1つ又はいくつかの通信インターフェース820を介してメモリ830に動作可能に結合できる。通信インターフェース820は、プロセッサ810の特定の配置(局所的又は分散)に適し得る。いくつかの実施形態では、通信インターフェース820は、イーサネット(登録商標)ベースの産業用バス、コントローラエリアネットワーク(Controller Area Network:CAN)バス、モドバス、他のタイプのフィールドバスアーキテクチャ又は同様のもののような1つ又は複数のバスアーキテクチャを含み得る。さらに、又は他の実施形態では、通信インターフェースは、それぞれのフットプリントを有する無線ネットワーク及び/又は有線ネットワークを含み得る。
【0068】
メモリ830は、本開示による、機械アクセス可能な構成要素(例えば、コンピュータ可読及び/又はコンピュータ実行可能な構成要素)及びデータをその中に保持又は、そうでなければ記憶できる。したがって、いくつかの実施形態では、機械アクセス可能な命令(例えば、コンピュータ可読命令及び/又はコンピュータ実行可能命令)は、メモリ830内の機械アクセス可能な構成要素のそれぞれを具現化又は、そうでなければ構成する。機械アクセス可能な命令は、メモリ830内でエンコードでき、機械アクセス可能な構成要素のそれぞれを形成するように配置できる。機械アクセス可能な命令は、構築(例えば、リンク及びコンパイル)され、メモリ830内又は1つ又はいくつかの他の機械アクセス可能な非一時的記憶媒体内にコンピュータ実行可能な形式で保持され得る。具体的には、図8に示すように、いくつかの実施形態では、機械アクセス可能な構成要素には、取込構成要素210、分岐識別構成要素220、コンパイル構成要素230、監視構成要素240、及び評価構成要素250が含まれる。メモリ830はまた、本明細書に記載の様々な機能を可能にするデータ(図8には示されていない)を含み得る。いくつかの実施形態では、コンパイル構成要素230は、分岐識別構成要素220、監視構成要素240、及び評価構成要素250の1つ又は組み合わせを含み得る。図9に示すように、メモリ930は、レイアウト272及び読み出しデータ276を保持できる。
【0069】
機械アクセス可能な構成要素は、個別に又は特定の組み合わせで、プロセッサ810のうちの少なくとも1つによってアクセス及び実行され得る。実行に応答して、機械アクセス可能な構成要素のそれぞれは、量子計算における読み出しエラーの低減に関連して本明細書に記載の機能を提供できる。したがって、メモリ830に保持されているコンピュータアクセス可能な構成要素の実行により、コンパイラシステム120を本明細書に記載の態様に従って動作させ得る。より具体的には、プロセッサ810のうちの少なくとも1つは、機械アクセス可能な構成要素の実行により、コンパイラシステム120に、循環反復符号を使用して1つ又は複数の量子ビットデバイス(例えば、量子ビットデバイス又は高次元粒子デバイス)をエンコードさせることができ、本開示の態様に従って、量子ビットデバイスを含む量子ハードウェアで実行される量子プログラムのコンパイル中に、量子ビットデバイスのそれぞれに対応する量子ゲートのシーケンスにエンコーディングユニタリUエンコーディングを追加する。
【0070】
図8には示されていないが、コンパイラシステム120はまた、メモリ830に保持された機械アクセス可能な構成要素の実行を可能にし得るか、そうでなければ、容易にし得る他のタイプのコンピューティングリソースを含み得る。これらのコンピューティングリソースには、例えば、中央処理装置(Central Processing Unit:CPU)、グラフィックスプロセッシングユニット(Graphics Processing Unit:GPU)、テンソルプロセッシングユニット(Tensor Processing Unit:TPU)、メモリ、ディスクスペース、受信帯域幅及び/又は発信帯域幅、インターフェース(I/Oインターフェースなど);コントローラデバイス;電源;及び同様のものが含まれる。例えば、メモリ830は、プログラミングインターフェース(APIなど);オペレーティングシステム;仮想化環境の構成及び/又は制御用のソフトウェア;ファームウェア;及び同様のものも含み得る。
【0071】
本開示の循環反復エンコーディングは、循環接続を有する量子ハードウェア130(図1)を使用する量子計算に適用できる。これらの量子計算は、例えば、電子構造計算及びモデルハミルトニアンの時間伝播のシミュレーションを含み得る。化学及び物理学における他のタイプの量子計算も実装できる。また、本開示はこれらのタイプの量子計算に限定されないことに留意されたい。実際、本開示の循環反復エンコーディングは、一般に、任意の量子計算に適用できる。
【0072】
ノイズのある量子コンピュータを使用すると、例えば、化合物の電子構造特性の効率的な量子計算の実装が可能になる。場合によっては、そのような計算は適応量子回路に依存し得る。例えば、変分量子固有ソルバ(Variational Quantum Eigensolver:VQE)アルゴリズムは、量子リソースに依存して電子固有状態及びそれに対応するエネルギ期待値<(|H|(>を近似する。ここで、Hは化合物を記述する電子分子ハミルトニアンであり、|(>は量子ビットレジスタ上にエンコードされたパラメータ化された波動関数の仮設である。
【0073】
前述したように、本開示の循環反復エンコーディングは、読み出しエラーを低減できる。したがって、量子ハードウェア130を使用してVQEアルゴリズムを実装することによって、エネルギ期待値の読み出しに対するそのようなエンコーディングの影響を分析できる。例示として、VQEアルゴリズムはモデルシステムHeH及びHに実装されている。そのために、HeHに関して、ハートリーフォック(HF)の基底状態決定因に対する摂動は、図9に示す2量子ビット量子回路900を用いて準備される。ここで、a、b、cは変分パラメータである。
【数8】
量子回路900は本質的に、ユニタリ結合クラスタシングルアンドダブル(Unitary Coupled-Cluster Single and Double:UCCSD)の仮設に対応し、異なる原子間距離に対する基準HF解離曲線の近似として使用される。
【0074】
量子ビットデバイス140が量子ビットレイアウト700(図7A)を含む実施形態では、量子回路900は量子ビットデバイス140上で実行された。量子回路900は、循環反復エンコーディングを使用した場合及び循環反復エンコーディングを使用しない場合の両方で実行された。それぞれの原子間距離での量子計算の結果を図表1010に示す。同じ2つの量子ビットデバイス(図9では、単に命名のためにq及びqとラベル付けされている)が、循環反復エンコーディングなしの計算(図10及び図11では「非符号化」というラベルが付いている)に使用され、(4+1+1)量子ビット循環反復エンコーディングを使用した計算のルート量子ビットとして使用される。したがって、状態準備段階中のゲートエラーは一貫しており、結果は読み出し測定の品質のみが異なり得、したがって、読み出しエラー低減のための循環反復エンコーディングの効果が強調される。図10に示すように、量子計算に循環反復エンコーディングを含めることで、本実施例では、非エンコード量子計算に対して、総エラー(基準エネルギ値との差で定義)が平均で約43%減少する。基準エネルギ値は、実線トレース1015(「正確」とラベル付けされている)として示されており、非制限ハートリーフォック(Unrestricted Hartree-Fock:UHF)古典的計算を使用して得られる。
【0075】
の電子構造に関連して、(10+1+1)量子ビット量子化学実験が量子レイアウト700(図7A)上で実行され、単一量子ビットVQE計算が実施された。そのような計算では、パリティマッピングによって得られる量子ビットハミルトニアンへの2量子ビットの低減を利用し、基底状態及び励起状態として|01>及び|10>をそれぞれ含む2量子ビットハミルトニアン
【数9】
が得られる。ここで、係数h、h、及びhはそれぞれ1体積分で定義され、係数h、hはそれぞれ2体積分で定義される。本開示で使用される等価な1量子ビットハミルトニアンは次の形式を有する。
【数10】
【0076】
これらの計算では、ノイズのないシミュレーションの数値的に最適化された仮設パラメータが、基準HFの結果を超えるエネルギ推定値のサンプルとして使用されている。計算の結果は、図11の図表1110に示されている。図11に示すように、循環反復エンコーディングの改善された効果は、この追加の例の図表1110及び図表1120で明確に見られ得る。基準エネルギ値は、実線トレース1115(「正確」とラベル付けされている)として示されており、UHF古典的計算を使用して得られる。
【0077】
より深い回路上で本明細書に記載の循環反復エンコーディングの性能を示すために、2スピン横磁場イジングモデルのデジタル量子シミュレーションを実装できる。そのようなイジングモデルは、次のハミルトニアンで表される。
【数11】
システムの動的進化は、リアルタイムプロパゲータ
【数12】
によって提供でき、この演算子は次の鈴木トロッター積公式で近似できる。
【数13】
各トロッターステップは、図12の量子回路1200に示す単一量子ビット回転及びCNOTゲートの組み合わせを使用して実装できる。そのようなn個の量子回路を連結すると、横磁場イジングモデル(式(4))の時間ダイナミクスのデジタルシミュレーションを提供できる。
【0078】
図13は、図6Aに示す量子ビットレイアウト600を有する量子プロセッサ上で、n=5の場合を実施した結果を示す。その結果は、z方向に沿った総スピン成分の時間発展を示す。
【数14】
上記で説明した電子構造計算と同様に、同じ量子ビットデバイスの対(量子ビットレイアウト600のインデックス7及び12)が、非エンコード計算及び4+1+1循環反復エンコーディングにおけるルート量子ビットとしての両方に使用されている。そのような非符号化計算の結果は、図13で「非エンコード」とラベル付けされている。量子ビットデバイスの別の対(量子ビットレイアウト600のインデックス15及び16)も、その対の量子ビットデバイスが最も低い読み出しエラーの校正データを示すため、参照計算として非符号化計算で使用されている。そのような参照結果は、図13では「非エンコード(A)」とラベル付けされている。この追加の例に示されているように、循環反復エンコーディングを使用した量子計算の結果は、両方の非エンコード量子計算よりも優れている。
【0079】
図14は、本開示の1つ又は複数の実施形態による、量子プログラム/計算における読み出しエラーを低減するためのコンピュータ実装方法1400の非限定的な例のフローチャートである。前述したように、読み出しエラーの低減は、循環反復エンコーディングを使用して実現できる。量子ビットデバイスを参照して説明されているが、例示的な方法1400は、高次元粒子デバイスなどの他のタイプの量子デバイスに対しても実装できる。コンピューティングシステムは、コンピュータ実装方法1400を少なくとも部分的に実装できる。コンピュータ実装方法1400を実装することは、例えば、コンピュータ実装方法1400に含まれる1つ又はいくつかのブロックをコンパイル又は実行すること、又はその両方を含み得る。コンピューティングシステムは、1つ又はいくつかのプロセッサ、1つ又はいくつかのメモリデバイス、他のタイプのコンピューティングリソース(通信インターフェース、バスアーキテクチャなどような)、それらの組み合わせ、又は他の同様のリソースを含むことができ、及び/又はそれらに動作可能に結合できる。いくつかの実施形態では、コンピューティングシステムは、本明細書に記載の様々な実施形態に従ってコンパイラシステム120内に具現化できるか、又はコンパイラシステム120を構成できる。
【0080】
ブロック1410において、コンピューティングシステムは、量子プロセッサ内で実行される量子計算を構成できる。最後に、コンピューティングシステムは、取込構成要素210を介して、例えば、1つ又はいくつかの量子回路を含む量子プログラムを定義するデータを受信できる。量子プログラムは、量子計算を定義する。
【0081】
ブロック1420において、コンピューティングシステムは、量子プロセッサ内の量子ビットデバイス(例えば、量子ビットデバイス140(図1))のそれぞれの閉ループチェーンを使用して、1つ又は複数のエンコーディングユニタリを構成できる。1つ又は複数のユニタリは、例えば、コンパイル構成要素230によって構成できる。1つ又は複数のエンコーディングユニタリの各エンコーディングユニタリ(Uエンコーディング)は、量子計算に関与する量子ビットデバイスの循環反復エンコーディングを定義する。前述したように、エンコードされた量子ビットデバイスはルート量子ビットと呼ばれる。例えば、2量子ビットの計算では、構成されている1つ又は複数のユニタリは、図5Bに示すU(0) エンコーディング及びU(1) エンコーディングになり得る。
【0082】
ブロック1430において、コンピューティングシステムは、量子プロセッサ内で量子計算を実行させることができる。コンパイル構成要素230(図2)は、量子計算を実行させることができる。
【0083】
ブロック1440において、コンピューティングシステムは、1つ又は複数のエンコーディングユニタリを使用して、量子プロセッサ内で1つ又は複数の量子ビットデバイス(ルート量子ビット)を循環反復エンコーディングさせることができる。コンパイル構成要素230(図2)は、量子計算を実行させることができる。循環反復エンコーディングさせることは、例えば、1つ又は複数のユニタリで定義された操作をパルススケジュールに変換させること、及び、さらに、量子ハードウェア130の1つ又はいくつかの構成要素に、循環反復エンコーディングを実行するようにスケジュールされた構成要素を適用させることを含む。場合によっては、そのような変換は、例えば、コンパイル構成要素230を介してコンピューティングシステムによって実行され得る。他の場合には、変換は量子ハードウェア130によって実行され得る。
【0084】
ブロック1450において、コンピューティングシステムは、量子計算に関与する量子ビットデバイス及び閉ループチェーン内の他の量子ビットデバイスを測定させることができる。それらの他の量子ビットデバイスには、補助量子ビット及びフラグ量子ビットが含まれる。監視構成要素240は、例えば、そのような測定をさせることができる。
【0085】
ブロック1460において、コンピューティングシステムは、特定の量子ビットデバイス(例えば、特定のルート量子ビット)の循環反復エンコーディングに対応するフラグビットが、誤りのないエンコーディングを示す状態にあると決定できる。監視構成要素240は、例えば、そのような測定をさせることができる。
【0086】
ブロック1470において、コンピューティングシステムは、測定からのデータを使用して多数決による評価を実行できる。そのような評価により、特定の量子ビットに対して読み出しエラーが低減された単一量子ビット状態を提供できる。評価構成要素250は、例えば、多数決による評価を実施できる。
【0087】
開示される主題の様々な態様の文脈を提供するために、図15及び以下の考察は、開示される主題の様々な態様を実施できる適切な環境の一般的な説明を提供することを意図している。図15は、本明細書に記載の1つ又は複数の実施形態を促進することができる例示的な非限定的な動作環境のブロック図を示す。本明細書に記載の他の実施形態で使用される同様の要素の繰り返しの説明は、簡潔にするために省略されている。本開示の様々な態様を実施するための適切な動作環境1500は、コンピュータ1512を含み得る。コンピュータ1512はまた、処理ユニット1514、システムメモリ1516、及びシステムバス1518を含むことができる。システムバス1518は、限定されないが、システムメモリ1516を含むシステム構成要素を処理ユニット1514に動作可能に結合できる。処理ユニット1514は、利用可能な様々なプロセッサのいずれかであり得る。デュアルマイクロプロセッサ及び他のマルチプロセッサアーキテクチャもまた、処理ユニット1514として使用できる。システムバス1518は、メモリバス又はメモリコントローラ、ペリフェラルバス又は外部バス、及び/又は、限定されないが、工業標準アーキテクチャ(ISA)、マイクロチャネルアーキテクチャ(MSA)、拡張ISA(EISA)、インテリジェントドライブエレクトロニクス(IDE)、VESAローカルバス(VLB)、ペリフェラルコンポーネントインターコネクト(PCI)、カードバス、ユニバーサルシリアルバス(USB)、アドバンスドグラフィックスポート(AGP)、ファイヤワイヤ、及びスモールコンピュータシステムインターフェース(SCSI)を含む任意の様々な利用可能なバスアーキテクチャを使用するローカルバスを含むいくつかのタイプのバス構造のいずれかであり得る。システムメモリ1516はまた、揮発性メモリ1520及び不揮発性メモリ1522を含むことができる。起動中など、コンピュータ1512内の要素間で情報を転送するための基本ルーチンを含む基本入力/出力システム(BIOS)は、不揮発性メモリ1522に記憶され得る。例示として、限定されないが、不揮発性メモリ1522は、読み取り専用メモリ(ROM)、プログラマブルROM(PROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、フラッシュメモリ、又は不揮発性ランダムアクセスメモリ(RAM)(例えば、強誘電体RAM(FeRAM))を含むことができる。揮発性メモリ1520はまた、外部キャッシュメモリとして機能するランダムアクセスメモリ(RAM)を含むことができる。例示として、限定されないが、RAMは、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、同期DRAM(SDRAM)、ダブルデータレートSDRAM(DDR SDRAM)、拡張SDRAM(ESDRAM)、シンクリンクDRAM(SLDRAM)、ダイレクトラムバスRAM(DRRAM)、ダイレクトラムバスダイナミックRAM(DRDRAM)、及びラムバスダイナミックRAMなどの多くの形態で利用可能である。
【0088】
コンピュータ1512はまた、取り外し可能/取り外し不可能、揮発性/不揮発性コンピュータ記憶媒体を含むことができる。図15は、例えば、ディスクストレージ1524を示す。ディスクストレージ1524はまた、限定されないが、磁気ディスクドライブ、フロッピディスクドライブ、テープドライブ、Jazドライブ、Zipドライブ、LS-100ドライブ、フラッシュメモリカード、又はメモリスティックのようなデバイスを含むことができる。ディスクストレージ1524はまた、別個に、又は限定されないが、コンパクトディスクROMデバイス(CD-ROM)、CD記録可能ドライブ(CD-Rドライブ)、CD書き換え可能ドライブ(CD-RWドライブ)又はデジタル多用途ディスクROMドライブ(DVD-ROM)などの光ディスクドライブを含む他の記憶媒体と組み合わせて記憶媒体を含むことができる。ディスクストレージ1524のシステムバス1518への接続を促進するために、インターフェース1526などの取り外し可能又は取り外し不可能なインターフェースが使用され得る。図15はまた、ユーザと適切な動作環境1500に記載されている基本的なコンピュータリソースとの間の仲介者として機能し得るソフトウェアを示す。そのようなソフトウェアはまた、例えば、オペレーティングシステム1528を含むことができる。ディスクストレージ1524に記憶できるオペレーティングシステム1528は、コンピュータ1512のリソースを制御し、割り当てるように機能する。システムアプリケーション1530は、例えば、システムメモリ1516又はディスクストレージ1524のいずれかに記憶された、プログラムモジュール1532及びプログラムデータ1534を介してオペレーティングシステム1528によるリソースの管理を利用し得る。本開示は、様々なオペレーティングシステム又はオペレーティングシステムの組み合わせで実施できることを理解すべきである。ユーザは、1つ又は複数の入力デバイス1536を介してコンピュータ1512にコマンド又は情報を入力する。入力デバイス1536は、限定されないが、マウス、トラックボール、スタイラス、タッチパッド、キーボード、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナ、テレビチューナカード、デジタルカメラ、デジタルビデオカメラ、ウェブカメラ、及び同様のものなどのポインティングデバイスを含み得る。これら及び他の入力デバイスは、1つ又は複数のインターフェースポート1538を介してシステムバス1518を通じて処理ユニット1514に接続し得る。1つ又は複数のインターフェースポート1538は、例えば、シリアルポート、パラレルポート、ゲームポート、及びユニバーサルシリアルバス(USB)を含み得る。1つ又は複数の出力デバイス1540は、入力デバイス1536と同じタイプのポートのいくつかを使用できる。したがって、例えば、USBポートを使用して、コンピュータ1512に入力を提供し、コンピュータ1512から出力デバイス1540に情報を出力できる。出力アダプタ1542は、出力デバイス1540の中でも、専用アダプタを必要とする、モニタ、スピーカ、及びプリンタのようないくつかの出力デバイス1540があることを示すために設けられ得る。出力アダプタ1542は、例示として、限定されないが、出力デバイス1540とシステムバス1518との間の接続手段を提供するビデオカード及びサウンドカードを含み得る。他のデバイス及び/又はデバイスのシステムは、1つ又は複数のリモートコンピュータ1544などの入力及び出力機能の両方を提供することに留意されたい。
【0089】
コンピュータ1512は、リモートコンピュータ1544などの1つ又は複数のリモートコンピュータへの論理接続を使用して、ネットワーク化された環境で動作できる。リモートコンピュータ1544は、コンピュータ、サーバ、ルータ、ネットワークPC、ワークステーション、マイクロプロセッサベースの機器、ピアデバイス又は他の一般的なネットワークノード及び同様のものであり得て、さらに、典型的には、コンピュータ1512に関連して説明された要素の多く又は、すべてを含むことができる。簡潔にするために、メモリストレージデバイス1546のみがリモートコンピュータ1544と共に示されている。リモートコンピュータ1544は、ネットワークインターフェース1548を通じてコンピュータ1512に論理的に接続され、次いで、通信接続1550を介して物理的に接続され得る。さらに、複数の(ローカル及びリモート)システムに操作を分散できる。ネットワークインターフェース1548は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、セルラネットワークなどのような有線及び/又は無線通信ネットワークを包含できる。LAN技術は、ファイバ分散データインターフェース(FDDI)、銅線分散データインターフェース(CDDI)、イーサネット(登録商標)、トークンリング及び同様のものを含む。WAN技術は、限定されないが、ポイントツーポイントリンク、統合サービスデジタルネットワーク(ISDN(登録商標))のような回線交換ネットワーク及びその変形、パケット交換ネットワーク、及びデジタル加入者線(DSL)を含む。1つ又は複数の通信接続1550は、ネットワークインターフェース1548をシステムバス1518に接続するために使用されるハードウェア/ソフトウェアを指す。通信接続1550は、例示的に明確にするため、コンピュータ1512の内部に示されているが、コンピュータ1512の外部でもあり得る。ネットワークインターフェース1548に接続するためのハードウェア/ソフトウェアはまた、例示的な目的のためにのみ、通常の電話グレードモデムを含むモデム、ケーブルモデム及びDSLモデム、ISDN(登録商標)アダプタ、及びイーサネット(登録商標)カードなどの内部及び外部技術を含むことができる。
【0090】
いくつかの実施形態では、本明細書に記載のコンパイラシステム120の様々な実施形態は、クラウドコンピューティング環境に関連付けることができる。例えば、コンパイラシステム120は、図16に示す動作環境1600に含まれるクラウドコンピューティング環境1650、及び/又は図17を参照して本明細書に記載される1つ又は複数の機能的抽象化層(例えば、ハードウェア及びソフトウェア層1760、仮想化層1770、管理層1780、及び/又はワークロード層1790)と関連付けることができる。
【0091】
本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載される教示の実施はクラウドコンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在知られている、又は後に開発される任意の他のタイプのコンピューティング環境と組み合わせて実装できる。
【0092】
クラウドコンピューティングは、最小限の管理作業又はサービスのプロバイダとの対話で迅速にプロビジョニング及びリリースできる、構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、サービス)の共有プールへの便利なオンデマンドネットワークアクセスを可能にするサービス提供のモデルである。このクラウドモデルは、少なくとも5つの特徴、少なくとも3つのサービスモデル、及び少なくとも4つの展開モデルを含み得る。
【0093】
特徴は次の通りである。
【0094】
オンデマンドセルフサービス:クラウドコンシューマは、サービスプロバイダとの人間の対話を必要とせずに、必要に応じて自動的に、サーバタイム及びネットワークストレージなどのコンピューティング能力を一方的にプロビジョニングできる。
【0095】
幅広いネットワークアクセス:能力は、ネットワーク経由で利用可能であり、異種のシンクライアントプラットフォーム又はシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、PDA(登録商標))による使用を促進する標準機構を介してアクセスされる。
【0096】
リソースプーリング:プロバイダのコンピューティングリソースは、マルチテナントモデルを使用して複数の消費者にサービスを提供するためにプールされ、様々な物理リソース及び仮想リソースが需要に応じて動的に割り当てられ、再割り当てされる。消費者は、一般に、提供されたリソースの正確な位置に関する制御又は知識はないが、より高い抽象化のレベル(例えば、国、州、又はデータセンタ)で位置を指定でき得るという点で、位置独立の感覚がある。
【0097】
迅速な弾力性:能力は、迅速かつ弾力的にプロビジョニングでき、場合によっては、自動的に、迅速にスケールアウトされ、迅速にリリースされて迅速にスケールインされる。消費者には、プロビジョニングに使用できる能力は無制限に見えることが多く、いつでも任意の数量で購入できる。
【0098】
測定されたサービス:クラウドシステムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、アクティブなユーザアカウント)に適したある程度の抽象化のレベルで計測能力を活用することにより、リソースの使用を自動的に制御及び最適化する。リソースの使用状況を監視、制御、及び報告して、利用するサービスの、プロバイダと消費者の両方に透明性を提供できる。
【0099】
サービスモデルは次の通りである。
【0100】
サービスとしてのソフトウェア(SaaS):消費者に提供される能力は、クラウドインフラストラクチャで実行されているプロバイダのアプリケーションを使用することである。アプリケーションには、ウェブブラウザ(例えば、ウェブベースの電子メール)などのシンクライアントインターフェースを介して、様々なクライアントデバイスからアクセス可能である。消費者は、限られたユーザ固有のアプリケーション構成設定を除き得て、ネットワーク、サーバ、オペレーティングシステム、ストレージ、さらには個別のアプリケーション機能を含む基盤となるクラウドインフラストラクチャを管理又は制御しない。
【0101】
サービスとしてのプラットフォーム(PaaS):消費者に提供される能力は、プロバイダがサポートするプログラミング言語及びツールを使用して作成された、消費者が作成又は取得したアプリケーションをクラウドインフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージを含む基盤となるクラウドインフラストラクチャを管理又は制御しないが、展開されたアプリケーション及び、場合によっては、アプリケーションホスティング環境の構成を制御する。
【0102】
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される能力は、処理、ストレージ、ネットワーク、及び消費者が、オペレーティングシステム及びアプリケーションを含み得る、任意のソフトウェアを展開及び実行できるその他の基本的なコンピューティングリソースをプロビジョニングすることである。消費者は、基盤となるクラウドインフラストラクチャを管理又は制御しないが、オペレーティングシステム、ストレージ、展開されたアプリケーションを制御し、場合によっては、選択したネットワーキング構成要素(例えば、ホストファイアウォール)の制御を制限する。
【0103】
展開モデルは次の通りである。
【0104】
プライベートクラウド:クラウドインフラストラクチャは、組織のためだけに運用される。組織又は第三者によって管理され、オンプレミス又はオフプレミスに存在し得る。
【0105】
コミュニティクラウド:クラウドインフラストラクチャは複数の組織によって共有されており、共有された懸念事項(例えば、ミッション、セキュリティ要件、ポリシ、コンプライアンスの考慮事項)を有する特定のコミュニティをサポートしている。組織又は第三者によって管理され、オンプレミス又はオフプレミスに存在し得る。
【0106】
パブリッククラウド:クラウドインフラストラクチャは、一般の人々又は大規模な業界団体が利用できるようにしたもので、クラウドサービスを販売する組織が所有している。
【0107】
ハイブリッドクラウド:クラウドインフラストラクチャは、一意のエンティティのままであるが、データ及びアプリケーションの移植性を可能にする標準化された技術又は独自の技術(例えば、クラウド間の負荷分散のためのクラウドバースト)によって結合された2つ以上のクラウド(プライベート、コミュニティ、又はパブリック)の構成である。
【0108】
クラウドコンピューティング環境は、ステートレス性、低結合、モジュール性、及び意味的相互運用性に重点を置いたサービス指向型である。クラウドコンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0109】
ここで図16を参照すると、例示的なクラウドコンピューティング環境1650が示されている。示しているように、クラウドコンピューティング環境1650は、例えば、パーソナルデジタルアシスタント(PDA(登録商標))又は携帯電話1654A、デスクトップコンピュータ1654B、ラップトップコンピュータ1654C、及び/又は自動車コンピュータシステム1654Nなどのクラウドコンシューマによって使用されるローカルコンピューティングデバイスが通信し得る1つ又は複数のクラウドコンピューティングノード1610を含む。図16には示されていないが、クラウドコンピューティングノード1610は、クラウドコンシューマによって使用されるローカルコンピューティングデバイスが通信できる量子プラットフォーム(例えば、量子コンピュータ、量子ハードウェア、量子ソフトウェア、及び/又は別の量子プラットフォーム)をさらに有することができる。ノード1610は、互いに通信し得る。それらは、物理的又は仮想的に、前述のプライベートクラウド、コミュニティクラウド、パブリッククラウド、又はハイブリッドクラウド、又はそれらの組み合わせなどの1つ又は複数のネットワークにグループ化(図示せず)され得る。これにより、クラウドコンピューティング環境1650は、クラウドコンシューマがローカルコンピューティングデバイス上でリソースを維持する必要がないサービスとして、インフラストラクチャ、プラットフォーム及び/又はソフトウェアを提供できる。図16に示すコンピューティングデバイス1654A~Nのタイプは、例示のみを意図しており、コンピューティングノード1610及びクラウドコンピューティング環境1650は、任意のタイプのネットワーク及び/又は(例えば、ウェブブラウザを使用する)ネットワークアドレス可能な接続を介して任意のタイプのコンピュータ化されたデバイスと通信できることが理解されよう。
【0110】
ここで図17を参照すると、クラウドコンピューティング環境1650(図16)によって提供される機能的抽象化層のセットが示されている。図17に示す構成要素、層、及び機能は、例示のみを目的としており、本発明の実施形態はそれに限定されないことを事前に理解されたい。示しているように、以下の層及び対応する機能が提供される。
【0111】
ハードウェア及びソフトウェア層1760は、ハードウェア及びソフトウェア構成要素を含む。ハードウェア構成要素の例は、メインフレーム1761、RISC(縮小命令セットコンピュータ)アーキテクチャベースのサーバ1762、サーバ1763、ブレードサーバ1764、ストレージデバイス1765、及びネットワーク及びネットワーキング構成要素1766を含む。いくつかの実施形態では、ソフトウェア構成要素は、ネットワークアプリケーションサーバソフトウェア1767、データベースソフトウェア1768、量子プラットフォームルーティングソフトウェア(図17には示されていない)、及び/又は量子ソフトウェア(図17には示されていない)を含む。
【0112】
仮想化層1770は、仮想エンティティの次の例、すなわち、仮想サーバ1771、仮想ストレージ1772、仮想プライベートネットワークを含む仮想ネットワーク1773、仮想アプリケーション及びオペレーティングシステム1774、及び仮想クライアント1775が提供され得る抽象化層を提供する。
【0113】
一例では、管理層1780は、以下に説明する機能を提供し得る。リソースプロビジョニング1781は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソース及び他のリソースの動的な調達を提供する。計量及び価格設定1782は、リソースがクラウドコンピューティング環境内で利用されるときのコスト追跡、及びこれらのリソースの消費に対する課金又は請求を提供する。一例では、これらのリソースは、アプリケーションソフトウェアライセンスを含み得る。セキュリティは、クラウドコンシューマ及びタスクに対する識別検証、並びにデータ及びその他のリソースに対する保護を提供する。ユーザポータル1783は、消費者及びシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理1784は、必要なサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当て及び管理を提供する。サービスレベルアグリーメント(SLA)の計画及び履行1785は、SLAに従って将来の要件が予想されるクラウドコンピューティングリソースの事前準備及び調達を提供する。
【0114】
ワークロード層1790は、クラウドコンピューティング環境が利用され得る機能の例を提供する。この層から提供され得るワークロード及び機能の非限定的な例は、マッピング及びナビゲーション1791、ソフトウェア開発及びライフサイクル管理1792、仮想教室教育配信1793、データ分析処理1794、トランザクション処理1795、及び脆弱性リスク評価ソフトウェア1796を含む。
【0115】
本発明の実施形態は、任意の可能な技術的詳細レベルの統合におけるシステム、方法、装置及び/又はコンピュータプログラム製品であり得る。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体(又は複数の媒体)を含み得る。
【0116】
コンピュータ可読記憶媒体は、命令実行デバイスが使用するための命令を保持及び記憶できる有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、限定されないが、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、又は前述の任意の適切な組み合わせであり得る。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROM又はフラッシュメモリ)、静的ランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク読み取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピディスク、その上に命令が記録されたパンチカード又は溝に浮き彫りされた構造などの機械的にエンコードされたデバイス、及び前述の任意の適切な組み合わせも含まれ得る。本明細書で使用されるコンピュータ可読記憶媒体は、電波又は他の自由に伝播する電磁波、導波管又は他の伝送媒体を通って伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又は電線を通じて伝送される電気信号など、一時的な信号それ自体であると解釈されるべきではない。
【0117】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、又はネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、及び/又は無線ネットワークを介して外部コンピュータ又は外部ストレージデバイスにダウンロードできる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、及び/又はエッジサーバを含むことができる。各コンピューティング/処理デバイス内のネットワークアダプタカード又はネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
【0118】
本発明の様々な態様の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データ、又は、Smalltalk(登録商標)、C++、又は同様のものなどのオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語などの手続型プログラミング言語を含む、1つ又は複数のプログラミング言語の任意の組み合わせで記述されたソースコード又はオブジェクトコードのいずれかであり得る。コンピュータ可読プログラム命令は、全部がユーザのコンピュータ上で、一部がユーザのコンピュータ上で、スタンドアロンのソフトウェアパッケージとして、一部がユーザのコンピュータ上で一部がリモートコンピュータ上で、又は全部がリモートコンピュータ上で又はサーバ上で実行され得る。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され得るか、又は、(例えば、インターネットサービスプロバイダを使用してインターネットを介して)外部コンピュータに接続され得る。いくつかの実施形態では、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、又はプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実行するために、電子回路をカスタマイズするためのコンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行し得る。
【0119】
本発明の態様は、本発明の実施形態による方法、装置(システム)、及びコンピュータプログラム製品のフローチャート図及び/又はブロック図を参照して本明細書に記載されている。フローチャート図及び/又はブロック図の各ブロック、及びフローチャート図及び/又はブロック図のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されたい。
【0120】
これらのコンピュータ可読プログラム命令は、汎用コンピュータ、専用コンピュータのプロセッサ、又は他のプログラマブルデータ処理装置に提供され、マシンを生成し得て、その結果、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックで指定された機能/行動を実施するための手段を作成する。これらのコンピュータ可読プログラム命令はまた、コンピュータ、プログラマブルデータ処理装置及び/又は他のデバイスに特定の方法で機能するように指示できるコンピュータ可読記憶媒体内に記憶され得て、その結果、その中に記憶された命令を有するコンピュータ可読記憶媒体は、フローチャート及び/又はブロック図の1つ又は複数のブロックで指定された機能/行動の態様を実施する命令を含む製品を含む。
【0121】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイスにロードされ、コンピュータ、他のプログラマブル装置、又は他のデバイス上で一連の動作機能を実行させて、コンピュータ実装プロセスを生成し得て、その結果、コンピュータ、他のプログラマブル装置、又は他のデバイス上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックで指定された機能/行動を実装する。
【0122】
図中のフローチャート及びブロック図は、本発明の様々な実施形態によるシステム、方法、及びコンピュータプログラム製品の可能な実装のアーキテクチャ、機能、及び動作を示す。これに関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含む、モジュール、セグメント、又は命令の一部を表し得る。いくつかの代替的な実装では、ブロックに示される機能は、図に示される順序を外れて生じ得る。例えば、連続して示される2つのブロックは、実際には、実質的に同時に実行され得るか、又は、関連する機能に応じてブロックが逆の順序で実行されることがあり得る。また、ブロック図及び/又はフローチャート図の各ブロック、及びブロック図及び/又はフローチャート図のブロックの組み合わせは、指定された機能又は行動を実行する、又は専用ハードウェアとコンピュータ命令との組み合わせを実行する専用ハードウェアベースシステムによって実装できることにも留意されたい。
【0123】
主題は、1つ又は複数のコンピュータ上で実行されるコンピュータプログラム製品のコンピュータ実行可能命令の一般的な文脈で上記で説明されてきたが、当業者ならば、本開示が他のプログラムモジュールと組み合わせることもできること、又は組み合わせて実施できることを認識するであろう。一般に、プログラムモジュールは、特定のタスクを実行する、及び/又は特定の抽象データタイプを実施するルーチン、プログラム、構成要素、データ構造などを含む。さらに、当業者ならば、本発明のコンピュータ実装方法が、シングルプロセッサ又はマルチプロセッサコンピュータシステム、ミニコンピューティングデバイス、メインフレームコンピュータ、及びコンピュータ、ハンドヘルドコンピューティングデバイス(例えば、PDA(登録商標)、電話)、マイクロプロセッサベース又はプログラマブル家庭用電化製品又は産業用電子機器、及び同様のものを含む他のコンピュータシステム構成で実施できることを理解するであろう。示されている態様は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境でも実施できる。しかし、本開示のすべてではないにしても、一部の態様はスタンドアロンコンピュータで実施できる。分散コンピューティング環境では、プログラムモジュールはローカル及びリモートのメモリストレージデバイスの両方に配置できる。
【0124】
本出願で使用される場合、「構成要素」、「システム」、「プラットフォーム」、「インターフェース」及び同様のもの用語は、コンピュータ関連のエンティティ、又は1つ又は複数の特定の機能を備えた動作マシンに関連するエンティティを指すことができる、及び/又は含むことができる。本明細書に開示されるエンティティは、ハードウェア、ハードウェアとソフトウェアの組み合わせ、ソフトウェア、又は実行中のソフトウェアのいずれかであり得る。例えば、構成要素は、限定されないが、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、及び/又はコンピュータであり得る。例示として、サーバ上で実行されているアプリケーション及びサーバの両方を構成要素にできる。1つ又は複数の構成要素は、プロセス及び/又は実行スレッド内に存在し得て、構成要素は、1つのコンピュータ上にローカライズされ得るか、及び/又は2つ以上のコンピュータ間に分散され得る。別の例では、それぞれの構成要素は、その上に記憶された様々なデータ構造を有する様々なコンピュータ可読媒体から実行できる。構成要素は、1つ又は複数のデータパケット(例えば、ローカルシステム、分散システム、及び/又はインターネットなどのネットワークを介して他のシステムと信号を介して別の構成要素と相互作用する、ある構成要素からのデータ)を有する信号などに従って、ローカルプロセス及び/又はリモートプロセスを介して通信できる。別の例として、構成要素は、電気又は電子回路によって動作する機械部品によって提供される特定の機能を有する装置であり得て、プロセッサによって実行されるソフトウェア又はファームウェアアプリケーションによって動作する。そのような場合、プロセッサは、装置の内部又は外部にあり得て、ソフトウェア又はファームウェアアプリケーションの少なくとも一部を実行できる。さらに別の例として、構成要素は、機械部品なしで電子構成要素を介して特定の機能を提供する装置であり得て、電子構成要素は、電子構成要素の機能を少なくとも部分的に与えるソフトウェア又はファームウェアを実行するためのプロセッサ又は他の手段を含むことができる。1つの態様では、構成要素は、例えば、クラウドコンピューティングシステム内で、仮想マシンを介して電子構成要素をエミュレートできる。
【0125】
さらに、「又は」という用語は、排他的な「又は」ではなく、包括的な「又は」を意味することを意図している。すなわち、特に明記しない限り、又は文脈から明らかでない限り、「XはA又はBを使用する」は、自然な包括的順列のいずれかを意味することを意図している。すなわち、XがAを使用する場合、XがBを使用する場合、又は、XがA及びBの両方を使用する場合、前述のいずれの場合でも、「XはA又はBを使用する」が満たされる。さらに、主題の明細書及び添付の図面で使用される冠詞「a」及び「an」は、特に明記しない限り、又は文脈から単数形を指すことが明らかでない限り、一般に「1つ又は複数」を意味すると解釈されるべきである。本明細書で使用される場合、「例」及び/又は「例示的」という用語は、例、実例、又は例示として機能することを意味するために使用される。誤解を避けるために記すと、本明細書に開示される主題は、そのような例によって限定されない。さらに、本明細書で「例」及び/又は「例示的」として説明される任意の態様又は設計は、必ずしも他の態様又は設計よりも好ましい又は有利であると解釈されるべきではなく、当業者に知られている同等の例示的な構造及び技術を排除することを意味するものでもない。
【0126】
主題の明細書で使用されているように、「プロセッサ」という用語は、限定されないが、シングルコアプロセッサ、ソフトウェアマルチスレッド実行機能を有するシングルプロセッサ、マルチコアプロセッサ、ソフトウェアマルチスレッド実行機能を有するマルチコアプロセッサ、ハードウェアマルチスレッド技術を有するマルチコアプロセッサ、並列プラットフォーム、及び分散共有メモリを有する並列プラットフォームを有する実質的に任意のコンピューティング処理ユニット又はデバイスを指すことができる。さらに、プロセッサは、集積回路、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックコントローラ(PLC)、複雑なプログラマブルロジックデバイス(CPLD)、ディスクリートゲート又はトランジスタロジック、ディスクリートハードウェア構成要素、又は本明細書に記載の機能を実行するように設計されたそれらの任意の組み合わせを指すことができる。さらに、プロセッサは、領域使用量の最適化又はユーザ機器の性能の向上のために、限定されないが、分子及び量子ドットベースのトランジスタ、スイッチ、ゲートなどのナノスケールアーキテクチャを活用できる。プロセッサは、コンピューティング処理ユニットの組み合わせとして実装することもできる。
【0127】
本開示では、「ストア」、「ストレージ」、「データストア」、「データストレージ」、「データベース」、「リポジトリ」、及び構成要素の動作及び機能に関連する実質的に任意の他の情報ストレージ構成要素などの用語は、「メモリ構成要素」、「メモリ」で具現化されたエンティティ、又はメモリを含む構成要素を指すために使用される。本明細書に記載のメモリ及び/又はメモリ構成要素は、揮発性メモリ又は不揮発性メモリのいずれかであり得るか、又は揮発性メモリ及び不揮発性メモリの両方を含み得ることを理解すべきである。例示として、限定されないが、不揮発性メモリは、読み取り専用メモリ(ROM)、プログラマブルROM(PROM)、電気的プログラマブルROM(EPROM)、電気的消去可能ROM(EEPROM)、フラッシュメモリ、又は不揮発性ランダムアクセスメモリ(RAM)(例えば、強誘電体RAM(FeRAM))を含むことができる。揮発性メモリは、例えば、外部キャッシュメモリとして機能できるRAMを含むことができる。例示として、限定されないが、RAMは、同期RAM(SRAM)、ダイナミックRAM(DRAM)、同期DRAM(SDRAM)、ダブルデータレートSDRAM(DDR SDRAM)、拡張SDRAM(ESDRAM)、シンクリンクDRAM(SLDRAM)、ダイレクトラムバスRAM(DRRAM)、ダイレクトラムバスダイナミックRAM(DRDRAM)、及びラムバスダイナミックRAM(RDRAM)などの多くの形態で利用可能である)。さらに、本明細書で開示されるシステム又はコンピュータ実装方法のメモリ構成要素は、これら及び他の任意の適切なタイプのメモリを含むことに限定されず、これらを含むことを意図している。
【0128】
上記で説明されてきたものは、システム、コンピュータプログラム製品、及びコンピュータ実装方法の単なる例を含む。もちろん、本開示を説明する目的で、構成要素、製品及び/又はコンピュータ実装方法の考えられるすべての組み合わせを説明することは不可能であるが、当業者ならば、本開示のさらに多くの組み合わせ及び順列が可能であることを認識できる。さらに、詳細な説明、特許請求の範囲、付録及び図面において、「含む(includes)」、「有する(has)」、「所有する(possesse)」及び同様の用語が使用される範囲で、そのような用語は、特許請求の範囲の過渡的な単語として使用される場合に「備える(comprising)」と解釈されるので、「備える(comprising)」という用語と同様の方法で包括的であることを意図している。
【0129】
様々な実施形態の説明は、例示の目的で提示されているが、網羅的であること、又は開示された実施形態に限定することを意図するものではない。多くの修正及び変形は、記載する実施形態の範囲から逸脱することなく、当業者に明らかになるであろう。本明細書で使用される用語は、実施形態の原理、実際の適用、又は市場で見られる技術を超える技術的改善を最適に説明するため、又は他の当業者が本明細書に開示される実施形態を理解できるようにするために選択されたものである。
図1
図2
図3
図4A
図4B
図5A
図5B
図6A
図6B
図7A
図7B
図7C
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
【手続補正書】
【提出日】2023-09-27
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
メモリに記憶されたコンピュータ実行可能な構成要素を実行するプロセッサ、前記コンピュータ実行可能な構成要素が、
1つ又は複数の量子ビットに対する操作の後、読み出し前に、一度に循環反復符号に従って前記1つ又は複数の量子ビットをエンコーディングさせるコンパイル構成要素を有する
を備えるシステム。
【請求項2】
前記コンピュータ実行可能な構成要素が、前記1つ又は複数の量子ビットのうちの特定の量子ビットに結合された補助量子ビットの第1のチェーン、前記特定の量子ビットに結合された補助量子ビットの第2のチェーン、及び前記補助量子ビットの第1のチェーン及び前記補助量子ビットの第2のチェーンを接合するフラグ量子ビットを識別する分岐識別構成要素をさらに備え、前記1つ又は複数の量子ビットを前記エンコーディングすることが、
反復エンコーディングを使用して前記補助量子ビットの第1のチェーンをエンコーディングすること;及び
前記反復エンコーディングを使用して前記補助量子ビットの第2のチェーンをエンコーディングすること
によって前記特定の量子ビットをエンコーディングすることを備える、請求項1に記載のシステム。
【請求項3】
前記1つ又は複数の量子ビットが複数の量子ビットを有し、前記エンコーディングすることが、前記複数の量子ビットのうちの第1の量子ビット及び前記複数の量子ビットのうちの第2の量子ビットを並列かつ互いに独立して循環反復エンコーディングすることを有する、請求項1又は2に記載のシステム。
【請求項4】
量子ハードウェアに、前記フラグ量子ビットの状態を測定させる監視構成要素をさらに備え、前記状態が、前記特定の量子ビットの誤ったエンコーディング又は誤りのないエンコーディングのうちの1つを表す、請求項2に記載のシステム。
【請求項5】
制御されたNOT(CNOT)ゲートが、前記フラグ量子ビット及び前記補助量子ビットの第1のチェーンの端の補助量子ビットを結合し、第2のCNOTが、前記フラグ量子ビットを前記補助量子ビットの第2のチェーンの端の補助量子ビットに結合する、請求項2に記載のシステム。
【請求項6】
前記特定の量子ビット、前記補助量子ビットの第1のチェーン、前記補助量子ビットの第2のチェーン、及び前記フラグ量子ビットが、循環接続を有するレイアウトで配置される、請求項2に記載のシステム。
【請求項7】
前記1つ又は複数の量子ビットが、重六角形の接続性を示す量子ビットレイアウトに含まれる、請求項1から6のいずれか一項に記載のシステム。
【請求項8】
前記1つ又は複数の量子ビットが、クラウドベースの量子コンピュータ又はローカル量子コンピュータのうちの1つの量子プロセッサを構成する、請求項1から7のいずれか一項に記載のシステム。
【請求項9】
プロセッサによって、1つ又は複数の量子ビットに対する操作の後、読み出し前に、一度に循環反復符号に従って前記1つ又は複数の量子ビットをエンコーディングさせる段階を備える、コンピュータ実装方法。
【請求項10】
前記プロセッサによって、前記1つ又は複数の量子ビットのうちの特定の量子ビットに結合された補助量子ビットの第1のチェーン、前記特定の量子ビットに結合された補助量子ビットの第2のチェーン、及び前記補助量子ビットの第1のチェーン及び前記補助量子ビットの第2のチェーンを接合するフラグ量子ビットを識別する段階をさらに備え、ここで、前記1つ又は複数の量子ビットを前記エンコーディングする段階が、
反復エンコーディングに従って、前記補助量子ビットの第1のチェーンをエンコーディングすること;及び
反復エンコーディングに従って、前記補助量子ビットの第2のチェーンをエンコーディングすること
によって前記特定の量子ビットをエンコーディングする段階を有する、請求項9に記載のコンピュータ実装方法。
【請求項11】
前記1つ又は複数の量子ビットは複数の量子ビットを有し、前記1つ又は複数の量子ビットを前記エンコーディングする段階は、前記複数の量子ビットのうちの第1の量子ビット及び前記複数の量子ビットのうちの第2の量子ビットを並列かつ互いに独立してエンコーディングする段階を有する、請求項9又は10に記載のコンピュータ実装方法。
【請求項12】
前記プロセッサによって、量子ハードウェアに前記フラグ量子ビットの状態を測定させる段階をさらに備え、前記状態が、前記特定の量子ビットの誤ったエンコーディング又は誤りのないエンコーディングのうちの1つを表す、請求項10に記載のコンピュータ実装方法。
【請求項13】
前記プロセッサによって、量子観測量の時間伝播の量子計算において前記1つ又は複数の量子ビットを前記エンコーディングする段階を適用する段階をさらに備える、請求項9から12のいずれか一項に記載のコンピュータ実装方法。
【請求項14】
前記プロセッサによって、変分量子アルゴリズムにおいて前記1つ又は複数の量子ビットを前記エンコーディングする段階を適用する段階をさらに備える、請求項9から13のいずれか一項に記載のコンピュータ実装方法。
【請求項15】
前記特定の量子ビット、前記補助量子ビットの第1のチェーン、前記補助量子ビットの第2のチェーン、及び前記フラグ量子ビットが、循環接続を有するレイアウトで配置される、請求項10に記載のコンピュータ実装方法。
【請求項16】
量子計算における読み出しエラーを低減するためのコンピュータプログラムであって、前記コンピュータプログラムが、プログラム命令を備え、前記プログラム命令が、プロセッサに、
複数の量子ビットに対する操作の後、読み出し前に、一度に循環反復符号に従って1つ又は複数の量子ビットをエンコーディングさせる
ように、前記プロセッサによって実行可能である、コンピュータプログラム。
【請求項17】
前記プログラム命令が、前記プロセッサに、前記1つ又は複数の量子ビットのうちの特定の量子ビットに結合された補助量子ビットの第1のチェーン、前記特定の量子ビットに結合された補助量子ビットの第2のチェーン、及び前記補助量子ビットの第1のチェーン及び前記補助量子ビットの第2のチェーンを接合するフラグ量子ビットを識別させるように、前記プロセッサによってさらに実行可能であり、前記1つ又は複数の量子ビットを前記エンコーディングすることが、
反復エンコーディングを使用して前記補助量子ビットの第1のチェーンをエンコーディングすること;及び
前記反復エンコーディングを使用して前記補助量子ビットの第2のチェーンをエンコーディングすること
によって前記特定の量子ビットをエンコーディングすることを有する、請求項16に記載のコンピュータプログラム。
【請求項18】
前記1つ又は複数の量子ビットが複数の量子ビットを有し、前記1つ又は複数の量子ビットを前記エンコーディングすることが、前記複数の量子ビットのうちの第1の量子ビット及び前記複数の量子ビットのうちの第2の量子ビットを並列にエンコーディングすることを有する、請求項16又は17に記載のコンピュータプログラム。
【請求項19】
前記プログラム命令が、前記プロセッサに、量子ハードウェアに前記フラグ量子ビットの状態を測定させることを行わせるように、前記プロセッサによってさらに実行可能であり、前記状態が、前記複数の量子ビットの誤ったエンコーディング又は誤りのないエンコーディングのうちの1つを表す、請求項17に記載のコンピュータプログラム。
【請求項20】
前記特定の量子ビット、前記補助量子ビットの第1のチェーン、前記補助量子ビットの第2のチェーン、及び前記フラグ量子ビットが、循環接続を有するレイアウトで配置される、請求項17に記載のコンピュータプログラム。
【手続補正2】
【補正対象書類名】図面
【補正対象項目名】図15
【補正方法】変更
【補正の内容】
図15
【国際調査報告】