JP7315684B2 - 量子アルゴリズムの検証、および量子アルゴリズムの実行時間の推定 - Google Patents

量子アルゴリズムの検証、および量子アルゴリズムの実行時間の推定 Download PDF

Info

Publication number
JP7315684B2
JP7315684B2 JP2021543345A JP2021543345A JP7315684B2 JP 7315684 B2 JP7315684 B2 JP 7315684B2 JP 2021543345 A JP2021543345 A JP 2021543345A JP 2021543345 A JP2021543345 A JP 2021543345A JP 7315684 B2 JP7315684 B2 JP 7315684B2
Authority
JP
Japan
Prior art keywords
quantum
parameters
computer
data processing
algorithm
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021543345A
Other languages
English (en)
Other versions
JPWO2020182489A5 (ja
JP2022522101A (ja
Inventor
ジャバディアブハリ、アリ
ガンベッタ、ジェイ、マイケル
サーテイジ、イスマエル ファロ
ネイション、ポール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2022522101A publication Critical patent/JP2022522101A/ja
Publication of JPWO2020182489A5 publication Critical patent/JPWO2020182489A5/ja
Application granted granted Critical
Publication of JP7315684B2 publication Critical patent/JP7315684B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/60Quantum algorithms, e.g. based on quantum optimisation, quantum Fourier or Hadamard transforms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/20Models of quantum computing, e.g. quantum circuits or universal quantum computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/70Quantum error correction, detection or prevention, e.g. surface codes or magic state distillation
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B82NANOTECHNOLOGY
    • B82YSPECIFIC USES OR APPLICATIONS OF NANOSTRUCTURES; MEASUREMENT OR ANALYSIS OF NANOSTRUCTURES; MANUFACTURE OR TREATMENT OF NANOSTRUCTURES
    • B82Y10/00Nanotechnology for information processing, storage or transmission, e.g. quantum computing or single electron logic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Physics (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Mathematical Optimization (AREA)
  • Artificial Intelligence (AREA)
  • Quality & Reliability (AREA)
  • Geometry (AREA)
  • Devices For Executing Special Programs (AREA)
  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、一般に、量子アルゴリズムのコンパイルの方法に関する。より詳細には、本発明は、量子アルゴリズムを検証し、量子アルゴリズムの実行時間を推定する方法に関する。
以下、語句の単語中の「Q」という接頭語は、使用される場合が明示的に区別されない限り、量子計算の文脈におけるその単語または語句の参照を示している。
分子および素粒子は、物質界が最も基礎的なレベルでどのように動作するかを探究する物理学の一分野である量子力学の法則に従う。このレベルでは、粒子が奇妙な挙動を示し、同時に1つより多くの状態をとり、非常に遠くの他の粒子と相互作用する。量子計算は、これらの量子現象を利用して情報を処理する。
我々が今日使用するコンピュータは、古典コンピュータ(本明細書では「従来型」コンピュータまたは従来型ノード、即ち「CN」とも呼ばれる)といわれる。従来型コンピュータは、いわゆるフォン・ノイマン式アーキテクチャにおいて、半導体材料および技術を用いて製造される従来型プロセッサ、半導体メモリ、および磁気記憶デバイスまたはソリッド・ステート記憶デバイスを使用する。特に、従来型コンピュータにおけるプロセッサは、バイナリ・プロセッサであり、即ち、1および0で表されるバイナリ・データに対して動作する。
量子プロセッサ(qプロセッサ)は、量子もつれ状態のキュービット・デバイス(本明細書では簡潔に「キュービット」、複数の「キュービット」と呼ばれる)の変わった性質を用いて計算タスクを実行する。量子力学が作用する特定の領域では、問題の粒子が、「オン」状態、「オフ」状態、ならびに同時に「オン」および「オフ」両方の状態などの、複数の状態で存在し得る。半導体プロセッサを用いたバイナリ計算が、単にオンおよびオフ状態(バイナリコードの1および0に相当する)を用いることに限定される場合、量子プロセッサは、問題のこれらの量子状態を利用して、データ計算において使用可能な信号を出力する。
従来型コンピュータは、ビットで情報を符号化する。各ビットは、1または0の値をとり得る。これらの1および0は、コンピュータ機能を最終的に駆動するオン/オフ・スイッチとして機能する。一方、量子コンピュータは、キュービットに基づき、キュービットは、量子物理学の2つの重要な原理、重ね合わせおよびもつれに従って動作する。重ね合わせは、各キュービットが、1および0の両方を同時に表し得ることを意味する。もつれは、重ね合わせ状態のキュービットが、非古典的なやり方で相互に関連付けられ得ること、即ち、1つの状態(それが1もしくは0または両方のいずれにせよ)が、別の状態に依存し得ること、および2つのキュービットが個々に扱われるときよりもそれらがもつれているときに、2つのキュービットについて確認され得る情報がより多く存在することを意味する。
これら2つの原理を用いて、キュービットは、より高度な情報のプロセッサとして動作して、従来型コンピュータを用いて処理し難い難問を量子コンピュータが解くことができるように、量子コンピュータが機能することを可能にする。IBM(R)は、超伝導キュービットを用いた量子プロセッサの操作性の構築および実証に成功した(IBMは、米国および他の国々におけるインターナショナル・ビジネス・マシーンズ・コーポレーションの登録商標である)。
超伝導キュービットは、ジョセフソン接合(Josephson junction)を含む。ジョセフソン接合は、2つの薄膜超伝導金属層を非超伝導物質によって分離することにより形成される。超伝導層内の金属が、例えば金属の温度を特定の超低温まで低下させることによって、超伝導にされるとき、一対の電子が、1つの超伝導層から非超伝導層を通って他の超伝導層へトンネルし得る。キュービットにおいて、分散型非線形インダクタとして機能するジョセフソン接合は、非線形マイクロ波発振器を形成する1つまたは複数の容量デバイスと並列で電気的に連結される。発振器は、キュービット回路におけるインダクタンスおよびキャパシタンスの値によって判断される共振/遷移周波数を有する。「キュービット」という用語に対するいかなる参照も、使用される場合が明示的に区別されない限り、ジョセフソン接合を利用する超伝導キュービット回路への参照である。
キュービットによって処理される情報は、マイクロ波周波数の範囲においてマイクロ波信号/光子の形態で搬送され、または送信される。マイクロ波信号は、キャプチャされ、処理され、そこで符号化される量子情報を解読するために分析される。読み出し回路は、キュービットの量子状態をキャプチャし、読み出し、測定するためにキュービットと連結される回路である。読み出し回路の出力は、計算を実行するためにqプロセッサによって使用可能な情報である。
超伝導キュービットは、2つの量子状態、|0>および|1>を有する。これらの2つの状態は、原子の2つのエネルギー状態、例えば、超伝導人工原子(超伝導キュービット)の基底状態(|g>)および第1の励起状態(|e>)であり得る。他の例は、核スピンまたは電子スピンのスピンアップおよびスピンダウン、結晶欠陥の2つの配置、および量子ドットの2つの状態を含む。システムが量子性質のものであるため、2つの状態の任意の組み合わせが可能であり、有効である。
キュービットを用いた量子計算が信頼できるためには、量子回路、例えばキュービット自体、キュービットに関連付けられた読み出し回路、および量子プロセッサの他の部分が、いかなる意味のある方式でもエネルギーを注入することもしくは消散させることなどによって、キュービットの状態を変えてはならず、またはキュービットの|0>状態と|1>状態との間の相対位相に影響を及ぼしてはならない。量子情報で動作する任意の回路に対するこの動作制約は、そのような回路において使用される半導体および超伝導構造を製造する際に特別な考慮を必要とする。
従来型回路では、連続して配置されたブーリアン・ロジック・ゲートが、一連のビットを操作する。バイナリ計算用のゲート・ロジックを最適化するための技術は、周知である。従来型回路用の回路最適化ソフトウェアは、従来型回路の効率性を向上させ、複雑性を低下させることを目的とする。従来型回路用の回路最適化ソフトウェアは、従来型回路の所望の挙動全体をより単純な機能に分解することによって、部分的に機能する。従来型の回路最適化ソフトウェアは、より単純な機能をより容易に操作し、処理する。回路最適化ソフトウェアは、従来型回路上の設計素子の効率的なレイアウトを生成する。その結果、従来型回路用の回路最適化ソフトウェアは、リソース需要を著しく低下させ、それにより効率性を向上させ、複雑性を低下させる。
例示的実施形態は、量子回路において、量子ゲートがキュービットを操作して量子計算を実行することを認識する。量子ゲートは、キュービットに作用するユニタリ行列変換である。キュービットの重ね合わせおよびもつれのために、量子ゲートは、2×2行列を表し、nは、量子ゲートが操作するキュービットの数である。例示的実施形態は、キュービットの数と共に行列変換のサイズが指数関数的に増加することに起因して、そのような行列変換の分解が、急速に複雑になり過ぎて手動で実行することができないことを認識する。例えば、2個のキュービットを有する量子コンピュータは、量子ゲート表現のために4×4行列演算子を必要とする。10個のキュービットを有する量子コンピュータは、量子ゲート表現のために1024×1024行列演算子を必要とする。指数関数的増加の結果として、キュービットの数が増加するにつれて、手動の量子ロジック・ゲート行列変換は、急速に管理不可能になる。
量子アルゴリズムは、量子コンピュータ上で実行される命令のセットを表現する。例示的実施形態は、量子アルゴリズムが量子回路としてモデル化され得ることを認識する。量子回路は、対応する量子アルゴリズムのステップを実行する量子ロジック・ゲートのセットから形成される計算モデルである。
量子プロセッサは、クラウド・アクセス・デバイスであってもよい。量子プロセッサのプロバイダは、バックエンド量子プロセッサが実行する量子アルゴリズムを生成するためにユーザ用のフロントエンド・ソフトウェアを供給する。
例示的実施形態は、量子ゲートが量子アルゴリズムの計算に影響を及ぼすエラー率を含むことをさらに認識する。各量子ゲートは、キュービットの状態に影響を及ぼす量子ノイズを量子システムにもたらす。量子ゲート・エラーは、量子プロセッサが、量子ゲートによって作用されるキュービットの状態の重ね合わせをどのくらい正確に制御するかに対応する。
例示的実施形態は、量子プロセッサがある期間にわたって変化する物理的特性を表すことを認識する。例示的実施形態は、量子プロセッサの校正が、量子プロセッサの関連するキュービットおよび量子ゲートについてのエラー率を判断することを認識する。例示的実施形態は、量子プロセッサが、多くの場合1日1回または2回だけ校正されることをさらに認識する。例示的実施形態は、ある量子アルゴリズムが、関連するキュービットおよび量子ゲートについての特定のエラー率に起因して所与の量子プロセッサ上で実行しない場合があることを、さらに認識する。
例示的実施形態は、量子プロセッサ用のハードウェア・リソースが制限されることを認識する。例示的実施形態は、量子アルゴリズムを量子プロセッサ上で実行されるべき量子回路に変換するコンパイラが、機能的に量子アルゴリズムに相当するが、量子ハードウェア上において最大効率で稼働する回路を生成することを目的とすることをさらに認識する。例示的実施形態は、不要な、または不必要な演算の削除が、より効率的な量子回路を簡略化し、生成することをさらに認識する。
例示的実施形態は、量子プロセッサ用のハードウェア・リソースが制限されることを認識する。例示的実施形態は、量子アルゴリズムを量子プロセッサ上で実行されるべき量子回路に変換するコンパイラが、機能的に量子アルゴリズムに相当するが、量子ハードウェア上において増加効率で稼働する回路を生成することを目的とすることを、さらに認識する。
例示的実施形態は、量子アルゴリズムの検証および実行時間推定の方法を提供する。量子アルゴリズムの検証および実行時間推定の方法は、量子アルゴリズムを受信することと、量子アルゴリズムをシミュレートすることであって、量子アルゴリズムが量子ゲートのセットを形成する、シミュレートすることと、を含む。実施形態において、方法は、量子ゲートのセットのパラメータの第1のセットを分析することを含む。
実施形態において、方法は、量子ゲートのセットを実行するキュービットのセットのパラメータの第2のセットを分析することを含む。実施形態において、方法は、パラメータの第1のセットまたはパラメータの第2のセットのうちの少なくとも1つが合格基準(acceptability criterion)を満たすと判断することに応答して、量子アルゴリズムを量子ゲートの第2のセットに変換することを含む。
実施形態において、方法は、量子アルゴリズムを記憶された量子アルゴリズムと比較して、量子アルゴリズムの実行時間を推定することを含む。実施形態において、方法は、パラメータの第1のセットまたはパラメータの第2のセットのうちの少なくとも1つが合格基準を満たすと判断することに応答して、検証済み量子アルゴリズムを実行する量子プロセッサのための量子アルゴリズムのキュー内の場所に対応する検証チケット(validation ticket)を作成することを含む。
実施形態において、方法は、ユーザによってサブミットされた量子アルゴリズムのセットの総実行時間が実行時間閾値を超えることに応答して、検証チケットを無効にすることを含む。実施形態において、方法は、パラメータの第1のセットまたはパラメータの第2のセットのうちの少なくとも1つのパラメータが合格基準を満たさないと判断することに応答して、満たさなかった少なくとも1つのパラメータをユーザに通知することを含む。
実施形態において、方法は、量子ゲートの第2のセットを用いて量子アルゴリズムを実行することを含む。実施形態において、合格基準は、量子ゲートのエラー率閾値である。実施形態において、合格基準は、キュービットのコヒーレンス時間(coherence time)閾値である。
実施形態は、コンピュータ使用可能プログラム製品を含む。コンピュータ使用可能プログラム製品は、コンピュータ可読記憶デバイス、および記憶デバイス上に記憶されたプログラム命令を含む。
実施形態において、コンピュータ使用可能コードが、データ処理システム内のコンピュータ可読記憶デバイスに記憶され、コンピュータ使用可能コードが、リモート・データ処理システムからネットワークを経て移送される。実施形態において、コンピュータ使用可能コードが、サーバ・データ処理システム内のコンピュータ可読記憶デバイスに記憶され、コンピュータ使用可能コードが、リモート・データ処理システムに関連付けられたコンピュータ可読記憶デバイスにおいて使用するために、ネットワークを経てリモート・データ処理システムにダウンロードされる。
実施形態は、コンピュータ・システムを含む。コンピュータ・システムは、プロセッサと、コンピュータ可読メモリと、コンピュータ可読記憶デバイスおよびメモリを介してプロセッサにより実行するために記憶デバイス上に記憶されるプログラム命令と、を含む。
本発明に特有であると信じられる新規な特徴が、添付の特許請求の範囲において述べられている。しかしながら、発明自体は、使用の好適なモード、さらなる目的、およびその利点と同様に、添付図面と併せて読まれるときに、以下の例示的な実施形態の詳細な説明に対する参照によって最もよく理解されるであろう。
例示的実施形態が実施され得るデータ処理システムのネットワークのブロック図である。 例示的実施形態が実施され得るデータ処理システムのブロック図である。 例示的実施形態による、量子アルゴリズムのコンパイルのための定数畳み込みの例としての構成を示す図である。 量子アルゴリズムのコンパイルの検証および実行時間推定の例としての構成を示す図である。 例示的実施形態による、量子アルゴリズムの検証および実行時間推定の例としての方法のフローチャートである。
例示的実施形態は、量子アルゴリズムの検証および実行時間推定の方法を提供する。本発明を説明するために使用される例示的実施形態は、概して、量子アルゴリズムのコンパイルについての上述した必要性に対処し、解決する。例示的実施形態は、量子アルゴリズムの検証および実行時間推定の方法を提供する。
実施形態は、ハイブリッド古典量子計算システムを用いて量子アルゴリズムの量子回路モデルのコンパイルを改善する方法を提供する。別の実施形態は、コンピュータ可読記憶デバイスを含む従来型または量子コンピュータ使用可能プログラム製品、および記憶デバイス上に記憶されたプログラム命令を提供し、記憶されたプログラム命令は、ハイブリッド古典量子計算システムを用いて量子回路モデルのコンパイルを改善する方法を含む。命令は、従来型または量子プロセッサを用いて実行可能である。別の実施形態は、従来型または量子プロセッサと、コンピュータ可読メモリと、コンピュータ可読記憶デバイスおよびメモリを介したプロセッサにより実行するために記憶デバイス上に記憶されたプログラム命令と、を含むコンピュータ・システムを提供し、記憶されたプログラム命令は、ハイブリッド古典量子計算システムを用いて量子回路モデルのコンパイルを改善する方法を含む。
1つまたは複数の実施形態は、量子アルゴリズムに対応する量子回路をシミュレートする、混合型の古典および量子方法論を提供する。実施形態において、シミュレーションは、各実行ステップにおける量子アルゴリズムの状態について理想化された評価を与える。実施形態において、量子回路は、量子アルゴリズムのステップを実行する量子ロジック・ゲートのセットに対応する。実施形態において、シミュレートされた量子回路の各ステップでは、量子ロジック・ゲートが、キュービットの状態を操作する。
実施形態において、量子アルゴリズムは、量子回路コンパイル・アプリケーションに提供される。実施形態において、量子回路コンパイル・アプリケーションは、量子アルゴリズムのステップに対応する量子ロジック・ゲートのセットを有する量子回路を形成する。実施形態において、量子回路コンパイラ・アプリケーションは、量子プロセッサ上のキュービットのセットについてのキュービット・パラメータのセットを判断する。実施形態において、量子回路コンパイル・アプリケーションは、量子ロジック・ゲートのセットについての量子ロジック・ゲート・パラメータのセットを判断する。実施形態において、量子回路コンパイル・アプリケーションは、量子回路についての量子回路パラメータのセットを判断する。
実施形態において、量子回路コンパイル・アプリケーションは、量子回路パラメータのセットの少なくとも1つをキュービット・パラメータのセットの少なくとも1つと比較する。実施形態において、量子回路コンパイル・アプリケーションは、量子回路パラメータのセットの少なくとも1つを量子ロジック・ゲート・パラメータのセットの少なくとも1つと比較する。
説明を明確にするために、かつそれに対するいかなる限定も示唆することなく、例示的実施形態は、いくつかの例としての構成を用いて説明される。本開示から、当業者は、説明される目的を達成するための説明される構成の多くの改変、適合、および変更に想到することが可能であり、それらが、例示的実施形態の範囲内で考慮される。
さらに、例としてのロジック・ゲート、キュービット、および他の回路コンポーネントの簡略図が、図面および例示的実施形態において用いられる。実際の製造または回路において、図示されない、もしくは本明細書で説明されない追加の構造もしくはコンポーネント、または図示されるものとは異なるが本明細書に説明されるものに類似の機能のための構造もしくはコンポーネントが、例示的な実施形態の範囲から逸脱することなく存在し得る。
例示的実施形態は、単なる例として、ある種類の量子ロジック・ゲート、キュービット、量子プロセッサ、量子回路、およびアプリケーションに関して説明される。これらのおよび他の類似の人工物のいかなる特定の明示も、本発明に対する限定であることを意図するものではない。これらのおよび他の類似の人工物のいかなる適当な明示も、例示的実施形態の範囲内で選択され得る。
本開示における例は、説明を明確にするためだけに使用され、例示的実施形態に限定されない。本明細書に列挙されるいかなる利点も、単なる例であり、例示的実施形態に対する限定であることを意図するものではない。追加の利点または異なる利点は、特定の例示的実施形態によって実現され得る。さらに、特定の例示的実施形態は、上記に列挙された利点のうちのいくつかを有してもよく、全てを有してもよく、またはどれも有しなくてもよい。
図面を参照すると、特に図1および図2を参照すると、これらの図は、例示的実施形態が実施され得るデータ処理環境の例としての図である。図1および図2は、単なる実施例であり、異なる実施形態が実施され得る環境に関していかなる限定も主張または示唆することを意図するものではない。特定の実施態様は、以下の説明に基づき図示される環境に対して多くの変更を行い得る。
図1は、例示的実施形態が実施され得るデータ処理システムのネットワークのブロック図を示す。データ処理環境100は、例示的実施形態が実施され得るコンピュータのネットワークである。データ処理環境100は、ネットワーク102を含む。ネットワーク102は、データ処理環境100内で共に接続された様々なデバイスとコンピュータとの間に通信リンクを提供するために使用される媒体である。ネットワーク102は、有線、無線通信リンク、または光ファイバ・ケーブルなどの接続を含み得る。
クライアントまたはサーバは、ネットワーク102に接続されたあるデータ処理システムの単なる例としての役割であり、これらのデータ処理システムのための他の構成または役割を除外することを意図するものではない。古典処理システム104は、ネットワーク102に連結している。古典処理システム104は、古典処理システムである。ソフトウェア・アプリケーションは、データ処理環境100内の任意の量子データ処理システム上で実行し得る。図1の古典処理システム104において実行すると説明される任意のソフトウェア・アプリケーションは、類似の方式で別のデータ処理システムにおいて実行するように構成され得る。図1の古典処理システム104において記憶され、または作成される任意のデータまたは情報は、類似の方式で別のデータ処理システムにおいて記憶され、または作成されるように構成され得る。古典処理システム104などの古典データ処理システムは、データを含んでもよく、古典計算プロセスをその上で実行するソフトウェア・アプリケーションまたはソフトウェア・ツールを有してもよい。
サーバ106は、ストレージ・ユニット108と共にネットワーク102に連結している。ストレージ・ユニット108は、量子回路設計、量子ゲート・パラメータ、量子アルゴリズム、およびキュービット・パラメータを記憶するように構成されるデータベース109を含む。サーバ106は、従来型データ処理システムである。量子処理システム140は、ネットワーク102に連結している。量子処理システム140は、量子データ処理システムである。ソフトウェア・アプリケーションは、データ処理環境100内の任意の量子データ処理システム上で実行し得る。図1の量子処理システム140において実行すると説明される任意のソフトウェア・アプリケーションは、類似の方式で別の量子データ処理システムにおいて実行するように構成され得る。図1の量子処理システム140において記憶され、または作成される任意のデータまたは情報は、類似の方式で別の量子データ処理システムにおいて記憶され、または作成されるように構成され得る。量子処理システム140などの量子データ処理システムは、データを含んでもよく、量子計算プロセスをその上で実行するソフトウェア・アプリケーションまたはソフトウェア・ツールを有してもよい。
クライアント110、112、および114もまた、ネットワーク102に連結されている。サーバ106、またはクライアント110、112、もしくは114などの従来型データ処理システムは、データを含んでもよく、従来型計算プロセスをその上で実行するソフトウェア・アプリケーションまたはソフトウェア・ツールを有してもよい。
単なる例として、そのようなアーキテクチャに対するいかなる限定も示唆することなく、図1は、実施形態の例としての実施態様において使用可能な、あるコンポーネントを示す。例えば、サーバ106、およびクライアント110、112、114は、単なる実施例としてサーバおよびクライアントとして示されており、クライアント・サーバ・アーキテクチャに対する限定を示唆するものではない。別の例として、実施形態は、図示される複数の従来型データ処理システム、量子データ処理システム、およびデータ・ネットワークにわたって分散されてもよく、別の実施形態は、例示的実施形態の範囲内で単一の従来型データ処理システムまたは単一の量子データ処理システム上で実施されてもよい。従来型データ処理システム106、110、112、および114は、また、クラスタ、パーティション、および実施形態を実施するのに適当な他の構成における例としてのノードを表す。
デバイス132は、本明細書で説明される従来型計算デバイスの例である。例えば、デバイス132は、スマートフォン、タブレット・コンピュータ、ラップトップ・コンピュータ、据え付け型もしくはポータブル形式のクライアント110、ウェアラブル・コンピューティング・デバイス、または任意の他の適当なデバイスの形態をとり得る。図1の別の従来型データ処理システムにおいて実行すると説明される任意のソフトウェア・アプリケーションは、類似の方式でデバイス132において実行するように構成され得る。図1の別の従来型データ処理システムにおいて記憶され、または作成される任意のデータまたは情報は、類似の方式でデバイス132において記憶され、または作成されるように構成され得る。
サーバ106、ストレージ・ユニット108、古典処理システム104、量子処理システム140、ならびにクライアント110、112、および114、ならびにデバイス132は、有線接続、無線通信プロトコル、または他の適当なデータ接続性を用いてネットワーク102に連結し得る。クライアント110、112、および114は、例えば、パーソナル・コンピュータまたはネットワーク・コンピュータであってもよい。
図示される例において、サーバ106は、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションなどのデータをクライアント110、112、および114に提供し得る。クライアント110、112、および114は、この例ではサーバ106に対するクライアントであり得る。クライアント110、112、114、またはそれらの何らかの組み合わせは、それら自体のデータ、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションを含み得る。データ処理環境100は、追加サーバ、クライアント、および図示されない他のデバイスを含み得る。
図示される例において、メモリ124は、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションなどのデータを古典プロセッサ122に提供し得る。古典プロセッサ122は、それ自体のデータ、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションを含み得る。データ処理環境100は、追加メモリ、量子プロセッサ、および図示されない他のデバイスを含み得る。メモリ124は、1つまたは複数の実施形態による量子アルゴリズムをコンパイルするための、本明細書で説明される古典プロセッサ機能の1つまたは複数を実施するように構成され得るアプリケーション105を含む。
図示される例において、メモリ144は、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションなどのデータを量子プロセッサ142に提供し得る。量子プロセッサ142は、それ自体のデータ、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションを含み得る。データ処理環境100は、追加メモリ、量子プロセッサ、および図示されない他のデバイスを含み得る。メモリ144は、1つまたは複数の実施形態による、本明細書で説明される量子プロセッサ機能の1つまたは複数を実施するように構成され得るアプリケーション146を含む。
図示される例において、データ処理環境100は、インターネットであり得る。ネットワーク102は、伝送制御プロトコル/インターネット・プロトコル(TCP/IP)および他のプロトコルを用いて互いに通信する、ネットワークおよびゲートウェイの集合を表し得る。インターネットの中心は、データおよびメッセージをルーティングする数千の商用、官公庁用、教育用、および他のコンピュータ・システムを含む、主なノードまたはホスト・コンピュータの間のデータ通信リンクのバックボーンである。当然のことながら、データ処理環境100は、また、例えばイントラネット、ローカル・エリア・ネットワーク(LAN)、またはワイド・エリア・ネットワーク(WAN)などのいくつかの異なる種類のネットワークとして実施され得る。図1は、異なる例示的実施形態についてのアーキテクチャの限定としてではなく、一実施例として意図される。
他の用途の中でも、データ処理環境100は、例示的実施形態が実施され得るクライアント・サーバ環境を実施するために使用され得る。従来型クライアント・データ処理システムと従来型サーバ・データ処理システムとの間の対話性を用いることによってアプリケーションが機能するように、クライアント・サーバ環境は、ソフトウェア・アプリケーションおよびデータがネットワークにわたって分散されることを可能にする。データ処理環境100は、また、ネットワークにわたって分散された相互運用可能なソフトウェア・コンポーネントが、コヒーレント・ビジネス・アプリケーションとして一緒にパッケージ化され得る、サービス指向アーキテクチャを利用し得る。データ処理環境100は、また、クラウドの形態をとってもよく、最小の管理労力またはサービス・プロバイダとの対話で迅速に供給され、リリースされ得る、構成可能な計算リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械、およびサービス)の共有プールへの便利なオンデマンド・ネットワーク・アクセスを可能にするためのサービス配信のクラウド・コンピューティング・モデルを利用してもよい。
図2を参照すると、この図は、例示的実施形態が実施され得るデータ処理システムのブロック図を示す。データ処理システム200は、図1の古典処理システム104、サーバ106、もしくはクライアント110、112、および114などの従来型コンピュータ、またはプロセスを実施するコンピュータ使用可能プログラム・コードもしくは命令が例示的実施形態のために位置し得る別の種類のデバイスの一例である。
データ処理システム200は、また、例示的実施形態のプロセスを実施するコンピュータ使用可能プログラム・コードまたは命令が位置し得る、図1の従来型データ処理システム132などの、従来型データ処理システムまたはその中の構成を表す。データ処理システム200は、単なる例としてのコンピュータとしてそれに限定されることなく説明される。図1におけるデバイス132などの他のデバイスの形態での実施態様は、タッチ・インターフェースを追加することなどによってデータ処理システム200を変更してもよく、本明細書で説明されるデータ処理システム200の動作および機能の概略説明から逸脱することなく、ある図示されたコンポーネントをデータ処理システム200から削除すらしてもよい。
図示される例では、データ処理システム200は、ノース・ブリッジおよびメモリ・コントローラ・ハブ(NB/MCH)202、ならびにサウス・ブリッジおよび入力/出力(I/O)コントローラ・ハブ(SB/ICH)204を含む、ハブ・アーキテクチャを利用する。処理ユニット206、メイン・メモリ208、およびグラフィックス・プロセッサ210は、ノース・ブリッジおよびメモリ・コントローラ・ハブ(NB/MCH)202に連結されている。処理ユニット206は、1つまたは複数のプロセッサを含んでもよく、1つまたは複数の異種プロセッサ・システムを用いて実施されてもよい。処理ユニット206は、マルチコア・プロセッサであってもよい。グラフィックス・プロセッサ210は、ある実施態様においてアクセラレーテッド・グラフィックス・ポート(AGP)を通してNB/MCH202に連結されてもよい。
図示される例では、ローカル・エリア・ネットワーク(LAN)・アダプタ212は、サウス・ブリッジおよびI/Oコントローラ・ハブ(SB/ICH)204に連結されている。オーディオ・アダプタ216、キーボードおよびマウス・アダプタ220、モデム222、読み取り専用メモリ(ROM)224、ユニバーサル・シリアル・バス(USB)および他のポート232、ならびにPCI/PCIeデバイス234は、バス238を通してサウス・ブリッジおよびI/Oコントローラ・ハブ204に連結されている。ハード・ディスク・ドライブ(HDD)またはソリッド・ステート・ドライブ(SSD)226およびCD-ROM230は、バス240を通してサウス・ブリッジおよびI/Oコントローラ・ハブ204に連結されている。PCI/PCIeデバイス234は、例えば、イーサネット(R)・アダプタ、アドイン・カード、およびノートブック・コンピュータ用のPCカードを含み得る。PCIは、カード・バス・コントローラを使用し、PCIeは使用しない。ROM224は、例えば、フラッシュ・バイナリ入力/出力システム(BIOS)であってもよい。ハード・ディスク・ドライブ226およびCD-ROM230は、例えば、インテグレーティド・ドライブ・エレクトロニクス(IDE)、シリアル・アドバンスド・テクノロジ・アタッチメント(SATA)・インターフェース、または外部SATA(eSATA)およびマイクロSATA(mSATA)などの変形を使用し得る。スーパーI/O(SIO)デバイス236は、バス238を通してサウス・ブリッジおよびI/Oコントローラ・ハブ(SB/ICH)204に連結され得る。
メイン・メモリ208、ROM224、またはフラッシュ・メモリ(図示せず)などのメモリは、コンピュータ使用可能記憶デバイスのいくつかの例である。ハード・ディスク・ドライブまたはソリッド・ステート・ドライブ226、CD-ROM230、および他の類似の使用可能デバイスは、コンピュータ使用可能記憶媒体を含むコンピュータ使用可能記憶デバイスのいくつかの例である。
オペレーティング・システムは、処理ユニット206上で稼働する。オペレーティング・システムは、図2のデータ処理システム200内の様々なコンポーネントの制御を協調させ、提供する。オペレーティング・システムは、サーバ・システム、パーソナル・コンピュータ、およびモバイル・デバイスを含むがこれらに限定されない、任意の種類の計算プラットフォームのための市販のオペレーティング・システムであってもよい。オブジェクト指向または他の種類のプログラミング・システムが、オペレーティング・システムと併せて動作し、データ処理システム200上で実行するプログラムまたはアプリケーションからオペレーティング・システムに呼び出しを提供し得る。
オペレーティング・システム、オブジェクト指向プログラミング・システム、および図1のアプリケーション105などのアプリケーションまたはプログラムのための命令は、ハード・ディスク・ドライブ226上のコード226Aなどの形態でストレージ・デバイス上に位置し、処理ユニット206による実行用に、メイン・メモリ208などの1つまたは複数のメモリの少なくとも1つにロードされてもよい。例示的実施形態のプロセスは、処理ユニット206によってコンピュータ実施命令を用いて実行されてもよく、コンピュータ実施命令は、例えば、メイン・メモリ208、読み取り専用メモリ224などのメモリ内、または1つもしくは複数の周辺デバイス内に位置し得る。
さらに、1つの場合において、コード226Aは、リモート・システム201Bからネットワーク201Aを経てダウンロードされてもよく、類似のコード201Cは、ストレージ・デバイス201D上に記憶される。別の場合において、コード226Aは、ネットワーク201Aを経てリモート・システム201Bへダウンロードされてもよく、ダウンロードされたコード201Cは、ストレージ・デバイス201D上に記憶される。
図1~図2におけるハードウェアは、実施態様に依存して変化し得る。フラッシュ・メモリ、等価な不揮発性メモリ、または光学ディスク・ドライブなどの、他の内部ハードウェアまたは周辺デバイスは、図1~図2に示されるハードウェアに加えて、またはその代わりに使用され得る。さらに、例示的実施形態のプロセスは、マルチプロセッサ・データ処理システムに適用されてもよい。
いくつかの例示的実施例において、データ処理システム200は、携帯情報端末(PDA)であってもよく、それは概して、オペレーティング・システム・ファイルまたはユーザ生成データあるいはその両方を記憶するための不揮発性メモリを提供するためにフラッシュ・メモリで構成される。バス・システムは、システム・バス、I/Oバス、およびPCIバスなどの1つまたは複数のバスを含み得る。当然ながら、バス・システムは、ファブリックまたはアーキテクチャにアタッチされた異なるコンポーネントまたはデバイス間のデータ移送を提供する、任意の種類の通信ファブリックまたはアーキテクチャを用いて実施され得る。
通信ユニットは、モデムまたはネットワーク・アダプタなどのデータを送信および受信するために使用される1つまたは複数のデバイスを含み得る。メモリは、例えば、メイン・メモリ208、またはノース・ブリッジおよびメモリ・コントローラ・ハブ202において見出されるキャッシュなどのキャッシュであってもよい。処理ユニットは、1つまたは複数のプロセッサまたはCPUを含み得る。
図1~図2において示される例および上述の例は、アーキテクチャの限定を示唆することを意味しない。例えば、データ処理システム200は、また、モバイル・デバイスまたはウェアラブル・デバイスの形態をとることに加えて、タブレット・コンピュータ、ラップトップ・コンピュータ、または電話デバイスであってもよい。
コンピュータまたはデータ処理システムが、仮想機械、仮想デバイス、または仮想コンポーネントとして説明される場合、仮想機械、仮想デバイス、または仮想コンポーネントは、データ処理システム200に示されるいくつかのまたは全てのコンポーネントの仮想化表現を用いてデータ処理システム200の方式で動作する。例えば、仮想機械、仮想デバイス、または仮想コンポーネントにおいて、処理ユニット206は、ホスト・データ処理システムにおいて利用可能な全ての、またはいくつかのハードウェア処理ユニット206の仮想化インスタンスとして表され、メイン・メモリ208は、ホスト・データ処理システムにおいて利用可能であり得るメイン・メモリ208の全ての、またはいくつかの部分の仮想化インスタンスとして表され、ディスク226は、ホスト・データ処理システムにおいて利用可能であり得るディスク226の全ての、またはいくつかの部分の仮想化インスタンスとして表される。このような場合のホスト・データ処理システムは、データ処理システム200によって表される。
図3を参照すると、この図は、例示的実施形態による、量子プロセッサの校正の例としての構成を示す。例としての実施形態は、アプリケーション302を含む。特定の実施形態において、アプリケーション302は、図1のアプリケーション105の例である。
アプリケーション302は、校正コンポーネント304を含む。コンポーネント304は、校正演算子(calibration operator)コンポーネント306、キュービット・パラメータ分析コンポーネント308、および量子ゲート・パラメータ分析コンポーネント310を含む。アプリケーション302は、校正演算(calibration operation)312を受信する。
校正演算子306は、校正演算312を実行する。実施形態において、校正演算312は、量子プロセッサ314の複数のキュービットQ1、Q2、Q3、...、Qn上で演算のセットを実行する。実施形態において、校正演算312は、複数のキュービット上でランダム化ベンチマーキングの方法を実行する。例えば、校正演算312は、量子プロセッサ314の複数のキュービット上で所定の演算のセットを実行し得る。所定の演算のセットは、所定の演算のセットを実行することに応答して、各キュービットについての値のセットを生成する。実施形態において、校正演算312は、各キュービットについての値のセットを所定の演算のセットの少なくとも1つの予期される答えと比較する。
実施形態において、校正演算312は、量子プロセッサ314の複数のキュービットについてのキュービット・パラメータ値316のセットを返す。例えば、キュービット・コヒーレンス時間、キュービット緩和時間、測定エラー、および他のキュービット・パラメータ値が、校正演算によって判断され得る。量子プロセッサ314の各キュービットは、パラメータ値のセットのサブセットを含み得る。例えば、キュービットQ1は、関連するパラメータ値P1、P2、...、Pnなどを含み得る。キュービット・パラメータ値のこれらの例は、限定であることを意図するものではない。本開示から、当業者は、キュービットのセットを校正するのに適当な多くの他のキュービット・パラメータ値に想到することが可能であり、それらが、例示的実施形態の範囲内で考慮される。
実施形態において、校正演算312は、量子ゲート・パラメータのセットを返す。例えば、校正演算312は、量子プロセッサ314における各量子ゲートについてのエラー率に対応するパラメータを返し得る。実施形態において、校正演算312は、量子プロセッサ314における各1つおよび2つのキュービット・ゲート(プリミティブ・ゲート)についてのエラー率に対応するパラメータを返す。
コンポーネント308は、キュービット・パラメータ値316のセットを分析する。実施形態において、コンポーネント308は、キュービット合格基準318のセットの少なくとも1つに従って、キュービット・パラメータ値316のセットを分析する。例えば、コンポーネント308は、キュービットのパラメータ値をキュービット合格基準と比較してもよい。例えば、コンポーネント308は、キュービットのコヒーレンス時間が演算のセットを実行するためのコヒーレンス時間閾値を満たさないと判断してもよい。別の例として、コンポーネント308は、別のキュービットのコヒーレンス時間が演算のセットを実行するためのコヒーレンス時間閾値を満たすと判断してもよい。
コンポーネント310は、量子ゲート・パラメータのセットを分析する。実施形態において、量子ゲート・パラメータは、量子ゲートを形成するキュービットのセットおよび量子プロセッサ上のキュービットのレイアウトに対応する。実施形態において、校正演算312は、量子プロセッサ314の複数の量子ゲートについての量子ゲート・パラメータ値のセットを返す。例えば、ゲート・エラー率、ゲート速度、ゲート・クロス・トーク行列、および他の量子ゲート・パラメータ値が、校正演算によって判断され得る。量子プロセッサ314の各量子ゲートは、量子ゲート・パラメータ値のセットのサブセットを含み得る。量子ゲート・パラメータのこれらの例は、限定であることを意図するものではない。本開示から、当業者は、量子ゲートのセットを校正するのに適当な多くの他の量子ゲート・パラメータ値に想到することが可能であり、それらが、例示的実施形態の範囲内で考慮される。
コンポーネント310は、量子ゲート・パラメータ値のセットを分析する。実施形態において、コンポーネント310は、量子ゲート合格基準320のセットの少なくとも1つに従って、量子ゲート・パラメータ値のセットを分析する。例えば、コンポーネント310は、量子ゲートのパラメータ値を量子ゲート合格基準と比較してもよい。例えば、コンポーネント310は、量子ゲートのゲート・エラー率が、量子ゲートを実行するためのエラー率閾値を満たさないと判断してもよい。
実施形態において、コンポーネント310は、プリミティブ・ゲート・エラー率のセットから複合ゲート(composite gate)についての複合ゲート・エラー率を生成し、複合ゲートは、プリミティブ・ゲート・エラー率に対応するプリミティブ・ゲートのセットから形成される。実施形態において、コンポーネント310は、式
Figure 0007315684000001

から3つのキュービットを用いて形成される複合ゲートについての複合ゲート・エラー率を生成する。AxyおよびBxyは、第1の校正演算および第2の校正演算それぞれの間に、キュービットxおよびyから形成される量子ゲートについてのプリミティブ・ゲート・エラー率である。
図4を参照すると、この図は、量子アルゴリズムのコンパイルの検証および実行時間推定の例としての構成を示す。例としての実施形態は、アプリケーション402を含む。特定の実施形態において、アプリケーション402は、図1のアプリケーション105の例である。アプリケーション402は、量子回路構築コンポーネント404を含む。量子回路構築コンポーネント404は、本明細書で説明される例としての方法に従って出力量子回路設計420をコンパイルする。コンパイラ・コンポーネント406は、入力量子アルゴリズム418を最適化された量子回路設計420に変換するように構成される。コンポーネント406は、アルゴリズム変換コンポーネント408、量子回路シミュレーション・コンポーネント410、および量子回路実行時間推定コンポーネント416を含む。
コンポーネント408は、量子アルゴリズムによって実行される演算に対応する第1の量子回路設計に量子アルゴリズム・コードを変換する。コンポーネント410は、量子アルゴリズムを量子回路としてシミュレートする。実施形態において、コンポーネント412および414は、第1の量子回路を分析して、第1の量子回路において使用されるキュービットのセットおよび量子ゲートのセットを判断する。例えば、コンポーネント414は、第1のキュービットおよび第2のキュービットが第1の量子ゲートを形成すると判断する。実施形態において、コンポーネント412は、第1のキュービットが演算のセットを実行すると判断する。
コンポーネント412は、少なくとも1つのキュービットが少なくとも1つの基準を満たすかどうかを、キュービット合格基準のセットから判断する。例えば、コンポーネント412は、キュービットのコヒーレンス時間が、合格基準のセットの少なくとも1つにより、量子回路の演算のセットを実行するためのコヒーレンス時間閾値を満たさないと判断し得る。
コンポーネント414は、量子ゲート・パラメータ値のセットを分析する。実施形態において、コンポーネント414は、量子ゲート合格基準のセットの少なくとも1つに従って、量子ゲート・パラメータ値のセットを分析する。例えば、コンポーネント414は、量子ゲートのパラメータ値を量子ゲート合格基準と比較してもよい。例えば、コンポーネント414は、量子ゲートのゲート・エラー率が、量子ゲートを実行するためのエラー率閾値を満たさないと判断してもよい。
シミュレートされた量子回路が、量子ゲート合格基準のセットのサブセットおよびキュービット合格基準のセットの第2のサブセットを満たすと判断することに応答して、アプリケーション402は、量子アルゴリズムを量子回路420に変換し、量子回路420は、量子アルゴリズムの演算を実行する。アプリケーション402は、検証チケット422を出力し、検証のユーザに通知する。検証チケット422は、検証済み量子アルゴリズムを実行する量子プロセッサについての量子アルゴリズムのキュー内の場所に対応する。
量子回路実行時間推定コンポーネント416は、出力量子回路420を実行する実行時間を推定する。実施形態において、コンポーネント416は、サブミットされた量子アルゴリズムを記憶された量子アルゴリズムと比較して、サブミットされた量子アルゴリズムの実行時間を推定する。例えば、コンポーネント416は、量子ゲートの数、量子ゲートの種類、および量子ゲート・パラメータを比較して、サブミットされた量子アルゴリズムについての実行時間を判断し得る。コンポーネント416は、単一ユーザによってサブミットされた全ての量子アルゴリズムについての総実行時間を判断する。コンポーネント416は、総実行時間を1時間などの実行時間閾値と比較する。例えば、コンポーネント416は、単一ユーザによってサブミットされた量子アルゴリズムについての総実行時間が2時間であると判断してもよい。コンポーネント416は、総実行時間が実行時間閾値を超えると判断する。コンポーネント416は、総実行時間が実行時間閾値を超えることに応答して、チケット422を無効にする。
図5を参照すると、この図は、例示的実施形態による、量子アルゴリズムの検証および実行時間推定の例として方法のフローチャートを示す。アプリケーション105は、実施形態において方法500を実行する。ブロック502において、アプリケーション105は、ユーザからの量子アルゴリズムおよびユーザ・パラメータのセットを受信する。ブロック504において、アプリケーション105は、量子アルゴリズムの演算を実行する量子ゲートのセットを形成する量子アルゴリズムをシミュレートする。ブロック506において、アプリケーション105は、量子ゲートのセットのパラメータのセットを分析する。ブロック508において、アプリケーション105は、量子ゲートのセットを実行するキュービットのセットのパラメータの第2のセットを分析する。ブロック510において、アプリケーション105は、パラメータのうちの少なくとも1つが合格基準を満たすかどうかを判断する。少なくとも1つのパラメータが合格基準を満たさないと判断することに応答して(ブロック510のいいえの経路)、アプリケーション105は、ブロック516に移動して、パラメータ不合格をユーザに通知する。アプリケーション105は、その後プロセス500を終了する。
少なくとも1つのパラメータが合格基準を満たすと判断することに応答して(ブロック510のはいの経路)、アプリケーション105は、ブロック512に移動する。ブロック512において、アプリケーション105は、量子アルゴリズムの実行時間を推定する。ブロック514において、アプリケーション105は、量子アルゴリズムを量子ゲートの第2のセットに変換する。アプリケーション105は、その後プロセス500を終了する。
本発明の様々な実施形態は、関連する図面を参照して本明細書で説明される。代替的実施形態は、本発明の範囲から逸脱することなく考案され得る。様々な接続および位置関係(例えば、上、下、隣接など)が、以下の説明および図面内の要素間において述べられているが、当業者は、向きが変更されても説明される機能性が維持されるときに、本明細書で説明される位置関係の多くが向きに独立していることを認識する。これらの接続または位置関係あるいはその両方が、特段の指定がない限り、直接または間接であってもよく、本発明は、この点に関して限定であることを意図するものではない。したがって、要素の連結は、直接連結または間接連結のいずれかを指してもよく、要素間の位置関係は、直接または間接の位置関係であってもよい。間接的な位置関係の例として、レイヤ「B」上にレイヤ「A」を形成することに対する本説明における参照は、レイヤ「A」およびレイヤ「B」の関連特性および機能性が中間層によって実質的に変更されない限り、1つまたは複数の中間層(例えばレイヤ「C」)がレイヤ「A」とレイヤ「B」との間にある状況を含む。
以下の定義および略称は、特許請求の範囲および明細書の解釈のために使用されるものとする。本明細書において使用される、「備える」、「備えている」、「含む」、「含んでいる」、「有する」、「有している」、「包含する」、もしくは「包含している」という用語、またはそれらの任意の他の変形は、非排他的包含を含むように意図される。例えば、要素のリストを含む合成物、混合物、プロセス、方法、製品、または装置は、必ずしもそれらの要素だけに限定されず、明示的に列挙されない他の要素、またはそのような合成物、混合物、プロセス、方法、製品、もしくは装置に固有の他の要素を含み得る。
追加的に、「例示的」という用語は、「例、事例、または例示として機能すること」を意味するように、本明細書において使用される。本明細書において「例示的」と説明されるいかなる実施形態または設計も、必ずしも他の実施形態または設計よりも好適または有利であると解釈されるべきではない。「少なくとも1つの」および「1つまたは複数の」という用語は、1以上の任意の整数、即ち、1、2、3、4などを含むように理解される。「複数の」という用語は、2以上の任意の整数、即ち、2、3、4、5などを含むように理解される。「接続」という用語は、間接「接続」および直接「接続」を含み得る。
「一実施形態」、「実施形態」、「例としての実施形態」などへの明細書中の参照は、説明される実施形態が、特定の特徴、構造、または特性を含み得るが、あらゆる実施形態がその特定の特徴、構造、または特性を含んでも含まなくてもよいことを示している。さらに、そのような語句は、必ずしも同一の実施形態に言及していない。さらに、特定の特徴、構造、または特性が、実施形態に関連して説明されるとき、それは、明示的に説明されるか否かに関わらず、他の実施形態に関連するそのような特徴、構造、または特性に影響を及ぼす当業者の知識の範囲内にあると考えられる。
「約」、「実質的に」、「おおよそ」という用語およびそれらの変形は、本出願の出願時点に入手可能な機器に基づく特定の数量の測定値に関連する誤差の程度を含むことを意図するものである。例えば、「約」は、所与の値の±8%、または5%、または2%の範囲を含み得る。
本発明の様々な実施形態の説明は、例示の目的で提示されているが、網羅的であること、または開示された実施形態に限定することを意図するものではない。多くの変更および変形が、説明された実施形態の範囲および思想から逸脱することなく当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の用途、もしくは市場で発見される技術を超える技術的改善を最もよく説明するため、または他の当業者が本明細書で説明された実施形態を理解することを可能にするために、選択された。
このようにして、コンピュータ実施方法、システムまたは装置、およびコンピュータ・プログラム製品が、オンライン・コミュニティへの参加および他の関連特徴、機能、または動作を管理するための例示的実施形態において提供される。実施形態またはその一部が、ある種類のデバイスに関して説明される場合、コンピュータ実施方法、システムもしくは装置、コンピュータ・プログラム製品、またはその一部が、その種類のデバイスの適当な同等の表現で使用するために適合され、または構成される。
実施形態が、アプリケーションにおいて実施されるように説明される場合、サービスとしてのソフトウェア(SaaS)モデルでのアプリケーションの配信が、例示的実施形態の範囲内で考慮される。SaaSモデルにおいて、実施形態を実施するアプリケーションのケイパビリティが、クラウド・インフラストラクチャにおいてアプリケーションを実行することによって、ユーザに提供される。ユーザは、ウェブ・ブラウザ(例えば、ウェブベース電子メール)または他の軽量クライアント・アプリケーションなどのシン・クライアント・インターフェースを通して多様なクライアント・デバイスを用いてアプリケーションにアクセスし得る。ユーザは、ネットワーク、サーバ、オペレーティング・システム、またはクラウド・インフラストラクチャのストレージを含む、基盤クラウド・インフラストラクチャを管理または制御しない。いくつかの場合において、ユーザは、SaaSアプリケーションのケイパビリティを管理または制御すらしなくともよい。いくつかの他の場合において、アプリケーションのSaaS実施態様は、限定されたユーザ固有のアプリケーション構成設定の可能な例外を許容し得る。
本発明は、任意の可能な統合の技術的詳細レベルにおけるシステム、方法、またはコンピュータ・プログラム製品、あるいはそれらの組み合わせであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶し得る有形デバイスであってもよい。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、または前述したものの任意の適当な組み合わせであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令をその上に記録させる溝内の隆起構造などの機械的に符号化されたデバイス、および前述したものの任意の適当な組み合わせを含む。本明細書で用いられるコンピュータ可読記憶媒体は、本来、電波もしくは他の自由伝播する電磁波、導波管もしくは他の送信媒体を通って伝播する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または電線を通って送信される電気信号などの、一過性信号であると解釈されるべきではない。
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくは無線ネットワーク、またはそれらの組み合わせを介して外部コンピュータまたは外部記憶デバイスに、ダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組み合わせを含み得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体の記憶用にコンピュータ可読プログラム命令を転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、またはSmalltalk(R)、C++などのオブジェクト指向プログラム言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの手続き型プログラミング言語を含む、1つもしくは複数のプログラミング言語の任意の組み合わせで書かれたソース・コードもしくはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で完全に、ユーザのコンピュータ上で部分的に、スタンドアロン・ソフトウェア・パッケージとして、ユーザのコンピュータ上で部分的にかつリモート・コンピュータ上で部分的に、またはリモート・コンピュータもしくはサーバ上で完全に、実行してもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意の種類のネットワークを通して、ユーザのコンピュータに接続されてもよい。あるいは、接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを通して)外部コンピュータに対して行われてもよい。いくつかの実施形態では、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個別化することによって、コンピュータ可読プログラム命令を実行し得る。
本発明の態様は、発明の実施形態による、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して、本明細書において説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方のブロックの組み合わせが、コンピュータ可読プログラム命令によって実施され得ると理解されたい。
コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作を実施する手段を生成するように、これらのコンピュータ可読プログラム命令は、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。コンピュータ可読記憶媒体に記憶される命令を有するコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作の態様を実施する命令を含む製品を含むように、これらのコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはそれらの組み合わせに特定の方式で機能するように指示し得るものであってもよい。
コンピュータ、他のプログラマブル装置、または他のデバイス上で実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作を実施するように、コンピュータ可読プログラム命令は、コンピュータ実施プロセスを生成するために、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の考えられる実施態様のアーキテクチャ、機能性、および動作を示している。この点に関して、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を含む、モジュール、セグメント、または命令の一部を表し得る。いくつかの代替的実施態様において、ブロック内に記載された機能は、図面中に記載された順序以外で発生してもよい。例えば、連続して示される2つのブロックが、実際には、実質的に同時に実行されてもよく、または、ブロックが、関係する機能性次第で逆の順序で実行されることがあってもよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせが、指定された機能もしくは動作を実行し、または専用ハードウェアおよびコンピュータ命令の組み合わせを実行する専用ハードウェアベース・システムによって実施され得ることにも留意されたい。

Claims (10)

  1. 量子アルゴリズムを受信することと、
    前記量子アルゴリズムをシミュレートすることであって、前記量子アルゴリズムが量子ゲートの第1のセットを形成する、前記シミュレートすることと、
    前記量子ゲートの第1のセットのパラメータの第1のセットを分析することと、
    前記量子ゲートの第1のセットを実行するキュービットのセットのパラメータの第2のセットを分析することと、
    前記パラメータの第1のセットまたは前記パラメータの第2のセットのうちの少なくとも1つが合格基準を満たすと判断することに応答して、前記量子アルゴリズムを量子ゲートの第2のセットに変換することと、
    を含む、方法。
  2. 前記量子アルゴリズムを記憶された量子アルゴリズムと比較して、前記量子アルゴリズムの実行時間を推定することをさらに含む、請求項1に記載の方法。
  3. 前記パラメータの第1のセットまたは前記パラメータの第2のセットのうちの少なくとも1つが合格基準を満たすと判断することに応答して、検証済み量子アルゴリズムを実行する量子プロセッサのための量子アルゴリズムのキュー内の場所に対応する検証チケットを作成することをさらに含む、請求項1に記載の方法。
  4. ユーザによってサブミットされた量子アルゴリズムのセットの総実行時間が実行時間閾値を超えることに応答して、前記検証チケットを無効にすることをさらに含む、請求項3に記載の方法。
  5. 前記パラメータの第1のセットまたは前記パラメータの第2のセットのうちの少なくとも1つのパラメータが合格基準を満たさないと判断することに応答して、満たさなかった前記少なくとも1つのパラメータをユーザに通知することをさらに含む、請求項1に記載の方法。
  6. 前記量子ゲートの第2のセットを用いて前記量子アルゴリズムを実行することをさらに含む、請求項1に記載の方法。
  7. 前記合格基準が、量子ゲートのエラー率閾値である、請求項1に記載の方法。
  8. 前記合格基準が、キュービットのコヒーレンス時間閾値である、請求項1に記載の方法。
  9. 請求項1ないし8のいずれかに記載の方法の全てのステップを実行するように適合される手段を含む、システム。
  10. コンピュータ・プログラムであって、前記コンピュータ・プログラムがコンピュータ・システム上で実行されるときに、請求項1ないし8のいずれかに記載の方法の全てのステップを実行する命令を含む、コンピュータ・プログラム。
JP2021543345A 2019-03-09 2020-02-28 量子アルゴリズムの検証、および量子アルゴリズムの実行時間の推定 Active JP7315684B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/297,604 2019-03-09
US16/297,604 US11580433B2 (en) 2019-03-09 2019-03-09 Validating and estimating runtime for quantum algorithms
PCT/EP2020/055256 WO2020182489A1 (en) 2019-03-09 2020-02-28 Validating and estimating runtime for quantum algorithms

Publications (3)

Publication Number Publication Date
JP2022522101A JP2022522101A (ja) 2022-04-14
JPWO2020182489A5 JPWO2020182489A5 (ja) 2022-07-21
JP7315684B2 true JP7315684B2 (ja) 2023-07-26

Family

ID=69743224

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021543345A Active JP7315684B2 (ja) 2019-03-09 2020-02-28 量子アルゴリズムの検証、および量子アルゴリズムの実行時間の推定

Country Status (7)

Country Link
US (2) US11580433B2 (ja)
EP (1) EP3938971A1 (ja)
JP (1) JP7315684B2 (ja)
KR (1) KR20210119533A (ja)
CN (1) CN113614752A (ja)
AU (1) AU2020233909B2 (ja)
WO (1) WO2020182489A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11474867B2 (en) * 2019-07-11 2022-10-18 Microsoft Technology Licensing, Llc Measurement sequence determination for quantum computing device
US11853731B2 (en) * 2020-03-24 2023-12-26 IonQ, Inc. Pulse generation
CN114757225B (zh) * 2022-03-31 2023-05-30 北京百度网讯科技有限公司 信号采样质量的确定方法、装置、设备及存储介质
CN117744819A (zh) * 2022-09-14 2024-03-22 本源量子计算科技(合肥)股份有限公司 评测量子设备性能的方法、装置、存储介质及电子装置
CN115934346B (zh) * 2022-12-28 2023-10-20 北京大学 算子的自动检测方法、装置、电子设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030169041A1 (en) 2001-12-22 2003-09-11 D-Wave Systems, Inc. Quantum computing integrated development environment
US20170228483A1 (en) 2015-11-06 2017-08-10 Rigetti & Co., Inc. Analyzing quantum information processing circuits
JP2018503796A (ja) 2014-09-24 2018-02-08 クオンタム ヴァリー インベストメント ファンド リミテッド パートナーシップ 量子制御のための制御シーケンスの生成

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060224547A1 (en) * 2005-03-24 2006-10-05 Ulyanov Sergey V Efficient simulation system of quantum algorithm gates on classical computer based on fast algorithm
US8832165B2 (en) 2007-12-12 2014-09-09 Lockheed Martin Corporation Computer systems and methods for quantum verification and validation
US11113084B2 (en) 2015-04-10 2021-09-07 Microsoft Technology Licensing, Llc Method and system for approximate quantum circuit synthesis using quaternion algebra
US10664249B2 (en) 2015-11-20 2020-05-26 Microsoft Technology Licensing, Llc Verified compilation of reversible circuits
EP3593298A4 (en) 2017-03-10 2021-01-20 Rigetti & Co., Inc. PERFORMING A CALIBRATION PROCESS IN A QUANTUM DATA PROCESSING SYSTEM
US10275721B2 (en) 2017-04-19 2019-04-30 Accenture Global Solutions Limited Quantum computing machine learning module
US10430162B2 (en) 2017-05-18 2019-10-01 Microsoft Technology Licensing, Llc Quantum resource estimates for computing elliptic curve discrete logarithms
EP3642765A4 (en) 2017-06-19 2021-04-07 Rigetti & Co., Inc. DISTRIBUTED QUANTUM COMPUTER SYSTEM
US11580000B2 (en) 2017-07-23 2023-02-14 Keysight Technologies Canada Inc. Systems and methods for local randomized benchmarking
US11367010B2 (en) * 2018-05-02 2022-06-21 IonQ, Inc. Quantum computer simulator characterization
US11374594B2 (en) 2018-05-05 2022-06-28 Intel Corporation Apparatus and method including neural network learning to detect and correct quantum errors
US11531922B2 (en) 2018-09-27 2022-12-20 Intel Corporation Apparatus and method for scalable qubit addressing
US11354460B2 (en) * 2018-10-16 2022-06-07 Red Hat, Inc. Validator and optimizer for quantum computing simulator

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030169041A1 (en) 2001-12-22 2003-09-11 D-Wave Systems, Inc. Quantum computing integrated development environment
JP2018503796A (ja) 2014-09-24 2018-02-08 クオンタム ヴァリー インベストメント ファンド リミテッド パートナーシップ 量子制御のための制御シーケンスの生成
US20170228483A1 (en) 2015-11-06 2017-08-10 Rigetti & Co., Inc. Analyzing quantum information processing circuits

Also Published As

Publication number Publication date
JP2022522101A (ja) 2022-04-14
US11580433B2 (en) 2023-02-14
AU2020233909A1 (en) 2021-09-30
WO2020182489A1 (en) 2020-09-17
US20230409938A1 (en) 2023-12-21
AU2020233909B2 (en) 2023-04-13
KR20210119533A (ko) 2021-10-05
US20200285986A1 (en) 2020-09-10
CN113614752A (zh) 2021-11-05
EP3938971A1 (en) 2022-01-19

Similar Documents

Publication Publication Date Title
JP7493526B2 (ja) 量子コンピューティングにおける適応エラー修正
JP7315684B2 (ja) 量子アルゴリズムの検証、および量子アルゴリズムの実行時間の推定
JP7232902B2 (ja) ハイブリッド古典-量子コンピューティング・システムを使用した分子系の励起状態特性の計算
JP7442515B2 (ja) 量子プログラムのノイズおよび較正適応コンパイル
US10831455B2 (en) Quantum circuit compilation with quantum libraries as a service
US11410069B2 (en) Grouping of Pauli observables using Bell measurements
US20220121980A1 (en) Automatic quantum searching of object databases
AU2020237590B2 (en) Compilation of quantum algorithms

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220512

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220711

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220725

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230627

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230630

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230713

R150 Certificate of patent or registration of utility model

Ref document number: 7315684

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150