(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024047969
(43)【公開日】2024-04-08
(54)【発明の名称】アルゴリズム選択プログラム、アルゴリズム選択方法および情報処理装置
(51)【国際特許分類】
G16C 10/00 20190101AFI20240401BHJP
【FI】
G16C10/00
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2022153762
(22)【出願日】2022-09-27
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】今村 智史
(57)【要約】
【課題】量子化学計算によるエネルギー曲線情報の生成を効率的に行う。
【解決手段】情報処理装置10は、原子間距離15a,15b,15cに対応する分子エネルギー16a,16b,16cを、収束条件を満たすまで解を反復的に更新するアルゴリズム13を用いて算出する。情報処理装置10は、原子間距離15a,15b,15cと反復回数17a,17b,17cとの関係を示す線分の傾きに基づいて、アルゴリズム14を用いて分子エネルギーを算出する原子間距離15d,…を特定する。情報処理装置10は、特定された原子間距離15d,…に対応する分子エネルギー16d,…を、アルゴリズム14を用いて算出する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数の第1の原子間距離に対応する複数の第1の分子エネルギーそれぞれを、収束条件を満たすまで解を反復的に更新する第1のアルゴリズムを用いて算出し、
前記複数の第1の原子間距離と前記収束条件を満たすまでの前記第1のアルゴリズムの反復回数との関係を示す線分の傾きに基づいて、前記第1のアルゴリズムと異なる第2のアルゴリズムを用いて分子エネルギーを算出する複数の第2の原子間距離を特定し、
特定された前記複数の第2の原子間距離に対応する複数の第2の分子エネルギーを、前記第2のアルゴリズムを用いて算出する、
処理をコンピュータに実行させるアルゴリズム選択プログラム。
【請求項2】
前記複数の第2の原子間距離の特定は、前記傾きが閾値を超えるか否かに基づいて行われる、
請求項1記載のアルゴリズム選択プログラム。
【請求項3】
算出された前記複数の第1の分子エネルギーと前記複数の第2の分子エネルギーとに基づいて、ポテンシャルエネルギー曲線を生成する処理を、前記コンピュータに更に実行させる、
請求項1記載のアルゴリズム選択プログラム。
【請求項4】
分子エネルギーを算出する複数の原子間距離が記憶されており、
前記複数の第2の原子間距離は、記憶された前記複数の原子間距離のうち、前記複数の第1の原子間距離の何れの第1の原子間距離よりも大きい原子間距離である、
請求項1記載のアルゴリズム選択プログラム。
【請求項5】
前記複数の第1の分子エネルギーは、前記複数の第1の原子間距離の昇順に算出され、
前記閾値は、最新の第1の原子間距離の1つ前の時点で求めた線分の傾き、または、前記複数の第1の原子間距離の前記反復回数から求めた2つの区間の線分のうち原子間距離が小さい区間の線分の傾きである、
請求項1記載のアルゴリズム選択プログラム。
【請求項6】
前記第2のアルゴリズムは、前記第1のアルゴリズムよりも実行時間が長く、前記第1のアルゴリズムよりも解の精度が高い、
請求項1記載のアルゴリズム選択プログラム。
【請求項7】
前記第1のアルゴリズムは、CCSD(T)(Coupled Cluster Singles and Doubles (and Triples))であり、前記第2のアルゴリズムは、変分量子固有値ソルバである、
請求項1から6の何れか一項に記載のアルゴリズム選択プログラム。
【請求項8】
対象分子を示す分子情報と使用可能メモリ量とに基づいて、前記第1のアルゴリズムおよび前記第2のアルゴリズムと異なる第3のアルゴリズムの使用可否を判定する処理を、前記コンピュータに更に実行させ、
前記第1のアルゴリズムは、前記第3のアルゴリズムが使用不可と判定された場合に、前記第3のアルゴリズムに代えて使用される、
請求項1記載のアルゴリズム選択プログラム。
【請求項9】
前記第3のアルゴリズムの使用可否の判定は、前記対象分子の電子数および分子軌道数の少なくとも一方からメモリ使用量を推定し、前記推定したメモリ使用量が前記使用可能メモリ量を超える場合、前記第3のアルゴリズムを使用不可と判定する処理を含む、
請求項8記載のアルゴリズム選択プログラム。
【請求項10】
前記第3のアルゴリズムは、前記第2のアルゴリズムよりも実行時間が長く、前記第2のアルゴリズムよりも解の精度が高い、
請求項8記載のアルゴリズム選択プログラム。
【請求項11】
前記第3のアルゴリズムは、FCI(Full Configuration Interaction)である、
請求項8から10の何れか一項に記載のアルゴリズム選択プログラム。
【請求項12】
複数の第1の原子間距離に対応する複数の第1の分子エネルギーそれぞれを、収束条件を満たすまで解を反復的に更新する第1のアルゴリズムを用いて算出し、
前記複数の第1の原子間距離と前記収束条件を満たすまでの前記第1のアルゴリズムの反復回数との関係を示す線分の傾きに基づいて、前記第1のアルゴリズムと異なる第2のアルゴリズムを用いて分子エネルギーを算出する複数の第2の原子間距離を特定し、
特定された前記複数の第2の原子間距離に対応する複数の第2の分子エネルギーを、前記第2のアルゴリズムを用いて算出する、
処理をコンピュータが実行するアルゴリズム選択方法。
【請求項13】
複数の第1の原子間距離に対応する複数の第1の分子エネルギーそれぞれを、収束条件を満たすまで解を反復的に更新する第1のアルゴリズムを用いて算出した場合における、前記収束条件を満たすまでの前記第1のアルゴリズムの反復回数を記憶する記憶部と、
前記複数の第1の原子間距離と前記反復回数との関係を示す線分の傾きに基づいて、前記第1のアルゴリズムと異なる第2のアルゴリズムを用いて分子エネルギーを算出する複数の第2の原子間距離を特定し、特定された前記複数の第2の原子間距離に対応する複数の第2の分子エネルギーを、前記第2のアルゴリズムを用いて算出する処理部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はアルゴリズム選択プログラム、アルゴリズム選択方法および情報処理装置に関する。
【背景技術】
【0002】
コンピュータは、分子の特性を数値計算によって解析する分子シミュレーションを行うことがある。分子シミュレーションは、材料開発や医薬品開発などの産業分野で利用されることがある。分子シミュレーションには、分子の電子状態とシュレーディンガー方程式とに基づいて微視的に分子のエネルギーを算出する量子化学計算が含まれる。
【0003】
量子化学計算のアルゴリズムには、完全配置間相互作用法(FCI:Full Configuration Interaction)、CCSD(T)(Coupled Cluster Singles and Doubles (and Triples))、変分量子固有値ソルバ(VQE:Variational Quantum Eigensolver)など含まれる。あるアルゴリズムは、電子配置を変えながら分子のエネルギーを繰り返し算出し、与えられた分子構造のもとでエネルギーが最小になる電子配置を探索することがある。この場合、アルゴリズムは、最小のエネルギーを基底エネルギーとして出力する。
【0004】
なお、配置間相互作用法において、分子がもつ複数の分子軌道のうち一部の分子軌道を動的に選択し、選択した分子軌道に限定した電子配置に基づいて分子のエネルギーを算出する量子化学計算装置が提案されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
コンピュータは、着目する2つの原子の間の距離を変えながら分子のエネルギーを算出することで、原子間距離とエネルギーとの関係を示すエネルギー曲線情報を生成することが考えられる。しかし、量子化学計算のアルゴリズムには、精度と実行時間の間にトレードオフの関係がある。このため、量子化学計算の効率性の観点から、複数の原子間距離に対してどの様にアルゴリズムを選択するかが重要となる。そこで、1つの側面では、本発明は、量子化学計算によるエネルギー曲線情報の生成を効率的に行うことを目的とする。
【課題を解決するための手段】
【0007】
1つの態様では、以下の処理をコンピュータに実行させるアルゴリズム選択プログラムが提供される。複数の第1の原子間距離に対応する複数の第1の分子エネルギーそれぞれを、収束条件を満たすまで解を反復的に更新する第1のアルゴリズムを用いて算出する。複数の第1の原子間距離と収束条件を満たすまでの第1のアルゴリズムの反復回数との関係を示す線分の傾きに基づいて、第1のアルゴリズムと異なる第2のアルゴリズムを用いて分子エネルギーを算出する複数の第2の原子間距離を特定する。特定された複数の第2の原子間距離に対応する複数の第2の分子エネルギーを、第2のアルゴリズムを用いて算出する。
【0008】
また、1つの態様では、コンピュータが実行するアルゴリズム選択方法が提供される。また、1つの態様では、記憶部と処理部とを有する情報処理装置が提供される。
【発明の効果】
【0009】
1つの側面では、量子化学計算によるエネルギー曲線情報の生成を効率的に行うことが
できる。
【図面の簡単な説明】
【0010】
【
図1】第1の実施の形態の情報処理装置を説明するための図である。
【
図2】第2の実施の形態の情報処理装置のハードウェア例を示す図である。
【
図3】アルゴリズム間の精度および実行時間の比較例を示す図である。
【
図4】ポテンシャルエネルギー曲線の例を示す図である。
【
図5】距離と反復回数の関係例を示すグラフである。
【
図6】距離と誤差と傾きの関係例を示すグラフである。
【
図7】情報処理装置の機能例を示すブロック図である。
【
図9】量子化学計算の手順例を示すフローチャートである。
【
図10】アルゴリズム切り替えの手順例を示すフローチャートである。
【
図12】区分的線形回帰分析の他の例を示す図である。
【発明を実施するための形態】
【0011】
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
【0012】
図1は、第1の実施の形態の情報処理装置を説明するための図である。
第1の実施の形態の情報処理装置10は、分子シミュレーションの一種である量子化学計算を行う。情報処理装置10は、原子間距離と分子エネルギーとの関係を示すエネルギー曲線情報を生成する。このエネルギー曲線情報は、ポテンシャルエネルギー曲線(PEC:Potential Energy Curve)と呼ばれてもよい。情報処理装置10は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置10が、コンピュータ、分子シミュレーション装置、量子化学計算装置またはアルゴリズム選択装置と呼ばれてもよい。
【0013】
情報処理装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12が、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの電子回路を含んでもよい。プロセッサは、例えば、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。プロセッサの集合が、マルチプロセッサまたは単に「プロセッサ」と呼ばれてもよい。
【0014】
記憶部11は、原子間距離15a,15b,15c,15dを含む異なる複数の原子間距離を記憶する。原子間距離15a,15b,15c,15dは、分子に含まれる特定の2つの原子の距離であって、分子エネルギーを算出する対象の原子間距離である。原子間距離15bは原子間距離15aよりも大きく、原子間距離15cは原子間距離15bよりも大きく、原子間距離15dは原子間距離15cよりも大きい。
【0015】
また、記憶部11は、分子エネルギー16a,16b,16c,16dを含む複数の分子エネルギーを記憶する。分子エネルギー16a,16b,16c,16dは、原子間距離15a,15b,15c,15dに対応し、後述する方法によって処理部12によって算出される。分子エネルギー16a,16b,16c,16dは、例えば、指定された原子間距離のもとで分子がもつ最小のエネルギーとしての基底エネルギーである。
【0016】
分子エネルギー16a,16b,16cは、アルゴリズム13を用いて算出される。分子エネルギー16dは、アルゴリズム13またはアルゴリズム14を用いて算出される。アルゴリズム13は、収束条件を満たすまで解を反復的に更新する。例えば、アルゴリズム13は、電子配置を変えながら分子エネルギーを繰り返し算出し、分子エネルギーが最小になる電子配置を探索する。収束条件は、例えば、最新の分子エネルギーと1つの前のイテレーションの分子エネルギーとの差が、閾値未満になったことである。
【0017】
アルゴリズム13は、例えば、CCSD(Coupled Cluster Singles and Doubles)またはCCSD(T)である。アルゴリズム14は、アルゴリズム13と異なるアルゴリズムである。好ましくは、アルゴリズム14は、アルゴリズム13よりも実行時間が長く、アルゴリズム13よりも解の精度が高い。アルゴリズム14は、例えば、VQEである。なお、情報処理装置10は、アルゴリズム13,14の一方または両方を、他の情報処理装置に実行させてもよい。アルゴリズム14は、ノイマン型の古典コンピュータに実行させてもよいし、ゲート型の量子コンピュータに実行させてもよい。
【0018】
アルゴリズム13は、高次の電子励起の影響を無視する近似アルゴリズムであってもよい。その場合、原子間距離が小さいうちは、アルゴリズム13の解の精度が比較的高いことがある。一方、原子間距離が大きくなると、外側の分子軌道が分子エネルギーに与える影響が大きいため、アルゴリズム13の解の精度が低いことがある。また、アルゴリズム13では、解の精度と反復回数との間に負の相関があることがあり、解の精度が低いほど反復回数が増加することがある。これは、解の精度が低いと、反復回数を増やしても解が正解値の近傍で変動し続けて収束しづらいことがあるためである。
【0019】
また、記憶部11は、反復回数17a,17b,17cを含む複数の反復回数を記憶する。反復回数17a,17b,17cは、収束条件を満たすまでのアルゴリズム13の反復回数であり、原子間距離15a,15b,15cに対応する。反復回数17a,17b,17cは、分子エネルギー16a,16b,16cを算出する際に測定される。
【0020】
処理部12は、原子間距離15a,15b,15cを含む複数の第1の原子間距離に対応する、分子エネルギー16a,16b,16cを含む複数の第1の分子エネルギーそれぞれを、アルゴリズム13を用いて算出する。例えば、処理部12は、対象の原子間距離の集合のうち小さい方から優先的に分子エネルギーを算出する。このとき、処理部12は、原子間距離15a,15b,15cを含む複数の第1の原子間距離に対応する、反復回数17a,17b,17cを含む複数の反復回数を測定する。
【0021】
処理部12は、複数の第1の原子間距離と複数の反復回数との関係を示す線分の傾きが、閾値を超えるか否か判定する。線分の傾きは、例えば、複数の反復回数を原子間距離の昇順に並べた場合における、原子間距離の増加量に対する反復回数の変化量の比である。処理部12は、最小二乗法によって、複数の第1の原子間距離と複数の反復回数とから線分を算出してもよい。原子間距離の昇順に分子エネルギーを算出する場合、処理部12は、直近の一定個数(例えば、5個)の原子間距離から傾きを算出してもよいし、全ての原子間距離から傾きを算出してもよい。
【0022】
閾値は、例えば、複数の第1の原子間距離のうち、最新の原子間距離の1つ前の時点で算出される傾きである。処理部12は、傾きが閾値を超えることが、一定回数(例えば、3回)連続で発生したか否か判定してもよい。例えば、処理部12は、原子間距離の昇順に分子エネルギーを算出する間に、最新の原子間距離での傾きが1つ前の原子間距離での傾きより大きいことが、一定回数連続で発生したか否か判定する。
【0023】
また、閾値は、例えば、全ての原子間距離の反復回数から算出される2つの線分の傾きのうち、原子間距離が小さい区間の線分の傾きである。処理部12は、区分的回帰(Piecewise Regression)分析などによって、全ての原子間距離と全ての反復回数とから2つの線分を算出してもよい。例えば、処理部12は、原子間距離が大きい区間の線分の傾きが、原子間距離が小さい区間の線分の傾きより大きいか否か判定する。この場合、原子間距離が大きい区間に属する各原子間距離が第2の原子間距離となる。
【0024】
線分の傾きが閾値を超えない場合、処理部12は、原子間距離15a,15b,15cの何れよりも大きい第2の原子間距離に対応する第2の分子エネルギーを、アルゴリズム13を用いて算出する。原子間距離15dは第2の原子間距離に相当し、分子エネルギー16dは第2の分子エネルギーに相当する。原子間距離15dは、例えば、対象の原子間距離の集合の中で原子間距離15cより1段階大きいものである。分子エネルギー16dが算出されると、処理部12は、新たな線分の傾きを算出して閾値と比較してもよい。
【0025】
一方、線分の傾きが閾値を超える場合、処理部12は、分子エネルギー16dをアルゴリズム14を用いて算出する。この場合、処理部12は、対象の原子間距離の集合のうち原子間距離15dよりも大きい残りの原子間距離に対応する残りの分子エネルギーについても、アルゴリズム14を用いて算出してよい。
【0026】
処理部12は、原子間距離と算出された分子エネルギーとの関係を示すエネルギー曲線情報を出力する。処理部12は、エネルギー曲線情報を不揮発性ストレージに保存してもよいし、表示装置に表示してもよいし、他の情報処理装置に送信してもよい。
【0027】
以上説明したように、第1の実施の形態の情報処理装置10は、複数の第1の原子間距離に対応する複数の第1の分子エネルギーそれぞれを、アルゴリズム13を用いて算出する。情報処理装置10は、複数の第1の原子間距離とアルゴリズム13の反復回数との関係を示す線分の傾きが閾値を超えない場合、何れの第1の原子間距離よりも大きい第2の原子間距離に対応する第2の分子エネルギーを、アルゴリズム13を用いて算出する。一方、情報処理装置10は、傾きが閾値を超える場合、第2の分子エネルギーを、アルゴリズム13と異なるアルゴリズム14を用いて算出する。
【0028】
これにより、原子間距離に応じて適切なアルゴリズムが選択され、量子化学計算によるエネルギー曲線情報の生成が高精度化かつ高速化される。例えば、全ての原子間距離の分子エネルギーを、高精度のアルゴリズムを用いて算出する場合と比べて、全体の実行時間が短縮される。また、全ての原子間距離の分子エネルギーを、実行時間が短いアルゴリズムを用いて算出する場合と比べて、分子エネルギーの精度が向上する。また、アルゴリズム13では、原子間距離が大きいほど精度が低下しやすく、精度が顕著に低下し始めたときに反復回数が増加する傾向がある。このため、精度低下に応じてアルゴリズム13がアルゴリズム14に変更され、分子エネルギーの精度と実行時間とのバランスが図られる。
【0029】
なお、情報処理装置10は、傾きが閾値を超えた場合、第2の原子間距離より大きい残りの原子間距離に対応する残りの分子エネルギーも、アルゴリズム14を用いて算出してよい。これにより、エネルギー曲線情報の全体にわたって、分子エネルギーの精度が向上する。また、線分の傾きと比較される閾値は、最新の第1の原子間距離の1つ前の時点の傾きであってもよいし、2本の線分の傾きのうち原子間距離が小さい方の線分の傾きであってもよい。これにより、情報処理装置10は、アルゴリズム13によって算出される分子エネルギーの精度低下を適切に検出することができる。
【0030】
また、アルゴリズム14は、アルゴリズム13よりも実行時間が長く、アルゴリズム13よりも解の精度が高いアルゴリズムであってもよい。例えば、アルゴリズム13はCCSD(T)でもよく、アルゴリズム14はVQEでもよい。これにより、情報処理装置10は、アルゴリズム13では精度が不十分な原子間距離をアルゴリズム14でカバーすることができ、精度と実行時間のバランスが図られる。
【0031】
また、情報処理装置10は、分子情報と使用可能メモリ量とに基づいて第3のアルゴリズムの使用可否を判定してもよく、第3のアルゴリズムが使用不可の場合にアルゴリズム13を使用してもよい。これにより、メモリ使用量の観点から更に別のアルゴリズムも検討され、より適切なアルゴリズムが選択される。また、情報処理装置10は、対象分子の電子数および分子軌道数の少なくとも一方からメモリ使用量を推定してもよく、推定したメモリ使用量が使用可能メモリ量を超える場合、第3のアルゴリズムを使用不可と判定してもよい。これにより、第3のアルゴリズムの使用可否が適切に判定される。
【0032】
また、第3のアルゴリズムは、アルゴリズム14よりも実行時間が長く、アルゴリズム14よりも解の精度が高いアルゴリズムであってもよい。例えば、第3のアルゴリズムはFCIでもよい。これにより、メモリ使用量が少なくて済む小規模の分子について、エネルギー曲線情報の全体にわたって分子エネルギーの精度が向上する。
【0033】
[第2の実施の形態]
次に、第2の実施の形態を説明する。
第2の実施の形態の情報処理装置100は、量子化学計算によって、着目する2つの原子の距離と分子の基底エネルギーとの関係を示すポテンシャルエネルギー曲線を生成する。情報処理装置100は、量子化学計算のための複数のアルゴリズムを実行することができる。ただし、一部または全部のアルゴリズムが、他の情報処理装置によって実行されてもよい。他の情報処理装置は、量子コンピュータを含んでもよい。
【0034】
情報処理装置100は、クライアント装置でもよいしサーバ装置でもよい。また、情報処理装置100は、データセンタに設置されてもよく、クラウドシステムに含まれてもよい。クラウドシステムは、量子化学計算に関するジョブの要求をネットワーク経由で受信し、生成されたポテンシャルエネルギー曲線を返信することがある。情報処理装置100が、コンピュータ、分子シミュレーション装置または量子化学計算装置と呼ばれてもよい。情報処理装置100は、第1の実施の形態の情報処理装置10に対応する。
【0035】
図2は、第2の実施の形態の情報処理装置のハードウェア例を示す図である。
情報処理装置100は、バスに接続されたCPU101、RAM102、HDD103、GPU104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
【0036】
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムおよびデータをRAM102にロードし、プログラムを実行する。情報処理装置100は、複数のプロセッサを有してもよい。
【0037】
RAM102は、CPU101で実行されるプログラムおよびCPU101で演算に使用されるデータを一時的に記憶する揮発性半導体メモリである。情報処理装置100は、RAM以外の種類の揮発性メモリを有してもよい。
【0038】
HDD103は、オペレーティングシステム(OS:Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラムと、データとを記憶する不揮発性ストレージである。情報処理装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の不揮発性ストレージを有してもよい。
【0039】
GPU104は、CPU101と連携して画像処理を行い、情報処理装置100に接続された表示装置111に画像を出力する。表示装置111は、例えば、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイまたはプロジェクタである。情報処理装置100に、プリンタなどの他の種類の出力デバイスが接続されてもよい。また、GPU104は、GPGPU(General Purpose Computing on Graphics Processing Unit)として使用されてもよい。GPU104は、CPU101からの指示に応じてプログラムを実行し得る。情報処理装置100は、RAM102以外の揮発性半導体メモリをGPUメモリとして有してもよい。
【0040】
入力インタフェース105は、情報処理装置100に接続された入力デバイス112から入力信号を受け付ける。入力デバイス112は、例えば、マウス、タッチパネルまたはキーボードである。情報処理装置100に複数の入力デバイスが接続されてもよい。
【0041】
媒体リーダ106は、記録媒体113に記録されたプログラムおよびデータを読み取る読み取り装置である。記録媒体113は、例えば、磁気ディスク、光ディスクまたは半導体メモリである。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)およびHDDが含まれる。光ディスクには、CD(Compact Disc)およびDVD(Digital Versatile Disc)が含まれる。媒体リーダ106は、記録媒体113から読み取られたプログラムおよびデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、CPU101によって実行されることがある。
【0042】
記録媒体113は、可搬型記録媒体であってもよい。記録媒体113は、プログラムおよびデータの配布に用いられることがある。また、記録媒体113およびHDD103が、コンピュータ読み取り可能な記録媒体と呼ばれてもよい。
【0043】
通信インタフェース107は、ネットワーク114を介して他の情報処理装置と通信する。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
【0044】
次に、量子化学計算とその求解アルゴリズムについて説明する。
量子化学計算は、分子シミュレーションの一種であり、分子構造や分子間相互作用を電子状態から解析する。量子化学計算は、材料開発の支援や医薬品開発の支援に用いられることがある。量子化学計算は、微視的な分子シミュレーションであり、解析精度が高いものの計算負荷の高い分子シミュレーションである。
【0045】
量子化学計算は、シュレーディンガー方程式HΨ=EΨを解く。Hはハミルトニアン、Ψは波動関数、Eはエネルギーである。ハミルトニアンHは、対象の分子構造に依存する。波動関数Ψは電子の固有状態に相当し、エネルギーEはΨに対応する固有エネルギーに相当する。量子化学計算は、分子構造が安定しているときの基底エネルギーを算出する。ただし、シュレーディンガー方程式を直接解くことは難しい。
【0046】
そこで、量子化学計算は、波動関数Ψを基底関数で表現する。基底関数は、既知関数の線形結合である。基底関数に含まれる複数の項それぞれが、分子軌道に対応する。分子軌道は、分子に含まれる電子のうち何れか1つの電子が入る可能性のある場所である。量子化学計算は、分子に含まれる複数の原子の位置を示す分子情報、求解アルゴリズムおよび基底関数の指定をユーザから受け付け、指定された情報に基づいて基底エネルギーを算出する。ただし、第2の実施の形態では、求解アルゴリズムは指定されなくてもよい。
【0047】
情報処理装置100は、量子化学計算によってポテンシャルエネルギー曲線を生成する。ポテンシャルエネルギー曲線は、異なる原子間距離に対応するポテンシャルエネルギーを示す。ポテンシャルエネルギーは、各原子が静止していると仮定した場合に分子がもつエネルギーである。ポテンシャルエネルギー曲線の横軸は、着目する特定の2つの原子の間の距離を表す。ポテンシャルエネルギー曲線の縦軸は、基底エネルギーを表す。
【0048】
距離の単位は、例えば、オングストローム(Å)である。エネルギーの単位は、例えば、ハートリーである。エネルギーは、一定範囲に含まれる離散的な複数の距離それぞれに対して算出される。それら複数の距離は、等間隔であってもよい。例えば、エネルギーは、0.6Åから2.6Åまで0.1Å間隔で算出される。算出されたエネルギーをプロットして線で結ぶことで、ポテンシャルエネルギー曲線が生成される。ポテンシャルエネルギー曲線の極小点は、分子の最も安定した状態を表すことがある。ポテンシャルエネルギー曲線の極大点は、分子の遷移状態を表すことがある。
【0049】
図3は、アルゴリズム間の精度および実行時間の比較例を示す図である。
第2の実施の形態では、量子化学計算にアルゴリズム31,32,33が使用される。アルゴリズム31は、FCIである。アルゴリズム32は、CCSD(T)である。ただし、CCSD(T)に代えてCCSDが使用されてもよい。アルゴリズム33は、VQEである。VQEは、ゲート型の量子コンピュータによって実行されることもあるし、量子コンピュータの動作をシミュレートするソフトウェアを用いて古典コンピュータによって実行されることもある。第2の実施の形態では、情報処理装置100は、古典コンピュータ上に実装された量子シミュレータを用いてVQEを実行する。
【0050】
FCIは、古典コンピュータでの実行を想定した古典アルゴリズムである。FCIは、指定された分子情報および基底関数のもとで、エネルギーの厳密解を求める。このため、FCIは、解の精度が高いものの実行時間が長い。FCIは、分子軌道数の階乗のオーダーの計算量をもつ。このため、規模の大きい分子のエネルギーをFCIで算出することは難しい。厳密解を求めるというFCIの性質上、FCIによって算出されるエネルギーは、正解のエネルギーと解釈されることがある。
【0051】
なお、「古典コンピュータ」は、例えば、「量子コンピュータ」と対比されるノイマン型コンピュータである。「古典アルゴリズム」は、例えば、後述する「量子アルゴリズム」と対比されるアルゴリズムであり、量子回路を用いない。また、シミュレーション対象の分子は「系」と呼ばれることがある。また、実行時間は、リソース使用量と正の相関をもち、リソース使用量と比例することがある。量子化学計算が使用するハードウェアリソースには、プロセッサの処理時間およびメモリの記憶領域が含まれ得る。
【0052】
CCSD(T)は、古典コンピュータでの実行を想定した古典アルゴリズムである。CCSD(T)は、指定された分子情報および基底関数のもとで、エネルギーの近似解を求める。このため、CCSD(T)は、FCIよりも解の精度が低く、FCIよりも実行時間が短い。CCSD(T)は、分子軌道数の7乗のオーダーの計算量をもつ。なお、CCSDは、CCSD(T)よりも更に解の精度が低く実行時間が短い。
【0053】
CCSD(T)は、電子状態として、1電子励起および2電子励起がエネルギーに与える影響を厳密に計算し、3電子励起がエネルギーに与える影響を摂動から求める。CCSD(T)は、4電子励起以上の高次の電子励起の影響を無視する。CCSD(T)は、電子配置を変えながらエネルギーを繰り返し算出し、最小のエネルギーを探索する。CCSD(T)は、算出されるエネルギーが収束するまで反復計算を行う。例えば、CCSD(T)は、最新のエネルギーと1つ前のイテレーションで算出されたエネルギーとを比較し、両者の差が閾値未満になると反復計算を停止する。
【0054】
CCSD(T)は、原子間距離が小さい場合には、FCIに対して比較的良好な近似解を算出することが多い。一方、CCSD(T)は、原子間距離が大きい場合には、精度の低い近似解を算出することがある。これは、原子間距離が大きい場合、外側の分子軌道がエネルギーに与える影響が大きく、4電子励起以上の高次の電子励起の影響を無視するCCSD(T)では、近似解の誤差が大きくなるためである。また、CCSD(T)では、最終的に出力されるエネルギーの精度が低い場合には、収束までの反復回数も多くなる傾向がある。これは、反復計算を行っても近似解が正解値の近傍で変動し続けてしまい、近似解が安定的に正解値に向かって収束しないことがあるためである。
【0055】
VQEは、ゲート型の量子コンピュータでの実行を想定した量子アルゴリズムである。VQEは、NISQ(Noisy Intermediate Scale Quantum)コンピュータを用いて実行することが可能である。ただし、前述のように、量子シミュレータを用いることで、古典コンピュータ上でVQEを実行することも可能である。その場合、量子ビットが1ビット増加する毎に、古典コンピュータではメモリ使用量および計算量が2倍になる。VQEの解の精度および実行時間は、FCIとCCSD(T)の中間である。すなわち、解の精度は、FCIより低くCCSD(T)より高い。実行時間は、FCIより短くCCSD(T)より長い。
【0056】
VQEは、指定された基底関数に基づいて、複数の量子ビットを用いて量子状態を生成する量子回路を形成する。この量子回路は、アンザッツ(Ansatz)回路と呼ばれることがある。また、VQEは、指定された分子情報に対応するハミルトニアンに基づいて、量子状態からエネルギーを測定する量子回路を形成する。この量子回路は、測定回路と呼ばれることがある。量子回路は、量子ゲートの組み合わせにより記述される量子計算モデルである。量子コンピュータでは、物理的な量子ビットを用いて量子回路が実装される。量子シミュレータでは、擬似的な量子ビットデータがメモリに記憶され、擬似的な量子ゲート操作が古典プログラムを用いて実装される。
【0057】
VQEは、アンザッツ回路を用いて量子状態を生成し、測定回路を用いてエネルギーを測定する。個々の測定値は、ノイズや揺らぎの影響を受けている。VQEは、同一の電子配置に関して量子状態の生成およびエネルギーの測定を複数回行い、その平均値をエネルギーの期待値として算出する。VQEは、エネルギーの期待値が小さくなるように、量子状態を生成するためのパラメータ値を変更する。パラメータ値の変更は、電子配置の変更に相当する。VQEは、上記の処理を繰り返すことで、基底エネルギーを探索する。例えば、VQEは、エネルギーの期待値が収束するまで上記の処理を繰り返す。
【0058】
図4は、ポテンシャルエネルギー曲線の例を示す図である。
曲線41は、FCIにより算出されたエネルギーを示す。ここでは、曲線41は、正解のポテンシャルエネルギー曲線と解釈される。曲線42は、CCSD(T)により算出されたエネルギーを示す。曲線43は、VQEにより算出されたエネルギーを示す。
【0059】
前述のように、距離が小さい場合、CCSD(T)の精度およびVQEの精度は、何れも十分に良好である。しかし、距離が大きい場合、VQEの精度は比較的良好である一方、CCSD(T)の精度は大きく低下している。また、FCIを実行可能な分子は、規模が小さい分子に限られる。また、VQEの実行時間は、CCSD(T)より長い。上記のFCI,CCSD(T),VQEの特徴を考慮して、情報処理装置100は、以下のようにしてFCI,CCSD(T),VQEを自動的に使い分ける。
【0060】
まず、情報処理装置100は、シミュレーション対象の分子に対してFCIを実行できるか否かを、ハードウェアリソースの観点から判定する。FCIを実行するために要するハードウェアリソースが確保可能である場合、情報処理装置100は、全ての距離に対応するエネルギーをFCIを用いて算出する。一方、FCIを実行するために要するハードウェアリソースが確保不可である場合、情報処理装置100は、距離に応じてCCSD(T)とVQEを使い分けてエネルギーを算出する。
【0061】
例えば、情報処理装置100は、指定された分子情報および基底関数に基づいて、FCIのメモリ使用量を推定する。メモリ使用量の推定値は、Nstrings2×Narrays×Bである。Nstringsは、異なる電子配置の総数であり、NorbCNelectである。Norbは分子軌道数であり、Nelectは電子数である。よって、Nstringsは、分子軌道の集合の中から電子数だけ分子軌道を選ぶ組み合わせ数である。電子数は、指定された分子の種類から特定される。分子軌道数は、指定された基底関数から特定される。Narraysは、FCIに使用する配列の個数であり、例えば、33個である。Bは、浮動小数点数値1つを表現するためのバイト数であり、例えば、8バイトである。
【0062】
情報処理装置100は、推定されたメモリ使用量と現在の使用可能メモリ量とを比較する。使用可能メモリ量は、FCIに使用できるRAM領域のサイズであり、例えば、オペレーティングシステムから取得される現在の空きメモリ容量である。情報処理装置100は、推定されたメモリ使用量が使用可能メモリ量を超えない場合、FCIが実行可能であると判定する。一方、情報処理装置100は、推定されたメモリ使用量が使用可能メモリ量を超える場合、FCIが実行不可であると判定する。
【0063】
FCIが実行不可であると判定した場合、情報処理装置100は、距離の小さい順にエネルギーを算出する。情報処理装置100は、距離が小さいうちはCCSD(T)を実行し、距離が大きくなるとアルゴリズムをCCSD(T)からVQEに切り替える。このとき、CCSD(T)の精度が悪化し始める距離は、シミュレーション対象の分子によって異なる。そこで、情報処理装置100は、直近の距離におけるCCSD(T)の実行結果を監視し、その実行結果に基づいて、次の距離のアルゴリズムをCCSD(T)のまま変更しないかVQEに変更するか動的に判断する。
【0064】
図5は、距離と反復回数の関係例を示すグラフである。
曲線44は、原子間の距離とCCSD(T)の反復回数との関係を示す。前述のように、距離が大きいほどCCSD(T)の解の精度が低く、解の精度が低いほどCCSD(T)の反復回数が多い傾向がある。よって、曲線44に示すように、距離が大きいほどCCSD(T)の反復回数が多くなる。CCSD(T)の解の精度が悪化し始めるときは、CCSD(T)の反復回数が顕著に増加する。
【0065】
そこで、情報処理装置100は、CCSD(T)がエネルギーを出力する際に、CCSD(T)の反復回数を測定して記録しておく。情報処理装置100は、直近の距離における反復回数を監視し、反復回数が顕著に増加したことを検出すると、CCSD(T)の解の精度が悪化し始めたと判定してアルゴリズムを切り替える。
【0066】
例えば、情報処理装置100は、直近の一定個数の距離および反復回数(例えば、直近5個の距離および反復回数)から、最小二乗法によって線分をフィッティングすることで、線分の傾きを算出する。情報処理装置100は、算出された傾きを記録しておく。情報処理装置100は、最新の傾きが、1つ前の距離の時点で算出された傾きより大きいか判断する。情報処理装置100は、傾きが一定回数連続で増加した場合(例えば、傾きが3回連続で増加した場合)、次の距離からアルゴリズムをVQEに切り替える。
【0067】
線分44aは、1.0Å~1.4Åの区間の傾きを示し、CCSD(T)が距離1.4Åのエネルギーを算出した時点で求められる。線分44bは、1.1Å~1.5Åの区間の傾きを示し、CCSD(T)が距離1.5Åのエネルギーを算出した時点で求められる。線分44bの傾きは、線分44aよりも大きい。線分44cは、1.2Å~1.6Åの区間の傾きを示し、CCSD(T)が距離1.6Åのエネルギーを算出した時点で求められる。線分44cの傾きは、線分44bよりも大きい。線分44dは、1.3Å~1.7Åの区間の傾きを示し、CCSD(T)が距離1.7Åのエネルギーを算出した時点で求められる。線分44dの傾きは、線分44cよりも大きい。
【0068】
情報処理装置100は、線分44a,44b,44c,44dから、傾きが3回連続で増加したことを検出する。すると、情報処理装置100は、距離1.8Å以降の各距離のエネルギーを、CCSD(T)に代えてVQEを用いて算出する。
【0069】
図6は、距離と誤差と傾きの関係例を示すグラフである。
曲線45は、FCIによって算出されるエネルギーに対する、CCSD(T)によって算出されるエネルギーの誤差の絶対値を示す。曲線45に示すように、CCSD(T)の誤差は、距離1.5Åから距離2.0Åにかけて急激に増加している。曲線46は、直近5個の反復回数の傾きを示す。曲線46に示すように、CCSD(T)の反復回数の傾きは、距離1.5Åから距離2.0Åにかけて増加している。よって、情報処理装置100は、反復回数の傾きを監視することで、誤差が顕著に増え始めたことを検出できる。
【0070】
次に、情報処理装置100の機能および処理手順について説明する。
図7は、情報処理装置の機能例を示すブロック図である。
情報処理装置100は、分子情報記憶部121、制御データ記憶部122、FCI実行部123、CCSD実行部124、VQE実行部125、アルゴリズム制御部126およびエネルギー可視化部127を有する。分子情報記憶部121および制御データ記憶部122は、例えば、RAM102またはHDD103を用いて実装される。FCI実行部123、CCSD実行部124、VQE実行部125、アルゴリズム制御部126およびエネルギー可視化部127は、例えば、CPU101およびプログラムを用いて実装される。なお、FCI実行部123、CCSD実行部124およびVQE実行部125の一部または全部が、他の情報処理装置に分離されてもよい。
【0071】
分子情報記憶部121は、分子情報を記憶する。分子情報は、シミュレーション対象の分子に含まれる原子の種類および位置座標を含む。また、分子情報記憶部121は、ユーザが指定した基底関数を記憶する。基底関数は、通常、分子の種類や分子シミュレーションの目的に応じて、既知の基底関数群の中からユーザによって選択される。制御データ記憶部122は、複数の距離それぞれについて算出されたエネルギーを記憶する。また、制御データ記憶部122は、アルゴリズムの選択に用いられる制御データを記憶する。
【0072】
FCI実行部123は、アルゴリズム制御部126からの指示に応じて、指定された分子情報および基底関数に基づいてFCIを実行する。指定される分子情報には、特定の2つの原子の距離の変更が反映されている。FCI実行部123は、1つの距離に対応する分子情報毎に、基底エネルギーを算出してアルゴリズム制御部126に出力する。
【0073】
CCSD実行部124は、アルゴリズム制御部126からの指示に応じて、指定された分子情報および基底関数に基づいてCCSD(T)を実行する。ただし、CCSD実行部124は、CCSDを実行してもよい。CCSD実行部124は、1つの距離に対応する分子情報毎に、基底エネルギーを算出してアルゴリズム制御部126に出力する。また、CCSD実行部124は、反復回数を測定してアルゴリズム制御部126に通知する。
【0074】
VQE実行部125は、アルゴリズム制御部126からの指示に応じて、指定された分子情報および基底関数に基づいてVQEを実行する。VQE実行部125は、分子情報および基底関数に基づいて、量子回路を生成してエネルギーを測定することを繰り返す。VQE実行部125は、1つの距離に対応する分子情報毎に、基底エネルギーを算出してアルゴリズム制御部126に出力する。
【0075】
アルゴリズム制御部126は、複数の距離それぞれについて量子化学計算のアルゴリズムを選択する。エネルギーを算出する距離の集合は、ユーザから指定されてもよいし、事前に固定されていてもよい。アルゴリズム制御部126は、分子情報および基底関数に基づいてFCIのメモリ使用量を推定し、推定したメモリ使用量と使用可能メモリ量とに基づいてFCIの実行可否を判定する。FCIが実行可能である場合、アルゴリズム制御部126は、全ての距離についてFCI実行部123を呼び出す。
【0076】
FCIが実行不可である場合、アルゴリズム制御部126は、距離の小さい順にCCSD実行部124を呼び出す。アルゴリズム制御部126は、CCSD実行部124で測定された反復回数の傾きを監視し、傾きが一定回数連続で増加した場合、残りの全ての距離についてVQE実行部125を呼び出す。また、アルゴリズム制御部126は、FCI実行部123、CCSD実行部124およびVQE実行部125から収集した全ての距離に対応するエネルギーを、制御データ記憶部122に保存する。
【0077】
エネルギー可視化部127は、制御データ記憶部122から複数の距離に対応する複数のエネルギーを読み出し、読み出したエネルギーをプロットすることでポテンシャルエネルギー曲線を生成する。エネルギー可視化部127は、生成したポテンシャルエネルギー曲線を不揮発性ストレージに保存してもよいし、表示装置111に表示してもよいし、他の情報処理装置に送信してもよい。また、エネルギー可視化部127は、算出された複数のエネルギーを示す数値データ自体を出力してもよい。
【0078】
図8は、制御データの構造例を示す図である。
制御データ記憶部122は、距離リスト131、エネルギーリスト132、イテレーションリスト133および傾きリスト134を記憶する。距離リスト131は、エネルギーがまだ算出されていない距離を列挙したリストである。エネルギーリスト132は、算出されたエネルギーを距離の昇順に列挙したリストである。イテレーションリスト133は、直近の一定個数の距離についてCCSD(T)の反復回数を列挙したリストである。反復回数は、距離の昇順に並んでいる。傾きリスト134は、イテレーションリスト133から算出された反復回数の傾きを、距離の昇順に列挙したリストである。
【0079】
図9は、量子化学計算の手順例を示すフローチャートである。
(S10)アルゴリズム制御部126は、分子情報から電子数を特定し、基底関数から分子軌道数を特定する。アルゴリズム制御部126は、電子数と分子軌道数を推定式に入力することで、FCIのメモリ使用量を推定する。
【0080】
(S11)アルゴリズム制御部126は、量子化学計算を行うシステムの空きメモリ容量を取得する。システムは、情報処理装置100でもよいし他の情報処理装置でもよい。空きメモリ容量は、例えば、オペレーティングシステムから取得される。
【0081】
(S12)アルゴリズム制御部126は、ステップS10で推定したメモリ使用量が、ステップS11で取得した空きメモリ容量以下であるか判断する。メモリ使用量が空きメモリ容量以下である場合、ステップS13に処理が進む。メモリ使用量が空きメモリ容量を超える場合、ステップS14に処理が進む。
【0082】
(S13)FCI実行部123は、全ての距離のエネルギーをFCIによって算出する。アルゴリズム制御部126は、算出されたエネルギーを、距離の昇順にエネルギーリスト132に記録する。そして、ステップS15に処理が進む。
【0083】
(S14)アルゴリズム制御部126は、CCSD(T)とVQEを切り替えるアルゴリズム切り替えを実行する。アルゴリズム切り替えの詳細は後述する。
(S15)エネルギー可視化部127は、ステップS13またはステップS14でエネルギーリスト132に記録されたエネルギーを読み出し、読み出したエネルギーをプロットすることでポテンシャルエネルギー曲線を生成する。エネルギー可視化部127は、生成されたポテンシャルエネルギー曲線を表示装置111に表示する。
【0084】
図10は、アルゴリズム切り替えの手順例を示すフローチャートである。
アルゴリズム切り替えは、上記のステップS14で実行される。
(S20)アルゴリズム制御部126は、距離リスト131が空であるか判断する。初期状態において、距離リスト131には、エネルギーを算出する距離が昇順に列挙されている。距離リストが空である場合、アルゴリズム切り替えが終了する。距離リストが空でない場合、ステップS21に処理が進む。
【0085】
(S21)アルゴリズム制御部126は、距離リスト131の先頭から現時点で最小の距離を抽出する。抽出された距離は、距離リスト131から削除される。
(S22)CCSD実行部124は、ステップS21で抽出された距離に対応するエネルギーを、CCSD(T)によって算出する。また、CCSD実行部124は、このエネルギーが収束するまでに要した反復回数を測定する。
【0086】
(S23)アルゴリズム制御部126は、ステップS22で算出されたエネルギーを、エネルギーリスト132の末尾に追加する。また、アルゴリズム制御部126は、ステップS22で測定された反復回数を、イテレーションリスト133の末尾に追加する。
【0087】
(S24)アルゴリズム制御部126は、イテレーションリスト133の長さが、一定のウィンドウ幅Wに等しいか判断する。例えば、W=5である。イテレーションリスト133の長さがウィンドウ幅Wに等しい場合、ステップS25に処理が進む。イテレーションリスト133の長さがウィンドウ幅Wより小さい場合、ステップS20に処理が戻る。
【0088】
(S25)アルゴリズム制御部126は、イテレーションリスト133に含まれるW個の反復回数に対して、最小二乗法によって線分をフィッティングする。アルゴリズム制御部126は、線分の傾きを算出し、傾きリスト134の末尾に傾きを追加する。
【0089】
(S26)アルゴリズム制御部126は、イテレーションリスト133の先頭から反復回数を1つ削除する。これにより、イテレーションリスト133の長さがW-1になる。
(S27)アルゴリズム制御部126は、傾きリスト134の長さが閾値Tを超えるか判断する。例えば、T=3である。傾きリスト134の長さが閾値Tを超える場合、ステップS28に処理が進む。傾きリスト134の長さが閾値T以下である場合、ステップS20に処理が戻る。
【0090】
(S28)アルゴリズム制御部126は、傾きリスト134の末尾側にあるT+1個の傾きを走査し、傾きがT回連続して増加したか判断する。傾きがT回連続して増加した場合、ステップS29に処理が進む。それ以外の場合、ステップS20に処理が戻る。
【0091】
(S29)VQE実行部125は、距離リスト131に含まれる残りの全ての距離に対応するエネルギーを、VQEによって算出する。アルゴリズム制御部126は、算出されたエネルギーをエネルギーリスト132の末尾に追加する。また、アルゴリズム制御部126は、距離リスト131を空にする。そして、アルゴリズム切り替えが終了する。
【0092】
次に、VQEの実行対象とする距離を選択する他の方法について説明する。
まず、情報処理装置100は、エネルギーを求めたい複数の距離それぞれについて、CCSD(T)を実行する。ただし、情報処理装置100は、CCSD(T)に代えて、CCSDなど計算量の小さい他の古典アルゴリズムを実行してもよい。そして、情報処理装置100は、それら複数の距離についてのCCSD(T)の反復回数に基づいて、それら複数の距離の中から追加的にVQEを実行する距離を選択する。情報処理装置100は、選択した距離についてVQEを実行する。ただし、情報処理装置100は、追加的にVQEを実行する距離を1つも選択しないこともある。
【0093】
ポテンシャルエネルギー曲線を生成する際には、情報処理装置100は、VQEが実行されなかった距離については、CCSD(T)によって算出されたエネルギーを使用する。一方、情報処理装置100は、VQEが実行された距離については、計算精度の観点から、VQEによって算出されたエネルギーを使用する。
【0094】
VQEを実行する距離を選択するために、情報処理装置100は、距離と反復回数とを対応付けた点をプロットし、プロットした点の集合に対して区分的線形回帰分析を行う。区分的線形回帰分析は、点の集合に対してフィッティング精度が最も高くなるように、分割点を検出し、分割点の前後で異なる線分を算出する。
【0095】
ここでは、情報処理装置100は、分割点となる距離を選択し、分割点より小さい距離区間と分割点より大きい距離区間それぞれに対して、最小二乗法により線分を算出する。情報処理装置100は、2つの線分のフィッティング精度を示す残差を評価する。情報処理装置100は、分割点を変えながら回帰分析および残差評価を繰り返し、フィッティング精度が最も高くなる(残差が最も小さくなる)ような分割点を探索する。これにより、反復回数の変化の傾向が変わる距離を境界にして2つの線分が算出される。
【0096】
情報処理装置100は、2つの線分の傾きを比較する。大きい方の距離区間の傾きが小さい方の距離区間の傾きより大きい場合、情報処理装置100は、大きい方の距離区間に属する距離それぞれに対してVQEを実行することを決定する。この場合、分割点以降の距離に対してVQEが実行される。一方、大きい方の距離区間の傾きが小さい方の距離区間の傾き以下である場合、情報処理装置100は、何れの距離に対してもVQEを実行しないことを決定する。これにより、情報処理装置100は、距離の増加に対する反復回数の顕著な増加が始まった距離を、精度よく検出することができる。
【0097】
図11は、区分的線形回帰分析の例を示す図である。
ここでは、情報処理装置100は、0.5Åから2.8Åまでの各距離についてCCSD(T)を実行し、その反復回数を測定する。情報処理装置100は、測定された反復回数に対して区分的線形回帰分析を行い、線分51,52を算出する。
【0098】
分割点は、1.0Åと1.1Åの間である。分割点より前の区間は、0.5Åから1.0Åまでである。この区間に含まれる点から線分51が算出される。分割点より後の区間は、1.1Åから2.8Åまでである。この区間に含まれる点から線分52が算出される。
図11に示すように、分割点の前後で反復回数の変動傾向が明確に異なる。線分52の傾きは、線分51の傾きより大きい。そこで、情報処理装置100は、線分52に対応する1.1Åから2.8Åまでの各距離について、追加的にVQEを実行する。
【0099】
図12は、区分的線形回帰分析の他の例を示す図である。
ここでは、情報処理装置100は、0.5Åから2.8Åまでの各距離についてCCSD(T)を実行し、その反復回数を測定する。情報処理装置100は、測定された反復回数に対して区分的線形回帰分析を行い、線分53,54を算出する。
【0100】
分割点は、2.4Åと2.5Åの間である。分割点より前の区間は、0.5Åから2.4Åまでである。この区間に含まれる点から線分53が算出される。分割点より後の区間は、2.5Åから2.8Åまでである。この区間に含まれる点から線分54が算出される。
図11の場合と異なり、反復回数は全ての距離を通じて継続的に増加する傾向にある。線分54の傾きは、線分53より小さい。そこで、情報処理装置100は、0.5Åから2.8Åまでの何れの距離についても、追加的にVQEを実行しない。
【0101】
以上説明したように、第2の実施の形態の情報処理装置100は、量子化学計算により、原子間距離と分子の基底エネルギーとの関係を示すポテンシャルエネルギー曲線を生成する。これにより、情報処理装置100は、分子の特性について有用な情報を提供することができ、材料開発や医薬品開発などの研究開発を支援することができる。また、情報処理装置100は、精度および実行時間の観点から、何れの原子間距離のエネルギーを何れのアルゴリズムによって算出するか自動的に選択する。これにより、ユーザは原子間距離毎にアルゴリズムを指定しなくてよく、ユーザの負担が軽減される。また、高い精度のポテンシャルエネルギー曲線が、短時間で効率的に生成される。
【0102】
また、情報処理装置100は、分子情報と基底関数から、FCIに要するハードウェアリソース量を推定してFCIの実行可否を判定し、FCIが実行可能である場合には全ての原子間距離のエネルギーをFCIによって算出する。これにより、小規模の分子について、高い精度のポテンシャルエネルギー曲線が生成される。
【0103】
また、情報処理装置100は、FCIが実行不可である場合、小さい原子間距離のエネルギーをCCSD(T)によって算出し、大きい原子間距離のエネルギーをVQEによって算出する。これにより、精度と実行時間のバランスが図られる。また、情報処理装置100は、アルゴリズムをCCSD(T)からVQEに切り替えるタイミングを、CCSD(T)においてエネルギーが収束するまでの反復回数の傾きの増加に基づいて決定する。これにより、CCSD(T)の精度の低下が検出され、シミュレーション対象の分子に応じた適切なタイミングでアルゴリズムが変更される。
【符号の説明】
【0104】
10 情報処理装置
11 記憶部
12 処理部
13,14 アルゴリズム
15a,15b,15c,15d 原子間距離
16a,16b,16c,16d 分子エネルギー
17a,17b,17c 反復回数