(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-09-15
(54)【発明の名称】量子プロセッサをシミュレートするシステム及び方法
(51)【国際特許分類】
G06N 10/80 20220101AFI20220908BHJP
【FI】
G06N10/80
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021571752
(86)(22)【出願日】2020-07-10
(85)【翻訳文提出日】2022-01-19
(86)【国際出願番号】 US2020041703
(87)【国際公開番号】W WO2021011412
(87)【国際公開日】2021-01-21
(32)【優先日】2019-07-12
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-07-29
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】507209207
【氏名又は名称】ディー-ウェイブ システムズ インコーポレイテッド
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】ジョンソン,マーク,ダブリュー.
(72)【発明者】
【氏名】レイス フィリオ,マウリシオ
(72)【発明者】
【氏名】フォルクマン,マーク,エイチ.
(72)【発明者】
【氏名】ペルミノフ,イリア,ヴィー.
(72)【発明者】
【氏名】ブニク,ポール,アイ.
(57)【要約】
デジタルプロセッサは、表現モデルのセット及びデバイス接続性表現を含むQPUモデルを実施して、量子プロセッサ設計又は物理的量子プロセッサをシミュレートすることによって、量子計算システムをシミュレートする。デジタルプロセッサは、アナログ波形を受信し、量子プロセッサにおけるプログラマブルデバイスにかけられるバイアスに対応する波形値のセットを含むデジタル波形表現を生成する。デジタルプロセッサは、デバイス接続性表現におけるチャンネルに基づいて波形値のサブセットを選択する。デジタルプロセッサは、表現モデルを実施して、波形値及び複数の物理的パラメータ値に基づいて応答を計算し、物理的パラメータは、量子プロセッサにおけるプログラマブルデバイスを特徴付ける。デバイス接続性表現を、設計実装形態から生成し、規則のセットに対して確認し、調整して、全規則に合格するまで、デバイス接続性表現を変更することができる。
【特許請求の範囲】
【請求項1】
少なくとも1つのデジタルプロセッサの動作の方法であって、
量子プロセッサトポロジーのプログラマブルデバイスのセットに対するデジタル波形表現を生成することであって、前記量子プロセッサトポロジーは、プログラマブルデバイスの前記セットのうち少なくとも1つにバイアスをかけることができる制御線のセットを指定することと、
チャンネルのセットを含むデバイス接続性表現に基づいて前記デジタル波形表現を波形値のセットに分解することと、
前記デバイス接続性表現におけるチャンネルの前記セットのサブセットを識別することと、
チャンネルの前記セットの前記サブセットに対応する波形値の前記セットのサブセットを選択することと、
前記量子プロセッサトポロジーのプログラマブルデバイスの前記セットのうち少なくとも1つを特徴付ける複数の物理的パラメータ値を設定することと、
表現モデルを介して応答を計算することと
を含む方法。
【請求項2】
デジタル波形表現を生成することは、量子プロセッサに結合されるサーバーから受信されるアナログ波形に基づいてデジタル波形表現を生成することを含む、請求項1に記載の方法。
【請求項3】
前記デジタル波形表現を波形値のセットに分解することは、前記デバイス接続性表現におけるチャンネルの前記セットに基づいて前記デジタル波形表現を波形値のセットに分解することを含み、チャンネルの前記セットは、前記量子プロセッサトポロジーにおける制御線のセットに対するプログラマブルデバイスの前記セットの多くの通信可能結合を表す、請求項1に記載の方法。
【請求項4】
前記デバイス接続性表現におけるチャンネルの前記セットのサブセットを識別することは、前記量子プロセッサトポロジーにおける制御線の前記セットのサブセットに通信可能に結合されるプログラマブルデバイスの前記セットのサブセットを表すチャンネルの前記セットのサブセットを識別することを含む、請求項1に記載の方法。
【請求項5】
チャンネルの前記セットの前記サブセットに対応する波形値の前記セットのサブセットを選択することは、前記量子プロセッサトポロジーにおける各量子ビット又は結合器にかけられるバイアスを各々が表す波形値の前記セットのサブセットを選択することを含む、請求項1に記載の方法。
【請求項6】
前記量子プロセッサトポロジーにおけるプログラマブルデバイスの前記セットのうち少なくとも1つを特徴付ける複数の物理的パラメータ値を設定することは、量子プロセッサトポロジーにおけるプログラマブルデバイスの臨界電流、物体インダクタンス及び静電容量のうち少なくとも1つに対する複数の物理的パラメータ値を設定することを含む、請求項1に記載の方法。
【請求項7】
表現モデルを介して応答を計算することは、前記複数の物理的パラメータ値及び波形値の前記セットの前記サブセットに基づいて応答を計算することを含む、請求項1に記載の方法。
【請求項8】
表現モデルを介して応答を計算することは、出力値のセットを計算することを含む、請求項1に記載の方法。
【請求項9】
前記応答を古典的状態に変換することを更に含む、請求項1に記載の方法。
【請求項10】
前記応答をユーザに返すことを更に含む、請求項1に記載の方法。
【請求項11】
前記量子プロセッサトポロジーを、物理的量子プロセッサの少なくとも1つの物理的インスタンスに具体化し、量子プロセッサトポロジーのプログラマブルデバイスのセットに対するデジタル波形表現を生成することは、前記物理的量子プロセッサの前記少なくとも1つの物理的インスタンスに対する前記デジタル波形表現を生成することを含む、請求項1に記載の方法。
【請求項12】
前記量子プロセッサトポロジーを、理論的量子プロセッサの少なくとも1つの非物理的インスタンスに具体化し、量子プロセッサトポロジーのプログラマブルデバイスのセットに対するデジタル波形表現を生成することは、前記理論的量子プロセッサの前記少なくとも1つの非物理的インスタンスに対する前記デジタル波形表現を生成することを含む、請求項1に記載の方法。
【請求項13】
少なくとも1つのデジタルプロセッサと、
前記少なくとも1つのデジタルプロセッサに通信可能に結合されている少なくとも1つの持続性コンピュータ可読記憶媒体であって、プロセッサ実行可能命令を実行する場合、請求項1~12のいずれか一項に記載の方法を前記少なくとも1つのデジタルプロセッサに実行させるプロセッサ実行可能命令を記憶する少なくとも1つの持続性コンピュータ可読記憶媒体と
を含むシステム。
【請求項14】
問題を特徴付ける又は表す受信ハミルトニアンに基づいて波形を生成するように動作可能な少なくとも1つのサーバーであって、前記少なくとも1つのデジタルプロセッサに通信可能に結合されて前記生成波形を前記少なくとも1つのデジタルプロセッサに供給し、少なくとも1つの量子プロセッサに通信可能に結合されている少なくとも1つのサーバーを更に含む、請求項13に記載のシステム。
【請求項15】
量子プロセッサをシミュレートする方法であって、前記量子プロセッサは、制御線のセットに通信可能に結合されるプログラマブルデバイスのセットを含み、制御線の前記セットのうち各1つは、プログラマブルデバイスの前記セットのうち少なくとも1つにバイアスをかけるように動作可能であり、前記方法は、デジタルプロセッサによって実行され、
デジタル波形表現を生成することと、
チャンネルのセットを含むデバイス接続性表現に基づいて前記デジタル波形表現を波形値のセットに分解することと、
前記デバイス接続性表現におけるチャンネルの前記セットのサブセットを識別することと、
チャンネルの前記セットの前記サブセットに対応する波形値の前記セットのサブセットを選択することと、
前記量子プロセッサのプログラマブルデバイスの前記セットのうち少なくとも1つを特徴付ける複数の物理的パラメータ値を設定することと、
表現モデルを介して応答を計算することと
を含む方法。
【請求項16】
デジタル波形表現を生成することは、量子プロセッサに結合されるサーバーから受信されるアナログ波形に基づいてデジタル波形表現を生成することを含む、請求項15に記載の方法。
【請求項17】
前記デジタル波形表現を波形値のセットに分解することは、前記デバイス接続性表現におけるチャンネルの前記セットに基づいて前記デジタル波形表現を波形値のセットに分解することを含み、チャンネルの前記セットは、量子プロセッサにおける制御線のセットに対するプログラマブルデバイスの前記セットの多くの通信可能結合を表す、請求項15に記載の方法。
【請求項18】
前記デバイス接続性表現におけるチャンネルの前記セットのサブセットを識別することは、量子プロセッサにおける制御線の前記セットのサブセットに通信可能に結合されるプログラマブルデバイスの前記セットのサブセットを表すチャンネルの前記セットのサブセットを識別することを含む、請求項15に記載の方法。
【請求項19】
チャンネルの前記セットの前記サブセットに対応する波形値の前記セットのサブセットを選択することは、量子プロセッサにおける各プログラマブルデバイスにかけられるバイアスを各々が表す波形値の前記セットのサブセットを選択することを含む、請求項15に記載の方法。
【請求項20】
量子プロセッサにおける各プログラマブルデバイスにかけられるバイアスを各々が表す波形値の前記セットのサブセットを選択することは、量子プロセッサにおける量子ビットにかけられるバイアスを各々が表す波形値の前記セットのサブセットを選択することを含む、請求項19に記載の方法。
【請求項21】
量子プロセッサにおける各プログラマブルデバイスにかけられるバイアスを各々が表す波形値の前記セットのサブセットを選択することは、量子プロセッサにおける結合器にかけられるバイアスを各々が表す波形値の前記セットのサブセットを選択することを含む、請求項19に記載の方法。
【請求項22】
量子プロセッサにおけるプログラマブルデバイスの前記セットのうち少なくとも1つを特徴付ける複数の物理的パラメータ値を設定することは、量子プロセッサにおけるプログラマブルデバイスの臨界電流、物体インダクタンス及び静電容量のうち少なくとも1つに対する複数の物理的パラメータ値を設定することを含む、請求項15に記載の方法。
【請求項23】
表現モデルを介して応答を計算することは、前記複数の物理的パラメータ値及び波形値の前記セットの前記サブセットに基づいて応答を計算することを含む、請求項15に記載の方法。
【請求項24】
表現モデルを介して応答を計算することは、出力値のセットを計算することを含む、請求項15に記載の方法。
【請求項25】
前記応答を古典的状態に変換することを更に含む、請求項15に記載の方法。
【請求項26】
前記応答をユーザに返すことを更に含む、請求項15に記載の方法。
【請求項27】
量子プロセッサをシミュレートするシステムであって、前記量子プロセッサは、制御線のセットに通信可能に結合されているプログラマブルデバイスのセットを含み、制御線の前記セットのうち各1つは、プログラマブルデバイスの前記セットのうち1つにバイアスをかけるように動作可能であり、前記システムは、
デジタルプロセッサと、
プロセッサ実行可能命令を実行する場合、請求項15~26のいずれか一項に記載の方法を前記デジタルプロセッサに実行させるプロセッサ実行可能命令を記憶する持続性コンピュータ可読記憶媒体と
を含むシステム。
【請求項28】
デバイスオブジェクトモデルを集積回路レイアウトから抽出する方法であって、前記方法は、デジタルプロセッサによって実行され、前記デジタルプロセッサによって自律的に、
デバイス概略図を設計概略図から抽出することと、
デバイス接続性データを前記デバイス概略図から抽出することと、
前記デバイス接続性データをデバイス接続性表現に書き込むことと、
バイアスのセットを前記デバイス接続性データから抽出することと、
バイアスの前記セットを前記デバイス接続性表現に書き込むことと
を含む方法。
【請求項29】
デバイス概略図を設計概略図から抽出することは、レイアウト対概略図ツールによって検証可能な設計概略図からデバイス概略図を抽出することを含む、請求項28に記載の方法。
【請求項30】
デバイス概略図を設計概略図から抽出することは、有向非巡回グラフに対応するデバイス概略図を抽出することを含む、請求項28に記載の方法。
【請求項31】
有向非巡回グラフに対応するデバイス概略図を抽出することは、有向非巡回グラフに対応する少なくとも1つの原子デバイスノードを含むデバイス概略図を抽出することを含む、請求項30に記載の方法。
【請求項32】
前記デバイス接続性データを抽出することは、デバイス指定、特性注釈、及び少なくとも1つの隣接デバイス接続のうち少なくとも1つを抽出することを含む、請求項28に記載の方法。
【請求項33】
バイアスのセットを前記デバイス接続性データから抽出することは、大域バイアスのセットを抽出することを含む、請求項28に記載の方法。
【請求項34】
大域バイアスのセットを抽出することは、パッドを少なくとも1つのプログラマブルデバイスに電気的に結合する接続部のセットを抽出することを含む、請求項33に記載の方法。
【請求項35】
前記デバイス接続性表現を実行してデバイスオブジェクトモデルを計算することを更に含む、請求項28に記載の方法。
【請求項36】
少なくとも1つのデジタルプロセッサと、
前記少なくとも1つのデジタルプロセッサに通信可能に結合可能な少なくとも1つの持続性プロセッサ可読記憶媒体であって、前記少なくとも1つのデジタルプロセッサによってプロセッサ実行可能命令を実行する場合、請求項28~35のいずれか一項に記載の方法を前記少なくとも1つのデジタルプロセッサに実行させるプロセッサ実行可能命令のうち少なくとも1つを記憶する少なくとも1つの持続性プロセッサ可読記憶媒体と
を含む計算システム。
【請求項37】
プログラマブルデバイスのセットを含むアナログプロセッサの設計を確認する方法であって、前記方法は、デジタルプロセッサによって実行され、前記デジタルプロセッサによって自律的に、
設計実装形態の少なくとも一部に基づいてデバイス接続性表現をロードすることであって、前記デバイス接続性表現は、少なくとも1つのプログラマブルデバイスを特徴付ける特性のセットを含むことと、
n個の規則のセットを識別することと、
前記デバイス接続性表現が前記n番目の規則に合格するまで、反復的に、
規則の前記セットのうちi番目の規則(但し、1≦i≦n)を選択することと、
前記デバイス接続性表現が前記i番目の規則に合格したか合格しなかったかを判定することと
を含む方法。
【請求項38】
前記デバイス接続性表現が前記i番目の規則に合格しなかったとの前記判定に応じて、前記デバイス接続性表現が前記i番目の規則に合格するまで、反復的に、
前記i番目の規則に合格しなかった特性の前記セットのうち少なくとも1つの特性を識別することと、
前記i番目の規則に合格しなかった前記少なくとも1つの特性に対応する前記設計実装形態の一部を識別することと、
前記設計実装形態を調整することと
を更に含む、請求項37に記載の方法。
【請求項39】
規則のセットを識別することは、多くのプログラマブルデバイスを検査する規則のセットを識別することを含む、請求項37に記載の方法。
【請求項40】
規則のセットを識別することは、多くの制御デバイスを検査する規則のセットを識別することを含む、請求項37に記載の方法。
【請求項41】
規則のセットを識別することは、デバイス接続性データ特性のセットを検査する規則のセットを識別することを含む、請求項37に記載の方法。
【請求項42】
規則のセットを識別することは、アドレス指定線特性のセットを検査する規則のセットを識別することを含む、請求項37に記載の方法。
【請求項43】
少なくとも1つのデジタルプロセッサと、
前記少なくとも1つのデジタルプロセッサに通信可能に結合可能な少なくとも1つの持続性プロセッサ可読記憶媒体であって、前記少なくとも1つのデジタルプロセッサによってプロセッサ実行可能命令を実行する場合、請求項37~42のいずれか一項に記載の方法を前記少なくとも1つのデジタルプロセッサに実行させるプロセッサ実行可能命令のうち少なくとも1つを記憶する少なくとも1つの持続性プロセッサ可読記憶媒体と
を含む計算システム。
【発明の詳細な説明】
【技術分野】
【0001】
分野
この開示は一般的に、量子プロセッサをシミュレートするシステム及び方法に関する。開示システム及び技法を、デジタルプロセッサ、又はデジタルプロセッサ及び量子プロセッサを含む計算システムに適用することができる。デジタルプロセッサは、アナログ波形に基づいてデジタル波形表現を生成し、表現モデルを介して波形値及び物理的パラメータ値のセットに基づいて応答を計算するように動作可能である。更に、デバイス接続性表現を生成して確認するシステム及び方法を記載する。
【背景技術】
【0002】
背景
量子計算
量子コンピュータは、少なくとも1つの量子力学的現象(例えば、重ね合わせ、トンネリング、及びエンタングルメント)を直接使用して、データで動作を実行するシステムである。量子コンピュータの要素は、量子ビットである。量子コンピュータは、ある種の計算問題(例えば、量子物理学をシミュレートする計算問題)を高速化することができる。
【0003】
量子アニーリング
量子アニーリングは、システムの低エネルギー状態、典型的に好ましくは、システムの基底状態を見付けるために使用可能な計算方法である。古典的シミュレーテッドアニーリングに概念が似ており、この方法は、より低いエネルギー状態がより安定しているので、自然のシステムがより低いエネルギー状態に向かう傾向があるという基本原理を当てにする。量子アニーリングは、古典的アニーリングよりも正確に及び/又は高速にエネルギー最小値に達する非局在化の源として量子効果(例えば、量子トンネリング)を使用してもよい。
【0004】
断熱量子計算を、量子アニーリングの特別な場合と考えてもよい。断熱量子計算において、理想的に、システムは、始まり、断熱展開全体にわたってシステムの基底状態のままである。従って、量子アニーリングシステム及び方法を一般的に、断熱量子コンピュータで実施することができることが、当業者は分かる。この明細書及び特許請求の範囲全体にわたって、量子アニーリングへの任意の参照は、文脈上他の意味に解すべき場合を除き、断熱量子計算を含むように意図されている。
【0005】
量子アニーリングは、アニーリング処理中に乱雑の源として量子力学を使用する。目的関数(例えば、最適化問題)を、ハミルトニアンHPに符号化し、アルゴリズムは、HPと交換しない乱雑ハミルトニアンHDを追加することによって量子効果を導入する。事例は、下記の通りである。
HE∝A(t)HD+B(t)HP
但し、A(t)及びB(t)は、時間依存包絡関数である。例えば、A(t)は、展開中に大きい値から実質的にゼロまで変わることができ、HEは、展開ハミルトニアンと考えられる。HDを除去することによって(即ち、A(t)を減少することによって)、乱雑をゆっくりと除去する。
【0006】
従って、量子アニーリングにおいて、システムは、初期ハミルトニアンで開始し、展開ハミルトニアンを介して、基底状態が問題に対する解答を符号化する最終「問題」ハミルトニアンHPに展開する。
【0007】
一般的な問題ハミルトニアンは、対角単量子ビット項に比例する第1の成分、及び対角多量子ビット項に比例する第2の成分を含み、下記の形であることができる。
【数1】
但し、Nは、量子ビットの数であり、
【数2】
は、i番目の量子ビットに対するパウリz行列であり、h
i及びJ
ijはそれぞれ、量子ビットに対する無次元局所場、及び量子ビット間の結合であり、εは、H
Pに対するある特性エネルギー尺度である。
【0008】
ここで、
【数3】
及び
【数4】
項は、対角項の例である。
【数5】
項は、単量子ビット項であり、
【数6】
項は、2量子ビット項である。
【0009】
この明細書全体にわたって、用語「問題ハミルトニアン」及び「最終ハミルトニアン」は、文脈上他の意味に解すべき場合を除き、交換可能に使用される。量子プロセッサの特定の状態は、問題ハミルトニアンによって、エネルギー的に好ましい、又は単に好ましい。これらの状態は、基底状態を含むが、励起状態を含んでもよい。
【0010】
量子プロセッサを含むハイブリッド計算システム
ハイブリッド計算システムは、アナログコンピュータに通信可能に結合されたデジタルコンピュータを含むことができる。幾つかの実装形態において、アナログコンピュータは、量子コンピュータであり、デジタルコンピュータは、古典的コンピュータである。量子コンピュータは、ゲートモデル量子コンピュータ、又は断熱量子計算を実行する量子コンピュータであることができる。デジタルコンピュータは、本システム及び方法に記載の古典的デジタル処理タスクを実行するために使用可能なデジタルプロセッサを含むことができる。デジタルコンピュータは、コンピュータ又はプロセッサ可読命令、アプリケーションプログラム及び/又はデータの様々なセットを記憶するために使用可能な少なくとも1つのシステムメモリを含むことができる。
【0011】
量子コンピュータは、プログラマブル素子(例えば、量子ビット、結合器、及び他のプログラマブルデバイス)を有する量子プロセッサを含むことができる。読み出しシステムを介して、量子ビットを読み出すことができ、その結果を、デジタルコンピュータに伝達する。量子ビット及び結合器を、それぞれ量子ビット制御システム及び結合器制御システムによって特徴付けることができる。幾つかの実装形態において、量子ビット制御システム及び結合器制御システムを使用して、アナログコンピュータで量子アニーリングを実施することができる。
【0012】
計算システムは、問題ハミルトニアンを取り、デジタルプロセッサ又はアナログプロセッサに送信されるコマンドに問題ハミルトニアンをコンパイルするサーバーを含むことができる。スループットを解く問題の変動を減らすために1つを超えるサーバーを含むことは、システムに有利であることができる。
【0013】
量子計算システムの試験、開発、確認、及び較正は典型的に、極低温冷却器に設置された量子プロセッサを必要とする。しかし、量子プロセッサの設置は、時間及び資源集約的であることがあり、ユーザ対応量子プロセッサを限られた資源にする。更に、量子プロセッサは典型的に、多くのユーザ間で共用される。一部のユーザは、計算コストが高い量子プロセッサに大問題を提示することがあり、解くのに長い時間がかかり、その結果、量子プロセッサの利用可能性を更に減らすことがある。場合によっては、1人のユーザが時間的制約のある実験を開発する必要があり、他のユーザが量子プロセッサを使用している場合、限られた量子プロセッサの利用可能性は、問題であることがある。この問題を扱う1つの手法は、優先順位に基づいて量子プロセッサに時間を割り当てる量子プロセッサスケジューラを実施することである。しかし、代わりに異なる実験を実行するために進行中である問題を休止又は停止することは、非現実的であることがある。別の手法は、アクセスできる量子プロセッサの数を増やすことである。しかし、量子プロセッサの製造及び設置は、高価であり、時間がかかることがある。更に、場合によっては、較正処理及びアルゴリズムの完全な確認を難しくすることがある量子プロセッサの各デバイスに対して、プログラマブルパラメータの数を制限することがある。
【0014】
量子プロセッサの限られた利用可能性は、プロセッサ設計の効率を減らすこともある。プロセッサを設計する方法は、デバイス接続性表現に基づいて生成される設計オブジェクトモデルを必要とすることがある。デバイス接続性表現は、プロセッサにおけるデバイスの表現、及びデバイス接続性データから抽出されたデバイスの相互結合、及び大域バイアス線に対するデバイスの結合を含む。
【0015】
存在、様々な特性、バイアス、及びデバイス(例えば、量子ビット、結合器、及び読み出しデバイス)の接続性を、デバイス接続性表現からプログラム可能に抽出することができる。典型的に、デバイス接続性表現を、設計の意図から手動で生成し、デバイス接続性表現の正確さを、製造後にプロセッサ構造を試験することによって確認する。しかし、このような手動確認方法は、時間がかかり、非常に間違いやすい。更に、手動確認方法は、高価で、設計検証に適していない製造プロセッサを必要とする。
【0016】
量子プロセッサ較正は、依存解決のために使用され、進捗を追跡するために使用される較正規則を含むことができる。場合によっては、較正規則は、プログラマブルデバイス、デバイス接続性、及びバイアス機構の間の関係を記述して確認することを必要とする。1つの手法は、このようなデータの適切な表現を生成することであり、量は、独立して各較正規則に対するデータ構造を工夫することである。しかし、各較正アルゴリズムに対して適切なデータ構造を設計することは、特に較正アルゴリズムのセットの要件にかなりの重複がある場合、時間がかかる。更に、各較正アルゴリズムに対して適切な継続及びバージョン制御機構を設計することは、時間がかかり、能率が悪く、間違いやすい。
【0017】
従って、量子計算システムの基盤を試験し、特徴付け及び較正処理用の実験を開発し、利用できるユーザ対応量子プロセッサを当てにすることなくプロセッサ設計に関連付けられた設計オブジェクトモデルを確認するシステム及び方法に対する一般的な要望がある。
【0018】
関連技術及び関連技術に関する制限の上述の例は、例示であり、排他的でないように意図されている。関連技術の他の制限は、明細書を読み、図面を調べると、当業者に明白になるであろう。
【発明の概要】
【発明が解決しようとする課題】
【0019】
概要
量子計算システムは、1つ又は複数の量子コンピュータ及び/又はデジタルコンピュータに加えて、量子計算システムを構築して動作させるのに役立つ基盤を含む。量子計算基盤は、サーバー、デバイス接続性、ソフトウェアAPIなどを含み得る。典型的に、量子計算システム基盤(例えば、試験サーバー容量、デバイス接続性妥当性、ソフトウェア接続性など)を試験するために、既存の量子プロセッサを有することは有益である。同様に、特徴付け及び較正の目的で実験を開発し、較正アルゴリズムの精度及びロバスト性を検証するために、既存の量子プロセッサを有することは有益である。更に、実際のプロセッサを設計して製造する前に、設計アイデアを試験することはやりがいがある。
【0020】
量子計算システムを、日常的な較正及び保守を実行するユーザを含むユーザ間で共用してもよい。1人のユーザだけが、一度に量子計算システムにアクセスすることができるので、時間的制約のある実験、又は広範囲の研究を必要とする実験を開発することは、非能率的であることがある。更に、量子プロセッサの今後の生成に対する較正処理を開発して試験することは、新しいプロセッサチップを量子計算システムに設置するまで延期されることがあり、新しい量子コンピュータシステムを動作させる際に遅延を招くことがある。
【0021】
従って、量子計算システムを試験、開発及び較正し、ユーザ対応量子プロセッサの利用可能性を当てにすることなく、設計オブジェクトモデルを確認するシステム及び方法が必要である。
【0022】
デバイスの物理的設計を表すデバイスオブジェクトモデルを、デバイス接続性表現を読み取ることによって生成することができる。存在、様々な特性、バイアス、及びプロセッサにおけるデバイスの接続性を、デバイス接続性表現からプログラム可能に抽出することができる。設計オブジェクトモデル及び/又はデバイス接続性表現を確認する既存の手法は、製造されるべき関連プロセッサを必要とし、確認ステップは、手動であり、その結果、間違いやすい。従って、デバイス接続性表現を生成し、関連プロセッサの製造を必要とすることなく、設計オブジェクトモデルを確認するシステム及び方法が必要である。
【0023】
プロセッサ較正は、プログラマブルデバイス、デバイス接続性、及び各較正インスタンスに対するバイアス機構の間の関係の記述を必要とする較正規則のセットを含むことができる。各較正規則に対して適切なデータ構造を設計することは、特に較正規則の要件にかなりの重複がある場合、時間がかかる。各較正規則に対して別々に適切な継続及びバージョン制御機構を設計することは、時間がかかり、能率が悪く、間違いやすい。従って、多くの較正インスタンスでプロセッサを表すのに適しているデータ構造が必要である。
【課題を解決するための手段】
【0024】
態様1.少なくとも1つのデジタルプロセッサの動作の方法は、量子プロセッサトポロジーのプログラマブルデバイスのセットに対するデジタル波形表現を生成することであって、量子プロセッサトポロジーは、プログラマブルデバイスのセットのうち少なくとも1つにバイアスをかけることができる制御線のセットを指定することと、チャンネルのセットを含むデバイス接続性表現に基づいてデジタル波形表現を波形値のセットに分解することと、デバイス接続性表現におけるチャンネルのセットのサブセットを識別することと、チャンネルのセットのサブセットに対応する波形値のセットのサブセットを選択することと、量子プロセッサトポロジーのプログラマブルデバイスのセットのうち少なくとも1つを特徴付ける複数の物理的パラメータ値を設定することと、表現モデルを介して応答を計算することとを含むように要約できる。
【0025】
態様2.デジタル波形表現を生成することは、量子プロセッサに結合されるサーバーから受信されるアナログ波形に基づいてデジタル波形表現を生成することを含む、態様1の方法。
【0026】
態様3.デジタル波形表現を波形値のセットに分解することは、デバイス接続性表現におけるチャンネルのセットに基づいてデジタル波形表現を波形値のセットに分解することを含み、チャンネルのセットは、量子プロセッサトポロジーにおける制御線のセットに対するプログラマブルデバイスのセットの多くの通信可能結合を表す、態様1の方法。
【0027】
態様4.デバイス接続性表現におけるチャンネルのセットのサブセットを識別することは、量子プロセッサトポロジーにおける制御線のセットのサブセットに通信可能に結合されるプログラマブルデバイスのセットのサブセットを表すチャンネルのセットのサブセットを識別することを含む、態様1の方法。
【0028】
態様5.チャンネルのセットのサブセットに対応する波形値のセットのサブセットを選択することは、量子プロセッサトポロジーにおける各量子ビット又は結合器にかけられるバイアスを各々が表す波形値のセットのサブセットを選択することを含む、態様1の方法。
【0029】
態様6.量子プロセッサトポロジーにおけるプログラマブルデバイスのセットのうち少なくとも1つを特徴付ける複数の物理的パラメータ値を設定することは、量子プロセッサトポロジーにおけるプログラマブルデバイスの臨界電流、物体インダクタンス及び静電容量のうち少なくとも1つに対する複数の物理的パラメータ値を設定することを含む、態様1の方法。
【0030】
態様7.表現モデルを介して応答を計算することは、複数の物理的パラメータ値及び波形値のセットのサブセットに基づいて応答を計算することを含む、態様1の方法。
【0031】
態様8.表現モデルを介して応答を計算することは、出力値のセットを計算することを含む、態様1の方法。
【0032】
態様9.態様1の方法は、応答を古典的状態に変換することを更に含むことができる。
【0033】
態様10.態様1の方法は、応答をユーザに返すことを更に含むことができる。
【0034】
態様11.量子プロセッサトポロジーを、物理的量子プロセッサの少なくとも1つの物理的インスタンスに具体化し、量子プロセッサトポロジーのプログラマブルデバイスのセットに対するデジタル波形表現を生成することは、物理的量子プロセッサの少なくとも1つの物理的インスタンスに対するデジタル波形表現を生成することを含む、態様1の方法。
【0035】
態様12.量子プロセッサトポロジーを、理論的量子プロセッサの少なくとも1つの非物理的インスタンスに具体化し、量子プロセッサトポロジーのプログラマブルデバイスのセットに対するデジタル波形表現を生成することは、理論的量子プロセッサの少なくとも1つの非物理的インスタンスに対するデジタル波形表現を生成することを含む、態様1の方法。
【0036】
態様13.システムは、少なくとも1つのデジタルプロセッサと、少なくとも1つのデジタルプロセッサに通信可能に結合されている少なくとも1つの持続性コンピュータ可読記憶媒体であって、プロセッサ実行可能命令を実行する場合、態様1~12のいずれかの方法を少なくとも1つのデジタルプロセッサに実行させるプロセッサ実行可能命令を記憶する少なくとも1つの持続性コンピュータ可読記憶媒体とを含むように要約できる。
【0037】
態様14.態様13のシステムは、問題を特徴付ける又は表す受信ハミルトニアンに基づいて波形を生成するように動作可能な少なくとも1つのサーバーであって、少なくとも1つのデジタルプロセッサに通信可能に結合されて生成波形を少なくとも1つのデジタルプロセッサに供給し、少なくとも1つの量子プロセッサに通信可能に結合されている少なくとも1つのサーバーを更に含むことができる。
【0038】
態様15.量子プロセッサをシミュレートする方法であって、量子プロセッサは、制御線のセットに通信可能に結合されるプログラマブルデバイスのセットを含み、制御線のセットのうち各1つは、プログラマブルデバイスのセットのうち少なくとも1つにバイアスをかけるように動作可能であり、デジタルプロセッサによって実行される方法は、デジタル波形表現を生成することと、チャンネルのセットを含むデバイス接続性表現に基づいてデジタル波形表現を波形値のセットに分解することと、デバイス接続性表現におけるチャンネルのセットのサブセットを識別することと、チャンネルのセットのサブセットに対応する波形値のセットのサブセットを選択することと、量子プロセッサのプログラマブルデバイスのセットのうち少なくとも1つを特徴付ける複数の物理的パラメータ値を設定することと、表現モデルを介して応答を計算することとを含むように要約できる。
【0039】
態様16.デジタル波形表現を生成することは、量子プロセッサに結合されるサーバーから受信されるアナログ波形に基づいてデジタル波形表現を生成することを含む、態様15の方法。
【0040】
態様17.デジタル波形表現を波形値のセットに分解することは、デバイス接続性表現におけるチャンネルのセットに基づいてデジタル波形表現を波形値のセットに分解することを含み、チャンネルのセットは、量子プロセッサにおける制御線のセットに対するプログラマブルデバイスのセットの多くの通信可能結合を表す、態様15の方法。
【0041】
態様18.デバイス接続性表現におけるチャンネルのセットのサブセットを識別することは、量子プロセッサにおける制御線のセットのサブセットに通信可能に結合されるプログラマブルデバイスのセットのサブセットを表すチャンネルのセットのサブセットを識別することを含む、態様15の方法。
【0042】
態様19.チャンネルのセットのサブセットに対応する波形値のセットのサブセットを選択することは、量子プロセッサにおける各プログラマブルデバイスにかけられるバイアスを各々が表す波形値のセットのサブセットを選択することを含む、態様15の方法。
【0043】
態様20.量子プロセッサにおける各プログラマブルデバイスにかけられるバイアスを各々が表す波形値のセットのサブセットを選択することは、量子プロセッサにおける量子ビットにかけられるバイアスを各々が表す波形値のセットのサブセットを選択することを含む、態様19の方法。
【0044】
態様21.量子プロセッサにおける各プログラマブルデバイスにかけられるバイアスを各々が表す波形値のセットのサブセットを選択することは、量子プロセッサにおける結合器にかけられるバイアスを各々が表す波形値のセットのサブセットを選択することを含む、態様19の方法。
【0045】
態様22.量子プロセッサにおけるプログラマブルデバイスのセットのうち少なくとも1つを特徴付ける複数の物理的パラメータ値を設定することは、量子プロセッサにおけるプログラマブルデバイスの臨界電流、物体インダクタンス及び静電容量のうち少なくとも1つに対する複数の物理的パラメータ値を設定することを含む、態様15の方法。
【0046】
態様23.表現モデルを介して応答を計算することは、複数の物理的パラメータ値及び波形値のセットのサブセットに基づいて応答を計算することを含む、態様15の方法。
【0047】
態様24.表現モデルを介して応答を計算することは、出力値のセットを計算することを含む、態様15の方法。
【0048】
態様25.態様15の方法は、応答を古典的状態に変換することを更に含むことができる。
【0049】
態様26.態様150の方法は、応答をユーザに返すことを更に含むことができる。
【0050】
態様27.量子プロセッサをシミュレートするシステムであって、量子プロセッサは、制御線のセットに通信可能に結合されているプログラマブルデバイスのセットを含み、制御線のセットのうち各1つは、プログラマブルデバイスのセットのうち1つにバイアスをかけるように動作可能であるシステムは、デジタルプロセッサと、プロセッサ実行可能命令を実行する場合、態様15~26のいずれかの方法をデジタルプロセッサに実行させるプロセッサ実行可能命令を記憶する持続性コンピュータ可読記憶媒体とを含むように要約できる。
【0051】
態様28.デバイスオブジェクトモデルを集積回路レイアウトから抽出する方法であって、デジタルプロセッサによって実行される方法は、デジタルプロセッサによって自律的に、デバイス概略図を設計概略図から抽出することと、デバイス接続性データをデバイス概略図から抽出することと、デバイス接続性データをデバイス接続性表現に書き込むことと、バイアスのセットをデバイス接続性データから抽出することと、バイアスのセットをデバイス接続性表現に書き込むこととを含むように要約できる。
【0052】
態様29.デバイス概略図を設計概略図から抽出することは、レイアウト対概略図ツールによって検証可能な設計概略図からデバイス概略図を抽出することを含む、態様28の方法。
【0053】
態様30.デバイス概略図を設計概略図から抽出することは、有向非巡回グラフに対応するデバイス概略図を抽出することを含む、態様28の方法。
【0054】
態様31.有向非巡回グラフに対応するデバイス概略図を抽出することは、有向非巡回グラフに対応する少なくとも1つの原子デバイスノードを含むデバイス概略図を抽出することを含む、態様30の方法。
【0055】
態様32.デバイス接続性データを抽出することは、デバイス指定、特性注釈、及び少なくとも1つの隣接デバイス接続のうち少なくとも1つを抽出することを含む、態様28の方法。
【0056】
態様33.バイアスのセットをデバイス接続性データから抽出することは、大域バイアスのセットを抽出することを含む、態様28の方法。
【0057】
態様34.大域バイアスのセットを抽出することは、パッドを少なくとも1つのプログラマブルデバイスに電気的に結合する接続部のセットを抽出することを含む、態様33の方法。
【0058】
態様35.態様28の方法は、デバイス接続性表現を実行してデバイスオブジェクトモデルを計算することを更に含むことができる。
【0059】
態様36.計算システムは、少なくとも1つのデジタルプロセッサと、少なくとも1つのデジタルプロセッサに通信可能に結合可能な少なくとも1つの持続性プロセッサ可読記憶媒体であって、少なくとも1つのデジタルプロセッサによってプロセッサ実行可能命令を実行する場合、態様28~35のいずれかの方法を少なくとも1つのデジタルプロセッサに実行させるプロセッサ実行可能命令のうち少なくとも1つを記憶する少なくとも1つの持続性プロセッサ可読記憶媒体とを含むように要約できる。
【0060】
態様37.プログラマブルデバイスのセットを含むアナログプロセッサの設計を確認する方法であって、デジタルプロセッサによって実行される方法は、デジタルプロセッサによって自律的に、設計実装形態の少なくとも一部に基づいてデバイス接続性表現をロードすることであって、デバイス接続性表現は、少なくとも1つのプログラマブルデバイスを特徴付ける特性のセットを含むことと、n個の規則のセットを識別することと、デバイス接続性表現がn番目の規則に合格するまで、反復的に、規則のセットのうちi番目の規則(但し、1≦i≦n)を選択することと、デバイス接続性表現がi番目の規則に合格したか又は合格しなかったかを判定することとを含むことができる。
【0061】
態様38.態様37の方法は、デバイス接続性表現がi番目の規則に合格しなかったとの判定に応じて、デバイス接続性表現がi番目の規則に合格するまで、反復的に、i番目の規則に合格しなかった特性のセットのうち少なくとも1つの特性を識別することと、i番目の規則に合格しなかった少なくとも1つの特性に対応する設計実装形態の一部を識別することと、設計実装形態を調整することとを更に含むことができる。
【0062】
態様39.規則のセットを識別することは、多くのプログラマブルデバイスを検査する規則のセットを識別することを含む、態様37の方法。
【0063】
態様40.規則のセットを識別することは、多くの制御デバイスを検査する規則のセットを識別することを含む、態様37の方法。
【0064】
態様41.規則のセットを識別することは、デバイス接続性データ特性のセットを検査する規則のセットを識別することを含む、態様37の方法。
【0065】
態様42.規則のセットを識別することは、アドレス指定線特性のセットを検査する規則のセットを識別することを含む、態様37の方法。
【0066】
態様43.計算システムは、少なくとも1つのデジタルプロセッサと、少なくとも1つのデジタルプロセッサに通信可能に結合可能な少なくとも1つの持続性プロセッサ可読記憶媒体であって、少なくとも1つのデジタルプロセッサによってプロセッサ実行可能命令を実行する場合、態様37~42のいずれかの方法を少なくとも1つのデジタルプロセッサに実行させるプロセッサ実行可能命令のうち少なくとも1つを記憶する少なくとも1つの持続性プロセッサ可読記憶媒体とを含むように要約できる。
【0067】
図面の幾つかの図の簡単な説明
図面において、同じ参照符号は、同様の要素又は動作を識別する。図面における要素のサイズ及び相対位置は、必ずしも原寸に比例していない。例えば、様々な要素の形状及び角度は、必ずしも原寸に比例しておらず、これらの要素の一部を、任意に拡大して位置決めし、図面の視認性を向上させてもよい。更に、図示の要素の特定の形状は、特定の要素の実際の形状に関する任意の情報を伝えるように必ずしも意図されておらず、図面で認識しやすいように、単に選択されていてもよい。
【図面の簡単な説明】
【0068】
【
図1】本システム及び方法による、量子プロセッサ、及び量子処理ユニット(QPU)モデルに関連付けられた命令を記憶する記憶媒体と通信しているデジタルプロセッサを含む計算システムの例の略図である。
【
図2】本システム及び方法による、量子プロセッサをシミュレートする方法を例示するフローチャートである。
【
図3】本システム及び方法による、デジタルコンピュータ及びアナログコンピュータを含む例示的な計算システムの略図である。
【
図4】本システム及び方法による、プロセッサによってデバイス接続性表現を生成する方法の例のフロー図である。
【
図5】本システム及び方法による、プロセッサによってデバイス接続性表現に基づいてデバイスオブジェクトモデルを確認する方法の例のフロー図である。
【
図6】本システム及び方法による、設計オブジェクトモデルを抽出して確認するシステムの例の略図である。
【
図7】動作中のプロセッサを表すように動作可能なデータ構造700の例を示す略図である。
【発明を実施するための形態】
【0069】
詳細な説明
下記の説明において、様々な開示の実装形態の完全な理解を与えるために、ある特定の詳細を示す。しかし、これらの特定の詳細の1つ又は複数の詳細無しで、又は他の方法、構成要素、材料などを用いて、実装形態を実施することができることが、当業者は分かる。他の場合、実装形態の不必要に曖昧な説明を回避するために、コンピュータシステム、サーバーコンピュータ、及び/又は通信ネットワークに関連付けられた周知の構造は、詳細に示され又は記載されていない。
【0070】
文脈上他の意味に解すべき場合を除き、下記の明細書及び特許請求の範囲全体にわたって、用語「含む(comprising)」は、「含む(including)」と同義であり、包含的である、又は制限がない(即ち、追加の非列挙要素又は方法動作を排除しない)。
【0071】
この明細書全体にわたる「1つの実装形態(one implementation)」又は「1つの実装形態(an implementation)」への参照は、実装形態に関連して記載された特定の特徴、構造又は特性が少なくとも1つの実装形態に含まれることを意味する。従って、この明細書全体にわたる様々な箇所における語句「1つの実装形態において(in one implementation)」又は「1つの実装形態において(in an implementation)」の様子は、必ずしも全て同じ実装形態を参照するとは限らない。更に、特定の特徴、構造又は特性を、1つ又は複数の実装形態において任意の適切な方法で組み合わせてもよい。
【0072】
この明細書及び添付の特許請求の範囲で使用されるように、単数形「1つの(a)」、「1つの(an)」及び「その(the)」は、文脈上他に明示がない限り、複数の指示対象を含む。用語「又は(or)」は一般的に、文脈上他に明示がない限り、「及び/又は(and/or)」を含む意味で使用されることにも留意すべきである。
【0073】
ここに規定の見出し及び要約書は、単に便宜のためであり、実装形態の範囲又は意味を解釈しない。
【0074】
用語「表現モデル」は、例えば、数値的又は解析的方法、数学的モデル及び物理的シミュレーションを含むために、この明細書及び添付の特許請求の範囲で使用される。
【0075】
用語「出力値」は、例えば、ルックアップテーブルから出力され、数学的モデル、波形などから出力される固有値、固有ベクトルを含むために、この明細書及び添付の特許請求の範囲で使用される。
【0076】
用語「デバイス接続性表現」は、例えば、デバイス接続性ファイル、データベース、グラフなどを含むために、この明細書及び添付の特許請求の範囲で使用される。
【0077】
典型的に、量子プロセッサは、一度に1人のユーザだけにアクセスすることができ、その結果、時間的制約のある実験、又は多くのユーザが量子プロセッサを必要とする場合に広範囲の研究を必要とする実験を開発することは、ユーザにとって比較的非能率的であることがある。この問題を扱う1つの手法は、時間的制約のある実験又は研究集約的実験用の量子プロセッサを表すために量子処理ユニット(QPU)モデルを実施するデジタルプロセッサを使用することである。
【0078】
既存の物理的量子プロセッサをシミュレートするQPUモデル
QPUモデルは、デジタルコンピュータによって実行可能な表現モデルのセットを含む。場合によっては、QPUモデルは、物理的量子プロセッサのデジタル表現であるソフトウェア基盤と考えられる。例えば、QPUモデルは、クライオスタットに設置された物理的量子プロセッサのデジタル表現であることができ、QPUモデルは、物理的量子プロセッサが利用できない間、物理的量子プロセッサ用の試験及び較正アルゴリズムを開発するために使用可能である。物理的量子プロセッサが利用できるようになると、QPUモデルを介して開発された試験及び較正アルゴリズムを、物理的量子プロセッサで実行することができる。
【0079】
物理的量子プロセッサは、超伝導量子干渉素子(SQUID)の形でプログラマブルデバイス(例えば、量子ビット及び結合器)を含む。QPUモデルは、物理的量子プロセッサにおける各デバイス又はデバイスの組み合わせからの応答を各々特徴付ける表現モデル(例えば、デバイスモデル)のセットを含むことができる。各表現モデルは、物理的量子プロセッサにおける各デバイスをデジタル的に表すことができる。例えば、第1の表現モデルは、物理的量子プロセッサにおける量子ビットを表すことができ、第2の表現モデルは、物理的量子プロセッサにおける結合器を表すことができる。表現モデルは、複合ジョセフソン接合(JJ)を含む量子ビットをデジタル的に表すことができる。JJ SQUIDの形における量子ビットの例が、米国特許第9,152,923号に記載されている。
【0080】
量子プロセッサ設計をシミュレートするQPUモデル
場合によっては、QPUモデルは、理論的量子プロセッサ(即ち、物理的量子プロセッサにまだ製造されていない量子プロセッサ設計)のデジタル表現であるソフトウェア基盤と考えられる。物理的量子プロセッサを較正及び試験する従来の方法に伴う難題の一部をQPUモデルが回避することができるので、デジタルプロセッサで実施されるQPUモデルは、量子プロセッサ設計をシミュレートするのに有用であることができる。
【0081】
従来の較正技法は、量子プロセッサが製造されることを必要とする。製造欠陥のために、物理的量子プロセッサのプログラマブルデバイス(例えば、量子ビット、結合器など)のばらつきが、存在することがあり、計算を実行する場合に悪い結果を引き起こすことがある。これに対処する典型的な手法は、物理的パラメータのセットを調整し、物理的量子プロセッサにわたってプログラマブルデバイスを少なくとも部分的に均質化することである。このような物理的パラメータの例は、物理的インダクタンス、静電容量、及び臨界電流(但し、これらに限定されない)を含む。しかし、物理的量子プロセッサでこれらの物理的パラメータを調整するのが難しいことがある。例えば、臨界電流及びインダクタンスを制御しながら、量子ビットにバイアスをかけることは、直接的であるが、難しいことがある。物理的パラメータを制御するのが難しいこのような場合、これらの物理的パラメータに対する値を、量子プロセッサからの応答から得る。しかし、制御可能入力ではなく出力としてこれらの値を有することは、量子プロセッサの能力を大幅に制限することがある。なぜなら、これらの物理的パラメータの制御は、量子プロセッサの適切な動作に必須であるからである。
【0082】
従って、物理的量子プロセッサの上述の制限は、量子プロセッサのデジタル表現(例えば、QPUモデル)を、較正及び設計に有利にすることができる。
【0083】
較正の文脈から、較正アルゴリズムを実行することができるように既存の物理的量子プロセッサをシミュレートするために、QPUモデルを実施するデジタルプロセッサを使用することができる。例えば、デジタルプロセッサは、優先順位の高い実験による使用のために利用できない量子プロセッサをシミュレートすることができる。物理的量子プロセッサで実行している実験を中断する代わりに、QPUモデルを実施するデジタルプロセッサを使用して、計算基盤(例えば、サーバー能力、デバイス接続性確認、解法接続性など)を試験し、較正アルゴリズムを開発することができる。
【0084】
設計の文脈から、理論的プロセッサを設計するためにQPUモデルを実施するデジタルプロセッサを使用することは、物理的量子プロセッサを使用することよりも柔軟であることができる。これは、ユーザが、デジタルプロセッサで実施されるQPUモデルに含まれるデバイスモデルに物理的パラメータ用の値を入力することができるからである。しかし、物理的量子プロセッサでこれらの物理的パラメータを調整するのが難しい。QPUモデルを実施するデジタルプロセッサにより、ユーザは、資源を費やすことなく、量子プロセッサ設計をモデル化し、物理的量子プロセッサを製造して試験することができる。更に、QPUモデルで物理的パラメータを調整する能力は、量子プロセッサ設計を製造する前に今後の量子プロセッサ設計に対する較正アルゴリズムを開発するのに有用であることができる。例えば、QPUモデルを実施するデジタルプロセッサを使用して、物理的パラメータを変更することによってデバイス応答がどのように影響を受けるかを特徴付けるアルゴリズムを開発することができる。一旦関係がより良く理解されると、学習を適用して、例えば、指定及びデバイス特性を判定することによって、量子プロセッサ設計を最適化することができる。
【0085】
本システム及び方法は、量子プロセッサをシミュレートするQPUモデルを実施するデジタルプロセッサを説明する。デジタルプロセッサを、デジタルプロセッサ又は量子プロセッサに役立つように動作可能なサーバーに結合する。デジタルプロセッサは、量子プロセッサで実行可能なアナログ波形を受信するように動作可能である。デジタルプロセッサは、波形の受信時に波形のデジタル表現(ここで、「波形表現」と呼ばれる)を生成するように動作可能である。波形表現を、デジタルプロセッサによって波形値のセットに分解することができる。各波形値は、量子プロセッサにおけるプログラマブルデバイスにかけられたバイアスを表す。波形値は、デジタルプロセッサによって読み取り可能な数値の形であることができる。波形表現を波形値に分解することは、デジタルプロセッサで実施されるデバイス接続性表現に基づいていることができる。
【0086】
デバイス接続性表現は、量子プロセッサ(例えば、既存の物理的量子プロセッサ又は量子プロセッサ設計)の厳密に正確な表現であることができ、量子プロセッサにおけるプログラマブルデバイスの応答を特徴付けるデータを含むことができる。デバイス接続性表現は、プログラマブルデバイス指定、及びプログラマブルデバイス間の結合(「チャンネル」とも呼ばれる)を記述するデータを含むことができる。例えば、デバイス接続性表現は、特定の量子ビットの複合ジョセフソン接合(CJJ)にバイアスをかける制御線を記述するチャンネルを含むことができる。
【0087】
デジタルプロセッサは、デバイス接続性表現に基づいて波形表現を波形値に分解するQPUモデルを実施することができる。1つの実装形態において、これは、特定のプログラマブルデバイスに関するデバイス接続性表現における多くのチャンネルを判定すること、プログラマブルデバイスにかけられるバイアスに対応する波形値のセットを選択すること、及び波形値のセットを表現モデルに送信することを含むことができる。
【0088】
デジタルプロセッサは、表現モデルで実施する多くの物理的パラメータ値を設定するように動作可能である。物理的パラメータ値及び波形値に基づいて、デジタルプロセッサは、応答を特徴付ける出力値のセットを計算する表現モデルを実施することができる。場合によっては、永久電流及びトンネリングエネルギーを含むアニーリングパラメータに対する値を、出力値のセットから得ることができる。
【0089】
物理的又は更に理論的量子プロセッサに対する量子プロセッサ又は設計の物理的インスタンスは、量子プロセッサを本質的に規定し、適用値(例えば、バイアス)に基づいて量子プロセッサの動作を規定する関連トポロジー(例えば、量子ビット、結合器の収集及び配置、プログラミング又はバイアスインターフェース、制御線、及び/又は読み出し(例えば、SQUIDS))を有する。量子プロセッサトポロジーは、例えば、プログラマブルデバイスのセットの少なくとも1つのデバイスにバイアスをかけることができる制御線のセットを指定する。
【0090】
図1は、量子プロセッサ106をシミュレートするQPUモデル104を実施するデジタルプロセッサ102を含む計算システム100の例の略図である。デジタルプロセッサ102は、持続性コンピュータ可読記憶媒体(
図1に図示せず、
図3参照)と通信している。システム100は、デジタルプロセッサ102及び量子プロセッサ106に役立つように動作可能なサーバー108を含む。サーバー108は、デジタルプロセッサ102及び量子プロセッサ106の両方に通信可能に結合されている。サーバー108は、アナログ波形112を量子プロセッサ106に転送するように動作可能な入出力(I/O)エレクトロニクス110(例えば、信号導体、フィルター、スイッチなど)のセットを介して量子プロセッサ106に結合されている。
【0091】
サーバー108は、プロセッサベースのデバイスで実行するハードウェアベースのサーバー又はソフトウェアベースのサーバーであってもよい。サーバー108は、問題(例えば、ユーザによって提示された問題)を特徴付ける又は表すハミルトニアンを受信し、ハミルトニアンに基づいて波形112を生成するように動作可能である。波形112は、量子プロセッサ106で実行可能であり、デジタルプロセッサ102によって受信可能である。
【0092】
場合によっては、量子プロセッサ106が利用できない場合、波形112をデジタルプロセッサ102に送信する。例えば、他のユーザのために量子プロセッサ106が利用できない場合、QPUモデル104に関連付けられたプロセッサ実行可能命令を記憶する持続性プロセッサ可読記憶媒体(例えば、メモリ回路、磁気媒体又は光媒体)と通信しているデジタルプロセッサ102に、波形112を送信する。
【0093】
他の場合、ユーザが、理論的量子プロセッサ又は量子プロセッサ設計をシミュレートすることに関心がある場合、波形112をデジタルプロセッサ102に送信する。例えば、ユーザが理論的量子プロセッサを設計している場合、理論的量子プロセッサのデバイスの物理的パラメータ値114を調整し、問題をサーバー108に提示し、理論的量子プロセッサを最適化するためにQPUモデル104の応答を観測することが望ましい。このような場合、システム100の量子プロセッサ106は、理論的量子プロセッサ又は量子プロセッサ設計である。物理的量子プロセッサを製造する前に、調整された物理的パラメータ値114を用いて理論的量子プロセッサをシミュレートすることからの学習を適用してサイクルを設計することができる。
【0094】
問題が量子プロセッサ106で解決されるべきである場合、波形112は、
図1における破線の矢印によって例示される順序に従う。問題がデジタルプロセッサ102で解決されるべきである場合、波形112は、
図1における実線の矢印によって例示される順序に従う。実線の矢印によって例示される順序を、すぐ後で説明する。
【0095】
波形112は、量子プロセッサ106で実行可能であり、デジタルプロセッサ102によって受信可能である。デジタルプロセッサ102は、QPUモデル104を実施するプロセッサ実行可能命令を記憶する少なくとも1つの持続性記憶媒体と通信している。動作中、波形112の受信時に、デジタルプロセッサ102は、量子プロセッサ106のプログラマブルデバイス118のセットを特徴付ける又は表すデジタル波形表現116を生成する。デジタルプロセッサ102は、デジタル波形表現116を波形値120a、120b、120c(総称して及び個々に120)のセットに分解する。説明を簡単にするために、3つの波形値120だけを
図1に示す。しかし、当業者は、3つ未満の又は3つを超える波形値120にデジタル波形表現116を分解することができることが分かる。波形値120は、量子プロセッサ106のプログラマブルデバイス118にかけられるバイアスを表す数のセットであることができる。
【0096】
デジタルプロセッサ102は、シミュレートされるプログラマブルデバイス118を識別し、デバイス接続性表現122を実施するように動作可能である。デバイス接続性表現122は、多くのチャンネル124a、124b、124c(総称して124)を含み、各チャンネルは、バイアスをかける制御線又は別のプログラマブルデバイス118に対するプログラマブルデバイス118の通信可能結合を表す。説明を簡単にするために、3つのチャンネル124だけを
図1に示す。しかし、当業者は、デバイス接続性表現122が3つ未満の又は3つを超えるチャンネル124を含むことができることが分かる。更に、デバイス接続性表現122は、デバイス指定、デバイス接続性、及び量子プロセッサ106におけるプログラマブルデバイス118にかけられるバイアスを特徴付ける又は表すデータを含む。幾つかの実装形態において、量子プロセッサ106は、量子プロセッサ設計(即ち、理論的量子プロセッサ)である。デジタルプロセッサ102は、シミュレートされるプログラマブルデバイスを制御する、デバイス接続性表現122におけるチャンネル124のサブセットを識別するように動作可能であり、波形値120の対応するサブセットを選択し、表現モデル126に送信するように動作可能である。
【0097】
各波形値120は、量子プロセッサ106のプログラマブルデバイス118にかけられるバイアス128(個々に、128a、128b、128c)のセットのうち各1つに対応する。説明を簡単にするために、3つのバイアス128だけを
図1に示す。しかし、当業者は、3つ未満の又は3つを超えるバイアス128をプログラマブルデバイス118にかけることができることが分かる。1つの実装形態において、波形値120aは、量子ビットにかけられるバイアス128aに対応することができ、システムハミルトニアンにおけるh
i項に対応することができる。1つの実装形態において、波形値120bは、結合強度を設定する結合器にかけられるバイアス128bに対応することができ、システムハミルトニアンにおけるJ
ij項に対応することができる(即ち、量子プロセッサにおける結合器の結合強度)。
【0098】
QPUモデル104に関連付けられた命令を実行する場合、デジタルプロセッサ102は、多くの物理的パラメータ値114を設定する。物理的パラメータ値114は、プログラマブルデバイス118の挙動を特徴付ける巨視的(即ち、直接測定可能な)パラメータ値を含む。場合によっては、物理的パラメータ値114を調整して、量子プロセッサ106にわたってプログラマブルデバイス118を少なくとも部分的に均質化することができる。物理的パラメータ値114は、臨界電流、インダクタンス、静電容量、又はこれらの組み合わせに対する値を含むことができる。1つの実装形態において、物理的パラメータは、プログラマブルデバイスのジョセフソン接合によって伝えられる臨界電流である。1つの実装形態において、物理的パラメータ値は、プログラマブルデバイスのジョセフソン接合にわたる静電容量に対する値である。1つの実装形態において、物理的パラメータ値は、プログラマブルデバイスの物体ループにおけるインダクタンスに対する値である。物理的パラメータ値114の少なくとも一部を、量子プロセッサ106の設計及びプログラマブルデバイス118から得る。幾つかの実装形態において、量子プロセッサ106が理論的量子プロセッサである場合、物理的パラメータ値114の少なくとも一部を、外部ユーザによって規定する。
【0099】
デジタルプロセッサ102は、物理的パラメータ値114及び波形値120に基づいて出力値130のセットの形で応答を計算するために表現モデル126を使用する。幾つかの実装形態において、表現モデル126は、個々のプログラマブルデバイス118の各応答を特徴付ける又は表す。幾つかの実装形態において、表現モデル126は、多くのプログラマブルデバイス118の応答を特徴付ける。プログラマブルデバイスのアニーリングパラメータを、出力値130から得ることができる。アニーリングパラメータは、量子プロセッサ106のエネルギー尺度に関する情報を提供することができる。例えば、トンネリングエネルギー及び量子ビットの永久電流などのアニーリングパラメータを、出力値130から得ることができる。場合によっては、量子プロセッサ106は、理論的量子プロセッサ又は量子プロセッサ設計である。幾つかの実装形態において、デジタルプロセッサ102は、出力値130を古典的状態(例えば、+1又は-1の状態)に変換し、デジタルプロセッサ102を介して古典的状態をユーザに返す。
【0100】
動作中のシステム100の用途例において、ユーザは、較正実験用の量子プロセッサ106で「量子ビットA」と名付けられたプログラマブルデバイス118にバイアスをかけることをシミュレートするために、要求をサーバー108に送信する。サーバー108は、波形112を、生成してデジタルプロセッサ102に送信する。波形112の受信時に、デジタルプロセッサ102は、量子プロセッサ106の全プログラマブルデバイス118(例えば、「量子ビットA」、「量子ビットB」など)を特徴付ける又は表すデジタル波形表現116を生成する。デジタルプロセッサ102は、量子プロセッサ106の全プログラマブルデバイス118にかけられるバイアスを表す波形値120のセットにデジタル波形表現116を分解する。デバイス接続性表現122は、「量子ビットA」のCJJにかけられるバイアスを表す第1のチャンネル124a「量子ビット-cjj-A」、「量子ビットA」の物体ループにかけられるバイアスを表す第2のチャンネル124b「量子ビット-fb-A」、及び「量子ビットB」のCJJにかけられるバイアスを表す第3のチャンネル124c「量子ビット-cjj-B」を含む(実装形態は典型的に、実質的により大きい数のチャンネル124を使用することができ、ここで説明を簡単にするために、3つのチャンネルだけを選択することに留意しよう)。「量子ビットA」をシミュレートするために、デジタルプロセッサ102は、デバイス接続性表現122における「量子ビットA」に通信可能に結合される線を表すチャンネル(例えば、チャンネル「量子ビット-cjj-A」124a及びチャンネル「量子ビット-fb-A」124b)のサブセットを識別する。デジタルプロセッサは、波形値120からチャンネル「量子ビット-cjj-A」及びチャンネル「量子ビット-fb-A」にバイアスをかける命令を表す波形値120a、120bの対応するサブセットを選択する。デジタルプロセッサ102は、表現モデル126を使用し、波形値120a、120b及び物理的パラメータ値114に基づいて応答を計算する。
【0101】
場合によっては、サーバー108は、量子プロセッサ106で実行されるべき波形112を送信してもよい。問題が量子プロセッサ106で解決されるべきである場合、波形112は、
図1における破線の矢印によって例示される順序に従うように動作可能である。
【0102】
破線の矢印によって例示される順序の実装形態の例において、波形112は、量子プロセッサ106で実行可能である。量子プロセッサ106は、I/Oエレクトロニクス110を介して波形112を受信するように動作可能である。量子プロセッサ106は、波形112を実行するように動作可能であり、バイアス128をプログラマブルデバイス118にかけることを含むことができる。バイアス128を、制御線132を介してプログラマブルデバイス118にかけることができる。制御線132を、プログラマブルデバイス118に通信可能に結合する。例えば、システムハミルトニアンのhi項を実現する量子ビットに誘導結合される制御線を介して、バイアスを量子ビットにかけることができる。別の例において、システムハミルトニアンのJij項を実現する誘導結合制御線を介して、バイアスを結合器にかけることができる。
【0103】
量子プロセッサ106は、出力値130の形で応答を計算するように動作可能である。量子アニーリング処理及びエネルギー尺度(例えば、横エネルギーA(s)、及び問題ハミルトニアンB(s)に加えられるエネルギー)に関する情報を提供するアニーリングパラメータを、出力値130から得ることができる。アニーリングパラメータの例は、永久電流、トンネリングエネルギー、及びプログラマブルデバイス118の他のパラメータを含むことができる。幾つかの実装形態において、量子プロセッサ106は、物理的パラメータ値114を設定するように動作可能でなく、従って、物理的パラメータ値を得る。物理的パラメータ値114を、出力値130から得ることができる。物理的パラメータの例は、臨界電流、インダクタンス、及び静電容量を含むことができる。場合によっては、QPUモデル104によって計算される出力値130は、量子プロセッサ106によって計算される出力値130の大きさの範囲内にある、又は量子プロセッサ106によって計算される出力値130に等しい。
【0104】
図2は、本システム及び方法による、量子プロセッサをシミュレートする方法200を例示するフローチャートである。方法200は、他の実装形態において、特定の動作を省略する、及び/又は追加動作を追加することができるが、動作202~216を含む。1つ又は複数のデジタルプロセッサ、1つ又は複数の持続性コンピュータ可読記憶媒体(ここで、持続性プロセッサ可読記憶媒体とも呼ばれる)、及び任意選択的に物理的アナログプロセッサを含む計算システムによって、命令、又はユーザによって提示された問題に応じて、方法200を実行することができる。
【0105】
方法200は、例えば、別のルーチンからの呼び出しに応じて、202で開始する。
【0106】
204で、デジタル波形表現を生成する。デジタル波形表現を生成することは、デジタルプロセッサ及び量子プロセッサの両方に結合されるサーバーから受信されるアナログ波形に基づいてデジタル波形表現を生成することを含むことができる。1つの実装形態において、デジタル波形表現は、量子プロセッサにおけるプログラマブルデバイスのセットを特徴付ける又は表す。1つの実装形態において、デジタル波形表現は、理論的量子プロセッサ(例えば、量子プロセッサ設計)における全プログラマブルデバイスを特徴付ける又は表す。
【0107】
206で、デジタル波形表現を波形値のセットに分解する。多くのチャンネルを含むデバイス接続性表現に基づいて、デジタル波形表現を波形値のセットに分解することができる。デバイス接続性表現は、デバイス指定、デバイス接続性、及び量子プロセッサにおけるプログラマブルデバイスにかけられるバイアスを特徴付けるデータを含むことができる。1つの実装形態において、デジタル波形表現を波形値のセットに分解することは、量子プロセッサにバイアスをかける制御線に対するプログラマブルデバイスの通信可能結合を表す多くのチャンネルに基づいてデジタル波形表現を波形値のセットに分解することを含むことができる。
【0108】
208で、デバイス接続性表現におけるチャンネルのサブセットを識別する。デバイス接続性表現におけるチャンネルのサブセットを識別することは、量子プロセッサにおけるプログラマブルデバイスのサブセットを制御するチャンネルのサブセットを識別することを含むことができる。1つの実装形態において、デバイス接続性表現におけるチャンネルのサブセットを識別することは、理論的量子プロセッサ(即ち、量子プロセッサ設計)におけるプログラマブルデバイスのサブセットを制御するチャンネルのサブセットを識別することを含む。
【0109】
210で、チャンネルのサブセットに対応する波形値のサブセットを、波形値のセットから選択する。チャンネルのサブセットに対応する波形値のサブセットを選択することは、量子プロセッサにおける各プログラマブルデバイスにかけられるバイアスを各々が表す波形値のサブセットを選択することを含むことができる。波形値は、システムハミルトニアンのhi項を実現する量子ビットにかけられる各バイアス、又はシステムハミルトニアンのJij項(即ち、結合強度)を実現する結合器にかけられる各バイアスに対応する多くのセット又は数のセットであることができる。1つの実装形態において、チャンネルのサブセットに対応する波形値のサブセットを選択することは、量子プロセッサにおける量子ビットにかけられるバイアスを各々が表す波形値のサブセットを選択することを含む。1つの実装形態において、チャンネルのサブセットに対応する波形値のサブセットを選択することは、理論的量子プロセッサ(即ち、量子プロセッサ設計)におけるプログラマブルデバイスにかけられるバイアスを各々が表す波形値のサブセットを選択することを含む。
【0110】
212で、多くの物理的パラメータ値を設定する。物理的パラメータは、プログラマブルデバイスの挙動を特徴付ける巨視的(即ち、直接測定可能な)パラメータを含む。物理的パラメータ値を設定して、量子プロセッサにわたってプログラマブルデバイスを少なくとも部分的に均質化することができる。物理的パラメータの例は、プログラマブルデバイスのJJによって伝えられる臨界電流、プログラマブルデバイスの物体ループのインダクタンス、プログラマブルデバイスのJJにわたる静電容量、又はこれらの組み合わせを含むことができる。1つの実装形態において、多くの物理的パラメータ値を設定することは、臨界電流、インダクタンス、静電容量、又はこれらの組み合わせに対する値を設定することを含むことができる。
【0111】
214で、応答を計算する。応答を計算することは、212で設定された物理的パラメータ値の数及び210で選択された波形値のサブセットに基づいて、出力値のセットを計算する表現モデルを実施することを含むことができる。表現モデルは、プログラマブルデバイスの応答、又は量子プロセッサにおける多くのプログラマブルデバイス間の相互作用を特徴付ける。幾つかの実装形態において、応答を計算することは、量子プロセッサにおけるプログラマブルデバイスのセットの応答を特徴付ける出力値のセットを計算することを含むことができる。幾つかの実装形態において、応答を計算することは、理論的量子プロセッサ(即ち、量子プロセッサ設計)におけるプログラマブルデバイスのセットの応答を特徴付ける出力値のセットを計算することを含むことができる。幾つかの実装形態において、応答を計算することは、出力値のセットを古典的状態に変換し、古典的状態をユーザに返すことを更に含むことができる。
【0112】
216で、方法200を、例えば再度呼び出すまで、方法200は、終了する。
【0113】
図3は、デジタルコンピュータ302を含む計算システム300を例示する。デジタルコンピュータ302の例は、古典的デジタル処理タスクを実行するために使用可能な1つ又は複数のデジタルプロセッサ304を含む。デジタルコンピュータ302は、少なくとも1つのシステムメモリ306、及びシステムメモリ306を含む様々なシステム構成要素をデジタルプロセッサ304に結合する少なくとも1つのシステムバス308を更に含んでもよい。システムメモリ306は、QPUモデル命令モジュール310及び他の命令を記憶してもよい。他の命令は、デバイスオブジェクトモデルを抽出し、プロセッサ設計を確認する方法を含むことができる。システムメモリ306は、デバイスを収集して修正する方法、オブジェクトデバイスモデルからデータを集約して検索する方法、及び集約データを継続して管理する方法を1つ又は複数のプロセッサに実施させるプロセッサ実行可能命令を記憶してもよい。システムメモリ306は、複数のアルゴリズム(例えば、較正アルゴリズム)に各々が適用可能な方法を記憶することができる。
【0114】
システムメモリ306は、動作中のプロセッサを表すデータ構造を記憶することができる。動作中のプロセッサは、較正又は試験中のプロセッサを含むことができる。データ構造を、較正用の複数のアルゴリズムに適用することができる。データ構造は、デバイスのセットの表現、デバイスの各セットの間の接続性、各デバイスの固有特性、及び各デバイスに関するバイアス情報を含むことができる。システムメモリ306は、データ構造及び各デバイス用の規定のセットをロードするインターフェース(例えば、
図6のデバイス接続性表現614)を記憶することができる。
【0115】
デジタルプロセッサ304は、例えば、1つ又は複数の中央処理装置(「CPU」)、グラフィック処理ユニット(「GPU」)、デジタル信号プロセッサ(「DSP」)、特定用途向け集積回路(「ASIC」)、プログラマブルゲートアレイ(「FPGA」)、プログラマブル論理制御器(「PLC」)など、及び/又はこれらの組み合わせの任意の論理処理ユニット又は回路(例えば、集積回路)であってもよい。
【0116】
幾つかの実装形態において、計算システム300は、1つ又は複数の量子プロセッサ314を含むことができるアナログコンピュータ312を含む。デジタルコンピュータ302は、例えば制御器316を介して、アナログコンピュータ312と通信してもよい。ここでより詳細に記載のように、デジタルコンピュータ302の命令でアナログコンピュータ312によって、特定の計算を実行してもよい。
【0117】
デジタルコンピュータ302は、ユーザ入出力サブシステム318を含んでもよい。幾つかの実装形態において、ユーザ入出力サブシステムは、1つ又は複数のユーザ入出力構成要素(例えば、ディスプレイ320、マウス322、及び/又はキーボード324)を含む。
【0118】
システムバス308は、メモリ制御器を有するメモリバス、周辺バス、及びローカルバスを含む任意の既知のバス構造又はアーキテクチャを使用することができる。システムメモリ306は、不揮発性メモリ(例えば、読み出し専用メモリ(「ROM」)、スタティックランダムアクセスメモリ(「SRAM」)、フラッシュNAND)、及び揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)(図示せず))を含んでもよく、持続性コンピュータ又はプロセッサ可読記憶媒体を含んでもよい。
【0119】
更に、デジタルコンピュータ302は、他の持続性コンピュータ又はプロセッサ可読記憶媒体、又は不揮発性メモリ326を含んでもよい。不揮発性メモリ326は、ハードディスク(例えば、磁気ディスク)を読み書きするハードディスクドライブ、取り外し可能光ディスクを読み書きする光ディスクドライブ、及び/又はソリッドステート媒体(例えば、NANDベースのフラッシュメモリ)を読み書きするソリッドステートドライブ(SSD)を含む様々な形をとってもよい。光ディスクは、CD-ROM又はDVDであることができる一方、磁気ディスクは、硬質回転磁気ディスク、又は磁気フロッピーディスク又はディスケットであることができる。不揮発性メモリ326は、システムバス308を介してデジタルプロセッサと通信してもよく、システムバス308に結合された適切なインターフェース又は制御器316を含んでもよい。不揮発性メモリ326は、プロセッサ又はコンピュータ可読命令、データ構造、又はデジタルコンピュータ302用の他のデータ(プログラムモジュールとも呼ばれる)用の長期記憶装置としての機能を果たしてもよい。
【0120】
デジタルコンピュータ302は、ハードディスク、光ディスク及び/又はソリッドステート記憶媒体を使用するように記載されているが、他のタイプの持続性及び不揮発性コンピュータ可読媒体(例えば、磁気カセット、フラッシュメモリカード、フラッシュ、ROM、スマートカードなど)を使用することができることが、当業者は分かる。幾つかのコンピュータアーキテクチャは、持続性揮発性メモリ及び持続性不揮発性メモリを使用することが、当業者は分かる。例えば、揮発性メモリにおけるデータを、不揮発性メモリにキャッシュすることができる。又は、ソリッドステートディスクは、集積回路を使用して、不揮発性メモリを提供する。
【0121】
様々なプロセッサ又はコンピュータ可読命令、データ構造、又は他のデータを、システムメモリ306に記憶することができる。例えば、システムメモリ306は、遠隔クライアントと通信し、デジタルコンピュータ302及びアナログコンピュータ312上の資源を含む資源の使用をスケジュールする命令を記憶してもよい。更に、例えば、システムメモリ306は、少なくとも1つのプロセッサによってプロセッサ実行可能命令又はデータを実行する場合、ここに記載の量子プロセッサシミュレーション方法を実行する命令を実行する様々なアルゴリズムを少なくとも1つのプロセッサに実行させるプロセッサ実行可能命令又はデータのうち少なくとも1つを記憶してもよい。例えば、システムメモリ306は、デジタル波形表現を生成し、デバイス接続性表現におけるチャンネルに対応する波形値を選択し、及び/又は応答を計算するプロセッサ又はコンピュータ可読命令を含む量子プロセッサシミュレーション命令モジュール310を記憶してもよい。このような規定は、例えばここでより詳細に記載のように、波形表現を波形値のセットに分解すること、及び出力値のセットを計算することを含んでもよい。
【0122】
幾つかの実装形態において、システムメモリ306は、アナログコンピュータ312に対する前処理、相互処理及び後処理を実行するプロセッサ又はコンピュータ可読計算命令及び/又はデータを記憶してもよい。システムメモリ306は、アナログコンピュータ312と相互作用するアナログコンピュータインターフェース命令のセットを記憶してもよい。アナログコンピュータ312は、少なくとも1つのアナログプロセッサ(例えば、量子プロセッサ314)を含んでもよい。絶縁環境で、例えば、熱、磁場及び他の外部雑音(図示せず)から量子コンピュータの内部要素を遮蔽する絶縁環境で、アナログコンピュータ312を設けることができる。絶縁環境は、例えば、約1°K(ケルビン)未満の温度までアナログプロセッサを低温で冷却するように動作可能な冷却器(例えば、希釈冷却器)を含んでもよい。
【0123】
アナログコンピュータ312は、プログラマブル素子(例えば、量子ビット、結合器、及び他のプログラマブルデバイス)を含むことができる。量子ビットを、読み出しシステム328を介して読み出すことができる。読み出し結果を、デジタルコンピュータ302の他のコンピュータ又はプロセッサ可読命令によって受信することができる。量子ビットを、量子ビット制御システム330を介して制御することができる。量子ビット制御システム330は、オンチップデジタル/アナログ変換器(DAC)、及び目標デバイスにバイアスをかけるように動作可能なアナログ線を含むことができる。量子ビットを結合する結合器を、結合器制御システム332を介して制御することができる。結合器制御システム332は、同調素子(例えば、オンチップDAC及びアナログ線)を含むことができる。
【0124】
設計オブジェクトモデルは、システムの設計の意図を明確に示すシステム(例えば、計算システム)のデータの表現であり、プロセッサ(例えば、量子プロセッサ)におけるデバイスの入出力ポートの記述を含むことができる。デバイスの物理的設計を表すデバイスオブジェクトモデルを、デバイス接続性表現を読み取ることによって生成することができる。存在、様々な特性、バイアス、及びプロセッサにおけるデバイスの接続性を、デバイス接続性表現からプログラム可能に抽出することができる。設計オブジェクトモデル及び/又はデバイス接続性表現を確認する既存の手法は、製造されるべき関連プロセッサを必要とし、確認ステップは、手動であり、その結果、間違いやすい。
図4、
図5、及び
図6は、デバイス接続性表現を生成し、関連プロセッサの製造を必要とすることなく、設計オブジェクトモデルを確認するシステム及び方法を説明する。
【0125】
図4は、本システム及び方法による、プロセッサでデバイス接続性表現を生成する方法400の例のフロー図である。幾つかの実装形態において、方法400によって生成されるデバイス接続性表現を、
図1のデバイス接続性表現122又は
図2の方法200で実施することができる。幾つかの実装形態において、方法400の後に、
図5の方法500が続くことができる。方法400は、他の実装形態において、特定の動作を省略する、及び/又は追加動作を追加することができるが、動作402~420を含む。方法400を、プロセッサ(例えば、
図3のデジタルプロセッサ304)によって実行することができる。
【0126】
方法400は、例えば、別のルーチンからの呼び出しに応じて、402で開始する。
【0127】
404で、概念設計を生成する。概念設計は、プロセッサ設計に対するユーザの意図の表現であることができる。概念設計は、プロセッサ設計の少なくとも1つの構造又は特徴のシミュレーションを含むことができる。例えば、概念設計は、超伝導集積回路におけるジョセフソン接合のシミュレーションを含むことができる。
【0128】
406で、設計実装形態を生成して、概念設計を実現する。設計実装形態は、集積回路レイアウトであることができる。1つの実装形態において、設計実装形態を生成することは、アナログ設計及びシミュレーション環境でアナログプロセッサレイアウトを設計することを含む。
【0129】
408で、設計概略図を生成する。設計概略図を、設計実装形態(即ち、アナログプロセッサレイアウト)に基づいて生成してもよい。1つの実装形態において、設計概略図を、概念設計に基づいて生成してもよい。設計概略図は、レイアウト対概略図ツールによって検証可能である。幾つかの実装形態において、設計概略図は、他の従来の電子設計自動化ツールによって検証可能である。1つの実装形態において、設計概略図を、設計実装形態と同じアナログ設計及びシミュレーション環境で生成することができる。
【0130】
410で、デバイス概略図を抽出する。デバイス概略図を、設計概略図から抽出してもよい。デバイス概略図は、有向非巡回グラフに対応してもよい。1つの実装形態において、デバイス概略図は、有向非巡回グラフの要素(例えば、頂点、葉など)に対応する少なくとも1つの原子デバイスノードを含む。
【0131】
412で、デバイス接続性データを、デバイス概略図から抽出する。デバイス接続性データを、デバイス接続性グラフで表してもよい。デバイス接続性データを、ネットリスト装置、デバイス概略図をテキストファイルに書き出すツールによって抽出することができ、デバイス接続性データの各特徴を表す。1つの実装形態において、デバイス接続性データを、特注書き込みネットリスト装置によって抽出する。デバイス接続性データは、デバイス特性、及び少なくとも1つの隣接デバイスに対する各デバイスの接続性を含むことができる。デバイス特性の1つの例は、デバイスのタイプ又は機能を示すデバイス指定である。例えば、デバイス指定は、デバイスが量子ビットであることを示してもよい。デバイス特性の別の例は、デバイスに添付されたメタデータを含むことができる特性注釈である。特性注釈は、少なくとも1つのデフォルト特性を含むことができる。1つの実装形態において、デバイス接続性データを抽出することは、デバイス指定、特性注釈、隣接デバイス接続(即ち、局所バイアス)、又はこれらの組み合わせを抽出することを含む。
【0132】
任意選択的に、414で、デバイス接続性データを、持続性コンピュータ可読媒体に記憶されたデバイス接続性表現に書き込む。
【0133】
416で、バイアス情報を抽出する。バイアス情報を、アルゴリズムによってデバイス接続性データから抽出することができる。バイアス情報を抽出することは、大域バイアスのセットを抽出することを含んでもよい。大域バイアスは、大域バイアス線のセットによって少なくとも1つのデバイスにかけられるバイアスを含む。大域バイアス線は、連続してデバイスのセットにバイアスをかけることができる。量子プロセッサにおいて、大域バイアス線は、パッド(例えば、ボンディングパッド)をデバイスのセットに電気的に結合し、各バイアスを各デバイスにかける。バイアス情報は、量子プロセッサにおけるデバイスの各セットに対するパッドの電気的結合の表現を含む。1つの実装形態において、バイアス情報を抽出することは、少なくとも1つの隣接デバイスによってデバイスにかけられるバイアスを含む局所バイアスのセットを抽出することを含む。
【0134】
418で、バイアス情報を、デバイス接続性表現に書き込む。動作414を方法400で省略した場合、デバイス接続性データ及びバイアス情報の両方を、418でデバイス接続性表現に書き込む。
【0135】
420で、方法400を、例えば再度呼び出すまで、方法400は、終了する。
【0136】
場合によっては、デバイスオブジェクトモデルを、プロセッサ設計の正確な概念表現と考えることができる。従って、デバイスオブジェクトモデルの特定の検査を実行して、プロセッサ設計の正確さ及び完全性を確認することが望ましい。1つの実装形態において、デバイスオブジェクトモデルの検査は、特定の数の量子ビットが含まれていることを検査することを含むことができる。メモリにおけるデバイス接続性表現を読み込むことによって、デバイスオブジェクトモデルを生成することができるので、デバイス接続性データ特性を含むデバイス接続性表現の特性を規則のリストに対して検査することによって、デバイスオブジェクトモデルを確認することができる。規則は、プロセッサの特定の設計に左右され、設計意図を示す。規則の例は、特定の数の量子ビットを有するプロセッサである。デバイス接続性表現は、設計実装形態を含むチェーンの一部である。従って、特性が規則に合格しない場合、不合格特性を、識別し、設計実装形態に戻って追跡することができ、特性が規則に合格するまで、設計実装形態を調整することができる。
【0137】
図5は、本システム及び方法による、プロセッサにおけるデバイス接続性表現に基づいてデバイスオブジェクトモデルを確認する方法500の例のフロー図である。幾つかの実装形態において、方法500の前に、
図4の方法400が来ることができる。方法500は、他の実装形態において、特定の動作を省略する、及び/又は追加動作を追加することができるが、動作502~520を含む。方法500を、プロセッサ(例えば、
図3のデジタルプロセッサ304)によって実行することができる。
【0138】
方法500は、例えば、別のルーチンからの呼び出しに応じて、502で開始する。
【0139】
504で、デバイス接続性表現をロードする。デバイス接続性表現は、設計実装形態(例えば、設計レイアウト)の少なくとも一部に基づいていることができる。デバイス接続性表現は、少なくとも1つのプログラマブルデバイスを特徴付ける特性のセットを含むことができる。1つの実装形態において、デバイス接続性表現をロードすることは、較正環境でデバイス接続性表現をロードすることを含む。幾つかの実装形態において、デバイス接続性表現をロードすることは、デバイスオブジェクトモデル(例えば、
図6におけるデバイスオブジェクトモデル622)をロードすることを含むことができる。
【0140】
506で、n個の規則のセットを識別する。n個の規則のセットは、デバイス接続性表現の特性を検査することができる。幾つかの実装形態において、n個の規則のセットは、デバイス概略図、デバイス接続性データ、バイアス情報、又はこれらの組み合わせの特性を検査することができる。n個の規則のセットは、下記のうち少なくとも1つを検査することができる。
プログラマブルデバイス(例えば、量子ビット、結合器、シフトレジスタ要素、読み出し要素など)の存在及び/又は数。
各プログラマブルデバイスに関連付けられた制御デバイス(例えば、デジタル/アナログ変換器(DAC))の完全性及び/又は数。
量子ビットの次数、制御デバイスとプログラマブルデバイスとの間の接続などを含むデバイス接続性データ特性。
シフトレジスタグラフの視覚表現の検査、量子ビットから読み出し要素への結合(例えば、読み出しルート)などを含むシフトレジスタグラフ。
一意アドレス可能DACの存在、並列プログラミングの速度、充填アドレス可能空間の効率などを含むアドレス指定線特性。
デバイスのバイアス着色(例えば、隣接量子ビットから独立してアニールする各量子ビットの能力)。
【0141】
幾つかの実装形態において、n個の規則のセットを識別することは、上述の特性と異なる特性を検査するn個の規則のセットを識別することを含むことができる。
【0142】
508で、i番目の規則をn個の規則のセットから選択する(但し、1≦i≦n)。例えば、1番目の規則をn個の規則のセットから選択する。
【0143】
510で、デバイス接続性表現がi番目の規則に合格したか又は合格しなかったかを判定する。例えば、デジタルプロセッサは、デバイス接続性表現が1番目の規則に合格したか又は合格しなかったかを判定することができる。例えば、デジタルプロセッサは、デバイス接続性表現が特定の数の量子ビットを含むかどうかを判定することができる。デバイス接続性表現は、デバイス接続性データから書き込まれたデバイスの表現を含む。更に、デバイス接続性表現は、バイアス情報から書き込まれたバイアスの表現を含む。デバイス接続性表現の各要素を、各デバイス接続性データ特性に関連付けることができる。各デバイス接続性データ特性は、動作504の設計実装形態の一部に対応することができる。デバイス接続性表現がi番目の規則に合格した場合、動作518を実行する。デバイス接続性表現がi番目の規則に合格しなかった場合、動作512を実行する。例えば、デバイス接続性表現が特定の数の量子ビットを必要とすることを示す1番目の規則に、デバイス接続性表現が合格しなかった場合、動作512を実行する。
【0144】
512で、不合格デバイス接続性データ特性を識別する。不合格デバイス接続性データ特性は、1番目の規則に合格しないことがある。例えば、デバイス接続性データが特定の数の量子ビットを必要とすることを1番目の規則が示す場合、デジタルプロセッサは、不合格デバイス接続性データ特性を量子ビットの数として識別してもよい。デバイス接続性データを、設計概略図に基づいているデバイス概略図から抽出することができる。次に、設計概略図を、設計実装形態に基づいて生成することができる。従って、上述の要素を含むチェーン(
図6のシステム600に記載)を、デバイス接続性データから設計実装形態に追跡することができる。
【0145】
514で、不合格デバイス接続性データ特性に対応する設計実装形態の一部を識別する。例えば、デバイス接続性表現が特定の数の量子ビットを必要とすることを示す1番目の規則の場合、設計実装形態は、アナログプロセッサレイアウトであり得、不合格デバイス接続性データ特性は、量子ビットの数である。従って、デジタルプロセッサは、量子ビットの数に対応するアナログプロセッサレイアウトの一部を識別することができる。
【0146】
516で、デバイス接続性表現がi番目の規則に合格するまで、設計実装形態の少なくとも一部を調整する。例えば、デバイス接続性表現が特定の数の量子ビットを必要とすることを示す1番目の規則の場合、アナログプロセッサレイアウトの一部を調整することができる。アナログプロセッサレイアウトを調整すると、例えば、不合格デバイス接続性データ特性を変更することによって、デバイス接続性表現を直接的又は間接的に変更することができる。1番目の規則によって示される量子ビットの数をデバイス接続性表現が含むまで、アナログプロセッサレイアウトを調整することができる。幾つかの実装形態において、設計実装形態の少なくとも一部を調整すると、設計概略図、デバイス概略図、バイアス情報、又はこれらの組み合わせを変更することによって、デバイス接続性表現を直接的又は間接的に変更することができる。
【0147】
518で、デバイス接続性表現がn個の規則の全セットに合格したかどうかを判定する。デバイス接続性表現がn個の規則の全セットに合格した場合、方法500を、例えば再度呼び出すまで、方法500は、動作520で終了する。デバイス接続性表現がn個の規則の全セットに合格しなかった場合、又はn個の規則のセットのうち全規則が検査されているとは限らない場合、動作508を実行する。このような場合、次の規則(即ち、i+1番目の規則)を、動作508で選択し、方法500の次の動作を実行する。例えば、少なくとも1つの実装形態において、n=2及びn個の規則のセットは、デバイス接続性表現が特定の数の量子ビットを必要とすることを示す1番目の規則、及びデバイス接続性表現が特定の数のDACを必要とすることを示す2番目の規則を含むことができる。デジタルプロセッサは、デバイス接続性表現がこれらの2つの規則に合格したかどうかを判定してもよい。デバイス接続性表現がこれらの2つの規則に合格した場合、方法500は、520で終了する。デバイス接続性表現が、1番目の規則に合格し、2番目の規則に合格しなかった(即ち、必要な数の量子ビットを含み、必要な数のDACを含まない、又はDACの数が検査されていない)場合、動作508を実行する。次に、DACの数を示す2番目の規則を識別し、方法500の次の動作を実行する。
【0148】
幾つかの実装形態において、方法500におけるデバイス接続性表現を、デバイスオブジェクトモデルと交換することができる。このような場合、動作504を、デバイスオブジェクトモデルをロードする動作と交換する。デバイスオブジェクトモデルをロードすることは、デバイス概略図からデバイス接続性データ及びバイアス情報の表現を抽出することを含むことができる。デバイスオブジェクトモデルをロードすることは、較正ソフトウェア環境でデバイス接続性データ及びバイアス情報をロードすることを含むことができる。デバイス接続性データは、隣接デバイスに対するデバイスの局所バイアスを含むことができ、バイアス情報は、デバイスのセットに対するアナログ線の大域バイアスを含むことができる。
【0149】
図4の方法400を使用して、デバイス接続性表現を生成することができ、
図5の方法500を使用して、デバイスオブジェクトモデルを確認することができる。
図6のシステム600を含む命令を記憶するデジタルプロセッサによって、方法400及び方法500のうち少なくとも1つを実行することができる。
【0150】
図6は、設計オブジェクトモデルを抽出して確認するシステム600の例の略図である。システム600の要素を、持続性コンピュータ可読記憶媒体に記憶することができる。持続性コンピュータ可読記憶媒体は、実行される場合、システム600の要素を含む動作をデジタルプロセッサに実行させる。
【0151】
システム600は、プロセッサ設計に対するユーザの意図の表現であることができる概念設計602を含む。1つの実装形態において、概念設計602は、超伝導集積回路の一部を構成する構造(例えば、ジョセフソン接合)のシミュレーションを含むことができる。概念設計602を、設計実装形態604で実現することができる。設計実装形態604は、設計レイアウトの少なくとも一部であることができる。1つの実装形態において、設計実装形態604は、集積回路設計レイアウトの少なくとも一部である。1つの実装形態において、設計実装形態604は、アナログプロセッサ(例えば、量子プロセッサ)レイアウトの少なくとも一部である。設計実装形態604を、アナログ設計及びシミュレーション環境で生成することができる。システム600は、設計実装形態604に基づいて設計概略
図606を含む。幾つかの実装形態において、設計概略
図606は、概念設計602に基づいている。設計概略
図606を、レイアウト対概略図ツール608又は他の電子設計自動化ツールを用いて設計実装形態604に対して検証することができる。1つの実装形態において、設計実装形態604及び設計概略
図606を、同じアナログ設計及びシミュレーション環境で生成することができる。
【0152】
システム600は、デバイス概略
図610を含む。デバイス概略
図610を、設計概略
図606から抽出することができる。幾つかの実装形態において、デバイス概略
図610は、有向非巡回グラフの形であることができる。例えば、デバイス概略
図610は、有向非巡回グラフの要素(例えば、頂点、葉など)に対応する少なくとも1つの原子デバイスノードを含むことができる。
【0153】
システム600は、デバイス接続性データ612を含む。デバイス接続性データ612は、デバイス特性、及び少なくとも1つの隣接デバイスに対する各デバイスの接続性を含む。1つの実装形態において、デバイス接続性データ612は、グラフであることができる。1つの実装形態において、デバイス接続性データ612は、少なくとも1つの隣接デバイスによってデバイスにかけられるバイアスを含む局所バイアスのセットを含む。デバイス特性の1つの例は、デバイスのタイプ又は機能を示すことができるデバイス指定である。例えば、デバイス指定は、デバイスが量子ビットであることを示してもよい。デバイス特性の別の例は、デバイスに添付されたメタデータを含むことができる特性注釈である。デバイス接続性データ612を、ネットリストとして知ることもできる。デバイス接続性データ612を、デバイス接続性表現614に書き込むことができる。
【0154】
システム600は、バイアス情報616を含む。バイアス情報616を、デバイス接続性データ612から抽出することができる。バイアス情報616は、大域バイアス線のセットによって少なくとも1つのデバイスにかけられるバイアスを含む大域バイアスのセットを含む。量子プロセッサにおいて、大域バイアス線は、パッド(例えば、ボンディングパッド)をデバイスのセットに電気的に結合し、各バイアスを各デバイスにかける。大域バイアス線は、連続してデバイスのセットにバイアスをかけることができる。バイアス情報616は、デバイスの各セットに対するパッドの電気的結合の表現を含む。バイアス情報616を、デバイス接続性表現614に書き込むことができる。
【0155】
デバイス接続性表現614は、デバイス接続性データ612から書き込まれたプログラマブルデバイス618の表現、及びバイアス情報616から書き込まれたバイアス620の表現を含む。デバイス接続性表現614を、デジタルプロセッサによって読み取ることができる。デバイス接続性表現614の読み取りに応じて、デジタルプロセッサは、デバイスオブジェクトモデル622を計算することができる。幾つかの実装形態において、デバイス概略
図610からデバイス接続性データ612及びバイアス情報616を抽出することによって(即ち、デバイス接続性表現614無しで)、デバイスオブジェクトモデル622を計算することができる。デバイス接続性データ612及びバイアス情報616は、較正ソフトウェア環境でロードされるように動作可能である。
【0156】
システム600の要素は、概念設計602からデバイスオブジェクトモデル622まで基準のチェーンを構成する。概念設計602を、デバイスオブジェクトモデル622に対して確認することができる。確認624は、概念設計602の概念的正確さを評価するためにデバイスオブジェクトモデル622の検査を含むことができる。基準のチェーンをさかのぼることによって、間違いを識別することができる。確認624の方法を、
図5における方法500によって説明する。幾つかの実装形態において、デバイスオブジェクトモデル622は、量子プロセッサの表現である。
【0157】
プロセッサ較正は、プログラマブルデバイス、デバイス接続性、及び各較正インスタンスに対するバイアス機構の間の関係の記述を必要とする較正規則のセットを含むことができる。
図7は、多くの較正インスタンスでプロセッサを表すのに適しており、
図6のシステム600の特定の要素を含むデータ構造を例示する。
【0158】
図7は、動作中のプロセッサを表すように動作可能なデータ構造700の例を示す略図である。データ構造700の要素を、持続性コンピュータ可読記憶媒体に記憶することができる。持続性コンピュータ可読記憶媒体は、実行される場合、データ構造700の要素を含む動作をデジタルプロセッサに実行させる。
【0159】
データ構造700は、プログラマブルデバイス記述、及びデバイス概略図(例えば、
図6のデバイス概略
図610)から抽出されるバイアス情報を含むデバイス接続性表現702を含む。デバイス接続性表現702は、プログラマブルデバイス記述をメモリにロードするインターフェースであり、これによって、デバイスオブジェクトモデルを計算する。プログラマブルデバイス記述は、デバイス指定、デバイス接続性、各デバイスの固有特性、及び隣接デバイスによる各デバイスに対する局所バイアスを含むことができる。プログラマブルデバイス記述は、動作下でプロセッサ(例えば、アナログプロセッサ又は量子プロセッサ)を表すことができる。特に、プログラマブルデバイス記述は、較正下で量子プロセスを表すことができる。プログラマブルデバイスの例は、量子ビット、結合器、DAC、シフトレジスタ段、読み出し要素、インダクタンス同調器、プロセス制御監視デバイス、及び加熱器(但し、これらに限定されない)を含む。
【0160】
データ構造700は、継続較正データ704の表現を含む。較正データ704は、デバイスオブジェクトモデル710に集約され、デバイスオブジェクトモデル710から検索されるデータであることができる。データ構造700は、プログラマブルデバイス規定706の表現を含む。プログラマブルデバイス規定706は、各プログラマブルデバイスに対する構成特性注釈、バイアス注釈、及び接続性注釈を含む。プログラマブルデバイス規定706は、メタオブジェクト(例えば、構造及びクラス)の少なくとも1つのセットを含む。更に、データ構造700は、デバイスを収集して修正する方法を含むプログラマブルデバイス方法708用の命令を含む。プログラマブルデバイス方法708の幾つかの例は、下記を含むことができる(但し、下記に限定されない)。
特定の量子ビットに結合された量子ビットのセットを識別すること。
特定のDACをアドレス指定するバイアスを識別すること。
特定のデバイスに関連付けられたDACのセットを識別すること。
量子ビットから読み出しまでの経路の少なくとも一部を形成するシフトレジスタ段を識別すること。
【0161】
デバイスオブジェクトモデル710は、デバイス接続性表現702に基づいてプログラマブルデバイス表現を含む。データ構造700は、較正アルゴリズム712用の命令を含む。較正アルゴリズム712は、データを集約し、デバイスオブジェクトモデル710に含まれるプログラマブルデバイス表現からデータを検索する方法を含むことができる。例えば、較正アルゴリズム712を使用して、較正中にデバイスオブジェクトモデル710からデバイス表現にデータを集約することができる。較正アルゴリズム712は、較正データ704のバージョンを継続して管理する方法を含むことができる。
【0162】
上述の方法、処理、又は技法を、1つ又は複数の持続性プロセッサ可読媒体に記憶された一連のプロセッサ可読命令によって実施することができる。上述の方法、処理、又は技法の方法の幾つかの例を、断熱量子コンピュータ又は量子アニーラー(例えば、少なくとも1つのデジタルプロセッサを含むコンピュータ)の動作をプログラムする又は別の方法で制御する断熱量子コンピュータ又は量子アニーラー又はシステムなどの専用デバイスによって部分的に実行する。代替の例において、特定の動作を省略する、及び/又は追加動作を追加することができることが当業者は分かるが、上述の方法、処理、又は技法は、様々な動作を含んでもよい。単に例示的な目的で動作の例示の順序は、示され、代替の例で変わることができることが、当業者は分かる。上述の方法、処理、又は技法の例示的な動作(act)又は動作(operation)の一部を、反復的に実行する。上述の方法、処理、又は技法の幾つかの動作を、各反復中に、複数の反復の後、又は全反復の終わりに、実行することができる。
【0163】
要約書に記載の内容を含む例示の実装形態の上述の説明は、網羅的である、又は実装形態を開示の正確な形態に限定するように意図されていない。特定の実装形態及び例は、例示的な目的でここに記載されているが、当業者が分かるように、開示の精神及び範囲から逸脱することなく、様々な均等物の修正を行うことができる。様々な実装形態のここに規定の教示を、量子計算の他の方法(必ずしも、大体上述の量子計算用の例示的な方法とは限らない)に適用することができる。
【0164】
上述の様々な実装形態を組み合わせて、更なる実装形態を提供することができる。米国特許第9,152,923号、米国特許出願公開第2007/0239366号、2019年7月12日に出願の米国特許出願第62/873,711号、及び2019年7月29日に出願の米国特許出願第62/879,946号(但し、これらに限定されない)を含む、この明細書で参照され、及び/又は出願データシートに列挙された同一出願人による米国特許出願公開、米国特許出願、外国特許、及び外国特許出願の全部を、全体として参照によりここに引用したものとする。
【0165】
上述の説明に照らして、これらの変更及び他の変更を、実装形態に行うことができる。一般的に、下記の特許請求の範囲において、使用される用語は、明細書及び特許請求の範囲に開示の特定の実装形態に特許請求の範囲を限定するように解釈されるべきではなく、このような特許請求の範囲に権利を与える均等物の全範囲と共に全ての可能な実装形態を含むように解釈されるべきである。従って、特許請求の範囲は、開示によって限定されない。
【国際調査報告】