JP2022547989A - 量子コンピュータのための変分アルゴリズムにより部分コンパイルするシステム及び方法 - Google Patents
量子コンピュータのための変分アルゴリズムにより部分コンパイルするシステム及び方法 Download PDFInfo
- Publication number
- JP2022547989A JP2022547989A JP2022515880A JP2022515880A JP2022547989A JP 2022547989 A JP2022547989 A JP 2022547989A JP 2022515880 A JP2022515880 A JP 2022515880A JP 2022515880 A JP2022515880 A JP 2022515880A JP 2022547989 A JP2022547989 A JP 2022547989A
- Authority
- JP
- Japan
- Prior art keywords
- quantum
- blocks
- circuit
- circuits
- gate
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
- G06N10/60—Quantum algorithms, e.g. based on quantum optimisation, quantum Fourier or Hadamard transforms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/82—Architectures of general purpose stored program computers data or demand driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
- G06N10/40—Physical realisations or architectures of quantum processors or components for manipulating qubits, e.g. qubit coupling or qubit control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Evolutionary Computation (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computational Mathematics (AREA)
- Artificial Intelligence (AREA)
- Superconductor Devices And Manufacturing Methods Thereof (AREA)
Abstract
本開示の量子コンピュータシステムは、(i)反復毎に計算とコンパイルとをインターリーブする変分アルゴリズムのための量子プログラムを表すゲート回路を受け取るステップと、(ii)ゲート回路内の複数のブロックを識別するステップであって、複数のブロックの各ブロックは、ゲート回路からのサブゲート回路を含み、ゲート回路の1以上の残余サブゲート回路を複数のブロックの外側に残す、該ステップと、(iii)複数のブロックの各ブロックをパルス生成プログラムでプリコンパイルして、複数のプリコンパイルされたブロックを生成するステップであって、各プリコンパイルされたブロックは、関連するブロックを量子プロセッサ上で実行するように構成された制御パルスを含む、該ステップと、(iv)プリコンパイルされたブロックを実行中にスタティックとして使用して、量子プロセッサ上で量子プログラムを反復的に実行するステップであって、各反復実行時に、古典的プロセッサ上で1以上の残余サブゲート回路を再コンパイルする、該ステップと、を実行するコンピュータ実行可能命令を格納した古典的メモリを備える。【選択図】図1
Description
(関連出願の相互参照)
本出願は、2019年9月13日に出願された「量子コンピュータのための変分アルゴリズムにより部分コンパイルするシステム及び方法(System and method of partial compliation with variational algorithms for quantum computers)」という標題の米国仮特許出願第62/900、120号に基づく優先権を主張するものである。上記出願の内容の全体は、参照により本明細書中に援用される。
本出願は、2019年9月13日に出願された「量子コンピュータのための変分アルゴリズムにより部分コンパイルするシステム及び方法(System and method of partial compliation with variational algorithms for quantum computers)」という標題の米国仮特許出願第62/900、120号に基づく優先権を主張するものである。上記出願の内容の全体は、参照により本明細書中に援用される。
(連邦政府による資金提供を受けた研究開発の記載)
本発明は、米国国立科学財団から交付された助金成番号CCF1730449及びPHY1818914の下に、米国政府の支援を受けてなされた。米国政府は本発明において一定の権利を有する。
本発明は、米国国立科学財団から交付された助金成番号CCF1730449及びPHY1818914の下に、米国政府の支援を受けてなされた。米国政府は本発明において一定の権利を有する。
(技術分野)
本開示は、一般に、量子コンピューティングに関し、より詳細には、量子コンピュータのための変分アルゴリズムにより部分コンパイルするシステム及び方法に関する。
本開示は、一般に、量子コンピューティングに関し、より詳細には、量子コンピュータのための変分アルゴリズムにより部分コンパイルするシステム及び方法に関する。
量子コンピューティングの近年の発展により、量子コンピュータは、古典的な扱いにくい問題の解決に近づいた。既存の量子プログラミング言語及びコンパイラは、1量子ビット及び2量子ビット(「qubit」)ゲートから構成される量子アセンブリ言語を使用して、量子コンピュータ上でプリミティブな演算を準備及び実行している。ハードウェア及びソフトウェアにおける近年の進歩としては、IBM社製の50量子ビット量子マシンやGoogle社製の72量子ビットマシンなどのデバイス、並びに、量子近似最適化アルゴリズム(QAOA)や変分量子固有値ソルバー(VQE)などのノイズの多い中間規模量子(「NISQ」)マシン用に調整された古典・量子ハイブリッドアルゴリズムが挙げられる。
これらのNISQマシンのための最も有望なアルゴリズムのいくつかは、変分アルゴリズムである。量子コンピューティングにおける従来の変分アルゴリズムは、古典的な最適化と量子ハードウェアとを組み合わせて、各候補解の品質を評価する。最近の研究では、勾配上昇パルス工学(Gradient ascent pulse engineering:GRAPE)を用いて、量子プログラムを、高度に最適化された機械制御パルスに変換することにより、プログラムの実行時間の大幅な短縮を実現した。このような最適化は、従来のコンピューティングにおいても一般的に重要であるが、量子コンピューティングでは、これらのマシンは、失敗するまでの短い実行時間しかサポートできないため、はるかに重要になる。
しかしながら、GRAPEは、コンパイルのレイテンシが大きいという問題がある。例えば、量子ビットを4個しか有していない回路でGRAPE制御を実行した場合、最新のハードウェアとグラフィックス・プロセッシング・ユニット(GPU)アクセラレーションを使用しても、何分もかかることがある。回路が長くなったり(例えば、ゲートの数が多くなったり)、規模が大きくなったり(例えば、量子ビットの数が多くなったり)すると、コンパイルに数時間または数日かかることがある。NISQ時代には、数百個または数千個の量子ビットを有する量子ハードウェアが予想される。実行時に計算がコンパイルとインターリーブされる変分アルゴリズムでは、実行中に再コンパイルが何度も行われるため、このような高いコンパイルコストはさらなる負担となる。
したがって、変分アルゴリズムのコンパイル時間を改善するコンパイルストラテジーが求められている。
一態様では、量子プロセッサ上で命令をコンパイルして実行する量子コンピュータシステムが提供される。本開示の量子コンピュータシステムは、複数の量子ビットを含む量子プロセッサを備える。本開示の量子コンピュータシステムはまた、量子プログラムを格納した古典的メモリを備える。量子プログラムは、複数の命令をソース言語で定義している。本開示の量子コンピュータシステムは、古典的メモリに通信可能に接続された古典的プロセッサをさらに備える。古典的メモリは、古典的プロセッサによって実行されたときに、古典的プロセッサに実行させるコンピュータ実行可能命令を格納している。コンピュータ実行可能命令は、反復毎に計算とコンパイルとをインターリーブする変分アルゴリズムのための量子プログラムを表すゲート回路を受け取るステップを含む。また、コンピュータ実行可能命令は、ゲート回路内の複数のブロックを識別するステップをさらに含む。複数のブロックの各ブロックは、ゲート回路からのサブゲート回路を含み、ゲート回路の1以上の残余サブゲート回路を複数のブロックの外側に残す。また、コンピュータ実行可能命令は、複数のブロックの各ブロックをパルス生成プログラムでプリコンパイルして、複数のプリコンパイルされたブロックを生成するステップをさらに含む。各プリコンパイルされたブロックは、関連するブロックを量子プロセッサ上で実行するように構成された制御パルスを含む。また、コンピュータ実行可能命令は、プリコンパイルされたブロックを実行中にスタティックとして使用して、量子プロセッサ上で量子プログラムを反復的に実行するステップであって、各反復実行時に、古典的プロセッサ上で1以上の残余サブゲート回路を再コンパイルする、該ステップをさらに含む。
別の実施形態では、量子コンピュータ上で命令をコンパイルして実行するコンピュータ実施方法が提供される。本開示の方法は、古典的メモリと通信する古典的プロセッサを使用して実施される。本開示の方法は、変分アルゴリズムのための量子プログラムを表すゲート回路を受け取るステップを含む。また、本開示の方法は、ゲート回路内の複数のブロックを識別するステップをさらに含む。複数のブロックの各ブロックは、ゲート回路からのサブゲート回路を含み、ゲート回路の1以上の残余サブゲート回路を複数のブロックの外側に残す。また、本開示の方法は、複数のブロックの各ブロックを勾配上昇パルス工学を用いてプリコンパイルして、複数のプリコンパイルされたブロックを生成するステップをさらに含む。各プリコンパイルされたブロックは、関連するブロックを量子プロセッサ上で実行するように構成された制御パルスを含む。また、本開示の方法は、プリコンパイルされたブロックを実行中にスタティックとして使用して、量子プロセッサ上で量子プログラムを反復的に実行するステップであって、各反復実行時に、古典的プロセッサ上で1以上の残余サブゲート回路を再コンパイルする、該ステップをさらに含む。
さらに別の実施形態では、少なくとも1つの古典的プロセッサによって実行されたときに、該プロセッサに実行させるコンピュータ実行可能命令が記憶されたコンピュータ読み取り可能な記憶媒体が提供される。コンピュータ実行可能命令は、変分アルゴリズムのための量子プログラムを表すゲート回路を受け取るステップを含む。また、コンピュータ実行可能命令は、ゲート回路内の複数のブロックを識別するステップをさらに含む。複数のブロックの各ブロックは、ゲート回路からのサブゲート回路を含み、ゲート回路の1以上の残余サブゲート回路を複数のブロックの外側に残す。また、コンピュータ実行可能命令は、複数のブロックの各ブロックを勾配上昇パルス工学を用いてプリコンパイルして、複数のプリコンパイルされたブロックを生成するステップをさらに含む。各プリコンパイルされたブロックは、関連するブロックを量子プロセッサ上で実行するように構成された制御パルスを含む。また、コンピュータ実行可能命令は、プリコンパイルされたブロックを実行中にスタティックとして使用して、量子プロセッサ上で量子プログラムを反復的に実行するステップであって、各反復実行時に、古典的プロセッサ上で1以上の残余サブゲート回路を再コンパイルする、該ステップをさらに含む。
以下の詳細な説明は、本開示の実施形態の例を説明するものであり、限定するものではない。本開示は、量子コンピューティングに一般的に適用することを意図している。
既存の量子プログラミング言語やコンパイラは、1量子ビットゲート及び2量子ビットゲートからなる量子アセンブリ言語を使用する。量子コンパイラフレームワークが、この量子アセンブリ言語を、制御パルス、一般的には、特定の量子コンピュータ装置上で指定された計算を実行する電気信号に変換する。このような量子プログラム(「非変分量子アルゴリズム」)は、一般的に、一度コンパイルされた後、量子コンピュータ装置上で実行される。一般的な非変分量子アルゴリズムは、コンパイル時に完全に指定されるので、実行前に静的コンパイルツールによって完全に最適化することができる。しかしながら、変分アルゴリズム(または「ハイブリッド量子古典アルゴリズム」)は、計算とコンパイルとをインターリーブするため、実行時に再コンパイルを必要とする(例えば、解に向けてプログラムを反復するとき)。変分アルゴリズムの各反復は、前の反復の結果に依存する。このように、コンパイルは計算とインターリーブされる。変分アルゴリズムの小さなインスタンスでさえ、一般的に数千回の反復を実行するので、各反復のコンパイルレイテンシは大きな制約となり、従来の非変分量子アルゴリズムからの大きな隔たりが生じる。このような変分アルゴリズムの例には、分子基底状態推定、MAXCUT近似、及び素因数分解が含まれる。非変分アルゴリズムのGRAPEコンパイルは、ゲートベースのコンパイルよりも優れていることが知られているが、GRAPEベースのコンパイルは、コンパイル時間にかなりのコストを要する。変分アルゴリズムでは、GRAPEベースのコンパイルは、反復的な再コンパイルによって拡大される。
これらの問題に対処するために、量子コンピュータシステム及びそれに関連する方法が本明細書で開示される。本開示の量子コンピュータシステムは、量子プロセッサ上で実行する量子プログラムを準備し最適化するように構成されたコンパイルエンジン(例えば、古典的コンピュータ装置上で実行される)を含む。いくつかの例では、量子プロセッサは、量子プログラムの実行に使用するための数十個または数百個の量子ビットを有し、将来は、数千個の量子ビットを有することが予想される。コンパイルエンジンは、実行時にコンパイルレイテンシを改善する(例えば、実行時のコンパイル効率の向上、実行時のコンパイル時間の短縮)ことができるランタイム前の部分コンパイルストラテジーを用いて、量子プロセッサ上で変分アルゴリズムを準備し実行するように構成される。
本明細書で使用するとき、「古典的」という用語は、従来のトランジスタベースのコンピューティング技術を指す。この用語は、必要に応じて、従来のコンピュータ装置またはそれに関連するハードウェア、ソフトウェア、アルゴリズムなどを、「量子」コンピュータと区別するために使用される。量子コンピュータまたはそれに関連するハードウェア、ソフトウェア、アルゴリズムなどは一般的に、量子力学の量子現象に依存して処理演算を実行するという点で、古典的コンピュータ装置と区別される。古典的コンピュータの例としては、従来のパーソナルコンピュータ、サーバ、タブレット、スマートフォン、x86ベースプロセッサ、ランダムアクセスメモリ(「RAM」)モジュールなどが挙げられる。量子コンピュータの例としては、IBM社製の「IBM Q」装置、Google社製の「Bristlecone」量子コンピュータ、Intel社製の「Tangle Lake」量子コンピュータ、及び、D-Wave社製の「2000Q」などが挙げられる。「古典的ビット」または「cbit」という用語は、本明細書では、古典的コンピュータにおけるビットを指すために使用される。「量子ビット」という用語は、本明細書では、量子コンピュータにおける量子ビットを指すために使用される。
図1は、量子コンピュータ装置130上で実行する命令を最適化するための例示的な量子コンピュータシステム100を示す図である。量子コンピュータシステム100は、量子コンピュータ装置130上で実行する変分量子プログラム112を準備(例えば、コンパイル及び最適化)するように構成された制御コンピュータ装置110を含む。制御コンピュータ装置110は、古典的プロセッサ命令を実行するように構成された古典的プロセッサ102(例えば、中央処理装置(「CPU」)、x86ベースのプロセッサなど)と、古典的メモリ104(例えば、ランダムアクセスメモリ(「RAM」)、メモリSIMM、DIMMなど、メモリの古典的ビットを含むもの)とを含む。量子コンピュータ装置130は、変分量子プログラム112を実行する量子プロセッサ132を表す複数の量子ビット134を含む。例示的な実施形態では、変分量子プログラム112は、実行時にコンパイルと計算とをインターリーブする変分量子プログラムであり、量子プロセッサ132は、50個または100個の量子ビットを含む。なお、本開示は、数十個、数百個、またはそれ以上の個数の量子ビット134を有する量子プロセッサに適用可能であり、かつ有益であると考えられることを理解されたい。
量子計算の基本単位は、量子ビット、または量子ビット134である。古典的ビット(cbit)とは対照的に、量子ビット(qubit)は、本明細書では、|0〉及び|1〉として表記される、論理状態が重なり合った状態で存在することができる。量子ビットの一般的な量子状態は、下記のように表される。
式中、α、βは、|α|2+|β|2=1の複素係数である。0/1基底で測定すると、上記の量子状態は、それぞれ、|α|2及び|β|2の確率で、|0〉または|1〉に崩壊する。量子ビット134は、ブロッホ球と呼ばれる3次元球上の点として可視化することができる。量子ビット134は、イオントラップ、量子ドットシステム、及び例示的な本実施形態では超電導回路を含む、様々な量子情報処理(QIP)プラットフォーム上で実現され得る。量子論理状態の数は、量子プロセッサ132内の量子ビット134の数とともに指数関数的に増加する。例えば、3個の量子ビット134を有するシステムでは、8つの論理状態(|000〉、|001〉、|01〉、|011〉、・・・、|111〉)を重ね合わせることができる。この特性は、古典的計算と比べて量子的に高速化するための基礎となる。換言すれば、指数関数的な数の相関論理状態を、線形数の量子ビット134を用いて、量子コンピュータシステム100によって同時に記憶し処理することができる。
量子アルゴリズムは、量子回路で記述することができる。量子コンパイル中に、変分量子プログラム112は、まず、論理量子ゲートと呼ばれる1量子ビット及び2量子ビットの離散的な量子演算のセットに分解される。これらの量子ゲートは、ユニタリ行列として行列形式で表される。1量子ビットゲートは、ブロッホ球の特定の軸に沿った回転に対応する。量子ISAの例では、1量子ビットゲートのセットは、ブロック球のx軸、y軸、及びz軸に沿った回転を含む。これらのゲートは、本明細書では、それぞれ、Rxゲート、Ryゲート、及びRzゲートと表記する。さらに、量子ISAは、対角x+z軸を中心とする回転に対応するアダマールゲートも含み得る。量子ISAにおける2量子ビット論理ゲートの一例は、制御NOT(CNOT)ゲートである。このCNOTゲートは、制御量子ビットが|1〉の場合にはターゲットの量子ビットの状態を反転させ、制御量子ビットが|0〉の場合にはターゲットの量子ビットの状態を変化させない。例えば、CNOTゲートは、|10〉を|11〉に変化させ、|11〉を|10〉に変化させ、それ以外の他の論理状態を保持する。
さらに、変分量子プログラム112のコンパイル中に一般的に使用される一般的な論理アセンブリ命令は、使用され得る物理的ハードウェアの種類のバリエーションを直接考慮せずに設計されていることを理解されたい。そのため、論理命令と、特定のQIPプラットフォームの性能との間に、しばしばミスマッチが生じる。例えば、一部のQIPプラットフォームでは、その特定の物理プラットフォームにCXゲートを直接実装する方法が明確でない場合がある。したがって、CXゲートは、標準的なゲートベースのコンパイルにおいて、複数の物理ゲートにさらに分解してもよい。様々なアーキテクチャのための他の例示的な物理量子ゲートとして、例えば、量子ドットなどのハイゼンベルグ相互作用ハミルトニアンを有するプラットフォームでは、直接実装可能な2量子ビット物理ゲートは、√SWAPゲート(2回適用したときにSWAPを実行する)である。ジョセフソン磁束量子ビットの超伝導システムやNMR量子システムなどの、ZZ相互作用ハミルトニアンを有するプラットフォームでは、物理ゲートは、CPhaseゲートであり、単一量子ビットの回転まではCXゲートと同一である。容量結合ジョセフソン電荷量子ビット(例えば、トランスモン量子ビット)などの、XY相互作用ハミルトニアンを有するプラットフォームでは、2量子ビット物理ゲートは、iSWAPゲートである。双極子鎖相互作用を有するイオンプラットフォームでは、物理的2量子ビットゲートは、幾何位相ゲート及びXXゲートの2つが一般的である。
量子プロセッサ132は、外部の物理的操作によって、論理状態が跨る空間内の任意の状態に連続的に駆動することができる。制御フィールドと呼ばれる物理演算は、基礎となるシステムに特有のものであり、制御フィールド及びシステムの特性により、ハミルトニアンと呼ばれる固有の時間依存性の量が制御される。ハミルトニアンにより、量子状態の発展経路が決定される。例えば、例示の量子コンピュータ装置130などの超伝導システムでは、マイクロ波電気信号を印加することによって、量子ビット134を駆動してブロッホ球上で連続的に回転させることができる。また、マイクロ波信号の強度を変化させることによって、量子ビット134の回転速度を操作することができる。ハミルトニアンシステムをリアルタイムで操作する能力により、量子コンピュータシステム100は、関連する制御フィールドの精密な制御を通じて、量子ビット134を目的の量子状態に導くことができる。したがって、量子コンピュータは、量子ビット134の最終測定時にハミルトニアンが高確率で一致するように発展させた量子システムを構築することによって達成することができる。量子制御の文脈において、量子ゲートは、量子プロセッサ132上で実行される予めプログラムされた制御フィールドのセットと見なすことができる。
動作中、制御コンピュータ装置110は、量子アルゴリズムを実行し、可能な限り効率的な量子回路を作成しようと試みる。効率は、回路幅(例えば、量子ビット数)、及び深さ(例えば、クリティカルパスの長さ、または回路のランタイム)の点であり得る。いくつかの実施形態では、コンパイルエンジン114は、様々な回路アイデンティティ(例えば、CXゲートやアダマールゲートの積極的なキャンセル)を適用するIBM Qiskitトランスパイラを使用して、様々な回路またはサブ回路を最適化する。いくつかの実施形態では、コンパイルエンジン114はまた、回路サイズをさらに縮小するために、回転ゲートの追加のマージを実行する(例えば、Rx(α)の後にRx(β)が続くと、Rx(α+β)にマージされる)。
ハードウェアの最下層では、量子コンピュータは、アナログパルスによって制御されている。そのため、量子コンパイルは、高レベルの量子アルゴリズムから制御パルス120のシーケンスに至るまで変換される。量子アルゴリズムが、1量子ビットゲート及び2量子ビットゲートからなる量子回路に分解されると、各ゲートに対応するパルスのシーケンスを連結することによって、ゲートベースのコンパイルを実行することができる。特に、ルックアップテーブルは、ゲートセット内の各ゲートから、そのゲートを実行する制御パルスのシーケンスをマッピングする。純粋なゲートベースのコンパイルは、パルスのルックアップ及び連結を非常に迅速に達成することができるので、短いパルスコンパイル時間において利点を提供する。変分アルゴリズムのためのコンパイルのいくつかの既知の方法は、Rx(θ)やRz(φ)などのパラメータ化されたゲートを使用して、ゲートベースのアプローチをコンパイルに使用する。しかしながら、純粋なゲートベースのコンパイルアプローチは、連結されたパルスよりも短くてより正確な回路全体のグローバルパルスが存在する可能性があるので、ゲートを跨ぐパルスが最適化されることを妨げる。連結パルスの品質は、量子アルゴリズムの効率的なゲート分解に大きく依存する。GRAPEは、量子回路またはサブ回路を実行するために必要な最良の制御パルスを、勾配降下法に従って数値的に見つけるコンパイルのためのストラテジーである。ゲートに基づくアプローチとは対照的に、GRAPEはゲート分解によって生じる制限を受けない。その代わり、GRAPEベースのアプローチは、入力回路全体に対する最適制御パルスを直接探索する。本明細書に記載するいくつかの実施形態は、以下にさらに詳細に記載するように、コンパイルの一部にGRAPEを利用する。
例示的な本実施形態では、制御コンピュータ装置110は、コンパイルエンジン114を含む。コンパイルエンジン114は、動作中に、変分量子プログラム112を、(例えば、ソースコードから)最適化された物理的スケジュール116にコンパイルするように構成されている。量子コンピュータ装置130は超伝導デバイスであり、信号発生器118は、最適化された制御パルス120を量子プロセッサ132上で実行するように構成された任意波形発生器(「AWG」)である(例えば、量子ビット134に送信されたマイクロ波パルスを介して、回転軸は信号の直交振幅変調によって決定され、回転角度は信号のパルス長によって決定される)。最適化された物理的スケジュール116は、最適化された制御パルス120(例えば、予めプログラムされた制御フィールド)として信号発生器118から量子コンピュータ装置130に送信されると、量子コンピュータ装置130に変分量子プログラム112を実行させて実行結果140を作成する、制御命令及びそれに関連するスケジュールのセットを表す。例示的な実施形態では、反復実行結果140は、コンパイルエンジン114に送り返され、コンパイルエンジン114は、次の反復のために新たに最適化された物理スケジュールを作成するために追加のコンパイルを実行する。他の量子コンピューティングアーキテクチャは、異なるサポートハードウェアを有し得ることを理解されたい。
いくつかの例示的な実施形態では、変分量子プログラム112は、変分量子固有値ソルバー(VQE)であり得る。量子コンピュータシステム100は、VQEを使用して、分子の基底状態エネルギーを求めることができる。このタスクは、古典的なコンピュータでは一般に指数関数的に困難であるが、量子コンピュータでは効率的に解くことができる。分子の基底状態の推定は、反応速度や分子構造の決定などの化学への重要な用途を有する。この問題を解決するための従来の量子アルゴリズムは、量子位相推定(QPE)アルゴリズムである。なお、目標精度εに対して、QPEは、深さO(1/ε)の量子回路を生成するが、VQEアルゴリズムは、深さO(1)回路のO(1/ε2)反復を生成する。後者は、回路の深さが大きくなるほど、回路の終端でエラーが発生する可能性が高くなるため、量子ビット及びゲート操作に対する忠実度の要件が緩和されることを前提とする。高いレベルでは、VQEは、推測-チェックの反復アルゴリズムとして概念化することができ、コンパイルエンジン114は、前回の実行結果に基づいて、次回の推測のために各反復で再コンパイルする。チェック段階は、推測に対応する量子状態の準備を含む。この準備段階は、量子コンピュータでは多項式時間で行われるが、古典的なコンピュータでは指数関数的なコストを要する(例えば、2Nの状態ベクトルのスケーリングに起因する)。
いくつかの例示的な実施形態では、変分量子プログラム112は、量子近似最適化アルゴリズム(QAOA)であり得る。量子コンピュータシステム100は、正確に解くことが困難な問題に対する近似解を生成するために、QAOAを使用することができる。QAOAは、混合ステップとコスト最適化ステップとを交互に繰り返すパターンとして理解することができる。各混合ステップにおいて、QAOAは拡散を適用し、量子重ね合わせにおけるすべての可能な状態を探索する。各コスト最適化ステップにおいて、コスト関数を最小化する量子状態の大きさを増加させるためにバイアスが印加される。その後、測定することにより、高い確率で最適に近い近似解を得ることができる。VOEと同様に、QAOAは、推測-チェックの反復アルゴリズムである。交互に繰り返される混合ラウンド及びコスト最適化ラウンドの回数は、pである。QAOAの場合、推測は、反復1≦i≦pの間の混合の大きさと、反復1≦i≦pの間のコスト最適化の大きさに対応する。したがって、QAOA回路のパラメータ数は2pであり、p個の各ラウンドに対して、混合の大きさについてのスカラーと、コスト最適化の大きさについてのスカラーとなる。pが小さい場合でも、QAOAは、古典的な近似法に負けない結果を示した。例えば、p=1の場合、NP困難MAX-CUT問題に適用したQAOAは、最適なカットサイズの少なくとも69%のサイズカットが得られる。p=5の場合、シミュレーションにより、QAOAは、10ノードグラフに対して、最もよく知られている古典的アルゴリズムであるGoemans-Williamsonと平均パリティを達成することが実証された。pが大きい場合には、QAOAは、最悪の場合の限界に対してさえ、古典的な近似アルゴリズムよりも性能が優れている。QAOAは、最近の研究により、計算的に普遍的であることを示しているので、近い将来、特に興味深い。さらに、QAOAは、実験的に、ノイズに対する耐性を示した。少なくともこれらの理由から、QAOAは、量子コンピュータを使用して古典的に実行不可能な問題を解決する、量子超越性の有力候補である。
図2は、図1に示したコンパイルエンジン114のコンポーネント図である。図2に示すモジュールは、変分量子プログラム112をプリコンパイルし、最適化された物理的スケジュール116を実行のために準備する。例示的な実施形態では、コンパイルエンジン114は、部分コンパイルブロッキングモジュール210と、パラメータ単調性ブロッキングモジュール212と、ハイパーパラメータ最適化モジュール214と、GRAPEコンパイルモジュール216と、プリコンパイルモジュール218と、ランタイムコンパイルモジュール220とを含む。
部分コンパイルブロッキングモジュール210は、例示的な実施形態では、図1に示す変分量子プログラム112の変分回路を解析し、パラメータ非依存ゲートのブロックを識別するように構成されている。パラメータ非依存ブロッキングについては、図4A及び図4Bを参照して後述する。パラメータ単調性ブロッキングモジュール212は、変分回路を解析し、ゲートのパラメータ単調性ブロックを生成するように構成される。パラメータ単調ブロッキングついては、図4Cを参照して後述する。ハイパーパラメータ最適化モジュール214は、パラメータ単調性ブロックのためのハイパーパラメータのセットを決定するように構成される。ハイパーパラメータ最適化ついては、図4Cを参照して後述する。
例示的な実施形態では、GRAPEコンパイルモジュール216は、部分コンパイルブロッキングモジュール210によって識別されたパラメータ非依存ゲートのブロック、または、パラメータ単調性ブロッキングモジュール212によって識別されたパラメータ単調性ブロックなどの、様々な回路及びサブ回路のための制御パルスを生成するように構成される。プリコンパイルモジュール218は、本明細書に記載されるアルゴリズムの様々な態様をプリステージするために、コンパイル期間中(例えば、ランタイム前)に、部分コンパイルブロッキングモジュール210、パラメータ単調性ブロッキングモジュール212、ハイパーパラメータ最適化モジュール214、及びGRAPEコンパイルモジュール216を呼び出すように構成される。ランタイムコンパイルモジュール220は、ランタイム中に、様々なサブ回路の再コンパイル、または回路のコンポーネントの再アセンブルを実行するように構成される。
図3は、図1に示した変分量子プログラム112の変分回路300の一例である。ここに示す例では、変分回路300は、6量子ビットの量子プロセッサ132のための様々な1入力量子ゲート及び2入力量子ゲートに分解されている。量子計算の基本単位は、量子ビット(例えば、量子ビット134)である。量子ビットは、2つの基底状態を有し、それらは、下記のような状態ベクトルで表すことができる。
古典ビットとは異なり、量子ビットの状態は、|0〉と|1〉との両方を重ね合わせた状態をとることができる。具体的には、有効な量子ビットの状態空間は、|α|2+|β|2=1となるように正規化されたα|0〉+β|1〉である。量子ビットを測定すると、その量子状態は崩壊し、|0〉または|1〉が、それぞれ、確率α2及び確率β2で測定される。
2量子ビットのシステムは、4つの基底状態を有する。
任意の2量子ビットの状態は、重ね合わせα|00〉+β|01〉+γ|10〉+δ|11〉として表すことができ、これは、|α|2+|β|2+|γ|2+|δ|2=1となるように正規化される。より一般的には、N個の量子ビットシステムは、2N個の基底状態を有する。したがって、一般的なN個の量子ビットシステムの状態を記述するためには、振幅と呼ばれる2N個の数が必要となる。この指数関数的なスケーリングは、量子システムの古典的なシミュレートの困難さと、量子コンピュータが特定の用途において古典的コンピュータを指数関数的に凌駕する可能性との両方を生じさせる。
図3において、6本の水平線302(個別に番号は付していない)の各々は、量子プロセッサ132の特定の量子ビット134を表す。図3はまた、量子ビット上で動作するいくつかの1量子ビットゲート及び2量子ビットゲートを示す。量子ゲートは正方行列で表すことができ、ゲートの動作は、量子ビットの状態ベクトルにゲートの行列を左乗算することである。量子状態は測定確率によって正規化されるので、これらの行列はl2ノルムを保存する。この対応する行列の集合は、ユニタリ(直交)行列である。2つの重要な1量子ビットゲートのユニタリ行列は、下記のように表される。
θ=πにおいて、Rx(π)ゲートは、NOTゲートとして機能する下記の行列を有する(例えば、それによる左乗算は、|0〉状態と|1〉状態とを反転させる)。
このビット反転ゲートは、本明細書では、「X」ゲート(図示せず)と称する。同様に、φ=πにおいて、Rz(π)ゲートは、|1〉の振幅に-1を乗算する、下記の行列を有する。
このタイプのゲートは、振幅が負になる量子設定(例えば、複素数)に特有のものである。この位相反転ゲートは、本明細書では、「Z」ゲート308と称する。
「CX」ゲート306は、下記のように表される制御されたNOT(またはCNOT)である。
CXゲート306は、第1の入力(例えば、図3において制御線312によってCXゲート306に接続された量子ビット上の網掛けドットとして識別される第1の量子ビット)で制御される動作を適用する。もし、第1の入力が|0〉である場合、CXゲート306に影響はない。もし、第1の入力が|1〉である場合、CXゲート306は、X=Rx(π)を第2の量子ビットに適用する。CXゲート306は、エンタングリングゲートであり、その効果は、2つの量子ビットに別々に作用する独立したゲートに分解できないことを意味する。量子計算における重要な結果は、すべての1量子ビットゲートと単一のエンタングリングゲートとのセットで、普遍性が十分であることを示した。Rx(θ)及びRz(φ)のゲートは、すべての1つの量子ビットゲートのセットに及ぶので、{Rx(θ)、Rz(φ)、CX}は、普遍的なゲートのセットである。
動作中、量子コンピュータシステム100は、実行のために量子アルゴリズムを準備し、様々な点で(例えば、「回路幅」または量子ビットの数、及び「深さ」またはクリティカルパスの長さに関して)、量子回路の効率を最大化する。例えば、量子回路300は、回路300が消費するリソースを低減するゲートアイデンティティを繰り返し適用することによって、最適化され得る。いくつかの実施形態では、回路300または様々なサブ回路は、様々な回路アイデンティティ(例えば、CXゲートやアダマールゲートの積極的なキャンセル)を適用するIBM Qiskitトランスパイラ、並びに、回路のサイズをさらに小さくすることができる回転ゲートをマージするためにカスタマイズされたコンパイラパス(例えば、Rx(α)の後にRx(β)が続く)を使用して最適化され得る。
一般的なゲートベースのコンパイルでは、量子プログラムが、ここに示す回路300などの量子回路に分解されると、ゲートベースのコンパイルは、各ゲートに対応するパルスのシーケンスを単に連結する(例えば、各ゲートをそのゲートを実行する制御パルスのシーケンスにマッピングするルックアップテーブルを用いて)。ゲートベースのアプローチの利点は、パルスのルックアップ及び連結を非常に迅速に達成することができるので、パルスコンパイル時間が短いことである。しかしながら、前述したように、ゲートベースのコンパイルは、ゲートを跨ぐパルスが最適化されることを妨げる。
一般的なGRAPEコンパイル(本明細書では、「完全な」GRAPEコンパイルと称する)では、GRAPEは、ここでは回路320として表される量子回路300全体の実行に必要な効率的な制御パルスシーケンスを、勾配降下法に従って数値的に求める。しかしながら、前述したように、このコンパイルは、回路320全体で実行する場合には計算コストが高く、また、計算コストは、各反復でコンパイルが再度実行される変分アルゴリズムではさらに悪化する。
例示的な実施形態では、量子コンピュータシステム100は、ゲートベースのコンパイル及び完全なGRAPEコンパイルの欠点に対処する。例えば、本明細書に記載の「厳密な部分コンパイル」及び「柔軟な部分コンパイル」の方法では、量子コンピュータシステム100は、回路300を解析して、反復間で変化しない固定ゲートのブロックを決定することができる。これらの固定ブロックは、プリコンパイルされ、個別に最適化され(例えば、本明細書では「部分」コンパイルと称されるGRAPEを使用する)、その後、様々な反復を通じて再利用することができる。これらの方法について、以下で詳しく説明する。
図4A及び図4Bは、実行前にコンパイルエンジン114によって識別される回路300のブロッキングマップ400の例を示す。厳密な部分コンパイル方法及び柔軟な部分コンパイル方法の例示的な実施形態では、コンパイルエンジン114は、実行前に(例えば、コンパイル時に)、回路300のブロックを実行する。多くの変分アルゴリズムは、反復間で変化しないゲートのセットを含んでいる。より具体的には、コンパイルエンジン114は、変分パラメータθiに依存しないゲート(例えば、パラメータ化非依存ゲートまたはサブ回路)のブロック(または単に「固定ブロック」)402(例えば、1以上のゲート)を識別する。他のすべての変分パラメータ化依存ゲート(またはサブ回路)404は、固定ブロック402から除外されるが、依然として回路の一部である。変分パラメータθiは、変分アルゴリズムのタイプに特有であり得る。変分パラメータθiは、異なる基本的意味を表す仮設(Ansatz)の比較的小さい(例えば多項式の)数のパラメータであってもよいし、または、単に、より大きな状態の探索を可能にする自由度を追加してもよい。QAOAでは、変分パラメータθiは、p個のラウンドの各々で実施されるEVA(exploration versus exploitation)の大きさに対応し得る。VQEでは、変分パラメータθiは、分子の基底状態の基準推定値(例えば、Hartree-Fock)からのずれ量を捕らえるものとして記述され得る。
図4Aは、ブロッキング解析の結果を示す図である(例えば、θiに依存しないサブ回路、または、パラメータ化に依存するRx(θi)ゲートをブロッキングする)。図4Bは、ブロッキングの別の図を示しており、ここでは説明のために、各固定ブロック402内のパラメータ化非依存ゲートの詳細は除外している。
厳密な部分コンパイルでは、コンパイルエンジン114がブロッキングを行い、図示するブロッキングマップ400を生成すると、コンパイルエンジン114は、固定ブロック402の各々をプリコンパイルする。例示的な実施形態では、コンパイルエンジン114は、各固定ブロック402(例えば、サブ回路として)上でGRAPEを使用して、各固定サブ回路の実行に必要な最短パルスシーケンスを事前に計算する。これらの静的なプリコンパイルされたパルスシーケンスは、eQASMなどの低レベルアセンブリにおけるマイクロ命令として定義することができる。コンパイルエンジン114は、ランタイム中に使用するために、プリコンパイルされた固定ブロックパルスシーケンスを、固定ブロックルックアップテーブルに格納する。さらに、コンパイルエンジン114は、パラメータ化依存部分(例えば、パラメータ化依存ゲート404、Rz(θi)ゲート)のための非固定ルックアップテーブルも生成する。より具体的には、コンパイルエンジン114は、Rz(θi)ゲートのパルスを、θi=90、45、22.5、11.25、5.625などの値(度単位、例えば2で割る)でプリコンパイルする。その後、実行時に、コンパイルエンジン114は、θxまで加算する角度について、非固定ルックアップテーブルから格納されたパルスを加算することによって、任意のRz(θx)を生成することができる。このように、任意のパラメータ化のためのパルスシーケンスは、固定ブロックルックアップテーブルからの固定ブロック402のために事前に計算されたパルスシーケンスと、非固定ルックアップテーブルからのパラメータ化依存部分(例えば、パラメータ化依存ゲート404、Rz(θi)ゲート)のための制御パルスとを単純に連結することによって生成することができる。いくつかの実施形態では、θiの最適パルスは、解析的に解くことができる(例えば、Rzなどの単一量子ビットの単純なゲートの場合)。各固定ブロック402はGRAPEによってコンパイルされたので、結果として得られるパルス持続時間は、固定ブロック402がゲートベースのコンパイルによってコンパイルされた場合よりも短くなる。したがって、厳密な部分コンパイルは、コンパイルレイテンシの増加を最小限に抑えながら、ゲートベースのコンパイルと比べて、パルスの高速化を達成する。
図4Cは、単一の変分パラメータのみに依存するパラメータ化されたサブ回路のブロッキングを示す図である。柔軟な部分コンパイルでは、わずかにパラメータ化された(例えば、θi変分パラメータのうちの1つのみに依存する)サブ回路が作成される。例示的な実施形態では、コンパイルエンジン114は、連続する固定ブロックと、同一の変分パラメータθiのパラメータ依存ゲートまたはサブ回路とのすべてを、パラメータ単調性ブロック410にマージする。その結果得られた各パラメータ単調ブロックは、1つの変分パラメータθiのみに依存する。例えば、ブロック410Aはθ1のみに依存し、ブロック410Bはθ2のみに依存し、ブロック410Cはθ3のみに依存する。
本実施形態では、例えば、VQE回路及びQAOA回路において、θi依存ゲートが一旦出現すると、θi依存ゲートの出現はiにおいて単調であり、その後のパラメータ化依存ゲートは、j≧iでθjとなることに留意されたい。その結果、θiの値が同一のサブ回路が連続することになる。例えば、パラメータ化依存ゲートの角度の順序は、[θ1、θ1、θ2、θ3]であってもよいし、[θ1、θ2、θ3、θ1]であってもよい。VQE/UCCSD及びQAOAのパラメータ単調性は、それらの回路構成が各パラメータに対応する回路を一度だけ順次適用するために生じる。例えば、QAOAでは、各パラメータは、i番目のラウンド中の混合またはコスト最適化の大きさに対応する。対応する混合またはコスト最適化が適用されると、回路は、そのパラメータに依存しなくなる。回路構成や最適化により、個々のθi依存ゲートは-θiまたはθi/2でパラメータ化されたゲートに変換されるので、パラメータ単調性は、変分回路の目視検査からは直ちには明らかにならない。
例示的な実施形態では、これらの潜在的な依存性は、変分回路構成フェーズ中に依存パラメータをタグ付けすることによって追跡され解決される。より具体的には、新しいθiが作成されるたびに、そのθiは、追跡される独立パラメータのリストに追加される。ポインタが、θjから、追跡される独立パラメータのリストに追加される。したがって、θiに対するその後の操作により、有効角をθiからθi/2、θi/3などに変化させることができる。θiへの参照は依然として追跡され、そのため、これらの既知のθiは新しい角度ではない。例えば、2つのパラメータθ1及びθ2を有する量子回路を仮定する。回路最適化後、Rz(θ1/2)ゲートが存在する。ここで、θ1=10度、θ2=30度とする。量子回路は、5度、10度、30度の3つの角度を有する。しかしながら、5度の回転は依然としてθ1に依存しているとしてタグ付けされるので、5度の回転は、10度の回転と同じパラメータ依存ブロック(例えば、θ1に依存する)に分類される。
コンパイルエンジン114が回路300を解析してパラメータ単調性ブロッキングを実行すると、コンパイルエンジン114はパラメータ単調性ブロッキングに基づいて角度近似法またはハイパーパラメータ最適化法を実行することができる。
角度近似方法では、コンパイルエンジン114は、パラメータ単調性ブロック410の各々について、様々な角度(例えば、0、15、30、45、・・・、345度)の回路をプリコンパイルする。実行時には、現在の角度に最も近いプリコンパイルされた回路が、最初の推測(例えば、シード)として使用される。ソルバーは、より正確な推測により、実際の解に迅速に収束する。結果的に角度が近い場合、パルスシーケンスも近くなり、より速く収束する。いくつかの実施形態では、コンパイルエンジン114は、2以上の角度の様々なセットについて回路をプリコンパイルすることができる。例えば、コンパイルエンジン114は、(0、0)、(0、15)、(0、30)、・・・、(0、345)、(15、0)、(15、15)、(15、30)、・・・、(345、345)などの様々な角度の対の回路をプリコンパイルすることができる。
ハイパーパラメータ最適化方法では、コンパイルエンジン114は、各ブロック410の最適パルスシーケンスへの収束をより速くするために、実行時に使用可能な各パラメータ単調性ブロック410のハイパーパラメータを事前に計算する。GRAPEでは、最適な制御パルスとは、制御振幅、目標状態の不忠実性、及び発展時間に対応するコスト関数のセットを最小化するものである。最適制御パルスを得るために、GRAPEアルゴリズムは、量子システムに作用する時間離散的制御フィールドのセットを操作する。制御フィールドに関して最小化されるコスト関数の勾配は、解析的に計算することができる。これらの勾配は、ADAMやL-BFGS-Bなどのオプティマイザで制御フィールドを更新するために使用される。GRAPEによって操作されるパラメータである制御フィールドとは対照的に、これらのオプティマイザは、学習レートや学習レート減衰などの独自のパラメータを有する。これらのパラメータは、学習プロセスの開始前に設定されるため、「ハイパーパラメータ」と称される。これらは学習プロセスへの入力であるため、ハイパーパラメータと学習モデルが最小化するコスト関数に関する閉形式表現は存在しない。例示的な実施形態では、GRAPEADAMオプティマイザにハイパーパラメータ最適化が採用され、ベースラインと比べて、所望のエラーレートへの高速な収束を実現し、コンパイル遅延を大幅に短縮する。
このように、例示的な実施形態では、コンパイルエンジン114は、単一角度パラメータ化サブ回路(例えば、各ブロック410)の各々のハイパーパラメータ構成を事前に計算し、各コンパイル時にそれらのハイパーパラメータ構成を使用する。変分アルゴリズムの各繰り返しに対して、各サブ回路410のθi依存ゲートの引数は変化するが、同一のハイパーパラメータがGRAPEオプティマイザに指定され、同一の短縮されたコンパイルレイテンシが維持される。
上述の本明細書の記載に基づいて理解されるように、本開示の上述の実施形態は、コンピュータソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせまたはサブセットを含むコンピュータプログラミングまたはエンジニアリング技術を用いて実施することができ、その技術的効果は、量子プロセッサ上での実行のために変分量子プログラムをコンパイル及び最適化することである。コンピュータ可読コード手段を有する、任意のそのようなプログラムは、1以上のコンピュータ可読媒体により具現化または提供され、それによって、本開示の説明された実施形態にしたがって、コンピュータプログラム製品(すなわち、製品)を製造することができる。コンピュータ可読媒体は、これに限定しないが、例えば、固定(ハード)ドライブ、ディスケット、光ディスク、磁気テープ、読み出し専用メモリ(ROM)などの半導体メモリ、及び/または、インターネットまたは他の通信ネットワーク若しくはリンクなどの任意の送受信媒体であってもよい。コンピュータコードを含む製品は、或る媒体から直接コードを実行することによって、或る媒体から別の媒体にコードをコピーすることによって、または、ネットワークを介してコードを送信することによって、製造及び/または使用することができる。
いくつかの実施形態では、量子プロセッサ上で命令をコンパイルして実行する量子コンピュータシステムが提供される。本開示の量子コンピュータシステムは、複数の量子ビットを含む量子プロセッサと、複数の命令をソース言語で定義している量子プログラムを格納した古典的メモリと、古典的メモリに通信可能に接続された古典的プロセッサと、を備える。古典的メモリは、古典的プロセッサによって実行されたときに、古典的プロセッサに実行させるコンピュータ実行可能命令を格納している。コンピュータ実行可能命令は、(i)反復毎に計算とコンパイルとをインターリーブする変分アルゴリズムのための量子プログラムを表すゲート回路を受け取るステップと、(ii)ゲート回路内の複数のブロックを識別するステップであって、複数のブロックの各ブロックは、ゲート回路からのサブゲート回路を含み、ゲート回路の1以上の残余サブゲート回路を複数のブロックの外側に残す、該ステップと、(iii)複数のブロックの各ブロックをパルス生成プログラムでプリコンパイルして、複数のプリコンパイルされたブロックを生成するステップであって、各プリコンパイルされたブロックは、関連するブロックを量子プロセッサ上で実行するように構成された制御パルスを含む、該ステップと、(iv)プリコンパイルされたブロックを実行中にスタティックとして使用して、量子プロセッサ上で量子プログラムを反復的に実行するステップであって、各反復実行時に、古典的プロセッサ上で1以上の残余サブゲート回路を再コンパイルする、該ステップと、を含む。
いくつかの実施形態では、量子プログラムを反復的に実行する上記ステップは、各反復実行時に、(a)1以上の残余サブゲート回路の各回路をコンパイルして、複数のコンパイル済みの残余サブゲート回路を生成するステップと、(b)複数のプリコンパイルされたブロックと、複数のコンパイル済みの残余サブゲート回路とを、ゲート回路内のそれらの相対位置に基づいて連結し、それによって、現在の反復実行のための制御パルスを生成するステップと、(c)量子プロセッサ上で、現在の反復実行のための制御パルスを実行するステップと、を含む。いくつかの実施形態では、1以上の残余サブゲート回路の各回路をコンパイルして、複数のコンパイル済みの残余サブゲート回路を生成する上記ステップは、勾配上昇パルス工学を用いて第1の残余サブゲート回路をコンパイルするステップを含む。いくつかの実施形態では、ゲート回路内の複数のブロックを識別する上記ステップは、変分パラメータ非依存性に基づいて、ゲート回路内のブロックを識別するステップを含む。いくつかの実施形態では、ゲート回路内のブロックを識別する上記ステップは、2つの変分パラメータ依存ゲート間のすべての変分パラメータ非依存ゲートをブロックするステップをさらに含む。いくつかの実施形態では、コンピュータ実行可能命令は、変分アルゴリズムの少なくとも1つの変分パラメータに依存するゲート回路内のサブゲート回路に基づいて、古典的プロセッサに、複数のパラメータ単調性ブロックを識別させるステップをさらに含む。いくつかの実施形態では、コンピュータ実行可能命令は、反復実行中に使用するために、複数のパラメータ単調性ブロックの各ブロックのハイパーパラメータ構成を古典的プロセッサに事前計算させるステップをさらに含む。
いくつかの実施形態では、量子コンピュータ上で命令をコンパイルして実行するコンピュータ実施方法が提供される。本開示の方法は、古典的メモリと通信する古典的プロセッサを使用して実施される。本開示の方法は、(i)変分アルゴリズムのための量子プログラムを表すゲート回路を受け取るステップと、(ii)ゲート回路内の複数のブロックを識別するステップであって、複数のブロックの各ブロックは、ゲート回路からのサブゲート回路を含み、ゲート回路の1以上の残余サブゲート回路を複数のブロックの外側に残す、該ステップと、(iii)複数のブロックの各ブロックを勾配上昇パルス工学を用いてプリコンパイルして、複数のプリコンパイルされたブロックを生成するステップであって、各プリコンパイルされたブロックは、関連するブロックを量子プロセッサ上で実行するように構成された制御パルスを含む、該ステップと、(iv)プリコンパイルされたブロックを実行中にスタティックとして使用して、量子プロセッサ上で量子プログラムを反復的に実行するステップであって、各反復実行時に、古典的プロセッサ上で1以上の残余サブゲート回路を再コンパイルする、該ステップと、を含む。
いくつかの実施形態では、量子プログラムを反復的に実行する上記ステップは、各反復実行時に、(a)1以上の残余サブゲート回路の各回路をコンパイルして、複数のコンパイル済みの残余サブゲート回路を生成するステップと、(b)複数のプリコンパイルされたブロックと、複数のコンパイル済みの残余サブゲート回路とを、ゲート回路内のそれらの相対位置に基づいて連結し、それによって、現在の反復実行のための制御パルスを生成するステップと、(c)量子プロセッサ上で、現在の反復実行のための制御パルスを実行するステップと、を含む。いくつかの実施形態では、1以上の残余サブゲート回路の各回路をコンパイルして、複数のコンパイル済みの残余サブゲート回路を生成する上記ステップは、勾配上昇パルス工学を用いて第1の残余サブゲート回路をコンパイルするステップを含む。いくつかの実施形態では、ゲート回路内の複数のブロックを識別する上記ステップは、変分パラメータ非依存性に基づいて、ゲート回路内のブロックを識別するステップを含む。いくつかの実施形態では、ゲート回路内のブロックを識別する上記ステップは、2つの変分パラメータ依存ゲート間のすべての変分パラメータ非依存ゲートをブロックするステップをさらに含む。いくつかの実施形態では、本開示の方法は、変分アルゴリズムの少なくとも1つの変分パラメータに依存するゲート回路内のサブゲート回路に基づいて、複数のパラメータ単調性ブロックを識別するステップをさらに含む。いくつかの実施形態では、本開示の方法は、反復実行中に使用するために、複数のパラメータ単調性ブロックの各ブロックのハイパーパラメータ構成を事前計算するステップをさらに含む。
いくつかの実施形態では、少なくとも1つの古典的プロセッサによって実行されたときに、該プロセッサに実行させるコンピュータ実行可能命令が記憶されたコンピュータ読み取り可能な記憶媒体が提供される。コンピュータ実行可能命令は、(i)変分アルゴリズムのための量子プログラムを表すゲート回路を受け取るステップと、(ii)ゲート回路内の複数のブロックを識別するステップであって、複数のブロックの各ブロックは、ゲート回路からのサブゲート回路を含み、ゲート回路の1以上の残余サブゲート回路を複数のブロックの外側に残す、該ステップと、(iii)複数のブロックの各ブロックを勾配上昇パルス工学を用いてプリコンパイルして、複数のプリコンパイルされたブロックを生成するステップであって、各プリコンパイルされたブロックは、関連するブロックを量子プロセッサ上で実行するように構成された制御パルスを含む、該ステップと、(iv)プリコンパイルされたブロックを実行中にスタティックとして使用して、量子プロセッサ上で量子プログラムを反復的に実行するステップであって、各反復実行時に、古典的プロセッサ上で1以上の残余サブゲート回路を再コンパイルする、該ステップと、を含む。
いくつかの実施形態では、量子プログラムを反復的に実行する上記ステップは、各反復実行時に、(a)1以上の残余サブゲート回路の各回路をコンパイルして、複数のコンパイル済みの残余サブゲート回路を生成するステップと、(b)複数のプリコンパイルされたブロックと、複数のコンパイル済みの残余サブゲート回路とを、ゲート回路内のそれらの相対位置に基づいて連結し、それによって、現在の反復実行のための制御パルスを生成するステップと、(c)量子プロセッサ上で、現在の反復実行のための制御パルスを実行するステップと、を含む。いくつかの実施形態では、1以上の残余サブゲート回路の各回路をコンパイルして、複数のコンパイル済みの残余サブゲート回路を生成する上記ステップは、勾配上昇パルス工学を用いて第1の残余サブゲート回路をコンパイルするステップを含む。いくつかの実施形態では、ゲート回路内の複数のブロックを識別する上記ステップは、変分パラメータ非依存性に基づいて、ゲート回路内のブロックを識別するステップを含む。いくつかの実施形態では、コンピュータ実行可能命令は、変分アルゴリズムの少なくとも1つの変分パラメータに依存するゲート回路内のサブゲート回路に基づいて、古典的プロセッサに、複数のパラメータ単調性ブロックを識別させるステップをさらに含む。いくつかの実施形態では、コンピュータ実行可能命令は、反復実行中に使用するために、複数のパラメータ単調性ブロックの各ブロックのハイパーパラメータ構成を古典的プロセッサに事前計算させるステップをさらに含む。
これらの従来のコンピュータプログラム(「プログラム」、「ソフトウェア」、「ソフトウェアアプリケーション」、「アプリケーション」、「コード」とも呼ばれる)は、従来のプログラマブルプロセッサ用の機械命令を含み、高レベルの手続き型及び/またはオブジェクト指向のプログラミング言語、及び/またはアセンブリ/機械言語によって実装することができる。本明細書で使用するとき、「機械可読媒体」、「コンピュータ可読媒体」という用語は、機械命令及び/またはデータをプログラマブルプロセッサに提供するために使用される任意のコンピュータプログラム製品、装置、及び/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指し、機械命令を機械可読信号として受信する機械可読媒体を含む。ただし、「機械可読媒体」及び「コンピュータ可読媒体」には、一過性の信号は含まれない。「機械可読信号」という用語は、プログラマブルプロセッサに機械命令及び/またはデータを提供するために使用される任意の信号を指す。
本明細書は、実施例を用いて、最良の実施の形態(ベストモード)を含む本発明の内容を開示し、かつ本発明を当業者が実施(任意の装置またはシステムの作製及び使用、並びに組み込まれた任意の方法の実施を含む)することを可能にしている。本発明の特許される技術範囲は、特許請求の範囲の請求項の記載によって定義され、当業者が想到可能な別の実施形態も含まれ得る。そのような別の実施形態は、各請求項の文言と相違しない構成要素を含む場合、または、各請求項の文言とは実質的に相違しない均等な構成要素を含む場合、その請求項の範囲内に含まれるものとする。
Claims (20)
- 量子プロセッサ上で命令をコンパイルして実行する量子コンピュータシステムであって、
複数の量子ビットを含む量子プロセッサと、
複数の命令をソース言語で定義している量子プログラムを格納した古典的メモリと、
前記古典的メモリに通信可能に接続された古典的プロセッサと、を備え、
前記古典的メモリは、前記古典的プロセッサによって実行されたときに、前記古典的プロセッサに実行させるコンピュータ実行可能命令を格納しており、
前記コンピュータ実行可能命令は、
反復毎に計算とコンパイルとをインターリーブする変分アルゴリズムのための前記量子プログラムを表すゲート回路を受け取るステップと、
前記ゲート回路内の複数のブロックを識別するステップであって、前記複数のブロックの各ブロックは、前記ゲート回路からのサブゲート回路を含み、前記ゲート回路の1以上の残余サブゲート回路を前記複数のブロックの外側に残す、該ステップと、
前記複数のブロックの各ブロックをパルス生成プログラムでプリコンパイルして、複数のプリコンパイルされたブロックを生成するステップであって、各プリコンパイルされたブロックは、関連するブロックを前記量子プロセッサ上で実行するように構成された制御パルスを含む、該ステップと、
前記プリコンパイルされたブロックを実行中にスタティックとして使用して、前記量子プロセッサ上で前記量子プログラムを反復的に実行するステップであって、各反復実行時に、前記古典的プロセッサ上で前記1以上の残余サブゲート回路を再コンパイルする、該ステップと、
を含む、システム。 - 請求項1に記載の量子コンピュータシステムであって、
前記量子プログラムを反復的に実行する前記ステップは、
各反復実行時に、
前記1以上の残余サブゲート回路の各回路をコンパイルして、複数のコンパイル済みの残余サブゲート回路を生成するステップと、
前記複数のプリコンパイルされたブロックと、前記複数のコンパイル済みの残余サブゲート回路とを、前記ゲート回路内のそれらの相対位置に基づいて連結し、それによって、現在の反復実行のための制御パルスを生成するステップと、
前記量子プロセッサ上で、前記現在の反復実行のための前記制御パルスを実行するステップと、を含む、システム。 - 請求項2に記載の量子コンピュータシステムであって、
前記1以上の残余サブゲート回路の各回路をコンパイルして、複数のコンパイル済みの残余サブゲート回路を生成する前記ステップは、
勾配上昇パルス工学を用いて第1の残余サブゲート回路をコンパイルするステップを含む、システム。 - 請求項1~3のいずれかに記載の量子コンピュータシステムであって、
前記ゲート回路内の複数のブロックを識別する前記ステップは、
変分パラメータ非依存性に基づいて、前記ゲート回路内のブロックを識別するステップを含む、システム。 - 請求項4に記載の量子コンピュータシステムであって、
前記ゲート回路内のブロックを識別する前記ステップは、2つの変分パラメータ依存ゲート間のすべての変分パラメータ非依存ゲートをブロックするステップをさらに含む、システム。 - 請求項1~5のいずれかに記載の量子コンピュータシステムであって、
前記コンピュータ実行可能命令は、前記変分アルゴリズムの少なくとも1つの変分パラメータに依存する前記ゲート回路内のサブゲート回路に基づいて、前記古典的プロセッサに、複数のパラメータ単調性ブロックを識別させるステップをさらに含む、システム。 - 請求項6に記載の量子コンピュータシステムであって、
前記コンピュータ実行可能命令は、反復実行中に使用するために、前記複数のパラメータ単調性ブロックの各ブロックのハイパーパラメータ構成を前記古典的プロセッサに事前計算させるステップをさらに含む、システム。 - 量子コンピュータ上で命令をコンパイルして実行する方法であって、
当該方法は、古典的メモリと通信する古典的プロセッサを使用して実施され、
当該方法は、
変分アルゴリズムのための量子プログラムを表すゲート回路を受け取るステップと、
前記ゲート回路内の複数のブロックを識別するステップであって、前記複数のブロックの各ブロックは、前記ゲート回路からのサブゲート回路を含み、前記ゲート回路の1以上の残余サブゲート回路を前記複数のブロックの外側に残す、該ステップと、
前記複数のブロックの各ブロックを勾配上昇パルス工学を用いてプリコンパイルして、複数のプリコンパイルされたブロックを生成するステップであって、各プリコンパイルされたブロックは、関連するブロックを量子プロセッサ上で実行するように構成された制御パルスを含む、該ステップと、
前記プリコンパイルされたブロックを実行中にスタティックとして使用して、前記量子プロセッサ上で前記量子プログラムを反復的に実行するステップであって、各反復実行時に、前記古典的プロセッサ上で前記1以上の残余サブゲート回路を再コンパイルする、該ステップと、
を含む、方法。 - 請求項8に記載の方法であって、
前記量子プログラムを反復的に実行する前記ステップは、
各反復実行時に、
前記1以上の残余サブゲート回路の各回路をコンパイルして、複数のコンパイル済みの残余サブゲート回路を生成するステップと、
前記複数のプリコンパイルされたブロックと、前記複数のコンパイル済みの残余サブゲート回路とを、前記ゲート回路内のそれらの相対位置に基づいて連結し、それによって、現在の反復実行のための制御パルスを生成するステップと、
前記量子プロセッサ上で、前記現在の反復実行のための前記制御パルスを実行するステップと、を含む、方法。 - 請求項9に記載の方法であって、
前記1以上の残余サブゲート回路の各回路をコンパイルして、複数のコンパイル済みの残余サブゲート回路を生成する前記ステップは、
勾配上昇パルス工学を用いて第1の残余サブゲート回路をコンパイルするステップを含む、方法。 - 請求項8~10のいずれかに記載の方法であって、
前記ゲート回路内の複数のブロックを識別する前記ステップは、
変分パラメータ非依存性に基づいて、前記ゲート回路内のブロックを識別するステップを含む、方法。 - 請求項11に記載の方法であって、
前記ゲート回路内のブロックを識別する前記ステップは、2つの変分パラメータ依存ゲート間のすべての変分パラメータ非依存ゲートをブロックするステップをさらに含む、方法。 - 請求項8~12のいずれかに記載の方法であって、
前記変分アルゴリズムの少なくとも1つの変分パラメータに依存する前記ゲート回路内のサブゲート回路に基づいて、複数のパラメータ単調性ブロックを識別するステップをさらに含む、方法。 - 請求項13に記載の方法であって、
反復実行中に使用するために、前記複数のパラメータ単調性ブロックの各ブロックのハイパーパラメータ構成を事前計算するステップをさらに含む、方法。 - 少なくとも1つの古典的プロセッサによって実行されたときに、該プロセッサに実行させるコンピュータ実行可能命令を格納した非一時的なコンピュータ可読媒体であって、
前記コンピュータ実行可能命令は、
変分アルゴリズムのための量子プログラムを表すゲート回路を受け取るステップと、
前記ゲート回路内の複数のブロックを識別するステップであって、前記複数のブロックの各ブロックは、前記ゲート回路からのサブゲート回路を含み、前記ゲート回路の1以上の残余サブゲート回路を前記複数のブロックの外側に残す、該ステップと、
前記複数のブロックの各ブロックを勾配上昇パルス工学を用いてプリコンパイルして、複数のプリコンパイルされたブロックを生成するステップであって、各プリコンパイルされたブロックは、関連するブロックを量子プロセッサ上で実行するように構成された制御パルスを含む、該ステップと、
前記プリコンパイルされたブロックを実行中にスタティックとして使用して、前記量子プロセッサ上で前記量子プログラムを反復的に実行するステップであって、各反復実行時に、前記古典的プロセッサ上で前記1以上の残余サブゲート回路を再コンパイルする、該ステップと、
を含む、非一時的なコンピュータ可読媒体。 - 請求項15に記載の非一時的なコンピュータ可読媒体であって、
前記量子プログラムを反復的に実行する前記ステップは、
各反復実行時に、
前記1以上の残余サブゲート回路の各回路をコンパイルして、複数のコンパイル済みの残余サブゲート回路を生成するステップと、
前記複数のプリコンパイルされたブロックと、前記複数のコンパイル済みの残余サブゲート回路とを、前記ゲート回路内のそれらの相対位置に基づいて連結し、それによって、現在の反復実行のための制御パルスを生成するステップと、
前記量子プロセッサ上で、前記現在の反復実行のための前記制御パルスを実行するステップと、を含む、非一時的なコンピュータ可読媒体。 - 請求項16に記載の非一時的なコンピュータ可読媒体であって、
前記1以上の残余サブゲート回路の各回路をコンパイルして、複数のコンパイル済みの残余サブゲート回路を生成する前記ステップは、
勾配上昇パルス工学を用いて第1の残余サブゲート回路をコンパイルするステップを含む、一時的なコンピュータ可読媒体。 - 請求項15~17のいずれかに記載の非一時的なコンピュータ可読媒体であって、
前記ゲート回路内の複数のブロックを識別する前記ステップは、
変分パラメータ非依存性に基づいて、前記ゲート回路内のブロックを識別するステップを含む、一時的なコンピュータ可読媒体。 - 請求項15~18のいずれかに記載の非一時的なコンピュータ可読媒体であって、
前記コンピュータ実行可能命令は、前記変分アルゴリズムの少なくとも1つの変分パラメータに依存する前記ゲート回路内のサブゲート回路に基づいて、前記古典的プロセッサに、複数のパラメータ単調性ブロックを識別させるステップをさらに含む、一時的なコンピュータ可読媒体。 - 請求項19に記載の非一時的なコンピュータ可読媒体であって、
前記コンピュータ実行可能命令は、反復実行中に使用するために、前記複数のパラメータ単調性ブロックの各ブロックのハイパーパラメータ構成を前記古典的プロセッサに事前計算させるステップをさらに含む、一時的なコンピュータ可読媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962900120P | 2019-09-13 | 2019-09-13 | |
US62/900,120 | 2019-09-13 | ||
PCT/US2020/049932 WO2021050541A1 (en) | 2019-09-13 | 2020-09-09 | System and method of partial compilation with variational algorithms for quantum computers |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022547989A true JP2022547989A (ja) | 2022-11-16 |
Family
ID=74866410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022515880A Pending JP2022547989A (ja) | 2019-09-13 | 2020-09-09 | 量子コンピュータのための変分アルゴリズムにより部分コンパイルするシステム及び方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11886379B2 (ja) |
EP (1) | EP4028965A4 (ja) |
JP (1) | JP2022547989A (ja) |
WO (1) | WO2021050541A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021050541A1 (en) * | 2019-09-13 | 2021-03-18 | The University Of Chicago | System and method of partial compilation with variational algorithms for quantum computers |
US20220237489A1 (en) * | 2021-01-27 | 2022-07-28 | International Business Machines Corporation | Quantum processor architecture with compiler support |
KR20220142992A (ko) * | 2021-04-13 | 2022-10-24 | 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 | 양자 제어 시스템, 양자 제어 프로세서, 및 양자 명령어 세트를 실행하기 위한 방법 |
US20220374752A1 (en) * | 2021-05-12 | 2022-11-24 | Alibaba Singapore Holding Private Limited | Decomposition of two-qubit gates |
CN113517040B (zh) * | 2021-07-12 | 2022-03-15 | 北京百度网讯科技有限公司 | 量子本征求解器的实现方法、装置及电子设备 |
CN115271084A (zh) * | 2022-08-04 | 2022-11-01 | 无锡江南计算技术研究所 | 一种面向量子加速设备的混合式编译方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5921856B2 (ja) * | 2011-11-28 | 2016-05-24 | 株式会社日立製作所 | 量子コンピュータシステム、量子コンピュータシステムの制御方法及びプログラム |
EP3227837A1 (en) * | 2014-12-05 | 2017-10-11 | Microsoft Technology Licensing, LLC | Quantum deep learning |
US10360088B2 (en) * | 2015-11-20 | 2019-07-23 | Quantum Benchmark, Inc. | Randomized compiling for quantum computation |
US10332023B2 (en) * | 2017-09-22 | 2019-06-25 | International Business Machines Corporation | Hardware-efficient variational quantum eigenvalue solver for quantum computing machines |
US11194573B1 (en) * | 2018-02-09 | 2021-12-07 | Rigetti & Co, Llc | Streaming execution for a quantum processing system |
US20190042965A1 (en) * | 2018-03-30 | 2019-02-07 | James Clarke | Apparatus and method for a field programmable quantum array |
WO2020047426A1 (en) * | 2018-08-30 | 2020-03-05 | Rigetti & Co, Inc. | Low-latency, high-performance hybrid computing |
US11416228B2 (en) * | 2018-09-13 | 2022-08-16 | The University Of Chicago | System and method of optimizing instructions for quantum computers |
WO2020072819A1 (en) * | 2018-10-03 | 2020-04-09 | Rigetti & Co, Inc. | Parcelled quantum resources |
FR3091385B1 (fr) * | 2018-12-26 | 2022-08-05 | Bull Sas | Méthode de développement d’un procédé de compilation d’un circuit quantique sur un processeur quantique et un tel procédé |
WO2021046184A1 (en) * | 2019-09-03 | 2021-03-11 | Zapata Computing, Inc. | Computer architecture for executing quantum programs |
WO2021050541A1 (en) * | 2019-09-13 | 2021-03-18 | The University Of Chicago | System and method of partial compilation with variational algorithms for quantum computers |
US11562284B1 (en) * | 2019-10-18 | 2023-01-24 | Rigetti & Co, Llc | Gate formation for a quantum processor |
US20220108218A1 (en) * | 2020-10-01 | 2022-04-07 | The Johns Hopkins University | Quantum-assisted machine learning with tensor networks |
US20220398483A1 (en) * | 2021-06-09 | 2022-12-15 | Quantinuum Llc | Quantum system configured for conditional transport with just-in-time waveform selection |
US20230099621A1 (en) * | 2021-09-30 | 2023-03-30 | Amazon Technologies, Inc. | Determination of quantum circuit compilation passes and/or compilation parameters optimized for one or more performance metrics |
US20230112525A1 (en) * | 2021-10-12 | 2023-04-13 | Classiq Technologies LTD. | Provisioning fucntional-level information to be utilized in gate-level processing of quantum circuits |
US20230244459A1 (en) * | 2022-01-31 | 2023-08-03 | Intel Corporation | Hybrid compilation apparatus and method for quantum-classical code sequences |
-
2020
- 2020-09-09 WO PCT/US2020/049932 patent/WO2021050541A1/en unknown
- 2020-09-09 US US17/641,036 patent/US11886379B2/en active Active
- 2020-09-09 EP EP20862224.1A patent/EP4028965A4/en active Pending
- 2020-09-09 JP JP2022515880A patent/JP2022547989A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4028965A1 (en) | 2022-07-20 |
US20220374390A1 (en) | 2022-11-24 |
WO2021050541A1 (en) | 2021-03-18 |
US11886379B2 (en) | 2024-01-30 |
EP4028965A4 (en) | 2023-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2022547989A (ja) | 量子コンピュータのための変分アルゴリズムにより部分コンパイルするシステム及び方法 | |
Hidary et al. | Quantum computing: an applied approach | |
US10423887B2 (en) | Compilation, memory management, and fault localization with ancillas in an unknown state | |
Wecker et al. | LIQUi|>: A software design architecture and domain-specific language for quantum computing | |
Heim et al. | Quantum programming languages | |
Khammassi et al. | OpenQL: A portable quantum programming framework for quantum accelerators | |
Soeken et al. | Programming quantum computers using design automation | |
US11842177B2 (en) | Systems and methods for unified computing on digital and quantum computers | |
US20230196153A1 (en) | DAG-Based CSP Quantum Circuit Modeling | |
EP3304363A1 (en) | System for reversible circuit compilation with space constraint, method and program | |
US11900219B1 (en) | Gate formation on a quantum processor | |
Javadi-Abhari et al. | Quantum computing with Qiskit | |
Xu et al. | Synthesizing quantum-circuit optimizers | |
De Micheli et al. | Advances in quantum computation and quantum technologies: A design automation perspective | |
Meuli et al. | Enabling accuracy-aware quantum compilers using symbolic resource estimation | |
Pelofske et al. | Short-depth QAOA circuits and quantum annealing on higher-order ising models | |
Matsuura et al. | A systems perspective of quantum computing | |
Thanos et al. | Automated reasoning in quantum circuit compilation | |
Senicourt et al. | Tangelo: An open-source python package for end-to-end chemistry workflows on quantum computers | |
Cruz-Lemus et al. | Quantum Software Tools Overview | |
Wang et al. | Memory-efficient differentiable programming for quantum optimal control of discrete lattices | |
Gokhale | Full-Stack, Cross-Layer Optimizations for Quantum Computing | |
Wagner et al. | fastmat: Efficient linear transforms in Python | |
Martel et al. | Trade-offs of certified fixed-point code synthesis for linear algebra basic blocks | |
Arias et al. | A repeated mistake is a choice: Considering security issues and risks in quantum computing from scratch |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230809 |