(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-26
(45)【発行日】2024-12-04
(54)【発明の名称】パラメータ最適化プログラム、パラメータ最適化方法、および情報処理装置
(51)【国際特許分類】
G06N 99/00 20190101AFI20241127BHJP
【FI】
G06N99/00 180
(21)【出願番号】P 2023576284
(86)(22)【出願日】2022-01-25
(86)【国際出願番号】 JP2022002668
(87)【国際公開番号】W WO2023144884
(87)【国際公開日】2023-08-03
【審査請求日】2024-03-27
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】高橋 憲彦
【審査官】千葉 久博
(56)【参考文献】
【文献】特開2021-26370(JP,A)
【文献】特表2022-500743(JP,A)
【文献】特表2021-524622(JP,A)
【文献】国際公開第2020/090559(WO,A1)
【文献】中国特許出願公開第113408733(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 99/00
(57)【特許請求の範囲】
【請求項1】
複数のパラメータを含む変分量子回路を用いて計算されたエネルギーの期待値に基づいて、前記エネルギーの期待値が極小値をとるように前記複数のパラメータそれぞれの更新後の値を計算する第1パラメータ調整処理を実行し、
前記第1パラメータ調整処理による前記複数のパラメータそれぞれの更新前後での値の変化量が閾値以上か否かに基づいて、前記複数のパラメータそれぞれについて、第2パラメータ調整処理における調整対象とするか否かを決定し、
前記調整対象として決定されたパラメータについて、前記第2パラメータ調整処理を実行する、
処理をコンピュータに実行させるパラメータ最適化プログラム。
【請求項2】
前記調整対象とするか否かを決定する処理では、前記複数のパラメータのうちの変化量が前記閾値以上のパラメータを前記調整対象に決定し、前記複数のパラメータのうちの変化量が前記閾値未満のパラメータを前記調整対象から除外する、
請求項1記載のパラメータ最適化プログラム。
【請求項3】
前記調整対象とするか否かを決定する処理では、前記第1パラメータ調整処理の後に、前記複数のパラメータそれぞれについて、その後繰り返し実行する前記第2パラメータ調整処理における前記調整対象とするか否かを決定する、
請求項1または2に記載のパラメータ最適化プログラム。
【請求項4】
複数のパラメータを含む変分量子回路を用いて計算されたエネルギーの期待値に基づいて、前記エネルギーの期待値が極小値をとるように前記複数のパラメータそれぞれの更新後の値を計算する第1パラメータ調整処理を実行し、
前記第1パラメータ調整処理による前記複数のパラメータそれぞれの更新前後での値の変化量が閾値以上か否かに基づいて、前記複数のパラメータそれぞれについて、第2パラメータ調整処理における調整対象とするか否かを決定し、
前記調整対象として決定されたパラメータについて、前記第2パラメータ調整処理を実行する、
処理をコンピュータが実行するパラメータ最適化方法。
【請求項5】
複数のパラメータを含む変分量子回路を用いて計算されたエネルギーの期待値に基づいて、前記エネルギーの期待値が極小値をとるように前記複数のパラメータそれぞれの更新後の値を計算する第1パラメータ調整処理を実行し、前記第1パラメータ調整処理による前記複数のパラメータそれぞれの更新前後での値の変化量が閾値以上か否かに基づいて、前記複数のパラメータそれぞれについて、第2パラメータ調整処理における調整対象とするか否かを決定し、前記調整対象として決定されたパラメータについて、前記第2パラメータ調整処理を実行する処理部、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パラメータ最適化プログラム、パラメータ最適化方法、および情報処理装置に関する。
【背景技術】
【0002】
量子コンピュータまたは古典コンピュータなどの計算機を用いて量子化学計算を行うための手法として、VQE(Variational Quantum Eigensolver:変分量子固有値ソルバー)アルゴリズムがある。このアルゴリズムは、物質の基底状態のエネルギー値を求めるためによく用いられる。
【0003】
VQEアルゴリズムによる量子化学計算(VQE計算)では、例えば量子コンピュータが、複数のパラメータを含むパラメータによりパラメタライズされた変分量子回路を用いて量子状態の期待値を測定する。量子状態の期待値からエネルギーの期待値が得られる。エネルギーの期待値は、量子ビットごとに計算したエネルギーの合計(全エネルギー値)である。量子状態の期待値に基づいて、古典コンピュータ計算機が、エネルギーの期待値がより低くなるように(エネルギーの期待値が極小値を取るように)パラメータの調整処理を行う。本明細書では、パラメータの調整処理を最適化処理と呼ぶこともある。そして量子コンピュータは、最適化されたパラメータの値を用いて量子状態の期待値を、再度測定する。
【0004】
量子コンピュータと古典コンピュータは、量子状態の期待値の測定とパラメータの最適化をエネルギーが収束するまで繰り返す。以降、この繰り返しの処理をVQEにおける「ループ処理」と呼ぶ。
【0005】
量子計算に関する技術としては、例えば量子演算装置の誤り率が十分小さい値でなくても、量子変分アルゴリズムを実行することができる量子演算装置が提案されている。またVQEを用いて系のエネルギーを量子計算する際にエネルギーの導関数を得る量子情報処理方法も提案されている。
【0006】
なおVQEを用いた基底状態のエネルギーの計算方法の詳細は論文で公開されている。またVQE計算におけるパラメータの最適化計算に使用可能な技術として、例えば自然勾配法などの技術が提案されている。
【先行技術文献】
【特許文献】
【0007】
【文献】特開2021-26370号公報
【文献】特開2020-187451号公報
【非特許文献】
【0008】
【文献】Alberto Peruzzo, Jarrod McClean, Peter Shadbolt, Man-Hong Yung, Xiao-Qi Zhou, Peter J. Love, Alan Aspuru-Guzik, Jeremy L. O'Brien, "A variational eigenvalue solver on a photonic quantum processor", Nature Communications, 23 July 2014, volume 5, Article number: 4213 (2014)
【文献】James Stokes, Josh Izaac, Nathan Killoran, Giuseppe Carleo, "Quantum Natural Gradient", Quantum, 2020-05-25, volume 4, page 269
【文献】Naoki Yamamoto, "On the natural gradient for variational quantum eigensolver", arXiv:1909.05074, 11 Sep 2019
【発明の概要】
【発明が解決しようとする課題】
【0009】
VQE計算を行う上でのボトルネックの1つとして、パラメータを最適化する最適化計算が挙げられる。VQE計算においては、計算対象とする系の規模が大きくなると、計算に用いられる量子ビット数も大きくなる。その結果パラメータの数も大きくなり、古典コンピュータによる最適化計算に要する計算時間も大きくなってしまう。
【0010】
1つの側面では、本件は、パラメータの最適化計算時間を短縮することを目的とする。
【課題を解決するための手段】
【0011】
1つの案では、以下の処理をコンピュータに実行させるパラメータ最適化プログラムが提供される。
コンピュータは、複数のパラメータを含む変分量子回路を用いて計算されたエネルギーの期待値に基づいて、エネルギーの期待値が極小値をとるように複数のパラメータそれぞれの更新後の値を計算する第1パラメータ調整処理を実行する。コンピュータは、第1パラメータ調整処理による複数のパラメータそれぞれの更新前後での値の変化量が閾値以上か否かに基づいて、複数のパラメータそれぞれについて、第2パラメータ調整処理における調整対象とするか否かを決定する。そしてコンピュータは、調整対象として決定されたパラメータについて、第2パラメータ調整処理を実行する。
【発明の効果】
【0012】
1態様によれば、パラメータの最適化計算時間が短縮される。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【0013】
【
図1】最適化計算時間を短縮するパラメータ最適化方法の一例を示す図である。
【
図2】第2の実施の形態のシステム構成の一例を示す図である。
【
図3】古典コンピュータのハードウェアの一例を示す図である。
【
図5】VQE計算のための古典コンピュータの機能の一例を示すブロック図である。
【
図6】VQE計算の処理手順の一例を示すフローチャートである。
【
図7】最適化計算処理の手順の一例を示すフローチャートである。
【
図8】水素分子についてのVQE計算処理の比較例を示す図である。
【
図9】パラメータごとの値の変化状況の一例を示す図である。
【
図10】水素分子についてのVQE計算処理の第1のケース(比較例)の計算結果の一例を示す図である。
【
図11】水素分子についてのVQE計算処理の効率化の一例を示す図である。
【
図12】水素分子についてのVQE計算処理の効率化を図った場合の計算結果の一例を示す図である。
【
図13】水素化リチウムについてのVQE計算処理の結果の一例を示す図である。
【発明を実施するための形態】
【0014】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
第1の実施の形態は、VQEの計算過程で変分量子回路のパラメータ数を削減し、最適化計算時間を短縮するパラメータ最適化方法である。
【0015】
図1は、最適化計算時間を短縮するパラメータ最適化方法の一例を示す図である。
図1には、パラメータ最適化方法を実現する情報処理装置10が示されている。情報処理装置10は、例えばパラメータ最適化プログラムを実行することにより、量子コンピュータ1を制御し、パラメータ最適化方法を実施することができる。
【0016】
情報処理装置10は、例えば古典コンピュータであり、記憶部11と処理部12とを有する。記憶部11は、例えば情報処理装置10が有するメモリまたはストレージ装置である。処理部12は、例えば情報処理装置10が有するプロセッサまたは演算回路である。
【0017】
記憶部11は、変分量子回路2を記憶する。変分量子回路2は変分法を用いて物質の基底状態のエネルギー値を求めるための量子回路である。変分量子回路2には、VQE計算のうち、量子コンピュータ1に実行させる計算の手順が示されている。変分量子回路2には、複数のパラメータが使用される。変分量子回路2に基づいて算出されるエネルギー値の最低値が、物質の基底状態のエネルギー値である。
【0018】
基底状態のエネルギー値は、変分量子回路2の複数のパラメータの値に応じて変化する。基底状態のエネルギー値が得られるように複数のパラメータの値を調整する処理が、パラメータの最適化計算である。
【0019】
処理部12は、複数のパラメータを含む変分量子回路2を用いて計算されたエネルギーの期待値に基づいて、エネルギーの期待値が極小値をとるように複数のパラメータそれぞれの更新後の値を計算する第1パラメータ調整処理を実行する。次に処理部12は、第1パラメータ調整処理による複数のパラメータそれぞれの更新前後での値の変化量が閾値ε以上か否かに基づいて、複数のパラメータそれぞれについて、第2パラメータ調整処理における調整対象とするか否かを決定する。更新前後での値の変化量は、例えば更新前の値と更新後の値との差の絶対値である。そして処理部12は、調整対象として決定されたパラメータについて、第2パラメータ調整処理を実行する。
【0020】
例えば処理部12は、複数のパラメータのうちの変化量が閾値ε以上のパラメータを次回以降の最適化計算の対象に決定する。また処理部12は、複数のパラメータのうちの変化量が閾値ε未満のパラメータを次回以降の最適化計算の対象から除外する。
【0021】
なお処理部12は、調整対象とするか否かを決定する処理を、繰り返し実行されるパラメータ調整処理のうちの1回目のパラメータ調整処理後にのみ行ってもよい。その場合、処理部12は、繰り返し実行される最適化計算のうちの1回目の第1パラメータ調整処理の後に、複数のパラメータそれぞれについて、2回目以降に繰り返し実行される第2パラメータ調整処理における調整対象とするか否かを決定する。
【0022】
このようにして、VQE計算の過程において調整対象のパラメータ数を削減することができる。例えばVQE計算では、まず量子コンピュータ1が、複数のパラメータの初期値を用いて、変分量子回路2に基づくエネルギーの基底値を計算する(ステップS1)。量子コンピュータ1は、計算したエネルギーの基底値を情報処理装置10に送信する。
【0023】
情報処理装置10の処理部12は、1回目のパラメータ調整処理(第1パラメータ調整処理)を行う(ステップS2)。例えば処理部12は、パラメータθ
0,θ
1,θ
2,θ
3,θ
4,・・・それぞれについてパラメータ調整処理後の値を計算し、それらのパラメータの値を更新する。
図1の例ではパラメータθ
0の値はa
0からa
1に更新されている。パラメータθ
1の値はb
0からb
1に更新されている。パラメータθ
2の値はc
0からc
1に更新されている。パラメータθ
3の値はd
0からd
1に更新されている。パラメータθ
4の値はe
0からe
1に更新されている。
【0024】
処理部12は、1回目のパラメータ調整処理の結果に基づいて、2回目以降のパラメータ調整処理(第2パラメータ調整処理)の調整対象とするパラメータを決定する(ステップS3)。例えば処理部12は、1回目のパラメータ調整処理による複数のパラメータそれぞれの更新前後の値の変化量を計算する。例えばパラメータθ
0の変化量は|a
1-a
0|である。そして処理部12は、変化量を所定の閾値εと比較する。そして処理部12は、変化量が閾値ε以上であるパラメータ(
図1の例では、パラメータθ
1,θ
4,・・・)について、以後のパラメータ調整処理における調整対象に決定する。また処理部12は、変化量が閾値ε未満であるパラメータ(
図1の例では、パラメータθ
0,θ
2,θ
3,・・・)について、以後のパラメータ調整処理の対象から除外する。
【0025】
量子コンピュータ1は、1回目のパラメータ調整処理によって値が更新されたパラメータを適用した変分量子回路2に基づいてエネルギーの基底値を計算する(ステップS4)。すると、情報処理装置10の処理部12は、新たに計算されたエネルギーの期待値に基づいて2回目のパラメータ調整処理を行う(ステップS5)。2回目のパラメータ調整処理では、調整対象決定処理によって調整対象となったパラメータ(パラメータθ1,θ4,・・・)についてエネルギーの期待値が極小値となるように調整した値が計算される。そして処理部12は、調整対象のパラメータの値を更新する。
【0026】
以後、エネルギーの基底値が収束するまで、量子コンピュータ1によるエネルギー計算と情報処理装置10の処理部12によるパラメータ調整処理とが交互に繰り返される。3回目以降のパラメータ調整処理の調整対象となるパラメータは、例えば2回目のパラメータ調整処理における調整対象のパラメータと同じである。
【0027】
このようにパラメータ調整処理による更新前後での値の変化量が閾値ε以下のパラメータについては以後のパラメータ調整処理の調整対象から除外することで、より少ないパラメータ数でパラメータ調整処理を行うことができる。その結果、VQE計算におけるパラメータの最適値(エネルギーの期待値が極小値となるパラメータの値)を求める最適化計算に要する時間を削減することが可能となる。この場合、VQE計算の計算時間は、ほぼパラメータ数のオーダーで削減される。
【0028】
なお
図1の例では1回目のパラメータ調整処理の後に調整対象の決定処理を行っているが、処理部12は、調整対象の決定処理を、パラメータ調整処理の度に実行してもよい。これにより、2回目以降のパラメータ調整処理において更新前後での値の変化量が閾値ε未満のパラメータがある場合、そのパラメータを以後のパラメータ調整処理の調整対象から除外することができる。その結果、さらにVQE計算の高速化を図ることが可能となる。
【0029】
〔第2の実施の形態〕
第2の実施の形態は、量子コンピュータを用いたVQE計算において、変分量子回路のパラメータ数を削減してパラメータの最適化計算の時間を短縮するものである。
【0030】
図2は、第2の実施の形態のシステム構成の一例を示す図である。古典コンピュータ100と量子コンピュータ200とはネットワークで接続されている。古典コンピュータ100は、ノイマン型のコンピュータである。古典コンピュータ100は、VQE計算におけるパラメータの最適化計算などの処理を行う。量子コンピュータ200は、量子回路に基づいて量子ビットの状態を操作することで所望の計算を行う量子ゲート方式の量子コンピュータである。量子コンピュータ200は、VQE計算において、変分量子回路に基づいて、指定されたパラメータの値に応じたエネルギーの期待値を計算する。
【0031】
図3は、古典コンピュータのハードウェアの一例を示す図である。古典コンピュータ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
【0032】
メモリ102は、古典コンピュータ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
【0033】
バス109に接続されている周辺機器としては、ストレージ装置103、GPU(Graphics Processing Unit)104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
【0034】
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、古典コンピュータ100の補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
【0035】
GPU104は画像処理を行う演算装置であり、グラフィックコントローラとも呼ばれる。GPU104には、モニタ21が接続されている。GPU104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
【0036】
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0037】
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取り、または光ディスク24へのデータの書き込みを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。
【0038】
機器接続インタフェース107は、古典コンピュータ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
【0039】
ネットワークインタフェース108は、ネットワークを介して量子コンピュータ200に接続されている。ネットワークインタフェース108は、量子コンピュータ200へ量子計算の要求などの情報を送信し、量子コンピュータ200から計算結果を示す情報を受信する。ネットワークインタフェース108は、例えばスイッチやルータなどの有線通信装置にケーブルで接続される有線通信インタフェースである。
【0040】
古典コンピュータ100は、以上のようなハードウェアによって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した装置も、
図3に示した古典コンピュータ100と同様のハードウェアにより実現することができる。
【0041】
古典コンピュータ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。古典コンピュータ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、古典コンピュータ100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また古典コンピュータ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0042】
このようなシステムにおいて、古典コンピュータ100と量子コンピュータ200とが連係してVQE計算を実行する。VQE計算に利用する変分量子回路には、複数のパラメータθが用いられる。
【0043】
図4は、変分量子回路の一例を示す図である。
図4には、水素分子のエネルギーの基底値を求めるための変分量子回路30の例が示されている。変分量子回路30には、4つの量子ビット(qubit 0~3)に対する操作が示されている。各量子ビットに対応付けられた横線上に、その量子ビットに対するゲート操作が示されている。量子コンピュータ200が量子計算を行う際には、各量子ビットに対して設定されているゲート操作が、左から順に実行される。
【0044】
1量子ビットゲート31a~31lは、指定された角度だけ所定の軸周りの回転操作を行う量子ゲートである。変分量子回路30は、各量子ビットに対して、z軸周りの回転操作、y軸周りの回転操作、z軸周りの回転操作を順に実行することが示されている。
【0045】
1量子ビットゲート31a~31lの回転角は、複数のパラメータθ(θ={θ1,θ2,・・・})で示される。1つ目の量子ビット(qubit 0)に作用させる1量子ビットゲート31a~31cの回転角は、それぞれθ0、θ1、θ2である。2つ目の量子ビット(qubit 1)に作用させる1量子ビットゲート31d~31fの回転角は、それぞれθ3、θ4、θ5である。3つ目の量子ビット(qubit 2)に作用させる1量子ビットゲート31g~31iの回転角は、それぞれθ6、θ7、θ8である。4つ目の量子ビット(qubit 3)に作用させる1量子ビットゲート31j~31lの回転角は、それぞれθ9、θ10、θ11である。
【0046】
所定の軸周りの回転操作の後、2量子ビットゲート32a,32b,32cによるゲート操作が行われる。2量子ビットゲート32aは、3つ目と4つ目の量子ビットの間のCNOT操作を示すCNOTゲートである。このCNOTゲートでは、3つ目の量子ビットがコントロール量子ビットであり、4つ目の量子ビットがターゲット量子ビットである。2量子ビットゲート32bは、3つ目と1つ目の量子ビットの間のCNOT操作を示すCNOTゲートである。このCNOTゲートでは、3つ目の量子ビットがコントロール量子ビットであり、1つ目の量子ビットがターゲット量子ビットである。2量子ビットゲート32cは、4つ目と2つ目の量子ビットの間のCNOT操作を示すCNOTゲートである。このCNOTゲートでは、4つ目の量子ビットがコントロール量子ビットであり、2つ目の量子ビットがターゲット量子ビットである。
【0047】
各量子ビットに対応する線の右端に示されている記号33a~33dは、量子状態の測定操作を示している。
図4に示した例では、12個のパラメータθ
1~θ
11が用いられている。ここでVQE計算を行うための変分量子回路30に用いる複数のパラメータθの数は、VQEにおけるループ処理を通して変化しない。つまり、使用する変分量子回路30が決まればパラメータの数も決まる。また計算対象とする系の規模が大きくなるとパラメータの数が大きくなる。
【0048】
ここでパラメータθの最適化処理(パラメータ調整処理)において、ループ処理ごとに複数のパラメータθのすべての値について更新すると、パラメータの数が多くなるほど一度のループ処理における最適化計算に要する計算時間が増大する。また更新されるパラメータの数が多いほどエネルギーが収束するまでのループ処理の回数も増大する。その結果、全体の計算時間も増大し、多くの計算コストがかかってしまう。
【0049】
そこで第2の実施の形態に係る古典コンピュータ100は、VQE計算用の変分量子回路30の複数のパラメータθの最適化計算において、1回目だけは用意した変分量子回路30を構成する全パラメータを用いて最適化計算を行う。そして古典コンピュータ100は、1回目の最適化後の各パラメータの値が初期値から閾値以上変化しているか否かの判定を行う。古典コンピュータ100は、1回目の最適化後のパラメータの値が初期値から閾値以上変化していないパラメータは以後の最適化対象から除外し、閾値以上変化しているパラメータのみを最適化対象として抽出する。そして古典コンピュータ100は、2回目以降は、抽出したパラメータについてのみ最適化計算を行う。これにより、より少ないパラメータ数で最適化計算を行うことができるため、計算時間を短縮することが可能となる。
【0050】
図5は、VQE計算のための古典コンピュータの機能の一例を示すブロック図である。古典コンピュータ100は、量子計算管理部110と最適化計算部120とを有する。
量子計算管理部110は、分子などの量子多体系のエネルギーを計算するための変分量子回路を生成し、その変分量子回路に基づくエネルギー計算を量子コンピュータ200に指示する。例えば量子計算管理部110は、量子化学計算のための変分量子回路を生成すると共に、その変分量子回路における量子ゲートでのゲート操作に関するパラメータθを設定する。量子計算管理部110は、最初のループ処理の前に、複数のパラメータθの値に初期値を設定する。各パラメータの初期値は、例えばユーザが予め指定した値である。また各パラメータの初期値としてランダムな値を用いてもよい。
【0051】
量子計算管理部110は、複数のパタメータθでパラメタライズされた変分量子回路に基づくエネルギーの計算結果を量子コンピュータ200から取得する。エネルギーの計算結果を取得すると、量子計算管理部110は、エネルギーが収束したか否かを判定する。量子計算管理部110は、エネルギーが収束していなければ、最適化計算部120にパラメータの最適化を指示する。その際、量子計算管理部110は、最適化計算部120に対して最適化対象のパラメータを指定することができる。例えば量子計算管理部110は、1回目のループ処理の最適化計算では、複数のパラメータθすべてを最適化対象として指定する。また量子計算管理部110は、2回目以降のループ処理の最適化計算では、1回目のループ処理において値が閾値以上変化したパラメータを最適化の対象として指定する。
【0052】
最適化計算部120は、ループ処理ごとに、エネルギー値が小さくなる方向へ、複数のパラメータθの全部または一部の値を更新する。例えば最適化計算部120は、量子計算管理部110から指定されたパラメータのみを更新対象として、それらのパラメータの更新後の値を計算する。最適化計算部120は、最適化の計算が終了すると、全部または一部が更新された複数のパラメータθの値を量子計算管理部110に通知する。
【0053】
なお
図5に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
次に、VQE計算の処理手順について詳細に説明する。
【0054】
図6は、VQE計算の処理手順の一例を示すフローチャートである。以下、
図6に示す処理をステップ番号に沿って説明する。
[ステップS101]量子計算管理部110は、複数のパラメータθ={θ
1,θ
2,・・・}によりパラメタライズされた変分量子回路を生成する。変分量子回路は、求解する問題に応じて決定される。例えば量子計算管理部110は、ユーザからの操作に応じて量子回路を生成する。また量子計算管理部110は、求解対象の問題に対応付けて予めストレージ装置103に格納されている変分量子回路を取得してもよい。変分量子回路に用いるパラメータ数は、問題の規模が大きい程多くなる。
【0055】
[ステップS102]量子計算管理部110は、生成した変分量子回路に複数のパラメータθの初期値を与え、量子コンピュータ200に対して、その変分量子回路を用いた期待値の測定を指示する。例えば量子計算管理部110は、複数のパラメータθの初期値として、ユーザにより指定された値またはランダムな値を設定する。量子コンピュータ200は、量子計算管理部110からの指示に応じて、変分量子回路に従った量子ビットのゲート操作を行い、操作した量子ビットの値の期待値を測定する。量子計算管理部110は、量子コンピュータ200が測定した期待値に基づいて、エネルギーの期待値を算出する。
【0056】
[ステップS103]量子計算管理部110は、最適化計算部120と連係して1回目の最適化計算処理を実行する。1回目の最適化計算における最適化の対象は複数のパラメータθすべてである。最適化計算処理の詳細は後述する(
図7参照)。
【0057】
[ステップS104]量子計算管理部110は、複数のパラメータθそれぞれについて、最適化前後での値の変化量が閾値以上か否かを判断する。
[ステップS105]量子計算管理部110は、複数のパラメータθのうち値が閾値以上変化したパラメータを抽出する。そして量子計算管理部110は、抽出したパラメータの組をθ’とする。以後のループ処理では、パラメータの組θ’に含まれるパラメータのみが最適化計算の対象となり、それ以外のパラメータは最適化計算の対象から除外される。
【0058】
[ステップS106]量子計算管理部110は、最適化回数を示す変数nに「2」を設定する(n=2)。
[ステップS107]量子計算管理部110は、ステップS101で生成した変分量子回路におけるパラメータの組θ’の値を更新した変分量子回路を生成する。
【0059】
[ステップS108]量子計算管理部110は、量子コンピュータ200に対して、パラメータの組θ’が更新された変分量子回路を用いた期待値の測定を指示する。量子コンピュータ200は、量子計算管理部110からの指示に応じてエネルギーの期待値を算出する。量子計算管理部110は、量子コンピュータ200が測定した期待値に基づいて、エネルギーの期待値を算出する。
【0060】
[ステップS109]量子計算管理部110は、エネルギーの期待値が収束したか否かを判断する。例えば量子計算管理部110は、前回のループ処理で算出されたエネルギーの期待値と今回のループ処理で算出されたエネルギーの期待値との差を計算する。量子計算管理部110は、計算した差が所定の閾値以上であれば収束していないと判断する。また量子計算管理部110は、計算した差が所定の閾値未満であれば収束していると判断する。量子計算管理部110は、収束していなければ処理をステップS110に進める。また量子計算管理部110は、収束していればVQE計算処理を終了する。
【0061】
[ステップS110]量子計算管理部110は、最適化計算部120と連係してn回目の最適化計算処理を実行する(n≧2)。n回目の最適化計算における最適化の対象は、パラメータの組θ’に含まれるパラメータである。
【0062】
[ステップS111]量子計算管理部110は、最適化回数nに1を加算する(n=n+1)。その後、量子計算管理部110は、処理をステップS107に進める。
このような処理によりエネルギーの期待値の最小値が得られる。すなわち分子などの量子多体系の基底状態におけるエネルギーの期待値が得られる。
【0063】
図7は、最適化計算処理の手順の一例を示すフローチャートである。以下、
図7に示す処理をステップ番号に沿って説明する。
[ステップS121]量子計算管理部110は、最適化計算部120に最適化対象のパラメータを指定して最適化計算を指示する。例えば量子計算管理部110は、1回目の最適化計算の場合、複数のパラメータθのすべてを最適化対象に指定する。また量子計算管理部110は、2回目以降の最適化計算では、パラメータの組θ’に含まれるパラメータを最適化の対象に指定する。
【0064】
[ステップS122]最適化計算部120は、最適化対象のパラメータのうち未計算のパラメータを1つ選択する。
[ステップS123]最適化計算部120は、選択したパラメータの最適化後の値を計算する。例えば最適化計算部120は、自然勾配(Natural gradient)法により、エネルギー値が低下するように、選択したパラメータの最適化の1ステップ分の値を計算する。自然勾配法によるパラメータの最適化計算方法は、前述の非特許文献2,3に詳しい。
【0065】
[ステップS124]最適化計算部120は、最適化後の値が未計算の、最適化対象のパラメータがあるか否かを判断する。最適化計算部120は、未計算のパラメータがある場合、処理をステップS122に進める。また最適化計算部120は、最適化対象のすべてのパラメータについて最適化後の値の計算が終了した場合、処理をステップS125に進める。
【0066】
[ステップS125]最適化計算部120は、最適化対象のパラメータそれぞれの最適化後の値を量子計算管理部110に送信する。
[ステップS126]量子計算管理部110は、変分量子回路の最適化対象のパラメータについて、最適化計算部120により計算された最適化後の値に更新する。
【0067】
上記のVQE計算処理によれば、1回目の最適化計算で値が閾値未満しか変化しないパラメータについては、2回目以降の最適化計算で最適化計算の対象から除外される。最適化計算の対象のパラメータの数が減少することで、最適化後のパラメータの値の計算回数が減り、最適化計算が効率的となる。
【0068】
以下、
図8~
図13を参照し、最適化計算対象のパラメータの削減による処理全体の計算時間の短縮効果について説明する。
図8は、水素分子についてのVQE計算処理の比較例を示す図である。
図8には、比較例として、最適化計算の対象とするパラメータ数を削減せずに水素分子(H
2)についてのVQE計算を行った場合の最適化計算の例を示している。以下、この比較例を第1のケースとする。第1のケースは、VQE計算全体を通して、ループ処理ごとにすべてのパラメータについて最適化計算を行ったものである。なお水素分子のVQE計算における変分量子回路は、
図4に示した変分量子回路30である。
【0069】
第1のケースでは、1回目の最適化計算(ステップS201)において、変分量子回路30に用いられる12個のパラメータ(θ0,θ1,・・・,θ11)のすべてについて、最適化後の値が計算され、各パラメータの値が更新される。2回目の最適化計算(ステップS202)においても12個のパラメータのすべてについて最適化後の値が計算され、各パラメータの値が更新される。3回目以降の最適化計算についても同様に、12個のパラメータすべてについて最適化後の値の計算が行われる。
【0070】
このような最適化計算が繰り返されたとき、最適化計算ごとに値が閾値以上変化するパラメータと、最適化計算を行っても値が閾値未満しか変化しないパラメータとが存在する。
【0071】
図9は、パラメータごとの値の変化状況の一例を示す図である。
図9には、パラメータθ
0とパラメータθ
1との最適化計算ごとの値の遷移状況が示されている。グラフ41は、パラメータθ
0について、VQE計算過程におけるループ処理ごとの値の遷移状況を示している。グラフ41の横軸がループ回数であり、縦軸がパラメータθ
0の値である。グラフ41に示されているように、パラメータθ
0については、ループ処理ごとの最適化計算を何度実行しても値は変更されていない。このようなパラメータの値の遷移状況は、1回目のループ処理における最適化で値が変更されていない他のパラメータについても同様である。
【0072】
グラフ42は、パラメータθ1について、VQE計算過程におけるループごとの値の遷移状況を示している。グラフ42の横軸がループ回数であり、縦軸がパラメータθ1の値である。グラフ42に示されているように、パラメータθ1については、ループ処理の最適化計算が行われるごとに値が変更されている。このようなパラメータの値の遷移状況は、1回目のループ処理における最適化で値が変更されている他のパラメータについても同様である。
【0073】
図10は、水素分子についてのVQE計算処理の第1のケース(比較例)の計算結果の一例を示す図である。計算結果40に示されている各数値の意味は以下の通りである。
項目名「init_params」で示されているのが複数のパラメータθの初期である。なお複数のパラメータの初期値のうち、1回目のループ処理の最適化において値が変更されたパラメータの値には下線が引かれている。
図10の例では、5個のパラメータθ
1,θ
4,θ
7,θ
8,θ
10について、1回目のループ処理の最適化において値が変更されている。
【0074】
項目名「npara」で示されているのがパラメータ数である。水素分子の場合のパラメータ数は「12」である。
項目名「E」で示されているのが、エネルギーの期待値が収束するまでパラメータが最適化された後のエネルギーの期待値である。項目名「niter」で示されているのが、パラメータの最適化に要したループ回数である。
【0075】
項目名「params」で示されているのが、最適化後の複数のパラメータの値である。最適化後の複数のパラメータの値のうち、初期値から変更されているパラメータの値には下線が引かれている。
図10の例では、5個のパラメータθ
1,θ
4,θ
7,θ
8,θ
10について、初期値と異なる値に最適化されている。
【0076】
項目名「t1」で示されているのが、パラメータの最適化に要した計算時間(VQE計算時間)である。
次に、
図6のフローチャートで示した処理により水素分子についてのVQE計算処理の効率化を図った場合について説明する。
【0077】
図11は、水素分子についてのVQE計算処理の効率化の一例を示す図である。以下、水素分子についてのVQE計算処理の効率化を図った例を第2のケースとする。第2のケースは、VQE計算の2回目以降のパラメータの最適化計算では、1回目の最適化計算で値が閾値以上変化したパラメータのみを最適化計算の対象とする。
【0078】
第2のケースでは、1回目の最適化計算(ステップS301)において、変分量子回路30に用いられる12個のパラメータ(θ0,θ1,・・・,θ11)のすべてについて、最適化後の値が計算され、各パラメータの値が更新される。このとき12個のパラメータのうち、値が閾値以上変化したのは5個のパラメータθ1,θ4,θ7,θ8,θ10であり、他のパラメータは値が閾値未満しか変化していない。
【0079】
この場合、2回目の最適化計算(ステップS302)では、1回目の最適化計算で値が閾値以上変化した5個のパラメータについてのみ最適化後の値が計算され、5個のパラメータの値が更新される。3回目の最適化計算(ステップS303)においても同様に、5個のパラメータすべてについて最適化後の値の計算が行われる。以後、4回目以降の最適化計算においても、5個のパラメータについてのみ最適化後の値の計算が行われる。
【0080】
図12は、水素分子についてのVQE計算処理の効率化を図った場合の計算結果の一例を示す図である。
図12には、
図6に示した処理の適用事例として、水素分子(H
2)についてのVQE計算の第2のケースの計算結果50が示されている。計算結果50に示されている各数値の意味は以下の通りである。
【0081】
項目名「init_params0」で示されているのが複数のパラメータθの初期値である。なお複数のパラメータの初期値のうち、1回目のループ処理の最適化計算において値が変更されたパラメータの値には下線が引かれている。
図12の例では、5個のパラメータθ
1,θ
4,θ
7,θ
8,θ
10について、1回目のループ処理の最適化において値が変更されている。
【0082】
項目名「npara0」で示されているのが初回のループ処理で最適化の対象とされたパラメータの数である。水素分子の場合には12個のパラメータがあるため、初回のループ処理で最適化対象となるパラメータ数は「12」である。
【0083】
項目名「init_params」で示されているのが2回目以降のループ処理における最適化計算で更新されたパラメータの組θ’の値である。
図12の例では、パラメータθ
1,θ
4,θ
7,θ
8,θ
10がパラメータの組θ’に含まれている。
【0084】
項目名「npara」で示されているのがパラメータの組θ’に含まれるパラメータの数である。
図12の例では、該当パラメータ数は「5」個である。
項目名「E」で示されているのが、全エネルギーが収束するまでパラメータが最適化された後のエネルギーの期待値である。項目名「niter」で示されているのが、パラメータの最適化に要したループ回数である。
【0085】
項目名「params」で示されているのが、パラメータの組θ’についての最適化後の複数のパラメータの値である。項目名「t2」で示されているのが、パラメータの最適化に要した計算時間(VQE計算時間)である。
【0086】
ここで、
図10に示した第1のケースの計算結果40と
図12に示した第2のケースの計算結果50とを比較すると、計算に要した時間が「t1=6.56s」から「t2=2.64s」へと短縮されている。すると、計算時間が約1/2.5に削減されていることとなる。
【0087】
次に2回目以降のループ処理において最適化計算の対象としたパラメータ数を比較する。第1のケースの2回目以降のループ処理において最適化計算の対象としたパラメータ数をn1とすると、「n1=12」である。それに対して、第2のケースの2回目以降のループ処理において最適化計算の対象としたパラメータ数をn2とすると、「n2=5」である。すなわち最適化計算の対象とするパラメータ数の削減割合は「n2/n1=5/12=1/2.4」となる。
【0088】
このように、計算時間はほぼパラメータ数のオーダーで削減されている。すなわち、2回目以降のループ処理における最適化計算の対象となるパラメータ数の削減割合が多いほど、VQE計算全体の処理時間が短縮される。
【0089】
図10,
図12に示した例は水素分子の基底状態のエネルギー値をVQEアルゴリズムで求めたものであるが、他の物質の場合であっても同様にパラメータ数の削減効果を得ることができる。例えば水素化リチウム(LiH)についても、同様の計算時間の削減効果が確認できている。なお水素化リチウムのVQE計算において使用する変分量子回路は、
図4に示した変分量子回路30と同じである。
【0090】
図13は、水素化リチウムについてのVQE計算処理の結果の一例を示す図である。
図13の上段には、比較例として、水素化リチウム(LiH)についてのVQE計算の第1のケースの計算結果61が示されている。
図13の下段には、
図6に示した処理の適用事例として、水素化リチウム(LiH)についてのVQE計算の第2のケースの計算結果62が示されている。第1のケースは、VQE計算全体を通して、ループ処理ごとにすべてのパラメータについて最適化計算を行ったものである。第2のケースは、VQE計算の初回のループ処理で値が閾値以上変化したパラメータについて2回目以降のループ処理の最適化計算を実施したものである。
【0091】
計算結果61に示されている各項目名に設定された数値の意味は、
図10に示した計算結果40の同名の項目名の数値と同じである。計算結果62に示されている各項目名に設定された数値の意味は、
図12に示した計算結果50の同名の項目名の数値と同じである。
図13の例では、第2のケースにおいてパラメータの組θ’に含まれているのは6個のパラメータθ
1,θ
4,θ
7,θ
8,θ
10,θ
11である。
【0092】
ここで第1のケースの計算結果61と第2のケースの計算結果62とを比較すると、計算に要した時間が「t1=21.34s」から「t2=10.15s」へと短縮されている。すると、計算時間が約1/2.1(t2/t1=10.15/21.34≒1/2.1)に削減されていることとなる。
【0093】
次に2回目以降のループ処理において最適化計算の対象としたパラメータ数を比較する。第1のケースの2回目以降のループ処理において最適化計算の対象としたパラメータ数をn1とすると、「n1=12」である。それに対して、第2のケースの2回目以降のループ処理において最適化計算の対象としたパラメータ数をn2とすると、「n2=6」である。すなわち最適化計算の対象とするパラメータ数の削減割合は「n2/n1=6/12=1/2」となる。
【0094】
このように水素化リチウムについてのVQE計算においても、計算時間はほぼパラメータ数のオーダーで削減されている。
〔その他の実施の形態〕
第2の実施の形態では、1回目の最適化計算において値がほぼ変化しないパラメータについて以後の最適化計算を抑止しているが、2回目以降の最適化計算であっても、最適化前後で値がほぼ変化しないパラメータについては以後の最適化計算を抑止してもよい。例えば
図9に示したパラメータθ
1の場合、1回目から8回目の最適化計算では値が変化しているが、9回目以降の最適化計算では値がほぼ変化していない。この場合、量子計算管理部110は、9回目の最適化計算においてパラメータθ
1の値が変化していないと判断し、10回目以降の最適化計算ではパラメータθ
1を最適化の計算対象から除外してもよい。
【0095】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【0096】
1 量子コンピュータ
2 変分量子回路
10 情報処理装置
11 記憶部
12 処理部