(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-17
(45)【発行日】2024-10-25
(54)【発明の名称】特徴ベクトル実現可能性推定
(51)【国際特許分類】
G16C 20/00 20190101AFI20241018BHJP
【FI】
G16C20/00
(21)【出願番号】P 2021568205
(86)(22)【出願日】2020-05-13
(86)【国際出願番号】 IB2020054518
(87)【国際公開番号】W WO2020230043
(87)【国際公開日】2020-11-19
【審査請求日】2022-10-21
(32)【優先日】2019-05-15
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】濱 利行
【審査官】山田 倍司
(56)【参考文献】
【文献】国際公開第2018/227167(WO,A1)
【文献】中国特許出願公開第109461475(CN,A)
【文献】MOLSIS ニュースレター[online],株式会社モルシス,2018年07月01日,p.10-11,[令和5年11月28日検索], <URL : https://www.molsis.co.jp/wp-content/uploads/MOLSIS_NL006.pdf>
【文献】伊藤 駿, 他3名,補助回答を利用した意見集約法による化合物の合成可能性判定,一般社団法人 人工知能学会 第32回全国大会論文集DVD [DVD-ROM],2018年07月06日,p.1-4
(58)【調査した分野】(Int.Cl.,DB名)
G16C 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
回帰モデルを用いた分子候補の探索における、
コンピュータ実装方法であって、
分子候補の特徴ベクトルから、複数の部分構造の数を表す目標構造ベクトルを生成することであって、前記特徴ベクトルは、前記分子候補の原子の数およびリングの数を含め、前記分子候補が1つまたは複数の部分構造を含むかどうかの表示を含む、前記生成することと、
前記分子候補の分子構造が、少なくとも前記目標構造ベクトルを用いることによって実現可能であるかどうかを決定することであって、
前記分子候補の前記特徴ベクトルから、前記分子候補の原子の数とリングの数とを捕捉することと、
前記目標構造ベクトルが、前記分子候補の前記原子の数および前記リングの数に対応する予め定義された空間に含まれることに応答して、前記分子候補の前記分子構造は実現可能であると決定することと
を含む、前記決定することと
を含む方法。
【請求項2】
前記複数の部分構造は、ノードに接続された異なる数のエッジを有する構造を含む、請求項1に記載の方法。
【請求項3】
前記複数の部分構造は、
前記1つのノードに接続された1つのエッジを有する第1の構造と、
前記1つのノードに接続された2つのエッジを有する第2の構造と、
前記1つのノードに接続された3つのエッジを有する第3の構造と、
前記1つのノードに接続された4つのエッジを有する第4の構造と
を含む、請求項2に記載の方法。
【請求項4】
前記目標構造ベクトル
(x
1
,x
2
,x
3
,x
4
)に等しいまたはそれより大きな1つまたは複数の二次構造ベクトル
(y
1
,y
2
,y
3
,y
4
)を生成することをさらに含み、
ここで、
(y
1
,y
2
,y
3
,y
4
)≧(x
1
,x
2
,x
3
,x
4
)
(ただし、x
1
:前記第1の構造の数、x
2
:前記第2の構造の数、x
3
:前記第3の構造の数、x
4
:前記第4の構造の数)
である、前記1つまたは複数の二次構造ベクトルを前記生成することと、
前記分子候補の分子構造が、少なくとも前記目標構造ベクトルを用いることによって実現可能であるかどうかを決定することは、
前記二次構造ベクトルが、前記分子候補の前記原子の数および前記リングの数に対応する予め定義された空間に含まれることに応答して、前記分子候補の前記分子構造は実現可能であると決定することをさらに含む、
請求項
3に記載の方法。
【請求項5】
前記分子候補の前記特徴ベクトルから、各原子価に対する前記分子候補の原子の数を捕捉することをさらに含み、前記分子候補の分子構造が、少なくとも前記目標構造ベクトルを用いることによって実現可能であるかどうかを決定することは、各原子価に対する前記分子候補の前記原子の数をさらに用い
て、結合条件を満たすことに応答して、前記分子候補の前記分子構造は実現可能であると決定することをさらに含む、
請求項
1ないし
4のいずれかに記載の方法。
【請求項6】
ノードおよびリングの数の各ペアに対する実現可能構造ベクトルを列挙することをさらに含み、前記分子候補の前記ノードの数および前記リングの数に対応する前記予め定義された空間は、前記列挙された実現可能構造ベクトルによって定義される、
請求項
1ないし
5のいずれかに記載の方法。
【請求項7】
前記ノードおよびリングの数の各ペアに対する実現可能構造ベクトルを列挙することは、
グラフを成長させることと、
前記グラフの前記ノードの数と前記リングの数とをカウントすることと、
前記グラフの前記カウントされたノードの数および前記カウントされたリングの数のペアに対する、前記グラフの構造ベクトルを記憶することと
を含む、請求項
6に記載の方法。
【請求項8】
前記グラフを成長させることは、
前記グラフに新たなノードを追加することと、
前記グラフ内に新たなリングを形成することと
の少なくとも1つを含む、請求項
7に記載の方法。
【請求項9】
プロセッサと、
前記プロセッサによって実行されたとき、前記プロセッサに、請求項1ないし
8のいずれかに記載の方法を実行させる命令を含むコンピュータ可読媒体と
を含む、装置。
【請求項10】
コンピュータに、請求項1ないし
8のいずれかに記載の方法を実行させるための、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、特徴ベクトル実現可能性推定に関する。
【背景技術】
【0002】
目標特性を満足する新たな材料を探索するために、情報技術が用いられ得る。しかし、時間および金銭の観点からコストがかかるものとなる非効率性が存在する。
【0003】
材料発見において、IT技術は、必要な特性の新たな材料を見出すスピードを加速してきている。目標特性を満足する新たな材料を見出す逆問題は、材料発見の最も難しく重要な部分である。TRLは、RFIのAMD(Accelerated Material Discovery:加速された材料発見)プロジェクトにおける材料発見ツールを開発している。既存の分子が分析され、分子から抽出された特徴ベクトルから回帰モデルが取得される。取得された回帰モデルを用いて、必要な特性を満足する特徴ベクトルが推定され、分子生成器は推定された特徴ベクトルから分子構造を生成する。特徴ベクトル推定(3)において、見込みのある特徴ベクトル(fv)は、目標特性値(V_p)と、推定された特性値との差を、回帰モデル(f)によって最小化するための数値最適化問題を解くことによって見出され得る。fv=argmin
v∈S
|V
p
-f(v)|。探索空間(S)が適切に制限されない限り、多くの場合、取得された特徴ベクトルを満足する化学構造が存在しない。分子構造生成は、特徴推定に比べて長い時間がかかるので、対応する化学構造がない特徴ベクトルを回避することは、材料発見プロセスの性能を改善するために非常に重要である。
【0004】
従って、当技術分野において、上記の問題に対処する必要性がある。
【発明の概要】
【0005】
さらなる態様から考察すると、本発明は、ニューラル・ネットワーク・トレーニングのための装置を提供し、装置は、プロセッサと、プロセッサによって実行されたとき、プロセッサに操作を行わせる命令を全体として含む1つまたは複数のコンピュータ可読媒体とを備え、かかる操作は、分子候補の特徴ベクトルから、複数の部分構造の数を表す目標構造ベクトルを生成することと、分子候補の分子構造が、少なくとも目標構造ベクトルを用いることによって実現可能であるかどうかを決定することとを含む。
【0006】
さらなる態様から考察すると、本発明は、ニューラル・ネットワーク・トレーニングのためのコンピュータ・プログラム製品を提供し、コンピュータ・プログラム製品は、処理回路によって読み出し可能であり、本発明のステップを行うための方法を行うための処理回路による実行のための命令を記憶する、コンピュータ可読記憶媒体を備える。
【0007】
さらなる態様から考察すると、本発明は、コンピュータ可読媒体に記憶され、デジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムを提供し、前記プログラムがコンピュータ上で実行されたとき、本発明のステップを行うための、ソフトウェア・コード部分を備える。
【0008】
本発明の態様によれば、コンピュータ実装方法が提供され、方法は、分子候補の特徴ベクトルから、複数の部分構造の数を表す目標構造ベクトルを生成することと、分子候補の分子構造が、少なくとも目標構造ベクトルを用いることによって実現可能であるかどうかを決定することとを含む。この態様によれば、実現不可能な特徴ベクトルは識別されることができ、従って材料発見のために必要な計算リソースの量および時間を低減する。
【0009】
本発明の他の態様によれば、前の態様の方法が、複数の部分構造は、1つのノードに接続された1つのエッジを有する第1の構造と、1つのノードに接続された2つのエッジを有する第2の構造と、1つのノードに接続された3つのエッジを有する第3の構造と、1つのノードに接続された4つのエッジを有する第4の構造とを含むことが、必要に応じて提供される。この態様によれば、特徴ベクトルの実現可能性は、4つのタイプの部分構造によって正確に決定され得る。
【0010】
本発明の他の態様によれば、前の態様の方法が、分子候補の特徴ベクトルから、分子候補の原子の数とリングの数とを捕捉し、分子候補の分子構造が、少なくとも目標構造ベクトルを用いることによって実現可能であるかどうかを決定することは、分子候補の原子の数とリングの数とをさらに用いることによって行われることをさらに含むことが、必要に応じて提供される。この態様によれば、特徴ベクトルの実現可能性は、分子候補内の原子およびリングの数の情報によって正確に決定され得る。
【0011】
前述の態様はまた、コンピュータ実施方法を行うように構成された装置と、プロセッサまたはプログラマブル回路によって実行されたとき、プロセッサまたはプログラマブル回路にコンピュータ実施方法を行わせる、コンピュータ可読媒体またはプログラマブル回路上に具体化された命令を記憶したコンピュータ・プログラム製品とを含む。概要の項は、必ずしも、本発明の実施形態のすべての特徴を述べない。本発明の実施形態はまた、上述の特徴の部分的組合せを含み得る。
【0012】
次に本発明は、例のみとして、以下の図に示されるように、好ましい実施形態を参照して述べられる。
【図面の簡単な説明】
【0013】
【
図1】本発明の実施形態による例示的フレームワークを示す図である。
【
図2】本発明の実施形態による装置10の例示的構成を示す図である。
【
図3】本発明の実施形態による動作フローを示す図である。
【
図4】本発明の実施形態による特徴ベクトル400を示す図である。
【
図5】本発明の実施形態による部分構造を示す図である。
【
図6】本発明の実施形態による、
図3のフローにおけるS100のサブフローを示す図である。
【
図7】本発明の実施形態による複数の部分構造を示す図である。
【
図8】本発明の実施形態による初期グラフおよび対応する構造ベクトルを示す図である。
【
図9】本発明の実施形態による処置の作用ベクトルを示す図である。
【
図10】本発明の実施形態による基本処置の作用ベクトルを示す図である。
【
図11】本発明の実施形態による例示的成長プロセスを示す図である。
【
図12】本発明の実施形態による、いくつかのノードおよびリングの数のペアに対する記憶された構造ベクトルを示す図である。
【
図13】本発明の実施形態によるリング作成処置を示す図である。
【
図14】本発明の実施形態によるリング作成処置によるリングの数の範囲を示す図である。
【
図15】本発明の実施形態による、
図3のフローにおけるS300のサブフローを示す図である。
【
図16】本発明の実施形態による、システムとして機能するコンピュータの例示的ハードウェア構成を示す図である。
【発明を実施するための形態】
【0014】
本明細書の以下で、本発明の例示の実施形態が述べられる。例示の実施形態は、「特許請求の範囲」による本発明を限定するものではなく、実施形態において述べられる特徴の組合せは、必ずしも本発明に本質的ではない。
【0015】
図1は、本発明の実施形態による例示的フレームワークを示す。フレームワークにおいて、分子構造100は、特徴エンコーディングによって、分子構造の潜在表現とすることができる、特徴ベクトル200に変換される。回帰モデルは、回帰モデルが特徴ベクトル200から分子構造100の特性を予測するように、特徴ベクトル200および分子構造100の特性からトレーニングされる。
【0016】
次いで、目標特性300を与える特徴ベクトル200が、トレーニングされた回帰モデルを用いることによって見出され得る。実施形態において、見込みのある特徴ベクトルfvは、以下の式(1)に示されるように、目標特性値Vpと、回帰モデルfによる推定された特性値との差を最小化するための、数値的最適化問題を解くことによって見出され得る。fv=argminv∈S|Vp-f(v)|・・・(1)
【0017】
見込みのある分子構造は、分子生成器を用いることによって特徴ベクトルfvから生成され得る。時には見出された特徴ベクトルから分子構造を生成することが不可能な場合がある。見込みのある分子構造を取得するための計算リソースおよび時間を節約するために、リグレッサは、実現不可能な特徴ベクトルを式(1)における探索空間Sから削除し得る。本明細書の以下で、実現不可能な特徴ベクトルを識別するための装置が述べられる。
【0018】
図2は、本発明の実施形態による装置10の例示的構成を示す。装置10は、分子構造に変換され得ない、実現不可能な特徴ベクトルを識別し得る。それによって、装置10は、見込みのある分子構造を取得するための計算リソースの量または時間あるいはその両方を低減し得る。
【0019】
装置10は、プロセッサまたはプログラマブル回路あるいはその両方を含み得る。装置10は、命令を共同で含む1つまたは複数のコンピュータ可読媒体をさらに含み得る。命令は、コンピュータ可読媒体またはプログラマブル回路あるいはその両方において具体化され得る。命令は、プロセッサまたはプログラマブル回路によって実行されたとき、プロセッサまたはプログラマブル回路に、複数の動作部分として動作させる。
【0020】
それによって、装置10は、記憶部100、取得部110、生成部120、捕捉部130、列挙部140、および決定部150を含むものと考えられ得る。
【0021】
記憶部100は、装置10が行う処理のために用いられる情報を記憶する。記憶部100はまた、装置10の動作のために用いられる多様なデータ/命令を記憶し得る。装置10内の1つまたは複数の他の要素(例えば、取得部110、生成部120、捕捉部130、列挙部140、および決定部150)は、必要に応じて、データを直接または記憶部100を通じて通信し得る。
【0022】
記憶部100は、装置10の揮発性または不揮発性メモリによって実施され得る。いくつかの実施形態において、記憶部100は、1つまたは複数の特徴ベクトル、構造ベクトル、分子候補の原子またはリングあるいはその両方の数を含んだ表、およびそれらに関連した他のデータを記憶し得る。
【0023】
取得部110は、分子候補の特徴ベクトルを取得する。実施形態において、取得部110は、装置10または他の装置によって実施され得るリグレッサから特徴ベクトルを取得し得る。特徴ベクトルは、複数の要素を含むことができ、分子候補の様々な特性を示し得る。
【0024】
実施形態において、特徴ベクトルは、畳み込みニューラル・ネットワークなど、少なくとも部分的に自動データ駆動型のやり方で定義され得る。他の実施形態において、少なくとも部分的に人間の経験または知識あるいはその両方によって、予備的に定義され得る。特徴ベクトルの詳細は以下で説明される。
【0025】
取得部110は、装置10の動作のために必要な他のデータを取得し得る。取得部110は、生成部120および捕捉部130に、特徴ベクトルを提供し得る。実施形態において、特徴ベクトルは、分子候補内の部分構造の数を表し得る。特徴ベクトルの詳細は以下で説明される。
【0026】
生成部120は、分子候補の特徴ベクトルから目標構造ベクトルを生成し得る。目標構造ベクトルは、分子候補内の複数の部分構造の数を表し得る。実施形態において、生成部120は、目標構造ベクトルとして、特徴ベクトルからの分子候補のフィンガープリント(fingerprint)を抽出し得る。
【0027】
生成部120は、目標構造ベクトルより大きな1つまたは複数の二次構造ベクトルをさらに生成し得る。生成部120は、決定部150に、目標構造ベクトルまたは1つまたは複数の二次構造ベクトルあるいはその両方を提供し得る。
【0028】
捕捉部130は、分子候補の特徴ベクトルから分子候補の原子の数とリングの数とを捕捉し得る。捕捉部130は、分子候補の特徴ベクトルから、各原子価に対する分子候補の原子の数をさらに捕捉し得る。捕捉部130は、捕捉された情報を決定部150に提供し得る。
【0029】
列挙部140は、実現可能構造ベクトルを列挙し得る。実施形態において、列挙部140は、ノードおよびリングの数の各ペアに対する実現可能構造ベクトルを列挙し得る。実施形態において、列挙部140は、装置10の外部の他の装置において実施されることができ、実現可能構造ベクトルを予備的に用意し得る。列挙部140は、列挙された実現可能構造ベクトルを決定部150に直接、または記憶部100を通じて提供し得る。
【0030】
決定部150は、分子候補の分子構造が、少なくとも目標構造ベクトルを用いることによって実現可能であるかどうかを決定し得る。実施形態において、決定部150は、実現可能性を決定するために、目標構造ベクトルに等しいまたはそれより大きな1つまたは複数の二次構造ベクトルをさらに用い得る。
【0031】
いくつかの実施形態において、実現可能であることは、製造が可能である、または安定な形で存在し得るものとして定義され得る。分子候補が実現可能であるとき、その分子は場合により製造され得る、または自然界に存在し得る。分子候補が実現不可能であるとき、分子候補は製造されることはできず、または自然界に存在し得ない。
【0032】
実施形態において、決定部150は、実現可能性を決定するために、分子候補の原子の数およびリングの数をさらに用い得る。実施形態において、決定部150は、実現可能性を決定するために、各原子価に対する分子候補の原子の数をさらに用い得る。
【0033】
決定部150は、予め定義された空間に目標構造ベクトルが含まれることに応答して、分子候補の分子構造は実現可能であると決定し得る。
【0034】
実施形態において、決定部150は、分子候補の原子の数およびリングの数に対応する、予め定義された空間に目標構造ベクトルが含まれることに応答して、分子候補の分子構造は実現可能であると決定し得る。
【0035】
予め定義された空間は、列挙部140によって列挙された実現可能構造ベクトルによって定義され得る。実施形態において、分子候補の原子の数およびリングの数に対応する予め定義された空間は、列挙された実現可能構造ベクトルによって定義される。
【0036】
図3は、本発明の実施形態による動作フローを示す。本実施形態は、装置10などの装置が、分子候補の特徴ベクトルの実現可能性をチェックするために、
図3に示されるような、S100からS300の動作を行う例を述べる。
【0037】
S100で、列挙部140などの列挙部は、実現可能構造ベクトルを列挙し得る。S100の動作の詳細は、
図6を参照してさらに述べられる。
【0038】
S200で、取得部110などの取得部は、分子候補の特徴ベクトルを取得し得る。特徴ベクトルは、分子候補が1つまたは複数の単位構造を含むかどうかの表示を含み得る。特徴ベクトルはまた、分子候補内の原子の数とリングの数とを示し得る。本明細書の以下で分子候補の特徴ベクトルは、「目標特徴ベクトル」と呼ばれ得る。
【0039】
S300で、
図2の装置10などの装置は、分子候補の特徴ベクトルの実現可能性をチェックし得る。装置部分は、S100で用意された実現可能構造ベクトルと、S200で取得された特徴ベクトルとを用い得る。S300の動作の詳細は、
図15を参照してさらに述べられる。
【0040】
図4は、本発明の実施形態による特徴ベクトル400を示す。実施形態において、特徴ベクトル400は、データ駆動型特徴部分410と、予め定義された構築要素(building component)カウント部分420とを含み得る。実施形態において、特徴ベクトル400は、データ駆動型特徴部分410と、予め定義された構築要素カウント部分420との連結とすることができる。
【0041】
データ駆動型特徴部分410は、分子の単位構造の数を表し得る。それによって、データ駆動型特徴部分410は、原子または結合あるいはその両方の差異を無視することによって、分子の構造を表し得る。
【0042】
ここで特徴ベクトルの定義の例が説明される。M={m1,m2,・・・,mN}は、分子候補の所与のデータセットにおける分子構造のセットを表すものとする。任意の分子構造は、S={s1,s2,・・・}として表されるより小さな単位構造(これは「部分構造」とも呼ばれ得る)のセットを含み得る。
【0043】
これは、分子構造および部分構造をノード(原子)とエッジ(化学結合)から構成されるグラフと考えることによって、sはmの部分グラフとなり得ることを意味する。サンプルmnのn番目の分子に対して、分子を構成する部分構造のセットは、S(n)={s1,s2,・・・}として表され得る。ここで、S(n)は、mnに含まれる網羅的なセットであると想定され得る。すなわち、S(n)は、最小が原子であり最大が分子自体である、すべての部分構造を組み込むことができ、従って分子mnに含まれる部分構造の完全な集合とすることができる。
【0044】
次に分子内の部分構造の数をカウントする。N
D(m,s)を、mに現れるsのカウントを示すものとする。分子m
nの例、部分構造S
(n)のセット、およびそれらのカウントN
D(m
n,S
j
(n))は
図5に示される。
図5において、水素(H)および炭素(C)原子は明示的に示されず、部分構造は部分的に示されている。所与の分子セットMに対する部分構造の網羅的なセットS
FULLが作成され得る。このセットは、以下の式(2)によって得られる。
【数1】
ただしNは分子のサンプルの数を示す。S
FULLの要素をS
1
FULL、S
2
FULLとして展開し、N
D(m,s)の定義を用いて、分子m
nに対するベクトルを以下の式(3)によって定義する。
【数2】
【0045】
それの定義から、xD
(n)は、mnに現れるすべての部分グラフのカウントを組み込むことによって、分子構造の位相幾何学的特徴を表すが、網羅性により、その情報はかなりの冗長性を含む。例えば、SFULL内の部分構造の殆どは、完全な分子セットM内でさえ、1回または数回現れるだけであり、従ってそれらをすべて用いることは適切ではないだろう。
【0046】
目標特性に影響を与える部分構造のみを選択するために、それに対する特徴選択が行われ得る。目標特性をyで示して、LASSO(Least Absolute Shrinkage and Selection Operator:最小絶対収縮および選択演算子)回帰モデル
【数3】
が作成され得る。ハイパー・パラメータ(L
1ペナルティ項の程度(degreeof L
1 penalty term))を調整し、回帰係数|W|の絶対値に対する閾値W
thを設定し、システムは重要な部分構造を選択し得る。選択された部分構造のセットをS
Select、および対応する特徴ベクトルをx
D
Selectで示す。x
D
Selectは、分子候補内の特徴ベクトルのデータ駆動型特徴部分410として用いられ得る。実施形態において、S
Selectは、部分構造として最大でも数個の原子(例えば、4~5個の原子)を含む小さな構造のみを含み得る。
【0047】
予め定義された構築要素カウント部分420は、分子候補の構築要素についての情報を含み得る。実施形態において、予め定義された構築要素カウント部分420は、分子候補の主鎖(backbone)、原子、または結合あるいはその組合せの情報を含み得る。
【0048】
主鎖の情報は、分子候補内の重原子、およびn個のメンバのリング(例えば、n個の辺を有する多角形)の数を含み得る。重原子は、水素(H)以外の原子とすることができ、グラフ内に表されるノードに対応し得る。
【0049】
原子の情報は、酸素(O)、窒素(N)、硫黄(S)など、特定の原子の数を含み得る。原子の情報は、炭素(C)原子の数をさらに含み得る。原子の情報は、水素(H)原子の数をさらに含み得る。
【0050】
実施形態において、結合の情報は、二重結合および三重結合の数を含み得る。実施形態において、結合の情報は、脂環式環の数または芳香環の数あるいはその両方など、リングの数をさらに含み得る。
【0051】
図6は、本発明の実施形態による
図3のフローにおけるS100のサブフローを示す。
図3の動作S100において、列挙部140などの列挙部は、
図6のS110~S170の動作を行い得る。
【0052】
S110で、列挙部140は、初期グラフの構造ベクトルを用意し得る。初期グラフは、2つのノードと、2つのノードを接続する1つのエッジとを含み得る。
【0053】
構造ベクトルは、初期グラフ内の複数の部分構造の数を表し得る。部分構造は、フィンガー構造とすることができる。実施形態において、複数の部分構造は、ノードに接続された異なる数のエッジを有する構造を含み得る。
【0054】
特定の実施形態において、複数の部分構造は、1つのノードに接続された1つのエッジを有する第1の構造と、1つのノードに接続された2つのエッジを有する第2の構造と、1つのノードに接続された3つのエッジを有する第3の構造と、1つのノードに接続された4つのエッジを有する第4の構造とを含み得る。
【0055】
図7は、本発明の実施形態による複数の部分構造を示す。
図7において、複数の部分構造は、第1の構造710、第2の構造720、第3の構造730、および第4の構造740を含む。第1の構造710内の中央ノード(黒いドットで示される)はx1と呼ばれ、第1の構造720内の中央ノード(黒いドットで示される)はx2と呼ばれ、第1の構造730内の中央ノード(黒いドットで示される)はx3と呼ばれ、および第1の構造740内の中央ノード(黒いドットで示される)はx4と呼ばれ得る。
【0056】
グラフの構造ベクトルは、ベクトル(x1,x2,x3,x4)と表されることができ、x1はグラフ内のx1の中央ノードとして分類されたノードの数を表し、x2はグラフ内のx2の中央ノードとして分類されたノードの数を表し、x3はグラフ内のx3の中央ノードとして分類されたノードの数を表し、およびx4はグラフ内のx4の中央ノードとして分類されたノードの数を表す。
【0057】
図8は、本発明の実施形態による初期グラフおよび対応する構造ベクトルを示す。
図8に示されるように、初期グラフ800は2つのノードを含み、その両方が
図7におけるx1での中央ノードと考えられ得る。従って、列挙部は、初期グラフ800の構造ベクトル(2,0,0,0)を提供し得る。
【0058】
S110で、列挙部は、初期グラフのノードの数およびリングの数をカウントし得る。
図8の初期グラフ800は、2つのノードを含むと考えられ得る。初期グラフ800はリングを含まない。従って、列挙部は、初期グラフ800のノードの数として「2」、およびリングとして「0」をカウントし得る。
【0059】
S110の動作の後、列挙部は、S130~S170のループを反復し得る。それによって列挙部は、初期グラフからグラフを発達させ得る。
【0060】
S130で、列挙部はグラフを成長させ得る。列挙部は、グラフを成長させるためにグラフに新たなノードを追加すること、またはグラフ内に新たなリングを形成すること、あるいはその両方を行い得る。
【0061】
実施形態において、列挙部は、グラフの構造ベクトルに処置(action)を行うことによって、グラフを成長させ得る。本明細書の以下で、成長されるグラフは「目標グラフ」と呼ばれ、目標グラフの構造ベクトルは「目標構造ベクトル」と呼ばれる。実施形態において、列挙部は、目標グラフを成長させるために、作用ベクトルを目標構造ベクトルに追加し得る。
【0062】
図9は、本発明の実施形態による処置の作用ベクトルを示す。「α1」とラベル付けされた処置の作用ベクトルは、x1の中央ノード(これは「x1ノード」と呼ばれる)にノードを追加する処置に対応することができ、(0,1,0,0)と表され得る。目標グラフのx1ノードに新たなノードを追加するとき、列挙部は、(0,1,0,0)を目標構造ベクトルに加算し得る。
【0063】
同様に、「α2」とラベル付けされた処置の作用ベクトルは、x2の中央ノード(これは「x2ノード」と呼ばれる)にノードを追加する処置に対応することができ、(1,-1,1,0)と表されることができ、「α3」とラベル付けされた処置の作用ベクトルは、x3の中央ノード(これは「x3ノード」と呼ばれる)にノードを追加する処置に対応することができ、(1,0,-1,1)と表され得る。
【0064】
「β11」とラベル付けされた処置の作用ベクトルは、2つのx1ノードの間にエッジを追加する処置に対応することができ、(-2,2,0,0)と表され得る。目標グラフ内の2つのx1ノードの間にエッジを追加するとき、列挙部は(-2,2,0,0)を目標構造ベクトルに加算し得る。
【0065】
同様に、「β12」とラベル付けされた処置の作用ベクトルは、x1ノードとx2ノードとの間にエッジを追加する処置に対応することができ、(-1,0,1,0)と表され得る。「β22」とラベル付けされた処置の作用ベクトルは、2つのx2ノードの間にエッジを追加する処置に対応することができ、(0,-2,2,0)と表され得る。
【0066】
「β13」とラベル付けされた処置の作用ベクトルは、x1ノードとx3ノードとの間にエッジを追加する処置に対応することができ、(-1,1,-1,1)と表され得る。「β23」とラベル付けされた処置の作用ベクトルは、x2ノードとx3ノードとの間にエッジを追加する処置に対応することができ、(0,-1,0,1)と表され得る。「β33」とラベル付けされた処置の作用ベクトルは、2つのx3ノードの間にエッジを追加する処置に対応することができ、(0,0,-2,2)と表され得る。
【0067】
図10は、本発明の実施形態による基本処置の作用ベクトルを示す。
図9にリストされた処置は、
図10に示されるように「a」、「b1」、「b2」、および「b3」とラベル付けされた基本処置に分解され得る。例えば、処置「α1」は、基本処置「a」および「b1」に分解され得る。言い換えれば、作用ベクトルα1(0,1,0,0)は、「a」(1,0,0,0)の作用ベクトルと、「b1」(-1,1,0,0)の作用ベクトルの和に等しい。
【0068】
同様に、処置「α2」は基本処置「a」と「b2」とに分解されることができ、処置「α3」は基本処置「a」と「b3」とに分解され得る。処置「β11」~「β33」は、
図9に示されるように「b1」~「b3」の組合せに分解され得る。
【0069】
図11は、本発明の実施形態による例示的成長プロセスを示す。
図11の実施形態において、列挙部は、S130~S170のループの反復におけるS130の動作によって、初期グラフ1100からグラフ1110、1120、1130、・・・を生成し得る。
【0070】
例えば、S130の第1の動作で、列挙部は、初期グラフ1100から新たなグラフ1110を、処置α1の作用ベクトル(0,1,0,0)を初期グラフ1100(2,0,0,0)の構造ベクトルに加算してグラフ1110の構造ベクトル(2,1,0,0)を取得することによって生成し得る。この動作は、結果的に初期グラフ1100内のノードx1に新たなノードを追加することになる。
【0071】
実施形態において、S130の第2の動作で、列挙部は、グラフ1110から新たなグラフ1120を、処置α1の作用ベクトル(0,1,0,0)をグラフ1110の構造ベクトル(2,1,0,0)に加算してグラフ1120の構造ベクトル(2,2,0,0)を取得することによって生成し得る。この動作は、結果的にグラフ1110内のノードx1に新たなノードを追加することになる。
【0072】
実施形態において、S130の第3の動作で、列挙部は、グラフ1110から新たなグラフ1130を、グラフ1110の構造ベクトル(2,1,0,0)に処置α2の作用ベクトル(1,-1,1,0)を加算してグラフ1130の構造ベクトル(3,0,1,0)を取得することによって生成し得る。この動作は、結果的にグラフ1110内のノードx2に新たなノードを追加することになる。
【0073】
実施形態において、S130の第4の動作で、列挙部は、グラフ1110から新たなグラフ(図示せず)を、グラフ1110の構造ベクトル(2,1,0,0)に処置β11の作用ベクトル(-2,2,0,0)を加算して新たなグラフの構造ベクトル(0,3,0,0)を取得することによって生成し得る。この動作は、結果的にグラフ1110内の2つのノードx1に新たなエッジを追加することになる。
【0074】
列挙部は、
図9にリストされた処置から選択された作用ベクトルを加算することによって、グラフ1120、1130、・・・をさらに成長させ得る。列挙部は、計算された構造ベクトルが負の値を含まないように処置を選択し得る。例えば、目標構造ベクトルが(2,1,0,0)であるとき、列挙部は、作用ベクトルが(1,0,-1,1)である処置α3を選択することはできない。
【0075】
列挙部は、選択された処置によってリングが作成されることを確実にするように、処置を選択し得る。実施形態において、列挙部は、処置に対応する条件が満たされたときにのみ処置を選択し得る。処置に対する条件は
図9に示される。例えば、目標構造ベクトルが(2,1,0,0)であるとき、列挙部は、条件がx
1+x
2+x
3+x
4≧4 AND x
2+x
3+x
4≧2を含む処置β12を選択することはできない。
【0076】
S150で、列挙部は、最も最近のS130で成長されたグラフ内のノードおよびリングをカウントすることができ、これは本明細書の以下では「成長されたグラフ」と呼ばれ得る。
【0077】
実施形態において、列挙部は、成長されたグラフ(x
1,x
2,x
3,x
4)に対してx
1+x
2+x
3+x
4を計算することによってノードの数をカウントし得る。実施形態において、列挙部は、リングの数として、これまで選択されたリング作成処置(
図9の処置β11~β33)の数をカウントし得る。他の実施形態において、列挙部は、成長されたグラフ(x
1,x
2,x
3,x
4)に対して、1-1/2(x
1-x
3-2x
4)を計算することによってリングの数をカウントし得る。
【0078】
S150で、列挙部は、成長されたグラフのカウントされたノードの数およびカウントされたリングの数のペアに対する、成長されたグラフの構造ベクトルをさらに記憶し得る。例えば、成長されたグラフが
図11のグラフ1120であるとき、列挙部は、ノードの数「4」およびリングの数「0」に対する構造ベクトル(2,2,0,0)を記憶し得る。
【0079】
図12は、本発明の実施形態による、ノードおよびリングの数のペアに対する記憶された構造ベクトルを示す。列挙部は、S130~S170の反復の間に、ノードおよびリングの数の対応するペアに対する構造ベクトルを記憶し得る。
【0080】
図12に示されるように、列挙部は、(グラフ1100に対応する)2のノードの数(本明細書の以下では「#ノード」と呼ばれる)と、0のリングの数(本明細書の以下では、「#リング」と呼ばれる)とに対する、構造ベクトル(2,0,0,0)を記憶し得る。列挙部は、#ノード3および#リング0(グラフ1110に対応する)に対する構造ベクトル(2,1,0,0)、#ノード4および#リング0(グラフ1120に対応する)に対する構造ベクトル(2,2,0,0)、#ノード4および#リング0(グラフ1130に対応する)に対する構造ベクトル(3,0,1,0)、ならびに#ノード4および#リング1に対する構造ベクトル(0,4,0,0)を記憶し得る。
【0081】
実施形態において、列挙部は、所与のサイズ(例えば、50個のノード)内のすべての可能なグラフを生成するように、S130~S170の動作を反復し得る。実施形態において、列挙部は、所与のサイズ内のすべての可能なグラフの一部を生成するように、S130~S170の動作を反復し得る。
【0082】
実施形態において、列挙部は、#ノードおよび変更された#リングのペアに対する構造ベクトルを記憶し得る。列挙部がリング作成処置を行うとき(例えば、
図9のβ22)、時には2つのリングが目標グラフに追加され得る。しかし、#リングはSSSR(最小リングの最小セット)に基づいてカウントされることができ、成長されたグラフ内のリングの実際の数を反映しない場合がある。
【0083】
図13は、本発明の実施形態によるリング作成処置を示す。
図13(a)に示されるように、目標グラフ1300にエッジ1310が追加されており、その構造ベクトルはリング作成処置β11により(2,2,0,0)である。この処置により、1つのリングが目標グラフ1300に追加される。
【0084】
一方、目標グラフ1350にはエッジ1360が追加されており、その構造ベクトルは
図13(b)に示されるリング作成処置β22により(0,2,2,0)である。この単一の処置を用いて、目標グラフ1350に2つのリングが追加される。従って、成長されたグラフ内の正確なリングの数は、単にリング作成処置の数をカウントすることでは決定されない場合がある。
【0085】
図14は、本発明の実施形態によるリング作成処置によるリングの数の範囲を示す。
図14に示されるように、1リング作成処置が行われるとき、成長されたグラフは1つのリングを有する。2リング作成処置が行われたとき、成長されたグラフは2つのリングを有する。3リング作成処置が行われたとき、成長されたグラフは3つのリングまたは4つのリングを有する。4リング作成処置が行われたとき、成長されたグラフは4つのリング、5つのリング、または6つのリングを有する。5リング作成処置が行われたとき、成長されたグラフは5~8個のリングを有する。
【0086】
実施形態において、列挙部は、
図14に示されるような表を予備的に記憶し得る。他の実施形態において、列挙部はリングの数の範囲を計算し得る。
【0087】
実施形態において、列挙部は、#ノードと可能な#リングのそれぞれとのペアに対する、構造ベクトルを記憶し得る。例えば、成長されたグラフの構造ベクトルが(0,0,4,0)である場合、#ノードは4、および#リング(例えば、リング作成処置のカウント)は3であり、列挙部は、#ノード4と#リング3とのペア、および#ノード4と#リング4とのペアの両方に対する構造ベクトル(0,0,4,0)を記憶し得る。
【0088】
S170で、列挙部は、S100の動作を終了するかどうかを決定し得る。実施形態において、列挙部は、グラフの所定のサイズ内(例えば、50#ノード内)で、グラフを成長させることが可能かどうかを決定し得る。列挙部は、グラフの所定のサイズ内でグラフを成長させることが不可能であるとの決定に応答して、S100を終了するように決定し得る。実施形態において、列挙部は、S100の動作を開始した後に所定の時間が経過したかどうかを決定し得る。
【0089】
S100の動作を終了しないとの決定に応答して、列挙部はS130の動作に戻ってS130~S170のループを反復し得る。実施形態において、S130の次の動作で、実施形態により列挙部は、幅優先探索(例えば、可能な限り#ノードを増加させないように目標グラフを成長させる)に従って目標グラフを成長させ得る。他の実施形態において、他の実施形態により列挙部は、深さ優先探索(例えば、可能な限り#ノードを増加させるように目標グラフを成長させる)に従って目標グラフを成長させ得る。
【0090】
S130~S170の反復の後、列挙部は
図9に示されるように構造ベクトルを記憶し得る。記憶された構造ベクトルは、以下で説明されるように、S300の動作で予め定義された空間として用いられ得る。
【0091】
図15は、本発明の実施形態による、
図3のフローにおけるS300のサブフローを示す。装置10などの装置は、
図3の動作S300で、
図15のS310~S390の動作を行い得る。
【0092】
S310で、生成部120などの生成部は、S200で取得された分子候補の特徴ベクトルから、目標構造ベクトルを生成し得る。実施形態において、生成部は、x
1として、特徴ベクトルの少なくとも一部(例えば、データ駆動型特徴部分410)を用いることによって、分子候補内の
図7でx1ノードとして分類された原子の数をカウントし得る。
【0093】
実施形態において、生成部は、x1として、データ駆動型特徴部分410に示される部分構造においてx1ノードとして分類された原子の数をカウントし得る。例えば、分子候補のデータ駆動型特徴部分410が、分子候補は15個のx1ノードを含むことを示すとき、生成部はx1として15をカウントし得る。
【0094】
生成部はまた、x2として、特徴ベクトルの少なくとも一部(例えば、データ駆動型特徴部分410)を用いることによって、分子候補内のx2ノードとして分類された原子の数をカウントし得る。生成部はまた、x3として、特徴ベクトルの少なくとも一部(例えば、データ駆動型特徴部分410)を用いることによって、分子候補内でx3ノードとして分類された原子の数をカウントし得る。
【0095】
生成部はまた、x4として、特徴ベクトルの少なくとも一部(例えば、データ駆動型特徴部分410)を用いることによって、分子候補内でx4ノードとして分類された原子の数をカウントし得る。それによって、生成部は、目標構造ベクトルとしてベクトル(x1,x2,x3,x4)を取得し得る。
【0096】
S320で、捕捉部130などの捕捉部は、分子候補の特徴ベクトルから分子候補の原子の数とリングの数とを捕捉し得る。実施形態において、捕捉部は、水素なしに、目標特徴ベクトルにリストされた原子の数の和(例えば、C、N、O、S、F、P、Clなどのそれぞれの和)を計算することによって、原子の数を計算し得る。
【0097】
実施形態において、捕捉部は、原子の数またはリングの数あるいはその両方を、目標特徴ベクトルから直接取得し得る。このような実施形態において、原子の数またはリングの数あるいはその両方は、装置のユーザによって予備的に定義され得る。例えば、ユーザは、最初に分子候補に対する原子/リングの最適な数を設定する。実施形態において、目標特徴ベクトルは、原子/リングの最適な数を含み得る。他の実施形態において、捕捉部は最適な数を、ユーザから直接原子/リングの数として取得し得る。
【0098】
実施形態において、捕捉部は、目標特徴ベクトルにリストされたリングの数の和を計算することによって(例えば、メンバ数5のリング、メンバ数6のリング、芳香環など)、リングの数を計算し得る。実施形態において、捕捉部は、リングの数を目標特徴ベクトルから直接取得し得る。
【0099】
S320の後、装置は、終了条件を満たすまでS330~S390の動作を反復し得る。
【0100】
S330で、生成部は、目標構造ベクトルに等しいまたはそれより大きな二次構造ベクトルを生成し得る。二次構造ベクトル(y1,y2,y3,y4)は、(y1,y2,y3,y4)≧(x1,x2,x3,x4)を満たす。
【0101】
生成部は、S330~S390の反復の間に、異なる二次構造ベクトルを生成し得る。実施形態において、生成部は、二次構造ベクトルが目標構造ベクトルから開始して徐々に大きくなるように、異なる二次構造ベクトルを生成し得る。
【0102】
例えば、生成部は、S330の第1の動作で二次構造ベクトル(y1,y2,y3,y4)として、目標構造ベクトル自体(x1,x2,x3,x4)を用い得る。例において、二次構造ベクトル(y1,y2,y3,y4)として、生成部は、S330の第2の動作で(x1+1、x2,x3,x4)を生成することができ、S330の第3の動作で(x1,x2+1,x3,x4)を生成することができ、S330の第4の動作で(x1,x2,x3+1,x4)を生成することができ、S330の第5の動作で(x1,x2,x3,x4+1)を生成することができ、S330の第6の動作で(x1+1,x2+1,x3,x4)を生成することができ、以下同様である。
【0103】
S340で、捕捉部は、目標特徴ベクトルから、各原子価に対する分子候補の原子の数を捕捉し得る。実施形態において、捕捉部は、目標特徴ベクトルの少なくとも一部(例えば、予め定義された構築要素カウント部分420)から、1つの結合を有する原子(例えば、塩素(Cl)、フッ素(F)など)の数を、L1として捕捉し得る。
【0104】
同様に捕捉部は、目標特徴ベクトルの少なくとも一部(例えば、予め定義された構築要素カウント部分420)から、2つの結合を有する原子(例えば、酸素(O)、硫黄(S)など)の数をL2として、3つの結合を有する原子(例えば、窒素(N)など)の数をL3として、4つの結合を有する原子(例えば、炭素(C)、珪素(Si)など)の数をL4として捕捉し得る。それによって、捕捉部は、原子価ベースの構造ベクトルとしてベクトル(L1,L2,L3,L4)を取得し得る。
【0105】
S350で、決定部150などの決定部は、二次構造ベクトル(y1,y2,y3,y4)が結合条件を満たすかどうかを決定し得る。実施形態において、決定部は、二次構造ベクトル(y1,y2,y3,y4)が以下の4つの条件を満たすかどうかを決定し得る。
条件1:y1≧L1
条件2:y1+y2≧L1+L2
条件3:y1+y2+y3≧L1+L2+L3
条件4:y1+y2+y3+y4≧L1+L2+L3+L4
【0106】
決定部が、結合条件は満たされたと決定したことに応答して、装置はS370の動作を進め得る。そうでない場合は、装置はS330の動作に戻り得る。
【0107】
S370で、決定部は、二次構造ベクトルが最も最近のS330で生成されたかどうか、二次構造ベクトルが、S320でカウントされた原子の数およびリングの数に対応する予め定義された空間内に含まれるかどうかを決定し得る。実施形態において、予め定義された空間は、
図12に示されるようにS100で記憶された構造ベクトルに含まれ得る。
【0108】
S320でカウントされた原子の数およびリングの数がA
TおよびR
Tであり、最も最近の二次構造ベクトルが(y
1,y
2,y
3,y
4)として表される実施形態において、列挙部は、S100で記憶された構造ベクトル(
図12に示されるものなど)を含んだ表が、原子の数A
T、リングの数R
T、および構造ベクトル(y
1,y
2,y
3,y
4)の記録を含むかどうかを決定し得る。
【0109】
決定部が記録を見出した場合、決定部は、分子候補の分子構造は実現可能であると決定することができ、S300の動作を終了し得る。決定部が記録を見出さなかった場合、決定部はS390の動作を進め得る。
【0110】
S390で、決定部は、終了条件が満たされたか否かを決定し得る。実施形態において、終了条件は、所定の数の二次構造ベクトルがS330の反復において生成されたこと、所定の範囲の二次構造ベクトル(例えば、(x1,x2,x3,x4)から(x1+10,x2+10,x3+10,x4+10)までの範囲)がS330の反復において生成されたこと、所定の時間が経過したことなどとすることができる。
【0111】
終了条件が満たされていないとの決定に応答して、決定部はS330の動作に戻って新たな二次構造ベクトルを生成し得る。終了条件が満たされたとの決定に応答して、決定部はS300の動作を終了し得る。この場合、分子候補は実現不可能と考えられ得る。実現可能または実現不可能の決定の後、決定部はリグレッサに決定の結果を提供し得る。
【0112】
図15に関して説明された実施形態において、装置は、二次構造ベクトルを生成することによって実現可能性を決定する。他の実施形態において、決定部は、予め定義された空間が、(y
1,y
2,y
3,y
4)≧(x
1,x
2,x
3,x
4)を満足する(y
1,y
2,y
3,y
4)を含むかどうかを決定することによって、実現可能性を決定し得る。実施形態において、(y
1,y
2,y
3,y
4)は、S350に関して説明されたものなどの結合条件をさらに満足し得る。決定部は、少なくとも1つの(y
1,y
2,y
3,y
4)を見出したことに応答して、分子候補は実現可能であると決定し得る。そうでない場合、決定部は、分子候補は実現不可能であると決定し得る。
【0113】
上記で説明された実施形態によれば、装置は、分子候補の特徴ベクトルは実現可能であるか、それとも特徴ベクトルからの目標構造ベクトルに基づかないかを決定し得る。原則として、特定の数の原子およびリングを有する分子は、特定の空間(例えば、
図12に示されるものなどの予め定義された空間)内に構造ベクトルを有するべきである。従って、装置は、分子候補の目標構造ベクトル(およびその二次ベクトル)が、予め定義された空間内に含まれるかどうかに基づいて、分子候補の実現可能性を決定し得る。
【0114】
図1に示されるフレームワークにおける特徴ベクトル探索の間、実現不可能な分子候補の特徴ベクトルは、探索空間から削除され得る。それによって、装置は、見込みのある分子を見出すための計算リソースまたは時間あるいはその両方を低減し得る。
【0115】
いくつかの場合において、目標構造ベクトルは、分子候補によって取得される構造ベクトルと同一ではない場合がある。目標構造ベクトル自体だけでなく、
図15に関して説明されたように二次構造ベクトルも用いることによって、装置は分子候補の実現可能性をより精密に決定し得る。装置は、
図15に関して説明されたように、分子候補の結合条件を用いることによって、分子候補の実現可能性をより厳密に決定し得る。
【0116】
本発明の様々な実施形態は、フローチャートおよびブロック図を参照して述べられることができ、それらのブロックは、(1)動作が行われるプロセスのステップ、または(2)動作を行うことに責任をもつ装置の部分を、表し得る。いくつかのステップおよび部分は、専用回路、コンピュータ可読媒体に記憶されたコンピュータ可読命令が供給されるプログラマブル回路、またはコンピュータ可読媒体に記憶されたコンピュータ可読命令が供給されるプロセッサあるいはその組合せによって実施され得る。専用回路は、デジタル・ハードウェア回路またはアナログ・ハードウェア回路あるいはその両方を含むことができ、集積回路(IC)またはディスクリート回路あるいはその両方を含み得る。プログラマブル回路は、フィールド・プログラマブル・ゲート・アレイ(FPGA)、プログラマブル・ロジック・アレイ(PLA)など、論理AND、OR、XOR、NAND、NOR、および他の論理演算を備えた再構成可能なハードウェア回路、フリップフロップ、レジスタ、メモリ要素などを含み得る。
【0117】
本発明は、統合の任意の可能な技術的詳細レベルにおける、システム、方法、またはコンピュータ・プログラム製品あるいはその組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を遂行させるためのコンピュータ可読プログラム命令をその上に有する、コンピュータ可読記憶媒体を含み得る。
【0118】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶することができる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、例えば電子的記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁的記憶デバイス、半導体記憶デバイス、またはこれらの任意の適切な組合せとすることができるが、それらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピ・ディスク、パンチカードまたはその上に記録された命令を有する溝状の隆起構造などの機械的符号化型デバイス、およびこれらの任意の適切な組合せを含む。本明細書で用いられるコンピュータ可読記憶媒体とは、電波または他の自由に伝搬する電磁波、導波路または他の伝送媒体を通して伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または線材を通して送信される電気信号など、それ自体が一時的信号であると解釈されるものではない。
【0119】
本明細書で述べられるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、またはネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワークあるいはその組合せを通じて外部コンピュータまたは外部記憶デバイスに、ダウンロードされ得る。ネットワークは、銅の伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはその組合せを備え得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体における記憶のために転送する。
【0120】
本発明の動作を遂行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存型命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいはSmalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様なプログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれた、ソース・コードまたはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、スタンド・アロン・ソフトウェア・パッケージとして、専らユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、あるいは専らリモート・コンピュータまたはサーバ上で、実行することができる。
【0121】
後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくは広域ネットワーク(WAN)を含む任意のタイプのネットワークを通してユーザのコンピュータに接続されることができ、または外部コンピュータへの接続がなされ得る(例えばインターネット・サービス・プロバイダを用いてインターネットを通して)。いくつかの実施形態において、例えばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を行うために、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズする(personalize)ことによって、コンピュータ可読プログラム命令を実行し得る。
【0122】
本明細書において本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の、フローチャート図またはブロック図あるいはその両方を参照して述べられる。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実施され得ることが理解されるであろう。
【0123】
これらのコンピュータ可読プログラム命令は、コンピュータのプロセッサまたは他のプログラマブル・データ処理装置によって実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて規定された機能/動作を実施するための手段を作成するように、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供され、マシンを生み出すものであってよい。
【0124】
これらのコンピュータ可読プログラム命令はまた、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて規定された機能/動作の態様を実施する命令を含んだ製品を備えるように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに特定の方式で機能するように指示することができるものであってもよい。
【0125】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて規定された機能/動作を実施するように、コンピュータによって実施されるプロセスを生み出すべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【0126】
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態による、システム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を例示する。この関連において、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を備える、モジュール、セグメント、または命令の一部分を表し得る。
【0127】
いくつかの代替的実装形態において、ブロック内に記された機能は、図に記されたものとは異なる順序で生じ得る。例えば連続して示される2つのブロックは、実際は、実質的に並行して実行されることができ、またはブロックは時には関わる機能に応じて、逆の順序で実行され得る。またブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組合せは、指定された機能または動作を行う、または専用ハードウェアおよびコンピュータ命令の組合せを遂行する、専用ハードウェア・ベースのシステムによって実施され得ることが留意されるであろう。
【0128】
図16は、本発明の態様が全体的にまたは部分的に具体化され得るコンピュータ1200の例を示す。コンピュータ1200にインストールされたプログラムは、コンピュータ1200に、本発明の実施形態の装置、またはそれらの1つまたは複数の部分に、関連付けられた動作として機能させるまたはそれらを行わせる、またはコンピュータ1200に本発明の実施形態のプロセスまたはそれらのステップを行わせる、あるいはその両方ができる。このようなプログラムは、コンピュータ1200に本明細書で述べられるフローチャートおよびブロック図のブロックのいくつかまたはすべてに関連付けられたいくつかの動作を行わせるように、CPU1212によって実行され得る。
【0129】
本実施形態によるコンピュータ1200は、CPU1212、RAM1214、グラフィックス・コントローラ1216、およびディスプレイ・デバイス1218を含み、これらはホスト・コントローラ1210によって相互に接続される。コンピュータ1200はまた、通信インターフェース1222、ハード・ディスク・ドライブ1224、DVD-ROMドライブ1226、およびICカード・ドライブなどの入出力ユニットを含み、これらは入出力コントローラ1220を通じてホスト・コントローラ1210に接続される。コンピュータはまた、ROM1230およびキーボード1242などのレガシー入出力ユニットを含み、これらは入出力チップ1240を通して入出力コントローラ1220に接続される。
【0130】
CPU1212は、ROM1230およびRAM1214に記憶されたプログラムに従って動作し、それによって各ユニットを制御する。グラフィックス・コントローラ1216は、RAM1214内またはそれ自体に設けられたフレーム・バッファまたは同様のものにCPU1212によって生成された画像データを取得し、画像データがディスプレイ・デバイス1218に表示されるようにする。
【0131】
通信インターフェース1222は、ネットワーク1244を通じて他の電子デバイスと通信する。ハード・ディスク・ドライブ1224は、コンピュータ1200内でCPU1212によって用いられるプログラムおよびデータを記憶する。DVD-ROMドライブ1226は、DVD-ROM1201からプログラムまたはデータを読み出し、RAM1214を通じてプログラムまたはデータをハード・ディスク・ドライブ1224にもたらす。ICカード・ドライブは、プログラムおよびデータをICカードから読み出し、またはプログラムおよびデータをICカードに書き込む、あるいはその両方を行う。いくつかの実施形態において、ニューラル・ネットワーク1225は、ハード・ディスク・ドライブ1124に記憶され得る。コンピュータ1200は、ハード・ディスク・ドライブ1224に記憶されたニューラル・ネットワーク1245をトレーニングすることができる。
【0132】
ROM1230は、コンピュータ1200のハードウェアに応じて、起動時にコンピュータ1200によって実行されるブート・プログラムまたは同様のもの、またはプログラムあるいはその両方を記憶する。入出力チップ1240はまた、様々な入出力ユニットを、パラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポートなどを通じて、入出力コントローラ1220に接続し得る。
【0133】
プログラムは、DVD-ROM1201またはICカードなどのコンピュータ可読媒体によって提供される。プログラムは、コンピュータ可読媒体から読み出され、コンピュータ可読媒体の例でもあるハード・ディスク・ドライブ1224、RAM1214、またはROM1230にインストールされ、CPU1212によって実行される。これらのプログラムにおいて記述された情報処理は、コンピュータ1200に読み込まれ、結果としてプログラムと上述の様々なタイプのハードウェア・リソースとの間の連携を生じる。装置または方法は、コンピュータ1200の使用に従った動作、または情報の処理を実現することによって構成され得る。
【0134】
例えば、コンピュータ1200と外部デバイスとの間で通信が行われるとき、CPU1212は、通信プログラムにおいて記述された処理に基づいて、通信インターフェース1222に対して通信処理を指示するように、RAM1214にロードされた通信プログラムを実行することができる。通信インターフェース1222は、CPU1212の制御のもとで、RAM1214、ハード・ディスク・ドライブ1224、DVD-ROM1201、またはICカードなど、記録媒体に提供された送信バッファリング領域に記憶された送信データを読み出し、読み出された送信データをネットワーク1244に送信し、またはネットワーク1244から受信された受信データを、記録媒体上に設けられた受信バッファリング領域などに書き込む。
【0135】
加えて、CPU1212は、ファイルまたはデータベースのすべてのまたは必要な部分がRAM1214に読み込まれるようにすることができ、ファイルまたはデータベースはハード・ディスク・ドライブ1224、DVD-ROMドライブ1226(DVD-ROM1201)、ICカードなどの外部記録媒体に記憶されており、ならびにRAM1214上のデータに様々なタイプの処理を行うことができる。CPU1212は次いで、処理されたデータを外部記録媒体に書き戻すことができる。
【0136】
様々なタイプのプログラム、データ、テーブル、およびデータベースなど、様々なタイプの情報が、情報処理を受けるように記録媒体に記憶され得る。CPU1212はRAM1214からのデータに対して様々なタイプの処理を行うことができ、これは、本開示の全体にわたって述べられおよびプログラムの命令シーケンスによって指定されるような、様々なタイプの動作、情報の処理、条件判定、条件付き分岐、無条件分岐、情報の探索/置換などを含み、ならびに結果をRAM1214に書き戻す。加えて、CPU1212は、記録媒体内の、ファイル、データベースなどにおける情報を探索することができる。例えば、それぞれが第2の属性の属性値に関連付けられた第1の属性の属性値を有する、複数のエントリが記録媒体に記憶されるとき、CPU1212は、複数のエントリの中で、それの第1の属性の属性値が指定された、条件に適合するエントリを探索することができ、エントリに記憶された第2の属性の属性値を読み出し、それによって所定の条件を満足する第1の属性に関連付けられた第2の属性の属性値を取得する。
【0137】
上記で説明されたプログラムまたはソフトウェア・モジュールは、コンピュータ1200上のまたはその近くの、コンピュータ可読媒体に記憶され得る。加えて、専用通信ネットワーク1244またはインターネットに接続されたサーバ・システム内に設けられた、ハード・ディスクまたはRAMなどの記録媒体は、コンピュータ可読媒体として用いられることができ、それによってネットワーク1244を通じてプログラムをコンピュータ1200にもたらす。いくつかの実施形態において、コンピュータ1200は、ネットワーク1244を通して、ニューラル・ネットワーク1245と通信することができる。コンピュータ1200は、ネットワーク1244を通してニューラル・ネットワーク1245をトレーニングすることができる。ニューラル・ネットワーク1245は、1つまたは複数のノードとして実施され得る。
【0138】
本発明の実施形態が述べられたが、本発明の技術的範囲は上述の実施形態に限定されない。当業者には、様々な変更および改良が上述の実施形態に加えられ得ることが明らかとなるであろう。また当然のことながら、「特許請求の範囲」から、このような変更および改良が加えられた実施形態は本発明の技術的範囲内であることが明らかである。
【0139】
請求項、実施形態、または図に示される装置、システム、プログラム、および方法によって行われる各プロセスの動作、手順、ステップ、および段階は、「に先立って(prior to)」、「の前に(before)」などによって何らかの順序が示されない限り、および前のプロセスからの出力が後のプロセスで用いられない限り、任意の順序で行われ得る。請求項、実施形態、または図において、プロセス・フローが「第1に」または「次に」などの語句を用いて述べられた場合であっても、それは必ずしもプロセスがこの順序で行われなければならないことを意味しない。