(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-25
(45)【発行日】2023-05-08
(54)【発明の名称】構造探索装置、構造探索方法、及び構造探索プログラム
(51)【国際特許分類】
G16B 15/00 20190101AFI20230426BHJP
G16C 20/50 20190101ALI20230426BHJP
【FI】
G16B15/00
G16C20/50
(21)【出願番号】P 2019101216
(22)【出願日】2019-05-30
【審査請求日】2022-02-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100107515
【氏名又は名称】廣田 浩一
(72)【発明者】
【氏名】大淵 真理
【審査官】岡北 有平
(56)【参考文献】
【文献】Tomas Babej, et al.,Coarse-grained lattice protein folding on a quantum annealer,Quantum Physics [online],2018年11月02日,Pages 1-12,[検索日:2023年1月5日], <URL:https://arxiv.org/abs/1811.00713>
【文献】Alejandro Perdomo-Ortiz, et al.,Finding low-energy conformations of lattice protein models by quantum annealing,Scientic Reports [online],2012年08月13日,Vol.2, No.571,Pages 1-7,[検索日:2023年1月5日], <URL:https://www.nature.com/articles/srep00571>
(58)【調査した分野】(Int.Cl.,DB名)
G16B 5/00 - 99/00
G16C 10/00 - 99/00
(57)【特許請求の範囲】
【請求項1】
相互作用を持つ複数の分子による構造を探索する構造探索装置であって、
前記複数の分子に含まれる構成単位の数と、前記複数の分子に含まれる分子の数と、に基づいて算出される数の位置ビットを、前記複数の分子に含まれる個々の分子における個々の前記構成単位毎に用意し、
(A-1)前記複数の分子に含まれる一の分子における個々の前記構成単位が隣接して存在する位置ビットに与える負の相互作用と、
(A-2)前記複数の分子に含まれる他の分子における前記構成単位が隣接して存在する位置ビットに与える、前記分子の相互間における本来の相互作用と、
(B-1)前記一の分子における個々の前記構成単位毎に用意された前記位置ビットにおいて、前記一の分子における個々の前記構成単位は、前記一の分子における個々の前記構成単位毎に用意された前記位置ビットに1つ存在するという制約と、
(B-2)前記複数の分子における個々の前記構成単位毎に用意された前記位置ビット間において、同じ位置の前記位置ビットには、前記複数の分子の内のいずれかにおける前記構成単位は1つ存在するか又は存在しないという制約と、
を含むコスト関数に基づき、相互作用を持つ前記複数の分子による構造を探索する構造探索部を備えることを特徴とする構造探索装置。
【請求項2】
前記位置ビットに前記構成単位が存在するときを1とし、前記位置ビットに前記構成単位が存在しないときを0とすると、
前記構造探索部が、前記(B-1)において、前記一の分子における個々の前記構成単位に用意された前記位置ビットの和が1でないときに、前記コスト関数に対して正のコストを与える、請求項1に記載の構造探索装置。
【請求項3】
前記位置ビットに前記構成単位が存在するときを1とし、前記位置ビットに前記構成単位が存在しないときを0とすると、
前記構造探索部が、前記(B-2)において、前記複数の分子における個々の前記構成単位に用意された前記位置ビットどうしの間において、同じ位置の前記位置ビットの和が0又は1ではないときに、前記コスト関数に対して正のコストを与える、請求項1又は2に記載の構造探索装置。
【請求項4】
前記負の相互作用及び前記本来の相互作用が、次の不等式、
前記負の相互作用 < 前記本来の相互作用、
を満たす、請求項1から3のいずれかに記載の構造探索装置。
【請求項5】
前記本来の相互作用が、
前記一の分子における前記構成単位と、前記他の分子における前記構成単位とが同じである場合の、前記一の分子における前記構成単位と前記他の分子における前記構成単位との相互作用αと、
前記一の分子における前記構成単位と、前記他の分子における前記構成単位とが異なる場合の、前記一の分子における前記構成単位と前記他の分子における前記構成単位との相互作用βとが異なるようにして与えられる、請求項1から4のいずれかに記載の構造探索装置。
【請求項6】
前記構造探索部が、下記式(1)で表される前記コスト関数に基づき、前記複数の分子による構造を探索する、請求項1から5のいずれかに記載の構造探索装置。
【数1】
ただし、前記式(1)において、
前記Eは、前記コスト関数であり、
前記Nは、前記分子の数であり、
前記N
iは、前記分子の番号であり、
前記nは、前記一の分子における前記構成単位の番号であり、
前記N
pは、個々の前記分子における個々の前記構成単位毎に用意した前記位置ビットにおける、隣接する前記位置ビットの数であり、
前記i
pは、個々の前記分子における個々の前記構成単位毎に用意した前記位置ビットにおける、隣接する前記位置ビットの番号であり、
前記vは、前記負の相互作用の大きさを表す数値であり、
前記x
mは、m番目の前記位置ビットが0又は1であることを表すバイナリ変数であり、
前記n
Niは、前記一の分子における前記構成単位の数であり、
前記E
pairは、前記本来の相互作用の大きさを表す数値であり、
前記p
1及び前記p
2は、正の数であり、
前記Mは、前記構成単位の総数であり、
前記tは、個々の前記分子における個々の前記構成単位毎に用意した前記位置ビットの数であり、
前記iは、個々の前記分子における個々の前記構成単位毎に用意した前記位置ビットの番号である。
【請求項7】
前記構造探索部が、前記式(1)を、下記式(2)で表されるイジングモデルに変換した前記コスト関数に基づき、前記複数の分子による構造を探索する、請求項6に記載の構造探索装置。
【数2】
ただし、前記式(2)において、
前記w
ijは、i番目の前記位置ビットとj番目の前記位置ビットの間の重み付けのための係数であり、
前記b
iは、i番目の前記位置ビットに対するバイアスを表す数値であり、
前記x
iは、i番目の前記位置ビットが0又は1であることを表すバイナリ変数であり、
前記x
jは、j番目の前記位置ビットが0又は1であることを表すバイナリ変数である。
【請求項8】
前記構造探索部が、焼き鈍し法により前記コスト関数を安定化することにより、前記複数の分子による構造を探索する、請求項1から7のいずれかに記載の構造探索装置。
【請求項9】
前記構成単位が、原子群又は原子である、請求項1から8のいずれかに記載の構造探索装置。
【請求項10】
前記位置ビットが格子状に位置する、請求項1から9のいずれかに記載の構造探索装置。
【請求項11】
前記位置ビットに周期境界条件が課せられている、請求項1から10のいずれかに記載の構造探索装置。
【請求項12】
前記構造探索部が、乱数を用いて前記位置ビットを遷移させながら、温度を一の温度よりも高い温度から前記一の温度にかけて降温することを複数回繰り返して平均化することにより、前記複数の分子の前記一の温度における構造を探索する、請求項1から11のいずれかに記載の構造探索装置。
【請求項13】
前記構造探索部が、レプリカ交換法により、一の温度を一定時間保持した計算を行って平均化することにより、前記複数の分子の前記一の温度における構造を探索する、請求項1から11のいずれかに記載の構造探索装置。
【請求項14】
前記構造探索部が、焼き鈍し法により前記コスト関数を最小化することにより、相互作用を持つ前記複数の分子による構造を探索する、請求項1から11のいずれかに記載の構造探索装置。
【請求項15】
相互作用を持つ複数の分子による構造を探索する構造探索方法であって、
前記複数の分子に含まれる構成単位の数と、前記複数の分子に含まれる分子の数と、に基づいて算出される数の位置ビットを、前記複数の分子に含まれる個々の分子における個々の前記構成単位毎に用意し、
(A-1)前記複数の分子に含まれる一の分子における個々の前記構成単位が隣接して存在する位置ビットに与える負の相互作用と、
(A-2)前記複数の分子に含まれる他の分子における前記構成単位が隣接して存在する位置ビットに与える、前記分子の相互間における本来の相互作用と、
(B-1)前記一の分子における個々の前記構成単位毎に用意された前記位置ビットにおいて、前記一の分子における個々の前記構成単位は、前記一の分子における個々の前記構成単位毎に用意された前記位置ビットに1つ存在するという制約と、
(B-2)前記複数の分子における個々の前記構成単位毎に用意された前記位置ビット間において、同じ位置の前記位置ビットには、前記複数の分子の内のいずれかにおける前記構成単位は1つ存在するか又は存在しないという制約と、
を含むコスト関数に基づき、相互作用を持つ前記複数の分子による構造を探索する構造探索工程を含む
処理をコンピュータが実行することを特徴とする構造探索方法。
【請求項16】
相互作用を持つ複数の分子による構造を探索する構造探索プログラムであって、
前記複数の分子に含まれる構成単位の数と、前記複数の分子に含まれる分子の数と、に基づいて算出される数の位置ビットを、前記複数の分子に含まれる個々の分子における個々の前記構成単位毎に用意し、
(A-1)前記複数の分子に含まれる一の分子における個々の前記構成単位が隣接して存在する位置ビットに与える負の相互作用と、
(A-2)前記複数の分子に含まれる他の分子における前記構成単位が隣接して存在する位置ビットに与える、前記分子の相互間における本来の相互作用と、
(B-1)前記一の分子における個々の前記構成単位毎に用意された前記位置ビットにおいて、前記一の分子における個々の前記構成単位は、前記一の分子における個々の前記構成単位毎に用意された前記位置ビットに1つ存在するという制約と、
(B-2)前記複数の分子における個々の前記構成単位毎に用意された前記位置ビット間において、同じ位置の前記位置ビットには、前記複数の分子の内のいずれかにおける前記構成単位は1つ存在するか又は存在しないという制約と、
を含むコスト関数に基づき、相互作用を持つ前記複数の分子による構造を探索する処理を、コンピュータに行わせることを特徴とする構造探索プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本件は、構造探索装置、構造探索方法、及び構造探索プログラムに関する。
【背景技術】
【0002】
近年、創薬などの場面においては、計算機(コンピュータ)を用いてサイズの大きな分子の安定構造を求めることが必要となる場合がある。しかし、例えば、分子を形成する原子の数が多い場合などにおいては、全ての原子を露わに考慮する計算では、現実的な時間内に安定構造を探索することが困難になるときがある。
【0003】
分子構造の粗視化に関する技術としては、例えば、タンパク質におけるアミノ酸残基の一次元配列情報に基づき、直鎖(一続き)の単純立方格子構造に粗視化して、格子タンパク質(Lattice Protein)として扱う技術が研究されている。Lattice Proteinにおいては、量子アニーリングの技術を用いて、安定構造を高速に探索する技術が報告されている(例えば、非特許文献1、非特許文献2参照)。
【0004】
これらのLattice Proteinの安定構造をアニーリングマシンで探索する技術においては、格子における起点となる位置を決めて、アミノ酸残基の進行方向又はアミノ酸残基の隣接位置を、ビット(0又は1)で表現する。そのため、これらの従来技術は、直鎖状に繋がった一つの分子の構造のみを探索可能な技術であり、ポリマー集合体などの複数の分子で形成される構造の探索には用いることができない。
【先行技術文献】
【非特許文献】
【0005】
【文献】Alejandro Perdomo-Ortiz et.al., Finding low-energy conformations of lattice protein models by quantum annealing,Scientific Reports volume 2, Article number: 571 (2012)
【文献】R. Babbush et.al., Construction of Energy Functions for Lattice Heteropolymer Models: A Case Study in Constraint Satisfaction Programmisng and Adiabatic Quantum Optimization, Advances in Chemical Physics, 155, 201-244
【発明の概要】
【発明が解決しようとする課題】
【0006】
一つの側面では、本件は、複数の分子による構造を探索することができる構造探索装置、構造探索方法、及び構造探索プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記の課題を解決するための手段の一つの実施態様は、以下の通りである。
すなわち、一つの実施態様では、構造探索装置は、相互作用を持つ複数の分子による構造を探索する構造探索装置であって、
複数の分子に含まれる構成単位の数と、複数の分子に含まれる分子の数と、に基づいて算出される数の位置ビットを、複数の分子に含まれる個々の分子における個々の構成単位毎に用意し、
(A-1)複数の分子に含まれる一の分子における個々の構成単位が隣接して存在する位置ビットに与える負の相互作用と、
(A-2)複数の分子に含まれる他の分子における構成単位が隣接して存在する位置ビットに与える、分子の相互間における本来の相互作用と、
(B-1)一の分子における個々の構成単位毎に用意された位置ビットにおいて、一の分子における個々の構成単位は、一の分子における個々の構成単位毎に用意された位置ビットに1つ存在するという制約と、
(B-2)複数の分子における個々の構成単位毎に用意された位置ビット間において、同じ位置の位置ビットには、複数の分子の内のいずれかにおける構成単位は1つ存在するか又は存在しないという制約と、
を含むコスト関数に基づき、相互作用を持つ複数の分子による構造を探索する構造探索部を備える。
【0008】
また、一つの実施態様では、構造探索方法は、相互作用を持つ複数の分子による構造を探索する構造探索方法であって、
複数の分子に含まれる構成単位の数と、複数の分子に含まれる分子の数と、に基づいて算出される数の位置ビットを、複数の分子に含まれる個々の分子における個々の構成単位毎に用意し、
(A-1)複数の分子に含まれる一の分子における個々の構成単位が隣接して存在する位置ビットに与える負の相互作用と、
(A-2)複数の分子に含まれる他の分子における構成単位が隣接して存在する位置ビットに与える、分子の相互間における本来の相互作用と、
(B-1)一の分子における個々の構成単位毎に用意された位置ビットにおいて、一の分子における個々の構成単位は、一の分子における個々の構成単位毎に用意された位置ビットに1つ存在するという制約と、
(B-2)複数の分子における個々の構成単位毎に用意された位置ビット間において、同じ位置の位置ビットには、複数の分子の内のいずれかにおける構成単位は1つ存在するか又は存在しないという制約と、
を含むコスト関数に基づき、相互作用を持つ複数の分子による構造を探索する構造探索工程を含む。
【0009】
さらに、一つの実施態様では、構造探索プログラムは、相互作用を持つ複数の分子による構造を探索する構造探索プログラムであって、
複数の分子に含まれる構成単位の数と、複数の分子に含まれる分子の数と、に基づいて算出される数の位置ビットを、複数の分子に含まれる個々の分子における個々の構成単位毎に用意し、
(A-1)複数の分子に含まれる一の分子における個々の構成単位が隣接して存在する位置ビットに与える負の相互作用と、
(A-2)複数の分子に含まれる他の分子における構成単位が隣接して存在する位置ビットに与える、分子の相互間における本来の相互作用と、
(B-1)一の分子における個々の構成単位毎に用意された位置ビットにおいて、一の分子における個々の構成単位は、一の分子における個々の構成単位毎に用意された位置ビットに1つ存在するという制約と、
(B-2)複数の分子における個々の構成単位毎に用意された位置ビット間において、同じ位置の位置ビットには、複数の分子の内のいずれかにおける構成単位は1つ存在するか又は存在しないという制約と、
を含むコスト関数に基づき、相互作用を持つ複数の分子による構造を探索する処理を、コンピュータに行わせる。
【発明の効果】
【0010】
一つの側面では、本件は、複数の分子による構造を探索することができる構造探索装置、構造探索方法、及び構造探索プログラムを提供できる。
【図面の簡単な説明】
【0011】
【
図1A】
図1Aは、タンパク質の粗視化して安定構造を探索する際の一例を示す模式図である(その1)。
【
図1B】
図1Bは、タンパク質の粗視化して安定構造を探索する際の一例を示す模式図である(その2)。
【
図1C】
図1Cは、タンパク質の粗視化して安定構造を探索する際の一例を示す模式図である(その3)。
【
図2A】
図2Aは、Turn encording法の一例を説明するための模式図である(その1)。
【
図2B】
図2Bは、Turn encording法の一例を説明するための模式図である(その2)。
【
図2C】
図2Cは、Turn encording法の一例を説明するための模式図である(その3)。
【
図2D】
図2Dは、Turn encording法の一例を説明するための模式図である(その4)。
【
図3A】
図3Aは、Diamond encording法の一例を説明するための模式図である(その1)。
【
図3B】
図3Bは、Diamond encording法の一例を説明するための模式図である(その2)。
【
図3C】
図3Cは、Diamond encording法の一例を説明するための模式図である(その3)。
【
図3D】
図3Dは、Diamond encording法の一例を説明するための模式図である(その4)。
【
図3E】
図3Eは、Diamond encording法の一例を説明するための模式図である(その5)。
【
図4】
図4は、ブロックコポリマーの構造の一例を示す模式図である。
【
図5】
図5は、本件で開示する技術の一例における周期境界条件の一例を説明するための模式図である。
【
図6A】
図6Aは、構成単位と位置ビットの関係の一例を示す模式図である。
【
図6B】
図6Bは、構成単位と位置ビットの関係の他の一例を示す模式図である。
【
図7A】
図7Aは、構成単位A及びBで構成される分子ABが2つ存在する構造を探索する場合の相互作用の一例を示す模式図である(その1)。
【
図7B】
図7Bは、構成単位A及びBで構成される分子ABが2つ存在する構造を探索する場合の相互作用の一例を示す模式図である(その2)。
【
図8】
図8は、構成単位毎に用意した位置ビットの一例を示す模式図である。
【
図9】
図9は、一つの分子における構成単位が互いに分離することなく、かつ、構成単位どうしが重ならずに、一つの位置ビットに一つずつ配置された構造の一例を示す模式図である。
【
図10】
図10は、本件で開示する構造探索装置のハードウェア構成例を表す図である。
【
図11】
図11は、本件で開示する構造探索装置の他のハードウェア構成例を表す図である。
【
図12】
図12は、本件で開示する構造探索装置の他のハードウェア構成例を表す図である。
【
図13】
図13は、本件で開示する構造探索装置の機能構成例を表す図である。
【
図15】
図15は、本件で開示する技術の一例を用いて、複数の分子による構造を探索する際のフローチャートの例である。
【
図16】
図16は、本件で開示する技術の一例を用いて、複数の所望の温度(一の温度)における構造を探索して、当該構造のエネルギーを算出する際のフローチャートの例である。
【
図17】
図17は、焼き鈍し法に用いる最適化装置(制御部)の機能構成の一例を示す図である。
【
図18】
図18は、遷移制御部の回路レベルの一例を示すブロック図である。
【
図19】
図19は、遷移制御部の動作フローの一例を示す図である。
【
図20】
図20は、実施例1-1における構造の探索結果を示す模式図である。
【
図21】
図21は、実施例1-2における構造の探索結果を示す模式図である。
【
図22】
図22は、実施例2-1及び2-2における温度毎のエネルギーの平均値を示す図である。
【
図23】
図23は、本件で開示する技術の実施例及び従来技術における、分子の構造探索の一例を示す図である。
【発明を実施するための形態】
【0012】
(構造探索装置)
本件で開示する構造探索装置は、相互作用を持つ複数の分子による構造を探索する装置である。本件で開示する構造探索装置は、構造探索部を有し、更に必要に応じてその他の部(手段)を有する。
【0013】
本件で開示する技術の詳細を説明する前に、従来技術としてのLattice Proteinを用いた技術を用いて、タンパク質の折り畳み構造を求める方法について説明する。
まず、Lattice Proteinを用いた技術の一つであるTurn encoding法について説明する。
【0014】
Lattice Proteinを用いたタンパク質(又はペプチド)の構造探索を行う際には、まず、タンパク質の粗視化を行う。ここで、タンパク質の粗視化は、例えば、
図1Aに示すように、タンパク質を構成する原子2を、アミノ酸残基ごとの単位である粗視化粒子1A、1B、1Cに粗視化して粗視化モデルを作成することにより行う。
次に、作成した粗視化モデルを用いて安定な結合構造の探索を行う。
図1Bにおいては、粗視化粒子1Cが矢印の終点に位置する結合構造が安定である場合の例を示す。ここで、安定な結合構造の探索は、後述するTurn encoding法又はDiamond encording法によって行う。
そして、
図1Cに示すように、探索した安定な構造に基づいて、粗視化モデルを全原子のモデルに戻す。
【0015】
Turn encoding法では、一般的に、タンパク質を形成する鎖状のアミノ酸を粗視化した粒子(粗視化モデル)を、格子の格子点に当てはめる際に、格子における起点となる位置を決めて、アミノ酸残基の進行方向をビットで表現する。
以下では、説明の簡略化のため、Turn encording法について、二次元の場合を例として説明する。
【0016】
ここで、二次元の格子におけるアミノ酸残基の進行方向を、例えば、
図2Aに示すように2つのビット(2bit)で定義する場合を考える。
図2Aに示す例では、例えば、ビットが〔00〕であるときは下向きにアミノ酸残基が進行(結合)することを表し、ビットが〔01〕であるときは右向きにアミノ酸残基が進行することを表す。同様に、
図2Aに示す例では、例えば、ビットが〔10〕であるときは左向きにアミノ酸残基が進行することを表し、ビットが〔11〕であるときは上向きにアミノ酸残基が進行することを表す。
【0017】
Turn encording法において、
図2Bに示すように、格子の中心に番号1のアミノ酸残基を配置する場合、番号2のアミノ酸残基を番号1のアミノ酸残基の右の格子点に配置するときには、アミノ酸残基の進行方向を表すビットは〔01〕となる。
次に、
図2Cに示すように、番号3のアミノ酸残基を番号2のアミノ酸残基の下の格子点に配置するときには、アミノ酸残基の進行方向を表すビットは〔0100〕となる。
続いて、
図2Dに示すように、番号4のアミノ酸残基を番号3のアミノ酸残基の左の格子点に配置するときには、アミノ酸残基の進行方向を表すビットは〔010010〕となる。
このように、Turn encording法では、格子における起点となる位置を決めて、アミノ酸残基の進行方向をビットで表すことにより、粗視化したタンパク質の構造を表現することができる。
【0018】
次に、Lattice Proteinを用いた技術の他の例として、Diamond encoding法について説明する。
【0019】
ここで、Diamond encording法は、一般的に、タンパク質を形成する鎖状のアミノ酸を粗視化した粒子(粗視化モデル)を、ダイアモンド格子の格子点に当てはめていく手法であり、三次元のタンパク質の構造を表現可能である。
以下では、説明の簡略化のため、Diamond encording法について、二次元の場合を例として説明する。
【0020】
図3Aは、5つのアミノ酸残基が結合した直鎖ペンタペプチドが直線構造を有する場合の構造の一例を示す図である。また、
図3Aから3Eにおいて、丸の中の番号は、直鎖ペンタペプチドにおけるアミノ酸残基の番号を表す。
【0021】
Diamond encording法において、まず、ダイアモンド格子の中心に、番号1のアミノ酸残基を配置すると、
図3Bに示すように、番号2のアミノ酸残基の配置可能な場所は、中心に隣接する場所(番号2が付された場所)に限定される。
続いて、番号2のアミノ酸残基に結合する番号3のアミノ酸残基の配置可能な場所は、
図3Cにおいて、
図3Bで番号2が付された場所に隣接する場所(番号3が付された場所)に限定される。
そして、番号3のアミノ酸残基に結合する番号4のアミノ酸残基の配置可能な場所は、
図3Dにおいて、
図3Cで番号3が付された場所に隣接する場所(番号4が付された場所)に限定される。
さらに、番号4のアミノ酸残基に結合する番号5のアミノ酸残基の配置可能な場所は、
図3Eにおいて、
図3Dで番号4が付された場所に隣接する場所(番号5が付された場所)に限定される。
このようにして特定された配置可能な場所どうしを、アミノ酸残基の番号の順に繋いでいくことにより、粗視化したタンパク質の構造を表現することができる。言い換えると、Diamond encording法においては、格子における起点となる位置を決めて、アミノ酸残基の隣接位置をビットで表現することにより、粗視化したタンパク質の構造を表現することができる。
【0022】
しかしながら、これらのLattice Proteinを用いた従来技術は、一つのタンパク質の構造を探索することを目的とした技術であり、複数の分子で形成される構造の探索を行うことはできない。言い換えると、上述した従来技術は、直鎖状に繋がった一つの分子の構造のみを探索可能な技術であり、ポリマー集合体などの複数の分子で形成される構造の探索には用いることができない。
より具体的には、例えば、
図4に示すようなブロックコポリマーにおいては、粒子AからDが結合して形成された分子が複数存在し、異なる分子間における粒子どうしの相互作用により、粒子A及びBで形成される層と、粒子C及びDで形成される層とに分かれている。このような、相互作用を持つ複数の分子の構造は、格子における起点となる位置を決めて、アミノ酸残基の進行方向又はアミノ酸残基の隣接位置をビットで表現する従来技術では、表現することができない。
【0023】
また、タンパク質の構造を探索する際においても、複数の分子で形成される構造を探索することが求められる場合がある。例えば、タンパク質の中には、三次元構造に折り畳まれた三次構造を有する直鎖のポリペプチド(サブユニット)が複数結合することにより、四次構造を形成するものが多く存在する。タンパク質の機能の発現には、当該タンパク質の四次構造が重要となる場合があり、創薬などの場面においては、タンパク質の四次構造を正確に探索することが必要となるときがある。
しかしながら、タンパク質の四次構造は、複数のポリペプチドで形成された構造であるため、上述した従来技術では、その構造を探索することができない。
【0024】
そこで、本発明者は、複数の分子による構造を探索することができる装置等について鋭意検討を重ね、本件で開示する技術を想到した。すなわち、本発明者は、複数の分子に含まれる構成単位の数と、複数の分子に含まれる分子の数と、に基づいて算出される数の位置ビットを、複数の分子に含まれる個々の分子における個々の構成単位毎に用意し、
(A-1)複数の分子に含まれる一の分子における個々の構成単位が隣接して存在する位置ビットに与える負の相互作用と、
(A-2)複数の分子に含まれる他の分子における構成単位が隣接して存在する位置ビットに与える、分子の相互間における本来の相互作用と、
(B-1)一の分子における個々の構成単位毎に用意された位置ビットにおいて、一の分子における個々の構成単位は、一の分子における個々の構成単位毎に用意された位置ビットに1つ存在するという制約と、
(B-2)複数の分子における個々の構成単位毎に用意された位置ビット間において、同じ位置の位置ビットには、複数の分子の内のいずれかにおける構成単位は1つ存在するか又は存在しないという制約と、
を含むコスト関数に基づいた探索行うことにより、複数の分子による構造を探索することができることを見出した。
以下では、本件で開示する技術の一例を、図面を参照しながら説明する。なお、本件で開示する技術の一例としての構造探索装置における、複数の分子による構造の探索などの処理(動作)は、例えば、構造探索装置が有する構造探索部により行うことができる。
【0025】
本件で開示する技術の一例においては、まず、探索する構造に含まれる複数の分子に含まれる構成単位の数と、複数の分子に含まれる分子の数と、に基づいて算出される数の位置ビットを、複数の分子に含まれる個々の分子における個々の構成単位毎に用意する。
【0026】
<探索する構造>
本件で開示する技術の一例で探索する構造としては、複数の分子で形成される構造であれば特に制限はなく、目的に応じて適宜選択することができる。
ここで、本件で開示する技術の一例における分子としては、特に制限はなく、目的に応じて適宜選択することができ、例えば、ポリマー、タンパク質(ペプチド)、低分子化合物などが挙げられる。
【0027】
ポリマーとしては、特に制限はなく、目的に応じて適宜選択することができ、探索する構造の中に複数の種類のポリマーが含まれていてもよい。
タンパク質としては、特に制限はなく、目的に応じて適宜選択することができ、探索する構造の中に、異なるアミノ酸配列を有するタンパク質が含まれていてもよい。
低分子化合物としては、特に制限はなく、目的に応じて適宜選択することができ、例えば、分子量が1万以下の化合物とすることができる。
また、探索する構造としては、例えば、タンパク質と低分子化合物の複合体の構造などであってもよい。
【0028】
<<構成単位>>
本件で開示する技術の一例における構成単位とは、探索する構造に含まれる分子を構成する単位を意味する。構成単位としては、特に制限はなく、分子の種類などに応じて適宜選択することができる。
分子がポリマーである場合、構成単位としては、例えば、分子を構成する各原子としてもよいし、複数の原子毎に粗視化した粗視化粒子(原子群)としてもよい。
分子がタンパク質である場合、構成単位としては、例えば、タンパク質を構成するアミノ酸残基毎に粗視化した粗視化粒子とすることができる。
分子が低分子化合物である場合、構成単位としては、例えば、分子を構成する各原子としてもよいし、複数の原子毎に粗視化した粗視化粒子としてもよい。
このように、本件で開示する技術の一例においては、構成単位を原子群又は原子とすることができる。
【0029】
<<位置ビット>>
本件で開示する技術の一例における位置ビットは、探索する構造に含まれる分子を構成する構成単位の位置を表すビットを意味する。位置ビットは、本件で開示する技術の一例においては、例えば、「1」であるときに当該位置ビットに構成単位が存在することを意味し、「0」であるときに当該位置ビットに構成単位が存在しないことを意味する。
位置ビットを配置する位置としては、特に制限はなく、目的に応じて適宜選択することができ、例えば、格子状に位置させてもよいし、不規則に配置させてもよい。本件で開示する技術の一例においては、位置ビットが、格子状に位置することが好ましい。
ここで、位置ビットを格子状に位置させる場合において、格子の構造としては、特に制限はなく、目的に応じて適宜選択することができ、例えば、平面の格子、単純立方格子、体心立方格子、面心立方格子などが挙げられる。
【0030】
また、本件で開示する技術の一例においては、位置ビットに周期境界条件が課せられていることが好ましい。ここで、周期境界条件とは、例えば、位置ビットを配置した立方体(又は長方形)形状の計算系において、当該計算系の周囲を取り囲むように、当該計算系と同一の仮想的な計算系を複数個配置した場合の条件を意味する。言い換えると、周期境界条件とは、位置ビットを配置した立方体(又は長方形)形状の計算系において、当該計算系の特定の二つの境界面における状況(状態)が等しくなるような条件を意味する。なお、上記の特定の二つの境界面としては、例えば、立方体(又は長方形)において、互いに対向する面(又は線)などとすることができる。
本件で開示する技術は、一つの側面では、位置ビットに周期境界条件を課すことにより、位置ビットを配置した計算系に境界が存在することによる悪影響を抑制できるため、バルクな状態に近い条件で複数の分子による構造を探索することができる。これにより、本件で開示する技術は、一つの側面では、計算系における境界の影響を適切に考慮して、より高い精度で複数の分子による構造を探索することができる。
【0031】
ここで、
図5に、番号1から4で表される4つの位置ビットを配置した計算系(
図5の中央の計算系)に対して周期境界条件を課し、中央の計算系の周囲を取り囲むように、中央の計算系と同一の仮想的な計算系を配置した場合の例を示す。
例えば、中央の計算系における番号1の位置ビットの左側には、中央の計算系の左側に位置する計算系における番号2の位置ビットが隣接している。このため、周期境界条件下においては、例えば、番号1の位置ビットの左側の境界と、番号2の位置ビットの右側の境界とにおける状況(状態)が等しいという条件で構造の探索を行う。言い換えると、周期境界条件下においては、例えば、番号1の位置ビットの左側と、番号2の位置ビットの右側とが相互作用可能な条件で構造の探索を行う。
このように、本件で開示する技術は、一つの側面では、位置ビットに周期境界条件を課すことにより、構成単位毎の相互作用をより適切に考慮して、より高い精度で複数の分子による構造を探索することができる。
また、周期境界条件を課した構造の探索は、例えば、位置ビット毎に、周期境界条件を課した場合における当該位置ビットに隣接する位置ビットの組み合わせを特定し、特定した位置ビットの組み合わせに基づいて構造を探索することにより行うことができる。
【0032】
ここで、本件で開示する技術の一例においては、位置ビットを、探索する構造に含まれる複数の分子に含まれる構成単位の数と、複数の分子に含まれる分子の数と、に基づいて算出される数の位置ビットを、複数の分子に含まれる個々の分子における個々の構成単位毎に用意する。なお、以下では、「探索する構造に含まれる複数の分子の構成単位の数」を「構成単位数」と、「探索する構造に含まれる複数の分子の数」を「分子数」と称することがある。
構成単位数と分子数とに基づいて算出される数としては、例えば、構成単位数と分子数に対する総和により算出される数とすることができる。構成単位数と分子数に対する総和により算出される数としては、構成単位数と分子数に対する総和としてもよいし、構成単位数と分子数に対する総和よりも大きな数としてもよい。言い換えると、本件で開示する技術の一例における、構成単位数と分子数とに基づいて算出される数としては、探索する構造に含まれる構成単位の数以上の数とすることができる。つまり、本件で開示する技術の一例においては、探索する複数の分子の構造に含まれる構成単位の総数よりも多い数の位置ビットを用意してもよい。
【0033】
また、本件で開示する技術の一例においては、位置ビットを、複数の分子に含まれる個々の分子における個々の構成単位毎に用意する。言い換えると、本件で開示する技術の一例においては、探索する構造に含まれる全ての構成単位について、構成単位数と分子数とに基づいて算出される数の位置ビットをそれぞれ用意する。
【0034】
ここで、
図6Aの例に示すように、構成単位A及びBで構成される分子ABと、構成単位C及びDで構成される分子CDとを含む構造を探索する場合において、構成単位数と分子数に対する総和により算出される数の位置ビットを用意する場合について説明する。
まず、
図6Aの例においては、分子AB及び分子CDが共に2つの構成単位で構成されている。さらに、
図6Aの例においては、探索する構造には分子ABと分子CDの2つの分子が含まれるため、探索する構造に含まれる分子の数である分子数は2となる。
すなわち、
図6Aの例においては、構成単位数が2であり、分子数が2であるため、構成単位数と分子数に対する総和は4となる。
【0035】
このため、
図6Aの例において、個々の分子における個々の構成単位毎に、位置ビットを用意すると、構成単位AからDの4つの構成単位毎に、4つの位置ビットを用意することになるため、合計では16個の位置ビットが用意される。
【0036】
次に、
図6Bの例に示すように、構成単位A及びBで構成される分子ABを8個含む構造を探索する場合において、構成単位数と分子数に対する総和により算出される数の位置ビットを用意する場合について説明する。
まず、
図6Bの例においては、分子ABは2つの構成単位で構成されている。さらに、
図6Bの例においては、探索する構造には8個の分子ABが含まれるため、分子数は8となる。
すなわち、
図6Bの例においては、構成単位数が2であり、分子数が8であるため、構成単位数と分子数に対する総和は16となる。
【0037】
ここで、
図6Bの例では、8個の構成単位Aと8個の構成単位Bとが構造に含まれるため、合計では16個の構成単位が、探索する構造に含まれることになる。このため、
図6Bの例において、複数の分子に含まれる個々の分子における個々の構成単位毎に、位置ビットを用意すると、16個の構成単位毎に、16個の位置ビットを用意することになるため、合計では256個の位置ビットが用意される。
【0038】
このようにして、位置ビットを、複数の分子に含まれる個々の分子における個々の構成単位毎に用意することにより、本件で開示する技術は、一つの側面では、構成単位が存在し得る全ての位置を考慮した上で、相互作用を持つ複数の分子による構造を探索することができる。
なお、ここまでは、説明の簡略化のため、二次元の構造を探索する例を挙げて説明したが、本件で開示する技術の一例においては、三次元に位置ビットを配置することにより、三次元の構造を探索可能である。
【0039】
<コスト関数>
本件で開示する技術の一例においては、少なくとも以下の(A-1)から(B-2)の4つの相互作用又は制約を含むコスト関数に基づき、相互作用を持つ複数の分子による構造を探索する。
(A-1)複数の分子に含まれる一の分子における個々の構成単位が隣接して存在する位置ビットに与える負の相互作用
(A-2)複数の分子に含まれる他の分子における構成単位が隣接して存在する位置ビットに与える、分子の相互間における本来の相互作用
(B-1)一の分子における個々の構成単位毎に用意された位置ビットにおいて、一の分子における個々の構成単位は、一の分子における個々の構成単位毎に用意された位置ビットに1つ存在するという制約
(B-2)複数の分子における個々の構成単位毎に用意された位置ビット間において、同じ位置の位置ビットには、複数の分子の内のいずれかにおける構成単位は1つ存在するか又は存在しないという制約
【0040】
上記の(A-1)から(B-2)を含むコスト関数としては、例えば、(A-1)の相互作用を表す項と、(A-2)の相互作用を表す項と、(B-1)の制約を表す項と、(B-2)の制約を表す項との和とすることができる。
また、本件で開示する技術においては、上記の(A-1)から(B-2)以外の相互作用や制約を、コスト関数に含んでいてもよい。なお、(A-1)から(B-2)以外の相互作用や制約としては、特に制限はなく、目的に応じて適宜選択することができる。
【0041】
ここで、上記の(A-1)における負の相互作用としては、複数の分子に含まれる一の分子における個々の構成単位が隣接して存在する位置ビットに与える相互作用であって、大きさが負(マイナスの符号をもつ)ものであれば特に制限はなく、目的に応じて適宜選択することができる。
上記の(A-1)における負の相互作用の大きさ(強さ)としては、例えば、(A-1)から(B-2)を含むコスト関数に基づいて構造を探索する際に、一の分子の構成単位が分離しないように(一の分子内の結合が切れないように)設定することが好ましい。一の分子の構成単位が分離しないような大きさの負の相互作用の設定は、例えば、実際に(A-1)から(B-2)を含むコスト関数に基づいた構造の探索を行って、負の相互作用の大きさをチューニングしていくことにより行うことができる。
【0042】
なお、複数の分子に含まれる一の分子における個々の構成単位が隣接して存在する位置ビットとしては、構成単位どうしが互いに接して存在する最近接の位置ビットのみに限られるものではなく、例えば、最近接の位置ビットの他に、最近接の位置ビット以外の位置ビットを含んでもよい。
【0043】
上記の(A-2)の分子の相互間における本来の相互作用としては、複数の分子に含まれる他の分子における構成単位が隣接して存在する位置ビットに与える相互作用であれば特に制限はなく、目的に応じて適宜選択することができる。
ここで、本来の相互作用とは、例えば、分子の相互間において作用する静電相互作用やファンデルワールス力などを表現する相互作用を意味する。
【0044】
上記の(A-2)における本来の相互作用の大きさ(強さ)は、例えば、構成単位の種類の組み合わせ毎に設定することが好ましい。こうすることにより、本件で開示する技術は、一つの側面では、構成単位どうしの性質に応じた本来の相互作用を含むコスト関数に基づいて、より高い精度で複数の分子による構造を探索することができる。
【0045】
上記の(A-2)における本来の相互作用の大きさは、例えば、構成単位の性質などに基づいて適宜設定することができる。
例えば、探索する構造に含まれる分子がポリマーや低分子化合物である場合、分子を構成する構成単位の性質に基づいた計算により、構成単位の種類の組み合わせ毎における本来の相互作用の大きさを表すパラメータを、適宜作成して用いることが好ましい。
また、探索する構造に含まれる分子がタンパク質である場合は、例えば、miyazawa-jernigan(MJ) matrixなどを参照して、構成単位の種類の組み合わせ毎における本来の相互作用の大きさを表すパラメータを決定することができる。また、タンパク質に、非天然アミノ酸残基が含まれる場合は、当該非天然アミノ酸残基と、その他のアミノ酸残基との相互作用パラメータを、適宜作成して用いることが好ましい。
【0046】
上記の(A-2)における本来の相互作用としては、例えば、下記の相互作用αと相互作用βとが異なるようにしてもよい。
相互作用α:一の分子における構成単位と、他の分子における構成単位とが同じである場合の、一の分子における構成単位と他の分子における構成単位との相互作用。
相互作用β:一の分子における構成単位と、他の分子における構成単位とが異なる場合の、一の分子における構成単位と他の分子における構成単位との相互作用。
【0047】
上記の相互作用αと相互作用βとが異なる場合の例として、
図7A及び7Bに示すような、構成単位A及びBで構成される分子ABが2つ存在する構造を探索する場合について説明する。
図7Aに示すように、例えば、2つの分子ABにおいて、構成単位Aどうし及び構成単位Bどうしが隣接している場合の、構成単位Aどうしの間の相互作用をV
AA、構成単位Bどうしの間の相互作用をV
BBとする。同様に、
図7Bに示すように、例えば、2つの分子ABにおいて、構成単位Aと構成単位Bが隣接している場合の、構成単位Aと構成単位Bとの間の相互作用をV
ABとする。
この例においては、上記の相互作用αの一例が相互作用V
AA及びV
BBとなり、相互作用βの一例が相互作用V
ABとなる。このため、
図7A及び7Bに示す例では、例えば、相互作用V
AA及びV
BBと、相互作用V
ABとが異なるようにすることで、上記の相互作用αと相互作用βとを異ならせることができる。
なお、
図7A及び7Bに示す例では、相互作用V
AA及びV
BBを同じ(大きさの)相互作用としたが、本件で開示する技術は、これに限られるものではなく、相互作用V
AAとV
BBとを異なる相互作用としてもよい。
【0048】
ここで、上記の(A-1)における負の相互作用と(A-2)における本来の相互作用は、例えば、数値として表現することができる。
上記の(A-1)における負の相互作用と(A-2)における本来の相互作用においては、次の不等式、〔負の相互作用 < 本来の相互作用〕、を満たすことが好ましい。
こうすることにより、本件で開示する技術は、一つの側面では、一の分子の構成単位が分離しない構造をより確実に探索することができるため、より高い精度で複数の分子による構造を探索することができる。
【0049】
上記の(B-1)の制約は、一の分子における個々の構成単位毎に用意された前記位置ビットにおいて、一の分子における個々の構成単位は、一の分子における個々の構成単位毎に用意された位置ビットに1つ存在するように加える制約である。言い換えると、上記の(B-1)の制約は、探索する構造に含まれる構成単位が、当該構成単位に用意された位置ビットのどれか1つに重複しないで存在するように加える制約である。
コスト関数が上記の(B-1)の制約を含むことにより、本件で開示する技術は、一つの側面では、探索する構造に含まれる各構成単位が一つずつ存在し、複数の分子の構造として矛盾のない構造を探索することができる。言い換えると、コスト関数が上記の(B-1)の制約を含むことにより、本件で開示する技術は、一つの側面では、構造を探索する際における構成単位の数の変動を抑制(構成単位の数を固定)できるため、入力した分子を構成する構成単位を、それぞれ一つずつ含む構造を探索することができる。
【0050】
ここで、
図8を参照して、(B-1)の制約の具体例について説明する。
なお、
図8においては、構成単位Aについて用意した4つの位置ビットを、それぞれ位置ビットA
1からA
4とする。構成単位BからDについても同様に、用意した位置ビットをそれぞれ位置ビットB
1からB
4、位置ビットC
1からC
4、位置ビットD
1からD
4とする。
図8の例は、構成単位AからDの4つの構成単位毎に、4つの位置ビットを用意した例である。
図8の例において、一の分子における個々の構成単位毎に用意された位置ビットは、例えば、構成単位Aにおける位置ビットA
1からA
4に対応する。
位置ビットA
1からA
4において、一の分子における個々の構成単位は、一の分子における個々の構成単位毎に用意された位置ビットに1つ存在する状態とは、例えば、位置ビットA
1からA
4の内のどれか1つに、構成単位が存在する状態を意味する。言い換えると、
図8の例における(B-1)の制約は、位置ビットに構成単位が存在するときを1とし、存在しないときを0とすると、構成単位Aにおける位置ビットA
1からA
4の内、どれか1つだけが1となり、その他の位置ビットが0となるような制約である。さらに、構成単位BからDについても、同様の制約を加えることにより、全ての構成単位について(B-1)の制約を加えることができる。
【0051】
上記の(B-1)の制約は、例えば、位置ビットに構成単位が存在するときを1とし、存在しないときを0とすると、個々の構成単位に用意された位置ビットの和が1でないときに、コスト関数に対して正のコストを与えることにより行うことが好ましい。ここで、コスト関数に対して正のコストを与えるとは、例えば、制約を表す項の値を、コスト関数の値が大きくなるような値とすることを意味する。
なお、コスト関数の値が大きいことは、例えば、当該コスト関数の値となる構造が、不安定である(エネルギーが高い)ことに対応すると考えることができる。
さらに、個々の構成単位に用意された位置ビットの和が1でないことは、例えば、一の分子における個々の構成単位が、一の分子における個々の構成単位毎に用意された位置ビットに1つ存在しない(1つも存在しない又は2つ以上存在する)ことに対応する。
【0052】
つまり、上記の(B-1)の制約において、個々の構成単位に用意された位置ビットの和が1でないときに、コスト関数に対して正のコストを与えることにより、複数の分子の構造として矛盾を生じうる構造におけるコスト関数の値を大きくすることができる。これにより、本件で開示する技術は、一つの側面では、コスト関数を安定化させて構造を探索する際に、探索する構造に含まれる各構成単位が一つずつ存在し、複数の分子の構造として矛盾のない構造を探索することができる。
【0053】
上記の(B-1)の制約として、個々の構成単位に用意された位置ビットの和が1でないときに、コスト関数に対して正のコストを与える場合における、上記の(B-1)制約を表す項の具体例について、
図8を参照して説明する。
図8の例において、例えば、構成単位Aにおける位置ビットA
1からA
4について、pを係数(正の数)とすると、p(A
1+A
2+A
3+A
4-1)
2を、上記の(B-1)制約を表す項として用いることができる。上記の項は、位置ビットA
1からA
4の内、どれか1つの位置ビットだけが1となり、その他の位置ビットが0となる場合、項の値が0となるが、その他の場合には、項の値は正の値となる。すなわち、上記の項は、位置ビットA
1からA
4の和が1でないときに、コスト関数に対して正のコストを与える項となっている。さらに、構成単位BからDについても、同様の項を用いることにより、全ての構成単位について位置ビットの和が1でないときに、コスト関数に対して正のコストを与えることができる。
【0054】
上記の(B-2)の制約は、複数の分子における個々の構成単位毎に用意された位置ビット間において、同じ位置の位置ビットには、複数の分子の内のいずれかにおける構成単位は1つ存在するか又は存在しないように加える制約である。言い換えると、上記の(B-2)の制約は、互いに異なる構成単位が、同じ位置の位置ビットに重なって存在しないように加える制約である。
コスト関数が上記の(B-2)の制約を含むことにより、本件で開示する技術は、一つの側面では、互いに異なる構成単位が同一の位置に存在せず、複数の分子の構造として矛盾のない構造を探索することができる。言い換えると、コスト関数が上記の(B-2)の制約を含むことにより、本件で開示する技術は、一つの側面では、構造を探索する際における異なる構成単位の重なりを抑制できるため、構成単位がそれぞれ別の位置に存在する構造を探索することができる。
【0055】
ここで、
図8を参照して、(B-2)の制約の具体例について説明する。
図8の例は、上述したように、構成単位AからDの4つの構成単位毎に、4つの位置ビットを用意した例である。
図8では、複数の分子における個々の構成単位毎に用意された位置ビット間における、同じ位置の位置ビットは、例えば、構成単位Aの位置ビットA
1、構成単位Bの位置ビットB
1、構成単位Cの位置ビットC
1、及び構成単位Dの位置ビットD
1に対応する。
位置ビットA
1、B
1、C
1、及びD
1において、同じ位置の位置ビットに、構成単位が1つ存在するか又は存在しない状態とは、例えば、位置ビットA
1、B
1、C
1、及びD
1の内のどれか1つに、構成単位が存在するか又は存在しない状態を意味する。言い換えると、
図8の例における(B-2)の制約は、位置ビットに構成単位が存在するときを1とし、存在しないときを0とすると、構成単位Aにおける位置ビットA
1、B
1、C
1、及びD
1の和が2以上とならないようにする制約である。さらに、構成単位A
2からD
2、構成単位A
3からD
3、構成単位A
4からD
4についても、同様の制約を加えることにより、全ての構成単位について(B-2)の制約を加えることができる。
【0056】
上記の(B-2)の制約は、例えば、個々の構成単位に用意された位置ビットどうしの間において、同じ位置の位置ビットの和が0又は1ではないときに、コスト関数に対して正のコストを与えることにより行うことが好ましい。なお、(B-1)の場合と同様に、位置ビットに構成単位が存在するときを1とし、当該位置ビットに構成単位が存在しないときを0とする。
ここで、位置ビットどうしの間において、同じ位置の位置ビットの和が0又は1ではないとは、例えば、互いに異なる構成単位が、同じ位置の位置ビットに重なって(2つ以上)存在することに対応する。
【0057】
つまり、位置ビットどうしの間で、同じ位置の位置ビットの和が0又は1ではないときに、コスト関数に対して正のコストを与えることにより、複数の分子の構造として矛盾を生じうる構造におけるコスト関数の値を大きくすることができる。これにより、本件で開示する技術は、一つの側面では、コスト関数を安定化させて構造を探索する際に、互いに異なる構成単位が同一の位置に重なって存在せず、複数の分子の構造として矛盾のない構造を探索することができる。
【0058】
上記の(B-2)の制約として、位置ビットどうしの間において、同じ位置の位置ビットの和が0又は1ではないときに、コスト関数に対して正のコストを与える場合における、上記の(B-2)制約を表す項の具体例について、
図8を参照して説明する。
図8の例において、例えば、位置ビットA
1、B
1、C
1、及びD
1について、pを係数(正の数)とすると、p(A
1+B
1+C
1+D
1-1)
2を、上記の(B-2)制約を表す項として用いることができる。上記の項は、位置ビットA
1、B
1、C
1、及びD
1の内、どれか1つの位置ビットだけが1となり、その他の位置ビットが0となる場合、項の値が0となるが、その他の場合には、項の値は正の値となる。すなわち、上記の項は、位置ビットA
1、B
1、C
1、及びD
1の和が1でないときに、コスト関数に対して正のコストを与える項となっている。さらに、構成単位A
2からD
2、構成単位A
3からD
3、構成単位A
4からD
4についても、同様の項を用いることにより、全ての構成単位について位置ビットの和が1でないときに、コスト関数に対して正のコストを与えることができる。
【0059】
また、上記の例においては、同じ位置の位置ビットの和が1ではないときに、コスト関数に対して正のコストを与える例について説明したが、上述したように、同じ位置の位置ビットの和が0でないときにも、コスト関数に対して正のコストを与えてもよい。この場合、例えば、位置ビットA1、B1、C1、及びD1について、pを係数(正の数)とすると、p(A1+B1+C1+D1-1)(A1+B1+C1+D1)を、上記の(B-2)制約を表す項として用いることができる。上記の項は、位置ビットA1、B1、C1、及びD1の内、全ての位置ビットが1又は0となる場合、項の値が0となるが、その他の場合には、項の値は正の値となる。
なお、位置ビットどうしの間において、同じ位置の位置ビットの和が0となる場合としては、例えば、探索する複数の分子の構造に含まれる構成単位の総数よりも多い数の位置ビットを用意した場合などが挙げられる。
【0060】
このように、本件で開示する技術の一例では、上記の(A-1)から(B-2)の4つの相互作用又は制約を含むコスト関数に基づいた探索を行うことにより、複数の分子による構造を正しく探索することができる。
ここで、
図6の例について、本件で開示する技術の一例を用いて構造を探索すると、例えば、
図9のような構造を得ることができる。
図9に示した例においては、一つの分子における構成単位が互いに分離することなく、かつ、構成単位どうしが重ならずに、一つの位置ビットに一つずつ配置された構造が探索されている。
【0061】
<<コスト関数の具体例>>
本件で開示する技術の一例におけるコスト関数としては、(A-1)から(B-2)の4つの相互作用又は制約を含むものであれば、特に制限はなく、目的に応じて適宜選択することができるが、例えば、下記の式(1)のコスト関数を用いることが好ましい。
【0062】
【数1】
ただし、上記式(1)において、Eは、コスト関数である。
Nは、探索する構造に含まれる分子の数であり、N
iは、分子の番号である。
nは、一の分子における構成単位の番号である。
N
pは、個々の分子における個々の構成単位毎に用意した位置ビットにおける、隣接する位置ビットの数であり、i
pは、個々の分子における個々の構成単位毎に用意した位置ビットにおける、隣接する位置ビットの番号である。
vは、(B-1)における負の相互作用の大きさを表す数値である。
x
mは、m番目の位置ビットが0又は1であることを表すバイナリ変数である。
n
Niは、一の分子における構成単位の数である。
E
pairは、(B-2)における本来の相互作用の大きさを表す数値である。
p
1及びp
2は、正の数である。
Mは、探索する構造に含まれる構成単位の総数である。
tは、個々の分子における個々の構成単位毎に用意した位置ビットの数であり、iは、個々の分子における個々の構成単位毎に用意した位置ビットの番号である。
【0063】
さらに、上記式(1)において、例えば、〈i,j〉のように表される表記は、iとjの組を意味する。
また、上記式(1)においては、i={0,1,2,......t-1}、Ni={0,1,2,......N-1}、n={0,1,2,......nNi-1}、ip={0,1,2,......Np-1}を満たす。なお、上記式(1)において、用意した位置ビットの総数は、tMで表される。
【0064】
加えて、上記式(1)においては、Mは次式を満たす。
【0065】
【0066】
上記式(1)において、用意した位置ビットの通し番号を意味するmは、次式を満たす。
【0067】
【0068】
上記式(1)におけるパラメータは、探索する構造に含まれる分子や構成単位の情報などに基づいて、適宜設定することができる。なお、例えば、v、p1、及びp2については、実際に上記式(1)に基づいた構造の探索を行って、数値をチューニングしておくことが好ましい。
【0069】
本件で開示する技術の一例では、上記式(1)における、右辺の一項目は(A-1)における負の相互作用に、右辺の二項目は(A-2)における本来の相互作用に、右辺の三項目は(B-1)の制約に、右辺の四項目は(B-2)の制約に、それぞれ対応する。
【0070】
(A-1)における負の相互作用に対応する上記式(1)の右辺の一項目は、個々の分子における個々の構成単位毎に用意した位置ビットにおける、隣接する位置ビットの間の負の相互作用の大きさの和を表す項である。
ここで、通常、上記式(1)の右辺の一項目におけるvは負の数となるため、xm及びxm’とが1となったときに、右辺の一項目はより絶対値の大きな負の数となり、コスト関数の値が小さくなる。なお、コスト関数の値が小さいことは、例えば、当該コスト関数の値となる構造が、安定である(エネルギーが低い)ことに対応すると考えることができる。
【0071】
(A-2)における本来の相互作用に対応する上記式(1)の右辺の二項目は、異なる分子における構成単位が隣接して存在する位置ビットの間の本来の相互作用の大きさの和を表す項である。
ここで、通常、上記式(1)の右辺の二項目におけるEpairは負の数となるため、xm及びxm’とが1となったときに、右辺の二項目はより絶対値の大きな負の数となり、コスト関数の値が小さくなる。
【0072】
(B-1)の制約に対応する上記式(1)の右辺の三項目は、個々の構成単位に用意された位置ビットの和が1でないときに、コスト関数に対して正のコストを与える(コスト関数の値を多くする)ペナルティーの項である。
ここで、上記式(1)の右辺の三項目におけるp1は正の数であるため、個々の構成単位に用意された位置ビットにおけるxmの和が1でないときに、右辺の三項目はより大きな正の数となり、コスト関数の値が大きくなる。
【0073】
(B-2)の制約に対応する上記式(1)の右辺の四項目は、個々の構成単位に用意された位置ビットどうしの間において、同じ位置の位置ビットの和が1ではないときに、コスト関数に対して正のコストを与えるペナルティーの項である。
ここで、上記式(1)の右辺の四項目におけるp2は正の数であるため、個々の構成単位に用意された位置ビットどうしの間における同じ位置の位置ビットxmの和が1でないときに、右辺の四項目はより大きな正の数となり、コスト関数の値が大きくなる。
また、上記式(1)の右辺の四項目は、同じ位置の位置ビットの和が1ではないときに、コスト関数に対して正のコストを与える項であるが、同じ位置の位置ビットの和が0でないときにも、正のコストを与えるように式(1)の右辺の四項目を変形してもよい。
【0074】
本件で開示する技術の一例においては、上記式(1)を、下記式(2)で表されるイジングモデルに変換したコスト関数に基づき、複数の分子による構造を探索することが好ましい。
【0075】
【数4】
ただし、上記式(2)において、w
ijは、i番目の位置ビットとj番目の位置ビットの間の重み付けのための係数である。
b
iは、i番目の位置ビットに対するバイアスを表す数値である。
x
iは、i番目の位置ビットが0又は1であることを表すバイナリ変数であり、x
jは、j番目の位置ビットが0又は1であることを表すバイナリ変数である。
【0076】
ここで、wijは、例えば、上記式(1)におけるv、Epair、p1、及びp2を、xiとxjの組み合わせ毎に抽出することにより求めることができ、通常は行列となる。
上記式(2)における右辺の一項目は、全回路から選択可能な2つの回路の全組み合わせについて、漏れと重複なく、2つの回路の状態と重み値との積を積算したものである。
また、上記式(2)における右辺の二項目は、全回路のそれぞれのバイアス値と状態との積を積算したものである。
つまり、上記式(1)のパラメータを抽出して、wij及びbiを求めることにより、上記式(1)を、上記式(2)で表されるイジングモデルに変換することができる。
【0077】
上記式(2)のようにQUBO(Quadratic Unconstrained Binary Optimization)形式のイジングモデル式で表されるコスト関数(ハミルトニアン)の安定化は、アニーリングマシンなどを用いた焼き鈍し法(アニーリング)を行うことにより、短時間で実行することができる。
このため、本件で開示する技術は、一つの側面では、上記式(2)を用いることで、アニーリングマシンなどを用いた焼き鈍し法により複数の分子による構造を探索することができるため、より短時間で構造の探索を行うことができる。言い換えると、本件で開示する技術は、一つの側面では、焼き鈍し法によりコスト関数を安定化することにより、より短時間で構造の探索を行うことができる。なお、焼き鈍し法の詳細については後述する。
【0078】
また、本件で開示する技術の一例においては、焼き鈍し法によりコスト関数を最小化することにより、相互作用を持つ複数の分子による構造を探索することが好ましい。こうすることにより、本件で開示する技術は、一つの側面では、コスト関数が最小となる最も安定な構造を、短時間で探索することができる。
なお、コスト関数が最小となる最も安定な構造は、例えば、絶対零度(0K)における複数の分子の構造に対応すると考えることができる。
【0079】
本件で開示する技術の一例においては、乱数を用いて位置ビットを遷移させながら、温度を一の温度よりも高い温度から一の温度にかけて降温することを複数回繰り返して平均化することにより、複数の分子の一の温度における構造を探索することも好ましい。なお、乱数を用いて位置ビットを遷移させる手法としては、例えば、メトロポリス法を用いることができる。
ここで、一の温度としては、特に制限はなく、目的に応じて適宜選択することができ、例えば、絶対温度以外の温度(有限温度)とすることができる。有限温度における複数の分子の構造は、温度によるゆらぎ等の影響から一意に決まらないこともあるため、乱数を用いて位置ビットを遷移させながら、温度を一の温度よりも高い温度から一の温度にかけて降温することを複数回繰り返して平均化することが好ましい。
このように、本件で開示する技術は、一つの側面では、所望の温度(一の温度)における相互作用を持つ複数の分子による構造を探索することができる。
また、例えば、一の温度を変更して、複数の温度における構造を探索することにより、温度の変化による構造の遷移を解析することもできる。これにより、本件で開示する技術は、一つの側面では、転移温度を境に規則状態から不規則状態へ向かってなだらかにエネルギー相変化する様子などが観測できる。
【0080】
さらに、本件で開示する技術の一例においては、レプリカ交換法により、一の温度を一定時間保持した計算を行って平均化することにより、複数の分子の一の温度における構造を探索することも好ましい。
ここで、レプリカ交換法とは、異なる温度をもつ、互いに相互作用しない系(レプリカ)を用意し、所定の条件で、それぞれの系の温度を交換する手法である。
本件で開示する技術は、一つの側面では、レプリカ交換法により、一の温度を一定時間保持した計算を行って平均化することで、所望の温度(一の温度)における相互作用を持つ複数の分子による構造を探索することができる。
【0081】
以下、装置の構成例やフローチャートを用いて、本件で開示する技術の一例を更に詳細に説明する。
図10に、本件で開示する構造探索装置のハードウェア構成例を示す。
構造探索装置10においては、例えば、制御部11、メモリ12、記憶部13、表示部14、入力部15、出力部16、I/Oインターフェース部17がシステムバス18を介して接続されている。
【0082】
制御部11は、演算(四則演算、比較演算、焼き鈍し法の演算等)、ハードウェア及びソフトウェアの動作制御などを行う。
制御部11としては、特に制限はなく、目的に応じて適宜選択することができ、例えば、CPU(Central Processing Unit)であってもよいし、後述する焼き鈍し法に用いる最適化装置であってもよく、これらの組み合わせでもよい。
本件で開示する構造探索装置における構造探索部は、例えば、制御部11により実現することができる。
【0083】
メモリ12は、RAM(Random Access Memory)、ROM(Read Only Memory)などのメモリである。RAMは、ROM及び記憶部13から読み出されたOS(Operating System)及びアプリケーションプログラムなどを記憶し、制御部11の主メモリ及びワークエリアとして機能する。
【0084】
記憶部13は、各種プログラム及びデータを記憶する装置であり、例えば、ハードディスクである。記憶部13には、制御部11が実行するプログラム、プログラム実行に必要なデータ、OSなどが格納される。
本件で開示する構造探索プログラムは、記憶部13に格納され、メモリ12のRAM(主メモリ)にロードされ、制御部11により実行される。
【0085】
表示部14は、表示装置であり、例えば、CRTモニタ、液晶パネルなどのディスプレイ装置である。
入力部15は、各種データの入力装置であり、例えば、キーボード、ポインティングデバイス(例えば、マウス等)などである。
出力部16は、各種データの出力装置であり、例えば、プリンタなどである。
I/Oインターフェース部17は、各種の外部装置を接続するためのインターフェースである。I/Oインターフェース部17は、例えば、CD-ROM(Compact Disc Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、MOディスク(Magneto-Optical disk)、USBメモリ〔USB(Universal Serial Bus) flash drive〕などのデータの入出力を可能にする。
【0086】
図11に、本件で開示する構造探索装置の他のハードウェア構成例を示す。
図11に示す例は、構造探索装置をクラウド型にした場合の例であり、制御部11が、記憶部13などとは独立している。
図11に示す例においては、ネットワークインターフェース部19、20を介して、記憶部13などを格納するコンピュータ30と、制御部11を格納するコンピュータ40とが接続される。
ネットワークインターフェース部19、20は、インターネットを利用して、通信を行うハードウェアである。
【0087】
図12に、本件で開示する構造探索装置の他のハードウェア構成例を示す。
図12に示す例は、構造探索装置をクラウド型にした場合の例であり、記憶部13が、制御部11などとは独立している。
図12に示す例においては、ネットワークインターフェース部19、20を介して、制御部11等を格納するコンピュータ30と、記憶部13を格納するコンピュータ40とが接続される。
【0088】
図13に、本件で開示する構造探索装置の機能構成例を示す。
図13に示す構造探索装置10は、構造探索部50を有し、構造探索部50は、カウント部51と、定義部52と、割当部53と、コスト関数規定部54と、重み抽出部55と、重みファイル作成部56と、演算部57と、結果出力部58とを有する。
【0089】
カウント部51は、入力された複数の分子の構造における、分子の数、各分子を構成する構成単位の数をカウントする。
定義部52では、カウントした分子の構成単位の数と、分子の数とに基づいて、探索する構造に含まれる個々の分子における個々の構成単位毎に用意すべき位置ビットの数を定義する。また、定義部52は、探索する構造の次元、及び周期性(例えば、周期境界条件を課すか否か)を考慮して、位置ビットの数を定義する。
割当部53では、定義部52で定義した数の位置ビットを、探索する構造に含まれる個々の分子における個々の構成単位毎に割り当てる(用意する)。言い換えると、割当部53では、各ビットX1~Xnに空間の情報を割り振る。また、割当部53は、探索する構造の周期性を考慮して、隣接する位置ビットの組み合わせを特定する。
【0090】
コスト関数規定部54では、(A-1)から(B-2)の4つの相互作用又は制約を含むコスト関数を規定する。コスト関数規定部54は、上記式(1)で表されるコスト関数を規定する。
重み抽出部55では、コスト関数規定部54で規定された上記式(1)のパラメータ(v、E
pair、p
1、及びp
2)を抽出する。
重みファイル作成部56では、抽出された重み係数に対応した重みファイルが作成される。重みファイルは、例えば、行列であり、2X
1X
2+4X
2X
3の場合、
図14のような行列のファイルとなる。言い換えると、重みファイル作成部56は、抽出したパラメータを用いて、上記式(2)におけるw
ij及びb
iを特定し、上記式(1)を、上記式(2)で表されるイジングモデルの式に変換する。
【0091】
演算部57は、上記式(2)で表されるイジングモデルの式を、焼き鈍し法により安定化させることにより、複数の分子による構造を探索する。
結果出力部58は、演算部57による構造の探索結果を出力する。結果は、分子の立体構造図として出力してもよいし、分子を構成する構成単位の座標情報として出力してもよい。結果出力部58が出力した結果は、例えば、出力部16により表示することができる。
【0092】
図15に、本件で開示する技術の一例を用いて、複数の分子による構造を探索する際のフローチャートの例を示す。
【0093】
まず、制御部11は、探索する構造の次元(二次元又は三次元)及び周期性(例えば、周期境界条件を課すか否か)を規定する(S101)。S101では、例えば、構造探索装置10がユーザの入力を受け付けることにより行ってもよいし、入力された構造のデータに基づいて規定してもよい。
【0094】
続いて、制御部11は、入力された複数の分子の構造における、分子の数、各分子を構成する構成単位の数をカウントする(S102)。
次に、制御部11は、カウントした分子の構成単位の数と、分子の数とに基づいて、探索する構造に含まれる個々の分子における個々の構成単位毎に用意すべき位置ビットの数を定義する(S103)。ここで、S103において、個々の構成単位毎に用意すべき位置ビットの数を定義する際には、探索する構造の次元及び周期性を考慮する。
【0095】
次に、制御部11は、S103で定義した数の位置ビットを、探索する構造に含まれる個々の分子における個々の構成単位毎に割り当てる(S104)。
そして、制御部11は、S104で割り当てた(用意した)位置ビットについて、探索する構造の周期性を考慮して、隣接する位置ビットの組み合わせを特定する。(S105)。
【0096】
続いて、制御部11は、(A-1)から(B-2)の4つの相互作用又は制約を含むコスト関数である上記式(1)を変換した上記式(2)で表されるイジングモデルの式を規定する(S106)。
次に、制御部11は、上記式(2)で表されるイジングモデルの式を、アニーリングマシンを用いた焼き鈍し法により最小化させることにより、コスト関数が最小となる最も安定な構造を探索する(S107)。
アニーリングマシンとしては、イジングモデルで表されるエネルギー関数について基底状態探索を行なうアニーリング方式を採用するコンピュータであれば特に制限はなく、目的に応じて適宜選択することができる。アニーリングマシンとしては、例えば、量子アニーリングマシン、半導体技術を用いた半導体アニーリングマシン、CPUやGPU(Graphics Processing Unit)を用いてソフトウェアにより実行されるシミュレーテッド・アニーリング(Simulated Annealing)を行うマシンなどが挙げられる。また、アニーリングマシンとしては、例えば、デジタルアニーラ(登録商標)を用いてもよい。
【0097】
S108では、算出結果を出力する。結果は、分子の立体構造図として出力してもよいし、分子を構成する構成単位の座標情報として出力してもよい。
このようにして、
図15に示したフローチャートの例では、コスト関数が最小となる最も安定な構造の探索結果を出力することができる。
【0098】
図16に、本件で開示する技術の一例を用いて、複数の所望の温度(一の温度)における構造を探索して、当該構造のエネルギーを算出する際のフローチャートの例を示す。
図16において、S201からS206は、
図15におけるS101からS106と同様の処理であるため、説明を省略する。
【0099】
S207では、制御部11は、上記式(2)で表されるイジングモデルの式を、アニーリングマシンを用いて、乱数を用いて位置ビットを遷移させながら、温度を所望の温度よりも高い温度から所望の温度にかけて降温させる。これにより、S207では、所望の温度におけるエネルギー(コスト関数の値)を算出する。
続いて、S208では、制御部11は、S207におけるエネルギーの算出を所定回数繰り返したか否かを判定する。制御部11は、S207におけるエネルギーの算出を所定回数繰り返したと判定した場合は、処理をS209に移す。一方、制御部11は、S207におけるエネルギーの算出をまだ所定回数繰り返していないと判定した場合は、処理をS207に戻す。
【0100】
S209では、制御部11は、S207において算出されたエネルギーの平均を求める。
次に、S210では、制御部11は、S209において、全ての所望の温度について平均のエネルギーを算出したか否かを判定する。制御部11は、全ての所望の温度について平均のエネルギーを算出していないと判定した場合は、所望の温度を変更して処理をS207に移す。一方、制御部11は、全ての所望の温度について平均のエネルギーを算出したと判定した場合は、処理をS211に移す。
そして、S211では、算出結果を出力する。結果は、例えば、縦軸をエネルギー(コスト関数の値)、横軸を温度として表したグラフなどの形式で出力することができる。
このようにして、
図16に示したフローチャートの例では、複数の所望の温度(一の温度)における構造を探索するときにおける、当該構造のエネルギーの算出結果を出力することができる。
【0101】
以下に、焼き鈍し法及びアニーリングマシンの一例について説明する。
焼き鈍し法は、乱数値や量子ビットの重ね合わせを用いて確率的に解を求める方法である。以下では最適化したい評価関数の値を最小化する問題を例に説明し、評価関数の値をエネルギーと呼ぶことにする。また、評価関数の値を最大化する場合は、評価関数の符号を変えればよい。
【0102】
まず、各変数に離散値の1つを代入した初期状態からはじめ、現在の状態(変数の値の組み合わせ)から、それに近い状態(例えば、1つの変数だけ変化させた状態)を選び、その状態遷移を考える。その状態遷移に対するエネルギーの変化を計算し、その値に応じてその状態遷移を採択して状態を変化させるか、採択せずに元の状態を保つかを確率的に決める。エネルギーが下がる場合の採択確率をエネルギーが上がる場合より大きく選ぶと、平均的にはエネルギーが下がる方向に状態変化が起こり、時間の経過とともにより適切な状態へ状態遷移することが期待できる。このため、最終的には最適解又は最適値に近いエネルギーを与える近似解を得られる可能性がある。
もし、これを決定論的にエネルギーが下がる場合に採択とし、上がる場合に不採択とすれば、エネルギーの変化は時間に対して広義単調減少となるが、局所解に到達したらそれ以上変化が起こらなくなってしまう。上記のように離散最適化問題には非常に多数の局所解が存在するために、状態が、ほとんど確実にあまり最適値に近くない局所解に捕まってしまう。したがって、離散最適化問題を解く際には、その状態を採択するかどうかを確率的に決定することが重要である。
【0103】
焼き鈍し法においては、状態遷移の採択(許容)確率を次のように決めれば、時刻(反復回数)無限大の極限で状態が最適解に到達することが証明されている。
以下では、焼き鈍し法を用いて最適解を求める方法について、順序を追って説明する。
【0104】
(1)状態遷移に伴うエネルギー変化(エネルギー減少)値(-ΔE)に対して、その状態遷移の許容確率pを、次のいずれかの関数f( )により決める。
【0105】
【0106】
【0107】
【0108】
ここで、Tは、温度値と呼ばれるパラメータであり、例えば、次のように変化させることができる。
【0109】
(2)温度値Tを次式で表されるように反復回数tに対数的に減少させる。
【0110】
【0111】
ここで、T0は、初期温度値であり問題に応じて、十分大きくとることが望ましい。
(1)の式で表される許容確率を用いた場合、十分な反復後に定常状態に達したとすると、各状態の占有確率は熱力学における熱平衡状態に対するボルツマン分布に従う。
そして、高い温度から徐々に下げていくとエネルギーの低い状態の占有確率が増加するため、十分温度が下がるとエネルギーの低い状態が得られると考えられる。この様子が、材料を焼き鈍したときの状態変化とよく似ているため、この方法は焼き鈍し法(または、疑似焼き鈍し法)と称される。なお、エネルギーが上がる状態遷移が確率的に起こることは、物理学における熱励起に相当する。
【0112】
図17に焼き鈍し法を行う最適化装置(制御部11)の機能構成の一例を示す。ただし、下記説明では、状態遷移の候補を複数発生させる場合についても述べるが、基本的な焼き鈍し法は、遷移候補を1つずつ発生させるものである。
【0113】
最適化装置100は、現在の状態S(複数の状態変数の値)を保持する状態保持部111を有する。また、最適化装置100は、複数の状態変数の値のいずれかが変化することによる現在の状態Sからの状態遷移が起こった場合における、各状態遷移のエネルギー変化値{-ΔEi}を計算するエネルギー計算部112を有する。さらに、最適化装置100は、温度値Tを制御する温度制御部113、状態変化を制御するための遷移制御部114を有する。
【0114】
遷移制御部114は、温度値Tとエネルギー変化値{-ΔEi}と乱数値とに基づいて、エネルギー変化値{-ΔEi}と熱励起エネルギーとの相対関係によって複数の状態遷移のいずれかを受け入れるか否かを確率的に決定する。
【0115】
ここで、遷移制御部114は、状態遷移の候補を発生する候補発生部114a、各候補に対して、そのエネルギー変化値{-ΔEi}と温度値Tとから状態遷移を許可するかどうかを確率的に決定するための可否判定部114bを有する。さらに、遷移制御部114は、可となった候補から採用される候補を決定する遷移決定部114c、及び確率変数を発生させるための乱数発生部114dを有する。
【0116】
最適化装置100における、一回の反復における動作は次のようなものである。
まず、候補発生部114aは、状態保持部111に保持された現在の状態Sから次の状態への状態遷移の候補(候補番号{Ni})を1つまたは複数発生する。次に、エネルギー計算部112は、現在の状態Sと状態遷移の候補を用いて候補に挙げられた各状態遷移に対するエネルギー変化値{-ΔEi}を計算する。可否判定部114bは、温度制御部113で発生した温度値Tと乱数発生部114dで生成した確率変数(乱数値)を用い、各状態遷移のエネルギー変化値{-ΔEi}に応じて、上記(1)の式の許容確率でその状態遷移を許容する。
そして、可否判定部114bは、各状態遷移の可否{fi}を出力する。許容された状態遷移が複数ある場合には、遷移決定部114cは、乱数値を用いてランダムにそのうちの1つを選択する。そして、遷移決定部114cは、選択した状態遷移の遷移番号Nと、遷移可否fを出力する。許容された状態遷移が存在した場合、採択された状態遷移に応じて状態保持部111に記憶された状態変数の値が更新される。
【0117】
初期状態から始めて、温度制御部113で温度値を下げながら上記反復を繰り返し、一定の反復回数に達する、又はエネルギーが一定の値を下回る等の終了判定条件が満たされたときに動作が終了する。最適化装置100が出力する答えは、終了時の状態である。
【0118】
図18は、候補を1つずつ発生させる通常の焼き鈍し法における遷移制御部、特に可否判定部のために必要な演算部分の構成例の回路レベルのブロック図である。
遷移制御部114は、乱数発生回路114b1、セレクタ114b2、ノイズテーブル114b3、乗算器114b4、比較器114b5を有する。
【0119】
セレクタ114b2は、各状態遷移の候補に対して計算されたエネルギー変化値{-ΔEi}のうち、乱数発生回路114b1が生成した乱数値である遷移番号Nに対応するものを選択して出力する。
【0120】
ノイズテーブル114b3の機能については後述する。ノイズテーブル114b3として、例えば、RAM、フラッシュメモリ等のメモリを用いることができる。
【0121】
乗算器114b4は、ノイズテーブル114b3が出力する値と、温度値Tとを乗算した積(前述した熱励起エネルギーに相当する)を出力する。
比較器114b5は、乗算器114b4が出力した乗算結果と、セレクタ114b2が選択したエネルギー変化値である-ΔEとを比較した比較結果を遷移可否fとして出力する。
【0122】
図18に示されている遷移制御部114は、基本的に前述した機能をそのまま実装するものであるが、(1)の式で表される許容確率で状態遷移を許容するメカニズムについて、更に詳細に説明する。
【0123】
許容確率pで1を、(1-p)で0を出力する回路は、2つの入力A,Bを持ち、A>Bのとき1を出力し、A<Bのとき0を出力する比較器の入力Aに許容確率pを、入力Bに区間[0,1)の値をとる一様乱数を入力することで実現することができる。したがって、この比較器の入力Aに、エネルギー変化値と温度値Tにより(1)の式を用いて計算される許容確率pの値を入力すれば、上記の機能を実現することができる。
【0124】
すなわち、fを(1)の式で用いる関数、uを区間[0,1)の値をとる一様乱数とするとき、f(ΔE/T)がuより大きいとき1を出力する回路により、上記の機能を実現できる。
【0125】
また、次のような変形を行っても、上記の機能と同じ機能が実現できる。
2つの数に同じ単調増加関数を作用させても大小関係は変化しない。したがって、比較器の2つの入力に同じ単調増加関数を作用させても出力は変わらない。この単調増加関数として、fの逆関数f
-1を採用すると、-ΔE/Tがf
-1(u)より大きいとき1を出力する回路とすることができることがわかる。さらに、温度値Tが正であることから、-ΔEがTf
-1(u)より大きいとき1を出力する回路でよいことがわかる。
図18中のノイズテーブル114b3はこの逆関数f
-1(u)を実現するための変換テーブルであり、区間[0,1)を離散化した入力に対して次の関数の値を出力するテーブルである。
【0126】
【0127】
【0128】
遷移制御部114には、判定結果等を保持するラッチやそのタイミングを発生するステートマシン等も存在するが、
図18では図示を簡単にするため省略されている。
【0129】
図19は、遷移制御部114の動作フローの一例を示す図である。
図19に示す動作フローは、1つの状態遷移を候補として選ぶステップ(S0001)、その状態遷移に対するエネルギー変化値と温度値と乱数値の積の比較で状態遷移の可否を決定するステップ(S0002)、状態遷移が可ならばその状態遷移を採用し、否ならば不採用とするステップ(S0003)を有する。
【0130】
(構造探索方法)
本件で開示する構造探索方法は、一つの実施態様では、相互作用を持つ複数の分子による構造を探索する構造探索方法であって、
複数の分子に含まれる構成単位の数と、複数の分子に含まれる分子の数と、に基づいて算出される数の位置ビットを、複数の分子に含まれる個々の分子における個々の構成単位毎に用意し、
(A-1)複数の分子に含まれる一の分子における個々の構成単位が隣接して存在する位置ビットに与える負の相互作用と、
(A-2)複数の分子に含まれる他の分子における構成単位が隣接して存在する位置ビットに与える、分子の相互間における本来の相互作用と、
(B-1)一の分子における個々の構成単位毎に用意された位置ビットにおいて、一の分子における個々の構成単位は、一の分子における個々の構成単位毎に用意された位置ビットに1つ存在するという制約と、
(B-2)複数の分子における個々の構成単位毎に用意された位置ビット間において、同じ位置の位置ビットには、複数の分子の内のいずれかにおける構成単位は1つ存在するか又は存在しないという制約と、
を含むコスト関数に基づき、相互作用を持つ複数の分子による構造を探索する構造探索工程を含む。
【0131】
本件で開示する構造探索方法は、例えば、本件で開示する構造探索装置により行うことができる。また、本件で開示する構造探索方法における好適な態様は、例えば、本件で開示する構造探索装置における好適な態様と同様にすることができる。
【0132】
(構造探索プログラム)
本件で開示する構造探索プログラムは、一つの実施態様では、相互作用を持つ複数の分子による構造を探索する構造探索プログラムであって、
複数の分子に含まれる構成単位の数と、複数の分子に含まれる分子の数と、に基づいて算出される数の位置ビットを、複数の分子に含まれる個々の分子における個々の構成単位毎に用意し、
(A-1)複数の分子に含まれる一の分子における個々の構成単位が隣接して存在する位置ビットに与える負の相互作用と、
(A-2)複数の分子に含まれる他の分子における構成単位が隣接して存在する位置ビットに与える、分子の相互間における本来の相互作用と、
(B-1)一の分子における個々の構成単位毎に用意された位置ビットにおいて、一の分子における個々の構成単位は、一の分子における個々の構成単位毎に用意された位置ビットに1つ存在するという制約と、
(B-2)複数の分子における個々の構成単位毎に用意された位置ビット間において、同じ位置の位置ビットには、複数の分子の内のいずれかにおける構成単位は1つ存在するか又は存在しないという制約と、
を含むコスト関数に基づき、相互作用を持つ複数の分子による構造を探索する処理を、コンピュータに行わせる。
【0133】
本件で開示する構造探索プログラムは、例えば、本件で開示する構造探索方法コンピュータを実行させるプログラムとすることができる。また、本件で開示する構造探索プログラムにおける好適な態様は、例えば、本件で開示する構造探索装置における好適な態様と同様にすることができる。
【0134】
本件で開示する構造探索プログラムは、使用するコンピュータシステムの構成及びオペレーティングシステムの種類・バージョンなどに応じて、公知の各種のプログラム言語を用いて作成することができる。
【0135】
本件で開示する構造探索プログラムは、内蔵ハードディスク、外付けハードディスクなどの記録媒体に記録しておいてもよいし、CD-ROM、DVD-ROM、MOディスク、USBメモリなどの記録媒体に記録しておいてもよい。
さらに、本件で開示する構造探索プログラムを、上記の記録媒体に記録する場合には、必要に応じて、コンピュータシステムが有する記録媒体読取装置を通じて、これを直接又はハードディスクにインストールして使用することができる。また、コンピュータシステムから情報通信ネットワークを通じてアクセス可能な外部記憶領域(他のコンピュータなど)に本件で開示する構造探索プログラムを記録しておいてもよい。この場合、外部記憶領域に記録された本件で開示する構造探索プログラムは、必要に応じて、外部記憶領域から情報通信ネットワークを通じてこれを直接、又はハードディスクにインストールして使用することができる。
なお、本件で開示する構造探索プログラムは、複数の記録媒体に、任意の処理毎に分割されて記録されていてもよい。
【0136】
(コンピュータが読み取り可能な記録媒体)
本件で開示するコンピュータが読み取り可能な記録媒体は、本件で開示する構造探索プログラムを記録してなる。
本件で開示するコンピュータが読み取り可能な記録媒体としては、特に制限はなく、目的に応じて適宜選択することができ、例えば、内蔵ハードディスク、外付けハードディスク、CD-ROM、DVD-ROM、MOディスク、USBメモリなどが挙げられる。
また、本件で開示するコンピュータが読み取り可能な記録媒体は、本件で開示する構造探索プログラムが任意の処理毎に分割されて記録された複数の記録媒体であってもよい。
【実施例】
【0137】
本件で開示する技術の一実施例について説明するが、本件で開示する技術はこれらの実施例に何ら限定されるものではない。
【0138】
(実施例1-1)
実施例1-1として、本件で開示する構造探索装置の一例を用いて、構成単位A及びBで構成される分子AB(ポリマーの一例)が、8個含まれる構造について、エネルギーが最小となる構造の探索を行った。
実施例1-1における構造の探索においては、
図13に示す機能構成を有する構造探索装置を用いて、
図15のフローチャートに従って、構造の探索を行った。
また、実施例1-1においては、個々の分子における個々の構成単位毎に、16個の位置ビットを用意して、構造の探索を行った。また、位置ビットは、二次元に配置し、周期境界条件を課した。
【0139】
上記式(1)におけるパラメータとしては、上記式(1)の右辺の一項目におけるv(負の相互作用の大きさ)を-100とした。また、上記式(1)の右辺の二項目におけるEpair(本来の相互作用の大きさ)としては、構成単位Aどうしの間の相互作用VAAを-2、構成単位Bどうしの間の相互作用VBBを-2、構成単位Aと構成単位Bとの間の相互作用VABを-1とした。上記式(1)の右辺の三項目及び四項目におけるp1及びp2は100とした。
ここで、上記式(2)の最小化を行う際のアニーリングマシンの設定としては、1000回の計算毎に、温度を1-0.000201456倍ずつ下げていく条件で、計算を80001000回繰り返して、温度が0.1となるときの構造を探索した。
なお、実施例1-1においては、上記式(2)の最小化を行う計算を、20個並列(パラレル)で行い、その中から最もエネルギーが低くなる(コスト関数の値が小さくなる)構造を、最も安定な構造とした。
【0140】
図20に、実施例1-1における構造の探索結果を示す。
図20に示すように、実施例1-1の条件においては、構成単位Aどうしと構成単位Bどうしとが規則的に集まった層状の構造となった。なお、実施例1-1で探索された構造におけるコスト関数の値は、-848であった。
なお、
図20に示すように、実施例1-1では位置ビットに周期境界条件を課しているため、
図20の一番上の行の位置ビットに配置された構成単位Bと、
図20の一番下の行の位置ビットに配置された構成単位Aとは、結合した状態である。
【0141】
(実施例1-2)
実施例1-2では、構成単位Aと構成単位Bとの間の相互作用VABを-3とした以外は、実施例1-1と同様にして、構造の探索を行った。
【0142】
図21に、実施例1-2における構造の探索結果を示す。
図21に示すように、実施例1-2の条件においては、構成単位Aと構成単位Bとが互いに混じり合った構造となった。なお、実施例1-2で探索された構造におけるコスト関数の値は、-872であった。
なお、
図21に示すように、実施例1-2では位置ビットに周期境界条件を課しているため、例えば、
図21の左上の端の位置ビットに配置された構成単位Bと、
図21の右上の端の行の位置ビットに配置された構成単位Aとは、結合した状態である。
【0143】
このように、本件で開示する技術は、一つの側面では、分子間の相互作用を適切に考慮して、実際の分子の性質に合わせて、複数の分子による構造を探索することができる。
【0144】
(実施例2-1)
実施例2-1では、本件で開示する構造探索装置の一例を用いて、分子数4の場合のAB合金について、複数の所望の温度における構造を探索して、温度毎のエネルギーを算出することにより、温度の変化による構造の遷移を解析した。
実施例2-1における構造の探索では、
図13に示す機能構成を有する構造探索装置を用いて、
図16のフローチャートに従って、構造の探索を行った。つまり、実施例2-1においては、乱数を用いて位置ビットを遷移させながら、温度を一の温度よりも高い温度から一の温度にかけて降温することを複数回繰り返して平均化することにより、複数の分子の一の温度における構造を探索した。
【0145】
上記式(1)におけるパラメータは、上記式(1)の右辺の二項目におけるEpair(本来の相互作用の大きさ)としては、構成単位Aどうしの間の相互作用VAAを-2、構成単位Bどうしの間の相互作用VBBを-2、構成単位Aと構成単位Bとの間の相互作用VABを-1とした。上記式(1)の右辺の三項目及び四項目におけるp1及びp2は、100とした。
ここで、上記式(2)の安定化を行う際のアニーリングマシンの設定としては、所望の温度の100000倍の温度から計算を始め、10000000回の計算毎に温度を0.1倍する条件で、計算を60000000回繰り返す設定とした。この設定での計算を、所望の温度毎に、100回から10000回(例えば、3072回)繰り返して、それぞれの計算で算出されたエネルギーの平均値を算出した。
そして、算出したエネルギーの平均値を、所望の温度毎にプロットして、温度の変化による構造の遷移を解析した。
【0146】
図22に、実施例2-1における、温度毎のエネルギーの平均値を示す。
図22においては、縦軸はエネルギーの平均値(E)であり、横軸は温度(kT)である。
図22から、例えば、転移温度kT
cを境に、規則状態から不規則状態になだらかに相変化する様子がわかる。これは、構造のエントロピーを考えると、温度の高い状態では、不規則な状態が安定となる場合があるためであると考えられる。
このように、本件で開示する技術は、一つの側面では、一の温度(所望の温度)を変更して、複数の温度における構造を探索することにより、温度の変化による構造の遷移を解析することができる。
【0147】
(実施例2-2)
実施例2-2では、レプリカ交換法により、一の温度を一定時間保持した計算を行って平均化し、複数の分子の一の温度における構造を探索して、温度毎のエネルギーを算出した以外は、実施例2-1と同様にして、温度の変化による構造の遷移を解析した。
実施例2-2においても、温度毎のエネルギーの平均値は、
図22に示すようになった。
このことから、本件で開示する技術の一例においては、一の温度における平均化の手法に関わらず、所望の温度におけるエネルギーの平均値を算出できることがわかる。
【0148】
図23は、本件で開示する技術の実施例及び従来技術における、分子の構造探索の一例を示す図である。
図23に示すように、従来技術においては、直鎖状に繋がった一つの分子の構造しか探索することができない。
一方、本件で開示する技術は、一つの側面では、コスト関数が最小となり最も安定な複数の分子による構造を、構成単位どうしの相互作用の大きさに応じて、探索することができる。さらに、本件で開示する技術は、一つの側面では、複数の温度における構造を探索することにより、温度の変化による構造の遷移を解析することができる。
【0149】
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
相互作用を持つ複数の分子による構造を探索する構造探索装置であって、
前記複数の分子に含まれる構成単位の数と、前記複数の分子に含まれる分子の数と、に基づいて算出される数の位置ビットを、前記複数の分子に含まれる個々の分子における個々の前記構成単位毎に用意し、
(A-1)前記複数の分子に含まれる一の分子における個々の前記構成単位が隣接して存在する位置ビットに与える負の相互作用と、
(A-2)前記複数の分子に含まれる他の分子における前記構成単位が隣接して存在する位置ビットに与える、前記分子の相互間における本来の相互作用と、
(B-1)前記一の分子における個々の前記構成単位毎に用意された前記位置ビットにおいて、前記一の分子における個々の前記構成単位は、前記一の分子における個々の前記構成単位毎に用意された前記位置ビットに1つ存在するという制約と、
(B-2)前記複数の分子における個々の前記構成単位毎に用意された前記位置ビット間において、同じ位置の前記位置ビットには、前記複数の分子の内のいずれかにおける前記構成単位は1つ存在するか又は存在しないという制約と、
を含むコスト関数に基づき、相互作用を持つ前記複数の分子による構造を探索する構造探索部を備えることを特徴とする構造探索装置。
(付記2)
前記位置ビットに前記構成単位が存在するときを1とし、前記位置ビットに前記構成単位が存在しないときを0とすると、
前記構造探索部が、前記(B-1)において、前記一の分子における個々の前記構成単位に用意された前記位置ビットの和が1でないときに、前記コスト関数に対して正のコストを与える、付記1に記載の構造探索装置。
(付記3)
前記位置ビットに前記構成単位が存在するときを1とし、前記位置ビットに前記構成単位が存在しないときを0とすると、
前記構造探索部が、前記(B-2)において、前記複数の分子における個々の前記構成単位に用意された前記位置ビットどうしの間において、同じ位置の前記位置ビットの和が0又は1ではないときに、前記コスト関数に対して正のコストを与える、付記1又は2に記載の構造探索装置。
(付記4)
前記負の相互作用及び前記本来の相互作用が、次の不等式、
前記負の相互作用 < 前記本来の相互作用、
を満たす、付記1から3のいずれかに記載の構造探索装置。
(付記5)
前記本来の相互作用が、
前記一の分子における前記構成単位と、前記他の分子における前記構成単位とが同じである場合の、前記一の分子における前記構成単位と前記他の分子における前記構成単位との相互作用αと、
前記一の分子における前記構成単位と、前記他の分子における前記構成単位とが異なる場合の、前記一の分子における前記構成単位と前記他の分子における前記構成単位との相互作用βとが異なるようにして与えられる、付記1から4のいずれかに記載の構造探索装置。
(付記6)
前記構造探索部が、下記式(1)で表される前記コスト関数に基づき、前記複数の分子による構造を探索する、付記1から5のいずれかに記載の構造探索装置。
【数11】
ただし、前記式(1)において、
前記Eは、前記コスト関数であり、
前記Nは、前記分子の数であり、
前記N
iは、前記分子の番号であり、
前記nは、前記一の分子における前記構成単位の番号であり、
前記N
pは、個々の前記分子における個々の前記構成単位毎に用意した前記位置ビットにおける、隣接する前記位置ビットの数であり、
前記i
pは、個々の前記分子における個々の前記構成単位毎に用意した前記位置ビットにおける、隣接する前記位置ビットの番号であり、
前記vは、前記負の相互作用の大きさを表す数値であり、
前記x
mは、m番目の前記位置ビットが0又は1であることを表すバイナリ変数であり、
前記n
Niは、前記一の分子における前記構成単位の数であり、
前記E
pairは、前記本来の相互作用の大きさを表す数値であり、
前記p
1及び前記p
2は、正の数であり、
前記Mは、前記構成単位の総数であり、
前記tは、個々の前記分子における個々の前記構成単位毎に用意した前記位置ビットの数であり、
前記iは、個々の前記分子における個々の前記構成単位毎に用意した前記位置ビットの番号である。
(付記7)
前記構造探索部が、前記式(1)を、下記式(2)で表されるイジングモデルに変換した前記コスト関数に基づき、前記複数の分子による構造を探索する、付記6に記載の構造探索装置。
【数12】
ただし、前記式(2)において、
前記w
ijは、i番目の前記位置ビットとj番目の前記位置ビットの間の重み付けのための係数であり、
前記b
iは、i番目の前記位置ビットに対するバイアスを表す数値であり、
前記x
iは、i番目の前記位置ビットが0又は1であることを表すバイナリ変数であり、
前記x
jは、j番目の前記位置ビットが0又は1であることを表すバイナリ変数である。
(付記8)
前記構造探索部が、焼き鈍し法により前記コスト関数を安定化することにより、前記複数の分子による構造を探索する、付記1から7のいずれかに記載の構造探索装置。
(付記9)
前記構成単位が、原子群又は原子である、付記1から8のいずれかに記載の構造探索装置。
(付記10)
前記位置ビットが格子状に位置する、付記1から9のいずれかに記載の構造探索装置。
(付記11)
前記位置ビットに周期境界条件が課せられている、付記1から10のいずれかに記載の構造探索装置。
(付記12)
前記構造探索部が、乱数を用いて前記位置ビットを遷移させながら、温度を一の温度よりも高い温度から前記一の温度にかけて降温することを複数回繰り返して平均化することにより、前記複数の分子の前記一の温度における構造を探索する、付記1から11のいずれかに記載の構造探索装置。
(付記13)
前記構造探索部が、レプリカ交換法により、一の温度を一定時間保持した計算を行って平均化することにより、前記複数の分子の前記一の温度における構造を探索する、付記1から11のいずれかに記載の構造探索装置。
(付記14)
前記構造探索部が、焼き鈍し法により前記コスト関数を最小化することにより、相互作用を持つ前記複数の分子による構造を探索する、付記1から11のいずれかに記載の構造探索装置。
(付記15)
相互作用を持つ複数の分子による構造を探索する構造探索方法であって、
前記複数の分子に含まれる構成単位の数と、前記複数の分子に含まれる分子の数と、に基づいて算出される数の位置ビットを、前記複数の分子に含まれる個々の分子における個々の前記構成単位毎に用意し、
(A-1)前記複数の分子に含まれる一の分子における個々の前記構成単位が隣接して存在する位置ビットに与える負の相互作用と、
(A-2)前記複数の分子に含まれる他の分子における前記構成単位が隣接して存在する位置ビットに与える、前記分子の相互間における本来の相互作用と、
(B-1)前記一の分子における個々の前記構成単位毎に用意された前記位置ビットにおいて、前記一の分子における個々の前記構成単位は、前記一の分子における個々の前記構成単位毎に用意された前記位置ビットに1つ存在するという制約と、
(B-2)前記複数の分子における個々の前記構成単位毎に用意された前記位置ビット間において、同じ位置の前記位置ビットには、前記複数の分子の内のいずれかにおける前記構成単位は1つ存在するか又は存在しないという制約と、
を含むコスト関数に基づき、相互作用を持つ前記複数の分子による構造を探索する構造探索工程を含むことを特徴とする構造探索方法。
(付記16)
相互作用を持つ複数の分子による構造を探索する構造探索プログラムであって、
前記複数の分子に含まれる構成単位の数と、前記複数の分子に含まれる分子の数と、に基づいて算出される数の位置ビットを、前記複数の分子に含まれる個々の分子における個々の前記構成単位毎に用意し、
(A-1)前記複数の分子に含まれる一の分子における個々の前記構成単位が隣接して存在する位置ビットに与える負の相互作用と、
(A-2)前記複数の分子に含まれる他の分子における前記構成単位が隣接して存在する位置ビットに与える、前記分子の相互間における本来の相互作用と、
(B-1)前記一の分子における個々の前記構成単位毎に用意された前記位置ビットにおいて、前記一の分子における個々の前記構成単位は、前記一の分子における個々の前記構成単位毎に用意された前記位置ビットに1つ存在するという制約と、
(B-2)前記複数の分子における個々の前記構成単位毎に用意された前記位置ビット間において、同じ位置の前記位置ビットには、前記複数の分子の内のいずれかにおける前記構成単位は1つ存在するか又は存在しないという制約と、
を含むコスト関数に基づき、相互作用を持つ前記複数の分子による構造を探索する処理を、コンピュータに行わせることを特徴とする構造探索プログラム。
【符号の説明】
【0150】
10 構造探索装置
11 制御部
12 メモリ
13 記憶部
14 表示部
15 入力部
16 出力部
17 I/Oインターフェース部
18 システムバス
19 ネットワークインターフェース部
20 ネットワークインターフェース部
30 コンピュータ
40 コンピュータ
50 構造探索部
51 カウント部
52 定義部
53 割当部
54 コスト関数規定部
55 重み抽出部
56 重みファイル作成部
57 演算部
58 結果出力部