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

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

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

特許7493526量子コンピューティングにおける適応エラー修正
<>
  • 特許-量子コンピューティングにおける適応エラー修正 図1
  • 特許-量子コンピューティングにおける適応エラー修正 図2
  • 特許-量子コンピューティングにおける適応エラー修正 図3
  • 特許-量子コンピューティングにおける適応エラー修正 図4
  • 特許-量子コンピューティングにおける適応エラー修正 図5
  • 特許-量子コンピューティングにおける適応エラー修正 図6
  • 特許-量子コンピューティングにおける適応エラー修正 図7
  • 特許-量子コンピューティングにおける適応エラー修正 図8
  • 特許-量子コンピューティングにおける適応エラー修正 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-23
(45)【発行日】2024-05-31
(54)【発明の名称】量子コンピューティングにおける適応エラー修正
(51)【国際特許分類】
   G06F 7/38 20060101AFI20240524BHJP
   G06N 10/00 20220101ALI20240524BHJP
【FI】
G06F7/38 510
G06N10/00
【請求項の数】 10
(21)【出願番号】P 2021549421
(86)(22)【出願日】2020-03-17
(65)【公表番号】
(43)【公表日】2022-05-09
(86)【国際出願番号】 EP2020057239
(87)【国際公開番号】W WO2020200758
(87)【国際公開日】2020-10-08
【審査請求日】2022-08-24
(31)【優先権主張番号】16/370,062
(32)【優先日】2019-03-29
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】グンネルス、ジョン
(72)【発明者】
【氏名】ウェグマン、マーク
(72)【発明者】
【氏名】カミンスキー、デイヴィット
【審査官】松浦 かおり
(56)【参考文献】
【文献】特表2018-532255(JP,A)
【文献】長橋 賢吾 KENNGO NAGAHASHI,最新 量子コンピュータの基本と仕組み 第1版 ,第1版,日本,株式会社秀和システム 斉藤 和邦,2018年10月01日,p.64~68,ISBN: 978-4-7980-5455-1
【文献】宮野 健次郎 KENNJIROU MIYANO,量子コンピュータ入門 [第2版] An introduction to quantum computation,第2版,日本,株式会社日本評論社 串崎 浩,2016年03月10日,p.105~122,ISBN: 978-4-535-78805-3
(58)【調査した分野】(Int.Cl.,DB名)
G06F 5/01
G06F 7/38- 7/537
G06F 7/57- 7/575
G06F 7/74- 7/78
G06G 1/00-99/00
G06N 3/00- 3/12
G06N 7/08-99/00
(57)【特許請求の範囲】
【請求項1】
方法であり、
量子プロセッサの量子ビットのセットに対して較正動作を実行することであって、前記較正動作が、前記量子プロセッサのパラメータのセットを決定する、前記較正動作を実行することと、
前記量子プロセッサによって実行されるための量子回路設計を解析することにより、前記量子プロセッサが量子回路設計を実行している間のエラー修正に使用可能な量子ビットの数を決定することと、
前記量子回路設計の量子エラー修正方法を選択することであって、前記量子エラー修正方法は、決定された前記数の量子ビットを使用して実行可能であり、第1の実行時間を有する、前記選択することと、
前記量子回路設計と前記パラメータのセットを解析することにより、精度のしきい値レベルに達するために必要な、前記量子プロセッサ上での前記量子回路設計の実行の反復回数を決定することと、
前記量子回路設計と前記パラメータのセットを解析することにより、前記量子プロセッサ上で決定された前記反復回数の前記量子回路設計の実行に必要な第2の実行時間を決定することと、
前記第1の実行時間が前記第2の実行時間よりも短いとき、前記量子プロセッサにエラー修正された量子回路設計を実行させることであって、前記エラー修正された量子回路設計は、前記量子回路設計と選択された前記量子エラー修正方法を有する、前記エラー修正された量子回路設計を実行させることと
を含む、方法。
【請求項2】
前記第1の実行時間が前記第2の実行時間以上のとき、前記量子プロセッサに前記量子回路設計を前記反復回数実行させることをさらに含む、請求項1に記載の方法。
【請求項3】
前記較正動作を実行することは、前記較正動作の結果と期待される結果とを比較することにより、前記パラメータのセットを生成することを含む、請求項1に記載の方法。
【請求項4】
前記較正動作を実行することは、前記量子ビットのセットの量子ビット・パラメータのセットを決定することを含む、請求項1に記載の方法。
【請求項5】
前記較正動作を実行することは、前記量子プロセッサの量子ゲート・パラメータ値のセットを決定することを含む、請求項1に記載の方法。
【請求項6】
前記エラー修正に使用可能な量子ビットの数は、前記量子プロセッサの量子ビットの総数から前記量子プロセッサが前記量子回路設計を実行するのに必要な量子ビットの数を引いた数である、請求項1に記載の方法。
【請求項7】
前記量子エラー修正方法は、前記量子エラー修正方法の精度のレベルに基づいて選択される、請求項1に記載の方法。
【請求項8】
前記量子エラー修正方法の精度のレベルは、前記精度のしきい値レベル以上である、請求項7に記載の方法。
【請求項9】
コンピュータに、請求項1ないし8のいずれかに記載の方法を実行させるためのプログラム。
【請求項10】
プロセッサ、コンピュータ可読メモリ、およびコンピュータ可読ストレージ・デバイス、ならびに前記メモリを介して前記プロセッサによって実行するために前記ストレージ・デバイスに格納されたプログラム命令を備えているコンピュータ・システムであって、前記格納されたプログラム命令が、
量子プロセッサの量子ビットのセットに対して較正動作を実行するためのプログラム命令であって、前記較正動作が、前記量子プロセッサのパラメータのセットを決定する、前記プログラム命令と、
前記量子プロセッサによって実行されるための量子回路設計を解析することにより、前記量子プロセッサが量子回路設計を実行している間のエラー修正に使用可能な量子ビットの数を決定するプログラム命令と、
前記量子回路設計の量子エラー修正方法を選択するためのプログラム命令であって、前記量子エラー修正方法は、決定された前記数の量子ビットを使用して実行可能であり、第1の実行時間を有する、前記プログラム命令と、
前記量子回路設計と前記パラメータのセットを解析することにより、精度のしきい値レベルに達するために必要な、前記量子プロセッサ上での前記量子回路設計の実行の反復回数を決定するプログラム命令と、
前記量子回路設計と前記パラメータのセットを解析することにより、前記量子プロセッサ上で決定された前記反復回数の前記量子回路設計の実行に必要な第2の実行時間を決定するプログラム命令と、
前記第1の実行時間が前記第2の実行時間よりも短いとき、前記量子プロセッサにエラー修正された量子回路設計を実行させるプログラム命令であって、前記エラー修正された量子回路設計は、前記量子回路設計と選択された前記量子エラー修正方法を有する、前記プログラム命令と
を含む、コンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、量子コンピューティングのための方法に関連している。より詳細には、本発明は、量子コンピューティングにおける適応エラー修正のための方法に関連している。
【背景技術】
【0002】
以下では、語句の単語における接頭辞「Q」は、使用される場合に明示的に区別されない限り、量子コンピューティングの文脈におけるその単語または語句の参照を示している。
【0003】
分子および亜原子粒子は、最も基礎的なレベルで物理的世界がどのように動作しているかを研究する物理学の一分野である量子力学の法則に従う。このレベルでは、粒子は、同時に2つ以上の状態になるという奇妙な方法で振る舞い、非常に遠く離れた他の粒子と相互作用する。量子コンピューティングは、これらの量子現象を利用して情報を処理する。
【0004】
現在一般的に使用されているコンピュータは、古典的コンピュータとして知られている(本明細書では、「従来の」コンピュータまたは従来のノード(CN:conventional nodes)とも呼ばれる)。従来のコンピュータは、フォン・ノイマン・アーキテクチャとして知られているアーキテクチャにおいて、半導体材料および半導体技術を使用して製造された従来のプロセッサ、半導体メモリ、ならびに磁気ストレージ・デバイスまたは半導体ストレージ・デバイスを使用する。特に、従来のコンピュータ内のプロセッサは、バイナリ・プロセッサ(すなわち、1および0によって表されたバイナリ・データに対して動作するプロセッサ)である。
【0005】
量子プロセッサ(qプロセッサ)は、もつれさせた量子ビットデバイス(本明細書では、簡潔に「量子ビット」、複数の「量子ビット」と呼ばれる)に特有の性質を使用して、計算タスクを実行する。量子力学が作用する特定の領域では、問題の粒子が、複数の状態(同時に、「オン」状態、「オフ」状態、および「オン」状態と「オフ」状態の両方など)で存在する可能性がある。半導体プロセッサを使用する2進数計算が、(バイナリ・コードにおける1および0と等価な)オン状態とオフ状態のみを使用することに制限される場合、量子プロセッサは、これらの問題の量子状態を利用して、データ計算において使用できる信号を出力する。
【0006】
従来のコンピュータは、情報をビットでエンコードする。各ビットは、1または0の値を取ることができる。これらの1および0は、最終的にコンピュータの機能を駆動するオン/オフ・スイッチとして機能する。一方、量子コンピュータは、量子ビットに基づき、重ね合わせおよびエンタングルメントという量子物理学の2つの重要な原理に従って動作する。重ね合わせとは、各量子ビットが、あるイベントの可能性のある結果間で、1および0の両方の推論を表すことができるということを意味する。エンタングルメントとは、重ね合わせにおける量子ビットが、非古典的方法で互いに相互関係を持つことができるということ、すなわち、ある量子の状態が(状態が1または0あるいはその両方のいずれであろうと)、別の量子の状態に依存することができるということ、および2つの量子ビットをもつれさせた場合に、2つの個別の量子ビットとしてよりも多くの情報が2つの量子ビット内に含まれるということを意味する。
【0007】
量子ビットは、これらの2つの原理を使用して、情報のプロセッサとして動作し、従来のコンピュータを使用して解決することが困難な特定の難しい問題を解くことができるようにする方法で、量子コンピュータを機能させることができる。
【0008】
超伝導量子ビットは、ジョセフソン接合を含む。ジョセフソン接合は、非超伝導材料で2つの薄膜超伝導金属層を分離することによって形成される。例えば、金属の温度を指定された極低温度に下げることによって、超伝導層内の金属が超伝導になることが引き起こされた場合、電子の対が、非超伝導層を介して、ある超伝導層から他の超伝導層にトンネルすることができる。量子ビットでは、分散非線形インダクタとして機能するジョセフソン接合が、1つまたは複数の容量性デバイスと並列に電気的に結合され、非線形マイクロ波発振器を形成する。この発振器は、量子ビット回路内のインダクタンスおよび静電容量の値によって決定される共振/遷移周波数を有する。
【0009】
量子ビットによって処理された情報は、マイクロ波周波数の範囲内で、マイクロ波信号/光子の形態で運ばれるか、または送信される。マイクロ波信号は、捕捉され、処理され、エンコードされている量子情報を解読するために解析される。読み出し回路は、量子ビットの量子状態を捕捉し、読み取り、測定するために量子ビットに結合された回路である。読み出し回路の出力は、計算を実行するためにqプロセッサによって使用できる情報である。
【0010】
超伝導量子ビットは、2つの量子状態|0>および|1>を有する。これらの2つの状態は、原子の2つのエネルギー状態(例えば、超伝導人工原子(超伝導量子ビット)の基底状態(|g>)および第1励起状態(|e>))であってよい。他の例としては、核スピンまたは電子スピンのスピンアップおよびスピンダウン、結晶欠陥の2つの位置、および量子ドットの2つの状態が挙げられる。このシステムは量子の性質であるため、2つの状態の任意の組み合わせが許容され、有効である。
【0011】
信頼できる量子ビットを使用する量子コンピューティングの場合、量子回路(例えば、量子ビット自体、量子ビットに関連付けられた読み出し回路、および量子プロセッサの他の部分)は、いずれかの有意な方法でエネルギーを投入すること、またはエネルギーを散逸させることなどによって、量子ビットのエネルギー状態を変更してはならず、または量子ビットの|0>状態と|1>状態の間の相対位相に影響を与えてはならない。量子情報を使用して動作する任意の回路に対するこの動作制約は、そのような回路において使用される半導体および超伝導構造の製造における特別な考慮を必要とする。
【0012】
従来の回路では、連続して配置されたブール論理ゲートが、一連のビットを操作する。ゲート論理を2進数計算用に最適化するための技術は、よく知られている。従来の回路用の回路最適化ソフトウェアは、従来の回路の効率を向上させ、複雑さを減らすことを目標としている。従来の回路用の回路最適化ソフトウェアは、一部分において、従来の回路の望ましい挙動全体をより単純な機能に分解することによって機能する。従来の回路最適化ソフトウェアは、より単純な機能をより簡単に操作し、処理する。回路最適化ソフトウェアは、従来の回路上の設計要素の効率的なレイアウトを生成する。その結果、従来の回路用の回路最適化ソフトウェアは、リソースの要求を大幅に削減し、それによって効率を向上させ、複雑さを減らす。
【0013】
例示的な実施形態は、量子回路内で、量子ゲートが量子ビットを操作して量子計算を実行するということを認識する。量子ゲートは、量子ビットに作用するユニタリ行列変換である。量子ビットの重ね合わせおよびエンタングルメントに起因して、量子ゲートは2×2行列を表し、nは、量子ゲートが操作する量子ビットの数である。例示的な実施形態は、量子ビットの数と共に行列変換のサイズが指数関数的に増加するため、そのような行列変換の分解が、手動で実行できないほど急速に複雑になるということを認識する。例えば、2つの量子ビットを含む量子コンピュータは、量子ゲートの表現のために4×4行列演算子を必要とする。指数関数的増加の結果、量子ビットの数が増えるにつれて、量子論理ゲートの手動の行列変換は、急速に手に負えなくなる。量子回路の深さは、時間ステップの総数である。各時間ステップは、量子ビットのセットに作用する量子論理ゲートに対応する。
【0014】
例示的な実施形態は、量子プロセッサが、ある期間にわたって変化する物理的特性を示すということを認識する。例示的な実施形態は、量子プロセッサの較正が、量子プロセッサの関連する量子ビットおよび量子ゲートのエラー率を決定するということを認識する。例示的な実施形態は、量子プロセッサが、多くの場合、1日に1回または2回だけ較正されるということをさらに認識する。
【0015】
例示的な実施形態は、量子コンピュータの感度が環境との不要な相互作用をもたらすことに起因して、量子コンピュータが古典的コンピュータよりもエラーの影響を受けやすいということを認識する。例示的な実施形態は、量子状態および量子演算が連続的であり(すなわち、連続的間隔に属し)、これが、量子回路全体にわたって小さいエラーが蓄積することをもたらすということを認識する。例示的な実施形態は、古典的エラー修正方式が、エラーの性質および種類について調べるための測定を実行するということをさらに認識する。例示的な実施形態は、量子システムに対して測定を実行することが、量子システムを崩壊させ、量子状態を古典的状態に崩壊させることが、量子状態にエンコードされた情報の喪失をもたらす可能性があるということを認識する。
【0016】
例示的な実施形態は、現在利用できる量子エラー修正手法が動作するには、可変量の量子コンピューティング・リソースが必要であるということを認識する。3量子ビット・ビット・フリップ・コード(three-qubit bit flip code)は、3つの量子ビットを使用して、3つの量子ビットのうちの1つにおけるエラーを決定し、修正する。第1の量子ビットまたはターゲット量子ビットは、第1の量子ビットの状態を確率pで反転させるか、または第1の量子ビットの状態を変化しないままにする、ノイズのあるチャネルを介して送信される。したがって、第1の量子ビットの状態は、確率1-pで正しく送信される。
【0017】
この確率を改善するために、第1の量子ビットの状態が追加の量子ビットにエンコードされる。第1の量子ビットは、2つの補助量子ビットともつれさせられ、3つの量子ビットがすべて状態|0>に初期化される。3つの量子ビットのエンコードされた状態が、ノイズのあるチャネルを介して送信されるときに、このチャネルは、エンコードされた状態に作用し、3つの量子ビットのサブセットを反転させる。量子ビットが反転されない確率は、(1-p)^3である。単一の量子ビットが反転される確率は、3p(1-p)^2である。確率3p^2(1-p)で2つの量子ビットが反転され、確率p^3で3つの量子ビットがすべて反転される。
【0018】
例示的な実施形態は、pが通常は非常に小さい数値であるということを認識する。ある量子ビットが他の量子ビットと異なるかどうかを判定することによって、量子ビットのうちの1つが反転されたかどうかの検出が決定される。すべての量子ビットが同じ状態で開始したため、いずれかの量子ビットが他と異なる場合、この量子ビットは、チャネルを介して送信される間に反転された。量子ビットが反転された場合、パウリXゲートまたは量子ビット・フリップ・ゲート(quantum bit-flip gate)が反転された量子ビットに適用される。
【0019】
例示的な実施形態は、量子コンピュータにおいて、符号の反転が別のエラーを生み出すということをさらに認識する。アダマール・ゲートは、基礎状態|0>を(|0>+|1>)/√2にマッピングし、基礎状態|1>を(|0>-|1>)/√2にマッピングする。上記の3量子ビット・ビット・フリップ・コードを使用し、ノイズのあるチャネルを介した送信の前後に、アダマール・ゲートの層を各量子ビットに追加して、3量子ビット・ビット・フリップ・コードが、3量子ビット符号フリップ・コード(three qubit sign flip code)に変換される。
【0020】
例示的な実施形態は、さらに複雑な量子エラー修正手法が、追加の量子コンピューティング・リソースを必要とするということをさらに認識する。ショル・コード(Shor code)は、1つのターゲット量子ビットおよび8つの補助量子ビットという、合計9つの量子ビットを必要とする。ショル・コードは、ビット・スリップ、符号の反転、および任意の単一量子ビット・エラーを修正する。スティーン・コード(Steane code)は、任意の単一量子ビット・エラーを修正するために、1つのターゲット量子ビットおよび6つの補助量子ビットという、合計7つの量子ビットを必要とする。カルダバンク-ショル-スティーン(CSS:Calderbank-Shor-Steane)コードは、任意の単一量子ビット・エラーを修正するために、1つのターゲット量子ビットおよび4つの補助量子ビットという、合計5つ以上の量子ビットを必要とする。例示的な実施形態は、適切なエラー修正手法の選択が、利用可能な量子コンピューティング・リソースに依存するということを認識する。
【発明の概要】
【0021】
例示的な実施形態は、量子コンピューティングにおける適応エラー修正のための方法を提供する。一実施形態では、方法が、量子ビットのセットに対して較正動作を実行することを含み、この較正動作は、量子プロセッサの初期状態を決定する。一実施形態では、方法が、量子プロセッサの初期状態を決定することに応答して、量子アルゴリズムに対応する量子回路設計の実行時間の期間を推定することを含み、量子プロセッサが、量子回路設計を実行するように構成される。
【0022】
一実施形態では、方法が、量子回路設計のエラー・シナリオを計算することを含む。一実施形態では、方法が、エラー・シナリオおよび量子プロセッサの初期状態を使用して、量子回路設計の量子エラー修正方法を選択することを含む。一実施形態では、方法が、量子アルゴリズムを量子回路設計に変換することを含み、量子回路設計は、量子論理ゲートのセットを含む。
【0023】
一実施形態では、量子論理ゲートのセットのサブセットは、選択された量子エラー修正方法に対応する。一実施形態では、量子プロセッサの初期状態は、量子プロセッサの量子ビットの総数を含む。一実施形態では、方法が、量子回路設計の深さを決定することを含む。
【0024】
一実施形態では、方法が、重みのセットを量子論理ゲートのセットに割り当てることを含む。一実施形態では、方法が、量子回路設計を以前に実行された量子回路設計のセットと比較することを含む。一実施形態では、方法が、選択された量子エラー修正方法の第1の計算コストを決定することを含む。
【0025】
一実施形態では、方法が、確率的量子エラー修正方法の第2の計算コストを決定することを含む。一実施形態では、方法が、量子回路設計を以前に実行された量子回路設計のセットと比較することを含む。一実施形態では、方法が、以前に実行された量子回路設計のセットの第1の量子回路設計の量子エラー修正方法を選択することを含む。一実施形態では、方法が、量子アルゴリズムを新しい量子回路設計に変換することを含み、新しい量子回路設計は、第1の量子回路設計に対応する量子論理ゲートのセットを含む。
【0026】
一実施形態は、コンピュータ使用可能プログラム製品を含む。コンピュータ使用可能プログラム製品は、コンピュータ可読ストレージ・デバイス、およびストレージ・デバイスに格納されたプログラム命令を含む。
【0027】
一実施形態では、コンピュータ使用可能コードが、データ処理システム内のコンピュータ可読ストレージ・デバイスに格納され、コンピュータ使用可能コードは、ネットワークを経由してリモート・データ処理システムから転送される。一実施形態では、コンピュータ使用可能コードが、サーバ・データ処理システム内のコンピュータ可読ストレージ・デバイスに格納され、コンピュータ使用可能コードは、リモート・データ処理システムに関連付けられたコンピュータ可読ストレージ・デバイス内で使用するために、ネットワークを経由してリモート・データ処理システムにダウンロードされる。
【0028】
一実施形態は、コンピュータ・システムを含む。コンピュータ・システムは、プロセッサ、コンピュータ可読メモリ、およびコンピュータ可読ストレージ・デバイス、ならびにメモリを介してプロセッサによって実行するためにストレージ・デバイスに格納されたプログラム命令を含む。
【0029】
添付の特許請求の範囲において、本発明の特性と考えられている新しい特徴が示される。しかし、本発明自体ならびに本発明の好ましい使用方法、その他の目的、および優位性は、例示的な実施形態の以下の詳細な説明を、添付の図面と一緒に読みながら参照することによって、最も良く理解されるであろう。
【図面の簡単な説明】
【0030】
図1】例示的な実施形態を実装できるデータ処理システムのネットワークのブロック図を示す図である。
図2】例示的な実施形態を実装できるデータ処理システムのブロック図を示す図である。
図3】例示的な実施形態に従って、量子コンピューティングにおける適応エラー修正の例示の構成を示す図である。
図4】例示的な実施形態に従って、量子プロセッサの較正の例示の構成を示す図である。
図5】例示的な実施形態に従って、量子回路構築の例示の構成を示す図である。
図6】例示的な実施形態に従って、量子コンピューティングにおける適応エラー修正のための例示の方法のフローチャートを示す図である。
図7】例示的な実施形態に従って、量子アルゴリズムに対応する量子回路設計の実行時間を推定するための例示の方法のフローチャートを示す図である。
図8】例示的な実施形態に従って、エラー・シナリオを計算するための例示の方法のフローチャートを示す図である。
図9】例示的な実施形態に従って、エラー修正方法を選択するための例示の方法のフローチャートを示す図である。
【発明を実施するための形態】
【0031】
本発明を説明するために使用される例示的な実施形態は、概して、量子プロセッサ内の量子ビットおよび量子ゲートでのエラー率を減らすために、前述した必要性に対処し、解決する。例示的な実施形態は、量子コンピューティングにおける適応エラー修正のための方法を提供する。
【0032】
一実施形態では、量子コンピュータ上の量子アルゴリズムの開始が検出される。この実施形態では、量子コンピュータの劣化の初期状態が決定される。特定の実施形態では、量子コンピュータの劣化の初期状態を決定するために、ランダム化ベンチマークが使用される。特定の実施形態では、複数の量子ビットに対する既定の動作のセットが量子コンピュータ上で実行される。既定の動作のセットは、既定の動作のセットを実行することに応答して、量子ビットごとに値のセットを生成する。一実施形態では、量子ビットごとの値のセットのうちの少なくとも1つが、既定の動作のセットのうちの少なくとも1つの期待される応答と比較される。
【0033】
一実施形態では、量子アルゴリズムの期間が推定される。特定の実施形態では、量子回路の深さが決定される。一実施形態では、アプリケーションが、量子ビットのセットに対して実行されるゲートの頻度を決定する。特定の実施形態では、重みが、量子アルゴリズムに対応する量子回路の量子論理ゲートに割り当てられる。特定の実施形態では、より大きいエラー率を有する量子論理ゲートに、より大きい重みが割り当てられる。一実施形態では、アプリケーションが、推定された期間を量子プロセッサの量子ビットのセットのデコヒーレンス時間と比較する。
【0034】
一実施形態では、量子アルゴリズムが第2の量子アルゴリズムと比較され、第2の量子アルゴリズムは、コンパイルされた量子回路に対応する。特定の実施形態では、量子コンピュータの初期状態が、第2の量子アルゴリズムに対応する第2の初期状態と比較される。
【0035】
一実施形態では、この比較に応答して、エラー修正方法が選択される。特定の実施形態では、エラー修正方法が、量子アルゴリズムの複数の反復を実行することを含み、これらの複数の反復は複数の出力を生成する。特定の実施形態では、複数の出力が平均化される。特定の実施形態では、選択されたエラー修正方法の第2の期間が選択される。
【0036】
1つまたは複数の周波数に関して発生するとして本明細書において説明された動作は、その1つまたは複数の周波数の信号に関して発生するとして解釈されるべきである。「信号」へのすべての参照は、使用される場合に明示的に区別されない限り、マイクロ波信号への参照である。
【0037】
説明を明確にするために、どのような制限も意味せずに、いくつかの例示の構成を使用して例示的な実施形態が説明される。当業者は、本開示から、説明された目的を実現するための説明された構成の多くの変更、適応、および修正を思い付くことができるであろう。同じことが、例示的な実施形態の範囲内で企図される。
【0038】
さらに、例示の抵抗器、インダクタ、コンデンサ、およびその他の回路部品の簡略図が、図および例示的な実施形態において使用される。実際の製造または回路では、本明細書において示されず、説明されない追加の構造またはコンポーネント、あるいは示された構造またはコンポーネントと異なるが、本明細書に記載された機能に類似する機能のための構造またはコンポーネントが、例示的な実施形態の範囲を逸脱せずに、存在してよい。
【0039】
例示的な実施形態は、単に例として、特定の種類の材料、電気特性、ステップ、大きい数、周波数、回路、コンポーネント、およびアプリケーションに関して説明される。これらおよびその他の同様のアーチファクトのどのような特定の明示も、本発明を制限するよう意図されていない。これらおよびその他の同様のアーチファクトの任意の適切な明示が、例示的な実施形態の範囲内で選択され得る。
【0040】
本開示における例は、単に説明を明確にするために使用されており、これらの例示的な実施形態に制限していない。本明細書に示された利点は、例にすぎず、これらの例示的な実施形態に制限するよう意図されていない。追加の利点または異なる利点が、特定の例示的な実施形態によって実現されてよい。さらに、特定の例示的な実施形態が、上記の利点の一部またはすべてを含むか、あるいは上記の利点を何も含まなくてよい。
【0041】
図を参照し、特に図1および2を参照すると、これらの図は、例示的な実施形態が実装されてよいデータ処理環境の例示の図である。図1および2は単なる例であり、さまざまな実施形態が実装されてよい環境に関して、どのような制限も主張または意味するよう意図されていない。特定の実装は、以下の説明に基づいて、示された環境に対して多くの変更を行ってよい。
【0042】
図1は、例示的な実施形態を実装できるデータ処理システムのネットワークのブロック図を示している。データ処理環境100は、例示的な実施形態を実装できるコンピュータのネットワークである。データ処理環境100は、ネットワーク102を含む。ネットワーク102は、データ処理環境100内で一緒に接続されているさまざまなデバイスとコンピュータの間の通信リンクを提供するために使用される媒体である。ネットワーク102は、ワイヤ、無線通信リンク、または光ファイバ・ケーブルなどの接続を含んでよい。
【0043】
クライアントまたはサーバは、ネットワーク102に接続された特定のデータ処理システムの例示の役割にすぎず、これらのデータ処理システムの他の構成または役割を除外するよう意図されていない。古典的処理システム104は、ネットワーク102に結合される。古典的処理システム104は、古典的処理システムである。ソフトウェア・アプリケーションが、データ処理環境100内の任意の量子データ処理システムで実行されてよい。図1の古典的処理システム104内で実行されるとして説明された任意のソフトウェア・アプリケーションは、同様の方法で別のデータ処理システム内で実行されるように構成され得る。図1の古典的処理システム104内で格納または生成される任意のデータまたは情報は、同様の方法で別のデータ処理システム内で格納または生成されるように構成され得る。古典的処理システム104などの古典的データ処理システムは、データを含んでよく、古典的コンピューティング・プロセスを実行するソフトウェア・アプリケーションまたはソフトウェア・ツールを含んでよい。
【0044】
サーバ106は、ストレージ・ユニット108と共にネットワーク102に結合される。サーバ106は、従来のデータ処理システムである。ストレージ・ユニット108は、本明細書において説明されているように、量子アルゴリズムのセット、量子回路のセット、量子論理ゲートのセット、および量子エラー修正コードのセットを格納することができる。量子処理システム140は、ネットワーク102に結合される。量子処理システム140は、量子データ処理システムである。ソフトウェア・アプリケーションが、データ処理環境100内の任意の量子データ処理システムで実行されてよい。図1の量子処理システム140内で実行されるとして説明された任意のソフトウェア・アプリケーションは、同様の方法で別の量子データ処理システム内で実行されるように構成され得る。図1の量子処理システム140内で格納または生成される任意のデータまたは情報は、同様の方法で別の量子データ処理システム内で格納または生成されるように構成され得る。量子処理システム140などの量子データ処理システムは、データを含んでよく、量子コンピューティング・プロセスを実行するソフトウェア・アプリケーションまたはソフトウェア・ツールを含んでよい。
【0045】
クライアント110、112、および114も、ネットワーク102に結合される。サーバ106またはクライアント110、112、もしくは114などの従来のデータ処理システムは、データを含んでよく、従来のコンピューティング・プロセスを実行するソフトウェア・アプリケーションまたはソフトウェア・ツールを含んでよい。
【0046】
単なる一例として、そのようなアーキテクチャに限定することを意味せずに、図1は、実施形態の例示の実装において使用できる特定のコンポーネントを示している。例えば、サーバ106およびクライアント110、112、114は、単なる一例として、サーバおよびクライアントとして示されており、クライアント/サーバ・アーキテクチャに限定することを意味していない。別の例として、例示的な実施形態の範囲内で、ある実施形態は、示されているように、複数の従来のデータ処理システム、量子データ処理システム、およびデータ・ネットワークにわたって分散することができ、一方、別の実施形態は、単一の従来のデータ処理システムまたは単一の量子データ処理システム上で実装され得る。従来のデータ処理システム106、110、112、および114は、実施形態を実装するのに適しているクラスタ、パーティション、およびその他の構成内の例示のノードも表している。
【0047】
デバイス132は、本明細書に記載された従来のコンピューティング・デバイスの例である。例えば、デバイス132は、スマートフォン、タブレット・コンピュータ、ラップトップ・コンピュータ、固定型または携帯型のクライアント110、ウェアラブル・コンピューティング・デバイス、または任意のその他の適切なデバイスの形態をとることができる。図1の別の従来のデータ処理システム内で実行されるとして説明された任意のソフトウェア・アプリケーションは、同様の方法でデバイス132内で実行されるように構成され得る。図1の別の従来のデータ処理システム内で格納または生成される任意のデータまたは情報は、同様の方法でデバイス132内で格納または生成されるように構成され得る。
【0048】
サーバ106と、ストレージ・ユニット108と、古典的処理システム104と、量子処理システム140と、クライアント110、112、および114と、デバイス132は、有線接続、無線通信プロトコル、またはその他の適切なデータ接続を使用して、ネットワーク102に結合されてよい。例えば、クライアント110、112、および114は、パーソナル・コンピュータまたはネットワーク・コンピュータであってよい。
【0049】
図に示された例では、サーバ106は、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションなどのデータを、クライアント110、112、および114に提供してよい。クライアント110、112、および114は、この例では、サーバ106のクライアントであってよい。クライアント110、112、114、またはこれらの何らかの組み合わせは、これら自身のデータ、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションを含んでよい。データ処理環境100は、図に示されていない追加のサーバ、クライアント、およびその他のデバイスを含んでよい。
【0050】
図に示された例では、メモリ144は、以前にコンパイルされた量子アルゴリズム、量子論理ゲート、量子エラー修正コード、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションなどのデータを、量子プロセッサ142に提供してよい。量子プロセッサ142は、それ自身のデータ、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションを含んでよい。データ処理環境100は、図に示されていない追加のメモリ、量子プロセッサ、およびその他のデバイスを含んでよい。メモリ144は、1つまたは複数の実施形態に従って、本明細書に記載された量子プロセッサの機能のうちの1つまたは複数を実装するように構成されてよいアプリケーション105を含んでいる。
【0051】
図に示された例では、データ処理環境100はインターネットであってよい。ネットワーク102は、送信制御プロトコル/インターネット・プロトコル(TCP/IP:Transmission Control Protocol/Internet Protocol)およびその他のプロトコルを使用して互いに通信する、ネットワークおよびゲートウェイの集合を表してよい。インターネットの中心には、データおよびメッセージをルーティングする多数の民間のコンピュータ・システム、政府機関のコンピュータ・システム、教育機関のコンピュータ・システム、およびその他のコンピュータ・システムを含む、主要なノード間またはホスト・コンピュータ間のデータ通信リンクのバックボーンがある。当然、データ処理環境100は、例えばインターネット、ローカル・エリア・ネットワーク(LAN:local area network)、または広域ネットワーク(WAN:wide area network)などの、多数の各種ネットワークとして実装されてもよい。図1は、例として意図されており、さまざま例示的な実施形態に関してアーキテクチャの制限として意図されていない。
【0052】
用途の中でも特に、データ処理環境100は、例示的な実施形態を実装できるクライアント/サーバ環境を実装するために使用されてよい。クライアント/サーバ環境は、従来のクライアント・データ処理システムと従来のサーバ・データ処理システムの間の双方向性を使用することによってアプリケーションが機能するように、ソフトウェア・アプリケーションおよびデータをネットワーク全体に分散することを可能にする。データ処理環境100は、サービス指向アーキテクチャを採用してもよく、サービス指向アーキテクチャでは、ネットワーク全体に分散された相互運用可能なソフトウェア・コンポーネントを、整合性のある業務アプリケーションとして一緒にパッケージ化することができる。データ処理環境100は、クラウドの形態をとり、構成可能な計算リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供のクラウド・コンピューティング・モデルを採用してもよく、管理上の手間またはサービス・プロバイダとのやりとりを最小限に抑えて、これらのリソースを迅速にプロビジョニングおよび解放することができる。
【0053】
図2を参照すると、この図は、例示的な実施形態を実装できるデータ処理システムのブロック図を示している。データ処理システム200は、図1のサーバ104および106、またはクライアント110、112、および114、あるいは別の種類のデバイスなどのコンピュータの例であり、このコンピュータ内に、例示的な実施形態のプロセスを実装するコンピュータ使用可能なプログラム・コードまたは命令が配置されてよい。
【0054】
データ処理システム200は、図1のデータ処理システム132などのデータ処理システムまたはその中の構成も表しており、このデータ処理システム内に、例示的な実施形態のプロセスを実装するコンピュータ使用可能なプログラム・コードまたは命令が配置されてよい。データ処理システム200は、単なる一例として、コンピュータとして説明されているが、これに限定されない。本明細書に記載されたデータ処理システム200の動作および機能の概要から逸脱することなく、図1のデバイス132などの他のデバイスの形態での実装が、タッチ・インターフェイスを追加することなどによって、データ処理システム200を変更してよく、図に示された特定のコンポーネントをデータ処理システム200から取り除いてもよい。
【0055】
図に示されている例では、データ処理システム200は、ノース・ブリッジおよびメモリ・コントローラ・ハブ(NB/MCH:North Bridge and memory controller hub)202およびサウス・ブリッジおよび入出力(I/O)コントローラ・ハブ(SB/ICH:South Bridge and input/output (I/O) controller hub)204を含んでいるハブ・アーキテクチャを採用している。処理ユニット206、メイン・メモリ208、およびグラフィック・プロセッサ210が、ノース・ブリッジおよびメモリ・コントローラ・ハブ(NB/MCH)202に結合されている。処理ユニット206は、1つまたは複数のプロセッサを含んでよく、1つまたは複数の異種プロセッサ・システムを使用して実装されてよい。処理ユニット206は、マルチコア・プロセッサであってよい。グラフィック・プロセッサ210は、特定の実装において、アクセラレーテッド・グラフィックス・ポート(AGP:accelerated graphics port)を介してNB/MCH202に結合されてよい。
【0056】
図に示された例では、ローカル・エリア・ネットワーク(LAN)アダプタ212が、サウス・ブリッジおよびI/Oコントローラ・ハブ(SB/ICH)204に結合されている。オーディオ・アダプタ216、キーボードおよびマウス・アダプタ220、モデム222、読み取り専用メモリ(ROM:read only memory)224、ユニバーサル・シリアル・バス(USB:universal serial bus)およびその他のポート232、ならびにPCI/PCIeデバイス234が、バス238を介してサウス・ブリッジおよびI/Oコントローラ・ハブ204に結合されている。ハード・ディスク・ドライブ(HDD:Hard disk drive)またはソリッド・ステート・ドライブ(SSD:solid-state drive)226およびCD-ROM230が、バス240を介してサウス・ブリッジおよびI/Oコントローラ・ハブ204に結合されている。PCI/PCIeデバイス234は、例えば、ノートブック・コンピュータ用のイーサネット(R)・アダプタ、アドイン・カード、およびPCカードを含んでよい。PCIはカード・バス・コントローラを使用するが、PCIeはカード・バス・コントローラを使用しない。ROM224は、例えば、フラッシュ・バイナリ入出力システム(BIOS:binary input/output system)であってよい。ハード・ディスク・ドライブ226およびCD-ROM230は、例えば、IDE(integrated drive electronics)、シリアルATA(SATA:serial advanced technology attachment)インターフェイス、またはeSATA(external-SATA)およびmSATA(micro-SATA)などの変形を使用してよい。スーパーI/O(SIO:superI/O)デバイス236が、バス238を介してサウス・ブリッジおよびI/Oコントローラ・ハブ(SB/ICH)204に結合されてよい。
【0057】
メイン・メモリ208、ROM224、またはフラッシュ・メモリ(図示されていない)などのメモリは、コンピュータ使用可能ストレージ・デバイスの一部の例である。ハード・ディスク・ドライブまたはソリッド・ステート・ドライブ226、CD-ROM230、およびその他の同様に使用可能なデバイスは、コンピュータ使用可能ストレージ媒体を含むコンピュータ使用可能ストレージ・デバイスの一部の例である。
【0058】
オペレーティング・システムが、処理ユニット206上で実行される。オペレーティング・システムは、図2のデータ処理システム200内のさまざまなコンポーネントを調整して制御する。オペレーティング・システムは、サーバ・システム、パーソナル・コンピュータ、およびモバイル・デバイスを含むが、これらに限定されない、任意の種類のコンピューティング・プラットフォーム用の、市販されているオペレーティング・システムであってよい。オブジェクト指向またはその他の種類のプログラミング・システムが、オペレーティング・システムと連動して動作し、データ処理システム200上で実行されているプログラムまたはアプリケーションからのオペレーティング・システムに対する呼び出しを提供してよい。
【0059】
オペレーティング・システム、オブジェクト指向プログラミング・システム、および図1のアプリケーション105などのアプリケーションまたはプログラムの命令が、ハード・ディスク・ドライブ226上のコード226Aの形態などで、ストレージ・デバイスに配置され、処理ユニット206によって実行するために、メイン・メモリ208などの1つまたは複数のメモリのうちの少なくとも1つに読み込まれてよい。例示的な実施形態のプロセスは、コンピュータ実装命令を使用して、処理ユニット206によって実行されてよく、これらのコンピュータ実装命令は、例えばメイン・メモリ208、読み取り専用メモリ224などのメモリ内、または1つまたは複数の周辺デバイス内に、配置されてよい。
【0060】
さらに、1つの事例では、コード226Aは、ネットワーク201Aを経由して、類似するコード201Cがストレージ・デバイス201Dに格納されているリモート・システム201Bからダウンロードされてよい。別の事例では、コード226Aは、ネットワーク201Aを経由してリモート・システム201Bにダウンロードされてよく、ダウンロードされたコード201Cが、ストレージ・デバイス201Dに格納される。
【0061】
図1~2のハードウェアは、実装に応じて変化してよい。フラッシュ・メモリ、同等の不揮発性メモリ、または光ディスク・ドライブなどの、その他の内部ハードウェアまたは周辺デバイスが、図1~2に示されているハードウェアに加えて、またはそれらのハードウェアの代わりに、使用されてよい。加えて、例示的な実施形態のプロセスは、マルチプロセッサ・データ処理システムに適用されてよい。
【0062】
一部の例示的な例では、データ処理システム200は、オペレーティング・システム・ファイルまたはユーザによって生成されたデータあるいはその両方を格納するために、不揮発性メモリを提供するようにフラッシュ・メモリを使用して通常は構成された、パーソナル・デジタル・アシスタント(PDA:personal digital assistant)であってよい。バス・システムは、システム・バス、I/Oバス、およびPCIバスなどの、1つまたは複数のバスを含んでよい。当然ながら、バス・システムは、通信ファブリックまたは通信アーキテクチャに取り付けられた異なるコンポーネントまたはデバイス間のデータの転送を提供する任意の種類の通信ファブリックまたは通信アーキテクチャを使用して、実装されてよい。
【0063】
通信ユニットは、モデムまたはネットワーク・アダプタなどの、データを送信および受信するために使用される1つまたは複数のデバイスを含んでよい。メモリは、例えば、メイン・メモリ208であるか、またはノース・ブリッジおよびメモリ・コントローラ・ハブ202に見られるキャッシュなどの、キャッシュであってよい。処理ユニットは、1つまたは複数のプロセッサまたはCPUを含んでよい。
【0064】
図1~2に示された例および前述した例は、アーキテクチャの制限を意味するよう意図されていない。例えば、データ処理システム200も、モバイル・デバイスまたはウェアラブル・デバイスの形態をとることに加えて、タブレット・コンピュータ、ラップトップ・コンピュータ、または電話デバイスであってよい。
【0065】
コンピュータまたはデータ処理システムが仮想マシン、仮想デバイス、または仮想コンポーネントとして説明される場合、仮想マシン、仮想デバイス、または仮想コンポーネントは、データ処理システム200に示された一部またはすべてのコンポーネントの仮想化された明示を使用して、データ処理システム200の方法で動作する。例えば、仮想マシン、仮想デバイス、または仮想コンポーネントでは、処理ユニット206は、ホスト・データ処理システム内で使用できるハードウェア処理ユニット206のすべてまたは一部の仮想化されたインスタンスとして明示され、メイン・メモリ208は、ホスト・データ処理システム内で使用できる場合があるメイン・メモリ208のすべてまたは一部の仮想化されたインスタンスとして明示され、ディスク226は、ホスト・データ処理システム内で使用できる場合があるディスク226のすべてまたは一部の仮想化されたインスタンスとして明示される。そのような場合、ホスト・データ処理システムはデータ処理システム200によって表される。
【0066】
図3を参照すると、この図は、例示的な実施形態に従って、量子コンピューティングにおける適応エラー修正の例示の構成を示している。この例示の実施形態は、アプリケーション302を含んでいる。特定の実施形態では、アプリケーション302は、図1のアプリケーション105の例である。アプリケーション302は、較正コンポーネント304および量子回路構築コンポーネント306を含んでいる。較正コンポーネント304は、本明細書に記載された例示の方法に従って、入力量子プロセッサ308を較正する。量子回路構築コンポーネント306は、本明細書に記載された例示の方法に従って、出力量子回路設計310をコンパイルする。
【0067】
図4を参照すると、この図は、例示的な実施形態に従って、量子プロセッサの較正の例示の構成を示している。この例示の実施形態は、アプリケーション402を含んでいる。特定の実施形態では、アプリケーション402は、図1のアプリケーション105の例である。
【0068】
アプリケーション402は、較正コンポーネント404を含んでいる。特定の実施形態では、コンポーネント404は、図3のコンポーネント304の例である。コンポーネント404は、較正オペレータ・コンポーネント406、量子ビット・パラメータ解析コンポーネント408、および量子ゲート・パラメータ解析コンポーネント410を含んでいる。アプリケーション402は、較正動作412を受信する。
【0069】
較正オペレータ406は、較正動作412を実行する。一実施形態では、較正動作412は、動作のセットを、量子プロセッサ414の複数の量子ビットQ1、Q2、Q3、...、Qnに対して実行する。一実施形態では、較正動作412は、ランダム化ベンチマークの方法を実行する。例えば、較正動作412は、既定の動作のセットを量子プロセッサ414の複数の量子ビットに対して実行できる。既定の動作のセットは、既定の動作のセットを実行することに応答して、量子ビットごとに値のセットを生成する。一実施形態では、較正オペレータ406が、量子ビットごとの値のセットを、既定の動作のセットのうちの少なくとも1つの期待される応答と比較する。
【0070】
一実施形態では、較正動作412が、量子プロセッサ414の複数の量子ビットの量子ビット・パラメータ値のセット416を返す。例えば、量子ビット・コヒーレンス時間、量子ビット緩和時間、測定誤差、およびその他の量子ビット・パラメータ値が、較正動作によって決定され得る。量子プロセッサ414の各量子ビットは、パラメータ値のセットのサブセットを含むことができる。例えば、量子ビットQ1は、関連するパラメータ値P1、P2、...、Pnなどを含むことができる。量子ビット・パラメータ値のこれらの例は、制限となるよう意図されていない。当業者は、本開示から、量子ビットのセットを較正するのに適した多くのその他の量子ビット・パラメータ値を思い付くことができるであろう。同じことが、例示的な実施形態の範囲内で企図される。
【0071】
一実施形態では、較正動作412が、量子ゲート・パラメータのセットを返す。例えば、較正動作412は、量子プロセッサ414内の量子ゲートごとのエラー率に対応するパラメータを返すことができる。一実施形態では、較正動作412は、量子プロセッサ414内の1つおよび2つの量子ゲート(プリミティブ・ゲート)ごとのエラー率に対応するパラメータを返す。
【0072】
コンポーネント408は、量子ビット・パラメータ値のセット416を解析する。一実施形態では、コンポーネント408は、量子ビット合格基準のセット418のうちの少なくとも1つに従って、量子ビット・パラメータ値のセット416を解析する。例えば、コンポーネント408は、量子ビットのパラメータ値を量子ビット合格基準と比較することができる。例えば、コンポーネント408は、量子ビットのコヒーレンス時間が、動作のセットを実行するためのしきい値コヒーレンス時間を満たすことができないということを決定することができる。別の例として、コンポーネント408は、別の量子ビットのコヒーレンス時間が、動作のセットを実行するためのしきい値コヒーレンス時間を満たすということを決定することができる。
【0073】
コンポーネント410は、量子ゲート・パラメータのセットを解析する。一実施形態では、量子ゲート・パラメータは、量子ゲートを形成する量子ビットのセットおよび量子プロセッサ上の量子ビットのレイアウトに対応する。一実施形態では、較正動作412が、量子プロセッサ414の複数の量子ゲートの量子ゲート・パラメータ値のセットを返す。例えば、ゲート・エラー率、ゲート速度、ゲート・クロストーク・マトリックス(gate cross talk matrix)、およびその他の量子ゲート・パラメータ値が、較正動作によって決定され得る。量子プロセッサ414の各量子ゲートは、量子ゲート・パラメータ値のセットのサブセットを含むことができる。量子ゲート・パラメータのこれらの例は、制限となるよう意図されていない。当業者は、本開示から、量子ゲートのセットを較正するのに適した多くのその他の量子ゲート・パラメータ値を思い付くことができるであろう。同じことが、例示的な実施形態の範囲内で企図される。
【0074】
コンポーネント410は、量子ゲート・パラメータ値のセットを解析する。一実施形態では、コンポーネント410は、量子ゲート合格基準のセット420のうちの少なくとも1つに従って、量子ゲート・パラメータ値のセットを解析する。例えば、コンポーネント410は、量子ゲートのパラメータ値を量子ゲート合格基準と比較することができる。例えば、コンポーネント410は、量子ゲートのゲート・エラー率が、量子ゲートを実行するためのしきい値エラー率を満たすことができないということを決定することができる。
【0075】
一実施形態では、コンポーネント410は、プリミティブ・ゲート・エラー率のセットから複合ゲートの複合ゲート・エラー率を生成し、プリミティブ・ゲートのセットから形成された複合ゲートは、プリミティブ・ゲート・エラー率に対応する。一実施形態では、コンポーネント410は、式
【数1】

