(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024067751
(43)【公開日】2024-05-17
(54)【発明の名称】アルゴリズム制御プログラム、アルゴリズム制御方法および情報処理装置
(51)【国際特許分類】
G16C 10/00 20190101AFI20240510BHJP
G06N 10/00 20220101ALI20240510BHJP
【FI】
G16C10/00
G06N10/00
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022178068
(22)【出願日】2022-11-07
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】高 虹
(57)【要約】
【課題】原子間距離と量子化学計算の結果との関係を示す曲線情報を効率的に生成する。
【解決手段】情報処理装置10は、分析対象の分子に設定され得る複数の原子間距離のうちの原子間距離15eを対象として、アルゴリズム14を用いて第1の量子化学計算を実行する。情報処理装置10は、第1の量子化学計算の実行時間16に基づいて、複数の原子間距離の中から選択される原子間距離の個数17と間隔18とを決定する。情報処理装置10は、決定された個数17と決定された間隔18とに応じた原子間距離15a,15cそれぞれを対象として、アルゴリズム14を用いて第2の量子化学計算を実行する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
分析対象の分子に設定され得る複数の原子間距離のうちの第1の原子間距離を対象として、第1のアルゴリズムを用いて第1の量子化学計算を実行し、
前記第1の量子化学計算の実行時間に基づいて、前記複数の原子間距離の中から選択される原子間距離の個数と前記選択される原子間距離の間隔とを決定し、
前記複数の原子間距離のうち、決定された前記個数と決定された前記間隔とに応じた2以上の第2の原子間距離それぞれを対象として、前記第1のアルゴリズムを用いて第2の量子化学計算を実行する、
処理をコンピュータに実行させるアルゴリズム制御プログラム。
【請求項2】
前記第1の原子間距離は、前記複数の原子間距離のうちの最大値である、
請求項1記載のアルゴリズム制御プログラム。
【請求項3】
前記決定は、指定された制限時間と前記実行時間とに基づいて前記個数を決定し、決定された前記個数に基づいて前記間隔を決定する処理を含む、
請求項1記載のアルゴリズム制御プログラム。
【請求項4】
前記間隔は不等間隔であり、
前記第2の量子化学計算の実行は、前記2以上の第2の原子間距離のうちの一部の第2の原子間距離に対応する前記第2の量子化学計算の実行結果に基づいて、前記複数の原子間距離の中から他の第2の原子間距離を選択する処理を含む、
請求項1記載のアルゴリズム制御プログラム。
【請求項5】
前記決定は、等間隔の指定の有無に基づいて、前記選択される原子間距離が等間隔になる第1の選択方法と、前記選択される原子間距離が不等間隔になる第2の選択方法とのうちの何れか一方を実行する処理を含む、
請求項1記載のアルゴリズム制御プログラム。
【請求項6】
前記第1の量子化学計算および前記第2の量子化学計算は、前記分析対象の分子に関するポテンシャルエネルギーを求めるものである、
請求項1から5の何れか一項に記載のアルゴリズム制御プログラム。
【請求項7】
前記第1の原子間距離および前記2以上の第2の原子間距離はそれぞれ、前記複数の原子間距離のうちの閾値以上の原子間距離であり、
前記閾値未満である第3の原子間距離を対象として、第2のアルゴリズムを用いて第3の量子化学計算を実行する処理を、前記コンピュータに更に実行させる、
請求項1記載のアルゴリズム制御プログラム。
【請求項8】
前記第1の量子化学計算および前記第2の量子化学計算によって算出される複数のポテンシャルエネルギーに基づいて、ポテンシャルエネルギー曲線を生成する処理を、前記コンピュータに更に実行させる、
請求項1記載のアルゴリズム制御プログラム。
【請求項9】
分析対象の分子に設定され得る複数の原子間距離のうちの第1の原子間距離を対象として、第1のアルゴリズムを用いて第1の量子化学計算を実行し、
前記第1の量子化学計算の実行時間に基づいて、前記複数の原子間距離の中から選択される原子間距離の個数と前記選択される原子間距離の間隔とを決定し、
前記複数の原子間距離のうち、決定された前記個数と決定された前記間隔とに応じた2以上の第2の原子間距離それぞれを対象として、前記第1のアルゴリズムを用いて第2の量子化学計算を実行する、
処理をコンピュータが実行するアルゴリズム制御方法。
【請求項10】
分析対象の分子に設定され得る複数の原子間距離を記憶する記憶部と、
前記複数の原子間距離のうちの第1の原子間距離を対象として、第1のアルゴリズムを用いて第1の量子化学計算を実行し、前記第1の量子化学計算の実行時間に基づいて、前記複数の原子間距離の中から選択される原子間距離の個数と前記選択される原子間距離の間隔とを決定し、前記複数の原子間距離のうち、決定された前記個数と決定された前記間隔とに応じた2以上の第2の原子間距離それぞれを対象として、前記第1のアルゴリズムを用いて第2の量子化学計算を実行する処理部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はアルゴリズム制御プログラム、アルゴリズム制御方法および情報処理装置に関する。
【背景技術】
【0002】
コンピュータは、分子の特性を数値計算によって解析する分子シミュレーションを行うことがある。分子シミュレーションは、材料開発や医薬品開発などの産業分野で利用されることがある。分子シミュレーションには、分子の電子状態とシュレーディンガー方程式とに基づいて、エネルギーなどの物理量を微視的に算出する量子化学計算が含まれる。
【0003】
量子化学計算のアルゴリズムには、配置間相互作用法(CI:Configuration Interaction)、結合クラスタ法(CC:Coupled Cluster)、変分量子固有値ソルバ法(VQE:Variational Quantum Eigensolver)などが含まれる。アルゴリズムによって、物理量の算出に要する実行時間や、算出される物理量の精度が異なる。
【0004】
なお、量子回路のパラメータを生成し、生成されたパラメータに基づいて量子計算を実行し、計算結果に基づいてハミルトニアンに対応するエネルギーの導関数を算出する量子情報処理方法が提案されている。また、Jordan-Wigner変換を用いて量子化学の系のエネルギーを測定する測定方法が提案されている。また、分子が有する2つの分子軌道を組み合わせて複数通りの分子軌道対を生成し、分子軌道対毎の重なり積分値に基づいて、計算対象の分子軌道を決定する量子化学計算方法が提案されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】国際公開第2020/230794号
【特許文献2】国際公開第2021/021813号
【特許文献3】国際公開第2022/097298号
【発明の概要】
【発明が解決しようとする課題】
【0006】
コンピュータは、分析対象の分子に含まれる2つの原子の原子間距離を変えながら量子化学計算を繰り返すことで、原子間距離と量子化学計算の結果との関係を示す曲線情報を生成することが考えられる。例えば、コンピュータは、原子間距離と分子のポテンシャルエネルギーとの関係を示すポテンシャルエネルギー曲線を生成することが考えられる。
【0007】
しかし、アルゴリズムの中には実行時間が長いものがあり、原子間距離の間隔を細かくして量子化学計算を繰り返すと、合計実行時間が想定外に長くなってしまう場合がある。そこで、1つの側面では、本発明は、原子間距離と量子化学計算の結果との関係を示す曲線情報を効率的に生成することを目的とする。
【課題を解決するための手段】
【0008】
1つの態様では、以下の処理をコンピュータに実行させるアルゴリズム制御プログラムが提供される。分析対象の分子に設定され得る複数の原子間距離のうちの第1の原子間距離を対象として、第1のアルゴリズムを用いて第1の量子化学計算を実行する。第1の量子化学計算の実行時間に基づいて、複数の原子間距離の中から選択される原子間距離の個数と選択される原子間距離の間隔とを決定する。複数の原子間距離のうち、決定された個数と決定された間隔とに応じた2以上の第2の原子間距離それぞれを対象として、第1のアルゴリズムを用いて第2の量子化学計算を実行する。
【0009】
また、1つの態様では、コンピュータが実行するアルゴリズム制御方法が提供される。また、1つの態様では、記憶部と処理部とを有する情報処理装置が提供される。
【発明の効果】
【0010】
1つの側面では、原子間距離と量子化学計算の結果との関係を示す曲線情報が効率的に生成される。
【図面の簡単な説明】
【0011】
【
図1】第1の実施の形態の情報処理装置を説明するための図である。
【
図2】情報処理装置のハードウェア例を示すブロック図である。
【
図3】ポテンシャルエネルギー曲線の精度の例を示すグラフである。
【
図4】原子間距離毎の実行時間の例を示すグラフである。
【
図5】原子間距離毎の反復回数の例を示すグラフである。
【
図6】原子間距離毎の誤差および反復回数の傾きの例を示すグラフである。
【
図7】制限時間内でのVQE実行の第1の例を示すグラフである。
【
図8】制限時間内でのVQE実行の第2の例を示すグラフである。
【
図9】等間隔のポテンシャルエネルギー曲線の例を示すグラフである。
【
図10】不等間隔のポテンシャルエネルギー曲線の例を示すグラフである。
【
図11】情報処理装置の機能例を示すブロック図である。
【
図13】分子シミュレーションの手順例を示すフローチャートである。
【
図14】分子シミュレーションの手順例を示すフローチャート(続き)である。
【発明を実施するための形態】
【0012】
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
【0013】
図1は、第1の実施の形態の情報処理装置を説明するための図である。
第1の実施の形態の情報処理装置10は、分子シミュレーションの一種である量子化学計算を行う。情報処理装置10は、ある種類の分子について、複数通りの原子間距離に対応する複数回の量子化学計算を行う。情報処理装置10は、原子間距離と量子化学計算の結果との関係を示す曲線情報を出力する。例えば、情報処理装置10は、原子間距離とポテンシャルエネルギーとの関係を示すポテンシャルエネルギー曲線(PEC:Potential Energy Curve)やポテンシャルエネルギー曲面(PES:Potential Energy Surface)を出力する。情報処理装置10は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置10が、コンピュータ、分子シミュレーション装置、量子化学計算装置またはアルゴリズム制御装置と呼ばれてもよい。
【0014】
情報処理装置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でもよい)に記憶されたプログラムを実行する。プロセッサの集合が、マルチプロセッサまたは単に「プロセッサ」と呼ばれてもよい。
【0015】
記憶部11は、分析対象の分子を示す分子情報13を記憶する。分子情報13は、分子構造を示し、例えば、分子に含まれる複数の原子それぞれの種類および座標を示す。また、記憶部11は、量子化学計算の対象とする原子間距離の候補である複数の原子間距離を記憶する。これら複数の原子間距離は、分析対象の分子に設定され得る。原子間距離は、分子の中の着目する2つの原子の距離である。距離は、例えば、ユークリッド距離である。原子間距離を変更すると、例えば、分子情報13が示す原子の相対位置が修正される。
【0016】
量子化学計算は、例えば、対象の原子間距離に応じた分子エネルギーを算出する。分子エネルギーは、例えば、分子が安定状態にあるときの基底エネルギーである。原子間距離が変化すると、分子エネルギーが変化する。一例として、記憶部11は、原子間距離15a,15b,15c,15d,15eを記憶する。原子間距離15bは原子間距離15aより大きく、原子間距離15cは原子間距離15bより大きく、原子間距離15dは原子間距離15cより大きく、原子間距離15eは原子間距離15dより大きい。
【0017】
第1の実施の形態では、後述の量子化学計算にアルゴリズム14が使用される。アルゴリズム14は、例えば、量子回路データを使用する量子アルゴリズムであり、VQEであってもよい。量子回路データは、量子ビットに対するゲート操作を規定する量子計算モデルである。アルゴリズム14は、ゲート型の量子コンピュータで実行されることがある。また、アルゴリズム14は、量子コンピュータの動作をシミュレートするソフトウェアを用いて、ノイマン型の古典コンピュータで実行されることがある。情報処理装置10は、アルゴリズム14を自身で実行してもよいし、他の情報処理装置に実行させてもよい。
【0018】
量子回路データは、例えば、アンザッツ(Ansatz)回路と測定回路とを含む。アンザッツ回路は、1以上の量子ビットを用いて量子状態を生成するものであり、シュレーディンガー方程式の波動関数を近似した基底関数に基づいて生成される。測定回路は、量子状態から分子エネルギーを測定するものであり、分子の種類に応じて、シュレーディンガー方程式のハミルトニアンに基づいて生成される。
【0019】
アルゴリズム14は、例えば、ある電子配置について、量子状態を生成して分子エネルギーを測定することを複数回行って、その電子配置における分子エネルギーの期待値を算出する。アルゴリズム14は、電子配置を変えながら分子エネルギーの期待値を算出することを繰り返し、最小の分子エネルギーを探索する。アルゴリズム14は、最小の分子エネルギーを基底エネルギーとして出力する。
【0020】
なお、情報処理装置10は、一部の原子間距離を対象とする量子化学計算を、アルゴリズム14と異なる他のアルゴリズムを用いて実行してもよい。一部の原子間距離は、アルゴリズム14の対象となり得る原子間距離より小さい原子間距離でもよく、記憶部11に記憶された複数の原子間距離のうち閾値未満の原子間距離でもよい。
【0021】
他のアルゴリズムは、アルゴリズム14と異なる方法によって分子エネルギーを算出する。他のアルゴリズムは、大きい原子間距離を対象とする量子化学計算ほど精度が低くなるアルゴリズムでもよい。また、他のアルゴリズムは、アルゴリズム14より実行時間が短いアルゴリズムでもよい。他のアルゴリズムは、例えば、量子回路データを用いない古典アルゴリズムであり、古典コンピュータによって実行されることが想定される。他のアルゴリズムは、CISD(Configuration Interaction Singles and Doubles)などの配置間相互作用法でもよいし、CCSD(Coupled Cluster Singles and Doubles)やCCSD(T)(CCSD (and Triples))などの結合クラスタ法でもよい。
【0022】
他のアルゴリズムは、例えば、波動関数を近似した基底関数に基づいて一定の計算式を生成し、ある電子配置について分子エネルギーを算出する。このとき、他のアルゴリズムは、計算量の抑制のため、3電子励起以上または4電子励起以上の高次の電子励起を無視することがある。他のアルゴリズムは、電子配置を変えながら分子エネルギーを算出することを繰り返し、最小の分子エネルギーを探索する。他のアルゴリズムは、最小の分子エネルギーを基底エネルギーとして出力する。
【0023】
処理部12は、記憶部11に記憶された複数の原子間距離のうちの1つの原子間距離を対象として、アルゴリズム14を用いて量子化学計算を実行する。当該1つの原子間距離は、最大の原子間距離であってもよく、例えば、原子間距離15eである。この量子化学計算は、例えば、原子間距離15eに対応する分子エネルギーを算出する。また、処理部12は、この量子化学計算の実行時間16を測定する。
【0024】
処理部12は、実行時間16に基づいて、複数の原子間距離の中から選択される原子間距離の個数17と、選択される原子間距離の間隔18とを決定する。情報処理装置10に対しては、ユーザなどから制限時間が指定されてもよい。その場合、処理部12は、指定された制限時間と実行時間16とに基づいて、合計実行時間が制限時間を超えないように個数17および間隔18を決定してもよい。
【0025】
例えば、処理部12は、制限時間を実行時間16で割ることで個数17を決定し、個数17から間隔18を決定する。個数17の中には、実行時間16を測定した際に対象とされた1つの原子間距離が含まれてもよい。間隔18は、等間隔でもよいし不等間隔でもよい。等間隔の場合、処理部12は、アルゴリズム14の対象となり得る原子間距離の最大値と最小値との差を、個数17または個数17より1だけ小さい数で割ることで、間隔18を算出してもよい。例えば、処理部12は、原子間距離15a,15eの差を個数17より1だけ小さい数で割ることで、間隔18を算出する。
【0026】
不等間隔の場合、処理部12は、量子化学計算の結果(例えば、算出される分子エネルギー)の変化が大きい距離区間の間隔を小さくし、変化が小さい距離区間の間隔を大きくしてもよい。変化の大きい距離区間を判定するため、処理部12は、一部の原子間距離を選択して量子化学計算を行い、その結果に基づいて残りの原子間距離を選択してもよい。処理部12は、1つの原子間距離を対象として量子化学計算を行い、その結果に基づいて次の1つの原子間距離を選択することを、繰り返してもよい。
【0027】
処理部12は、記憶部11に記憶された複数の原子間距離のうち、決定された個数17および間隔18に応じた2以上の原子間距離それぞれを対象として、アルゴリズム14を用いて量子化学計算を行う。よって、複数の原子間距離の中から間欠的に一部の原子間距離が間引かれて、アルゴリズム14を実行する対象から除外される。例えば、処理部12は、原子間距離15a,15b,15c,15d,15eのうち、原子間距離15a,15c,15eを選択して原子間距離15b,15dを除外する。
【0028】
処理部12は、原子間距離と量子化学計算の結果(例えば、分子エネルギー)との関係を示す曲線情報を生成して出力する。曲線情報は、記憶部11に記憶された複数の原子間距離のうち一部の原子間距離に対応する量子化学計算の結果を含まない。例えば、曲線情報は、原子間距離15a,15c,15eに対応する量子化学計算の結果を含み、原子間距離15b,15dに対応する量子化学計算の結果を含まない。例えば、処理部12は、原子間距離と分子のポテンシャルエネルギーとの関係を示すポテンシャルエネルギー曲線を生成して出力する。処理部12は、生成された曲線情報を不揮発性ストレージに保存してもよいし、表示装置に表示してもよいし、他の情報処理装置に送信してもよい。
【0029】
以上説明したように、第1の実施の形態の情報処理装置10は、複数の原子間距離のうちの原子間距離15eを対象として、アルゴリズム14を用いて第1の量子化学計算を実行する。情報処理装置10は、第1の量子化学計算の実行時間16に基づいて、個数17および間隔18を決定する。情報処理装置10は、複数の原子間距離のうち、決定された個数17および間隔18に応じた原子間距離15a,15cそれぞれを対象として、アルゴリズム14を用いて第2の量子化学計算を実行する。
【0030】
これにより、曲線情報を生成するためのアルゴリズム14の合計実行時間が想定外に長くなることが抑制され、曲線情報が効率的に生成される。また、細かい間隔で原子間距離の小さい順に量子化学計算を行う場合と比べて、許容される合計実行時間内に曲線の全体像が描写され、分子の特性を把握するために有用な情報が提供される。また、細かい間隔で原子間距離の大きい順にアルゴリズム14で量子化学計算を行う場合と比べて、精度の違いによって曲線が途中で不連続になるなど不自然な曲線になるリスクが低下する。よって、合計実行時間を考慮しつつ、精度の高い曲線情報が生成される。
【0031】
なお、実行時間16を測定するための原子間距離15eは、複数の原子間距離のうちの最大値であってもよい。原子間距離が大きいほどアルゴリズム14の実行時間が長くなる傾向があるため、これにより、アルゴリズム14の最大実行時間が簡便的かつ高精度に推定される。また、情報処理装置10は、指定された制限時間と実行時間16とに基づいて個数17を決定し、個数17に基づいて間隔18を決定してもよい。これにより、制限時間を遵守するように曲線情報が出力される。
【0032】
また、間隔18は不等間隔であってもよく、情報処理装置10は、一部の原子間距離に対応する量子化学計算の実行結果に基づいて、他の原子間距離を選択してもよい。これにより、情報処理装置10は、実行結果の変化が大きい距離区間と変化が小さい距離区間とで、選択される原子間距離の間隔を変えることが可能であり、個数17が少ない場合であっても精度の高い曲線情報を生成することができる。
【0033】
また、情報処理装置10は、等間隔の指定をユーザなどから受け付けてもよく、指定の有無に基づいて、選択される原子間距離が等間隔になる第1の選択方法と、選択される原子間距離が不等間隔になる第2の選択方法とのうちの何れか一方を実行してもよい。これにより、ユーザのニーズに適合する曲線情報が生成される。
【0034】
また、情報処理装置10は、閾値未満の原子間距離を対象として、アルゴリズム14と異なる他のアルゴリズムを用いて量子化学計算を実行してもよい。これにより、情報処理装置10は、小さい原子間距離に対してはアルゴリズム14よりも実行時間が短い他のアルゴリズムを使用することができ、曲線情報を効率的に生成することができる。また、情報処理装置10は、量子化学計算によって算出されるポテンシャルエネルギーを用いてポテンシャルエネルギー曲線を生成してもよい。これにより、分子の特性を把握するために有用な情報がユーザに提供される。
【0035】
[第2の実施の形態]
次に、第2の実施の形態を説明する。
第2の実施の形態の情報処理装置100は、量子化学計算によって、着目する2つの原子の距離と分子のポテンシャルエネルギーとの関係を示すポテンシャルエネルギー曲線を生成する。情報処理装置100は、複数のアルゴリズムを実行することができる。ただし、一部または全部のアルゴリズムが、他の情報処理装置によって実行されてもよい。他の情報処理装置は、量子コンピュータであってもよい。
【0036】
情報処理装置100は、クライアント装置でもよいしサーバ装置でもよい。また、情報処理装置100は、データセンタに設置されてもよく、クラウドシステムに含まれてもよい。クラウドシステムは、量子化学計算に関するジョブの要求をネットワーク経由で受信し、生成されたポテンシャルエネルギー曲線を返信することがある。情報処理装置100が、コンピュータ、分子シミュレーション装置または量子化学計算装置と呼ばれてもよい。情報処理装置100は、第1の実施の形態の情報処理装置10に対応する。
【0037】
図2は、情報処理装置のハードウェア例を示すブロック図である。
情報処理装置100は、バスに接続されたCPU101、RAM102、HDD103、GPU104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
【0038】
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムおよびデータをRAM102にロードし、プログラムを実行する。情報処理装置100は、複数のプロセッサを有してもよい。
【0039】
RAM102は、CPU101で実行されるプログラムおよびCPU101で演算に使用されるデータを一時的に記憶する揮発性半導体メモリである。情報処理装置100は、RAM以外の種類の揮発性メモリを有してもよい。
【0040】
HDD103は、オペレーティングシステム(OS:Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラムと、データとを記憶する不揮発性ストレージである。情報処理装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の不揮発性ストレージを有してもよい。
【0041】
GPU104は、CPU101と連携して画像処理を行い、情報処理装置100に接続された表示装置111に画像を出力する。表示装置111は、例えば、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイまたはプロジェクタである。情報処理装置100に、プリンタなどの他の種類の出力デバイスが接続されてもよい。
【0042】
また、GPU104は、GPGPU(General Purpose Computing on Graphics Processing Unit)として使用されてもよい。GPU104は、CPU101からの指示に応じてプログラムを実行し得る。情報処理装置100は、RAM102以外の揮発性半導体メモリをGPUメモリとして有してもよい。
【0043】
入力インタフェース105は、情報処理装置100に接続された入力デバイス112から入力信号を受け付ける。入力デバイス112は、例えば、マウス、タッチパネルまたはキーボードである。情報処理装置100に複数の入力デバイスが接続されてもよい。
【0044】
媒体リーダ106は、記録媒体113に記録されたプログラムおよびデータを読み取る読み取り装置である。記録媒体113は、例えば、磁気ディスク、光ディスクまたは半導体メモリである。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)およびHDDが含まれる。光ディスクには、CD(Compact Disc)およびDVD(Digital Versatile Disc)が含まれる。媒体リーダ106は、記録媒体113から読み取られたプログラムおよびデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、CPU101によって実行されることがある。
【0045】
記録媒体113は、可搬型記録媒体であってもよい。記録媒体113は、プログラムおよびデータの配布に用いられることがある。また、記録媒体113およびHDD103が、コンピュータ読み取り可能な記録媒体と呼ばれてもよい。
【0046】
通信インタフェース107は、ネットワーク114を介して他の情報処理装置と通信する。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
【0047】
次に、量子化学計算とその求解アルゴリズムについて説明する。量子化学計算は、分子シミュレーションの一種であり、分子構造や分子間相互作用を電子状態から解析する。量子化学計算は、材料開発の支援や医薬品開発の支援に用いられることがある。量子化学計算は、微視的な分子シミュレーションであり、解析精度が高いものの計算負荷が高い。
【0048】
量子化学計算は、シュレーディンガー方程式HΨ=EΨを解く。Hはハミルトニアン、Ψは波動関数、Eはエネルギーである。ハミルトニアンHは、対象の分子構造に依存する。波動関数Ψは電子の固有状態に相当し、エネルギーEはΨに対応する固有エネルギーに相当する。量子化学計算は、分子構造が安定しているときの基底エネルギーを算出する。ただし、シュレーディンガー方程式を直接解くことは難しい。
【0049】
そこで、量子化学計算は、波動関数Ψを基底関数で表現する。基底関数は、既知関数の線形結合である。基底関数に含まれる複数の項それぞれが、分子軌道に対応する。分子軌道は、分子に含まれる電子のうち何れか1つの電子が入る可能性のある場所である。量子化学計算は、分子に含まれる複数の原子の位置を示す分子情報、求解アルゴリズムおよび基底関数の指定をユーザから受け付け、指定された情報に基づいて基底エネルギーを算出する。ただし、第2の実施の形態では、求解アルゴリズムは指定されなくてもよい。情報処理装置100は、量子化学計算によってポテンシャルエネルギー曲線を生成する。
【0050】
ポテンシャルエネルギー曲線は、異なる原子間距離に対応するポテンシャルエネルギーを示す。ポテンシャルエネルギーは、各原子が静止していると仮定した場合に分子がもつエネルギーである。ポテンシャルエネルギー曲線の横軸は、原子間距離を表す。ポテンシャルエネルギー曲線の縦軸は、基底エネルギーを表す。
【0051】
距離の単位は、例えば、オングストローム(Å)である。エネルギーの単位は、例えば、ハートリーである。エネルギーは、一定範囲に含まれる離散的な複数の距離それぞれに対して算出され得る。それら複数の距離は、等間隔であってもよい。例えば、エネルギーは、0.9Åから2.8Åまで0.1Å間隔で算出される。算出されたエネルギーをプロットして線で結ぶことで、ポテンシャルエネルギー曲線が生成される。ポテンシャルエネルギー曲線の極小点は、分子の最も安定した状態を表すことがある。ポテンシャルエネルギー曲線の極大点は、分子の遷移状態を表すことがある。
【0052】
図3は、ポテンシャルエネルギー曲線の精度の例を示すグラフである。
第2の実施の形態では、量子化学計算のアルゴリズムとして、CCSD(T)とVQEを使い分けることを考える。ただし、CCSD(T)に代えてCISDまたはCCSDが使用されてもよい。また、
図3には、精度が極めて高いアルゴリズムとしてFCI(Full Configuration Interaction)も記載されている。
【0053】
曲線31は、FCIのみで生成されるポテンシャルエネルギー曲線である。曲線32は、CCSD(T)のみで生成されるポテンシャルエネルギー曲線である。曲線33は、VQEのみで生成されるポテンシャルエネルギー曲線である。
【0054】
FCIは、古典コンピュータでの実行を想定した古典アルゴリズムである。FCIは、指定された分子情報および基底関数のもとで、エネルギーの厳密解を求める。このため、FCIは、解の精度が高いものの実行時間が長い。FCIは、分子軌道数の階乗のオーダーの計算量をもつ。このため、規模の大きい分子のエネルギーをFCIで算出することは難しい。厳密解を求めるというFCIの性質上、FCIによって算出されるエネルギーは、正解のエネルギーと解釈されることがある。
【0055】
CCSD(T)は、古典コンピュータでの実行を想定した古典アルゴリズムである。CCSD(T)は、指定された分子情報および基底関数のもとで、エネルギーの近似解を求める。このため、CCSD(T)は、FCIよりも解の精度が低く、FCIよりも実行時間が短い。CCSD(T)は、分子軌道数の7乗のオーダーの計算量をもつ。なお、CCSDは、CCSD(T)よりも更に解の精度が低く実行時間が短い。
【0056】
CCSD(T)は、電子状態として、1電子励起および2電子励起がエネルギーに与える影響を厳密に計算し、3電子励起がエネルギーに与える影響を摂動から求める。CCSD(T)は、4電子励起以上の高次の電子励起の影響を無視する。CCSD(T)は、電子配置を変えながらエネルギーを繰り返し算出し、最小のエネルギーを探索する。CCSD(T)は、算出されるエネルギーが収束するまで反復計算を行う。例えば、CCSD(T)は、最新のエネルギーと1つ前のイテレーションで算出されたエネルギーとを比較し、両者の差が閾値未満になると反復処理を停止する。
【0057】
CCSD(T)は、原子間距離が小さい場合には、FCIに対して比較的良好な近似解を算出することが多い。一方、CCSD(T)は、原子間距離が大きい場合には、精度の低い近似解を算出することがある。これは、原子間距離が大きい場合、外側の分子軌道がエネルギーに与える影響が大きく、4電子励起以上の高次の電子励起の影響を無視するCCSD(T)では、近似解の誤差が大きくなるためである。また、CCSD(T)では、最終的に出力されるエネルギーの精度が低い場合には、収束までの反復回数も多くなる傾向がある。これは、反復計算を行っても近似解が正解値の近傍で変動し続けてしまい、近似解が安定的に正解値に向かって収束しないことがあるためである。
【0058】
VQEは、ゲート型の量子コンピュータでの実行を想定した量子アルゴリズムである。ただし、量子シミュレータを用いることで、古典コンピュータ上でVQEを実行することも可能である。量子シミュレータは、量子コンピュータの動作をソフトウェアによってシミュレートする。その場合、量子ビットが1ビット増加する毎に、古典コンピュータではメモリ使用量および計算量が2倍になる。第2の実施の形態では、量子シミュレータを用いてVQEを実行することを想定する。VQEの解の精度および実行時間は、FCIとCCSD(T)の中間である。すなわち、解の精度は、FCIより低くCCSD(T)より高い。実行時間は、FCIより短くCCSD(T)より長い。
【0059】
VQEは、指定された基底関数に基づいて、複数の量子ビットを用いて量子状態を生成する量子回路を形成する。この量子回路は、アンザッツ回路と呼ばれることがある。また、VQEは、指定された分子情報に対応するハミルトニアンに基づいて、量子状態からエネルギーを測定する量子回路を形成する。この量子回路は、測定回路と呼ばれることがある。量子回路は、量子ゲートの組み合わせにより記述される量子計算モデルである。量子コンピュータでは、物理的な量子ビットを用いて量子回路が実装される。量子シミュレータでは、擬似的な量子ビットデータがメモリに記憶され、擬似的な量子ゲート操作が古典プログラムを用いて実装される。
【0060】
VQEは、アンザッツ回路を用いて量子状態を生成し、測定回路を用いてエネルギーを測定する。個々の測定値は、ノイズや揺らぎの影響を受けている。VQEは、同一の電子配置に関して量子状態の生成およびエネルギーの測定を複数回行い、その平均値をエネルギーの期待値として算出する。VQEは、エネルギーの期待値が小さくなるように、量子状態を生成するためのパラメータ値を変更する。パラメータ値の変更は、電子配置の変更に相当する。VQEは、上記の処理を繰り返すことで、基底エネルギーを探索する。例えば、VQEは、エネルギーの期待値が収束するまで上記の処理を繰り返す。
【0061】
曲線32,33に示すように、原子間距離が大きいと、VQEと比べてCCSD(T)の精度が顕著に低くなることがある。なお、「古典コンピュータ」は、例えば、「量子コンピュータ」と対比されるノイマン型コンピュータである。「古典アルゴリズム」は、例えば、「量子アルゴリズム」と対比されるアルゴリズムであり、量子回路を用いない。
【0062】
図4は、原子間距離毎の実行時間の例を示すグラフである。
曲線34は、CCSD(T)を実行した際の距離と実行時間との関係を示す。曲線35は、VQEを実行した際の距離と実行時間との関係を示す。CCSD(T)の実行時間は短い。特に、距離が小さい場合、CCSD(T)の実行時間は無視できるほど小さい。一方、VQEの実行時間は、CCSD(T)と比べて顕著に長い。例えば、VQEの実行時間は、CCSD(T)の1000倍を超えることがある。
【0063】
また、距離が大きいほど、VQEの実行時間が長くなる傾向にある。これは、高精度のエネルギーを算出しようとすると、より外側の分子軌道まで考慮することになり、エネルギーの収束に長時間を要することが多いためである。点35aは、最大距離である距離2.8Åに対応する実行時間を示している。点35aは、曲線35の中の最長実行時間に相当し、例えば、その実行時間は450秒である。
【0064】
ここで、情報処理装置100は、ポテンシャルエネルギー曲線の生成に要する合計実行時間を無視できるわけではなく、ユーザから指定された制限時間以下でポテンシャルエネルギー曲線を生成することが求められることがある。
【0065】
そこで、情報処理装置100は、アルゴリズムの自動選択により、ユーザから指定された制限時間以下で、できる限り精度が高いポテンシャルエネルギー曲線を生成する。情報処理装置100は、小さい距離についてはCCSD(T)でエネルギーを算出し、大きい距離についてはVQEでエネルギーを算出する。このとき、CCSD(T)の精度が顕著に低下し始める距離は、分子の種類によって異なる。そこで、情報処理装置100は、距離の昇順にCCSD(T)を実行して実行結果を監視し、アルゴリズムをCCSD(T)からVQEに切り替える切替点を自動的に判定する。
【0066】
図5は、原子間距離毎の反復回数の例を示すグラフである。
曲線36は、距離とCCSD(T)の反復回数との関係を示す。前述のように、距離が大きいほど、CCSD(T)の精度が低くかつ反復回数が多い。CCSD(T)の精度が低下し始めるときは、CCSD(T)の反復回数が急激に増加する。
【0067】
そこで、情報処理装置100は、CCSD(T)が各距離のエネルギーを出力する際に、CCSD(T)の反復回数も測定して記録しておく。情報処理装置100は、CCSD(T)の反復回数を距離の昇順に走査し、反復回数が急激に増加したことを検出すると、CCSD(T)の精度が低下し始めたと判定する。
【0068】
例えば、情報処理装置100は、直近の一定個数の距離と反復回数(例えば、直近5個の距離と反復回数)から、最小二乗法によって回帰直線をフィッティングし、回帰直線の傾きを算出する。情報処理装置100は、最新の傾きが、1つ前の距離の時点で算出された傾きより大きいか判断する。情報処理装置100は、傾きが一定回数連続で増加した場合(例えば、3回連続で増加した場合)、最新の距離を切替点と判定する。
【0069】
情報処理装置100は、切替点以降の距離区間をVQE対象区間と判定する。VQE対象区間に含まれる各距離に対して、VQEが実行され得る。一方、切替点未満の各距離に対しては、VQEは実行されない。第2の実施の形態では、切替点はVQE対象区間に含まれる。切替点では、CCSD(T)とVQEの両方が実行される可能性がある。その場合、切替点におけるエネルギーとして、VQEによって算出されたエネルギーが採用される。ただし、切替点がVQE対象区間に含まれなくてもよい。
【0070】
曲線36の例では、距離1.3Åにおいて、距離0.9Å~1.3Åの反復回数から、傾きが0の回帰直線が算出される。距離1.4Åにおいて、距離1.0Å~1.4Åの反復回数から、傾きが正の回帰直線が算出される。距離1.5Åにおいて、距離1.1Å~1.5Åの反復回数から、距離1.4Åよりも傾きの大きい回帰直線が算出される。距離1.6Åにおいて、距離1.2Å~1.6Åの反復回数から、距離1.5Åよりも傾きの大きい回帰直線が算出される。そこで、情報処理装置100は、距離1.6Åに対応する点36aを切替点と判定し、点36a以降の距離区間をVQE対象区間と判定する。
【0071】
図6は、原子間距離毎の誤差および反復回数の傾きの例を示すグラフである。
曲線37は、FCIによって算出されるエネルギーに対する、CCSD(T)によって算出されるエネルギーの誤差の絶対値を示す。曲線37に示すように、CCSD(T)の誤差は、距離1.6Åから距離2.1Åにかけて急激に増加している。曲線38は、直近5点のCCSD(T)の反復回数の傾きを示す。曲線38に示すように、反復回数の傾きは、距離1.4Åから距離1.9Åまで連続して増加している。よって、情報処理装置100は、反復回数の傾きに基づいて、誤差が急激に増加し始めたことを検出できる。
【0072】
次に、ユーザから指定される制限時間とポテンシャルエネルギー曲線との関係について説明する。ポテンシャルエネルギー曲線の精度の観点からは、VQE対象区間に含まれる全ての距離のエネルギーをVQEで算出することが好ましい。しかし、指定された制限時間が短い場合、上記の全ての距離に対してVQEを実行することが難しいことがある。
【0073】
図7は、制限時間内でのVQE実行の第1の例を示すグラフである。
1つの方法として、情報処理装置100は、切替点から距離の昇順にVQEを実行し、合計実行時間が制限時間を超えた時点でエネルギーの算出を打ち切ることが考えられる。曲線41は、この方法によって生成されたポテンシャルエネルギー曲線である。
【0074】
曲線41の例では、制限時間が短いため、距離1.6Å、距離1.7Å、距離1.8Åおよび距離1.9Åの4つ距離に対してのみVQEが実行されている。その結果、距離2.0Å以降のエネルギーが全く描写されておらず、ポテンシャルエネルギー曲線の全体像が不明である。よって、曲線41はユーザのニーズを満たしているとは言えない。
【0075】
図8は、制限時間内でのVQE実行の第2の例を示すグラフである。
1つの方法として、情報処理装置100は、距離が大きいほどCCSD(T)の精度が低いことから、最大距離から距離の降順にVQEを実行し、合計実行時間が制限時間を超えた時点でVQEの実行を打ち切ることが考えられる。その場合、VQE対象区間の中でVQEが実行されなかった距離については、代替的にCCSD(T)が実行される。曲線42は、この方法によって生成されたポテンシャルエネルギー曲線である。
【0076】
曲線42の例では、制限時間が短いため、距離2.5Å、距離2.6Å、距離2.7Åおよび距離2.8Åの4つ距離に対してのみVQEが実行されている。VQE対象区間に含まれる距離1.6Åから距離2.4Åについては、CCSD(T)が実行されている。その結果、曲線42は、CCSD(T)が実行された距離2.4ÅとVQEが実行された距離2.5Åとの間で不連続となっており、不自然な曲線となっている。よって、曲線42はユーザに誤解を与える可能性があり、精度が高いとは言えない。
【0077】
そこで、情報処理装置100は、指定された制限時間に応じて、VQE対象区間の中から間欠的に一部の距離を間引いてVQEを実行する。これにより、情報処理装置100は、制限時間を遵守しつつ、ポテンシャルエネルギー曲線の全体像を描写する。
【0078】
まず、情報処理装置100は、VQE対象区間の中の最大距離でVQEを実行し、最大距離における実行時間を測定する。測定された実行時間は、距離1つ当たりのVQEの最大実行時間とみなされる。最大実行時間は、
図4に示した前述の曲線35の点35aに相当する。情報処理装置100は、最大実行時間に基づいて、制限時間内にVQEを実行できる距離の個数を算出する。情報処理装置100は、VQE対象区間の中から、算出された個数に応じて追加の距離を選択してVQEを実行する。
【0079】
VQE対象区間の中から距離を選択する方法としては、選択される距離が等間隔になる静的方法と、選択される距離が不等間隔になる動的方法とがある。動的方法は、1つの距離でVQEを実行し、その実行結果を参照して次の1つの距離を選択することを繰り返す。動的方法は、ポテンシャルエネルギー曲線の中でエネルギーの変化が大きい距離区間ほど多くの距離が選択されるように、距離間隔を動的に調整する。
【0080】
静的方法と動的方法とは、ユーザのニーズに応じて選択されてもよい。例えば、情報処理装置100は、ポテンシャルエネルギー曲線に含まれる点を等間隔にするか否かを示す等間隔フラグをユーザから受け付ける。等間隔フラグがONの場合、情報処理装置100は、静的方法でポテンシャルエネルギー曲線を生成する。等間隔フラグがOFFの場合、情報処理装置100は、動的方法でポテンシャルエネルギー曲線を生成する。
【0081】
図9は、等間隔のポテンシャルエネルギー曲線の例を示すグラフである。
情報処理装置100は、数式(1)に基づいてVQE回数を決定する。数式(1)において、N
vqeはVQE回数であり、VQEを実行できる距離の個数に相当する。floorは床関数であり、引数の値以下の最大の整数を出力する。T
limitは、ユーザから指定された制限時間である。T
ccsdは、切替点までに実行されたCCSD(T)の合計実行時間である。ただし、VQEと比べてCCSD(T)の実行時間が十分に短い場合、T
ccsd=0とみなしてもよい。T
vmaxは、最大距離におけるVQEの実行時間である。N
vqeの中には、最大距離でVQEを実行した1回分も含まれている。
【0082】
例えば、制限時間が1800秒であり、最大距離におけるVQEの実行時間が450秒であり、CCSD(T)の合計実行時間が0秒とみなされる場合を考える。この場合、数式(1)に基づいて、VQE回数は4回と決定される。決定された4回の中には実行済みの1回も含まれるため、残りVQE回数は3回である。
【0083】
【0084】
静的方法によれば、情報処理装置100は、数式(2)に基づいて距離間隔を決定する。数式(2)において、BvqeはVQEを実行する距離の間隔である。Dvmaxは最大距離であり、VQE対象区間に含まれる距離の最大値に相当する。Dvminは切替点の距離であり、VQE対象区間に含まれる距離の最小値に相当する。
【0085】
roundは、一定の桁未満を四捨五入する丸め関数である。ただし、丸め関数は、四捨五入ではなく、切り捨てまたは切り上げを行ってもよい。第2の実施の形態では、距離は0.1Å刻みの離散値であるため、roundは小数点以下1桁未満を四捨五入する。例えば、最大距離が2.8Åであり、切替点の距離が1.6Åであり、VQE回数が4回である場合を考える。この場合、数式(2)に基づいて、距離間隔は0.4と決定される。
【0086】
【0087】
情報処理装置100は、決定された距離間隔に基づいて、VQE対象区間の中から等間隔に距離を選択する。このとき、数式(2)のround関数の影響で端数距離が生じる可能性があるため、情報処理装置100は、数式(3)に基づいて端数距離cを算出する。例えば、最大距離が2.8Åであり、切替点の距離が1.6Åであり、VQE回数が4回であり、距離間隔が0.4Åである場合、端数距離は0である。
【0088】
【0089】
情報処理装置100は、数式(4)に基づいて、最大距離以外の残りの距離を等間隔に選択する。数式(4)において、nは1以上かつNvqe-1以下の整数である。よって、Nvqe-1個の距離がVQE対象として選択される。例えば、最大距離が2.8Åであり、端数距離が0であり、距離間隔が0.4Åである場合、VQE対象区間の中から、距離2.4Å、距離2.0Åおよび距離1.6Åが追加的に選択される。
【0090】
【0091】
また、等間隔フラグがONである場合、情報処理装置100は、切替点未満の距離区間についても、距離間隔Bvqeで距離を選択する。例えば、距離1.6ÅからBvqeだけ離れた距離1.2Åと、最小距離である距離0.9Åとが選択される。そして、情報処理装置100は、選択された距離について、CCSD(T)で算出されたエネルギーおよびVQEで算出されたエネルギーを線で結んで、ポテンシャルエネルギー曲線を生成する。曲線43は、このような静的方法で生成されたポテンシャルエネルギー曲線である。
【0092】
ただし、情報処理装置100は、CCSD(T)が実行された距離区間については、距離間隔Bvqeを適用せずに、全ての距離のエネルギーをプロットしたポテンシャルエネルギー曲線を生成してもよい。例えば、情報処理装置100は、距離0.9Åから距離1.5Åの間は0.1Å間隔で点を含むように、曲線43を変形してもよい。
【0093】
図10は、不等間隔のポテンシャルエネルギー曲線の例を示すグラフである。
動的方法によれば、情報処理装置100は、VQE対象区間を階層的に下位の対象区間に分割し、残りVQE回数を下位の対象区間に分配する。最上位の対象区間は、左端が切替点であり右端が最大距離であるVQE対象区間全体である。
【0094】
情報処理装置100は、ある対象区間について、左端と右端の中点における距離でVQEを実行する。左端と右端の中点が、事前に決められた離散値(例えば、0.1Å刻みの距離)の何れとも一致しない場合、情報処理装置100は、中点に最も近い距離、中点以下の距離の最大値、または、中点以上の距離の最小値でVQEを実行する。これによって、その対象区間の残りVQE回数が1だけ減少する。最上位の対象区間の場合、右端と中点でVQEが実行済みであるため、残りVQE回数がNvqe-2になる。
【0095】
情報処理装置100は、その対象区間の残りVQE回数を、数式(5)の連立方程式を解くことで、左端から中点までの左分割区間と、中点から右端までの右分割区間とに分配する。数式(5)において、Nresは対象区間の残りVQE回数であり、N1は左分割区間に分配される残りVQE回数であり、N2は右分割区間に分配される残りVQE回数である。dvi1は左分割区間のエネルギーの傾きであり、dvi2は右分割区間のエネルギーの傾きである。aは事前に決められる重み係数であり、a=1でもよい。
【0096】
傾きdvi1は、中点のエネルギーと左端のエネルギーとの差を、中点の距離と左端の距離との差で割ることで算出される。最上位の対象区間の場合、左端は切替点であり、左端のエネルギーとしてCCSD(T)のエネルギーが使用される。ただし、動的方法では、情報処理装置100は、最大距離に加えて切替点でVQEを実行するようにしてもよい。この場合、左端のエネルギーとしてVQEのエネルギーが使用される。
【0097】
傾きdvi2は、右端のエネルギーと中点のエネルギーとの差を、右端の距離と中点の距離との差で割ることで算出される。なお、数式(5)の解が整数でない場合、情報処理装置100は、VQE回数N1,N2を整数に丸める。その結果、VQE回数N1,N2のうちの一方が0になることがある。これにより、対象区間の残りVQE回数が、傾きに比例して2つの分割区間に分配される。情報処理装置100は、残りVQE回数が0になるまで、対象区間を階層的に分割する。
【0098】
【0099】
曲線44は、このような動的方法で生成されたポテンシャルエネルギー曲線である。まず、情報処理装置100は、左端である点44aと右端である点44bとの間の中点として点44cを選択し、点44cに対してVQEを実行する。点44aは1.6Åであり、点44bは2.8Åであるため、点44cは距離2.2Åである。
【0100】
この時点で、残りVQE回数は2である。次に、情報処理装置100は、この残りVQE回数を、点44aから点44cまでの左分割区間と、点44cから点44bまでの右分割区間とに分配する。ここでは、左分割区間の傾きが右分割区間よりも十分に大きく、情報処理装置100は、残りVQE回数を2:0に分配する。よって、右分割区間に対しては、これ以上VQEは実行されない。
【0101】
次に、情報処理装置100は、左端である点44aと右端である点44cとの間の中点として点44dを選択し、点44dに対してVQEを実行する。点44aは1.6Åであり、点44cは2.2Åであるため、点44dは距離1.9Åである。
【0102】
この時点で、残りVQE回数は1である。次に、情報処理装置100は、この残りVQE回数を、点44aから点44dまでの左分割区間と、点44dから点44cまでの右分割区間とに分配する。ここでは、左分割区間の傾きが右分割区間よりも十分に大きく、情報処理装置100は、残りVQE回数を1:0に分配する。よって、右分割区間に対しては、これ以上VQEは実行されない。
【0103】
次に、情報処理装置100は、左端である点44aと右端である点44dとの間の中点として点44eを選択し、点44eに対してVQEを実行する。点44aは1.6Åであり、点44dは1.9Åであるため、点44eは距離1.7Åである。この時点で、残りVQE回数は0である。よって、VQEの実行が終了する。このように、動的方法では、エネルギーの変化が大きい距離区間ほど距離間隔が短くなるため、エネルギーの変化を理解しやすい自然なポテンシャルエネルギー曲線が生成される。
【0104】
次に、情報処理装置100の機能および処理手順について説明する。
図11は、情報処理装置の機能例を示すブロック図である。
情報処理装置100は、分子情報記憶部121および制御データ記憶部122を有する。これらの記憶部は、例えば、RAM102またはHDD103を用いて実装される。また、情報処理装置100は、CCSD実行部123、VQE実行部124、アルゴリズム制御部125およびエネルギー可視化部126を有する。これらの処理部は、例えば、CPU101およびプログラムを用いて実装される。なお、CCSD実行部123およびVQE実行部124の一方または両方が、他の情報処理装置に分離されてもよい。
【0105】
分子情報記憶部121は、分子情報を記憶する。分子情報は、シミュレーション対象の分子に含まれる原子の種類および位置座標を含む。各原子の位置座標は、着目する2つの原子の距離に応じて修正され得る。また、分子情報記憶部121は、ユーザが指定した基底関数を記憶する。基底関数は、通常、分子の種類や分子シミュレーションの目的に応じて、既知の基底関数群の中からユーザによって選択される。
【0106】
制御データ記憶部122は、ポテンシャルエネルギー曲線の横軸に並ぶ離散値に相当する複数の距離を記憶する。また、制御データ記憶部122は、距離と対応付けて、CCSD(T)によって算出されたエネルギーおよびVQEによって算出されたエネルギーを記憶する。ただし、全ての距離に対してエネルギーが算出されるとは限らない。また、制御データ記憶部122は、距離と対応付けて、CCSD(T)の反復回数を記憶する。また、制御データ記憶部122は、最大距離におけるVQEの実行時間を記憶する。
【0107】
CCSD実行部123は、アルゴリズム制御部125からの指示に応じて、指定された分子情報および基底関数に基づいてCCSD(T)を実行する。ただし、CCSD実行部123は、CCSDを実行してもよい。CCSD実行部123は、1つの距離に対応する分子情報毎に、基底エネルギーを算出してアルゴリズム制御部125に出力する。また、CCSD実行部123は、反復回数を測定してアルゴリズム制御部125に通知する。
【0108】
VQE実行部124は、アルゴリズム制御部125からの指示に応じて、指定された分子情報および基底関数に基づいてVQEを実行する。VQE実行部124は、分子情報および基底関数に基づいて、量子回路を生成してエネルギーを測定することを繰り返す。VQE実行部124は、1つの距離に対応する分子情報毎に、基底エネルギーを算出してアルゴリズム制御部125に出力する。
【0109】
アルゴリズム制御部125は、制限時間および等間隔フラグの指定をユーザから受け付ける。アルゴリズム制御部125は、指定された制限時間以内にポテンシャルエネルギー曲線が出力されるように、CCSD(T)によってエネルギーを算出する距離と、VQEによってエネルギーを算出する距離とを選択する。
【0110】
まず、アルゴリズム制御部125は、距離の小さい順にCCSD実行部123を呼び出す。アルゴリズム制御部125は、CCSD実行部123で測定された反復回数の傾きを監視し、傾きが一定回数連続で増加した場合、その時点の距離を切替点と判定し、切替点以降の距離区間をVQE対象区間と判定する。
【0111】
アルゴリズム制御部125は、CCSD(T)およびVQEの合計実行時間が制限時間を超えないように、VQE回数を決定する。アルゴリズム制御部125は、決定されたVQE回数だけVQEが実行されるように、VQE対象区間の中から距離を選択し、選択された距離に関してVQE実行部124を呼び出す。このとき、アルゴリズム制御部125は、等間隔フラグに応じて異なる方法で距離を選択する。
【0112】
エネルギー可視化部126は、制御データ記憶部122から距離とエネルギーのペアを複数個読み出し、読み出されたペアをプロットすることでポテンシャルエネルギー曲線を生成する。このとき、同一の距離に対してCCSD(T)のエネルギーとVQEのエネルギーの両方が算出されている場合、エネルギー可視化部126は、VQEのエネルギーを使用する。また、等間隔フラグがONである場合、エネルギー可視化部126は、CCSD(T)の距離間隔がVQEの距離間隔と同じになるように、点を間引く。
【0113】
エネルギー可視化部126は、生成されたポテンシャルエネルギー曲線を出力する。エネルギー可視化部126は、ポテンシャルエネルギー曲線を不揮発性ストレージに保存してもよいし、表示装置111に表示してもよいし、他の情報処理装置に送信してもよい。
【0114】
図12は、実行結果テーブルの例を示す図である。
実行結果テーブル127は、制御データ記憶部122に記憶される。実行結果テーブル127は、距離、CCSD(T)エネルギー、VQEエネルギー、CCSD(T)反復回数および実行時間を対応付ける。実行結果テーブル127は、エネルギーが算出され得る複数の距離に対応する複数のレコードを含む。
【0115】
CCSD(T)エネルギーは、CCSD(T)によって算出されたエネルギーである。複数の距離のうちの少なくとも一部のエネルギーが、CCSD(T)によって算出される。VQEエネルギーは、VQEによって算出されたエネルギーである。複数の距離のうちの少なくとも一部のエネルギーが、VQEによって算出される。切替点に相当する距離のエネルギーは、CCSD(T)とVQEの両方によって算出されることがある。
【0116】
CCSD(T)反復回数は、CCSD(T)がエネルギーを算出した際にエネルギーが収束するまでに要した反復処理の回数である。実行結果テーブル127に記録される実行時間は、CCSD(T)が実行された距離についてはCCSD(T)の実行時間であり、最大距離についてはVQEの実行時間である。
【0117】
図13は、分子シミュレーションの手順例を示すフローチャートである。
(S10)アルゴリズム制御部125は、分子情報、基底関数、距離リスト、制限時間および等間隔フラグを取得する。距離リストは、複数の距離を含む。
【0118】
(S11)アルゴリズム制御部125は、距離リストに含まれる未選択の距離のうち、小さい方から優先的に1つの距離を選択する。
(S12)CCSD実行部123は、ステップS11で選択された距離に対してCCSD(T)を実行し、反復回数および実行時間を測定する。
【0119】
(S13)アルゴリズム制御部125は、CCSD(T)をW回以上実行したか判断する。Wは2以上の整数であり、例えば、W=5である。CCSD(T)をW回以上実行した場合はステップS14に処理が進み、それ以外の場合はステップS11に処理が戻る。
【0120】
(S14)アルゴリズム制御部125は、直近W個の反復回数から最小二乗法により回帰直線を生成し、回帰直線の傾きを算出する。
(S15)アルゴリズム制御部125は、ステップS14の傾きがT回連続で増加したか判断する。Tは2以上の整数であり、例えば、T=3である。傾きがT回連続で増加した場合、ステップS16に処理が進む。傾きの算出回数がT回未満であるか、または、直近T回の傾きが単調に増加していない場合、ステップS11に処理が戻る。
【0121】
(S16)アルゴリズム制御部125は、現在の距離を切替点と判定する。
(S17)VQE実行部124は、距離リストに含まれる複数の距離のうちの最大距離に対してVQEを実行し、実行時間を測定する。
【0122】
(S18)アルゴリズム制御部125は、制限時間とステップS17の実行時間とから、制限時間内に実行できると見込まれる最大のVQE回数を決定する。
(S19)アルゴリズム制御部125は、等間隔フラグがONであるか判断する。等間隔フラグがONの場合、ステップS20に処理が進み、静的方法によりVQE対象の距離が選択される。等間隔フラグがOFFの場合、ステップS23に処理が進み、動的方法によりVQE対象の距離が選択される。
【0123】
(S20)アルゴリズム制御部125は、切替点に相当する距離と、距離リストの中の最大距離と、ステップS18で決定されたVQE回数とから、距離間隔を決定する。
(S21)アルゴリズム制御部125は、切替点以降のVQE対象区間の中から、ステップS20で算出された距離間隔で距離を選択する。VQE実行部124は、選択された距離それぞれに対してVQEを実行する。
【0124】
(S22)エネルギー可視化部126は、ステップS12でCCSD(T)により算出されたエネルギーを、ステップS20で決定された距離間隔でエネルギーが残るように間引く。そして、ステップS33に処理が進む。
【0125】
図14は、分子シミュレーションの手順例を示すフローチャート(続き)である。
(S23)アルゴリズム制御部125は、残りVQE回数と、左端の距離およびエネルギーと、右端の距離およびエネルギーとを含むレコードを、実行リストに保存する。ここでは、残りVQE回数は、ステップS18で決定されたVQE回数より1だけ少ない回数である。左端の距離は、切替点における距離であり、左端のエネルギーは、切替点に対してCCSD(T)により算出されたエネルギーである。右端の距離は、最大距離であり、右端のエネルギーは、ステップS17で算出されたエネルギーである。
【0126】
(S24)アルゴリズム制御部125は、実行リストにレコードがあるか判断する。実行リストにレコードがある場合はステップS27に処理が進み、実行リストが空である場合はステップS25に処理が進む。
【0127】
(S25)アルゴリズム制御部125は、退避リストに少なくとも1つのレコードがあるか判断する。退避リストにレコードがある場合はステップS26に処理が進み、退避リストが空である場合はステップS33に処理が進む。
【0128】
(S26)アルゴリズム制御部125は、退避リストの先頭からレコードを1つ抽出し、抽出されたレコードを実行リストに移動する。
(S27)アルゴリズム制御部125は、実行リストからレコードを抽出し、レコードが示す対象区間の中点を算出する。対象区間は、左端の距離と右端の距離とによって特定される。VQE実行部124は、中点に相当する距離に対してVQEを実行する。
【0129】
(S28)アルゴリズム制御部125は、対象区間の残りVQE回数を1だけ減らす。アルゴリズム制御部125は、更新後の残りVQE回数が0より大きいか判断する。残りVQE回数が0より大きい場合はステップS29に処理が進み、残りVQE回数が0である場合はステップS24に処理が戻る。
【0130】
(S29)アルゴリズム制御部125は、ステップS27で算出されたエネルギーに基づいて、左端から中点までの左分割区間の傾きと、中点から右端までの右分割区間の傾きとを算出する。アルゴリズム制御部125は、2つの傾きに基づいて、残りVQE回数を左分割区間と右分割区間とに分配する。
【0131】
(S30)アルゴリズム制御部125は、左分割区間と右分割区間のうち、分配された残りVQE回数が多い方の分割区間を示すレコードを、実行リストに保存する。
(S31)アルゴリズム制御部125は、残りVQE回数が少ない方の分割区間の残りVQE回数が0より大きいか判断する。残りVQE回数が0より大きい場合はステップS32に処理が進み、残りVQE回数が0である場合はステップS24に処理が戻る。
【0132】
(S32)アルゴリズム制御部125は、残りVQE回数が少ない方の分割区間を示すレコードを、退避リストに保存する。そして、ステップS24に処理が戻る。
(S33)エネルギー可視化部126は、CCSD(T)により算出されたエネルギーとVQEにより算出されたエネルギーとをプロットして、ポテンシャルエネルギー曲線を生成し、生成されたポテンシャルエネルギー曲線を表示する。
【0133】
以上説明したように、第2の実施の形態の情報処理装置100は、量子化学計算により、原子間距離と分子のポテンシャルエネルギーとの関係を示すポテンシャルエネルギー曲線を生成する。これにより、情報処理装置100は、分子の特性について有用な情報を提供することができ、材料開発や医薬品開発などの研究開発を支援することができる。
【0134】
また、情報処理装置100は、小さい原子間距離について、実行時間の短い古典アルゴリズムでエネルギーを算出し、大きい原子間距離について、精度の高いVQEでエネルギーを算出する。これにより、情報処理装置100は、精度と実行時間のバランスを図り、ポテンシャルエネルギー曲線を効率的に生成することができる。
【0135】
また、情報処理装置100は、古典アルゴリズムの反復回数が急激に増加する切替点を検出し、切替点以降の距離区間をVQE対象区間と判定する。これにより、古典アルゴリズムでは精度が低くなる原子間距離が自動的に判定され、VQEによってエネルギーを算出した方が好ましい原子間距離がVQE対象区間から外れてしまうリスクが低下する。
【0136】
また、情報処理装置100は、合計実行時間が制限時間以下に収まるように、VQE対象区間に含まれる原子間距離を間引いてVQEを実行する。これにより、ポテンシャルエネルギーの変化の全体像が描写され、ユーザのニーズに適合したポテンシャルエネルギー曲線が生成される。また、古典アルゴリズムによって算出された低精度のエネルギーとVQEによって算出された高精度のエネルギーとが不連続になるような不自然なポテンシャルエネルギー曲線が生成されるリスクが低下する。
【0137】
また、情報処理装置100は、最大距離でVQEを実行し、最大距離における実行時間を距離1つ当たりのVQEの最大実行時間とみなす。これにより、情報処理装置100は、VQEの実行時間を簡便的に見積もることができる。また、情報処理装置100は、ユーザから指定された等間隔フラグに応じて、等間隔に原子間距離を選択する静的方法と、エネルギーの変化が大きい区間の原子間距離を重点的に選択する動的方法とを切り替える。これにより、ユーザのニーズに適合するポテンシャルエネルギー曲線が生成される。また、動的方法によれば、ポテンシャルエネルギー曲線の精度が向上する。
【符号の説明】
【0138】
10 情報処理装置
11 記憶部
12 処理部
13 分子情報
14 アルゴリズム
15a,15b,15c,15d,15e 原子間距離
16 実行時間
17 個数
18 間隔