(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024057517
(43)【公開日】2024-04-24
(54)【発明の名称】抽出プログラム、抽出方法および情報処理装置
(51)【国際特許分類】
G06F 16/907 20190101AFI20240417BHJP
【FI】
G06F16/907
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022164320
(22)【出願日】2022-10-12
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】松田 一仁
(72)【発明者】
【氏名】笠置 明彦
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA06
5B175GB01
5B175HB03
5B175KA04
(57)【要約】
【課題】量子化学計算の効率性向上を支援する。
【解決手段】実施形態の抽出プログラムは、特定する処理と、算出する処理と、抽出する処理とをコンピュータに実行させる。特定する処理は、複数の分子それぞれにハッシュ値を対応付けて記憶する記憶部の中から対象分子に対応するハッシュ値を含む複数の第1の分子を特定する。算出する処理は、対象分子と、複数の第1の分子とについて、それぞれが有する原子を特定の基準に基づいて配置した際の、対象分子と複数の第1の分子とのハミング距離を算出する。抽出する処理は、算出したハミング距離に基づいて複数の第1の分子の中から第2の分子を抽出する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
複数の分子それぞれにハッシュ値を対応付けて記憶する記憶部の中から対象分子に対応するハッシュ値を含む複数の第1の分子を特定し、
前記対象分子と、複数の前記第1の分子とについて、それぞれが有する原子を特定の基準に基づいて配置した際の、前記対象分子と複数の前記第1の分子とのハミング距離を算出し、
算出した前記ハミング距離に基づいて複数の前記第1の分子の中から第2の分子を抽出する、
処理をコンピュータに実行させることを特徴とする抽出プログラム。
【請求項2】
前記算出する処理は、さらに、分子に含まれる原子間のユークリッド距離に基づいて前記対象分子と複数の前記第2の分子との近似度を算出し、
前記抽出する処理は、さらに、算出した前記近似度に基づいて、抽出した複数の前記第2の分子の中から第3の分子を抽出する、
ことを特徴とする請求項1に記載の抽出プログラム。
【請求項3】
前記基準は、分子に含まれる最小の原子番号の原子であり、
前記ハミング距離を算出する処理は、前記対象分子と、複数の前記第1の分子とについて、前記最小の原子番号の原子からの距離が短い原子の順にそれぞれが有する原子を配置する、
ことを特徴とする請求項1に記載の抽出プログラム。
【請求項4】
前記記憶部は、さらに、前記複数の分子にそれぞれに対応するパラメータを記憶し、
前記抽出する処理が抽出した分子に対応する前記パラメータに基づいて前記対象分子にかかる量子化学計算を行う処理をさらに前記コンピュータに実行させる、
ことを特徴とする請求項1に記載の抽出プログラム。
【請求項5】
前記量子化学計算を行うことで、前記対象分子のポテンシャルエネルギーを求め、求められた前記ポテンシャルエネルギーを用いて、前記対象分子のポテンシャルエネルギー曲線を求める、
ことを特徴とする請求項4に記載の抽出プログラム。
【請求項6】
前記抽出する処理は、複数の前記第1の分子の中から算出した前記ハミング距離が閾値以下の分子を前記第2の分子として抽出する、
ことを特徴とする請求項1に記載の抽出プログラム。
【請求項7】
複数の分子それぞれにハッシュ値を対応付けて記憶する記憶部の中から対象分子に対応するハッシュ値を含む複数の第1の分子を特定し、
前記対象分子と、複数の前記第1の分子とについて、それぞれが有する原子を特定の基準に基づいて配置した際の、前記対象分子と複数の前記第1の分子とのハミング距離を算出し、
算出した前記ハミング距離に基づいて複数の前記第1の分子の中から第2の分子を抽出する、
処理をコンピュータが実行することを特徴とする抽出方法。
【請求項8】
複数の分子それぞれにハッシュ値を対応付けて記憶する記憶部の中から対象分子に対応するハッシュ値を含む複数の第1の分子を特定し、
前記対象分子と、複数の前記第1の分子とについて、それぞれが有する原子を特定の基準に基づいて配置した際の、前記対象分子と複数の前記第1の分子とのハミング距離を算出し、
算出した前記ハミング距離に基づいて複数の前記第1の分子の中から第2の分子を抽出する、
処理を実行する制御部を含むことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、抽出プログラム、抽出方法および情報処理装置に関する。
【背景技術】
【0002】
近年、創薬や新材料の発見などにおいて、対象分子の化学的な特性を把握する上で、対象分子のポテンシャルエネルギー曲線(PEC)を求める量子化学計算の重要性が高まっている。
【0003】
この量子化学計算については、古典アルゴリズムのCCSD(T)(Coupled-Cluster Singles-and-Doubles(-and-Triple))や量子コンピュータでの実行を想定した量子アルゴリズムのVQE(Variational Quantum Eigensolver)などが従来技術として知られている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
CCSD(T)やVQEにおける量子化学計算では、あるパラメータθにおけるエネルギーを計算し,より小さなエネルギー状態(基底状態)に収束するようθを変化させつつイタレーションを行う。このため、対象分子の基底状態に近いθを初期値として用いることで、イタレーション回数を削減して効率的に量子化学計算を行うことができる。しかしながら、対象分子の基底状態に近いθを初期値として設定することは、困難であるという問題がある。
【0006】
例えば、蓄積された多数の量子化学計算の試行結果から現試行(対象分子)と近いものを得ようとする場合、「三次元空間にマッピングされた複数原子を有する構造」が互いに近いかどうかを検証する必要があるが、構造が近似しているか否かを判定することは、容易ではない。
【0007】
1つの側面では、量子化学計算の効率性向上を支援できる抽出プログラム、抽出方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
1つの案では、抽出プログラムは、特定する処理と、算出する処理と、抽出する処理とをコンピュータに実行させる。特定する処理は、複数の分子それぞれにハッシュ値を対応付けて記憶する記憶部の中から対象分子に対応するハッシュ値を含む複数の第1の分子を特定する。算出する処理は、対象分子と、複数の第1の分子とについて、それぞれが有する原子を特定の基準に基づいて配置した際の、対象分子と複数の第1の分子とのハミング距離を算出する。抽出する処理は、算出したハミング距離に基づいて複数の第1の分子の中から第2の分子を抽出する。
【発明の効果】
【0009】
量子化学計算の効率性向上を支援できる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、実施形態にかかる情報処理装置の機能構成例を示すブロック図である。
【
図2】
図2は、実施形態にかかる情報処理装置の格納処理の一例を示すフローチャートである。
【
図3】
図3は、実施形態にかかる情報処理装置の動作例を示すフローチャートである。
【
図4】
図4は、ハッシュ値による検索処理の一例を示すフローチャートである。
【
図5】
図5は、ハミング距離によるスコアリングの概要を説明する説明図である。
【
図6】
図6は、ハミング距離によるスコアリング処理の一例を示すフローチャートである。
【
図7】
図7は、ユークリッド距離によるスコアリングの概要を説明する説明図である。
【
図8】
図8は、ユークリッド距離によるスコアリング処理の一例を示すフローチャートである。
【
図9】
図9は、コンピュータ構成の一例を説明する説明図である。
【発明を実施するための形態】
【0011】
以下、図面を参照して、実施形態にかかる抽出プログラム、抽出方法および情報処理装置を説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明する抽出プログラム、抽出方法および情報処理装置は、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の各実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。
【0012】
図1は、実施形態にかかる情報処理装置の機能構成例を示すブロック図である。
図1に示すように、情報処理装置1は、通信部10と、入力部20と、表示部30と、記憶部40と、制御部50とを有する。
【0013】
通信部10は、ネットワークを介して外部装置から各種のデータを受信する。通信部10は、通信装置の一例である。たとえば、通信部10は、格納クエリ、検索クエリなどの処理要求や設定情報41などを、外部装置から受信してもよい。
【0014】
入力部20は、情報処理装置1の制御部50に各種の情報を入力する入力装置である。入力部20は、キーボードやマウス、タッチパネル等に対応する。たとえば、入力部20は、ユーザからの入力操作により、格納クエリ、検索クエリなどの処理要求や設定情報41などを受け付ける。
【0015】
表示部30は、制御部50から出力される情報を表示する表示装置である。たとえば、表示部30は、制御部50の制御のもと、検索結果43などを表示する。
【0016】
記憶部40は、設定情報41、ハッシュ値インデックスDB42および検索結果43を格納する。記憶部40は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
【0017】
設定情報41は、制御部50における格納部51、検索部52、スコアリング部53および量子化学計算部54が各種処理を行う際に用いられる設定値やデータの対応関係などが記述されたデータである。例えば、設定情報41には、設定値として、判定処理などに用いる閾値が含まれる。また、設定情報41には、VQEに用いる量子回路(ansatz)を識別子(ansatz識別子)に変換(逆変換も含む)するためのansatz->識別子の対応関係を示すデータテーブルなどが含まれる。
【0018】
ハッシュ値インデックスDB42は、複数の分子それぞれにハッシュ値を対応付けて記憶するデータベースである。すなわち、ハッシュ値インデックスDB42は、記憶部の一例である。具体的には、ハッシュ値インデックスDB42は、量子化学計算済みの複数の分子それぞれについて、ハッシュ値をインデックスとして対応付けたうえで、分子構造と量子化学計算のパラメータリスト(ansatz,θ)とを格納している。
【0019】
ここで、分子構造は、例えば[原子の種類,3次元座標情報(X,Y,Z)]([]はリストを表す)として表記されるデータであり、分子内の原子の3次元構造を示している。例えば、H2の分子構造は、[(H,(0.0,0.0,0.0)),(H,(0.0,0.0,0.1))]と表記される。
【0020】
また、量子化学計算のパラメータリスト(ansatz,θ)に含まれるパラメータθは、ansatzによって要素数が決定される。たとえば、ansatzが「Two Local」である場合、パラメータリストは(’Two Local’,(0.1,0.3,-0.2,0.01))などとなる。
【0021】
検索結果43は、検索クエリをもとに検索部52がハッシュ値インデックスDB42の検索を行った結果を示すデータである。例えば、検索結果43は、[(分子構造,パラメータリスト,スコア)]などのデータ構造となっている。ここで、分子構造は、検索クエリに該当する分子としてハッシュ値インデックスDB42より得られた分子構造である。パラメータリストは、その分子構造についてハッシュ値インデックスDB42より得られた計算済みの量子化学計算のパラメータリストである。スコアは、検索時に得られたスコア値である。
【0022】
制御部50は、格納部51と、検索部52と、スコアリング部53と、量子化学計算部54とを有する。制御部50は、例えばCPU(Central Processing Unit)やGPU(Graphics Processing Unit)、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジック等によって実現される。
【0023】
格納部51は、格納クエリに基づいてハッシュ値インデックスDB42へデータを格納する処理部である。ここで、格納クエリは、量子化学計算済みの分子における分子構造と、量子化学計算のパラメータリストとが含まれる。例えば、ユーザは、量子化学計算を行った際に、これらのデータを含む格納クエリを通知することで、量子化学計算済みの分子のデータをハッシュ値インデックスDB42へ順次蓄積する。
【0024】
図2は、実施形態にかかる情報処理装置の格納処理の一例を示すフローチャートである。
図2に示すように、格納部51は、格納クエリの受け付けにより処理を開始する。まず、格納部51は、格納クエリ(パラメータリスト)に含まれるansatzをansatz->識別子の対応関係を示すデータテーブルをもとに識別子(ansatz識別子)に変換する(S1)。
【0025】
ついで、格納部51は、格納クエリ(分子構造)に含まれる原子群を原子番号順にソートする(S2)。ついで、格納部51は、ソートした原子の羅列の先頭にansatz識別子を付与し、ハッシュ値を計算する(S3)。
【0026】
ついで、格納部51は、計算したハッシュ値をインデックスにもつハッシュ値インデックスDB42に格納クエリに含まれる分子構造・パラメータ(パラメータリスト)を保存し(S4)、処理を終了する。
【0027】
一例として、格納クエリに含まれる分子構造が「HCHH」であり、ansatz識別子「1」である場合、格納部51は、「HCHH」を原子番号順に「HHHC」に変換する。ついで、格納部51は、ハッシュ値h(1HHHC)を計算し、インデックス(ハッシュ値h(HHHC))->[分子構造,パラメータリスト]としてハッシュ値インデックスDB42に保存する。
【0028】
図1に戻り、検索部52は、検索クエリをもとに、ハッシュ値インデックスDB42に保存された分子の中から該当する分子を検索(抽出)する処理部である(詳細は後述する)。ここで、検索クエリは、対象分子に関する分子構造と、対象分子の量子化学計算に用いるansatzが含まれる。例えば、ユーザは、対象分子の量子化学計算を行う際に、これらのデータを含むクエリを量子化学計算部54と検索部52に通知する。検索部52は、このクエリ(検索クエリ)をもとに検索して得られた検索結果43を出力(例えば検索結果43へ格納)する。
【0029】
スコアリング部53は、検索部52の検索時に用いられるハミング距離、ユークリッド距離などのスコア値を算出する処理部である(詳細は後述する)。
【0030】
量子化学計算部54は、対象分子に関する分子構造と、対象分子の量子化学計算に用いるansatzとを含む計算クエリをもとに、対象分子に関する量子化学計算を行う処理部である。ここで、量子化学計算部54は、計算クエリとともに通知された検索クエリによって検索部52が検索した検索結果43をもとに、検索部52が抽出した分子に対応するパラメータに基づいて対象分子にかかる量子化学計算を行う。具体的には、量子化学計算部54は、検索部52が抽出した分子に対応する量子化学計算のパラメータ(θ)をハッシュ値インデックスDB42より読み出し、そのパラメータ(θ)を初期値として用いて量子化学計算を行う。量子化学計算部54は、この量子化学計算により、対象分子のポテンシャルエネルギーを求め、求められたポテンシャルエネルギーを用いて、対象分子のポテンシャルエネルギー曲線を求める。
【0031】
図3は、実施形態にかかる情報処理装置の動作例を示すフローチャートである。
図3に示すように、情報処理装置1は、検索クエリ(計算クエリ)の受け付けにより処理を開始する。
【0032】
処理を開始すると、検索部52は、格納クエリに含まれる分子構造の原子群を原子番号順にソートした上でハッシュ値によるハッシュ値インデックスDB42の検索を行う(S10)。
【0033】
図4は、ハッシュ値による検索処理の一例を示すフローチャートである。
図4に示すように、処理(S10)が開始されると、検索部52は、検索クエリに含まれるansatzをansatz->識別子の対応関係を示すデータテーブルをもとに識別子(ansatz識別子)に変換する(S20)。
【0034】
ついで、検索部52は、検索クエリに含まれる分子構造の原子群を原子番号順にソートする(S21)。ついで、検索部52は、ソートした原子の羅列の先頭にansatz識別子を付与し、ハッシュ値を計算する(S22)。
【0035】
ついで、検索部52は、ハッシュ値インデックスDB42を参照し、計算したハッシュ値をインデックスにもつDBに含まれる要素(分子構造と量子化学計算のパラメータリスト(ansatz,θ))を候補リストに加える(S23)。このように、検索部52は、ハッシュ値インデックスDB42の中から対象分子に対応するハッシュ値を含む複数の分子を特定して候補リストに加える。
【0036】
図3に戻り、S10についで、スコアリング部53は、対象分子と、候補リストに含まれる分子それぞれとについて、それぞれが有する原子を特定の基準に基づいて配置した際の、分子間のハミング距離を計算する。検索部52は、スコアリング部53が計算したハミング距離により候補リストに含まれる分子それぞれをスコアリングし(S11)、このスコアに応じて候補リストに含まれる分子を抽出(昇順にソート)する。
【0037】
図5は、ハミング距離によるスコアリングの概要を説明する説明図である。
図5に示すように、検索クエリQの分子構造は「HOCC」とする。また、候補リストに含まれる候補(分子)Xの分子構造は「CHOC」、候補(分子)Yの分子構造は「OHCC」とする。
【0038】
ここで、原子番号が最も小さい原子を軸(基準)に距離順に整列すると、検索クエリQは「HOCC」となる。同様に、候補Xは「HCOC」、候補Yは「HOCC」となる。スコアリング部53は、このように原子を整列したうえで、検索クエリQの「HOCC」に対する候補Xの「HCOC」と、候補Yの「HOCC」とのハミング距離を求める。なお、ハミング距離とは、例えば、検索クエリQの対象分子と候補分子とをそれぞれ、上述した基準に従って整列した際に、対応する位置にある異なった原子の数を示したものである。
【0039】
検索部52は、このように得られたハミング距離をもとに、候補X、Yを距離の近い順に抽出して候補リストを並び替える。具体的には、検索クエリQの分子構造に対する候補Xのハミング距離が2、候補Yのハミング距離が0であることから、検索部52は、候補X<候補Yとして並び替える。
【0040】
図6は、ハミング距離によるスコアリング処理の一例を示すフローチャートである。
図6に示すように、処理が開始されると、スコアリング部53は、検索クエリQに含まれる分子のうち原子番号がもっとも小さい原子のうち1つを基準とする(S30)。
【0041】
ついで、スコアリング部53は、検索クエリQに含まれる分子構造の3次元座標情報をもとに、基準原子からその他の原子へのユークリッド距離を計算し、原子を昇順(ユークリッド距離の)にソートする(S31)。
【0042】
ついで、スコアリング部53は、候補リストに含まれる全ての候補を処理するまでのループ処理(L1)を実行する(S32~S39)。
【0043】
ループ処理(L1)が開始されると、スコアリング部53は、候補に含まれる原子のうち原子番号がもっとも小さい原子にIDを振る(S33)。
【0044】
ついで、スコアリング部53は、IDを振った全原子を処理するまでのループ処理(L2)を実行する(S34~S38)。ループ処理(L2)が開始されると、スコアリング部53は、IDを振った原子の1つを基準に設定する(S35)。
【0045】
ついで、スコアリング部53は、候補の分子構造の3次元座標情報をもとに、S35で設定した基準原子からその他の原子へのユークリッド距離を計算し、原子を昇順(ユークリッド距離の)にソートする(S36)。
【0046】
ついで、スコアリング部53は、S31においてクエリのソートした分子と、S36においてソートした分子とのハミング距離を計算し、候補に対応付けて記録する(S37)。
【0047】
上述したループ処理(L1、L2)の後、検索部52は、候補に対応付けて記録したハミング距離をもとに候補を抽出することで、ハミング距離で昇順にソートし、スコア付き候補リストとする(S40)。ここで、検索部52は、設定情報41などに予め設定された閾値に基づいて、ハミング距離が閾値以下の候補(分子)のみを抽出してよい。すなわち、検索部52は、対象分子とのハミング距離がより近い分子への絞り込み(ハミング距離が遠い候補の足切)を行ってもよい。
【0048】
図3に戻り、S11についで、スコアリング部53は、分子に含まれる原子間のユークリッド距離に基づいて検索クエリQにおける対象分子と、候補リストに含まれる複数の分子との近似度(ユークリッド距離長の差)を算出する。検索部52は、スコアリング部53が計算した近似度により候補リストに含まれる分子それぞれをスコアリングし(S12)、このスコアに応じて候補リストに含まれる分子を抽出(昇順にソート)する。
【0049】
なお、S12におけるスコアリングは、ハミング距離におけるスコアが同値である候補(分子)を対象としてもよい。また、ハミング距離におけるスコアと、近似度によるスコアとの合計値でスコアリングしてもよい。
【0050】
図7は、ユークリッド距離によるスコアリングの概要を説明する説明図である。
図7に示すように、検索クエリQの分子構造は「HOCC」とする。また、この分子構造における原子間ユークリッド距離は、次のとおりとする。
H-O:1.0
H-C:2.0
H-C:3.0
C-C:1.0
【0051】
候補リストに含まれる候補(分子)Wの分子構造は「CHOC」とする。この分子構造における原子間ユークリッド距離は、次のとおりとする。
H-O:2.0
H-C:0.5
H-C:3.0
C-C:3.5
【0052】
候補リストに含まれる候補(分子)Zの分子構造は「OHCC」とする。この分子構造における原子間ユークリッド距離は、次のとおりとする。
H-O:0.5
H-C:2.0
H-C:3.0
C-C:1.0
【0053】
スコアリング部53は、このような検索クエリQにおける対象分子と、候補W、Zとの近似度として、ユークリッド距離の差の自乗を求める。
【0054】
検索部52は、このように得られた近似度をもとに、候補W、Zを近似する順(ユークリッド距離の差の自乗が小さい順)に抽出して候補リストを並び替える。具体的には、検索クエリQの分子に対する候補Wの分子の近似度が9.50(1.0+2,25+0.0+6.25)、候補Zの分子の近似度が0.25(0.25+0.0+0.0+0.0)であることから、検索部52は、候補W<候補Zとして並び替える。
【0055】
図8は、ユークリッド距離によるスコアリング処理の一例を示すフローチャートである。
図8に示すように、処理が開始されると、スコアリング部53は、検索クエリQに含まれる分子構造の3次元座標情報をもとに、検索クエリQに含まれる分子のすべての原子ペアについてユークリッド距離を計算する(S50)。
【0056】
ついで、スコアリング部53は、候補リストの先頭からk個(例えばリスト内の候補数)処理するまでのループ処理を開始する(S51~S54)。
【0057】
ループ処理が開始されると、スコアリング部53は、候補の分子構造の3次元座標情報をもとに、候補の分子すべての原子ペアについてユークリッド距離を計算する(S52)。
【0058】
ついで、スコアリング部53は、検索クエリQと候補の同一の原子ペアに関してユークリッド距離の差を自乗し、総和を求めたうえで候補に対応付けて記録する(S53)。
【0059】
上述したループ処理(S51~S54)の後、検索部52は、候補に対応付けて記録した値(計算した値)をスコアとし、このスコアをもとに候補を抽出することでスコアの昇順にソートする。検索部52は、このようにしてソートした検索結果43のリストをスコア付きで返す(S55)。
【0060】
図3に戻り、S12についで、検索部52は、上述したS12までの処理により得られた検索結果43を出力する(S13)。ついで、量子化学計算部54は、計算クエリをもとに、対象分子に関する量子化学計算を行う(S14)。ここで、量子化学計算部54は、検索結果43のリストに含まれる分子に対応する量子化学計算のパラメータ(θ)をハッシュ値インデックスDB42より読み出し、そのパラメータ(θ)を初期値として用いて量子化学計算を行う。
【0061】
以上のように、情報処理装置1は、複数の分子それぞれにハッシュ値を対応付けて記憶するハッシュ値インデックスDB42の中から対象分子に対応するハッシュ値を含む複数の第1の分子を特定する。情報処理装置1は、対象分子と、複数の第1の分子とについて、それぞれが有する原子を特定の基準に基づいて配置した際の、対象分子と複数の第1の分子とのハミング距離を算出する。情報処理装置1は、算出したハミング距離に基づいて複数の第1の分子の中から第2の分子を抽出する。
【0062】
これにより、情報処理装置1では、原子を特定の基準に基づいて配置した際の、対象分子とのハミング距離をもとに、ハッシュ値インデックスDB42に蓄積された多数の分子の中から分子構造が近いものを抽出できる。ユーザは、このように抽出した分子のパラメータ(θ)を量子化学計算の初期値として用いることで、イタレーション回数を削減して効率的に量子化学計算を行うことができる。すなわち、情報処理装置1は、量子化学計算の効率性向上を支援できる。
【0063】
情報処理装置1は、さらに、分子に含まれる原子間のユークリッド距離に基づいて対象分子と複数の第2の分子との近似度を算出する。情報処理装置1は、さらに、算出した近似度に基づいて、抽出した複数の第2の分子の中から第3の分子を抽出する。これにより、情報処理装置1は、ハッシュ値インデックスDB42に蓄積された多数の分子の中から対象分子とより分子構造が近いものを抽出することができる。
【0064】
また、基準は、分子に含まれる最小の原子番号の原子であり、情報処理装置1は、対象分子と、複数の第1の分子とについて、最小の原子番号の原子からの距離が短い原子の順にそれぞれが有する原子を配置する。これにより、情報処理装置1は、最小の原子番号の原子を基準として互いの分子構造を比較し、対象分子とより分子構造が近い分子を抽出することができる。
【0065】
また、ハッシュ値インデックスDB42は、さらに、複数の分子にそれぞれに対応するパラメータを記憶する。情報処理装置1は、抽出した分子に対応するパラメータに基づいて対象分子にかかる量子化学計算を行う。このように抽出した分子のパラメータをもとに量子化学計算を行うことで、情報処理装置1は、例えば、量子化学計算時のイタレーション回数を削減し、効率的に量子化学計算を行うことができる。
【0066】
また、情報処理装置1は、複数の第1の分子の中から算出したハミング距離が閾値以下の分子を第2の分子として抽出する。これにより、情報処理装置1は、ハミング距離が閾値以下の分子、すなわち分子構造が対象分子とより近い分子への絞り込みを行うことができる。
【0067】
なお、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0068】
また、情報処理装置1の制御部50で行われる格納部51、検索部52、スコアリング部53および量子化学計算部54の各種処理機能は、CPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(またはMPU、MCU等のマイクロ・コンピュータ)で解析実行されるプログラム上、またはワイヤードロジックによるハードウエア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。また、情報処理装置1で行われる各種処理機能は、クラウドコンピューティングにより、複数のコンピュータが協働して実行してもよい。
【0069】
ところで、上記の実施形態で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施形態と同様の機能を有するプログラムを実行するコンピュータ構成(ハードウエア)の一例を説明する。
図9は、コンピュータ構成の一例を説明する説明図である。
【0070】
図9に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、データ入力を受け付ける入力装置202と、モニタ203と、スピーカ204とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読み取る媒体読取装置205と、各種装置と接続するためのインタフェース装置206と、有線または無線により外部機器と通信接続するための通信装置207とを有する。また、情報処理装置1は、各種情報を一時記憶するRAM208と、ハードディスク装置209とを有する。また、コンピュータ200内の各部(201~209)は、バス210に接続される。
【0071】
ハードディスク装置209には、上記の実施形態で説明した機能構成(例えば格納部51、検索部52、スコアリング部53および量子化学計算部54)における各種の処理を実行するためのプログラム211が記憶される。また、ハードディスク装置209には、プログラム211が参照する各種データ212が記憶される。入力装置202は、例えば、操作者から操作情報の入力を受け付ける。モニタ203は、例えば、操作者が操作する各種画面を表示する。インタフェース装置206は、例えば印刷装置等が接続される。通信装置207は、LAN(Local Area Network)等の通信ネットワークと接続され、通信ネットワークを介した外部機器との間で各種情報をやりとりする。
【0072】
CPU201は、ハードディスク装置209に記憶されたプログラム211を読み出して、RAM208に展開して実行することで、上記の機能構成(例えば格納部51、検索部52、スコアリング部53および量子化学計算部54)に関する各種の処理を行う。なお、プログラム211は、ハードディスク装置209に記憶されていなくてもよい。例えば、コンピュータ200が読み取り可能な記憶媒体に記憶されたプログラム211を読み出して実行するようにしてもよい。コンピュータ200が読み取り可能な記憶媒体は、例えば、CD-ROMやDVDディスク、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN等に接続された装置にこのプログラム211を記憶させておき、コンピュータ200がこれらからプログラム211を読み出して実行するようにしてもよい。
【0073】
以上の実施形態に関し、さらに以下の付記を開示する。
【0074】
(付記1)複数の分子それぞれにハッシュ値を対応付けて記憶する記憶部の中から対象分子に対応するハッシュ値を含む複数の第1の分子を特定し、
前記対象分子と、複数の前記第1の分子とについて、それぞれが有する原子を特定の基準に基づいて配置した際の、前記対象分子と複数の前記第1の分子とのハミング距離を算出し、
算出した前記ハミング距離に基づいて複数の前記第1の分子の中から第2の分子を抽出する、
処理をコンピュータに実行させることを特徴とする抽出プログラム。
【0075】
(付記2)前記算出する処理は、さらに、分子に含まれる原子間のユークリッド距離に基づいて前記対象分子と複数の前記第2の分子との近似度を算出し、
前記抽出する処理は、さらに、算出した前記近似度に基づいて、抽出した複数の前記第2の分子の中から第3の分子を抽出する、
ことを特徴とする付記1に記載の抽出プログラム。
【0076】
(付記3)前記基準は、分子に含まれる最小の原子番号の原子であり、
前記ハミング距離を算出する処理は、前記対象分子と、複数の前記第1の分子とについて、前記最小の原子番号の原子からの距離が短い原子の順にそれぞれが有する原子を配置する、
ことを特徴とする付記1に記載の抽出プログラム。
【0077】
(付記4)前記記憶部は、さらに、前記複数の分子にそれぞれに対応するパラメータを記憶し、
前記抽出する処理が抽出した分子に対応する前記パラメータに基づいて前記対象分子にかかる量子化学計算を行う処理をさらに前記コンピュータに実行させる、
ことを特徴とする付記1に記載の抽出プログラム。
【0078】
(付記5)前記量子化学計算を行うことで、前記対象分子のポテンシャルエネルギーを求め、求められた前記ポテンシャルエネルギーを用いて、前記対象分子のポテンシャルエネルギー曲線を求める、
ことを特徴とする付記4に記載の抽出プログラム。
【0079】
(付記6)前記抽出する処理は、複数の前記第1の分子の中から算出した前記ハミング距離が閾値以下の分子を前記第2の分子として抽出する、
ことを特徴とする付記1に記載の抽出プログラム。
【0080】
(付記7)複数の分子それぞれにハッシュ値を対応付けて記憶する記憶部の中から対象分子に対応するハッシュ値を含む複数の第1の分子を特定し、
前記対象分子と、複数の前記第1の分子とについて、それぞれが有する原子を特定の基準に基づいて配置した際の、前記対象分子と複数の前記第1の分子とのハミング距離を算出し、
算出した前記ハミング距離に基づいて複数の前記第1の分子の中から第2の分子を抽出する、
処理をコンピュータが実行することを特徴とする抽出方法。
【0081】
(付記8)前記算出する処理は、さらに、分子に含まれる原子間のユークリッド距離に基づいて前記対象分子と複数の前記第2の分子との近似度を算出し、
前記抽出する処理は、さらに、算出した前記近似度に基づいて、抽出した複数の前記第2の分子の中から第3の分子を抽出する、
ことを特徴とする付記7に記載の抽出方法。
【0082】
(付記9)前記基準は、分子に含まれる最小の原子番号の原子であり、
前記ハミング距離を算出する処理は、前記対象分子と、複数の前記第1の分子とについて、前記最小の原子番号の原子からの距離が短い原子の順にそれぞれが有する原子を配置する、
ことを特徴とする付記7に記載の抽出方法。
【0083】
(付記10)前記記憶部は、さらに、前記複数の分子にそれぞれに対応するパラメータを記憶し、
前記抽出する処理が抽出した分子に対応する前記パラメータに基づいて前記対象分子にかかる量子化学計算を行う処理をさらに前記コンピュータが実行する、
ことを特徴とする付記7に記載の抽出方法。
【0084】
(付記11)前記量子化学計算を行うことで、前記対象分子のポテンシャルエネルギーを求め、求められた前記ポテンシャルエネルギーを用いて、前記対象分子のポテンシャルエネルギー曲線を求める、
ことを特徴とする付記10に記載の抽出方法。
【0085】
(付記12)前記抽出する処理は、複数の前記第1の分子の中から算出した前記ハミング距離が閾値以下の分子を前記第2の分子として抽出する、
ことを特徴とする付記7に記載の抽出方法。
【0086】
(付記13)複数の分子それぞれにハッシュ値を対応付けて記憶する記憶部の中から対象分子に対応するハッシュ値を含む複数の第1の分子を特定し、
前記対象分子と、複数の前記第1の分子とについて、それぞれが有する原子を特定の基準に基づいて配置した際の、前記対象分子と複数の前記第1の分子とのハミング距離を算出し、
算出した前記ハミング距離に基づいて複数の前記第1の分子の中から第2の分子を抽出する、
処理を実行する制御部を含むことを特徴とする情報処理装置。
【0087】
(付記14)前記算出する処理は、さらに、分子に含まれる原子間のユークリッド距離に基づいて前記対象分子と複数の前記第2の分子との近似度を算出し、
前記抽出する処理は、さらに、算出した前記近似度に基づいて、抽出した複数の前記第2の分子の中から第3の分子を抽出する、
ことを特徴とする付記13に記載の情報処理装置。
【0088】
(付記15)前記基準は、分子に含まれる最小の原子番号の原子であり、
前記ハミング距離を算出する処理は、前記対象分子と、複数の前記第1の分子とについて、前記最小の原子番号の原子からの距離が短い原子の順にそれぞれが有する原子を配置する、
ことを特徴とする付記13に記載の情報処理装置。
【0089】
(付記16)前記記憶部は、さらに、前記複数の分子にそれぞれに対応するパラメータを記憶し、
前記抽出する処理が抽出した分子に対応する前記パラメータに基づいて前記対象分子にかかる量子化学計算を行う処理をさらに前記制御部に実行させる、
ことを特徴とする付記13に記載の情報処理装置。
【0090】
(付記17)前記量子化学計算を行うことで、前記対象分子のポテンシャルエネルギーを求め、求められた前記ポテンシャルエネルギーを用いて、前記対象分子のポテンシャルエネルギー曲線を求める、
ことを特徴とする付記16に記載の情報処理装置。
【0091】
(付記18)前記抽出する処理は、複数の前記第1の分子の中から算出した前記ハミング距離が閾値以下の分子を前記第2の分子として抽出する、
ことを特徴とする付記13に記載の情報処理装置。
【符号の説明】
【0092】
1…情報処理装置
10…通信部
20…入力部
30…表示部
40…記憶部
41…設定情報
42…ハッシュ値インデックスDB
43…検索結果
50…制御部
51…格納部
52…検索部
53…スコアリング部
54…量子化学計算
200…コンピュータ
201…CPU
202…入力装置
203…モニタ
204…スピーカ
205…媒体読取装置
206…インタフェース装置
207…通信装置
208…RAM
209…ハードディスク装置
210…バス
211…プログラム
212…各種データ
Q…検索クエリ
W、X、Y、Z…候補