JP2020534603A - 量子回路をシミュレートする方法およびコンピュータ・プログラム - Google Patents

量子回路をシミュレートする方法およびコンピュータ・プログラム Download PDF

Info

Publication number
JP2020534603A
JP2020534603A JP2020515693A JP2020515693A JP2020534603A JP 2020534603 A JP2020534603 A JP 2020534603A JP 2020515693 A JP2020515693 A JP 2020515693A JP 2020515693 A JP2020515693 A JP 2020515693A JP 2020534603 A JP2020534603 A JP 2020534603A
Authority
JP
Japan
Prior art keywords
quantum
subcircuit
subcircuits
gate
circuit
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.)
Granted
Application number
JP2020515693A
Other languages
English (en)
Other versions
JP7100817B2 (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 JP2020534603A publication Critical patent/JP2020534603A/ja
Application granted granted Critical
Publication of JP7100817B2 publication Critical patent/JP7100817B2/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/10Numerical modelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Analysis (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Artificial Intelligence (AREA)
  • Geometry (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Image Processing (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

【課題】量子回路をシミュレートする。【解決手段】コンピュータ実装方法は、量子回路のデジタル記述を受信することと、量子回路のデジタル記述を複数の量子サブ回路へと分割することであって、複数の量子サブ回路の各量子サブ回路は1つまたは複数の量子ゲートを備える、分割することと、複数の量子サブ回路についてサブ回路依存度を決定することと、サブ回路依存度に従って複数の量子サブ回路をシミュレートして、複数の量子サブ回路の各量子サブ回路についてシミュレーション結果を生成することと、を含み、複数の量子サブ回路のうちの第1の量子サブ回路および第2の量子サブ回路は、共通のキュービットに適用される1つまたは複数のゲートを各々含み、第1の量子サブ回路および第2の量子サブ回路は、もつれ状態のテンソル・インデックスを使用して互いに独立してシミュレートされる。対応するコンピュータ・システムおよびコンピュータ・プログラム製品もまた、本明細書において開示される。【選択図】図1

Description

本発明は一般に量子回路に関し、より具体的には量子回路のシミュレートに関する。
量子回路は、重ね合わせおよびイネーブルメント(enablement)などの量子力学的現象を直接利用して、情報を処理する。例えば、量子回路は、様々な入力に論理関数を適用する量子ゲートを備え得る。確定的な状態(例えば0および1)に限定されているデジタル論理回路とは対照的に、各回路素子に対して、量子回路は、(重ね合わせによって)複数の状態を同時に表現および処理できる。この結果、量子演算は、いくつかの問題を従来の演算よりもはるかに速く解くことのできる場合があり、また従来の演算では現状複雑過ぎる問題を解くことのできる場合がある。
量子演算は有望ではあるが、量子回路の構築は困難であり、多くの費用がかかり、スケーリングおよび量子デコヒーレンスなどの様々な課題を抱えている。このため、市販のコンピュータを使用して比較的大規模な量子回路をシミュレートすることが必要とされている。また更に、量子デバイスが所望の量子回路を実行できる忠実度を評価するために、量子演算デバイスの実際の出力を、実装されている量子回路のシミュレーションによって予測した理想的な挙動と比較することも必要である。
本明細書に開示する実施形態の一態様では、1つまたは複数のプロセッサによって実行される、複数の量子ゲートを備える量子回路をシミュレートするための方法は、量子回路のデジタル記述を受信することと、量子回路のデジタル記述を複数の量子サブ回路へと分割することであって、複数の量子サブ回路の各量子サブ回路は1つまたは複数の量子ゲートを備える、分割することと、複数の量子サブ回路についてサブ回路依存度を決定することと、サブ回路依存度に従って複数の量子サブ回路をシミュレートして、複数の量子サブ回路の各量子サブ回路についてシミュレーション結果を生成することと、を含み、複数の量子サブ回路のうちの第1の量子サブ回路および第2の量子サブ回路は、共通のキュービットに適用される1つまたは複数のゲートを各々含み、第1の量子サブ回路および第2の量子サブ回路は、もつれ状態のテンソル・インデックスを使用して互いに独立してシミュレートされ、対応するコンピュータ・プログラム製品もまた本明細書において開示される。
本明細書に開示する実施形態の一態様では、1つまたは複数のプロセッサによって実行される、複数の量子ゲートを備える量子回路をシミュレートするための方法であって、複数の段を含む前記量子回路のデジタル記述を受信することと、初期段の各キュービットに対してサブ回路を作成して複数のサブ回路を生成することと、接続される橋渡ししないゲート(non−bridging gate)を、接続される橋渡ししないゲートがそれ以上利用できなくなるまで、複数の段のうちの1つまたは複数の後続の段から複数のサブ回路へと反復的に追加することと、複数のサブ回路のうちの2つ以上のサブ回路に接続されている、橋渡しするゲート(bridging gate)を選択することと、2つ以上のサブ回路をもつれ状態にするかどうかを決定することと、2つ以上のサブ回路をもつれ状態にするよう決定することに応答して、橋渡しするゲートを2つ以上のサブ回路のうちの一方にのみ追加すること。対応するコンピュータ・プログラム製品もまた本明細書において開示される。
本明細書に開示する実施形態の一態様では、1つまたは複数のプロセッサによって実行される、複数の量子ゲートを備える量子回路をシミュレートするための方法は、量子ゲートおよび対応するキュービットを含む量子サブ回路の組のデジタル記述を受信することと、各キュービットにおよび非対角ユニタリ・ゲートごとの出力に、個別のテンソル・インデックスを割り当てることと、テンソル・インデックス変数を各対角ユニタリ・ゲートの入力から出力へと伝播することと、割り当てられたテンソル・インデックスを使用して各量子サブ回路を実行することと、を含む。対応するコンピュータ・プログラム製品もまた本明細書において開示される。
本発明の実施形態の少なくとも1つに係る量子状態の一例を記述する図および関連する式である。 本発明の実施形態の少なくとも1つに係るキュービットに対応する基底ベクトルの一例を記述する式の組である。 本発明の少なくとも1つの実施形態に係る量子系のテンソル表現の2つの例を記述する式の組である。 本発明の実施形態の少なくとも1つに係る量子ゲートの様々な例を記述した図式的なシンボルの組である。 図4に対応するテンソルの組の表である。 現在利用可能な演算システム上ではシミュレート不可能であると従来想定されている、大きな量子回路に対応する実行プランである。 本発明の少なくとも1つの実施形態に係る、本明細書において処理の例として使用される量子回路の回路図および対応するテキスト・ベースの論理記述である。 本発明の少なくとも1つの実施形態に係る量子回路シミュレーション方法の一例を記述したフローチャートである。 図4、5、および6に記述されている様々な量子ゲートをシミュレートすることと関連付けられるテンソル式およびリソース・コストを記述したテキスト図である。 図4、5、および6に記述されている様々な量子ゲートをシミュレートすることと関連付けられるテンソル式およびリソース・コストを記述したテキスト図である。 図4、5、および6に記述されている様々な量子ゲートをシミュレートすることと関連付けられるテンソル式およびリソース・コストを記述したテキスト図である。 本発明の実施形態の少なくとも1つに係る、量子回路の1つの特定の例をシミュレートするのに必要な演算リソースに分割が及ぼす効果を記述した回路図および式の図である。 本発明の実施形態の少なくとも1つに係る、量子回路の1つの特定の例をシミュレートするのに必要な演算リソースに分割が及ぼす効果を記述した回路図および式の図である。 本発明の実施形態の少なくとも1つに係る、量子回路の1つの特定の例をシミュレートするのに必要な演算リソースに分割が及ぼす効果を記述した回路図および式の図である。 本発明の実施形態の少なくとも1つに係る、量子回路の1つの特定の例をシミュレートするのに必要な演算リソースに分割が及ぼす効果を記述した回路図および式の図である。 本発明の実施形態の少なくとも1つに係る、量子回路の1つの特定の例をシミュレートするのに必要な演算リソースに分割が及ぼす効果を記述した回路図および式の図である。 本発明の少なくとも1つの実施形態に係る量子回路分割方法の一例を記述したフローチャートである。 本発明の少なくとも1つの実施形態に係る量子回路実行方法の一例を記述したフローチャートである。 図18に記述されている量子回路実行方法の追加の詳細を記述したフローチャートである。 量子回路の1つの特定の例の分割前最適化の一例を記述した回路図である。 量子回路の1つの特定の例の分割前最適化の一例を記述した回路図である。 量子回路の1つの特定の例の分割前最適化の一例を記述した回路図である。 量子回路の1つの特定の例を分割および実行する4つの例を記述した回路図である。 量子回路の1つの特定の例を分割および実行する4つの例を記述した回路図である。 量子回路の1つの特定の例を分割および実行する4つの例を記述した回路図である。 量子回路の1つの特定の例を分割および実行する4つの例を記述した回路図である。 現在利用可能な演算システム上でのシミュレーションを可能にする、図6に対応する大きな量子回路のサブ回路を記述した回路分割である。 本明細書で開示する方法のうちの1つまたは複数の実行に適した演算装置の一例を記述したブロック図である。
以下の用語、定義、および概念は、Wikipediaなどの一般に利用可能なソースならびに発明者らの実用上の知見から抽出されたものであり、本発明を理解するのに−特に量子回路をシミュレートする技術の当業者でない者にとって−有用であり得る。
量子重ね合わせ:2つ以上の同時の刺激によって引き起こされる正味の応答(例えば回路素子における)は、各刺激が個々に引き起こしたであろう応答の和である。量子系の場合、応答は量子状態であり、これは離散状態の線形重ね合わせであり得る。重ね合わせはこの場合、量子回路が複数の状態または結果を同時に表すこと(例えば0と1の統計学的混合)を可能にする。
量子系:重ね合わせおよびもつれ状態などの量子効果を呈する系。
量子状態:量子系において(同時に)存在するまたは利用できる状態(確率)。
キュービット:0状態と1状態の統計学的混合を同時に表し得る、量子記憶の単位。
量子崩壊:量子力学的系を測定された単一の状態へと遷移させる、系の状態を測定する行為。実際の量子力学的系では、測定する行為は本質的には、値の統計学的混合から、実現される単一の値を選択する。しかしながら、シミュレートされた量子回路では、基礎となる状態情報を破壊することなく測定を行うことができる。
もつれ状態:量子力学的状態が互いに独立している2つの量子系の間に存在する効果。例えば、2つのキュービットの一方の状態のもつれ状態を測定することによって、もつれ状態のキュービットの他方の状態についての情報が分かることになるが、その理由はそれらの状態が統計学的に相関しているからである。
量子データ:(例えば、キュービットなどの量子回路素子内の)1つまたは複数の量子状態として表される情報。
量子ゲート:量子データに対して論理的または数学的関数を実行するための、量子回路の素子。量子ゲートの例を図4、5、および6に示す。
テンソル:実数値または複素数値のk次元アレイ、ここでkはテンソルの階数または次数である。行列は2次のテンソルであり、ベクトルは1次のテンソルである。テンソルを使用して、量子シミュレーションにおける量子状態を表すことができる。
テンソルのネットワーク:相互に関連するテンソル式の組に対応する有向グラフ。テンソルのネットワークを使用して量子回路を表現することができ、この場合、グラフ中のノードは量子回路素子(例えば量子ゲート)を表すテンソルであり、グラフの辺はテンソルのインデックスとなる変数を示し得る。
テンソル縮約:2つ以上の相互に関連する一連のテンソルを統合して単一のテンソルにする、数学的に厳密なプロセス。テンソル縮約により、統合されるテンソルのインデックスとなる変数の関係に応じて、結果的なテンソルのサイズが倍数的に大きくなる場合もあれば、ならない場合もある。量子回路がテンソルのネットワークとして表されるとき、テンソル縮約により、1つまたは複数の辺によって接続された2つ以上のノードが統合されて、単一のノードになる。
本明細書で使用する場合、(例えば量子サブ回路を)「シミュレートする」および「実行する」という用語は、本明細書で開示する量子回路シミュレーション方法が(現実のものの単なる近似に過ぎない多くのシミュレーションとは対照的に)演算として有効な現実的な結果をもたらすという点で、本質的に同義である。本明細書で使用する場合、「インデックス変数」という句または同様の句は、結果的に所望のデータまたはメモリあるいはその両方の場所へのアクセスをもたらす、(当業者に知られているような)任意の種類のメモリのアドレッシングまたはインデックス付けを指す。
本明細書に開示する実施形態の少なくともいくつかでは、量子回路を従来想定されるよりも少ないメモリの使用でシミュレートできることが認識される。例えば、本明細書に開示する実施形態の少なくともいくつかは、Nキュービットを含む量子回路を表現およびシミュレートするために必要なメモリを、2個の複素数値からこの量のごく一部にまで低減することができる。
具体的には、本明細書に開示する実施形態の少なくともいくつかでは、サブ回路のうちの2つ以上においてもつれ状態の量子回路素子を有することによって、量子回路をサブ回路へと分割できることが認識される。本明細書に開示する実施形態の少なくともいくつかでは更に、いくつかのサブ回路のシミュレーション結果をスライスして計算でき、そうすることによって、量子回路全体をシミュレートするために必要な作業メモリを、従来の予想に反して著しく低減できることが認識される。本発明の進歩性のある洞察のうちの1つは、これらのスライスの操作を、量子回路のシミュレーション中、シミュレーションにおいてあるキュービットに適用される残りの全ての量子ゲートが対角ユニタリ・ゲートとなるポイントに達するとすぐに、行うことができることである。そのような状況では、キュービットの0/1値に対して反復処理を行うために、for−ループなどの反復構成を導入することができ、そのキュービットを含む後続のテンソル演算は、テンソルのスライスを採用しない場合の半量の作業メモリの使用で、スライスして行うことができる。
この明細書全体にわたる特徴、洞察、利点、または同様の言語への言及は、本明細書に開示する実施形態によって実現され得る特徴および利点の全てが、本発明のどの単一の実施形態にも存在すべきであるまたは存在していることを示唆している訳ではないことに、留意すべきである。むしろ、特徴および利点に言及する言語は、ある実施形態に関連して記載される具体的な特徴、利点、または特性が、本発明の少なくとも1つの実施形態に含まれることを意味するものと理解される。したがって、特徴、利点、および同様の言語についての考察は、この明細書全体にわたって同じ実施形態を参照している場合があるが、必ずそうである訳ではない。
また更に、記載される本発明の特徴、洞察、利点、および特性は、1つ以上の実施形態において任意の好適な方法で組み合わされてもよい。特定の実施形態の具体的な特徴または利点のうちの1つまたは複数が無くても本発明を実施できることを、関連技術の当業者は認識するであろう。また場合によっては、特定の実施形態において追加の特徴および利点が認識される場合があるが、それらは、本発明の全ての実施形態に存在するとは限らない場合がある。これらの特徴および利点は、以下の図面、説明、および付属の特許請求の範囲からより十分に明らかになるか、または、以下に記載するような本発明の実施によって理解されるであろう。
図1は、本発明の少なくとも1つの実施形態に係る量子状態の一例を描いた図および関連する式である。粒子、例えば電子は、他の粒子、例えば原子に拘束されており、量子状態と呼ばれる離散した(すなわち量子化された)振動エネルギー・レベルに制限されている。ディラック記法(ブラ−ケット記法としても知られる)では、これらの状態は|0〉、|1〉、|2〉、|3〉等として割り当てられ、ここで|0〉は、基底状態として知られる最低エネルギー・レベルに対応する。
量子コンピュータは、計算を行うおよび問題を解くために、量子系の状態を操作する。通常は、2つの最低エネルギー状態のみが使用され、この結果、キュービットとして知られる演算および保存の単位が得られる。個々の電子に対する操作およびアクセスには問題があるので、量子コンピュータのキュービットは通常、超電導振動子として具現化される。例としてトランズモン・キュービットが挙げられるが、これは、非線形インダクタとして有効に機能し回路共振を促進する超電導ジョセフソン接合と、コンデンサとを組み合わせた半導体デバイスである。
式110に示すように、量子系の主要な振動状態は、n次元ベクトル空間内の基底ベクトルとして表すことができる。その場合、量子系の任意の量子状態を、これらの基底ベクトルとベクトル空間における各基底次元に関する複素スカラ乗数αとの、線形組合せ(すなわち重ね合わせ)として表すことができる。式120は、測定が行われるとき量子系が主要な振動状態の1つへと崩壊し、この場合確率は、測定の直前のその振動状態についてのスカラ乗数α(複素振幅または単に振幅としても知られる)の2乗の大きさに比例することを示す。
式130に示すように、特定の量子状態の時間発展は、シュレーディンガー方程式によって支配される。項H(t)はハミルトニアンとして知られ、系の合計エネルギーに対応する。これは、スカラ乗数αの線形変換を定義する行列によって表すことができる。式140に示すように、シュレーディンガー方程式の解は|ψ(t)〉=U(t)|ψ(0)〉の形態を有し、ここでU(t)は、スカラ乗数αの線形変換も定義するユニタリ行列として表すことができる。ただし、ハミルトニアン行列は量子系の合計エネルギーに対応し、一方で、シュレーディンガー方程式の解中に現れるユニタリ行列は量子系の時間発展に対応する。
式150は、ユニタリ行列が、それらの逆行列がそれらの複素共役の転置行列に等しいという特性を有することを示す。この特性は、量子系の時間発展は測定が行われるまで可逆である(すなわち、成されたどのような作用も逆の作用を介して元に戻すことができる)という事実を反映している。測定は非ユニタリ変換をもたらす非可逆性の作用である。
図2は、本発明の実施形態の少なくとも1つに係る、キュービットに対応する基底ベクトルの一例を記述する式の組である。図2に示すように、キュービットの主要な量子状態、すなわち|0〉および|1〉は各々、2値の成分から成る長さ2の基底ベクトルによって表すことができ、このことは、系が排他的に一方か他方かのいずれかの主要な量子状態であることを示す。式210に示すように、キュービットの任意の量子状態(すなわち|ψ〉)は、|0〉および|1〉の基本状態の線形結合として(すなわち、これらの基本状態のスカラ乗数によって)表すことができる。記述されている式において、|0〉および|1〉の基本状態に対するスカラ乗数(すなわち振幅)は、それぞれギリシャ文字のアルファ(α)およびベータ(β)である。結論として、測定されるキュービットが崩壊して|0〉状態になる確率は|α|であり、測定されるキュービットが崩壊して|1〉状態になる確率は|β|である。
図3は、本発明の少なくとも1つの実施形態に係る量子系のテンソル表現の2つの例を記述する式の組である。より一般的なディラック記法の代わりに、nキュービットを含む量子系は、MarkovおよびShiが導入したようなn次元のアレイ(すなわちテンソル)として表すことができる。具体的には、本明細書においてインデックスとなるn個の下付き文字(i … i)を付されたギリシャ文字プサイ(ψ)で表されているテンソル310を使用して、n個のキュービットの量子状態を表すことができ、この場合、崩壊したまたは測定される値が観察される確率は、|i … i〉として表される基本状態320と関連付けられた複素スカラ振幅ψによって決定される。量子系が崩壊するまたは測定されるとき、基本状態320のインデックスとなる各下付き文字(i … i)は二進値である。
量子状態のテンソル表現とディラック表現との間の関係を、式330に示す。ディラック表現における量子状態は、|0…0〉、…、|1…1〉の基本状態の線形結合であり、この場合、対応する量子状態のテンソルの値は、この線形結合を定義する複素スカラ乗数である。式330中のテンソル値はしたがって、式210中のギリシャ文字アルファ(α)およびベータ(β)と同じ役割を果たす。
別の例としての量子系(すなわち量子回路)に関する完全なテンソル式を、式340に示す。記述されている例では、初期には量子状態ψであるnキュービットを含む量子回路において、k<mであるキュービットkおよびmに、2キュービットのゲートが適用されている。式340は、初期の量子状態ψおよび2キュービットのゲートによって定義されたユニタリ線形変換に対応するテンソルuを項として、結果的な量子状態ψ’のテンソルの値を表す。ディラック記法での等価な式はこれよりも著しく複雑であって、4次元のゲート・テンソルuを2×2次元の行列へと拡張し、このときこの行列の行および列の適正な組合せにおいてuの16個の値の各々を2(n−4)回複製する必要がある。k=m−1でない場合、ディラック記法における等価な式は非常に煩雑なものとなるであろうが、一方でこれは、テンソル記法を使用して容易に表すことができる。
図4は本発明の実施形態の少なくとも1つに係る量子ゲートの様々な例を記述した図式的なシンボルの組であり、図5は対応するテンソルの組の表である。記述されている量子ゲートは、パウリ・ゲート410、重ね合わせゲート420、制御NOTゲート430、制御Zゲート440、および非クリフォード・ゲート450を含む。記述されている量子ゲートは、量子演算システムにおいて使用できるゲートの非網羅的な例である。
パウリ・ゲート410は、粒子のスピンと外部の電磁場との相互作用を考慮に入れたパウリ方程式に対応する。重ね合わせゲート420は、アダマール・ゲート420Aと、Sゲート420BおよびSゲート420Cと、を含む。アダマール・ゲート420Aは、|0〉および|1〉の主要な(排他的)基本状態を、|0〉と|1〉の中間にある状態、すなわち(|0〉+|1〉)/√2および(|0〉−|1〉)/√2にそれぞれにマッピングし、この結果、|0〉および|1〉の基本状態について、等しい確率が得られる。Sゲート420BおよびSゲート420Cは、重ね合わせに90°位相回転を加えるために使用される場合もある。
制御ゲートは2つ以上のキュービットに作用し、この場合、1つまたは複数のキュービットが、特定の演算の制御ビットとして作用する。制御Z(CZ)ゲート440の場合、キュービットの一方が、他方のキュービットにパウリZ演算を適用するかどうかを決定する。CZゲートの作用は、どのキュービットが制御ビットであるかにかかわらず結果が同じであるという意味において、完全に対称である。制御NOT(CNOT)ゲート430の場合、キュービットの一方が、他方のキュービットにパウリX演算を適用してこの他方のキュービットをNOT化(フリップ)するかどうかを決定する。CNOTゲート430およびCZゲート440はいずれも、キュービットをもつれ状態にするおよびキュービットのもつれ状態を解除するために使用することができる。CNOTゲートと古典的に類似しているのは、可逆なXORゲートである。
非クリフォード・ゲートは、任意のユニタリ変換を近似するために使用される。記述されている非クリフォードTゲート450Aおよび非クリフォードTゲート450Bは、45°の位相回転を加える。クリフォード・ゲート410から440は有限個の個別のユニタリ変換を実現させることしかできないが、TおよびTゲートを追加することによりこの組が無限大に拡張され、これらのゲートの適切な組合せによって、どのようなユニタリ変換も任意の正確度で近似することが可能になる。ユニバーサル量子演算はこの能力を利用する。
Z、S、S、CZ、T、およびTゲートは対角ユニタリ・ゲートである、すなわち、これらのディラック行列表現は対角外の項が0である対角行列であることを、量子演算の当業者は認識するであろう。他方で、対角ユニタリ・ゲートのテンソル表現は、図5に示すように、これらの対角項のみを反映すればよい。
図6は、現在利用可能な古典的演算システム上ではシミュレート不可能であると従来想定されている、大きな量子回路に対応する実行プラン500である。記述されているように、実行プラン500は、中にゲートのシンボル520を含んだいくつかのタイル510を含む。各タイル510は段または時間ステップに対応し、ゲートのシンボル520は、示された段または時間ステップ中に1つまたは複数のキュービットに対して実行される関数(変換)を示す。記述されている実施形態では、実行プラン500は、行ごとに上から下へとおよび各行内でタイルごとに左から右へと実行される。各タイルが7×7のキュービットのアレイに対応すること、および、49キュービットの可能な全ての状態を表すために249個のメモリ値が必要となることを、当業者は諒解するであろう。したがって、(複素)キュービット状態情報を保存するために2つの8バイト浮動小数点値を使用する場合、記述されている実行プランのシミュレーションを従来のシミュレーション技法を用いて保証するためには、253バイト(8ペタバイト)のメモリが必要となる。
図7は、本発明の少なくとも1つの実施形態に係る、本明細書において処理の例として使用される量子回路650の回路図および対応するテキスト・ベースの記述である。量子回路650において規定されている量子ゲートは、アダマール・ゲート660、Xパウリ・ゲート670A、Yパウリ・ゲート670B、Zパウリ・ゲート670C、およびCNOTゲート680を含む。記述されているテキスト・ベースの記述はOpenQASMの仕様に準拠しており、特定のキュービットにどのゲートが作用するかを示す。指定される関数およびゲートは、段/時間ステップの順であると想定されている。この結果、記述されているテキスト・ベースの記述は極めてコンパクトである。
図8は、本発明の少なくとも1つの実施形態に係る量子回路シミュレーション方法700の一例を記述したフローチャートである。記述されているように、量子回路シミュレーション方法700は、量子回路のデジタル記述を受信すること(710)と、分割前最適化を行うこと(720)と、量子回路をサブ回路へと分割すること(730)と、実行順序を決定すること(740)と、量子回路を実行すること(750)と、を含む。量子回路シミュレーション方法700は、図28に記述されているようなコンピュータ1500などのコンピュータによって実行することができ、1つまたは複数の従来のコンピュータおよび関連するストレージ・デバイス上での量子回路のシミュレーションを可能にする。
量子回路のデジタル記述を受信すること(710)は、量子回路のテキスト・ベースのまたは二値式の記述を受信することを含み得る。記述は、回路に含まれる量子ゲートおよびゲート間の依存度を示すことができる。一実施形態では、デジタル記述はOpenQASM仕様に準拠する。
分割前最適化を行うこと(720)は、量子回路を実行するために必要なリソースを低減するゲート置換(例えば回路書き換え)を行うことを含み得る。回路書き換えは、量子回路の最終段において、非対角ユニタリ・ゲートを回路の終端から内向きに何キュービット分かにわたる対角ユニタリ・ゲートの連鎖で置き換えるゲート置換を行うことも含み得る。そのような回路書き換えにより、回路のより早期にテンソルのスライスを行って、そのような書き換えを行わない場合よりもメモリ必要量を更に低減することが可能になる。回路書き換えは、複数キュービットのゲートを回路のより後期へとシフトさせるゲート置換も含み得る。そのような回路書き換えにより、メモリ必要量の増大を回路のより後期まで留保できるとともに、テンソルの追加のスライスを適用する機会を増やして、量子回路をシミュレートするために必要なメモリ必要量をより一層低減することができる。
量子回路をサブ回路へと分割すること(730)は、いくつかの可能な分割のリソース・コストを(ヒューリスティックにまたは網羅的に)推定することと、リソース・コストが最低である分割を選択することと、を含み得る。いくつかの実施形態では、推定することおよび選択することは再帰的に行われる。特定の実施形態では、各入力キュービットは別々のサブ回路に割り当てられ、これらのサブ回路はこれらが接続される後続の段のゲートを消費しようと競合する。いくつかの実施形態では、(少なくとも初期において)量子回路を単一キュービットのサブ回路および複数キュービットのサブ回路へと分割するために、ゲート依存度グラフが使用される。
実行順序を決定すること(740)は、依存度情報を使用してサブ回路についての実行順序を決定することを含み得る。いくつかの実施形態では、実行順序は、図6と類似の実行プランを作成すること、およびサブ回路の各々中の最初のゲートの段または時間ステップを比較することによって、決定される。
量子回路を実行すること(750)は、各サブ回路を実行順序に従って実行することを含み得る。いくつかの実施形態では、複数のプロセッサが使用され、利用可能な各プロセッサは、次の未実行のサブ回路を実行制御部に要求する。他の実施形態では、各サブ回路についてプロセスが生成され、プロセスの優先度レベルが、より早期の段のサブ回路により高い優先度レベルが割り当てられるように、実行順序とは逆に割り当てられる。いくつかの実施形態では、サブ回路のシミュレーションが、複数のプロセッサにわたって並行して分散する様式で、例えば高効率の演算技法を用いて行われる。いくつかの実施形態では、グラフィック処理ユニット上でシミュレーション計算が行われる。
図9〜11は、図4、5、および6に記述されている様々な量子ゲートをシミュレートすることと関連付けられるテンソル式およびリソース・コストを記述したテキスト図である。示されているように、記述されているテンソル式に従うキュービットの更新と関連付けられるリソース・コストは、量子系における状態情報を保持するために使用される特定の関数ならびにキュービットの数に依存する。例えば、nキュービットの量子系において2つのキュービットに適用されるアダマール・ゲートは、2(n+1)回の複素乗算、2回の複素加算、および2(n+4)バイトのメモリを必要とすることになる。対照的に、制御Zゲートは同じバイト数のメモリを必要とするが、必要とする複素乗算の回数は半分、複素加算は0回である。この同じ特性は、Z、S、S、CZ、T、およびTゲートを含め、全ての対角ユニタリ・ゲートに対して当てはまる。0のまたは1の乗算は回避できることおよび−1の乗算は単純な符号の変化であることを利用するような専用のコードを各ゲートに実装することによって、ゲートあたりの演算の数の更なる削減を達成できる。同様に、複素数と純実数の係数または純虚数の係数との乗算では、通常の4回の乗算および2回の加算の代わりに、必要なのは2回の浮動小数点乗算だけで、加算は必要としない。いくつかの実施形態では、本発明は、量子回路シミュレーション・プロセスの選択肢を比較するために、リソース・コストの知識を活用する。
図12〜16は、本発明の実施形態の少なくとも1つに係る、量子回路の1つの特定の例をシミュレートするのに必要な演算リソースに分割が及ぼす効果を記述した回路図および式の図である。
図12には、量子回路をシミュレートするための従来の方法を反映した回路区分けが描かれており、この場合、回路中の全てのキュービットの量子状態を保持するデータ構造が最初に構成および初期化され、次いでこのデータ構造が、入力−出力の順序で実行される各ゲートの効果をシミュレートすることによって更新される。この従来の方法は、示されているような、キュービットの初期状態があるサブ回路中に一緒に入れられゲートが第2のサブ回路中に一緒に入れられる回路分割に対応する。図12に記述されている式は、この手法を用いて行われる計算を反映している。初期状態のテンソル

が最初に構成および初期化され、このとき初期化においてクロネッカー・デルタのテンソル

を採用するが、これは以下のディラックの量子基底状態|0〉と等価なテンソルである。

次いで最終状態のテンソルψが、初期状態テンソル

から、図9〜11に示す式を入力−出力の順序で適用することによって計算される。
図13には従来技術で知られている多少洗練させた様式の回路分割が描かれており、この場合キュービットq[0]およびq[1]は、両方のキュービットに適用しなければならない複数キュービットのゲートが現れるまで、可能なところまで互いに独立してシミュレートされる。このような状況下での従来の手法は、次いでq[0]およびq[1]の独立したシミュレーションの結果を組み合わせ、最終的に残りのゲートを結果的な組み合わされた状態に適用して最終的な量子状態を得るものである。図13に記述されている式は、このシミュレーション手法に精確に対応している。
図14、15、および16は本発明の進歩性を備えた洞察を示しているが、これは、量子ゲートのテンソル表現を採用することにより、代数学の法則によって、ゲートの組をサブ回路へと恣意的に分割すること、各サブ回路をシミュレートすること、および、これらの結果を組み合わせて、回路の最終的な量子状態の数学的に同一の計算を行うことが可能になる、というものである。図14および15は2つの分割を示し、この場合、キュービットq[0]およびq[1]に対するゲートの効果が最初に互いに独立してシミュレートされ、次いでそれらの結果が組み合わされる。図14では、CNOTゲート−両方のキュービットに適用されこのことによりそれらをもつれ状態にする−のシミュレーションがキュービットq[0]のシミュレーションに対応する上側のサブ回路に割り当てられ、一方、図15では、CNOTゲートは下側のサブ回路に割り当てられる。
現在まで、キュービットがCNOTゲートなどの複数キュービットのゲートの適用を介して一度もつれ状態となると、そのもつれ状態のキュービットは一緒にシミュレートされなければならない、というのが、量子回路シミュレーションにおける従来の知見であった。別の言い方をすれば、従来の知見では、2つのサブ回路が同じキュービットに適用されるゲートを含む場合に、特にこれら2つのサブ回路がその実行プランにおいて時間的に重なり合う場合(すなわち、2つのサブ回路が重なり合う実行段を有する場合)に−これは一方のサブ回路中のゲートの全てが他方のサブ回路中のゲートの全てに厳密に先行する訳でもまた厳密に後続する訳でもなく、代わりに全体としての回路内で2つのサブ回路のゲートの配列が重なり合うことを意味する−、2つのサブ回路を互いに独立してシミュレートすることができない、と考えられている。それにも関わらず、図14および15は逆のことを示している−図14および15に示す式は、従来の知見に一見反してはいるものの、互いに関してならびに図12および13に示す式に関して、数学的に同一の結果をもたらす。
このようにシミュレーションを行うことを可能にする、実行可能性をもたらす洞察は、図15に示すようなもつれ状態のインデックスという発想である。もつれ状態のインデックスは、2つの個別のサブ回路のゲート・テンソルの間で共有されるテンソル・インデックス(例えば変数)である。図15では、bおよびcがもつれ状態のインデックスである。図14では、eおよびfがもつれ状態のインデックスである。これらのもつれ状態のインデックスは、同じキュービットに適用されるゲートを含むサブ回路を互いに独立してシミュレートすることと、それらの結果を数学的に適正な様式で組み合わせることとを可能にするために必要な、数学的なブックキーピングを実現する。
原理的には、図16に示すように、この洞察を用いて、量子回路中のゲートを恣意的に分割することができる。ただし、本発明の好ましい実施形態では、サブ回路は、シミュレーションの全体についてリソース・コスト正味の低減を達成するという目標の下で構成される。
図17は、本発明の少なくとも1つの実施形態に係る量子回路分割方法1000の一例を記述したフローチャートである。記述されているように、量子回路分割方法1000は、初期段の各キュービットに対してサブ回路を作成すること(1010)と、後続の段のゲートをサブ回路に追加すること(1020)と、全てのゲートが割り当てられたかどうかを決定すること(1030)と、実行順序を決定すること(1040)と、橋渡しするゲートを選択すること(1050)と、橋渡しされたサブ回路をもつれ状態にするかどうかを決定すること(1060)と、橋渡しされたサブ回路を閉じること(1070)または橋渡しするゲートをもつれ状態のサブ回路のうちの1つに追加すること(1080)と、を含む。量子回路分割方法1000は、少なくとも図8に示す分割操作730の一例であり、コンピュータ、例えば図28に記述されているコンピュータ1500によって、実行することができる。量子回路分割方法1000により、従来のコンピュータおよび関連する記憶装置を使用した、量子回路をシミュレートするために必要なリソースを低減または最小化できる様式での量子回路の分割が可能になる。
初期段の各キュービットに対してサブ回路を作成すること(1010)は、(少なくとも初期において)量子回路が必要とするキュービットの数を決定することと、量子回路が必要とするキュービットの各々に対してサブ回路を定義するためにデータ構造を初期化することと、を含み得る。後続の段のゲートをサブ回路に追加すること(1020)は、各サブ回路に、現時点でサブ回路に割り当てられているキュービットからの入力しか必要としない未割り当ての次段のゲートを追加することを含み得る。この追加するステップはまた、サブ回路に割り当てられているキュービットについての残りの全ての未割り当てのゲートが対角ユニタリ・ゲートであるかどうかを判定することと、そうである場合に、そのサブ回路を閉じ、閉じられたサブ回路と同じ割り当て済みのキュービットを有する新しいサブ回路を作成することと、この新しいサブ回路を、残りの全ての未割り当てのゲートが対角ユニタリ・ゲートである割り当て済みのキュービットをスライスする目的で作成されているものとしてマークすることと、を含み得る。サブ回路を閉じることは、そのサブ回路への他のゲートの追加を防止するために、そのサブ回路を完了したものとしてマークすることを含み得る。
全てのゲートが割り当てられたかどうかを決定すること(1030)は、未割り当てのゲートの計数または何らかの他の指標が、全てのゲートがサブ回路に割り当てられたことを示しているかどうかを判定することを含み得る。実行順序を決定すること(1040)は、図8と関連して記載されている決定演算740を行うことを含み得る。
橋渡しするゲートを選択すること(1050)は、現時点でサブ回路に割り当てられている少なくとも1つのキュービットおよび現時点でサブ回路に割り当てられていない1つまたは複数のキュービットからの入力を必要とする、未割り当ての次段のゲートを選択することを含み得る。言い換えれば、橋渡しするゲートは、現時点で作成されている複数のサブ回路からの入力を必要とするゲートである。
橋渡しされたサブ回路をもつれ状態にするかどうかを決定すること(1060)は橋渡しされたサブ回路をもつれ状態にする決定としない決定が対比される二者択一のシナリオのリソース・コストを推定することと、各決定と関連付けられたリソース・コストを比較することと、次いで最低コストの選択肢を選択することと、を含み得る。
橋渡しされたサブ回路を閉じること(1070)は、その橋渡しされたサブ回路への他のゲートの追加を防止するために、そのサブ回路を完了したものとしてマークすることを含み得る。橋渡しするゲートを新しいサブ回路に割り当てること(1070)は、新しいサブ回路を作成することと、閉じられた橋渡しされたサブ回路のキュービットをこの新しいサブ回路に割り当てることと、次いで橋渡しするゲートをこの新しいサブ回路に割り当てることと、を含み得る。
橋渡しするゲートをもつれ状態のサブ回路のうちの1つに追加すること(1080)は、橋渡しするゲートをサブ回路に含まれるゲートのリストに追加することを含み得る。この追加するステップは、橋渡しするゲートを、新しい橋渡しするゲートが対角ユニタリとなるゲートの等価な組合せで最初に置き換えることも含み得る。例としては、CNOTゲートを図21に示すようなCZゲートとアダマール・ゲートの組合せで置き換えることであり、これにより、図20に示すCNOTゲートが、図21に示すようなゲートのこの等価な組合せで置き換えられる。そのような置換が行われるとき、新しい橋渡しするゲートは橋渡しされたサブ回路のうちの1つに割り当てられ、この書き換えにおいて導入できた可能性のあるどの単一キュービットのゲートも、サブ回路に割り当てられるキュービットに従ってこれらのサブ回路に割り当てられる。例えば、CNOTゲートをCZゲートで置き換える特定の例では、導入されるアダマール・ゲートは、ステップ1020と関連して上記した後続の段のゲートをサブ回路に追加するためのルールに従うように、対応するキュービットが割り当てられるサブ回路に割り当てられる。他方でCZゲートは、もつれ状態のサブ回路のどちらにも割り当てることができる。
図18は、本発明の少なくとも1つの実施形態に係る量子回路実行方法1100の一例を記述したフローチャートである。記述されているように、量子回路実行方法1100は、順序付けされた量子サブ回路の組を受信すること(1110)と、個別のインデックス変数を割り当てること(1120)と、インデックス変数を伝播すること(1130)と、各量子サブ回路を実行すること(1140)と、を含む。量子回路実行方法1100は、サブ回路へと分割された量子回路の実行を可能にする。量子回路実行方法1100は、図28に記述されているコンピュータ1500などのコンピュータによって実行することができる。
量子サブ回路の順序付けされた組を受信すること(1110)は、各量子サブ回路を中に含まれるゲートを含めて定義するオブジェクトまたはデータ構造を指すポインタの、順序付けされたリストを受信することを含み得る。一実施形態では、各量子サブ回路に関する定義は本質的に、図6に示す実行プランと同様のサブ回路実行プランである。個別のインデックス変数を割り当てること(1120)は、個別のインデックス変数をキュービットごとの初期状態におよび非対角ユニタリ・ゲートごとの出力に割り当てることを含み得る。
インデックス変数を伝播すること(1130)は、各対角ユニタリ・ゲートについてインデックス変数を入力から出力へと反復的に伝播することを含み得る。各量子サブ回路を実行すること(1140)は、各量子サブ回路を実行することと、生み出された結果を指定された順序で組み合わせることと、を含み得る。
図19は、図18に記述されている実行操作1140の可能な実施形態を記述したフローチャートである。記述されているように、サブ回路を実行(1140)し結果を組み合わせる実施形態は、テンソルの積を構成すること(1150)と合計すること(1160)とを含み得る。
テンソルの積を構成すること(1150)は、サブ回路に属するゲートを、ステップ1120および1130においてそれらのゲートに割り当てられたインデックス変数と共に特定することと、これらのインデックス変数を下付き文字としてサブ回路中のゲートについての対応するテンソルに割り当てることと、サブ回路についてのテンソルを結合して入力−出力の順序で配列された積にすることと、含み得る。テンソルの積を構成すること(1150)は、サブ回路のシミュレーション結果に対応するテンソルを、図8と関連して記載されている決定演算740または図17と関連して記載されている決定演算1040あるいはその両方を介して得られた実行の順序付けに従って結合して、テンソルの積にすることも含み得る。
合計すること(1160)は、サブ回路についてのテンソルの積を上記した構成演算1150において決定された入力−出力の順序で計算することと、これらのサブ回路の内部のインデックス変数が決定された入力−出力の順序で突き合わされる際にそれらを合計することと、を含み得る。全体としての回路の内部のインデックス変数の合計を行うこと(1160)は、サブ回路のシミュレーション結果を組み合わせるために、上記した構成演算1150において決定されたテンソルの積を計算するときに、そのようなインデックス変数を合計することを含み得る。あるキュービットについて回路中にシミュレートすべきゲートが残っていないか、またはそのキュービットについての残りの全てのゲートが対角ユニタリ・ゲートである場合、サブ回路のシミュレーション結果のこの組合せの前に、1つまたは複数のそのようなキュービットの可能な値に対してループする、for−ループの導入が行われる。次いで、影響を受けたテンソルのスライスについて後続のテンソル積およびそれらの合計を計算して、後続の計算のメモリ必要量を減らすことができる。
図20〜22は、量子回路の1つの特定の例を最適化する一例を記述した回路図である。いくつかの実施形態では、本明細書で開示する方法中の様々なポイントにおいて、ゲート置換(回路書き換えとしても知られる)を行うことができる。例えば、図21に示すような書き換えなどの回路書き換えは、図8に示す方法700のステップ720と関連して、または図17に示す方法1000のステップ1080を行うときに、行われてもよい。特に、橋渡しするCNOTゲートをCZゲートおよびアダマール・ゲートの等価な構成と置き換えることにより、対応するサブ回路がもつれ状態にあるときに導入されるもつれ状態のインデックスの数を減らすことができ、そしてこのことは、結果的なもつれ状態のサブ回路をシミュレートするために必要となるメモリの量を低減する効果を有する。
再び図18のステップ1140および図19に示すようなその可能な実施形態を参照すれば、本発明の少なくとも1つの実施形態では、個々のキュービットの初期状態から作成された初期のサブ回路から始まる入力−出力の順序で、サブ回路が効率的にシミュレートされることを、当業者は諒解するであろう。そのような手法では、後続のサブ回路は、それらが入力について依存する先行するサブ回路のシミュレートが完了するまではシミュレートされないであろう。各サブ回路についてのシミュレーション結果は、コンピュータメモリにおいてn次元のアレイとして表すことのできる、n次元のテンソルに対応し得る。線形のアレイなどの、等価な表現を提供する他のデータ構造を採用してもよいことを、当業者は認識するであろう。
一実施形態では、これらのデータ構造に格納される値は、16バイトの記憶装置を各々必要とする、倍精度複素浮動小数点数であり得る。N次元のテンソル/アレイのメモリ・フットプリントはその場合、テンソル/アレイ中の全2個の値を格納するために、2(n+4)バイトを必要とするであろう。
個々のキュービットの初期状態から作成された初期のサブ回路は、ゼロの位置における1の値および1の位置におけるゼロの値で初期化される、1次元のテンソル/アレイであり得る。この初期化はクロネッカー・デルタのテンソル

に対応し、この式は更に以下の量子基底状態|0〉に対応する:
先行する入力サブ回路のみに依存する後続のサブ回路について、シミュレーション結果のアレイを、先行する入力サブ回路のシミュレーション結果を用いて初期化することができる。一般に、先行する入力サブ回路のシミュレーション結果のテンソル/アレイが次元nを有する場合、および、対応する後続のサブ回路について、先行する入力サブ回路のシミュレーションにおいてまだスライスされていなかったs個の新しいキュービットが、スライス用に特定されている場合には、この後続のサブ回路のシミュレーションは、スライス用に特定されたs個の新しいキュービット(存在する場合)の可能な値に対してループするfor−ループを導入することと、n−s次元のテンソル/アレイ(または後続のサブ回路についてのシミュレーション結果を保持するのに好適な他のデータ構造を)作成することと、次いで、for−ループ変数の値によって特定されたスライス(存在する場合)について、先行する入力サブ回路についてのシミュレーション結果から対応する値をコピーすることによって、このn−s次元のテンソル/アレイを初期化することと、を含み得る。次いで、問題の現時点の後続のサブ回路に関するシミュレーション計算をこれらのfor−ループ内で行うことができ、これはまだシミュレートされていない全ての下流のサブ回路のシミュレーションの計算についても同様であるが、その理由は、これらのスライスするfor−ループがこれらの下流のサブ回路にも同様に適用可能であるからである。
2つの先行する入力サブ回路に依存する後続のサブ回路に対して、そのような後続のサブ回路のシミュレーション結果に関する初期の次元の数はn+m−g−sによって与えられ、ここでnおよびmは、先行する2つの入力サブ回路のシミュレーション結果のそれぞれにおける次元の数であり、gは、処理のこの段において加算され得る、これら2つのサブ回路の間で共有されるもつれ状態のインデックスの数であり、sは、この後続のサブ回路に関する、先行する入力サブ回路のいずれかのシミュレーションにおいてまだスライスされていなかった、スライス用に特定された新しいキュービットの数である。この後続のサブ回路のシミュレーションは、スライス用に特定されたs個の新しいキュービット(存在する場合)の可能な値に対してループするfor−ループを導入することと、n+m−g−s次元のアレイまたは後続のサブ回路についてのシミュレーション結果を保持するのに好適な他のデータ構造を作成することと、次いで、for−ループ変数の値によって特定されたスライス(存在する場合)について、2つの先行する入力サブ回路についてのシミュレーション結果のテンソル乗算を行うことによって、このn+m−g−s次元のアレイを初期化することと、処理のこの段において加算され得る、これら2つのサブ回路の間で共有されるもつれ状態のインデックス(存在する場合)を加算することと、を含み得る。
先行する入力サブ回路のシミュレーション結果をこのように組み合わせて後続のサブ回路のシミュレーションを初期化するとき、加算され得る共有されるもつれ状態のインデックスは、この最終的な組み合わせ演算へと直接的または間接的に現在進んでいる、もつれ状態のインデックスを作成するために元々もつれ状態であったサブ回路の全てからのシミュレーション結果に関するインデックスであり、これらのインデックスは、これらの先行する入力サブ回路のどれに関しても出力インデックスとしては現れない。この要件の最初の部分は、インデックス変数を加算するための代数学の分配法則を反映しており、そのインデックス変数を下付き文字として含む全ての項が、合計中に現れねばならない。この要件の2番目の部分は、量子回路に関するインデックス変数を加算できる条件を反映している:変数はシミュレーションの現時点のポイントまで完全に回路の内部になければならず、出力と関連付けることはできない。通常、回路が2つのキュービットに関する複数キュービットのゲートしか含まない場合、組み合わされる2つのサブ回路のシミュレーション結果が共通のもつれ状態のインデックスを共有するときは常に、上記の要件の最初の部分が満たされることになる。しかしながら、回路が3キュービット以上のゲートを含む場合には、この最初の要件を詳細にチェックしなければならない。
2つ以上の先行する入力サブ回路のシミュレーション結果を後続のサブ回路への入力として組み合わせる必要のあるケースは、3つ以上のキュービットに関する複数キュービットのゲートを含む量子回路について、フローチャート1000に示すプロセスを適用するときにのみ生じ得る。これらのケースに関するシミュレーションのステップは、どの共有されたもつれ状態インデックスを加算すべきかを決定するための上記の条件を含め、上記した2つのサブ回路のケースの場合と同じ構造に従い得る。一般に、上記した2入力の方法を繰り返し適用することによって、これらの結果を対になるように組み合わせることが、演算上有利であり得る。経験則では、各ステップにおいて組み合わせるべき結果の対は、そのステップの結果として最低次元のテンソル/アレイが得られる対であるべきである。この経験則は、組み合わされたシミュレーション結果を計算するために行う必要のある浮動小数点演算の合計回数を減らすのに役立つ。この同じ方法をシミュレーションの最後に使用して、2つ以上のサブ回路が残っているときの最終的なサブ回路のシミュレーション結果を組み合わせることができる。
サブ回路のシミュレーション結果を保持するためのテンソル/アレイの初期化が完了してしまうと、テンソル/アレイに入力−出力の順序でゲートを適用することによって、そのサブ回路についての最終的なシミュレーション結果を演算することができる。もつれ状態のインデックスの導入をもたらさないゲートの適用に関して、これらの演算を定義する式は図3〜6に示す形態を有し、これらの式において、ψはゲート適用前のシミュレーション結果のテンソル/アレイの値を表し、ψ’はゲート適用後の値を表す。図3〜6に見られる式は単なる例示に過ぎず、挙げられていない他の種類の量子ゲートについて、対応する式を明白な方法で容易に構成できることを、当業者は認識するであろう。
もつれ状態のインデックスの作成をもたらすゲートの適用には異なる取り扱いが必要となるが、これは、そのようなゲートの適用は通常、シミュレーション結果のテンソル/アレイの次元の数を増やし、この結果、どの次元がサブ回路に割り当てられているキュービットに現在対応しているかを、どの次元がもつれ状態のインデックスに対応するかと対比して追跡する必要が生じるからである。
図17に記述されているプロセス中のステップ1060においてサブ回路をもつれ状態にする決定が行われ、次いでステップ1080において橋渡しする複数キュービットのゲートがサブ回路のうちの1つに割り当てられる場合、複数キュービットのゲートが割り当てられるサブ回路についてのシミュレーション結果のテンソル/アレイは、その複数キュービットのゲートがシミュレートされるシミュレーション中に、サイズを大きくしなければならない。複数キュービットのゲートが2キュービットの対角ユニタリ・ゲートである場合、1つの追加の次元を追加せねばならず、2キュービットの非対角ユニタリ・ゲートの場合、2つの追加の次元を追加せねばならない。3つ以上のキュービットのゲートの場合、対応する次元の増加を行わねばならない。これらの追加の次元は、もつれ状態のインデックスに対応する。
例えば、図23に記述されている量子回路およびサブ回路を検討されたい。これらのサブ回路は、図17に記述されているプロセスを用いて以下のようにして得ることができる。ステップ1010においてキュービットq[0]およびq[1]に対するサブ回路を作成した後で、ステップ1020において上側左のHゲートをq[0]についてのサブ回路に割り当てることができ、この場合、キュービットq[0]についての残りの全てのゲートが対角ユニタリであることが留意され得る。上記後段により、q[0]についての上側左のサブ回路を閉じること、および、今やキュービットq[0]をスライスできると注釈して、キュービットq[0]に対して新しいサブ回路を開始することが可能になる。またステップ1020において、下側左のXおよびHを、キュービットq[1]に対するサブ回路に割り当てることができる。橋渡しするCZゲートに起因して、ステップ1020において追加のゲートを現時点のサブ回路に割り当てることはできず、したがって、CZゲートを選択するために、プロセスはステップ1050に進むことができる。ステップ1060において、q[0]およびq[1]についてのサブ回路をもつれ状態にする決定を行うことができ、ステップ1080において、q[0]についての現時点のサブ回路にCZゲートを割り当てることができる。プロセスは次いでステップ1020に戻ることができ、そこで、上側左のZゲートをq[0]についての現時点のサブ回路に割り当てることができ、下側左のHおよびYゲートをq[1]についてのサブ回路に割り当てることができ、この結果、図23に記述されているサブ回路の構成が得られる。
引き続き、図18の実行ステップ1140の実施形態を記述している図19のステップ1150および1160に進むと、上側左のサブ回路のシミュレーションは、上側左のサブ回路についてのシミュレーション結果を含むテンソル/アレイを初期化してクロネッカー・デルタのテンソルにすること、および次いでHゲートを適用してシミュレーション結果を更新することによって、進行し得る:

上側右のサブ回路のシミュレーションはその場合、キュービットq[0]についてスライスするfor−ループを導入すること、および上側右のサブ回路についてのテンソル/アレイを

のスライスと等しくなるように初期化することに関与し得る:
CZゲートは下側のサブ回路ともつれ状態にあるときに上側右のサブ回路に割り当てられたので、新しいテンソル/アレイには、CZゲートをシミュレートするプロセスにおけるもつれ状態のインデックスeに対処するための追加の次元を割り当てることができる:
次いでZゲートのシミュレーションを通常通り行って、この新しいテンソル/アレイを更新することができる:
もつれ状態の決定が行われるときに複数キュービットのゲートを割り当てられないサブ回路の場合、シミュレーション結果のテンソル/アレイのサイズを大きくしなければならないポイントは(仮にあるとすれば)、導入されるもつれ状態のインデックスの数に、および、(存在する場合)そのうちのどれが、厳密にサブ回路の内部にあるまたは全体としての回路の内部にあるあるいはその両方であるかに依存する。もつれ状態であるときに複数キュービットのゲートを割り当てられなかったサブ回路の内部にある各もつれ状態のインデックスは、そのサブ回路についてのシミュレーション結果のテンソル/アレイに追加の次元を追加することになる。もつれ状態であるときに複数キュービットのゲートを割り当てられなかったサブ回路の内部にはないが全体としての回路の内部にある、もつれ状態のインデックスは、いくつかの下流のサブ回路のシミュレーション結果のテンソル/アレイに追加の次元を追加することになる。この理由は、回路の内部にある全てのインデックスを、シミュレーション中のいずれかのポイントにおいて加算しなければならないからである。
もつれ状態のインデックスを導入する目的は、シミュレーション結果のテンソル/アレイの次元を上げることによって、これらの合計をシミュレーションのより後期の段まで留保し、このことにより、この技法を有効にするために必要な演算ブックキーピングを行えるように、およびその後で、もつれ状態のインデックスを共有するサブ回路のシミュレーション結果を組み合わせるときに合計を行えるようにすることである。したがって、もつれ状態のインデックスを適切に取り扱えるように、それらを回路全体にわたって追跡することが重要である。そのような次元の増加が生じる正確なポイントは、関与している複数キュービットのゲートが対角ユニタリであるかそれとも非対角であるかに依存する。
例として、図23に記述されている下側のサブ回路の場合、シミュレーション結果を初期化してクロネッカー・デルタのテンソルにすることができ、その後、Xゲートおよび最初のHゲートを通常通り適用することができる:
CZゲートはこのサブ回路に割り当てられておらず、したがってインデックス変数eは、このサブ回路に対するCZゲートの効果の根拠となるもつれ状態のインデックスとなる。eはもつれ状態のインデックスであるため、2番目のHゲートが適用されるとき、eの合計を行うことはできない。代わりに、新しいテンソル/アレイには、2番目のHゲートをシミュレートするプロセスにおけるもつれ状態のインデックスeに対処するための、追加の次元を割り当てることができる:

次いでYゲートのシミュレーションを通常通り行って、この新しいテンソル/アレイを更新することができる:
Hゲートは非対角ゲートであるので、通常は合計を必要とすることに留意されたい。この合計は最終的には、サブ回路のシミュレーション結果を組み合わせるときに、もつれ状態のインデックスを加算するためのルールに従って行われることになる。もつれ状態のインデックスの導入は、これらの合計をシミュレーションのより後期の段まで留保するための機構である。
もつれ状態のインデックスeは、上側右および下側のサブ回路の結果が組み合わされるときに、最終的に加算され得る。上側右のサブ回路はスライスしてシミュレートされるので、回路の最終的なシミュレーション結果ψbgに関する組み合わせるステップは、上側右のテンソルについてのスライスするfor−ループ内で実行されるであろう:
図24は、図23に記述されている同じ回路についてのサブ回路の代替の組を示し、この場合CZゲートは、図17のステップ1080における上側右のサブ回路の代わりに、下側のサブ回路に割り当てられる。この場合、今度はbがもつれ状態のインデックスである。下側のサブ回路のシミュレーションにおいて、初期のシミュレーション結果のテンソル/アレイを1次元となるように初期化することができ、次いでCZゲートが適用されるときに2次元へと大きくすることができる。
上側右のサブ回路のシミュレーションでは、シミュレーション結果のテンソル/アレイを、前出のように上側左のサブ回路の結果のスライスとなるように初期化することができるが、今度はZゲートがシミュレートされるときに次元が増加せず、その理由は、もつれ状態のインデックスbは既にシミュレーション結果のインデックスであり、Zは対角ユニタリ・ゲートであるので、適用されるときにbの合計を行う必要がないからである。この結果、bはサブ回路の内部にはなく、これは出力インデックスである:
上記のサブ回路が、非対角ゲートが最終的に後続のサブ回路中のキュービットq[0]に適用される、より大きい回路の一部であると仮定すると、その場合、上側右のサブ回路についてのシミュレーション結果のテンソル/アレイの次元は依然として変化しなかったであろうし、またq[0]は上側右のサブ回路のシミュレーションの一部としてスライスされていなかったであろうことに留意されたい。代わりに、キュービットq[0]に適用される非対角ゲートを含んだ後続のサブ回路のシミュレーション中に、もつれ状態のインデックス変数bに対処するためのシミュレーション結果のテンソル/アレイの次元の増加が生じていたと考えられるが、その理由は、このポイントではbは全体としての回路の内部のインデックスになると考えられ、したがって加算する必要があったと考えられるからである。
図23に記述されているサブ回路の場合のように、図24に記述されている上側右および下側のテンソルについてのシミュレーション結果は、上側のテンソルについてのスライスするfor−ループ内で組み合わされると考えられるが、今度はbが全体としての回路の内部にないので、結果が組み合わされるときにbは加算されないであろう:
既に述べたように、2キュービットの非対角ユニタリ・ゲートは、そのようなゲートよって橋渡しされる2つのサブ回路をもつれ状態にする決定が行われるとき、2つのもつれ状態のインデックスをもたらす。図25に示す回路およびサブ回路がその例である。これらのサブ回路は、図17のステップ1060において上側および下側のサブ回路をもつれ状態にするよう選択し、次いでステップ1080においてCNOTゲートを上側のサブ回路に割り当てることによって、CNOTをCZゲートおよびHゲートで置き換えるための回路書き換えを行うことなく得ることができる。CNOTゲートを上側のサブ回路に割り当てることによって、eおよびfはいずれももつれ状態のインデックスとなる。上側のサブ回路がシミュレートされるとき、シミュレーション結果を保持するために初期の1次元のテンソル/アレイを作成することができ、CNOTをシミュレートするときには、次いで3次元のテンソル/アレイが作成され得る:
τ’=δ
τ’←Σbaτ’
τ”cef=ΣCNOTcfbeτ’
τ”cef←Zτ”cef
下側の回路がシミュレートされるとき、シミュレーション結果を保持するために初期の1次元のテンソル/アレイを作成することができ、非対角Yゲートをシミュレートするときには、次いで3次元のテンソル/アレイが作成され得る:

その場合、もつれ状態のインデックスはいずれも全体としての回路の内側にあるので、結果を組み合わせるときにそれらを加算することができる:
図17のステップ1080においてCNOTゲートが代わりに下側のサブ回路に割り当てられる場合には、図26に示すようにbおよびcがもつれ状態のインデックスとなる。上側のサブ回路がシミュレートされるとき、シミュレーション結果を保持するために初期の1次元のテンソル/アレイを作成することができ、Zゲートをシミュレートするときは、2次元のテンソル/アレイのみが作成され得る。この場合、bは既にもつれ状態のインデックスであり、Zゲートのシミュレーションにより、シミュレーション結果のテンソル/アレイのインデックス変数にcが導入される。
τ’=δ
τ’←Σbaτ’
τ”bc=Zτ’
下側のサブ回路がシミュレートされるとき、シミュレーション結果を保持するために初期の1次元のテンソル/アレイを作成することができ、CNOTをシミュレートするときには、次いで3次元のテンソル/アレイが作成され得る:
cは出力インデックスであり回路の内部に無いので、上側および下側のサブ回路のシミュレーション結果が組み合わされるとき、合計はbに対してのみ行われ、cに対しては行われない:
スライスするfor−ループが導入されてしまうと、このポイントへの到達後にシミュレートされるサブ回路のスライスするfor−ループを含め、これらのfor−ループ内で後続のシミュレーションのステップを実施する必要があることに留意されたい。したがって、スライスされずにシミュレートされるサブ回路は全て、それらのシミュレーション結果の余分な再演算を回避するために、実行においてスライスするループの導入前にシミュレートされるべきである。結果的なシミュレーション結果を保持するのに十分なメモリが利用可能であるならば、スライスの導入はまったく任意選択的なものであることに留意されたい。スライス可能なシミュレーション結果の中からどれを実際にスライスするかを取捨選択できる。いくつかのサブ回路の全シミュレーション結果を二次記憶装置に保存し、その後スライスするループ内でこれらのシミュレーション結果のスライスを取り出すことができることも、当業者は認識するであろう。これらの全シミュレーション結果自体を可能なときはスライスして演算し、二次記憶装置に書き込むことができ、全シミュレーション結果をメイン・メモリに存在させる必要はない。
当業者は同様に、演算の目的が回路の最終的な量子状態における全ての振幅を計算することである場合にのみ、スライスするループが必要となることを認識するであろう。そうではなく、単に測定された結果の振幅を計算したいだけである場合には、代わりにfor−ループを、測定された結果が規定するようなキュービットに関する設定値で置き換えることができる。スライスする操作がやはり行わるとしても、この場合は対応するキュービットの測定された値が使用される。測定値の組に対して振幅を計算する必要がある場合には、効率性のために、スライスできないサブ回路のシミュレーション結果を最初に計算でき、次いで測定された各結果に対して反復するようにループを設定し、これに応じて反復ごとにスライスされたキュービットの値を設定することができる。このシミュレーション手法では、もはやfor−ループをネストする必要はなく、このことにより、残りのサブ回路のシミュレーションの順序の自由度をより大きくすることができる。
図27には、量子回路を現時点で利用可能な演算システム上でシミュレートできるようにする、図6に対応する大きな量子回路のサブ回路への分割が記述されている。図6には、Boixoらによって、既存の古典コンピュータ上では明らかにシミュレートするのが不可能であるように特定的に設計された、ランダムに生み出された量子回路のクラスに属する量子回路が記述されている。Boixoらは2016年の研究論文「State−of−the−art supercomputers cannot simulate universal random circuits with depth 25 in a 2D lattice of approximately 7 x 7 qubits with any known algorithm and significant fidelity」で、この論述の理論的根拠は、知られている技法を使用するこのようなシミュレーションでは、量子状態情報を格納するためだけでも8ペタバイトのメイン・メモリが必要となるが、既存のスーパー・コンピュータでそれだけ大きなメモリを有するものはないということである、と主張している。本発明を用いて図6に記述されている7×7キュービット、深さ27の回路を分割しこれをシミュレートすることにより、発明者らは、シミュレーション結果のテンソル/アレイを格納するのに4.5テラバイトしか使用せずに、この回路をシミュレートできた。
図27には、発明者らが採用した分割が描かれている。図20〜22の対応するタイルの背景の数字「1」を含む部分に属する図6のゲートは、上側のサブ回路と呼ばれることになるあるサブ回路に属する。図20〜22の対応するタイルの明るい灰色の背景の数字「2」を含む部分に属する図6のゲートは、下側のサブ回路と呼ばれることになる別のサブ回路に属する。図20〜22の対応するタイルの暗い灰色の背景の数字「3」を含むまたは黒い背景に白色の文字「S」を含む部分に属する図6のゲートは、「左」サブ回路と呼ばれることになる第3のサブ回路に属する。上側および下側のサブ回路はもつれ状態にあり、この場合橋渡しするゲートはCZゲートであって、図6に記述されているタイルの一番上の行の右端から2つのタイルの第3行と第4行にまたがっている。これらのCZゲートは、回路をシミュレートする能力に影響を与えることなく、上側または下側のサブ回路のいずれかに割り当てることができる。発明者らが行ったシミュレーションでは、これらのCZゲートを恣意的に下側のサブ回路に割り当てた。組み合わせた上側および下側のサブ回路は、それらのシミュレーション結果を格納するために0.5テラバイトを必要とし、一方、左のサブ回路は4テラバイトを必要とした。上側および下側のサブ回路についてシミュレーション結果を計算した後で、スライスするループを設定して、文字「S」によって識別される明るい緑色で色付けされたキュービットならびに7×7タイルの底部に対応する残りのキュービットの値をスライスした。64テラバイトの利用可能なメイン・メモリを提供する、4ラックのIBM Blue Gene Qコンピュータでスライスの演算を行った。演算全体が6の倍数で高速化されるように、4つのラックの6つの異なるグループ上で、様々な範囲のループを実行した。
8×7キュービット、深さ23のランダム量子回路(記述せず)の1つのスライスもシミュレートした。この56キュービットの回路を、非常に類似した様式で分割した。この場合、構成された3つのサブ回路についてのシミュレーション結果は、格納するのに3テラバイトのメイン・メモリしか必要としなかった。これに対して、従来技術のシミュレーション方法であれば、量子状態全体をメイン・メモリに格納しこれに対して演算を行うのに、1エクサバイトを必要としていたであろう。これらの例は、量子シミュレーションに対する本発明の非常に大きな利点を説明するものである。
上に提示した内容に基づけば、上記のユース・ケースおよび本発明の他の可能なユース・ケースの各々について、各サブ回路のシミュレーション結果の、ならびに、次元の数およびバイトの計数に関する最終的なシミュレーション結果の、初期のおよび最終的なサイズを計算する方法が、本発明の当業者には当然明らかであろう。本発明をどのように実施し得るかに関する上記のユース・ケース、ならびに本発明の他の可能なユース・ケースの各々について、各サブ回路をシミュレートし最終的な結果を組み合わせるために必要な浮動小数点演算の回数を推定する方法もまた、当業者には当然明らかであろう。目標となる配備システム上で利用可能な最大メモリの制限下で、上記のユース・ケースならびに本発明の他の可能なユース・ケースの各々について、例えば浮動小数点演算の回数を最小にする回路分割を見つけるために、図17に示すプロセスと関連させて、様々な従来技術の最適化技法を採用できることを、当業者は認識するであろう。例としては、深さ優先探索、幅優先探索、反復増深的な深さ優先探索、ダイクストラのアルゴリズム、およびA*探索が挙げられる。
図17に記述されているプロセスを深さ優先の再帰的最適化プロセスとして実施することは、図17に記述されているこのプロセス中の各決定ポイントにおいて、全ての可能な決定選択に対してループさせるためのループを導入すること、次いでこれらのループ内でプロセス中のこれらのポイントから図17に記述されているプロセスを再帰的に呼び出して可能な各選択に順方向に適用すること、およびループの終了時に所望のリソース・コストの尺度を最適化する選択を返すことを含み得ることを、当業者は認識するであろう。これらの決定ポイントは、割り当て可能な橋渡しするゲートを選択するためのステップ1050と、サブ回路をもつれ状態にするかどうかを選択するためのステップ1060と、橋渡しするゲートをサブ回路に割り当てるためのステップ1080と、サブ回路実行順序を決定するためのステップ1040と、を含み得る。これらのポイントにおける決定のあるものは、代わりに経験則を適用して行われてもよく、また決定のあるものは、深さ優先探索の一部として含まれてもよい。最小化することが望まれるリソース・コスト尺度としては、最大メモリ必要量、全ての振幅を計算するための浮動小数点演算の合計回数、または単一の振幅を計算するための浮動小数点演算の合計回数を挙げることができる。条件テストを導入して、所望の制約に違反した場合に選択を放棄するようにしてもよい。所望の制約には、シミュレーションのための合計メモリ必要量を指定された限度内に留めることが含まれ得る。これらには、深さ優先処理自体が消費する合計ランタイムに対する制限も含まれ得る。深さ優先処理は、所望のリソース・コスト尺度に従って、その時点までに見つかった現時点の最善の選択の組の記録を取るために実施され得るので、ランタイム制限が課される場合など、深さ優先処理が完全な探索が行われる前に終了される場合であっても、深さ優先処理を実行したことによる利益を依然として得ることができる。
すぐ前に記載した深さ優先探索プロセスにより、可能な決定選択シークエンスのツリーが、これによりもたらされる回路分割と共に有効に生み出されることを、当業者は認識するであろう。幅優先探索は、このツリーを1回に1レベルずつ探索する。幅優先探索を反復的に増深する深さ優先探索として実施してもよく、この場合、行われる決定の数に対して制限が課され、この制限を超えると探索ツリーの枝が放棄されることを、当業者は認識するであろう。幅優先探索の動機付けとなるのは、探索深さと共に探索コストが指数関数的に増大する傾向があるので、最適化問題の妥当な解を浅い探索深さ内で見つけることができるのであれば、恐らくその解は適切であると考えられる、ということである。解が見つからなければ、深さ制限を上げて探索し直すことによって、更に深くまで探索することができる。
本発明の文脈では、単に探索の深さに対してのみでなく、図17のステップ1060においてもつれ状態にする選択を選択できる回数に対しても、制限が課される場合がある。ステップ1060でもつれ状態にする選択が一度も行われず、代わりに常にステップ1070に進むことになると仮定すると、ステップ1070が実行される回数は、キュービットの数を超えることは決してないであろう。この理由は、ステップ1070が、サブ回路の結果を1つに組み合わせることの副産物として、キュービットのグループを1つに組み合わせる効果を持っており、そのようなグループ化演算の回数がグループ化されているキュービットの数を上回ることはあり得ないからである。サブ回路をもつれ状態にする選択がステップ1060において行われるたびに、そのポイントでの有効な探索ツリーがより広くなり、少なくとも1つの追加レベル分増深する。このことにより、もつれ状態にする選択を行うことのできる回数に、反復的に大きくなる制限を課すことにより、行われる探索の量を制限の所与の設定に合わせて制限することができ(これは幅優先探索の根底にある目的である)、一方同時に、完全に分割された回路の組に対して探索最適化を行うことができる。対照的に、探索の深さを単純に限定すれば、回路がサブ回路へと完全に分割される前に探索ツリーの枝が早期に終了され、このことにより、探索ツリーにおいて不適切な解を生み出すおよび探索するのに、大きな労力を浪費してしまうであろう。
本発明とともに用いるのに同じく適している可能性のある、幅優先探索のバリエーションは、ダイクストラのアルゴリズムである。図17に記述されているプロセス中の様々な決定ポイントで行われた選択の任意のシークエンスが与えられると、結果的なシミュレーションのプロセスが実際のシミュレーションにおける対応するポイントまでに消費するであろうリソース・コスト尺度を推定することができる。例としては、そのポイントまでの浮動小数点演算の累積回数、およびそのポイントまでの最大メモリ必要量が挙げられる。ダイクストラのアルゴリズムは、決定選択のシークエンスを結果的なシミュレーションにおける対応するポイントまでのリソース・コスト尺度と共にコード化するデータ構造を、優先キューのデータ構造に入れることによって実施され得ることを、当業者は認識するであろう。ダイクストラのアルゴリズムはこの場合、優先キューから最低コストの決定選択のシークエンスを選択し、次の可能な決定選択の各々を採用することと関連付けられたリソース・コストを推定し、結果的な次のステップの決定選択および関連付けられたリソース・コストを優先キューに入れ、これを繰り返すことによって進行し得る。図17に記述されているプロセスに関して、初期には空である決定選択のシークエンスを、ステップ1050に対応する最初の決定ポイントに先行するステップ1010および1020を実行するリソース・コストと共に、優先キューに入れることによって、ダイクストラのアルゴリズムを初期化することができる。概念的に言えば、ダイクストラのアルゴリズムは、この時点までに得られた最低コストの決定のシークエンスを特定し、次いで、その決定のシークエンスが次の決定ポイントの結果が組み込まれた後で次にどこに至るかを見ることによって機能する。
ダイクストラのアルゴリズムの更なるバリエーションがA*探索であることを、当業者は認識するであろう。A*探索は、決定選択のシークエンスの結果生じるコストを、最適な決定選択のシークエンスがこれらのポイントから順方向に行われた場合にそれらのコストがどの程度増加するかの下限推定値を組み合わせることによって、ダイクストラのアルゴリズムを修正する。概念的に言えば、A*探索は、(探索における現時点のポイントまでのコストと対比して)合計コスト推定値が最低の決定のシークエンスを特定し、その決定のシークエンスが次の決定ポイントの結果が組み込まれた後で次にどこに至るかを見ることによって機能する。本発明の文脈では、既存のテンソルのサイズが大きくなることはないと仮定して任意の残りのゲートを適用するコストを計算することによって、残りの浮動小数点演算の回数の下限を得ることができる。サブ回路同士を橋渡しする複数キュービットのゲートの場合、最小の橋渡しされるサブ回路のサイズを使用して、複数キュービットのゲートを適用するコストの下限を計算することができる。メモリ必要量の増加の下限は、メモリ必要量のそれ以上の増加は起こらないと仮定することであり得る。
図28は、本明細書で開示する方法の実行に適した演算装置(すなわちコンピュータ1500)の一例を記述したブロック図である。図28は一実施形態を例示しているに過ぎず、様々な実施形態が実施され得る環境に関してどのような限定も示唆していないことが諒解されるべきである。記述されている環境に対して、多くの変更を行うことができる。
記述されているように、コンピュータ1500は通信ファブリック1502を含み、これにより、コンピュータ・プロセッサ1505、メモリ1506、持続的記憶装置1508、通信ユニット1512、および入力/出力(I/O)インターフェース1515の間の通信が提供される。通信ファブリック1502は、システム内のプロセッサ(マイクロプロセッサ、通信およびネットワーク・プロセッサ、等)、システム・メモリ、周辺デバイス、および任意の他のハードウェア・コンポーネントの間で、データを渡すまたは情報を制御するあるいはその両方を行うように設計された、任意のアーキテクチャを用いて実装することができる。例えば、通信ファブリック1502は、1つまたは複数のバスを用いて実装することができる。
メモリ1506および持続的記憶装置1508は、コンピュータ可読記憶媒体である。記述されている実施形態では、メモリ1506は、ランダム・アクセス・メモリ(RAM)1516とキャッシュ・メモリ1518とを含む。一般に、メモリ1506は、任意の好適な揮発性または不揮発性のコンピュータ可読記憶媒体を含み得る。
1つまたは複数のプログラムを、メモリ1506のうちの1つまたは複数のメモリを介して、それぞれのコンピュータ・プロセッサ1505のうちの1つまたは複数によって実行できるように、持続的記憶装置1508に格納することができる。持続的記憶装置1508は、磁気ハード・ディスク・ドライブ、ソリッド・ステートのハード・ドライブ、半導体ストレージ・デバイス、読取り専用メモリ(ROM)、消去可能なプログラマブル読取り専用メモリ(EPROM)、フラッシュ・メモリ、またはプログラム命令もしくはデジタル情報を格納できる任意の他のコンピュータ可読記憶媒体であり得る。
持続的記憶装置1508が使用する媒体は、取り外し可能であってもよい。例えば、持続的記憶装置1508のために、取り外し可能なハード・トライブを使用してもよい。他の例としては、光学および磁気ディスク、サム・ドライブ、およびスマート・カードが挙げられ、これらは、やはり持続的記憶装置1508の一部である別のコンピュータ可読記憶媒体への転送のために、ドライブに挿入される。
通信ユニット1512は、これらの例では、他のデータ処置システムまたはデバイスとの通信を提供する。これらの例では、通信ユニット1512は、1つまたは複数のネットワーク・インターフェース・カードを含む。通信ユニット1512は、物理的通信リンクまたはワイヤレス通信リンクの一方または両方の使用を介して、通信を提供してもよい。
I/Oインターフェース1515により、コンピュータ1500に接続され得る他のデバイスに対するデータの入出力が可能になる。例えば、I/Oインターフェース1515は、キーボード、キーパッド、タッチ・スクリーン、または何らかの他の好適な入力デバイスあるいはその組合せなどの、外部デバイス1520への接続を提供し得る。外部デバイス1520は、例えばサム・ドライブ、携帯型の光学または磁気ディスク、およびメモリ・カードなどの、携帯型コンピュータ可読記憶媒体も含み得る。
本発明の実施形態を実施するために使用されるソフトウェアおよびデータは、そのような携帯型コンピュータ可読記憶媒体に記憶することができ、I/Oインターフェース1515を介して持続的記憶装置1508にロードされ得る。I/Oインターフェース1515は、ディスプレイ1522に接続することもできる。ディスプレイ1522はユーザにデータを表示するための機構を提供するもので、例えばコンピュータ・モニタであり得る。
上で開示した実施形態を様々な環境および用途に適合させることができることを、当業者は諒解するであろう。また更に、本明細書に記載するプログラムは、本発明の特定の実施形態においてそれらを実装する用途に基づいて特定される。しかしながら、本明細書における任意の特定のプログラム用語は単に便宜的に使用されており、したがって、本発明を、そのような用語によって特定されるまたは示唆されるあるいはその両方である、何らかの特定の用途のみでの使用に限定するべきではないことが、諒解されるべきである。
本明細書に開示される実施形態は、システム、方法、またはコンピュータ・プログラム製品あるいはそれらの組合せを含む。コンピュータ・プログラム製品は、本明細書に開示される方法をプロセッサに実行させるためのコンピュータ可読プログラム命令を有する、コンピュータ可読記憶媒体を含んでもよい。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持および保存できる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または以上の任意の好適な組合せであり得るが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、以下、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、消去可能なプログラマブル読取り専用メモリ(EPROMもしくはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読取り専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、命令が記録されているパンチカードもしくは溝の中の隆起構造などの機械的に符号化されたデバイス、および以上の任意の好適な組合せが含まれる。本明細書において使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を通じて伝播する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または配線を介して伝送される電気信号などの、一時的信号そのものであると解釈されるべきではない。
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいは、ネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワーク、またはそれらの組合せを経由して、外部のコンピュータまたは外部ストレージ・デバイスに、ダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組合せを備え得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に保存されるように転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存型命令、マイクロコード、ファームウェア命令、状態設定データ、または、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つもしくは複数のプログラミング言語の任意の組合せで書かれた、ソース・コードもしくはオブジェクト・コードのいずれか、であり得る。コンピュータ可読プログラム命令は、専らユーザのコンピュータ上で、スタンド・アロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上でかつ部分的に遠隔のコンピュータ上で、または専ら遠隔のコンピュータもしくはサーバ上で、実行することができる。後者のシナリオでは、遠隔のコンピュータを、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意の種類のネットワークを介して使用者のコンピュータに接続してもよく、または、外部のコンピュータへの接続を(例えば、インターネット・サービス・プロバイダを利用してインターネットを介して)行ってもよい。いくつかの実施形態では、例えばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を行うために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行して電子回路を個人化することができる。
本明細書には、本発明の実施形態に係る方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して、本発明の態様が記載されている。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せを、コンピュータ可読プログラム命令によって実施できることが、理解されるであろう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令はまた、命令が保存されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作の態様を実施する命令を含んだ製品を備えるように、コンピュータ可読記憶媒体に保存され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはそれらの組合せに特定の方式で機能するように指示できるものであってもよい。
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能装置、または他のデバイスで実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するように、コンピュータによって実行されるプロセスを作り出すべく、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
図中のフローチャートおよびブロック図には、本発明の様々な実施形態に係るシステム、方法、およびコンピュータ・プログラム製品の、可能な実装形態のアーキテクチャ、機能性、および動作が説明されている。この関連において、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を備える、モジュール、セグメント、または命令の一部分を表すことができる。いくつかの代替的実装形態において、ブロック内に記された機能は、図に記されたものとは異なる順序で行われ得る。例えば連続して示される2つのブロックは、実際は実質的に並行して実行され得、またはこれらのブロックは時には関わる機能に応じて、逆の順序で実行され得る。またブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組合せは、指定された機能もしくは動作を行う、または専用ハードウェアとコンピュータ命令の組合せを実行する、専用ハードウェア・ベースのシステムによって実施され得ることが、留意されるであろう。
この説明は本発明を限定することを意図していないことに留意すべきである。反対に、提示される実施形態は、代替形態、変更形態、および均等物のうちのいくつかを包含することが意図されており、それらは添付の特許請求の範囲によって規定されるような本発明の思想および範囲に含まれている。更に、開示される実施形態の詳細な説明では、特許請求される発明の包括的な理解をもたらすために、多数の具体的な詳細が明記されている。しかしながら、当業者であれば、そのような具体的な詳細が無くても様々な実施形態を実施できることを理解するであろう。
本明細書に開示する実施形態の特徴および要素は特定の組合せで記載されているが、各特徴または要素は、その実施形態のその他の特徴および要素を伴わずに単独で、または、本明細書で開示する他の特徴および要素を伴うもしくは伴わない様々な組合せで、使用することができる。
この書面による説明では、任意のデバイスまたはシステムの製作および使用ならびに任意の組み込まれた方法の実行を含め、任意の当業者が開示される主題を実施できるようにするために、主題の例を使用している。主題の特許可能な範囲は特許請求の範囲によって規定され、当業者が想到する他の例を含み得る。そのような他の例は、特許請求の範囲に含まれることが意図されている。

Claims (24)

  1. 1つまたは複数のプロセッサによって実行される、複数の量子ゲートを備える量子回路をシミュレートするための方法であって、
    前記量子回路のデジタル記述を受信することと、
    前記量子回路の前記デジタル記述を複数の量子サブ回路へと分割することであって、前記複数の量子サブ回路の各量子サブ回路は1つまたは複数の量子ゲートを備える、前記分割することと、
    前記複数の量子サブ回路についてサブ回路依存度を決定することと、
    前記サブ回路依存度に従って前記複数の量子サブ回路をシミュレートして、前記複数の量子サブ回路の各量子サブ回路についてシミュレーション結果を生成することと、を含み、
    前記複数の量子サブ回路のうちの第1の量子サブ回路および第2の量子サブ回路は、共通のキュービットに適用される1つまたは複数のゲートを各々含み、
    前記第1の量子サブ回路および前記第2の量子サブ回路は、もつれ状態のテンソル・インデックスを使用して互いに独立してシミュレートされる、方法。
  2. 前記第1の量子サブ回路中の前記ゲートの全てが、前記第2の量子サブ回路中の前記ゲートの全てに厳密に先行するまたは厳密に後続する訳ではない、請求項1に記載の方法。
  3. 前記第1の量子サブ回路および前記第2の量子サブ回路は重なり合うゲート段を含む、請求項1に記載の方法。
  4. 2つのサブ回路を橋渡しするもつれ状態のゲートは、単一キュービットのゲートともつれ状態の対角ユニタリ・ゲートの等価な組合せで置き換えられる、請求項1に記載の方法。
  5. 前記量子回路を、前記量子回路の1つまたは複数のより後期の段にもつれ状態のゲートが配されるように変換することを更に含む、請求項1に記載の方法。
  6. 前記量子回路を、前記量子回路の1つまたは複数の最終段に対角ユニタリ量子ゲートが配されるように変換することを更に含む、請求項1に記載の方法。
  7. 前記複数の量子サブ回路のうちの1つまたは複数の量子サブ回路に関する結果を使用して、前記量子回路の前記最終段をシミュレートすることを更に含む、請求項1に記載の方法。
  8. サブ回路は入力−出力の順序でFOIL方式でシミュレートされる、請求項1に記載の方法。
  9. コンピュータ・プログラム製品であって、
    1つまたは複数のコンピュータ可読記憶媒体と、前記1つまたは複数のコンピュータ可読記憶媒体に保存されているプログラム命令と、を含み、前記プログラム命令は、
    量子回路のデジタル記述を受信し、
    前記量子回路の前記デジタル記述を複数の量子サブ回路へと分割し、前記複数の量子サブ回路の各量子サブ回路は1つまたは複数の量子ゲートを備え、
    前記複数の量子サブ回路についてサブ回路依存度を決定し、
    前記サブ回路依存度に従って前記複数の量子サブ回路をシミュレートして、前記複数の量子サブ回路の各量子サブ回路についてシミュレーション結果を生成する
    ための命令を含み、
    前記複数の量子サブ回路のうちの第1の量子サブ回路および第2の量子サブ回路は、共通のキュービットに適用される1つまたは複数のゲートを各々含み、
    前記第1の量子サブ回路および前記第2の量子サブ回路は、もつれ状態のテンソル・インデックスを使用して互いに独立してシミュレートされる、コンピュータ・プログラム製品。
  10. 1つまたは複数のプロセッサによって実行される、複数の量子ゲートを備える量子回路をシミュレートするための方法であって、
    複数の段を含む前記量子回路のデジタル記述を受信することと、
    初期段の各キュービットに対してサブ回路を作成して複数のサブ回路を生成することと、
    接続される橋渡ししないゲートを、接続される橋渡ししないゲートがそれ以上利用できなくなるまで、前記複数の段のうちの1つまたは複数の後続の段から前記複数のサブ回路へと反復的に追加することと、
    前記複数のサブ回路のうちの2つ以上のサブ回路に接続されている、橋渡しするゲートを選択することと、
    前記2つ以上のサブ回路をもつれ状態にするかどうかを決定することと、
    前記2つ以上のサブ回路をもつれ状態にするよう決定することに応答して、前記橋渡しするゲートを前記2つ以上のサブ回路のうちの一方にのみ追加することと、を含む、方法。
  11. 前記2つ以上のサブ回路をもつれ状態にしないよう決定することに応答して、新しいサブ回路を作成し、前記橋渡しするゲートを前記新しいサブ回路に割り当てることを更に含む、請求項10に記載の方法。
  12. 前記新しいサブ回路を前記複数のサブ回路に追加することを更に含む、請求項10に記載の方法。
  13. 前記2つ以上のサブ回路を閉じる、請求項10に記載の方法。
  14. 全てのゲートがサブ回路に割り当てられたかどうかを判定することを更に含む、請求項10に記載の方法。
  15. 前記複数のサブ回路についてサブ回路依存度を決定することを更に含む、請求項10に記載の方法。
  16. 前記サブ回路依存度に従って前記量子回路を実行することを更に含む、請求項15に記載の方法。
  17. コンピュータ・プログラム製品であって、
    1つまたは複数のコンピュータ可読記憶媒体と、前記1つまたは複数のコンピュータ可読記憶媒体に保存されているプログラム命令と、を含み、前記プログラム命令は、
    複数の段を含む量子回路のデジタル記述を受信し、
    初期段の各キュービットに対してサブ回路を作成して複数のサブ回路を生成し、
    接続される橋渡ししないゲートを、接続される橋渡ししないゲートがそれ以上利用できなくなるまで、前記複数の段のうちの1つまたは複数の後続の段から前記複数のサブ回路へと反復的に追加し、
    前記複数のサブ回路のうちの2つ以上のサブ回路に接続されている、橋渡しするゲートを選択し、
    前記2つ以上のサブ回路をもつれ状態にするかどうかを決定し、
    前記2つ以上のサブ回路をもつれ状態にするよう決定することに応答して、前記橋渡しするゲートを前記2つ以上のサブ回路のうちの一方にのみ追加する
    ための命令を含む、コンピュータ・プログラム製品。
  18. 1つまたは複数のプロセッサによって実行される、複数の量子ゲートを備える量子回路をシミュレートするための方法であって、
    量子ゲートおよび対応するキュービットを含む量子サブ回路の組のデジタル記述を受信することと、
    各キュービットにおよび非対角ユニタリ・ゲートごとの出力に、個別のテンソル・インデックスを割り当てることと、
    テンソル・インデックス変数を各対角ユニタリ・ゲートの入力から出力へと伝播することと、
    前記割り当てられたテンソル・インデックスを使用して各量子サブ回路を実行することと、を含む、方法。
  19. 各量子サブ回路を実行することは、前記量子サブ回路中の各ゲートについてテンソルの積を構成することを含む、請求項18に記載の方法。
  20. 各量子サブ回路を実行することは、前記割り当てられたテンソル・インデックスを使用して前記テンソルの積を演算することを含む、請求項19に記載の方法。
  21. 各量子サブ回路を実行することは、前記量子サブ回路の内部のテンソル・インデックスを合計することを含む、請求項18に記載の方法。
  22. 前記量子サブ回路の組についてサブ回路依存度を決定することを更に含む、請求項18に記載の方法。
  23. 前記サブ回路依存度に従って前記量子回路を実行することを更に含む、請求項21に記載の方法。
  24. コンピュータ・プログラム製品であって、
    1つまたは複数のコンピュータ可読記憶媒体と、前記1つまたは複数のコンピュータ可読記憶媒体に保存されているプログラム命令と、を含み、前記プログラム命令は、
    量子ゲートおよび対応するキュービットを含む量子サブ回路の組のデジタル記述を受信し、
    各キュービットにおよび非対角ユニタリ・ゲートごとの出力に、個別のテンソル・インデックスを割り当て、
    テンソル・インデックス変数を各対角ユニタリ・ゲートの入力から出力へと伝播し、
    前記割り当てられたテンソル・インデックスを使用して各量子サブ回路を実行する
    ための命令を含む、コンピュータ・プログラム製品。
JP2020515693A 2017-09-22 2017-12-01 量子回路をシミュレートする方法およびコンピュータ・プログラム Active JP7100817B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/713,323 US11250190B2 (en) 2017-09-22 2017-09-22 Simulating quantum circuits
US15/713,323 2017-09-22
PCT/IB2017/057566 WO2019058161A1 (en) 2017-09-22 2017-12-01 SIMULATION OF QUANTUM CIRCUITS

Publications (2)

Publication Number Publication Date
JP2020534603A true JP2020534603A (ja) 2020-11-26
JP7100817B2 JP7100817B2 (ja) 2022-07-14

Family

ID=65806798

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020515693A Active JP7100817B2 (ja) 2017-09-22 2017-12-01 量子回路をシミュレートする方法およびコンピュータ・プログラム

Country Status (6)

Country Link
US (2) US11250190B2 (ja)
JP (1) JP7100817B2 (ja)
CN (2) CN116720461A (ja)
DE (1) DE112017007826T5 (ja)
GB (1) GB2579008A (ja)
WO (1) WO2019058161A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11250190B2 (en) 2017-09-22 2022-02-15 International Business Machines Corporation Simulating quantum circuits
JP7570639B2 (ja) 2021-07-16 2024-10-22 日本電信電話株式会社 情報処理装置、シミュレート方法およびプログラム

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4421647A2 (en) * 2017-03-10 2024-08-28 Rigetti & Co, LLC Modular control in a quantum computing system
US10838792B1 (en) * 2018-03-07 2020-11-17 Quantum Benchmark, Inc. Systems and methods for reconstructing noise from pauli fidelities
US11334693B1 (en) * 2018-03-07 2022-05-17 Keysight Technologies Canada Inc. Systems and methods for optimizing quantum computers
US11100417B2 (en) * 2018-05-08 2021-08-24 International Business Machines Corporation Simulating quantum circuits on a computer using hierarchical storage
US11568293B2 (en) * 2018-07-18 2023-01-31 Accenture Global Solutions Limited Quantum formulation independent solver
US11049038B2 (en) 2019-03-29 2021-06-29 Alibaba Group Holding Limited Methods and systems for optimizing quantum circuits
WO2020204741A1 (en) * 2019-03-29 2020-10-08 Huawei Technologies Co., Ltd Device and methods for a quantum circuit simulator
US11048839B2 (en) 2019-03-29 2021-06-29 International Business Machines Corporation Adaptive error correction in quantum computing
US11551126B2 (en) * 2019-04-08 2023-01-10 International Business Machines Corporation Quantum data post-processing
CN111914378B (zh) * 2019-04-22 2024-05-07 本源量子计算科技(合肥)股份有限公司 一种单振幅量子计算模拟方法及装置
WO2020223850A1 (en) * 2019-05-05 2020-11-12 Supreme Qi Pte Ltd System and method for quantum circuit simulation
US11699089B2 (en) * 2019-05-21 2023-07-11 Accenture Global Solutions Limited Quantum recommendation system
US10908885B2 (en) * 2019-06-11 2021-02-02 IonQ, Inc. Quantum compiler
CN110428710B (zh) * 2019-07-30 2021-03-23 安徽问天量子科技股份有限公司 一种量子纠缠源的虚拟仿真方法
US20210150403A1 (en) * 2019-11-15 2021-05-20 Board Of Regents, The University Of Texas System Methods and Circuits for Copying Qubits and Quantum Representation of Images and Signals
CN111027704B (zh) * 2019-12-16 2024-05-31 北京百度网讯科技有限公司 量子资源估计方法、装置和电子设备
US20230040234A1 (en) * 2019-12-22 2023-02-09 The Governing Council Of The University Of Toronto Method and system for efficient quantum optical design using non-linear mappings
CN113128015B (zh) * 2019-12-31 2023-04-07 合肥本源量子计算科技有限责任公司 预估单振幅模拟量子计算所需资源的方法和系统
US11568297B2 (en) 2020-03-05 2023-01-31 International Business Machines Corporation Efficient synthesis of a random uniformly distributed Clifford unitary
US11861456B2 (en) * 2020-05-28 2024-01-02 Quantinuum Llc Apparatuses, computer-implemented methods, and computer program products for instruction compilation for at least one time slice in a one-dimensional quantum computing environment
US11200360B1 (en) 2020-06-10 2021-12-14 International Business Machines Corporation Synthesis of a quantum circuit
CN111738448B (zh) * 2020-06-23 2021-09-28 北京百度网讯科技有限公司 量子线路模拟方法、装置、设备及存储介质
US11868846B1 (en) * 2020-06-23 2024-01-09 Amazon Technologies, Inc. Quantum computing simulation using comparative rejection sampling
US20220067245A1 (en) * 2020-08-12 2022-03-03 Microsoft Technology Licensing, Llc Low-cost linear orders for quantum-program simulation
CN114462611B (zh) * 2020-11-09 2023-03-14 北京百度网讯科技有限公司 用于估计量子门构建所需资源的方法及相关装置
CN112488317B (zh) * 2020-11-27 2021-09-21 北京百度网讯科技有限公司 量子控制中的仿真方法、装置、经典计算机及存储介质
CN112257022A (zh) * 2020-12-16 2021-01-22 之江实验室 基于量子测量的正实值概率幅度的快速测量估计方法
CN114692880B (zh) * 2020-12-31 2023-09-05 本源量子计算科技(合肥)股份有限公司 一种量子线路中量子态振幅的模拟方法及装置
CN114764549B (zh) * 2020-12-31 2023-04-25 合肥本源量子计算科技有限责任公司 基于矩阵乘积态的量子线路模拟计算方法、装置
CN113010302B (zh) * 2021-02-02 2022-11-01 中国人民解放军战略支援部队信息工程大学 量子-经典混合架构下多任务调度方法、系统及量子计算机系统架构
CN115271079B (zh) * 2021-04-29 2024-07-16 本源量子计算科技(合肥)股份有限公司 量子线路的替换方法、装置、介质及量子计算机操作系统
CN115526324B (zh) * 2021-06-09 2024-09-03 山东浪潮科学研究院有限公司 量子计算云平台中cnot门可翻转功能的实现方法
CN113569511A (zh) * 2021-06-11 2021-10-29 清华大学 一种量子电路的模拟方法及装置
WO2022267854A1 (zh) * 2021-06-23 2022-12-29 合肥本源量子计算科技有限责任公司 量子计算任务处理方法、系统、装置及操作系统
CN113592094B (zh) * 2021-08-04 2022-06-07 腾讯科技(深圳)有限公司 量子态制备电路生成方法、超导量子芯片
US20230047145A1 (en) * 2021-08-11 2023-02-16 Uchicago Argonne, Llc Quantum simulation
CN115730669B (zh) * 2021-08-30 2024-06-14 本源量子计算科技(合肥)股份有限公司 一种量子线路的处理方法、装置及量子计算机操作系统
CN115936132B (zh) * 2021-08-31 2024-08-13 本源量子计算科技(合肥)股份有限公司 一种量子电路的模拟方法及相关装置
CN115730670B (zh) * 2021-08-31 2024-07-16 本源量子计算科技(合肥)股份有限公司 模式文件的生成方法、装置、介质及电子装置
CN113723613B (zh) * 2021-08-31 2022-05-06 北京百度网讯科技有限公司 对量子电路进行模拟的方法及装置
CN113962397B (zh) * 2021-09-17 2024-08-30 浪潮集团有限公司 一种单比特多量子门融合优化的方法
WO2023068464A1 (ko) * 2021-10-21 2023-04-27 서울대학교산학협력단 저장장치를 이용한 양자 회로 시뮬레이션 시스템 및 그 동작 방법
CN116048458B (zh) * 2021-10-28 2024-06-14 本源量子计算科技(合肥)股份有限公司 基于量子计算的数值划分方法、装置、设备及存储介质
US20230197193A1 (en) * 2021-12-20 2023-06-22 Optum Services (Ireland) Limited Quantum computing techniques for determining gene predictors in gene regulatory networks
WO2023177846A1 (en) * 2022-03-18 2023-09-21 University Of Pittsburgh - Of The Commonwealth System Of Higher Education Systems and methods for optimizing quantum circuit simulation using graphics processing units
WO2024167659A2 (en) * 2023-01-27 2024-08-15 ColdQuanta, Inc. Managing processing of quantum circuits

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013513181A (ja) * 2009-12-08 2013-04-18 ユニバーシティ オブ ソウル インダストリー コーポレーション ファウンデーション 量子カルノー図
US20140040849A1 (en) * 2012-08-06 2014-02-06 Microsoft Corporation Quantum gate optimizations
WO2017127923A1 (en) * 2016-01-26 2017-08-03 Mosca Michele Decoding-based method for quantum circuit optimization

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060123363A1 (en) * 2004-12-07 2006-06-08 Williams Colin P Method and apparatus for automated design of quantum circuits
EP1672569A1 (en) 2004-12-20 2006-06-21 STMicroelectronics S.r.l. A method of performing a quantum algorithm for simulating a genetic algorithm
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
CN1959708A (zh) 2005-11-01 2007-05-09 沈诗昊 高效量子线路仿真方法与系统
US8972237B2 (en) 2012-08-06 2015-03-03 Microsoft Technology Licensing, Llc Optimizing quantum simulations by intelligent permutation
WO2015179753A1 (en) 2014-05-23 2015-11-26 The Regents Of The University Of Michigan Methods for general stabilizer-based quantum computing simulation
US9852242B2 (en) 2014-09-05 2017-12-26 Synopsys, Inc. Atomic scale grid for modeling semiconductor structures and fabrication processes
WO2016081788A1 (en) 2014-11-21 2016-05-26 Microsoft Technology Licensing, Llc Method for efficient implementation of diagonal operators over clifford+t basis
CN104750945B (zh) 2015-04-17 2017-11-17 南通大学 一种量子电路仿真平台
US10452989B2 (en) 2015-05-05 2019-10-22 Kyndi, Inc. Quanton representation for emulating quantum-like computation on classical processors
EP3304363B1 (en) * 2015-06-08 2021-07-21 Microsoft Technology Licensing, LLC System for reversible circuit compilation with space constraint, method and program
US9767238B2 (en) 2015-07-14 2017-09-19 Northrop Grumman Systems Corporation Reciprocal quantum logic (RQL) circuit simulation system
US10671937B2 (en) * 2016-06-08 2020-06-02 D-Wave Systems Inc. Systems and methods for quantum computation
WO2018064535A1 (en) * 2016-09-30 2018-04-05 Rigetti & Co., Inc. Simulating quantum systems with quantum computation
US10332024B2 (en) * 2017-02-22 2019-06-25 Rigetti & Co, Inc. Modeling superconducting quantum circuit systems
US11250190B2 (en) 2017-09-22 2022-02-15 International Business Machines Corporation Simulating quantum circuits

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013513181A (ja) * 2009-12-08 2013-04-18 ユニバーシティ オブ ソウル インダストリー コーポレーション ファウンデーション 量子カルノー図
US20140040849A1 (en) * 2012-08-06 2014-02-06 Microsoft Corporation Quantum gate optimizations
WO2017127923A1 (en) * 2016-01-26 2017-08-03 Mosca Michele Decoding-based method for quantum circuit optimization

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KHAMMASSI, N. ET AL., QX: A HIGH-PERFORMANCE QUANTUM COMPUTER SIMULATION PLATFORM [ONLINE], JPN6021023425, 15 May 2017 (2017-05-15), ISSN: 0004530466 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11250190B2 (en) 2017-09-22 2022-02-15 International Business Machines Corporation Simulating quantum circuits
JP7570639B2 (ja) 2021-07-16 2024-10-22 日本電信電話株式会社 情報処理装置、シミュレート方法およびプログラム

Also Published As

Publication number Publication date
CN111052122B (zh) 2023-06-23
CN111052122A (zh) 2020-04-21
JP7100817B2 (ja) 2022-07-14
US20220164506A1 (en) 2022-05-26
US11250190B2 (en) 2022-02-15
DE112017007826T5 (de) 2020-04-23
GB2579008A (en) 2020-06-03
GB202004044D0 (en) 2020-05-06
US20190095561A1 (en) 2019-03-28
CN116720461A (zh) 2023-09-08
WO2019058161A1 (en) 2019-03-28

Similar Documents

Publication Publication Date Title
JP7100817B2 (ja) 量子回路をシミュレートする方法およびコンピュータ・プログラム
US11093669B2 (en) Method and system for quantum computing
JP7349175B2 (ja) 量子コンピュータの命令を最適化するシステム及び方法
Pan et al. Simulation of quantum circuits using the big-batch tensor network method
US11100417B2 (en) Simulating quantum circuits on a computer using hierarchical storage
WO2022153290A1 (en) Quantum circuit modeling
Charara et al. Tile low-rank GEMM using batched operations on GPUs
Zheng et al. OpenGraphGym: A parallel reinforcement learning framework for graph optimization problems
JP7381723B2 (ja) 量子操作実行方法及び装置、量子操作の制御波形の生成方法及び装置、量子操作チップ、並びにコンピュータ装置及びプログラム
US20210049496A1 (en) Device and methods for a quantum circuit simulator
Marker et al. Code generation and optimization of distributed-memory dense linear algebra kernels
Azad et al. Circuit centric quantum architecture design
Zaporozhets et al. Bacterial foraging optimization for VLSI fragments placement
Zheng et al. A Distributed-GPU Deep Reinforcement Learning System for Solving Large Graph Optimization Problems
EP3903242B1 (en) Device and methods for a quantum circuit simulator
Foster Accelerating homomorphic encryption in the cloud environment through high-level synthesis and reconfigurable resources
US9355363B2 (en) Systems and methods for virtual parallel computing using matrix product states
Paul et al. Application of CUDA in the Boolean domain for the unate covering problem
Schedel Testing the Quantum Approximate Optimization Algorithm using QUBO Formulations of Max-Cut and Knapsack Problems on Noisy and Noiseless Quantum Simulators
Ferreira Feynman path-sum quantum computer simulator
Bulling Advancing quantum many-body simulations with improved quantum cluster algorithms and modern software development
Desmet et al. Simulation of quantum computations in Lisp
CN117829299A (zh) 一种量子电路模拟方法、装置、介质及电子装置
CN116894494A (zh) 一种变分量子电路的优化方法、装置、介质及电子装置
Mandelbaum et al. You need 100 qubits to accelerate discovery with quantum

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200420

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200624

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210616

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210622

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20210916

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210921

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220302

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220502

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: 20220607

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20220607

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220615

R150 Certificate of patent or registration of utility model

Ref document number: 7100817

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150