(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-05-08
(54)【発明の名称】量子回路およびそれを用いた方法
(51)【国際特許分類】
G06N 10/20 20220101AFI20230426BHJP
【FI】
G06N10/20
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022554515
(86)(22)【出願日】2021-03-10
(85)【翻訳文提出日】2022-09-09
(86)【国際出願番号】 US2021021673
(87)【国際公開番号】W WO2021188333
(87)【国際公開日】2021-09-23
(32)【優先日】2020-03-16
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-03-09
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】521548685
【氏名又は名称】ベイト インク.
(74)【代理人】
【識別番号】110000659
【氏名又は名称】弁理士法人広江アソシエイツ特許事務所
(72)【発明者】
【氏名】ブルコット,ボイチェフ
(72)【発明者】
【氏名】トゥウォビエツキ,ヤン
(72)【発明者】
【氏名】フレンボツキー,ブラディスラフ
(72)【発明者】
【氏名】ヤルニツキ,ビトルド
(57)【要約】
量子回路、および複数のキュービットを有する量子レジスタとともに使用する方法が提示される。本方法は:量子回路の複数のオラクルゲートを介して、複数のキュービット状態上で量子オラクル演算子を順次呼び出して、量子オラクル呼び出しのシーケンスを生成することと;量子回路の複数の拡散ゲートを介して、複数の拡散演算子を適用することであって、複数の拡散演算子のうちの選択された一つまたは複数が、オラクル呼び出しのシーケンスにおける量子オラクル呼び出しそれぞれの後に適用されることと;オラクル呼び出しのシーケンスおよび複数の拡散演算子を適用した後に、複数のキュービットからの測定結果に基づいて量子計算結果を生成することと、を含む。
【選択図】
図8
【特許請求の範囲】
【請求項1】
量子回路、および複数のキュービットを有する量子レジスタとともに使用する方法であって:
前記量子回路の複数のオラクルゲートを介して、前記複数のキュービット上で量子オラクル演算子を順次呼び出して、量子オラクル呼び出しのシーケンスを生成することと;
前記量子回路の複数の拡散ゲートを介して、複数の拡散演算子を適用することであって、前記複数の拡散演算子のうちの選択された一つまたは複数が、前記量子オラクル呼び出しのシーケンスにおける量子オラクル呼び出しのそれぞれの後に適用され、前記複数の拡散演算子のそれぞれが、前記複数のキュービットの一意的な非ゼロ固有サブセット上で動作することと;
前記オラクル呼び出しのシーケンスおよび前記複数の拡散演算子を適用した後に、前記複数のキュービットからの測定結果に基づいて量子計算結果を生成することと、
を含む方法。
【請求項2】
前記複数のキュービットのそれぞれが、対応する初期状態に初期化される、請求項1に記載の方法であって、前記量子回路の複数のアダマールゲートを介して、前記複数のキュービットのサブセットにアダマール変換を適用することをさらに含む方法。
【請求項3】
前記量子回路の複数のアダマールゲートを介して、前記複数のキュービットにアダマール変換を適用することを含む、請求項1に記載の方法。
【請求項4】
前記複数の拡散演算子が、連携して、前記複数のキュービットのそれぞれの状態上で動作する、請求項1に記載の方法。
【請求項5】
前記複数のキュービットの一意的な非ゼロ固有サブセットが、前記複数のキュービットの二つ以上の隣接キュービットを含む、請求項4記載の方法。
【請求項6】
前記複数の拡散演算子のうちの少なくとも一つが、前記複数のキュービットのそれぞれの上で動作する、請求項1に記載の方法。
【請求項7】
前記量子オラクルが、前記アンシラキュービットに結果をコードする、請求項1に記載の方法。
【請求項8】
前記測定結果に基づいて、前記アンシラキュービットを使用して前記量子回路の他の部分を条件付き実行する、請求項1に記載の方法。
【請求項9】
前記量子計算結果が部分解であり、前記複数の拡散演算子が最適化されて、前記部分解を生成する、請求項1に記載の方法。
【請求項10】
前記量子オラクル演算子または異なる量子オラクル演算子のうちの一つに基づいて完全解を生成する別の量子回路において、前記部分解が引き続き使用される、請求項9に記載の方法。
【請求項11】
複数のキュービット上で動作する量子回路であって:
前記複数のキュービット上で量子オラクル演算子を順次適用して、量子オラクル呼び出しのシーケンスを生成するように構成された複数のオラクルゲートと;
複数の拡散演算子を適用するように構成された複数の拡散ゲートであって、前記複数の拡散演算子のうちの選択された一つまたは複数が、前記量子オラクル呼び出しのシーケンスにおける量子オラクル呼び出しのそれぞれの後に適用され、前記複数の拡散演算子それぞれが、前記複数のキュービットの一意的な非ゼロ固有サブセット上で動作する複数の拡散ゲートと;
前記オラクル呼び出しのシーケンスが適用された後に、そして前記複数の拡散演算子が適用された後に、前記複数のキュービットからの測定結果に基づいて量子計算結果を生成するように構成された測定関数と、
を含む量子回路。
【請求項12】
前記複数のキュービットのそれぞれが、対応する初期状態に初期化され、前記量子回路が:
前記初期状態の非ゼロ固有サブセットにのみアダマール変換を適用するように構成された複数のアダマールゲートをさらに含む、請求項11に記載の量子回路。
【請求項13】
前記量子回路が:
前記複数のキュービットにアダマール変換を適用するように構成された複数のアダマールゲートをさらに含む、請求項11に記載の量子回路。
【請求項14】
前記複数の拡散演算子が、連携して、前記複数のキュービットのそれぞれの状態上で動作する、請求項11に記載の量子回路。
【請求項15】
前記複数のキュービットの一意的な非ゼロ固有サブセットが、前記複数のキュービットのうちの二つ以上の隣接キュービットを含む、請求項14に記載の量子回路。
【請求項16】
前記複数の拡散演算子のうちの少なくとも一つが、前記複数のキュービットのそれぞれの上で動作する、請求項11に記載の量子回路。
【請求項17】
前記量子オラクルが、前記アンシラキュービットに結果をコードする、請求項11に記載の量子回路。
【請求項18】
前記測定結果に基づいて、前記アンシラキュービットを使用して、前記量子回路の他の部分を条件付き実行する、請求項11に記載の量子回路。
【請求項19】
前記量子計算結果が部分解であり、前記複数の拡散演算子が最適化されて、前記部分解を生成する、請求項11に記載の量子回路。
【請求項20】
前記量子オラクル演算子または異なる量子オラクル演算子のうちの一つに基づいて完全解を生成する別の量子回路において、前記部分解が引き続き使用される、請求項19に記載の量子回路。
【発明の詳細な説明】
【技術分野】
【0001】
発明者 ボイチェフ・ブルコット(Wojciech Burkot)、ヤン・トゥウォビエツキ(Jan Tulowiecki)、ブラディスラフ・フレンボツキー(Vladyslav Hlembotskyi)、ビトルド・ヤルニツキ(Witold Jarnicki)
発明の技術分野
本発明は概して、計算機システムに関するものであり、詳細には量子計算に関するものである。
【背景技術】
【0002】
計算装置は、データを通信し、データを処理し、および/またはデータを記憶することが知られている。そのような計算装置は、無線スマートフォン、ラップトップ、タブレット、パーソナルコンピュータ(PC)、ワークステーション、スマートウォッチ、コネクテッドカー、およびビデオゲーム装置から、毎日数百万件のウェブ検索、ウェブアプリケーション、またはオンライン購入をサポートする、ウェブサーバおよびデータセンタまで、様々である。概して、計算装置は、プロセッサ、メモリシステム、ユーザ入出力インタフェース、周辺装置インタフェース、および相互接続バス構造を含む。
【0003】
古典的なデジタル計算装置は、二進数(ビット)にエンコードされたデータに基づいて動作し、各ビットは二つの確定した二つの状態(すなわち、0または1)のうちの一つを有する。対照的に、量子コンピュータは、量子力学的現象を利用して、データを量子ビットすなわちキュービット(qubit)としてエンコードし、この量子ビットは、従来の二つの状態の重ね合わせとすることができる。
【図面の簡単な説明】
【0004】
【
図1A】
図1Aは、先行技術の量子回路の概略ブロック図であり;
【
図1B】
図1Bは、本発明に準拠する量子計算アーキテクチャの一実施形態のブロック図であり;
【
図2A】
図2Aは、本発明に準拠する量子回路の一実施形態の概略ブロック図であり;
【
図2B】
図2Bは、本発明に準拠する量子回路の一実施形態の概略ブロック図であり;
【
図2C】
図2Cは、本発明に準拠する量子回路の一実施形態の概略ブロック図であり;
【
図2D】
図2Dは、本発明に準拠する量子回路の一実施形態の概略ブロック図であり;
【
図3A】
図3Aは、本発明に準拠する量子回路の一実施形態の概略ブロック図であり;
【
図3B】
図3Bは、本発明に準拠する量子回路の一実施形態の概略ブロック図であり;
【
図4A】
図4Aは、本発明に準拠する量子回路の一実施形態の概略ブロック図であり;
【
図4B】
図4Bは、本発明に準拠する量子回路の一実施形態の概略ブロック図であり;
【
図5】
図5は、本発明に準拠する量子回路の一実施形態の概略ブロック図であり;
【
図6】
図6は、本発明に準拠する量子回路の一実施形態の概略ブロック図であり;そして
【
図7】
図7は、本発明に準拠する方法の一実施形態の流れ図である。
【
図8】
図8は、本発明に準拠する方法の一実施形態の流れ図である。
【発明を実施するための形態】
【0005】
図1Aは、先行技術の量子回路の概略ブロック
図100である。詳細には、グローバー(Grover)のアルゴリズムの量子回路実装が提示されている。グローバーのアルゴリズムは、高い確率で量子解を見出だす量子アルゴリズムである。グローバーのアルゴリズムは、特定の出力値を生成する、「量子オラクル」、「オラクル演算子」、「オラクル関数」、または単に「オラクル」と呼ばれるブラックボックス関数への一意的入力に基づいている。グローバーのアルゴリズムは、オラクル関数のO(sqrt(N))回の評価で収束し、ここでNは、関数の定義域の大きさである。グローバーのアルゴリズムは、非構造化データベース検索、またはさらに一般的には逆関数の問題に適用されている。
【0006】
動作時には、n個のキュービットが初期化され、対応する数のアダマール(Hadamard(H))ゲートに適用される。各入力は、全ての初期状態の一様な重ね合わせを実現するためにアダマール変換される。オラクルゲート(O)が、変換された各キュービット状態に対してオラクル呼び出しを実行し、拡散ゲート(G)が、グローバー拡散演算子を実行する。この過程は、O(sqrt(N))回繰り返される。この時点の後、キュービットの測定により、Nの大きな値に対して1に近づく確率で量子解が得られる。例えば、John Wright,Lecture 4:Grover’s Algorithm,Carnegie Mellon University,Sept.21,2015を見られたい。
【0007】
図1Bは、本発明に準拠する量子計算アーキテクチャの一実施形態のブロック
図150である。詳細には、複数の量子ビットのうちの一つまたは複数のアダマール変換を適用する一つまたは複数のアダマール(H)ゲート112;対応する複数のキュービット(例えばキュービット状態)上で量子オラクル演算子を呼び出して量子オラクル呼び出しのシーケンスを生成するオラクル(O)ゲート113;および/または一つまたは複数の異なる拡散演算子を適用するグローバー拡散ゲート(G)115、を含む量子回路110が提示されている。詳細には、複数の拡散ゲート(G)を使用して複数の異なる拡散演算子を適用することができ、複数の拡散演算子のうちの選択された一つまたは複数が、オラクル呼び出しのシーケンスにおける量子オラクル呼び出しそれぞれの後に適用される。複数の異なる拡散演算子が使用されると同時に、これらの異なる拡散演算子のうちの一つまたは複数は、複数回適用することができる。他の量子論理ゲート116は、存在する場合、Xゲート、Yゲート、Zゲート、位相シフトゲート、CX、CY、および/またはCZゲートなどの制御ゲート、スワップゲート、トフォリ(Toffoli)ゲート、ドイチュ(Deutsch)ゲート、イジング(Ising)ゲート、フレドキン(Fredkin)ゲート、アダラス(Adalus)ゲート、および/または他の量子論理ゲート、ならびにそれらの組み合わせを、様々な回路構成でさらに含むことができる。動作時には、量子回路110は、複数のキュービットからの測定に基づいて量子計算結果を、追加の(補助(ancillary)またはアンシラ(ancilla))作業キュービットを使用してまたは使用せずに生成する。
【0008】
nキュービット量子計算機レジスタ120内のキュービット上でのアダマール変換を使用して生成されたあらゆる候補解の重ね合わせを含む前記レジスタにおける解のオラクル検証を量子回路110が使用し、追加の(補助)作業キュービットを量子回路が使用してもまたはしなくてもよいという場合での、グローバーのアルゴリズムの例示的実装を考える。この文脈で使用されるとおり、量子オラクル関数は、図示されている計算の一部または外部にあるものとすることができる。さらに、オラクル関数は、「ブラックボックス」とすることができるし、または、別の量子関数であって、記載された計算の一部として、その関数を構成するゲートを修正することができるか、さもなければそれらのゲートにオラクル結果を生成させることができるもの(例えば、重ね合わせにおける変数の割り当てによって一組の節の充足可能性を検証する関数のようなもの)とすることもできる。各オラクル呼び出しの後に単一のグローバーの拡散演算子を使用するグローバーのアルゴリズムに依拠する量子回路とは異なり)この量子回路は、少なくとも二つの異なる拡散演算子を採用し、そのうちの少なくとも一つが、各オラクル呼び出しの後に使用される。量子回路110はさらに、上記のグローバーのアルゴリズムの例示的実装に加えて、他の量子解の回路実装に使用することができる。
【0009】
これらの異なる拡散演算子は、グローバーの拡散演算子と同様に動作することができるが、レジスタ内のすべてのキュービットとは対照的に、ワイヤライン/キュービットのサブセット上でしか動作しない。様々な実施形態において、複数の拡散演算子それぞれが、複数のキュービットの一意的な(異なる)非ゼロ固有サブセット上で動作する。これらの異なる拡散演算子は、例えば、隣接するキュービットにのみ作用する2キュービット演算子を含むことができるが、しかし、p隣接キュービット(p=1またはp>2を含む)、および/またはキュービットの他の選択されたサブセットなどの上で動作する他の例も同様に採用することができる。他の非グローバー拡散演算子も同様に採用することができる。さらに、拡散演算子は、同一キュービットに作用してもしなくてもよく、作用先のキュービットの選択に至るまで同一であってもなくてもよい。拡散演算子は、選択の必要がある状態それぞれに到達することができるので、それらの演算子の一つが状態のサブセットに作用し、同一サブセットに出力が属するようにしてこの作用がなされるならば、別の演算子が存在してこのサブセット内の入力状態に作用すると、そのセットの外部に出力を生成する。
【0010】
様々な実施形態において、オラクルは、選択された構成要素に位相変化の印付けを行っても行わなくてもよく、または結果を追加の作業(アンシラ)キュービットにコードしてもしなくてもよく、結果を測定するやり方を提供し、次いで測定結果に基づいて、このやり方を使用して、量子回路110の他の部分を条件付きで実行することができる。
【0011】
オラクルおよび拡散演算子は、いかなる順序で使用することもでき、これらの拡散演算子を適用する順番は、例えば、同一のオラクルまたは異なるオラクル、例えばさらに単純なオラクルを利用する別の回路とともに引き続き使用される、最終解ではない部分解を見つけるように最適化することができる。オラクル/拡散演算子シーケンスが最適化できるので、補助キュービットまたは他のキュービットの測定などの測定により、すべてのまたはほぼすべての測定結果について、回路の引き続く部分の条件付き実行が可能になり、最終測定のみと比較して成功の全確率が増加する。オラクル/拡散演算子シーケンスは、例えば、長い回路よりも成功確率の低い短い回路を生成するように最適化することができ、その結果、解を得るのに必要なオラクル呼び出しの期待数が低下する。
【0012】
様々な実施形態において、拡散演算子は、拡散演算子Gと置き換わるオラクルの回路の部分を、結果に変化がないようにして省略することによって、Gの周りでオラクルの複雑さが減少するように構築することができる。この例に準拠して、オラクルへのアクセス、例えば、ブーリアン充足可能性問題、他の充足可能性問題、またはオラクルへのアクセスが可能である他の問題における変数の割り当ての充足可能性を検証するオラクルの場合が可能である。データベースのレコード数のサイズ増加に伴う回路の複雑さのスケーリングは、O(Log(N)*sqrt(N))より悪化せず、これは、解かれている特定の量子計算問題に応じて、個別的にさらに最適化することができる。
【0013】
様々な実施形態において、量子回路110のHゲート112、Oゲート113、Gゲート115、および他の量子論理ゲート116は、一つまたは複数の処理装置とともに実装することができる。それぞれそのような処理装置は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、マイクロコンピュータ、中央処理装置、フィールドプログラマブルゲートアレイ、プログラマブル論理装置、状態機械、論理回路系、アナログ回路系、デジタル回路系、ならびに/または回路系のハードコーディングおよび/もしくは動作命令に基づいて(アナログおよび/またはデジタル)信号を操作するいずれの装置であってもよい。それぞれそのような処理装置は、古典メモリまたは他のメモリ装置などの、付属のメモリおよび/または一体化されたメモリ構成要素と一体に動作することができ、メモリ装置は、単一のメモリ装置、複数のメモリ装置、および/または別の処理モジュール、モジュール、処理回路、処理回路系、および/または処理ユニットの組み込み回路系であってもよい。そのようなメモリ装置は、リードオンリーメモリ、ランダムアクセスメモリ、揮発性メモリ、不揮発性メモリ、スタティックメモリ、ダイナミックメモリ、フラッシュメモリ、キャッシュメモリ、および/またはデジタル情報を記憶するいずれの装置であってもよい。
【0014】
量子回路110が複数の処理装置を介して実装される場合には、処理装置が、集中配置されても(例えば、有線および/または無線バス構造を介して一つに直接結合されても)、または分散配置(例えば、ローカルエリアネットワークおよび/またはワイドネットワークを介した間接的な結合を介したクラウドコンピューティング)されてもよいことに留意されたい。さらに、量子回路110が、状態機械、アナログ回路系、デジタル回路系、および/または論理回路系を介して量子回路のゲートまたは他の機能の一つまたは複数を実装する場合には、対応する動作命令を記憶するメモリおよび/またはメモリ構成要素が、状態機械、アナログ回路系、デジタル回路系、および/または論理回路系を含む回路系の内部に組み込まれてもよいし、その外部にあってもよいことに留意されたい。さらには、メモリが、一つまたは複数の図に例示されたステップおよび/または機能の少なくともいくつかに対応するハードコードされたおよび/または他の動作命令を記憶することができ、処理装置が、これらを実行することができることに留意されたい。そのようなメモリ装置またはメモリ構成要素は、製品に含まれるまたは製品として実装される有形のメモリ装置または他の非一時的な記憶媒体とすることができる。
【0015】
いくつかの随意の機能および特徴を含む量子回路110の動作に関するさらなる考察を、以降の図と併せて記載する。
【0016】
図2A~2Dは、本発明に準拠する量子回路110の実施形態の概略ブロック
図200、225、250、および275である。詳細には、4キュービットの例が示されている。各キュービットのワイヤ状態は、例示のためにブロッホ球表現で示されている。上に考察したとおり、オラクルおよび拡散演算子はいかなる順序で使用することもでき、それらを適用する順番は、例えば、同一のオラクルまたはさらに単純なオラクルなどの異なるオラクルを利用する別の回路とともに引き続き使用される、最終解ではない部分解を見つけるように最適化することができる。
【0017】
図2Aでは、四つのキュービット状態がゼロに初期化され、四つのアダマールゲートが採用されている。4回のオラクル呼び出しがある。拡散ゲートは、二つの異なる拡散演算子を採用し、第1のものは上側二つのキュービット上のものであり、第2のものは下側二つのキュービット上のものである。第1の拡散演算子は3回適用され、第2の拡散演算子は1回だけ適用される。完全量子回路110は、確実に所望の結果をもたらす。
【0018】
図2Bでは、四つのキュービット状態がゼロに初期化され、四つのアダマールゲートが採用されている。3回のオラクル呼び出しがある。拡散ゲートは、二つの異なる拡散演算子を採用し、第1のものは上側二つのキュービット上のものであり、第2のものは下側二つのキュービット上のものである。第1の拡散演算子は2回適用され、第2の拡散演算子は1回だけ適用される。
図2Bの部分回路は、部分解を決定する。部分的な測定を使用することにより、回路を二つのさらに短いものに分割することができる。
【0019】
図2Cでは、
図2Bからの部分解は、レジスタ状態初期化のため第2の回路で使用される。上側二つのキュービットの状態はゼロに初期化される一方、下側二つは1に初期化される。上側二つのキュービット上で二つのアダマールゲートが採用される。1回だけのオラクル呼び出しがある。第1の拡散演算子は、1回だけ適用される。あるいは、部分解は、
図2Bの部分解からの情報を動作時に使用する修正されたオラクル、(
図2DのO1)、とともに使用してもよい。
【0020】
図3A~3Bは、本発明に準拠する量子回路110の実施形態の概略ブロック
図300および325である。詳細には、7キュービットの例が示されている。上に考察したとおり、オラクル/拡散演算子シーケンスは、一つまたは複数のキュービットの測定により、すべてのまたはほぼすべての測定結果について、回路の引き続く部分の条件付き実行が可能になって、最終測定のみと比較して成功の全確率が増加するように、最適化することができる。
【0021】
示された実施形態において、成功の確率は、一つのキュービットの部分的な測定に基づくいくつかのゲートの条件付き実行によって増加する。オラクルMの後の測定が成功をもたらす場合には、キュービットを測定すると、
図3Aに示されるとおりの結果がもたらされる。オラクルMの後の測定が失敗をもたらす場合には、測定は、解を含まない重ね合わせにレジスタの状態を収縮させ、
図3Bに示されるとおり、縦に通る破線の右側にあるゲートの実行が後に続く。様々な実施形態において、このさらなる部分は、さらなる条件付き実行を含んでいてもよく、さらに高い確率で、すなわち、回路内測定なしよりも高い成功の全確率で結果をもたらす。
【0022】
図4A~4Bは、本発明に準拠する量子回路110の実施形態の概略ブロック
図400および425である。詳細には、6キュービットの例が示されている。上に考察したとおり、オラクル/拡散演算子シーケンスは、長い回路よりも成功確率の低い短い回路を生成するように最適化することができ、その結果、解を得るのに必要なオラクル呼び出しの期待数が低下する。
【0023】
いずれのオラクルに対しても、100%という成功の確率(P)を有する回路が存在する。
図4Aは、13回のオラクル呼び出しを伴う量子回路110を表している。呼び出しの期待数=13であるので、結果として、P=1となる。しかしながら、解を得るのに必要なオラクル呼び出しの期待数が低下する結果となる可能性がある成功確率のさらに低い短い回路が存在する。
図4Bは、9回のオラクル呼び出しを伴う量子回路110を表している。呼び出しの期待数=10.1であるので、結果として、P=0.89となる。
【0024】
図5は、本発明に準拠する量子回路110の一実施形態の概略ブロック
図500である。詳細には、8キュービットの例が示されている。上に考察したとおり、量子計算レジスタ120におけるレコード数のサイズ増加に伴う量子回路110の複雑さのスケーリングは、O(Log(N)*sqrt(N))より悪化しない。これは上限であり、量子回路110は、解かれている特定の量子計算問題に応じて、個別的にさらに最適化することができる。
【0025】
図6は、本発明に準拠する量子回路110の一実施形態の概略ブロック
図600である。詳細には、14キュービットの例が示されている。上に考察したとおり、拡散演算子は、拡散演算子Gと置き換わるオラクルゲートの回路の部分を、結果に変化がないようにして省略することによって、Gのまわりでオラクルの複雑さが減少するように構築することができる。示された例では、拡散演算子Gの周りのオラクルゲートの灰色表示の部分を省略することができる。A、B、C、D、...の選択は、使用される特定の演算子に応じて適合させることができる。連続するオラクル呼び出しの間で使用される拡散演算子は、異なっていてもいなくてもよく、また異なるセットのキュービットを使用しても使用しなくてもよい。
【0026】
図7は、本発明に準拠する方法の一実施形態の流れ
図700である。詳細には、
図1~6と併せて説明される一つまたは複数の機能および特徴とともに使用する方法が、提示されている。ステップ702は、量子回路の複数のアダマールゲートを介して、対応する複数の初期状態にある複数のキュービットにアダマール変換を適用することを含む。ステップ704は、量子回路の複数のオラクルゲートを介して、複数のキュービット上で量子オラクル演算子を順次呼び出して、量子オラクル呼び出しのシーケンスを生成することを含む。ステップ706は、量子回路の複数の拡散ゲートを介して、複数の拡散演算子を適用することを含み、複数の拡散演算子のうちの選択された一つまたは複数が、オラクル呼び出しのシーケンスにおける量子オラクル呼び出しそれぞれの後に適用される。ステップ708は、オラクル呼び出しのシーケンスおよび複数の拡散演算子を適用した後、複数のキュービットからの測定結果に基づいて量子計算結果を生成することを含む。
【0027】
様々な実施形態において、複数の拡散演算子それぞれが、複数のキュービットの一意的な非ゼロ固有サブセット上で動作する。さらに、複数のキュービットの一意的な非ゼロ固有サブセットは、複数のキュービットの二つ以上の隣接キュービットを含むことができる。さらに、拡散演算子は、同一キュービットに作用してもしなくてもよく、作用先のキュービットの選択に至るまで同一であってもなくてもよい。拡散演算子は、選択の必要がある状態それぞれに到達することができるので、それらの演算子の一つが状態のサブセットに作用し、同一サブセットに出力が属するようにしてこの作用がなされるならば、別の演算子が存在してこのサブセット内の入力状態に作用すると、そのセットの外部に出力を生成する。
【0028】
上に考察したとおり、オラクルは、選択された構成要素に位相変化の印付けを行っても行わなくてもよく、または、結果を追加の作業キュービットにコードしてもしなくてもよく、結果を測定するやり方を提供し、次いで測定結果に基づいて、このやり方を使用して、量子回路110の他の部分を条件付きで実行することができる。
【0029】
上に考察したとおり、オラクルおよび拡散演算子は、いかなる順序で使用することもでき、これらの拡散演算子を適用する順番は、例えば、同一のオラクルまたは異なるオラクル、例えばさらに単純なオラクルを利用する別の回路とともに引き続き使用される、最終解ではない部分解を見つけるように最適化することができる。オラクル/拡散演算子シーケンスが最適化できるので、補助キュービットまたは他のキュービットの測定などの測定により、すべてのまたはほぼすべての測定結果について、回路の引き続く部分の条件付き実行が可能になり、最終測定のみと比較して成功の全確率が増加する。オラクル/拡散演算子シーケンスは、例えば、長い回路よりも成功確率の低い短い回路を生成するように最適化することができ、その結果、解を得るのに必要なオラクル呼び出しの期待数が低下する。
【0030】
上に考察したとおり、拡散演算子は、拡散演算子Gと置き換わるオラクルの回路の部分を、結果に変化がないようにして省略することによって、Gの周りでオラクルの複雑さが減少するように構築することができる。データベースのレコード数のサイズ増加に伴う回路の複雑さのスケーリングは、O(Log(N)*sqrt(N))より悪化せず、これは、解かれている特定の量子計算問題に応じて、個別的にさらに最適化することができる。
【0031】
図8は、本発明に準拠する方法の一実施形態の流れ
図800である。詳細には、
図1~7と併せて説明される一つまたは複数の機能および特徴とともに使用する方法が、提示されている。ステップ804は、量子回路の複数のオラクルゲートを介して、複数のキュービット上で量子オラクル演算子を順次呼び出して、量子オラクル呼び出しシーケンスを生成することを含む。ステップ806は、量子回路の複数の拡散ゲートを介して、複数の拡散演算子を適用することを含み、複数の拡散演算子のうちの選択された一つまたは複数が、オラクル呼び出しのシーケンスにおける量子オラクル呼び出しそれぞれの後に適用される。ステップ808は、オラクル呼び出しのシーケンスおよび複数の拡散演算子を適用した後に、複数のキュービットからの測定値に基づいて量子計算結果を生成することを含む。
【0032】
様々な実施形態において、複数のキュービットそれぞれは、対応する初期状態に初期化され、方法は、量子回路の複数のアダマールゲートを介して、複数のキュービットにアダマール変換を適用すること、または複数のキュービットのサブセットのみにアダマール変換を適用すること、をさらに含む。
【0033】
様々な実施形態において、複数の拡散演算子それぞれは、複数のキュービットの一意的な非ゼロ固有サブセット上で動作する。複数のキュービットの一意的な非ゼロ固有サブセットは、複数の量子ビットの二つ以上の隣接キュービットを含むことができる。複数の拡散演算子のうちの少なくとも一つは、複数のキュービットそれぞれの上で動作する。
【0034】
様々な実施形態において、量子オラクルは、アンシラキュービットに結果をコードする。アンシラキュービットは、測定に基づいて、量子回路の他の部分を条件付き実行するのに使用することができる。量子計算結果は、部分解とすることができ、複数の拡散演算子は、部分解を生成するように最適化することができる。部分解は引き続き、量子オラクル演算子または異なる量子オラクル演算子のうちの一つに基づいて完全解を生成する別の量子回路において使用することができる。
【0035】
ビットストリーム、ストリーム、信号シーケンス等(またはそれらの均等物)などの、本明細書で使用される場合のある用語は、多くの所望のタイプ(例えば、データ、動画、音声、テキスト、グラフィックス、音響など、それらのいずれもが一般に「データ」と称される可能性のあるもの)のいずれかに対応する内容をもつデジタル情報を記載するのに、交換可能に使用されてきたということに留意されたい。
【0036】
本明細書で使用される場合があるとおり、用語「実質的に」および「およそ」は、その対応する用語、および/または品目間の相対性に対して業界的に許容される許容誤差を提供する。いくつかの産業界では、業界的に許容される許容誤差は1パーセント未満であり、他の産業界では、業界的に許容される許容誤差は10パーセント以上である。業界的に許容される許容誤差の他の例は、1パーセント未満から50パーセントまでの範囲である。業界的に許容される許容誤差は、部品値、集積回路プロセスばらつき、温度ばらつき、立ち上がり時間と立ち下がり時間、熱雑音、寸法、信号伝達誤り、パケット落ち、温度、圧力、材料組成、および/または性能指標に対応するが、これらには限定されない。ある産業界内では、許容される許容誤差のばらつきは、パーセンテージレベルより大きくても小さくてもよい(例えば、寸法許容誤差は±1%未満である)。品目間の相対性は、パーセンテージレベル未満から数パーセントまでの差の範囲であってもよい。品目間の他の相対性は、数パーセントから桁までの差の範囲であってもよい。
【0037】
本明細書でも使用される場合があるとおり、用語「ように構成された」、「に動作可能に結合された」、「に結合された」、および/または「結合する」は、品目間の直接的な結合、および/または介在する品目(例えば、品目は、部品、構成要素、回路、および/またはモジュールを含むがこれらに限定されない)を介した品目間の間接的な結合を含み、例えば、間接的な結合の例の場合には、介在品目は、信号の情報を変更しないが、その電流レベル、電圧レベル、および/または電力レベルを調整する場合がある。本明細書でさらに使用される場合があるとおり、推測される結合(すなわち、一方の構成要素が推測によってもう一方の構成要素に結合される場合)は、「結合される」と同じようにして二つの品目間の直接的および間接的な結合を含む。
【0038】
本明細書でさらに使用される場合のあるとおり、用語「ように構成された」、「ように動作可能な」、「に結合された」、または「に動作可能に結合された」は、起動されると一つまたは複数の対応する機能を実行する電力接続、入力、出力などの一つまたは複数を品目が含むこと、そしてさらには、一つまたは複数の他の品目への推測される結合を品目が含む場合もあることを示している。本明細書でさらに使用される場合のあるとおり、「を付随させる」という用語は、別々の品目の直接的および/または間接的な結合、および/または一つの品目の別の品目内への組み込みを含む。
【0039】
本明細書で使用される場合のあるとおり、用語「有利に比較する」は、二つ以上の品目、信号などの間の比較が、所望の関係を提供することを示す。例えば、所望の関係が、信号1が信号2よりも大きな大きさを有することである場合には、信号1の大きさが信号2の大きさよりも大きいとき、または信号2の大きさが信号1の大きさよりも小さいときに、有利な比較が達成される場合がある。本明細書で使用される場合のあるとおり、用語「不利に比較する」は、二つ以上の品目、信号などの間の比較が、所望の関係を提供することに失敗することを示す。
【0040】
本明細書で使用される場合のあるとおり、一つまたは複数の請求項が、この一般的形式の特定の形式で、「a、b、およびcのうちの少なくとも一つ」という語句、またはこの一般的形式の「a、b、またはcのうちの少なくとも一つ」を含む場合があり、構成要素は、「a」、「b」、および「c」よりも多いまたは少ない。どちらの言い回しにおいても、語句は同一に解釈されるものとする。詳細には、「a、b、およびcのうちの少なくとも一つ」は、「a、b、またはcの少なくとも一つ」と均等であり、a、b、および/またはcを意味するものとする。一例として、これは、「a」のみ、「b」のみ、「c」のみ、「a」および「b」、「a」および「c」、「b」および「c」、ならびに/または「a」、「b」、および「c」を意味する。
【0041】
一つまたは複数の実施形態を、指定された機能のおよびそれらの関係の実行を例示する方法ステップの助けを借りて、上に記載した。これらの機能的な構成要素および方法ステップの境界および順序は、記載の便宜上、本明細書において任意に定義されている。指定された機能および関係が適切に実行される限り、代替の境界および順序を定義することができる。よって、そのような代替の境界または順序は、特許請求項の範囲および趣旨の範囲内である。さらに、これらの機能的な構成要素の境界は、記載の便宜上、任意に定義されている。特定の重要な機能が適切に実行される限り、代替の境界が定義されることもあり得る。同様に、流れ図ブロックも、特定の重要な機能性を説明するために、本明細書において任意に定義された場合がある。
【0042】
使用される範囲で、流れ図ブロックの境界および順序は、これ以外に定義され得たが、依然、特定の重要な機能性を実行する。このように、機能的な構成要素と流れ図ブロックの両方と順序の代替定義は、特許請求項の範囲と趣旨の範囲内である。平均的な当業者であれば、機能的な構成要素ブロック、ならびに本明細書における他の例示的なブロック、モジュール、および構成要素が、例示されたとおりに、または個別部品、特定用途向けの集積回路、適切なソフトウェアを実行するプロセッサ、および同類のもの、またはそれらのいずれかの組み合わせによって実装することができることも、認識するであろう。
【0043】
さらに、流れ図は、「スタート」および/または「継続」の表示を含む場合がある。「スタート」および「継続」の表示は、提示されたステップが随意に、一つまたは複数の他のルーチンに組み込まれるか、またはそうでなければそれらと併用され得ることを反映している。さらに、流れ図は、「終了」および/または「継続」の表示を含む場合がある。「終了」および/または「継続」の表示は、提示されたステップが、記載され示されたとおりに終了することができること、または随意に一つもしくは複数の他のルーチンに組み込まれるか、またはそうでなければそれらと併用され得ることを反映している。この文脈では、「スタート」は、提示された最初のステップの開始を示し、具体的には示されていない他の活動が先行している場合がある。さらに、「継続」の表示は、提示されたステップが複数回実行される場合があること、および/または、具体的には示されていない他の活動が後に続く場合があることを反映している。さらに、流れ図はステップの特定の順番付けを示すが、因果関係の原則が維持されることを前提として、他の順番付けも同様に可能である。
【0044】
一つまたは複数の実施形態は、一つもしくは複数の態様、一つもしくは複数の特徴、一つもしくは複数の概念、および/または一つもしくは複数の例を例示するために本明細書で使用されている。装置、製品、機械の、および/またはプロセスの物理的な実施形態が、本明細書で考察された一つまたは複数の実施形態を参照しつつ記載された一つまたは複数の態様、特徴、概念、例などを含む場合がある。さらに、図から図へと、実施形態は、同一のまたは異なる参照符号を使用している場合のある同一のまたは類似の名称の機能、ステップ、モジュール等を組み込んでいる場合があり、それゆえ、その機能、ステップ、モジュール等は、同一のまたは類似の機能、ステップ、モジュール等であっても、異なるものであってもよい。
【0045】
反対に、具体的に明言されていない限り、本明細書に提示された図のいずれかにおける構成要素への、構成要素からの、および/または構成要素間の信号は、アナログまたはデジタル信号、連続時間またはは離散時間信号、およびシングルエンドまたは差動信号であってもよい。例えば、信号経路がシングルエンド経路として示されている場合、それはまた差動信号経路を表す。同様に、信号経路が差動経路として示されている場合、それはまたシングルエンド信号経路を表す。本明細書では一つまたは複数の特定のアーキテクチャを記載しているが、平均的な当業者によって認識されるとおり、明示的には示されていない1本または複数本のデータバス、構成要素間の直接的な接続、および/または他の構成要素間の間接的な結合を使用する他のアーキテクチャを同様に実装することができる。
【0046】
用語「モジュール」は、一つまたは複数の実施形態の記載において使用される。モジュールは、プロセッサ、または他の処理装置、または動作命令を記憶するメモリを含むもしくはこれと連携して動作する場合のある他のハードウェアなどの装置を介して、一つまたは複数の機能を実装する。モジュールは、独立して、ならびに/またはソフトウェアおよび/もしくはファームウェアと一体に動作してもよい。本明細書でも使用されるとおり、モジュールは、一つまたは複数のサブモジュールを含んでいてもよく、サブモジュールそれぞれは、一つまたは複数のモジュールであってもよい。
【0047】
本明細書でさらに使用される場合のあるとおり、計算機可読メモリは、一つまたは複数のメモリ構成要素を含む。メモリ構成要素は、別個のメモリ装置、複数のメモリ装置、またはメモリ装置内の一組のメモリ位置であってもよい。このようなメモリ装置は、リードオンリーメモリ、ランダムアクセスメモリ、揮発性メモリ、不揮発性メモリ、スタティックメモリ、ダイナミックメモリ、フラッシュメモリ、キャッシュメモリ、量子レジスタもしくは他の量子メモリ、および/または非一時的なやり方でデータを記憶する他のいずれかの装置であってもよい。さらに、メモリ装置は、ソリッドステートメモリ、ハードディスクメモリ等のディスクストレージ、クラウドメモリ、サムドライブ、サーバメモリ、計算装置メモリ、および/またはデータを記憶する他の非一時的な媒体の形態であってもよい。データの記憶は、一時的な記憶(すなわち、メモリ構成要素から電力が除去されるとデータが失われる)および/または持続的な記憶(すなわち、メモリ構成要素から電力が除去されてもデータが保持される)を含む。本明細書で使用されるとおり、一時的な媒体は、(a)一時記憶または持続的記憶のために、一方の計算装置からもう一方の計算装置へ信号としてデータを伝送する有線または無線媒体;(b)一時的な記憶または持続的な記憶のために、計算装置の一方の構成要素からその計算装置のもう一方の構成要素へ信号としてデータを伝送する有線または無線媒体;(c)他の計算機装置によってデータを処理するために、一方の計算装置からもう一方の計算装置へ信号としてデータを伝送する有線または無線媒体;および(d)計算装置の他の構成要素によってデータを処理するために、計算装置の一方の構成要素からその計算装置のもう一方の構成要素へ、その計算装置内の信号としてデータを伝送する有線または無線媒体、のうちの一つまたは複数を意味するものとする。本明細書で使用される場合があるとおり、非一時的な計算機可読メモリは、計算機可読メモリと実質的に均等である。非一時的な計算機可読メモリは、非一過性の計算機可読記憶媒体と称することもできる。
【0048】
一つまたは複数の実施形態の様々な機能および特徴の特定の組み合わせを、本明細書で明示的に記載したが、これらの特徴および機能の他の組み合わせも同様に可能である。本開示は、本明細書に開示された特定の例によって限定されるものではなく、これらの他の組み合わせを明示的に組み込むものである。
【国際調査報告】