から、3つの量子ビットを使用して形成された複合ゲートの複合ゲート・エラー率を生成し、ここで、AxyおよびBxyはそれぞれ、第1の較正動作中および第2の較正動作中に、量子ビットxおよびyから形成された量子ゲートのプリミティブ・ゲート・エラー率である。
【0076】
図5を参照すると、この図は、例示的な実施形態に従って、量子回路構築の例示の構成を示している。この例示の実施形態は、アプリケーション502を含んでいる。特定の実施形態では、アプリケーション502は、図1のアプリケーション105の例である。
【0077】
アプリケーション502は、量子回路構築コンポーネント504を含んでいる。特定の実施形態では、コンポーネント504は、図3のコンポーネント306の例である。コンポーネント504は、量子回路コンパイラ・コンポーネント506を含んでいる。コンポーネント506は、入力量子アルゴリズム514を量子回路設計530に変換するように構成される。コンポーネント516は、アルゴリズム変換コンポーネント508を含んでいる。
【0078】
コンポーネント508は、量子アルゴリズムのコードを、量子アルゴリズムによって実行される動作に対応する第1の量子回路設計に変換する。アプリケーション502は、データベース524に格納された量子回路設計のセット528を受信する。特定の実施形態では、各量子回路設計528は、以前に決定された実行時間推定値を含む。特定の実施形態では、格納された量子回路設計のセットの各々の実行時間推定値は、量子プロセッサ上で量子回路設計のセットの各々の以前の実行から決定される。データベース524は、図1のストレージ・ユニット108の例である。一実施形態では、実行時間推定コンポーネント510が、量子アルゴリズム522の実行時間を決定する。一実施形態では、コンポーネント510は、量子アルゴリズム522を、量子回路設計のセット528に対応する量子アルゴリズムのセットと比較する。特定の実施形態では、コンポーネント510は、量子回路設計530内の量子論理ゲートの総数と、格納されている量子回路設計のセットのうちの少なくとも1つに含まれている量子論理ゲートの総数とを比較する。
【0079】
コンポーネント510は、回路深さコンポーネント512およびゲート重み係数514を含んでいる。一実施形態では、回路深さコンポーネント512が、量子回路設計530の深さを決定する。一実施形態では、ゲート重み係数514が、重みのセットを、量子回路設計530内の量子論理ゲートのセットに割り当てる。特定の実施形態では、比較的高いエラー率を有する量子論理ゲートのセットのサブセットが、より低いエラー率を有する量子論理ゲートよりも大きい重み係数を有する。
【0080】
エラー・シナリオ・コンポーネント516は、量子回路設計530の最悪の場合のエラー・シナリオを決定する。一実施形態では、回路比較コンポーネント518が、量子回路設計530を解析し、量子論理ゲートの数、量子論理ゲートの種類、および量子回路設計530を実行するように構成された量子プロセッサの状態を決定する。特定の実施形態では、回路比較コンポーネント518は、量子プロセッサの量子ビットのセットのデコヒーレンス時間を決定する。特定の実施形態では、量子回路設計のセット528の各々は、対応する量子回路設計を実行する前に決定された量子プロセッサの状態を含む。
【0081】
一実施形態では、回路比較コンポーネント518は、量子回路設計530および量子プロセッサの状態を、量子論理ゲートのセットおよび対応する量子プロセッサの状態のセットと比較する。一実施形態では、コンポーネント518は、量子回路設計530に類似する量子回路設計を、量子回路設計のセット528から選択する。特定の実施形態では、コンポーネント518は、量子回路設計間で、量子論理ゲートの総数、量子論理ゲートの種類、および量子プロセッサの初期状態を比較する。
【0082】
一実施形態では、エラー修正選択コンポーネント520が、量子回路設計530、実行時間推定値、および量子プロセッサの状態を解析して、適切なエラー修正方法を選択する。一実施形態では、コンポーネント520は、量子回路設計530を実行するために必要な量子ビットの数を解析する。一実施形態では、コンポーネント520は、量子プロセッサ上で計算を実行するために使用できる量子ビットの総数を解析する。特定の実施形態では、コンポーネント520は、量子プロセッサ上で量子エラー修正に使用できる残りの量子ビットのセットを決定する。例えば、コンポーネント520は、量子回路設計530を実行するために5つの量子ビットが必要であるということを決定できる。コンポーネント520は、量子プロセッサ上での計算に合計で8つの量子ビットが使用可能であるということを決定できる。コンポーネント520は、残りの3つの量子ビットが量子エラー修正に使用可能であるということを決定できる。
【0083】
一実施形態では、コンポーネント520は、量子エラー修正に使用できる量子プロセッサ上の量子ビットのセットのサブセットを決定することに応答して、適切な量子エラー修正手法を選択する。特定の実施形態では、コンポーネント520は、量子エラー修正に使用できる量子ビットにも適合しながら、最高レベルの精度をもたらす量子エラー修正手法を選択する。特定の実施形態では、コンポーネント520は、量子回路設計530における量子論理ゲートの種類に基づいて量子エラー修正手法を選択する。
【0084】
確率比較コンポーネント520が、精度のしきい値レベルに達するために必要な、量子プロセッサ上での量子回路設計530の実行の反復回数を決定する。例えば、コンポーネント520は、99%レベルの精度をもたらすために120回の反復が必要であるということを決定できる。コンポーネント520は、選択された量子エラー修正方法の実行時間を決定する。コンポーネント520は、選択された量子エラー修正方法の実行時間を、精度のしきい値レベルに達するために追加の反復を実行するための実行時間と比較する。例えば、コンポーネント520は、追加の反復を実行することが、同様のレベルの精度を、選択された量子エラー修正方法よりも少ない時間でもたらすということを決定できる。アプリケーション502は、対応する選択された量子エラー修正方法532と共に、量子回路設計530を出力する。
【0085】
図6を参照すると、この図は、例示的な実施形態に従って、量子コンピューティングにおける適応エラー修正の例示の方法のフローチャートを示している。アプリケーション105は、実施形態における方法600を実行する。
【0086】
ブロック602で、アプリケーション105が、量子プロセッサの初期状態を決定する。一実施形態では、アプリケーション105は、最初の反復において、量子ビットのセットに対して較正動作を実行する。一実施形態では、この較正動作はパラメータのセットを生成し、パラメータのセットの第1のサブセットが、量子ビットのセットの第1の量子ビットに対応し、パラメータのセットの第2のサブセットが、量子ビットのセットの第2の量子ビットに対応する。一実施形態では、アプリケーション105は、第1の量子ビットに対して既定の動作を実行する。一実施形態では、アプリケーション105は、既定の動作の出力を期待される出力と比較する。
【0087】
ブロック604で、アプリケーション105が、量子アルゴリズムに対応する量子回路設計の実行時間の期間を推定する。ブロック606で、アプリケーション105が、量子アルゴリズムに対応する量子回路設計のエラー・シナリオを計算する。ブロック608で、アプリケーション105が、量子アルゴリズムに対応する量子回路設計の適切なエラー修正方法を選択する。ブロック610で、アプリケーション105が、量子アルゴリズムを量子回路設計に変換し、量子回路設計は、量子論理ゲートのセットを含む。一実施形態では、量子論理ゲートのセットのサブセットは、選択されたエラー修正方法に対応する。その後、アプリケーション105はプロセス600を終了する。
【0088】
図7を参照すると、この図は、例示的な実施形態に従って、量子アルゴリズムに対応する量子回路設計の実行時間を推定するための例示の方法のフローチャートを示している。ブロック604で、アプリケーション105が、実施形態における方法700を実行する。ブロック702で、アプリケーション105が、量子アルゴリズムに対応する量子回路の深さを決定する。ブロック704で、アプリケーション105が、重みのセットを、量子回路設計内の量子論理ゲートのセットに割り当てる。その後、アプリケーション105はプロセス700を終了する。
【0089】
図8を参照すると、この図は、例示的な実施形態に従って、エラー・シナリオを計算するための例示の方法のフローチャートを示している。ブロック606で、アプリケーション105が、実施形態における方法800を実行する。ブロック802で、アプリケーション105が、重みのセットを、エラー・シナリオのセットに割り当てる。ブロック804で、アプリケーション105が、量子回路設計を、データベースに格納されている以前に実行された量子回路設計のセットと比較する。その後、アプリケーション105はプロセス800を終了する。
【0090】
図9を参照すると、この図は、例示的な実施形態に従って、エラー修正方法を選択するための例示の方法のフローチャートを示している。ブロック608で、アプリケーション105が、実施形態における方法900を実行する。ブロック902で、アプリケーション105が、選択されたエラー修正方法の第1の計算(評価)コストを決定する。ブロック904で、アプリケーション105が、確率的エラー修正方法の第2の計算(評価)コストを決定する。ブロック906で、アプリケーション105が、第1の計算コストと第2の計算コストを比較する。一実施形態では、アプリケーション105は、より低い計算コストを有するエラー修正方法を選択する。その後、アプリケーション105はプロセス900を終了する。
【0091】
本明細書では、関連する図面を参照して、本発明のさまざまな実施形態が説明される。本発明の範囲を逸脱することなく、代替の実施形態が考案され得る。さまざまな接続および位置関係(例えば、上、下、隣接など)が、以下の説明および図面における要素間で示されているが、当業者は、本明細書に記載された位置関係の多くが、向きが変更されても説明されている機能が維持される場合に、向きに依存しないということを認識するであろう。それらの接続または位置関係あるいはその両方は、特に規定されない限り、直接的または間接的であることができ、本発明はこの点において限定するよう意図されていない。したがって、実体の結合は、直接的結合または間接的結合を指すことができ、実体間の位置関係は、直接的位置関係または間接的位置関係であることができる。間接的位置関係の一例として、本説明において、層「B」の上に層「A」を形成することへの言及は、層「A」および層「B」の関連する特性および機能が中間層によって大幅に変更されない限り、1つまたは複数の中間層(例えば、層「C」)が層「A」と層「B」の間にある状況を含んでいる。
【0092】
以下の定義および略称が、特許請求の範囲および本明細書の解釈に使用される。本明細書において使用されているように、「備える」、「備えている」、「含む」、「含んでいる」、「有する」、「有している」、「含有する」、「含有している」という用語、またはこれらの任意のその他の変形は、非排他的包含をカバーするよう意図されている。例えば、要素のリストを含んでいる組成、混合、工程、方法、製品、または装置は、それらの要素のみに必ずしも限定されず、明示されていないか、またはそのような組成、混合、工程、方法、製品、または装置に固有の、その他の要素を含むことができる。
【0093】
さらに、「例示的な」という用語は、本明細書では「例、事例、または実例としての役割を果たす」ことを意味するために使用される。「例示的な」として本明細書に記載された実施形態または設計は、必ずしも他の実施形態または設計よりも好ましいか、または有利であると解釈されるべきではない。「少なくとも1つ」および「1つまたは複数」という用語は、1以上の任意の整数(すなわち、1、2、3、4など)を含んでいると理解される。「複数」という用語は、2以上の任意の整数(すなわち、2、3、4、5など)を含んでいると理解される。「接続」という用語は、間接的「接続」および直接的「接続」を含むことができる。
【0094】
本明細書における「1つの実施形態」、「実施形態」、「例示の実施形態」などへの参照は、記載された実施形態が特定の特徴、構造、または特性を含むことができるが、すべての実施形態が特定の特徴、構造、または特性を含んでも含まなくてもよいということを示している。さらに、そのような語句は必ずしも同じ実施形態を参照していない。また、特定の特徴、構造、または特性がある実施形態に関連して説明される場合、明示的に説明されるかどうかにかかわらず、他の実施形態に関連してそのような特徴、構造、または特性に影響を与えることは、当業者の知識の範囲内にあると考えられる。
【0095】
「約」、「実質的に」、「近似的に」、およびこれらの変形の用語は、本願書の出願時に使用できる機器に基づいて、特定の量の測定に関連付けられた誤差の程度を含むよう意図されている。例えば、「約」は、特定の値の±8%または5%、あるいは2%の範囲を含むことができる。
【0096】
本発明のさまざまな実施形態の説明は、例示の目的で提示されているが、網羅的であることは意図されておらず、開示された実施形態に制限されない。説明された実施形態の範囲を逸脱することなく多くの変更および変形が当業者には明らかである。本明細書で使用された用語は、実施形態の原理、実際の適用、または市場で見られる技術を超える技術的改良を最も適切に説明するため、または他の当業者が本明細書に記載された実施形態を理解できるようにするために選択されている。
【0097】
したがって、例示的な実施形態において、オンライン・コミュニティへの参加、およびその他の関連する特徴、機能、または動作を管理するためのコンピュータ実装方法、システムまたは装置、およびコンピュータ・プログラム製品が提供される。実施形態またはその一部がデバイスの一種に関して説明される場合、コンピュータ実装方法、システムまたは装置、コンピュータ・プログラム製品、あるいはこれらの一部は、その種類のデバイスの適切な同等の明示と共に使用するように適応されるか、または構成される。
【0098】
実施形態がアプリケーションにおいて実装されると説明される場合、例示的な実施形態の範囲内で、SaaS(Software as a Service)モデルにおけるアプリケーションの配信が企図される。SaaSモデルでは、クラウド・インフラストラクチャ内でアプリケーションを実行することによって、実施形態を実施するアプリケーションの機能がユーザに提供される。ユーザは、Webブラウザ(例えば、Webベースの電子メール)またはその他の軽量クライアント・アプリケーションなどのシン・クライアント・インターフェイスを介して、さまざまなクライアント・デバイスを使用してアプリケーションにアクセスすることができる。ユーザは、クラウド・インフラストラクチャのネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを、管理することも制御することもない。場合によっては、ユーザは、SaaSアプリケーションの機能を管理または制御することさえなくてよい。他の事例では、SaaSによるアプリケーションの実施は、可能性のある限定的なユーザ固有のアプリケーション構成設定の例外を許可することができる。
【0099】
本発明は、任意の可能な統合の技術的詳細レベルで、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読ストレージ媒体を含んでよい。
【0100】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(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)・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【0101】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【0102】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上で部分的におよびリモート・コンピュータ上で部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路を個人専用にするためのコンピュータ可読プログラム命令を実行してよい。
【0103】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【0104】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであってもよい。
【0105】
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれてもよく、それによって、一連の動作可能なステップを、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で実行させる。
【0106】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
図1
図2
図3
図4
図5
図6
図7
図8
図9