IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7427018量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行
<>
  • 特許-量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行 図1
  • 特許-量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行 図2
  • 特許-量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行 図3
  • 特許-量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行 図4
  • 特許-量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行 図5
  • 特許-量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行 図6
  • 特許-量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行 図7
  • 特許-量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行 図8
  • 特許-量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行 図9
  • 特許-量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-25
(45)【発行日】2024-02-02
(54)【発明の名称】量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行
(51)【国際特許分類】
   G06N 10/20 20220101AFI20240126BHJP
   G06N 99/00 20190101ALI20240126BHJP
【FI】
G06N10/20
G06N99/00 180
【請求項の数】 18
(21)【出願番号】P 2021558945
(86)(22)【出願日】2020-04-06
(65)【公表番号】
(43)【公表日】2022-06-02
(86)【国際出願番号】 EP2020059733
(87)【国際公開番号】W WO2020207956
(87)【国際公開日】2020-10-15
【審査請求日】2022-09-22
(31)【優先権主張番号】62/831,418
(32)【優先日】2019-04-09
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/427,043
(32)【優先日】2019-05-30
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/427,080
(32)【優先日】2019-05-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】グリーンバーグ、ドン
(72)【発明者】
【氏名】ピストイア、マルコ
(72)【発明者】
【氏名】チェン、リチャード
(72)【発明者】
【氏名】ナニッチーニ、ジャコモ
【審査官】福西 章人
(56)【参考文献】
【文献】米国特許出願公開第2013/0282636(US,A1)
【文献】米国特許出願公開第2011/0060710(US,A1)
【文献】特開平08-055030(JP,A)
【文献】MOLL, Nikolaj et al.,Quantum optimization using variational algorithms on near-term quantum devices,arXiv,2017年10月09日,pp.1-30,インターネット:<URL:https://arxiv.org/pdf/1710.01022v2.pdf>
【文献】大江 良 ほか,多数制約付き最適化問題への遺伝的アルゴリズムの適用法に関する検討,一般社団法人 人工知能学会 第30回全国大会論文集CD-ROM [CD-ROM] 2016年度 人工知能学会全国大会(第30回)論文集,日本,社団法人人工知能学会,2016年06月17日,pp.1-4
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
変分問題に対応する量子回路を実行するようにハイブリッド古典量子コンピューティング・デバイスを構成することを含んでいるコンピュータ実装方法であって、前記構成することが、
前記ハイブリッド古典量子コンピューティング・デバイスに、断熱的進行動作を実行することによって前記量子回路を実行させることと、
前記変分問題に対応するパラメータ化された最適化問題の連続的パラメータにおける第1の増加を生成することであって、前記連続的パラメータの現在の状態が前記最適化問題の可解状態に対応する、前記生成することと、
前記第1の増加に対応する変分パラメータのセットを生成することであって、前記変分パラメータのセットが量子回路の構成を指定する、前記生成することと、
前記量子回路の出力が前記問題の既知の正しい解としきい値以下の量だけ異なるということの決定に応答して、前記連続的パラメータの前記現在の状態を前記第1の増加に置き換えることとをさらに含む、コンピュータ実装方法。
【請求項2】
前記ハイブリッド古典量子コンピューティング・デバイスがノイズあり中規模量子(NISQ)デバイスを含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記第1の増加に対応する前記変分パラメータのセットを使用して、正方形の量子回路を生成することをさらに含み、前記正方形の量子回路が前記NISQデバイス上で実装することに適している、請求項2に記載のコンピュータ実装方法。
【請求項4】
前記変分問題の困難さを進行させる速度を制御することをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記第1の増加が、前記連続的パラメータの目標の状態と前記連続的パラメータの前記現在の状態との間の差を含む、請求項4に記載のコンピュータ実装方法。
【請求項6】
前記第1の増加が、前記連続的パラメータの目標の状態と前記連続的パラメータの前記現在の状態との間の差を含み、その後、前記差がnで割られ、nが正の整数である、請求項4に記載のコンピュータ実装方法。
【請求項7】
前記量子回路の出力が前記最適化問題の既知の正しい解としきい値を超える量だけ異なるということの決定に応答して、前記現在の状態から前記連続的パラメータにおける第2の増加を生成することをさらに含み、前記第2の増加が前記第1の増加より小さい、請求項4に記載のコンピュータ実装方法。
【請求項8】
前記第2の増加が1/nに前記第1の増加を掛けた値であり、nが正の整数である、請求項7に記載のコンピュータ実装方法。
【請求項9】
コンピュータ・プログラムであって、請求項1ないし8のいずれか1項に記載の方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラム。
【請求項10】
請求項9に記載のコンピュータ・プログラムを記録したコンピュータ可読ストレージ媒体。
【請求項11】
前記コンピュータ・プログラムの使用を測定するためのプログラム命令と、
前記測定された使用に基づいてインボイスを生成するためのプログラム命令とをさらに含む、請求項9に記載のコンピュータ・プログラム。
【請求項12】
1つまたは複数のプロセッサと、1つまたは複数のコンピュータ可読メモリと、1つまたは複数のコンピュータ可読ストレージ・デバイスとを含んでいるコンピュータ・システムであって、プログラム命令が、前記1つまたは複数のメモリのうちの少なくとも1つを介して、前記1つまたは複数のプロセッサのうちの少なくとも1つによって実行するために、前記1つまたは複数のストレージ・デバイスのうちの少なくとも1つに格納されており、前記格納されたプログラム命令が、
変分問題に対応する量子回路を実行するようにハイブリッド古典量子コンピューティング・デバイスを構成するためのプログラム命令を含み、前記構成が、
前記ハイブリッド古典量子コンピューティング・デバイスに、断熱的進行動作を実行することによって前記量子回路を実行させることと、
前記変分問題に対応するパラメータ化された最適化問題の連続的パラメータにおける第1の増加を生成することであって、前記連続的パラメータの現在の状態が前記最適化問題の可解状態に対応する、前記生成することと、
前記第1の増加に対応する変分パラメータのセットを生成することであって、前記変分パラメータのセットが量子回路の構成を指定する、前記生成することと、
前記量子回路の出力が前記問題の既知の正しい解としきい値以下の量だけ異なるということの決定に応答して、前記連続的パラメータの前記現在の状態を前記第1の増加に置き換えることとをさらに含む、コンピュータ・システム。
【請求項13】
前記ハイブリッド古典量子コンピューティング・デバイスがノイズあり中規模量子(NISQ)デバイスを含む、請求項12に記載のコンピュータ・システム。
【請求項14】
前記第1の増加に対応する前記変分パラメータのセットを使用して、正方形の量子回路を生成するためのプログラム命令をさらに含み、前記正方形の量子回路が前記NISQデバイス上で実装することに適している、請求項13に記載のコンピュータ・システム。
【請求項15】
前記変分問題の困難さを進行させる速度を制御するためのプログラム命令をさらに含む、請求項12に記載のコンピュータ・システム。
【請求項16】
前記第1の増加が、前記連続的パラメータの目標の状態と前記連続的パラメータの前記現在の状態との間の差を含む、請求項15に記載のコンピュータ・システム。
【請求項17】
前記第1の増加が、前記連続的パラメータの目標の状態と前記連続的パラメータの前記現在の状態との間の差を含み、その後、前記差がnで割られ、nが正の整数である、請求項15に記載のコンピュータ・システム。
【請求項18】
前記量子回路の出力が前記最適化問題の既知の正しい解としきい値を超える量だけ異なるということの決定に応答して、前記現在の状態から前記連続的パラメータにおける第2の増加を生成するためのプログラム命令をさらに含み、前記第2の増加が前記第1の増加より小さい、請求項15に記載のコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、量子コンピューティング・データ処理環境を操作して特定の種類の問題を解くための方法、システム、およびコンピュータ・プログラム製品に関する。より詳細には、本発明は、量子コンピューティングにおける困難な変分量子問題(variational quantum problems)を解くための中間再最適化を伴う断熱的進行のための方法、システム、およびコンピュータ・プログラム製品に関する。
【背景技術】
【0002】
以下では、語句の単語における接頭辞「Q」は、使用される場合に明示的に区別されない限り、量子コンピューティングの文脈におけるその単語または語句の参照を示している。
【0003】
分子および亜原子粒子は、最も基礎的なレベルで物理的世界がどのように動作しているかを研究する物理学の一分野である量子力学の法則に従う。このレベルでは、粒子は、同時に2つ以上の状態になるという奇妙な方法で振る舞い、非常に遠く離れた他の粒子と相互作用する。量子コンピューティングは、これらの量子現象を利用して情報を処理する。
【0004】
現在使用されているコンピュータは、古典的コンピュータとして知られている(本明細書では、「従来の」コンピュータまたは従来のノード、すなわちCN(conventional nodes)とも呼ばれる)。従来のコンピュータは、フォン・ノイマン・アーキテクチャとして知られているアーキテクチャにおいて、半導体材料および半導体技術を使用して製造された従来のプロセッサ、半導体メモリ、ならびに磁気ストレージ・デバイスまたは半導体ストレージ・デバイスを使用する。特に、従来のコンピュータ内のプロセッサは、バイナリ・プロセッサ(すなわち、1および0で表されたバイナリ・データに対して動作するプロセッサ)である。
【0005】
量子プロセッサ(qプロセッサ)は、もつれさせた量子ビット・デバイス(本明細書では、簡潔に「量子ビット」、複数の「量子ビット」と呼ばれる)の奇妙な性質を使用して、計算タスクを実行する。量子力学が作用する特定の領域では、問題の粒子が、複数の状態(「オン」状態、「オフ」状態、および「オン」状態と「オフ」状態の両方が同時に、など)で存在する可能性がある。半導体プロセッサを使用する2進数計算が、(バイナリ・コードにおける1および0と等価な)オン状態とオフ状態のみを使用することに制限される場合、量子プロセッサは、これらの問題の量子状態を利用して、データ計算において使用できる信号を出力する。
【0006】
従来のコンピュータは、情報をビットでエンコードする。各ビットは、1または0の値を取ることができる。これらの1および0は、最終的にコンピュータの機能を駆動するオン/オフ・スイッチとして機能する。一方、量子コンピュータは、量子ビットに基づき、重ね合わせおよびエンタングルメントという量子物理学の2つの重要な原理に従って動作する。重ね合わせとは、各量子ビットが、1および0の両方を同時に表すことができるということを意味する。エンタングルメントとは、重ね合わせにおける量子ビットが、非古典的方法で互いに相互関係を持つことができるということ、すなわち、ある量子ビットの状態が(状態が1または0あるいはその両方のいずれであろうと)、別の量子ビットの状態に依存することができるということ、および2つの量子ビットをもつれさせた場合に、個別に扱われる場合よりも多くの情報が2つの量子ビットに関して確認され得るということを意味する。
【0007】
量子ビットは、これらの2つの原理を使用して、情報のより高度なプロセッサとして動作し、従来のコンピュータを使用して解決することが困難な難しい問題を解くことができるようにする方法で、量子コンピュータを機能させることができる。IBMは、超伝導量子ビットを使用する量子プロセッサを構築し、その実施可能性を示すことに成功した(IBMは、米国およびその他の国におけるインターナショナル・ビジネスマシーン・コーポレーションの登録商標である)。
【0008】
超伝導量子ビットは、ジョセフソン接合を含む。ジョセフソン接合は、非超伝導材料で2つの薄膜超伝導金属層を分離することによって形成される。例えば、金属の温度を指定された極低温度に下げることによって、超伝導層内の金属が超伝導になることが引き起こされた場合、電子の対が、非超伝導層を介して、ある超伝導層から他の超伝導層にトンネルすることができる。量子ビットでは、分散非線形インダクタとして機能するジョセフソン接合が、1つまたは複数の容量性デバイスと並列に電気的に結合され、非線形マイクロ波発振器を形成する。この発振器は、量子ビット内のインダクタンスおよび静電容量の値によって決定される共振/遷移周波数を有する。「量子ビット」という用語へのすべての参照は、使用される場合に明示的に区別されない限り、ジョセフソン接合を採用する超伝導量子ビット発振器回路のことを指す。
【0009】
量子ビットによって処理された情報は、マイクロ波周波数の範囲内で、マイクロ波信号/光子の形態で運ばれるか、または送信される。出力された量子ビットのマイクロ波周波数は、量子ビットの共振周波数によって決定される。マイクロ波信号は、捕捉され、処理され、エンコードされている量子情報を解読するために解析される。読み出し回路は、量子ビットの量子状態を捕捉し、読み取り、測定するために量子ビットに結合された回路である。読み出し回路の出力は、計算を実行するためにqプロセッサによって使用できる情報である。
【0010】
超伝導量子ビットは、2つの量子状態|0>および|1>を有する。これらの2つの状態は、原子の2つのエネルギー状態(例えば、超伝導人工原子(超伝導量子ビット)の基底状態(|g>)および第1励起状態(|e>))であってよい。他の例としては、核スピンまたは電子スピンのスピンアップおよびスピンダウン、結晶欠陥の2つの位置、および量子ドットの2つの状態などが挙げられる。このシステムは量子の性質であるため、2つの状態の任意の組み合わせが許容され、有効である。
【0011】
信頼できる量子ビットを使用する量子コンピューティングの場合、量子回路(例えば、量子ビット自体、量子ビットに関連付けられた読み出し回路、および量子プロセッサの他の部分)は、いずれかの有意な方法でエネルギーを投入すること、またはエネルギーを散逸させることなどによって、量子ビットのエネルギー状態を変更してはならず、量子ビットの|0>状態と|1>状態の間の相対位相に影響を与えてはならない。量子情報を使用して動作する任意の回路に対するこの動作制約は、そのような回路において使用される半導体および超伝導構造の製造における特別な考慮を必要とする。
【0012】
量子コンピューティングは、多くの場合、従来のコンピューティングにおけるよりもより高速に問題を解くために使用することができる。例えば、1つの量子アルゴリズムは、従来のコンピューティングの場合よりも少ない検索回数で順序付けられていないN個の項目の検索を実現する、グローバーの検索である。
【0013】
量子ゲートは、量子計算の基本構成要素であり、古典的論理ゲートが一度に1つおよび2つのビットに作用する方法で、量子ビットに作用し、制御可能な方法で量子ビット状態を変更する。Xゲートは、古典的コンピューティングにおいてNOTゲートが単一のビットの状態を反転するのと同様に、単一の量子ビットの状態を反転する。Hゲートまたはアダマール・ゲートは、単一の量子ビットを重ね合わせの状態(0と1の量子状態の組み合わせ)にする。量子ビットは、測定されたときに初めて、確定状態に決定される。例えば、0の量子状態を有する入力が提供された場合、アダマール・ゲート内で量子状態が重ね合わせの状態になるが、その出力は、0の量子状態になる50パーセントの確率、および1の量子状態になる50パーセントの確率を有する。他の単一量子ビット・ゲートは、他の定義された方法で量子ビット状態を変更する。
【0014】
多量子ビット・ゲートは、ある量子ビットの状態が別の量子ビットの状態に依存する、量子ビット間の条件付き論理を実行するゲートを実装する。例えば、制御NOTゲートまたはCNOTゲートは、2つの量子ビット(ターゲット量子ビットおよび制御量子ビット)を有する。制御量子ビットが1の量子状態である場合、CNOTゲートはターゲット量子ビットの状態を反転する。制御量子ビットが0の量子状態である場合、CNOTゲートはターゲット量子ビットの状態を変更しない。
【0015】
複数の量子ビットをもつれさせることもできる。2つ以上の量子ビットは、互いに影響を与えるには遠く離れすぎているにもかかわらず、個別にランダムな方法で振る舞うが、各物体が他から独立していると仮定することによって説明できないほど強い相関性もある場合、もつれている。その結果、もつれた多量子ビット系の結合された特性は予測され得るが、そのような系における各個別の量子ビットの個別の測定結果は、予測され得ない。
【0016】
従来のコンピューティングと同様に、量子コンピューティング・ゲートは、より複雑な動作を実行するために、量子回路と呼ばれるより大きいグループに組み立てられ得る。例えば、量子ビットの対の状態を交換するスワップ・ゲートは、3つのCNOTゲートから構築され得る。
【0017】
量子回路は、一部の動作を並列に実行し、一部の動作を直列に実行することができる。プログラム内の最長の直列の長さは、量子回路の深さとも呼ばれる。例えば、スワップ・ゲートを含んでいる3つのCNOTゲートは、直列に配置されて、3の深さを与える。より浅い深さを有するプログラムは、必要な実行時間がより少なくなり、性能がより良くなるため、好ましい。
【0018】
従来のコンピュータは、プロセッサに固有のアセンブリ言語において提供される命令ステップなどの、特定の命令ステップを使用して手動でプログラムする必要がない。代わりに、プログラマは、より上位の言語で、ハードウェアに依存しないコードを記述し、コンパイラがこのコードを、特定のプロセッサで実行するためのアセンブリ言語に変換する。同様に、量子コンピューティングにおいてプログラマは、個別のゲートを指定する必要がない。代わりに、プログラマは、より上位の言語でより上位のコードを記述することができる。コンパイラは、このコードを構文解析し、量子回路にマッピングする。最後に、量子プロセッサがこの量子回路を実行する。量子プログラマは、すでにプログラムされたライブラリを利用して、化学、人工知能、および最適化などの領域における問題を解くことに使用することもできる。
【0019】
変分問題と呼ばれる問題の分野が存在し、変分問題の下位分野として、困難な変分問題および容易な変分問題がある。最適化問題は、変分問題の非限定的な例であり、次元性、ノード数の多さ、望ましい精度、およびその他の要因に応じて、困難な変分問題になることも、容易な変分問題になることもある。最適化問題は、さまざまな問題が複数の可能性のある解を有する場合に、さまざまな問題に対して最良の解または最適解が決定される計算問題である。
【0020】
例えば、さまざまな問題は、有名な巡回セールスマン問題であることができ、巡回セールスマン問題では、移動しているセールスマンがどの都市も再訪することなく都市の各々を巡回するように、複数の都市間の経路を決定する必要がある。この問題は、多くの可能性のある解(都市間の経路)を有する。巡回セールスマン問題に関連する最適化問題は、多くの可能性のある経路から最短経路(すなわち、最良の経路または最適な経路)を見つけることであり、これらの経路の各々は、巡回セールスマン問題の要件を満たす。
【0021】
さまざまな問題の別の例は、最大カット問題である。グラフにおいて最大カット問題を解くということは、頂点のセットのサブセットSと補完的サブセット(Sに含まれない頂点のサブセット)の間のエッジの数ができるだけ大きくなるような、サブセットSを意味する。
【0022】
解離曲線を計算することは、変分問題の別の非限定的な例であり、次元性、望ましい精度、およびその他の要因に応じて、困難な変分問題になることも、容易な変分問題になることもある。解離曲線は、分子内の原子を引き離すエネルギー・コストをグラフに描く。グラフのx軸は原子間の距離であり、グラフのy軸はエネルギー量である。
【0023】
コンピュータが最適解を多項式時間内に計算することができるように、コンピュータ上で実行するために変分問題を構成することは、それ自体が難しい問題である。最近まで、変分問題を実行するために使用できる計算リソースは、本明細書において説明されているように、従来のコンピュータのみであった。多くの変分問題は、あまりに困難であるか、またはあまりに複雑であるため、従来のコンピュータが妥当なリソースを使用して多項式時間内に計算することができない。そのような場合、通常、妥当なリソースを使用して妥当な時間内に計算することができる近似解が、近最適解として受け入れられる。
【0024】
量子コンピューティングの出現は、変分問題の計算を含むコンピューティングの多くの領域で、進歩の可能性を示した。量子コンピューティング・システムは、解空間からの多くの解を同時に評価することができるため、例示的な実施形態は、そのようなシステムが、変分問題を解くことに特に適していることを認識する。
【0025】
変分量子アルゴリズムは、古典的オプティマイザを使用して、量子回路の高次元の非凸パラメータ空間を検索し、特定の問題を解く。一般に、高次元の非凸空間内の最適化は非常に困難であり、(意味のある)次元性が増すにつれて、解への収束がますます困難になる。量子力学的変分問題の場合、このことは、現在の技術を使用して、高次元の非凸空間内の最適化を必要とするほとんどの問題を解くことが、不可能ではないにしても、非常に困難になることを意味する。最先端の化学的問題または組み合わせ最適化問題は、信頼できる状態で収束するために数千個の変分パラメータを必要とすることがあるが、現在の方法は、通常、わずか数10個のそのようなパラメータを使用して収束するのに苦労している。本発明の対象であるシステムは、好ましい実施形態に従って、望ましい精度への収束が以前は不可能だった化学的問題および最適化問題の収束の可能性を改善することを可能にした。関連する話題としては、解離曲線の収束を改善するためのブートストラップ、ゲートに基づく量子断熱法、凸最適化のためのホモトピー法、および最適化のための内点法が挙げられる。
【発明の概要】
【0026】
実施形態例は、方法、システム、およびコンピュータ・プログラム製品を提供する。一実施形態は、量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行のための方法を含む。一実施形態は、変分問題に対応する量子回路を実行するようにハイブリッド古典量子コンピューティング・デバイスを構成する。この構成は、ハイブリッド古典量子コンピューティング・デバイスに、断熱的進行動作を実行することによって量子回路を実行させることをさらに含み、断熱的進行動作は、簡略化された問題から変分問題へと、変分問題の困難さを増大させることを含む。
【0027】
一実施形態は、コンピュータ使用可能プログラム製品を含む。コンピュータ使用可能プログラム製品は、コンピュータ可読ストレージ・デバイス、およびストレージ・デバイスに格納されたプログラム命令を含む。
【0028】
一実施形態は、コンピュータ・システムを含む。コンピュータ・システムは、プロセッサ、コンピュータ可読メモリ、およびコンピュータ可読ストレージ・デバイス、ならびにメモリを介してプロセッサによって実行するためにストレージ・デバイスに格納されたプログラム命令を含む。
【0029】
1つの態様によれば、変分問題に対応する量子回路を実行するようにハイブリッド古典量子コンピューティング・デバイスを構成することを含んでいるコンピュータ実装方法が提供されており、この構成は、ハイブリッド古典量子コンピューティング・デバイスに、断熱的進行動作を実行することによって量子回路を実行させることと、変分問題に対応するパラメータ化された最適化問題の連続的パラメータにおける第1の増加を生成することであって、連続的パラメータの現在の状態が最適化問題の可解状態に対応する、生成することと、第1の増加に対応する変分パラメータのセットを生成することであって、変分パラメータのセットが量子回路の構成を指定する、生成することと、量子回路の出力が問題の既知の正しい解としきい値以下の量だけ異なるということの決定に応答して、連続的パラメータの現在の状態を第1の増加に置き換えることとをさらに含む。
【0030】
別の態様によれば、1つまたは複数のコンピュータ可読ストレージ・デバイスと、1つまたは複数のストレージ・デバイスのうちの少なくとも1つに格納されたプログラム命令とを含んでいるコンピュータ使用可能プログラム製品が提供されており、格納されたプログラム命令が、変分問題に対応する量子回路を実行するようにハイブリッド古典量子コンピューティング・デバイスを構成するためのプログラム命令を含み、この構成は、ハイブリッド古典量子コンピューティング・デバイスに、断熱的進行動作を実行することによって量子回路を実行させることと、変分問題に対応するパラメータ化された最適化問題の連続的パラメータにおける第1の増加を生成することであって、連続的パラメータの現在の状態が最適化問題の可解状態に対応する、生成することと、第1の増加に対応する変分パラメータのセットを生成することであって、変分パラメータのセットが量子回路の構成を指定する、生成することと、量子回路の出力が問題の既知の正しい解としきい値以下の量だけ異なるということの決定に応答して、連続的パラメータの現在の状態を第1の増加に置き換えることとをさらに含む。
【0031】
別の態様によれば、1つまたは複数のプロセッサと、1つまたは複数のコンピュータ可読メモリと、1つまたは複数のコンピュータ可読ストレージ・デバイスとを含んでいるコンピュータ・システムが提供されており、プログラム命令が、1つまたは複数のメモリのうちの少なくとも1つを介して、1つまたは複数のプロセッサのうちの少なくとも1つによって実行するために、1つまたは複数のストレージ・デバイスのうちの少なくとも1つに格納されており、格納されたプログラム命令が、変分問題に対応する量子回路を実行するようにハイブリッド古典量子コンピューティング・デバイスを構成するためのプログラム命令を含み、この構成は、ハイブリッド古典量子コンピューティング・デバイスに、断熱的進行動作を実行することによって量子回路を実行させることと、変分問題に対応するパラメータ化された最適化問題の連続的パラメータにおける第1の増加を生成することであって、連続的パラメータの現在の状態が最適化問題の可解状態に対応する、生成することと、第1の増加に対応する変分パラメータのセットを生成することであって、変分パラメータのセットが量子回路の構成を指定する、生成することと、量子回路の出力が問題の既知の正しい解としきい値以下の量だけ異なるということの決定に応答して、連続的パラメータの現在の状態を第1の増加に置き換えることとをさらに含む。
【0032】
次に以下の図面を単に例として参照し、本発明の好ましい実施形態について説明する。
【図面の簡単な説明】
【0033】
図1】実施形態例を実装できるデータ処理システムのネットワークのブロック図を示す図である。
図2】実施形態例を実装できるデータ処理システムのブロック図を示す図である。
図3】実施形態例に従って、量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行の例示的な構成のブロック図を示す図である。
図4】実施形態例に従って、量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行の例示的な構成のブロック図を示す図である。
図5】実施形態例に従って、量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行を使用して解くことに適している困難な変分量子問題の例を示す図である。
図6】実施形態例に従って、中間再最適化を伴う断熱的進行を使用して最大カット問題を解く例を示す図である。
図7】実施形態例に従って、中間再最適化を伴う断熱的進行を使用して解離曲線を計算する例を示す図である。
図8】実施形態例に従って、中間再最適化を伴う断熱的進行を使用して解離曲線を計算する別の例を示す図である。
図9】実施形態例に従って、量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行の例示的なプロセスのフローチャートを示す図である。
図10】実施形態例に従って、量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行の別の例示的なプロセスのフローチャートを示す図である。
【発明を実施するための形態】
【0034】
変分問題の計算は、よく認識されている技術的な努力傾注分野である。量子ビットから形成されたプロセッサを使用する量子コンピューティングは、別のよく認識されている技術的な努力傾注分野である。これら2つの努力傾注分野の組み合わせにおける技術の現在の状態には、特定の欠点および制限がある。実施形態例の動作または構成あるいはその両方は、これらの技術的な努力傾注分野における既存の技術、特に、量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行における技術を改善するために、追加の能力または新しい能力を開示する。
【0035】
実施形態例は、量子コンピューティングにおける最適化問題などの問題を解くことが、通常は、最適化問題をその入力と共にイジング・ハミルトニアンに変換し、その後、このイジング・ハミルトニアンを、変分量子固有値ソルバー(VQE:Variational Quantum Eigensolver)アルゴリズムおよび量子近似最適化アルゴリズム(QAOA)などの量子変分アルゴリズムに渡すことを必要とするということを認識する。
【0036】
イジング(Z. Physik, 31, 253, 1925)は、+1(↑)および-1(↓)の値のみを取ることができる「スピン」変数siの格子から成るモデルを導入した。すべてのスピンは、最も近い近隣(2in 1D)および外部磁場hと相互作用する。図3の例示的な1次元イジング・モデルを参照すること。
【0037】
例示的なイジング・モデルのハミルトニアンは次の通りである。
【数1】
【0038】
合計<i,j>は、最も近い近隣(j=±1 in 1D)にわたる。
【0039】
Jは、相互作用の強さを指定する定数である。イジング・モデルにおける用語「スピン」および「磁場」は、鉄などの強磁性物質における自発磁化の現象への初期の適用に由来する。各鉄原子は、不対電子を有しているため、正味のスピン(または磁気モーメント)を有する。低温では、スピンは自発的に整列して、ゼロ以外の巨視的磁気モーメントを引き起こす。巨視的磁気モーメントは、温度がキュリー温度(鉄の場合は1043K)を超えると消失する。
【0040】
イジング・モデルは、二元合金における相分離、結晶成長、および最適化問題を解くことなどの、磁気以外の多くの他の問題に適用され得る。通常は、より高い次元のイジング・モデルが、多くの問題を解くことにおいて使用される。
【0041】
2Dイジング・モデルは、周期的境界条件の下で、N個のスピンの正方格子上で定義される。この場合も、ハミルトニアンが次のように記述され得る。
【数2】
【0042】
Jは相互作用の強さを表し、hは外部磁場であり、合計は、すべての最も近い近隣の対<i,j>にわたる。各スピンは、4つの最も近い近隣を有する。
【0043】
最適化およびその他の変分問題は、計算負荷の高いタスクである。最適化問題またはその他の変分問題の解空間の徹底的な解析は、市販されている従来のコンピュータ上では、優に数年かかる可能性がある。したがって、実施形態例は、現在利用できる方法で量子コンピュータを使用して、時間効率の良い方法で最適解を計算することが、さらにいっそう困難であるということも認識する。
【0044】
実施形態例は、ユーザの精度まで解くことができる簡略化された問題から開始し、その後、途中でより複雑な問題をそれぞれ解きながら、最終的に目的の問題が解かれるまで、問題の複雑さを慎重に増やすことによって、困難な変分問題を望ましい精度まで解く。途中でより複雑な問題をそれぞれ解きながら問題の複雑さを増やすことは、本明細書では断熱的進行とも呼ばれる。一例として、化学における解離曲線の場合、このことは、解離曲線の容易な部分から開始して、曲線のより困難でより励起された部分に向かってハミルトニアンを進行させるということを意味することができる。別の例として、対象のシステムがグラフとして表される最適化問題では、このことは、問題に対する数個のノードまたは構成要素のみから開始し、特異点の数を徐々に増やすということを意味することができる。
【0045】
実施形態例は、決定的に、問題の困難さを進行させる速度を制御するための方法を提供し、これが本明細書の主要な課題である(問題を直接解こうとして、簡単な問題から完全な問題へと1ステップでジャンプしようとする試みは、適切でない速度であると見なすことができる)。ステップの進行が速すぎる場合、中間最適化の開始点が、望ましい解を含んでいる引き込み領域の外にジャンプすることがあり、オプティマイザが解を検出する可能性が非常に低くなるか、または収束に要する時間が非常に長くなる。
【0046】
実施形態例は、中間解がユーザの望ましい精度に達することを保証するように、この速度を制御する。現在の技術に伴う問題の例、および既存の技術を超える実施形態例の改善は、次の通りである。第1に、実施形態例の方法は、解離曲線問題および最大カット問題を、変分アルゴリズムを使用して直接解くことによって、または「ブートストラップ」(1に等しいウィンドウ深さを伴う外挿の形態)によって達成することが以前は不可能だった精度で解くために、以下の「巻き戻し」法と共に使用された。第2に、古典的なホモトピー法または内点法を使用することを超える改善は、一実施形態が、量子解を使用できることである。中間解の波動関数は、問題の大きさと比較して指数関数的に多い可能性を維持することができる。最後に、近い将来、量子ハードウェアは、十分に大きくなり、量子アルゴリズムの解を古典的に検証することができなくなるであろう。量子計算の信頼性の向上の問題が、差し迫っている。
【0047】
実施形態例は、現在利用できるツールまたは解決策が、これらの必要性に対処せず、これらの必要性に対する十分な解決策を提供しないということを認識する。本発明を説明するために使用される実施形態例は、概して、量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行によって、前述の問題およびその他の関連する問題に対処し、解決する。
【0048】
一実施形態は、ソフトウェア・アプリケーションとして実装され得る。一実施形態または実施形態の1つまたは複数の構成要素を実装するアプリケーションは、既存の量子古典ハイブリッド・データ処理システム(すなわち、量子コンピューティング・システムの入力を生成する古典的コンピューティング・システムにおけるネイティブ・アプリケーション)の修正として、ネットワークを経由して既存の量子コンピューティング・システムと通信する古典的データ処理システム内で実行されるアプリケーションとして、その他の方法で既存の量子古典システムと連動する分離したアプリケーションとして、古典的システム上で実行するためのスタンドアロン・アプリケーションとして、またはこれらの何らかの組み合わせとして、構成され得る。
【0049】
一実施形態は、古典的コンピューティング環境および量子コンピューティング環境を含むハイブリッド・データ処理環境を構成する。実施形態例に従って、この環境は、少なくとも1つの量子コンピュータ・ノード(QCN:quantum compute node)、および一実施形態を実行できる少なくとも1つの従来のノード(CN:conventional nod)を含む。そのようなコンピューティング環境は、以下では量子コンピューティング環境(QCE:quantum computing environment)と呼ばれる。QCEは、従来の2進数計算を使用してアプリケーションを実行するために、適切な構成(クラスタなど)で1つまたは複数のCNを含んでよい。ハイブリッド環境は、クラウド・コンピューティングアーキテクチャを使用して実装され得るが、必ずしもそのように実装される必要はない。特定の問題を解くために、一実施形態は、古典的コンピューティング環境内で、量子コンピューティング環境を使用して実行される量子回路を生成する。
【0050】
一実施形態は、次のように機能する。パラメータ化された問題が提供されるとき、問題は、単一の連続的パラメータzを含み、z=0に対応する問題を解くことが容易であり、z=1(またはさらに高い、ユーザによって指定されたz)に対応する問題が、一実施形態が解くべき対象の(困難である可能性がある)問題である、という特性を有する。例えば、解くべき問題がグラフ上の最適化(最大カットなど)である場合、パラメータ化された問題は、グラフ内のエッジの数を制御することができ、z=0では、グラフは1つのエッジを有し(問題を解くことが容易であり)、z=1では、グラフは元の問題の事例におけるすべてのエッジを有する。1つの実施形態では、容易な問題(z=0)から困難な問題(z=1)への滑らかな進行を使用できる(これは、ホモトピー最適化および内点法の分野において詳細に研究されている)。
【0051】
一実施形態は、既知の容易な問題から開始する。容易な問題は、対応する連続的パラメータzを有する。連続的パラメータzは、変分パラメータの対応するセットを有する。変分パラメータのセットは、問題を解くために使用できる量子回路の構成を定義する。したがって、問題の複雑さを増加させるために、一実施形態は、ある量だけ連続的パラメータzを増やし、それに応じて、変分パラメータのセットを変更する。変分パラメータの変更されたセットは、より複雑な問題を解こうとするために使用できる量子回路の新しい構成を定義する。
【0052】
一実施形態は、複雑さの増加を実行するために、巻き戻しの実施形態および競争の実施形態のうちの1つまたは両方を含む、多くの方法のうちの1つに従うことができる。各方法は、複雑さの増加を異なって実行する。
【0053】
巻き戻しの実施形態は、問題に対する既知の正しい解を、別の手段によっても取得できる場合に使用するのに適している。巻き戻しの実施形態は、容易な状態での連続的パラメータzから開始し、zを目標の状態(すなわち、最大のz)に増やす。巻き戻しの実施形態は、新しいzに対応する変分パラメータのセットを生成する。巻き戻しの実施形態は、次に、変分パラメータのセットによって定義された量子回路の構成を使用して、問題を解くことを試みる。巻き戻しの実施形態は、量子回路の出力を、別の手段によって(解の多項式時間の妥当性確認の何らかの形態を使用すること、または正確な古典的解と比較することなどによって)取得された問題に対する既知の正しい解と比較する。量子回路の出力が、既知の正しい解からのしきい値差を下回っている場合、実施形態は、困難な問題を解いたことになり、目標を達成している。代わりに、量子回路の出力が、既知の正しい解からのしきい値差を上回っている場合、または量子回路が、既定の期間内に実行を完了して解を生成するのに失敗した場合、巻き戻しの実施形態は、zにおける増加が大きすぎたという結論を下す。
【0054】
zにおける増加が大きすぎた場合、巻き戻しの実施形態は、zにおける開始点からのより小さい増加を選択する。1つの実施形態では、zにおけるより小さい増加は、前の増加の大きさの半分である。別の実施形態では、zにおけるより小さい増加は、1/3である。別の実施形態では、より小さい増加は、1/nに前の増加の大きさを掛けた値であり、nは1より大きい任意の正の整数である。別の実施形態では、より小さい増加は、別の適切な方法を使用して選択され得る。
【0055】
巻き戻しの実施形態がより小さい増加を決定した後に、この実施形態は、新しいzに対応する変分パラメータのセットを生成し、次に、変分パラメータの新しいセットによって定義された量子回路の構成を使用して問題を解くことを試みるプロセスを繰り返す。新しいzが問題を解くことに成功した場合、実施形態は、新しいzを開始点にし、本明細書に記載された方法でzを増やすことを試みる。
【0056】
新しいzが問題を解くことに成功しなかった場合、巻き戻しの実施形態は、zにおける開始点からのさらに小さい増加を選択する。1つの実施形態では、さらに小さい増加は、1/nに前の増加の大きさを掛けた値であり、nは1より大きい任意の正の整数である。別の実施形態では、より小さい増加は、別の適切な方法を使用して選択され得る。巻き戻しの実施形態がさらに小さい増加を決定した後に、この実施形態は、新しいzに対応する変分パラメータのセットを生成し、次に、変分パラメータの新しいセットによって定義された量子回路の構成を使用して問題を解くことを試みるプロセスを繰り返す。
【0057】
巻き戻しの実施形態は、問題を解くzにおける開始点からの増加に達するまで、このプロセスを繰り返す。実施形態は、新しいzを開始点にし、本明細書に記載された方法でzを増やすことを再度試みる。このようにして、巻き戻しの実施形態は、実施形態がzの目標値を含む正しい量子回路の構成を生成するまで、各ステップで、できるだけzを増やし続ける。
【0058】
このようにして、各増加が前の増加よりも小さい場合、巻き戻しの実施形態の動作は、先行する変分パラメータを使用しているときに、引き込み領域内にある次の点の検索(例えば、各増加が前の増加の2分の1である場合は、二分探索)を実行することとして理解され得る。この検索は、無限に巻き戻して進行しなくなる可能性によって制限されるため、実際には、この検索は、先行する点に非常に近い点を検出または使用しないように選択するのが好ましい。
【0059】
競争の実施形態は、妥当性確認の方法を使用できない場合に使用するのに適している。競争の実施形態は、1つまたは複数の疑似的な妥当性確認方法を使用して、複数の可能性のある後続の点のうちの1つを選択する。例えば、1つの競争の実施形態では、引き込み領域の内部にあるときと外部にあるときでの、勾配の基づくオプティマイザを使用して最適な点に収束する時間における差が、進行時に疑似的な条件として使用される。つまり、実施形態が、引き込み領域の内部にある点が非常に速く収束し、引き込み領域の外部にある点が10倍遅いということを決定した場合、実施形態は、これらの点の実行を互いに「競争」させて、次の点を選択することができる。
【0060】
したがって、競争の実施形態は、容易な状態での連続的パラメータzから開始し、zにおける開始点からの増加のセットを生成する。1つの実施形態では、増加のセットの各々は、開始点から目標の状態までの範囲を同じ大きさのセグメントに分割する、前の増加からの固定距離である。別の実施形態は、同じ大きさのセグメントを、目標の状態ではなく中間状態までだけ、使用する。別の実施形態は、解かれる問題の既知の特徴に基づいて選択された同じでない大きさのセグメントを使用して、問題の可解状態に達する可能性を最大化する。例えば、増加は、zのより小さい近くのある値、およびzのより大きい近くの別の値であることができる。別の実施形態は、増加のセットを生成する別の適切な方法を使用する。
【0061】
セット内の新しいzごとに、競争の実施形態は、各新しいzに対応する変分パラメータのセットを生成する。競争の実施形態は、次に、変分パラメータの各セットによって定義された量子回路の構成を使用して、問題を解くことを試みる。
【0062】
量子回路の構成の各々は、並列に実行される。量子回路のセットの実行時間は密集する傾向があるため、競争の実施形態は、最初の量子回路が実行を完了する時間を記録する。その時間から、実施形態は、セット内の他の回路が実行を完了する追加の期間、待機する。一実施形態では、この追加の期間は、最初の回路が完了する時間と同じである。別の実施形態では、この追加の期間は、最初の回路が完了する時間の2倍である。1つの実施形態では、この追加の期間は、最初の回路が完了する時間の3倍である。他の実施形態は、最初の回路が完了する時間の5倍または10倍、あるいは絶対期間(例えば、10秒または1分)などの、調整可能な期間を使用するように構成可能である。
【0063】
一実施形態は、追加の期間内に実行を完了するいずれかの回路を、問題に対する可能性のある解として考慮する。追加の期間の終了時にまだ実行中であるすべての回路は、問題に対する可能性のある解ではないため、一実施形態はこれらの回路の実行を停止する。一実施形態は、解のグループ内の回路に対応するzの最大値を選択する。実施形態は、新しいzを開始点にし、本明細書に記載された方法でzを増やすことを再度試みる。このようにして、競争の実施形態は、実施形態がzの目標値に達するまで、各ステップで、できるだけzを増やし続ける。
【0064】
疑似的な妥当性確認方法の別の実施形態は、候補点およびそれらの点の外挿された各パラメータの各々に対して、計算された変分コスト関数(variational cost function)の比較を使用する。
【0065】
一実施形態が連続的パラメータzの目標値に達し、困難な問題を解いた場合、実施形態は終了し、問題の解を返す。一実施形態がzの目標値に達することができなかった場合、実施形態は、達することができたzの値、および問題の対応する複雑度に対する解を返す。
【0066】
本明細書に記載された一実施形態は、断熱的進行を使用するが、QAOAまたは断熱的シミュレーションをノイズあり中規模量子(NISQ:Noisy Intermediate Scale Quantum)デバイスにとって許容できなくする高額なトロタリゼーション(trotterization)またはハミルトニアン累乗ステップ(hamiltonian exponentiation steps)を実行することを必要とせずに、化学的問題、機械学習問題、および最適化問題を解くための方法を提供する。一実施形態は、NISQデバイスに最適な、非常に正方形に近い回路を生成する。一実施形態は、問題の困難さを進行させる正確な速度を制御する。
【0067】
本明細書に記載された量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行の方法は、量子コンピューティング(特に、困難な変分問題を解くための量子データ処理環境を操作すること)に関する技術的な努力傾注分野において現在使用可能な方法では、使用することができない。本明細書に記載された実施形態の方法は、デバイスまたはデータ処理システムで実行するように実装された場合、量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行におけるそのデバイスまたはデータ処理システムの機能の大幅な進歩を含む。
【0068】
実施形態例は、単に例として、特定の種類のアルゴリズム、ライブラリ、コード、命令、次元、データ、デバイス、データ処理システム、環境、コンポーネント、およびアプリケーションに関して説明される。これらおよびその他の同様のアーチファクトのどのような特定の明示も、本発明を制限するよう意図されていない。これらおよびその他の同様のアーチファクトの任意の適切な明示が、実施形態例の範囲内で選択され得る。
【0069】
さらに、実施形態例は、任意の種類のデータ、データ・ソース、またはデータ・ネットワークを経由したデータ・ソースへのアクセスに関して実装されてよい。本発明の範囲内で、任意の種類のデータ・ストレージ・デバイスが、データ処理システムでローカルに、またはデータ・ネットワークを経由して、本発明の一実施形態にデータを提供してよい。モバイル・デバイスを使用して一実施形態が説明される場合、実施形態例の範囲内で、モバイル・デバイスと共に使用するのに適した任意の種類のデータ・ストレージ・デバイスが、モバイル・デバイスでローカルに、またはデータ・ネットワークを経由して、そのような実施形態にデータを提供してよい。
【0070】
実施形態例は、単に例として、特定のコード、設計、アーキテクチャ、プロトコル、レイアウト、回路図、およびツールを使用して説明され、実施形態例を制限していない。さらに、実施形態例は、場合によっては、説明を明確にするために、単に例として、特定のソフトウェア、ツール、およびデータ処理環境を使用して説明される。実施形態例は、他の同等の、または同様の目的を持つ構造、システム、アプリケーション、またはアーキテクチャと共に使用されてよい。したがって例えば、本発明の範囲内で、他の同等のモバイル・デバイス、構造、システム、アプリケーション、またはアーキテクチャが、本発明のそのような実施形態と共に使用されてよい。実施形態例は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせにおいて実装されてよい。
【0071】
本開示における例は、単に説明を明確にするために使用されており、これらの実施形態例に制限していない。追加のデータ、動作、アクション、タスク、活動、および操作が、本開示から思い付くことができ、それらは、実施形態例の範囲内で企図される。
【0072】
本明細書に示された利点は、例にすぎず、これらの実施形態例に制限するよう意図されていない。追加の利点または異なる利点が、特定の実施形態例によって実現されてよい。さらに、特定の実施形態例が、上記の利点の一部またはすべてを含むか、あるいは上記の利点を何も含まなくてよい。
【0073】
図を参照し、特に図1および2を参照すると、これらの図は、実施形態例が実装されてよいデータ処理環境の例示的な図である。図1および2は単なる例であり、さまざまな実施形態が実装されてよい環境に関して、どのような制限も主張または意味するよう意図されていない。特定の実装は、以下の説明に基づいて、示された環境に対して多くの変更を行ってよい。
【0074】
図1は、実施形態例を実装できるデータ処理システムのネットワークのブロック図を示している。データ処理環境100は、実施形態例を実装できる古典的コンピュータのネットワークである。データ処理環境100は、ネットワーク102を含む。ネットワーク102は、データ処理環境100内で一緒に接続されているさまざまなデバイスとコンピュータの間の通信リンクを提供するために使用される媒体である。ネットワーク102は、ワイヤ、無線通信リンク、または光ファイバ・ケーブルなどの接続を含んでよい。
【0075】
クライアントまたはサーバは、ネットワーク102に接続された特定のデータ処理システムの例示的な役割にすぎず、これらのデータ処理システムの他の構成または役割を除外するよう意図されていない。サーバ104およびサーバ106は、古典的データ処理システムであり、ストレージ・ユニット108と共にネットワーク102に結合されている。ソフトウェア・アプリケーションが、データ処理環境100内の任意のコンピュータ上で実行されてよい。クライアント110、112、および114も、ネットワーク102に結合される。サーバ104もしくは106、またはクライアント110、112、もしくは114などのデータ処理システムは、データを含んでよく、データ処理システムで実行されるソフトウェア・アプリケーションまたはソフトウェア・ツールを有してよい。
【0076】
単なる一例として、そのようなアーキテクチャに限定することを意味せずに、図1は、一実施形態の例示的な実装において使用できる特定のコンポーネントを示している。例えば、サーバ104および106、ならびにクライアント110、112、114は、単に例として、サーバおよびクライアントとして示されており、クライアント/サーバ・アーキテクチャに限定することを意味していない。別の例として、実施形態例の範囲内で、一実施形態は、示されているように、複数のデータ処理システムおよびデータ・ネットワークにわたって分散することができ、一方、別の実施形態は、単一のデータ処理システム上で実装され得る。データ処理システム104、106、110、112、および114は、一実施形態を実装するのに適しているクラスタ、パーティション、およびその他の構成内の例示的なノードも表している。
【0077】
デバイス132は、本明細書に記載されたデバイスの例である。例えば、デバイス132は、スマートフォン、タブレット・コンピュータ、ラップトップ・コンピュータ、固定型または携帯型のクライアント110、ウェアラブル・コンピューティング・デバイス、または任意のその他の適切なデバイスの形態をとることができる。図1の別のデータ処理システム内で実行されるとして説明された任意のソフトウェア・アプリケーションは、同様の方法でデバイス132内で実行されるように構成され得る。図1の別のデータ処理システム内で格納または生成される任意のデータまたは情報は、同様の方法でデバイス132内で格納または生成されるように構成され得る。
【0078】
QCE140は、本明細書に記載されたQCEの例である。一例として、QCE140は、CN104、106、および多くのその他の同様のCN142を含んでいる。一例として、CN106および142は、CNのクラスタ144として構成されてよい。QCE140は、QCN146などの1つまたは複数のQCNをさらに含んでいる。QCN146などのQCNは、1つまたは複数のqプロセッサ148を備えている。現在実行可能な量子ビットは、qプロセッサ148の例である。アプリケーション105は、本明細書に記載された一実施形態を実装する。アプリケーション105は、QCE140内のサーバ104などのCN上で動作する。アプリケーション105は、動作ライブラリ、回路、およびメタデータを、ストレージ108または任意のその他の適切なストレージに格納する。
【0079】
QCE140は、有線接続、無線通信プロトコル、またはその他の適切なデータ接続を使用して、ネットワーク102に結合されてよい。例えば、クライアント110、112、および114は、パーソナル・コンピュータまたはネットワーク・コンピュータであってよい。ネットワーク102は、送信制御プロトコル/インターネット・プロトコル(TCP/IP:Transmission Control Protocol/Internet Protocol)およびその他のプロトコルを使用して互いに通信する、ネットワークおよびゲートウェイの集合を表してよい。図1は、例を示すことを意図しており、さまざま実施形態例に関してアーキテクチャの制限を示すことを意図していない。
【0080】
データ処理環境100は、クラウドの形態をとり、構成可能な計算リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供のクラウド・コンピューティング・モデルを採用してもよく、このモデルでは、管理上の手間またはサービス・プロバイダとのやりとりを最小限に抑えて、迅速にプロビジョニングおよび解放することができる。
【0081】
図2を参照すると、この図は、実施形態例を実装できるデータ処理システムのブロック図を示している。データ処理システム200は、図1のサーバ104および106、またはクライアント110、112、および114、あるいは別の種類のデバイスなどのコンピュータの例であり、このコンピュータ内に、実施形態例のプロセスを実装するコンピュータ使用可能なプログラム・コードまたは命令が配置されてよい。
【0082】
データ処理システム200は、図1のデータ処理システム132などのデータ処理システムまたはその構成も表しており、このデータ処理システム内に、実施形態例のプロセスを実装するコンピュータ使用可能なプログラム・コードまたは命令が配置されてよい。データ処理システム200は、単に一例として、コンピュータとして説明されているが、これに限定されない。本明細書に記載されたデータ処理システム200の動作および機能の概要から逸脱することなく、図1のデバイス132などの他のデバイスの形態での実装が、タッチ・インターフェイスを追加することなどによって、データ処理システム200を変更してよく、図に示された特定のコンポーネントをデータ処理システム200から取り除いてもよい。
【0083】
図に示されている例では、データ処理システム200は、ノース・ブリッジおよびメモリ・コントローラ・ハブ(NB/MCH:North Bridge and memory controller hub)202と、サウス・ブリッジおよび入出力(I/O)コントローラ・ハブ(SB/ICH:South Bridge and input/output (I/O) controller hub)204とを含んでいるハブ・アーキテクチャを採用している。処理ユニット206、メイン・メモリ208、およびグラフィック・プロセッサ210が、ノース・ブリッジおよびメモリ・コントローラ・ハブ(NB/MCH)202に結合されている。処理ユニット206は、1つまたは複数のプロセッサを含んでよく、1つまたは複数の異種プロセッサ・システムを使用して実装されてよい。処理ユニット206は、マルチコア・プロセッサであってよい。グラフィック・プロセッサ210は、特定の実装において、アクセラレーテッド・グラフィックス・ポート(AGP:accelerated graphics port)を介してNB/MCH202に結合されてよい。
【0084】
図に示された例では、ローカル・エリア・ネットワーク(LAN)アダプタ212が、サウス・ブリッジおよびI/Oコントローラ・ハブ(SB/ICH)204に結合されている。オーディオ・アダプタ216、キーボードおよびマウス・アダプタ220、モデム222、読み取り専用メモリ(ROM:read only memory)224、ユニバーサル・シリアル・バス(USB:universal serial bus)およびその他のポート232、ならびにPCI/PCIeデバイス234が、バス238を介してサウス・ブリッジおよびI/Oコントローラ・ハブ204に結合されている。ハード・ディスク・ドライブ(HDD:Hard disk drive)または半導体ドライブ(SSD:solid-state drive)226およびCD-ROM230が、バス240を介してサウス・ブリッジおよびI/Oコントローラ・ハブ204に結合されている。PCI/PCIeデバイス234は、例えば、ノートブック・コンピュータ用のイーサネット(R)・アダプタ、アドイン・カード、およびPCカードを含んでよい。PCIはカード・バス・コントローラを使用するが、PCIeはカード・バス・コントローラを使用しない。ROM224は、例えば、フラッシュ・バイナリ入出力システム(BIOS:binary input/output system)であってよい。ハード・ディスク・ドライブ226およびCD-ROM230は、例えば、IDE(integrated drive electronics)、シリアルATA(SATA:serial advanced technology attachment)インターフェイス、またはeSATA(external-SATA)およびmSATA(micro-SATA)などの変形を使用してよい。スーパーI/O(SIO:super I/O)デバイス236が、バス238を介してサウス・ブリッジおよびI/Oコントローラ・ハブ(SB/ICH)204に結合されてよい。
【0085】
メイン・メモリ208、ROM224、またはフラッシュ・メモリ(図示されていない)などのメモリは、コンピュータ使用可能ストレージ・デバイスの例である。ハード・ディスク・ドライブまたは半導体ドライブ226、CD-ROM230、およびその他の同様に使用可能なデバイスは、コンピュータ使用可能ストレージ媒体を含むコンピュータ使用可能ストレージ・デバイスの例である。
【0086】
オペレーティング・システムが、処理ユニット206上で実行される。オペレーティング・システムは、図2のデータ処理システム200内のさまざまなコンポーネントを調整して制御する。オペレーティング・システムは、サーバ・システム、パーソナル・コンピュータ、およびモバイル・デバイスを含むが、これらに限定されない、任意の種類のコンピューティング・プラットフォーム用の、市販されているオペレーティング・システムであってよい。オブジェクト指向またはその他の種類のプログラミング・システムが、オペレーティング・システムと連動し、データ処理システム200上で実行されているプログラムまたはアプリケーションからのオペレーティング・システムに対する呼び出しを提供してよい。
【0087】
オペレーティング・システム、オブジェクト指向プログラミング・システム、および図1のアプリケーション105などのアプリケーションまたはプログラムの命令が、ハード・ディスク・ドライブ226上のコード226Aの形態などで、ストレージ・デバイスに配置され、処理ユニット206によって実行するために、メイン・メモリ208などの1つまたは複数のメモリのうちの少なくとも1つに読み込まれてよい。実施形態例のプロセスは、コンピュータ実装命令を使用して、処理ユニット206によって実行されてよく、これらのコンピュータ実装命令は、例えばメイン・メモリ208、読み取り専用メモリ224などのメモリ内、または1つまたは複数の周辺機器内に、配置されてよい。
【0088】
さらに、1つの事例では、コード226Aは、ネットワーク201Aを経由して、類似するコード201Cがストレージ・デバイス201Dに格納されているリモート・システム201Bからダウンロードされてよい。別の事例では、コード226Aは、ネットワーク201Aを経由してリモート・システム201Bにダウンロードされてよく、ダウンロードされたコード201Cが、ストレージ・デバイス201Dに格納される。
【0089】
図1~2のハードウェアは、実装に応じて変化してよい。フラッシュ・メモリ、同等の不揮発性メモリ、または光ディスク・ドライブなどの、その他の内部ハードウェアまたは周辺機器が、図1~2に示されているハードウェアに加えて、またはそれらのハードウェアの代わりに、使用されてよい。加えて、実施形態例のプロセスは、マルチプロセッサ・データ処理システムに適用されてよい。
【0090】
一部の例では、データ処理システム200は、オペレーティング・システム・ファイルまたはユーザによって生成されたデータあるいはその両方を格納するために、不揮発性メモリを提供するようにフラッシュ・メモリを使用して通常は構成された、パーソナル・デジタル・アシスタント(PDA:personal digital assistant)であってよい。バス・システムは、システム・バス、I/Oバス、およびPCIバスなどの、1つまたは複数のバスを含んでよい。当然ながら、バス・システムは、通信ファブリックまたは通信アーキテクチャに接続された異なるコンポーネントまたはデバイス間のデータの転送を提供する任意の種類の通信ファブリックまたは通信アーキテクチャを使用して、実装されてよい。
【0091】
通信ユニットは、モデムまたはネットワーク・アダプタなどの、データを送信および受信するために使用される1つまたは複数のデバイスを含んでよい。メモリは、例えば、メイン・メモリ208であるか、またはノース・ブリッジおよびメモリ・コントローラ・ハブ202に見られるキャッシュなどの、キャッシュであってよい。処理ユニットは、1つまたは複数のプロセッサまたはCPUを含んでよい。
【0092】
図1~2に示された例および前述した例は、アーキテクチャの制限を意図するよう意味されていない。例えば、データ処理システム200は、モバイル・デバイスまたはウェアラブル・デバイスの形態をとることに加えて、タブレット・コンピュータ、ラップトップ・コンピュータ、または電話デバイスであってもよい。
【0093】
コンピュータまたはデータ処理システムが仮想マシン、仮想デバイス、または仮想コンポーネントとして説明される場合、仮想マシン、仮想デバイス、または仮想コンポーネントは、データ処理システム200に示された一部またはすべてのコンポーネントの仮想化された明示を使用して、データ処理システム200の方法で動作する。例えば、仮想マシン、仮想デバイス、または仮想コンポーネントでは、処理ユニット206は、ホスト・データ処理システム内で使用できるハードウェア処理ユニット206のすべてまたは一部の仮想化されたインスタンスとして明示され、メイン・メモリ208は、ホスト・データ処理システム内で使用できるメイン・メモリ208のすべてまたは一部の仮想化されたインスタンスとして明示され、ディスク226は、ホスト・データ処理システム内で使用できるディスク226のすべてまたは一部の仮想化されたインスタンスとして明示される。そのような場合、ホスト・データ処理システムはデータ処理システム200によって表される。
【0094】
図3を参照すると、この図は、実施形態例に従って、量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行の例示的な構成のブロック図を示している。クラウド300は、図1のQCE140の例である。古典的コンピューティング環境310は、図1のCCN104の例である。量子コンピューティング環境320は、図1のQCN146の例である。アプリケーション312は、図1のアプリケーション105の例であり、図1のサーバ104または図1の任意のその他の適切なデバイス内で実行される。
【0095】
古典的コンピューティング環境310内で、アプリケーション312は、単一の連続的パラメータzを含むパラメータ化された問題を、入力として受信する。アプリケーション312は、zのさまざまな値に対応する量子回路を生成する。
【0096】
次に、量子コンピューティング環境320内で、量子ビット344および読み出し回路346を含んでいる量子プロセッサ340が、量子回路を実行する。量子コンピューティング環境320は、量子プロセッサ支援モジュール330も含んでおり、量子プロセッサ支援モジュール330は、量子回路の実行結果を、元の入力問題の記述に対する解として出力する。
【0097】
図4を参照すると、この図は、実施形態例に従って、量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行の例示的な構成のブロック図を示している。アプリケーション312は、図3のアプリケーション312と同じである。
【0098】
アプリケーション312は、既知の容易な問題を入力として受信する。容易な問題は、対応する連続的パラメータzを有する。アプリケーション312は、解かれる問題の望ましい複雑さを表すzの目標値も、入力として受信する。
【0099】
ステップ生成器410は、連続的パラメータzにおける1つまたは複数の増加を生成する。巻き戻しの実施形態を実装する場合、モジュール410は、容易な状態での連続的パラメータzから開始し、zを目標の状態(すなわち、最大のz)に増やす。zにおける増加が大きすぎるということが判明した場合、モジュール410は、zにおける開始点からのより小さい増加を選択する。新しいzが問題を解くことに成功した場合、モジュール410は、新しいzを開始点にし、zを目標の状態に、または新しい開始点と目標の状態の間の別の中間状態に、再度増やす。モジュール410は、アプリケーション312がzの目標値を含む正しい量子回路の構成を生成するまで、各ステップで、できるだけzを増やし続ける。
【0100】
競争の実施形態を実装する場合、モジュール410は、容易な状態での連続的パラメータzから開始し、zにおける開始点からの増加のセットを生成する。対応する量子回路のグループが実行を完了した後に、モジュール410は、解のグループ内の回路に対応するzの最大値を選択する。モジュール410は、新しいzを開始点にし、zにおける増加の新しいセットを生成する。モジュール410は、アプリケーション312がzの目標値を含む正しい量子回路の構成を生成するまで、各ステップで、できるだけzを増やし続ける。
【0101】
パラメータ・セット生成器420は、ステップ生成器410によって生成されたzにおける各増加に対応する変分パラメータのセットを生成する。変分パラメータのセットは、問題を解くために使用できる量子回路の構成を定義する。
【0102】
問題解決インターフェイス・モジュール430は、変分パラメータのセットによって定義された量子回路の構成を入力として受け取る。モジュール430は、量子回路の構成を実行するために量子コンピューティング環境320に渡し、実行結果を量子コンピューティング環境320から受信する。モジュール430は、量子回路の構成の実行時間および完了時間の監視も行う。
【0103】
解妥当性確認インターフェイス・モジュール440は、量子回路の出力を、別の手段によって(解の多項式時間の妥当性確認の何らかの形態を使用すること、または正確な古典的解と比較することなどによって)取得された問題に対する既知の正しい解と比較する。
【0104】
図5を参照すると、この図は、実施形態例に従って、量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行を使用して解くことに適している困難な変分量子問題の例を示している。
【0105】
グラフ510は、フッ素分子の解離曲線を示している。各フッ素分子は、2つのフッ素原子から成る。グラフ510のx軸は2つの原子間の距離であり、グラフ510のy軸はエネルギー量である。したがって、グラフ510は、原子が互いに特定の距離だけ離れている場合に、2つの原子を引き離すために必要なエネルギー量をプロットする。解離曲線における各点の計算は、特定の複雑さの変分問題である。
【0106】
グラフ520は、グラフ510に対応し、従来の方法を使用する計算グラフ510に関連付けられた2つの誤差の測定値(古典的計算と比較した全スピンおよび全エネルギー)を示している。特に、領域530は、解離曲線上の計算点における誤差が基準値の上に急上昇している領域を示している。したがって、領域530の左にある解離曲線のx軸上の点は、解くべきより容易な問題に対応する。領域530の右にある解離曲線のx軸上の点は、解くべき相対的により困難な問題に対応する。領域530内の解離曲線のx軸上の点は、解くべき最も困難な問題に対応する。解離曲線を計算する問題が変分問題としてパラメータ化された場合、x軸上の領域530の左側の点はzの低い値を有し、領域530の右側の点はzの中位の値を有し、領域530内の点はzの高い値を有し、zの値は共通の尺度(例えば、0~1)上にある。フッ素の解離曲線は、非限定的な例である。多くのその他の解離曲線は、同様の特徴を有し、そのような曲線の点について解くことは、同様の量の相対的な計算複雑性を示す。
【0107】
図6を参照すると、この図は、実施形態例に従って、中間再最適化を伴う断熱的進行を使用して最大カット問題を解く例を示している。この問題は、本明細書に記載された方法で図3のアプリケーション312を使用して解くことができる。
【0108】
図に示されているように、各反復は、グラフ上の最適化問題をパラメータ化する連続的パラメータであるzの値の位置(0~1の最大カットなど)を表している。z=0では、グラフは1つのエッジを有し(問題を解くことが容易である)、z=1では、グラフは元の問題の事例におけるすべてのエッジを有する。
【0109】
反復600で、アプリケーション312は、巻き戻しの方法を使用してステップ0を実行し、容易な状態での連続的パラメータz(0)から開始し、zを目標の状態(すなわち、最大のzまたは1)に増やす。アプリケーションは、次に、変分パラメータのセットによって定義された量子回路の構成を使用して、問題を解くことを試みる。アプリケーションは、量子回路の出力を、別の手段によって取得された問題に対する既知の正しい解と比較し、ステップ0の誤差が、既知の正しい解からの既定のしきい値差を超える5.16*10-7であるということを決定する。したがってアプリケーションは、zを0から1に増やすステップ0が大きすぎたという結論を下す。
【0110】
反復610で、アプリケーションはステップ1を実行し、zにおける開始点からのより小さい増加(ここでは、前の増加の大きさの半分または0.5)を選択する。アプリケーションは、次に、変分パラメータのセットによって定義された量子回路の構成を使用して、問題を解くことを試みる。アプリケーションは、量子回路の出力を、別の手段によって取得された問題に対する既知の正しい解と比較し、ステップ1の誤差が、既知の正しい解からの既定のしきい値差をまだ超える3.42*10-8であるということを決定する。したがってアプリケーションは、zを0から0.5に増やすステップ1も大きすぎたという結論を下す。
【0111】
反復620で、アプリケーションはステップ2を実行し、zにおける開始点からのさらに小さい増加(ここでは、前の増加の大きさの半分または0.25)を選択する。アプリケーションは、次に、変分パラメータのセットによって定義された量子回路の構成を使用して、問題を解くことを試みる。今度は、ステップ2の誤差は、既知の正しい解からの既定のしきい値差を下回る4.56*10-9である。
【0112】
その結果、反復630で、アプリケーションはステップ3を実行し、zを0.25から0.5に増やし、対応する量子回路の構成の結果を取得する。今度は、ステップ3の誤差は、既知の正しい解からの既定のしきい値差をまだ下回る3.59*10-9である。
【0113】
その結果、反復640で、アプリケーションはステップ4を実行し、zを0.5から1に増やし、対応する量子回路の構成の結果を取得する。今度は、ステップ4の誤差は、既知の正しい解からの既定のしきい値差をやはり下回る2.23*10-9である。誤差がしきい値差を下回り、z=1であるため、問題の目標の状態が解かれた。
【0114】
図6に示された増加は、目標の状態に達するためにアプリケーションが実行できた追加ステップを示していない。アプリケーションは、実施形態例の範囲から逸脱することなく、追加ステップ、より少ないステップ、または異なる大きさの増加を実行することができた。
【0115】
図7を参照すると、この図は、実施形態例に従って、中間再最適化を伴う断熱的進行を使用して解離曲線を計算する例を示している。この曲線上の点は、本明細書に記載された方法で図3のアプリケーション312を使用して解くことができる。
【0116】
グラフ700は、アプリケーション312を使用して取得された解離曲線上の点を示している。グラフ700のx軸は、オングストローム単位で測定された原子間距離を示し、y軸は解離エネルギーを示している。グラフ700は、別の方法を使用して取得された理想的な解離曲線710も示している。
【0117】
領域720は、zの高い値(例えば、0~1の尺度上の1に近い値)によってパラメータ化された、より高い複雑さを有することが知られているx軸の一部を示している。その結果、アプリケーションは、x軸上のさらに左にある曲線上の点について解くことを開始する。
【0118】
特に、アプリケーションは、解かれたことがある点730から開始する。ステップ740で、巻き戻しの方法を使用するアプリケーションは、zを増やし、点730のx値よりも高いx値を有する点について解くことを試みる。しかし、アプリケーションの初期解は、同じx値を有する曲線710上の点からのしきい値差を超えている。
【0119】
その結果、ステップ750で、アプリケーションは、ステップ740のzにおける増加よりも小さい増加を生成する。このより小さい増加は、同じx値を有する曲線710上の点からのしきい値差を下回る解をもたらす。
【0120】
その結果、ステップ750のz値が新しい開始点になる。ステップ760で、アプリケーションは、zを、ステップ740で試みられたレベルと同じレベルに再度増やす。ステップ750も、同じx値を有する曲線710上の点からのしきい値差を下回る解をもたらす。アプリケーションは、解離曲線上のすべての望ましい点が解かれるまで、本明細書に記載された方法で継続する。
【0121】
図8を参照すると、この図は、実施形態例に従って、中間再最適化を伴う断熱的進行を使用して解離曲線を計算する別の例を示している。この曲線上の点は、本明細書に記載された方法で図3のアプリケーション312を使用して解くことができる。グラフ700、曲線710、および点730は、図7のグラフ700、曲線710、および点730と同じである。
【0122】
アプリケーションは、解かれたことがある点730から開始する。競争の方法を使用するアプリケーションは、zにおける増加のセットを生成し、点730のx値よりも高いx値を有する点について解くことを試みる。アプリケーションは、zにおける増加のセットに対応する量子回路を生成し、量子回路が実行を完了するための既定の期間、待機する。この期間の終了時に、領域840に対応する量子回路のすべてが実行を完了している。x軸に沿ってさらに右にある点(例えば、点860および870)に対応する量子回路は、実行を完了していない。点850が、領域840内の回路に対応する、zにおける点730からの最高の増加を表しているため、アプリケーションは、点850に対応するz値を新しい開始点として選択し、このプロセスを繰り返す。アプリケーションは、解離曲線上のすべての望ましい点が解かれるまで、本明細書に記載された方法で継続する。
【0123】
図9を参照すると、この図は、実施形態例に従って、量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行の例示的なプロセスのフローチャートを示している。プロセス900は、図3または図4のアプリケーション312において実装することができ、本明細書に記載された巻き戻しの方法の動作を示している。
【0124】
ブロック902で、アプリケーションは、パラメータ化された最適化問題の連続的パラメータにおける増加を生成し、連続的パラメータにおける現在の状態は、問題の可解状態に対応する。ブロック904で、アプリケーションは、増加に対応する変分パラメータのセットを生成する。ブロック906で、アプリケーションは、変分パラメータのセットによって指定された量子回路の構成を使用して、問題を解く。ブロック908で、アプリケーションは、問題の解が、問題に対する既知の正しい解からのしきい値差を超えているかどうかをチェックする。超えていない場合(ブロック908の「いいえ」の経路)、ブロック910で、アプリケーションは、問題の連続的パラメータにおける、前の増加よりも小さい別の増加を生成してから、ブロック904に戻る。超えている場合(ブロック908の「はい」の経路)、ブロック912で、アプリケーションは、連続的パラメータzが目標の状態であるかどうかをチェックする。目標の状態である場合、アプリケーションが終了する。目標の状態でない場合(ブロック912の「いいえ」の経路)、アプリケーションはブロック902に戻る。
【0125】
図10を参照すると、この図は、実施形態例に従って、量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行の別の例示的なプロセスのフローチャートを示している。プロセス1000は、図3または図4のアプリケーション312において実装することができ、本明細書に記載された競争の方法の動作を示している。
【0126】
ブロック1002で、アプリケーションは、パラメータ化された最適化問題の連続的パラメータにおける異なる大きさの増加のセットを生成し、連続的パラメータにおける現在の状態は、問題の可解状態に対応する。ブロック1004で、アプリケーションは、各増加に対応する変分パラメータのセットを生成する。ブロック1006で、アプリケーションは、変分パラメータの各セットによって指定された量子回路の構成を使用して、問題を解く。ブロック1008で、アプリケーションは、量子回路のうちの1つが実行を完了した後に、既定の期間、待機する。ブロック1010で、アプリケーションは、この期間内にやはり実行を完了した、連続的パラメータにおける最大の増加に対応する量子回路を選択し、zの現在の値を、その最大の増加に置き換える。ブロック1012で、アプリケーションは、連続的パラメータzが目標の状態であるかどうかをチェックする。目標の状態である場合、アプリケーションが終了する。目標の状態でない場合(ブロック1012の「いいえ」の経路)、アプリケーションはブロック1002に戻る。
【0127】
したがって、実施形態例において、量子コンピューティングにおける困難な変分量子問題を解くための中間再最適化を伴う断熱的進行、およびその他の関連する特徴、機能、または動作のためのコンピュータ実装方法、システムまたは装置、およびコンピュータ・プログラム製品が提供される。一実施形態またはその一部がデバイスの一種に関して説明される場合、コンピュータ実装方法、システムまたは装置、コンピュータ・プログラム製品、あるいはこれらの一部は、その種類のデバイスの適切な同等の明示と共に使用するように適応されるか、または構成される。
【0128】
一実施形態がアプリケーションにおいて実装されるとして説明される場合、実施形態例の範囲内で、SaaS(Software as a Service)モデルにおけるアプリケーションの配信が企図される。SaaSモデルでは、クラウド・インフラストラクチャ内でアプリケーションを実行することによって、一実施形態を実装するアプリケーションの機能がユーザに提供される。ユーザは、Webブラウザ(例えば、Webベースの電子メール)またはその他の軽量クライアント・アプリケーションなどのシン・クライアント・インターフェイスを介して、さまざまなクライアント・デバイスを使用してアプリケーションにアクセスすることができる。ユーザは、クラウド・インフラストラクチャのネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを、管理することも制御することもない。場合によっては、ユーザは、SaaSアプリケーションの機能を管理または制御することさえなくてよい。他の事例では、SaaSによるアプリケーションの実装は、可能性のある限定的なユーザ固有のアプリケーション構成設定の例外を許可することができる。
【0129】
本発明は、任意の可能な統合の技術的詳細レベルで、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有しているコンピュータ可読ストレージ媒体を含んでよい。
【0130】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されているようなコンピュータ可読ストレージ・デバイスを含むが、それらに限定されない、コンピュータ可読ストレージ媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【0131】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【0132】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide area network)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
【0133】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【0134】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであってもよい。
【0135】
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれてもよく、それによって、一連の動作可能なステップを、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で実行させる。
【0136】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、指定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【0137】
本発明の実施形態は、クライアント企業、非営利組織、政府機関、内部組織構造などとのサービス契約の一部として配信されてもよい。これらの実施形態の態様は、本明細書に記載された方法の一部またはすべてを実装するソフトウェア、ハードウェア、およびWebサービスを実行するようにコンピュータ・システムを構成することと、そのようなソフトウェア、ハードウェア、およびWebサービスをデプロイすることとを含んでよい。これらの実施形態の態様は、クライアントの動作を解析することと、解析に応答して推奨を作成することと、推奨の一部を実装するシステムを構築することと、システムを既存のプロセスおよびインフラストラクチャに統合することと、システムの使用を測定することと、費用をシステムのユーザの割り当てることと、システムの使用に対して費用を請求することとを含んでもよい。本発明の上記の実施形態は、それらの実施形態の個別の利点について述べることによってそれぞれ説明されたが、本発明は、それらの実施形態の特定の組み合わせに限定されない。反対に、そのような実施形態は、有益な効果を失うことなく、本発明の意図されたデプロイメントに従って、任意の方法および数で組み合わせられてもよい。
【0138】
関連出願
本出願は、2019年4月9日に出願された米国仮出願第62831418号「Adiabatic Progression with Intermediate Re-Optimization to Solve Hard Variational Quantum Problems in Quantum Computing」に対する優先権を主張し、この米国仮出願は、参照によって全体的に本明細書に包含される。本出願は、米国特許出願第16/427043号および米国特許出願第16/427080号の優先権も主張する。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10