IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特開2024-44506演算プログラム、演算方法、および情報処理装置
<>
  • 特開-演算プログラム、演算方法、および情報処理装置 図1
  • 特開-演算プログラム、演算方法、および情報処理装置 図2
  • 特開-演算プログラム、演算方法、および情報処理装置 図3
  • 特開-演算プログラム、演算方法、および情報処理装置 図4
  • 特開-演算プログラム、演算方法、および情報処理装置 図5
  • 特開-演算プログラム、演算方法、および情報処理装置 図6
  • 特開-演算プログラム、演算方法、および情報処理装置 図7
  • 特開-演算プログラム、演算方法、および情報処理装置 図8
  • 特開-演算プログラム、演算方法、および情報処理装置 図9
  • 特開-演算プログラム、演算方法、および情報処理装置 図10
  • 特開-演算プログラム、演算方法、および情報処理装置 図11
  • 特開-演算プログラム、演算方法、および情報処理装置 図12
  • 特開-演算プログラム、演算方法、および情報処理装置 図13
  • 特開-演算プログラム、演算方法、および情報処理装置 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024044506
(43)【公開日】2024-04-02
(54)【発明の名称】演算プログラム、演算方法、および情報処理装置
(51)【国際特許分類】
   G06N 3/126 20230101AFI20240326BHJP
   G06F 30/10 20200101ALI20240326BHJP
   G06F 30/27 20200101ALI20240326BHJP
   G06F 30/20 20200101ALI20240326BHJP
   G06N 99/00 20190101ALI20240326BHJP
【FI】
G06N3/126
G06F30/10
G06F30/27
G06F30/20
G06N99/00 180
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022150067
(22)【出願日】2022-09-21
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100087480
【弁理士】
【氏名又は名称】片山 修平
(72)【発明者】
【氏名】丸尾 昭人
【テーマコード(参考)】
5B146
【Fターム(参考)】
5B146AA10
5B146DC03
5B146DC04
(57)【要約】
【課題】 計算コストを削減することができる演算プログラム、演算方法、および情報処理装置を提供する。
【解決手段】 演算プログラムは、コンピュータに、配列探索を含む組合せ最適化処理の対象であって順序情報を有する個体を対象として、進化的アルゴリズムを用いて世代が進むことに応じて評価値が更新されるように前記順序情報を探索する順序探索処理と、前記順序探索処理によって探索された前記個体が有する前記順序情報を用いて配列を生成し、生成された前記配列をQUBO形式に変換して組合せを探索する組合せ探索処理と、を実行させる。
【選択図】 図5
【特許請求の範囲】
【請求項1】
コンピュータに、
配列探索を含む組合せ最適化処理の対象であって順序情報を有する個体を対象として、進化的アルゴリズムを用いて世代が進むことに応じて評価値が更新されるように前記順序情報を探索する順序探索処理と、
前記順序探索処理によって探索された前記個体が有する前記順序情報を用いて配列を生成し、生成された前記配列をQUBO形式に変換して組合せを探索する組合せ探索処理と、
を実行させることを特徴とする演算プログラム。
【請求項2】
前記順序情報は、前記個体に含まれる複数の要素の配列の順序を示す情報であり、前記組合せは、前記複数の要素の配列に関する組合せであることを特徴とする請求項1に記載の演算プログラム。
【請求項3】
前記評価値は、前記進化的アルゴリズムによって得られる個体が有する順序情報を用いて配列を生成し、生成された前記配列をQUBO形式に変換し、組合せ最適化を実行することで得られた結果を評価することで得られる値であることを特徴とする請求項1または請求項2に記載の演算プログラム。
【請求項4】
前記コンピュータに、
前記進化的アルゴリズムによって得られる個体の前記評価値をキャッシュに格納しておき、次世代以降に得られる個体が有する配列が前記キャッシュに格納された前記個体の配列と同じときは、前記キャッシュに格納された前記評価値を読み出し、個体の評価に用いる処理を実行させることを特徴とする請求項3に記載の演算プログラム。
【請求項5】
前記進化的アルゴリズムとして、遺伝的アルゴリズムを用いることを特徴とする請求項1または請求項2に記載の演算プログラム。
【請求項6】
前記個体は、複数の化合物基が順次配置される格子の集合である格子空間に、前記複数の化合物基のいずれかが前記格子空間のいずれかの格子に配置されたことを表す個体であることを特徴とする請求項1または請求項2に記載の演算プログラム。
【請求項7】
配列探索を含む組合せ最適化処理の対象であって順序情報を有する個体を対象として、進化的アルゴリズムを用いて世代が進むことに応じて評価値が更新されるように前記順序情報を探索し、
探索された前記個体が有する前記順序情報を用いて配列を生成し、生成された前記配列をQUBO形式に変換して組合せを探索する、
処理をコンピュータが実行することを特徴とする演算方法。
【請求項8】
前記順序情報は、前記個体に含まれる複数の要素の配列の順序を示す情報であり、前記組合せは、前記複数の要素の配列に関する組合せであることを特徴とする請求項7に記載の演算方法。
【請求項9】
配列探索を含む組合せ最適化処理の対象であって順序情報を有する個体を対象として、進化的アルゴリズムを用いて世代が進むことに応じて評価値が更新されるように前記順序情報を探索する順序探索処理部と、
前記順序探索処理部によって探索された前記個体が有する前記順序情報を用いて配列を生成し、生成された前記配列をQUBO形式に変換して組合せを探索する組合せ探索処理部と、を備えることを特徴とする情報処理装置。
【請求項10】
前記順序情報は、前記個体に含まれる複数の要素の配列の順序を示す情報であり、前記組合せは、前記複数の要素の配列に関する組合せであることを特徴とする請求項9に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本件は、演算プログラム、演算方法、および情報処理装置に関する。
【背景技術】
【0002】
配列探索を含む組合せ最適化を行なう技術が開示されている(例えば、特許文献1~4参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2022-90249号公報
【特許文献2】特開2020-194273号公報
【特許文献3】特開2021-103417号公報
【特許文献4】特開2014-44565号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
配列探索を含む組合せ問題をQUBO形式で表現して最適化することが求められている。しかしながら、配列探索を含む組合せ問題をQUBO形式で表現して最適化を実行すると、計算コストが大きくなってしまう。
【0005】
1つの側面では、本件は、計算コストを削減することができる演算プログラム、演算方法、および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
1つの態様では、演算プログラムは、コンピュータに、配列探索を含む組合せ最適化処理の対象であって順序情報を有する個体を対象として、進化的アルゴリズムを用いて世代が進むことに応じて評価値が更新されるように前記順序情報を探索する順序探索処理と、前記順序探索処理によって探索された前記個体が有する前記順序情報を用いて配列を生成し、生成された前記配列をQUBO形式に変換して組合せを探索する組合せ探索処理と、を実行させる。
【発明の効果】
【0007】
計算コストを削減することができる。
【図面の簡単な説明】
【0008】
図1】QUBO形式での解の探索を例示する図である。
図2】(a)は情報処理装置の全体構成を例示するブロック図であり、(b)は情報処理装置のハードウェア構成を例示するブロック図である。
図3】情報処理装置の動作の一例を表すフローチャートである。
図4】サブフローを例示する図である。
図5】情報処理装置の処理を視覚的に理解しやすいように整理した概要図である。
図6】(a)および(b)はキャッシュの利用の概要を説明するための図である。
図7】(a)および(b)は分子の配列および安定構造を探索する問題を例示する図である。
図8】(a)~(e)は各格子位置における粒子の有無をビットで表現した図である。
図9】9(a)~(d)は制約条件と目的関数がどうあるべきかを例示するDiamond encoding法である。
図10】QUBO形式の定式化を例示する図である。
図11】QUBO形式の定式化を例示する図である。
図12】QUBO形式の定式化を例示する図である。
図13】結合相互作用および非結合相互作用について示す図である。
図14】(a)は配列全探索とLPPを実行した場合の結果を示しており、(b)は実施例に係る処理を実行した場合の結果を示している。
【発明を実施するための形態】
【0009】
配列探索を含む組み合わせ最適化問題をQUBO形式で表現し、QUBO形式で表現された最適化問題をデジタルアニーラなどのイジングマシンで効果的に最適化することが求められている。配列とは、複数の要素(値)の集合を格納および管理するために用いられるデータ構造である。
【0010】
ここで、QUBO形式とは、Quadratic Unconstrained Binary Optimizationのことであり、二次制約が無く二値最適化が可能な形式のことである。QUBO形式は、例えば、下記式のように表現することができる。なお、x=0または1で(i=1,…,N)である。Wijは、xとxの結合係数である。bは、xのバイアス係数である。右辺の第1項は、二次の項であって、相互作用を表している。右辺の第2項は、一次の項であって、バイアス作用を表している。右辺の第3項は、定数項である。QUBO形式では、下記式に従って、図1で例示するように、エネルギーを表すE(x)を最小化するためのxが探索される。
【数1】
【0011】
しかしながら、配列探索を含む組み合わせ最適化問題のすべてをQUBO形式に定式化することは困難である。例えば、制約条件なども最適化問題に合わせてQUBO形式に落とし込む必要あり、柔軟性が低くなる。
【0012】
また、最適化問題をすべてQUBO形式で表現できた場合でも、膨大なビットが必要になるケースがある。例えば、2次以上の高次の項が発生するケースや、問題規模が大きなケースでは、膨大なビットが必要となってしまう。
【0013】
また、QUBO形式に定式化できない場合は、定式化できない部分は全通り探索してみて一番良いものを解とする必要があるため、計算コストが非常に膨大となる。例えば、全通りの配列に対して、組合せ最適化を実施する必要がある。
【0014】
そこで、以下の実施例では、計算コストの削減が可能で、QUBO形式への定式化の手間を削減して柔軟性を向上させ、問題規模の縮小が可能な例について説明する。
【実施例0015】
図2(a)は、情報処理装置100の全体構成を例示するブロック図である。図2(a)で例示するように、情報処理装置100は、格納部10、初期個体生成部20、評価部30、順序最適化部40、組合せ最適化部50、キャッシュ60などを備える。
【0016】
図2(b)は、情報処理装置100のハードウェア構成を例示するブロック図である。図2(b)で例示するように、情報処理装置100は、CPU101、RAM102、記憶装置103、入力装置104、表示装置105等を備える。
【0017】
CPU(Central Processing Unit)101は、中央演算処理装置である。CPU101は、1以上のコアを含む。RAM(Random Access Memory)102は、CPU101が実行するプログラム、CPU101が処理するデータなどを一時的に記憶する揮発性メモリである。記憶装置103は、不揮発性記憶装置である。記憶装置103として、例えば、ROM(Read Only Memory)、フラッシュメモリなどのソリッド・ステート・ドライブ(SSD)、ハードディスクドライブに駆動されるハードディスクなどを用いることができる。記憶装置103は、演算プログラムを記憶している。入力装置104は、キーボード、マウスなどの入力装置である。表示装置105は、LCD(Liquid Crystal Display)などのディスプレイ装置である。CPU101が演算プログラムを実行することで、格納部10、初期個体生成部20、評価部30、順序最適化部40、組合せ最適化部50、キャッシュ60が実現される。なお、格納部10、初期個体生成部20、評価部30、順序最適化部40、組合せ最適化部50、キャッシュ60として、専用の回路などのハードウェアを用いてもよい。
【0018】
図3は、情報処理装置100の動作の一例を表すフローチャートである。図3で例示するように、初期個体生成部20は、格納部10に格納されているデータを用いて、複数の初期個体を生成して個体群を生成する(ステップS1)。格納部10に格納されているデータは、配列探索を含む組合せ最適化の対象となる各要素である。初期個体については、ユーザが入力装置104を用いて指定することもあり、初期個体生成部20がランダムに配列を生成することもある。各個体は、順序情報を含んでいる。
【0019】
次に、評価部30は、図4のサブフローを実行することによって、初期個体のそれぞれについて評価する(ステップS2)。図4のサブフローの詳細については後述する。
【0020】
次に、順序最適化部40は、個体群から親個体を選択する(ステップS3)。ステップS3が最初に実行される場合には、例えば、ステップS2で評価値が閾値以上の個体が選択される。ステップS3が2回目以降に実行される場合には、後述するステップS6で評価値が閾値以上の個体が選択される。
【0021】
次に、順序最適化部40は、ステップS3で選択した親個体を用いて、交叉により子個体を生成する(ステップS4)。
【0022】
次に、順序最適化部40は、ステップS4で生成した子個体に突然変異を生じさせる(ステップS5)。
【0023】
次に、評価部30は、図4のサブフローを実行することによって、ステップS5で得られた個体を評価する(ステップS6)。
【0024】
次に、評価部30は、ステップS6の結果について、評価値が基準を満たさない個体については淘汰する(ステップS7)。
【0025】
次に、順序最適化部40は、世代数が上限に達したか否かを判定する(ステップS8)。ステップS8で「No」と判定された場合には、ステップS3から再度実行される。ステップS3~S8が繰り返されることで、順序情報が個体として扱われて世代が進むごとに、ステップS6の評価が良好となるように順序情報が最適化されることになる。
【0026】
ステップS8で「Yes」と判定された場合には、組合せ最適化部50は、得られた個体の順序情報を用いて配列を生成する(ステップS9)。例えば、組合せ最適化部50は、評価の最良個体の順序情報を用いる。
【0027】
次に、組合せ最適化部50は、ステップS9で生成された配列情報をQUBO形式に変換するためのQUBO計算を行う(ステップS10)。
【0028】
次に、組合せ最適化部50は、QUBO形式に変換された配列情報について、組合せ最適化を実行する(ステップS11)。組合せ最適化の手法は、特に限定されるものではないが、例えば、デジタルアニーラ最適化を用いることができる。デジタルアニーラとは、量子現象に着想を得たデジタル回路で、「組合せ最適化問題」を高速で解く技術である。
【0029】
次に、組合せ最適化部50は、組合せ最適化の結果を出力する(ステップS12)。出力された結果は、表示装置105に表示される。
【0030】
図4は、サブフローを例示する図である。図4のサブフローは、各個体についてそれぞれ実行される。図4で例示するように、評価部30は、個体の順序情報を用いて配列を生成する(ステップS21)。
【0031】
次に、評価部30は、ステップS21で生成された配列が、評価済みの配列であるか否かを判定する(ステップS22)。
【0032】
ステップS22で「No」と判定された場合、評価部30は、ステップS21で生成された配列情報をQUBO形式に変換するためのQUBO計算を行う(ステップS23)。
【0033】
次に、評価部30は、QUBO形式に変換された配列情報について、組合せ最適化を実行する(ステップS24)。
【0034】
次に、評価部30は、配列情報と組合せ最適化の結果とから、個体の評価値を計算する(ステップS25)。その後、サブフローの実行が終了する。
【0035】
ステップS22で「Yes」と判定された場合、評価部30は、キャッシュ60に保持した評価値を個体評価値として用いる(ステップS26)。その後、サブフローの実行が終了する。
【0036】
図5は、情報処理装置100の処理を視覚的に理解しやすいように整理した概要図である。図5で例示するように、情報処理装置100は、配列最適化を順序最適化問題としてとらえ、順序の最適化を行う遺伝的アルゴリズムをメインフローとする。情報処理装置100は、遺伝的アルゴリズムで得られる個体値評価の際に、サブフローを呼び出し、個体が持つ最適化順序情報を用いて、QUBO形式での組合せ最適化を行ない、最適化順序情報および最適化組合せにより評価値を計算し、メインフローに返す。このような処理を行なうことで、最適化問題を、順序最適化と、組合せ最適化とに分離することができる。
【0037】
なお、個体評価の際に、ペナルティ法を用いて制約条件も合わせて考慮することで、問題特有の制約を手軽に導入することができる。
【0038】
一度評価した配列と評価値をキャッシュ60に保存しておき、サブフローにて配列を評価する際にはキャッシュ60を参照し、評価済みの配列であれば、キャッシュ60に保持した評価値を利用する。評価済みでなければ、組合せ最適化によりQUBO形式での最適化を行い、評価値を計算する。
【0039】
図6(a)および図6(b)は、キャッシュ60の利用の概要を説明するための図である。図6(a)および図6(b)では、3種類(A,B,C)の配列を探索するケースについて説明する。配列させる個数は、6個とする。例えば、Aを2個、Bを2個、Cを2個とする。順序最適化への変換について検討する。初期の文字列を仮定し、その文字列の各文字の順序を最適化することで、配列の探索を行う。図6(a)は、初期状態の文字列の一例である「AABBCC」を例示している。
【0040】
図6(b)は、順序が異なっていても配列が同じとなるケースを例示する図である。図6(b)の上段では、順序1~6に対して、「ABBCAC」の順序の配列が例示されている。図6(b)の下段では、「ABBCAC」の配列を例示しているが、順序が上段と異なっている。これらの配列は、順序が異なっていても、配列は同じである。
【0041】
キャッシュには配列をキーとして保存されることになるため、図6(b)の上段および下段のいずれかを評価すれば、もう一方はキャッシュ60が保持する値を活用することができる。なお、「ABBCAC」の逆順の配列「CACBBA」も同じ評価値が得られるため、キャッシュ60に保存してもよい。
【0042】
本実施例によれば、配列探索については順序最適化としてとらえて進化的アルゴリズムで実行され、組合せ探索についてはQUBO形式で組合せ最適化が実行される。このように、最適化問題を順序最適化と組合せ最適化とに分離することにより、計算コストの削減が可能となり、QUBO形式への定式化の手間が削減されて柔軟性が向上し、問題規模の縮小が可能となる。
【0043】
なお、キャッシュ60は、図2(b)のCPU101内のキャッシュメモリであってもよく、RAM102であってもよい。また、一例として、キャッシュ60は、格納部10よりもアクセス速度が速い記憶部である。
【0044】
また、上記の例では遺伝的アルゴリズムを用いているが、他の進化的アルゴリズムを用いてもよい。進化的アルゴリズムとは、生物の進化の原理を応用して、目的関数が所定の条件を満足するように説明変数の組み合わせを探索する手法である。
【0045】
続いて、情報処理装置100が最適化を実行する問題の一例として、分子の配列および安定構造を探索する問題について説明する。この場合の個体は、複数の化合物基が順次配置される格子の集合である格子空間に、当該複数の化合物基のいずれかが格子空間のいずれかの格子に配置されたことを表す個体である。図7(a)および図7(b)は、分子の配列および安定構造を探索する問題を例示する図である。図7(a)および図7(b)では、分子A~Cの結合相互作用および非結合相互作用を考慮して最適な配列および安定構造を探索する場合を例示している。
【0046】
図7(a)では、分子A~Cの配列が例示されている。実線で結ばれている分子同士は、結合しているため結合相互作用が生じている。破線で結ばれている分子同士は、結合せずに隣接しているため非結合相互作用が生じている。図7(b)は、結合相互作用および非結合相互作用の関係を例示している。
【0047】
現状では、分子の安定構造探索はLPP(Lattice Protein problem)として、Diamond encoding等を用いて既にQUBO定式化されている。例えば、「R. Babbush, A. Perdomo-Ortiz, B. O'Gorman,W. Macready, and A. Aspuru-Guzik, arXiv:1211.3422v2 (2013).」で、安定構造探索がQUBO定式化されている。しかしながら、配列探索を含む場合には、QUBO定式化されておらず、そのままでは扱えない。配列探索を含む場合には、全通りの配列に対して、安定構造探索の最適化を実施する必要がある。
【0048】
そこで、本実施例のように、分子配列最適化を順序最適化として進化的アルゴリズムで実行し、LPPをQUBO形式としたLPPを組合せ最適化としてイジングマシンで実行する。
【0049】
図8(a)~図8(e)で例示するように、各格子位置における粒子の有無をビットで表現する。図8(a)は、粒子1~4を例示している。図8(b)で例示するように、粒子1の位置は固定位置である。図8(c)は、粒子2が取り得る位置を例示している。図8(d)は、粒子3が取り得る位置を例示している。図8(e)は、粒子4が取り得る位置を例示している。これらのように、2次元格子モデルのビット配列が例示されている。
【0050】
図9(a)~図9(d)は、制約条件と目的関数がどうあるべきかを例示するDiamond encoding法である。図9(a)の例では、同じ粒子が複数となっている。この場合は、構造が不安定化する。図9(b)の例では、異なる粒子が重なっている。この場合にも、構造が不安定化する。図9(c)の例では、粒子4が他の粒子と連結していない。この場合にも、構造が不安定化する。図9(d)の例では、粒子1と粒子4とが隣接しており、非連結粒子が隣接している。この場合には、非連結粒子の相互作用が生じる。
【0051】
このDiamond encoding法を用いてQUBO定式化を行なう。下記式は、QUBOへの定式化を例示する。例えば、Honeは、1~n番目のアミノ酸はそれぞれ1つしか無いという制約である。Hconnは、1~n番目のアミノ酸はそれぞれ繋がっているという制約である。Holapは、1~n番目のアミノ酸はそれぞれ重ならないという制約である。Hpairは、アミノ酸同士の相互作用項であって、構造エネルギーを表している。
【数2】
【0052】
oneは、下記式で表すことができる。Honeは、例えば、図10において、Xに隣接するX、X、X、Xのうち、いずれか一つだけ「1」であるため、いずれか二つ以上が「1」になっていた場合にエネルギーが上がる関数であり、一つだけ「1」であった場合は「0」になるペナルティ項である。
【数3】
【0053】
connは、下記式で表すことができる。Hconnは、例えば、図11において、Xが「1」のとき、Xに隣接するX13、X、Xのいずれかが「1」であればエネルギーが下がる式であり、すべてのアミノ酸が連結していると「0」になるペナルティ項である。
【数4】
【0054】
olapは、下記式で表すことができる。Holapは、例えば、図10において、Xが「1」のとき、Xの位置に重なってX14が「1」になった場合にペナルティが発生する項である。
【数5】
【0055】
pairは、下記式で表すことができる。Hpairは、例えば、図12において、Xが「1」のとき、Xに隣接するX15が「1」になった場合にXのアミノ酸とX15のアミノ酸との間に相互作用Pω(x)ω(x15)が働き、エネルギーが下がるという関数である。相互作用係数Pは、負の値である。
【数6】
【0056】
(シミュレーション結果)
以下、仮想の問題を設定し、実施例に係る最適化処理を行なったシミュレーション結果について説明する。分子の種類を分子A、分子B、分子Cの3種類とする。分子の個数を10個とする。具体的には、分子Aを4個、分子Bを3個、分子Cを3個とする。相互作用係数は、ランダムに生成する。例えば、相互作用係数として、-100から-1の間の整数とする。
【0057】
結合相互作用および非結合相互作用については、図13に示す。進化的アルゴリズムには、遺伝的アルゴリズムを用いた。遺伝的アルゴリズムにおいて、個体数を150とし、世代数を50とし、交叉確率を0.7とし、突然変異確率を0.3とし、個体評価時の並列数を8とした。
【0058】
図14(a)は、配列全探索とLPPを実行した場合の結果を示している。得られた配列はBBCCCBAAAAであり、E=-953(結合=-670、非結合:-283)であった。解析時間は、61.35分であった。
【0059】
図14(b)は、本実施例に係る処理を実行した場合の結果を示している。得られた配列は、BBCCCBAAAAで図14(a)と同じであり、E=-953(結合=-670、非結合:-283)で同じであった。解析時間は、1.85分であった。
【0060】
このように、本実施例に係る処理を実行した場合には、配列全探索とLPPを実行した場合と同じ計算結果が得られ、計算時間が大幅に削減できていることがわかった。
【0061】
上記例において、順序最適化部40が、配列探索を含む組合せ最適化処理の対象であって順序情報を有する個体を対象として、進化的アルゴリズムを用いて世代が進むことに応じて評価値が更新されるように順序情報を探索する順序探索処理部の一例である。組合せ最適化部50が、順序探索処理部によって探索された個体が有する順序情報を用いて配列を生成し、生成された配列をQUBO形式に変換して組合せを探索する組合せ探索処理部の一例である。キャッシュ60が、記進化的アルゴリズムによって得られる個体の評価値を格納するキャッシュの一例である。
【0062】
以上、本発明の実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
(付記1)
コンピュータに、
配列探索を含む組合せ最適化処理の対象であって順序情報を有する個体を対象として、進化的アルゴリズムを用いて世代が進むことに応じて評価値が更新されるように前記順序情報を探索する順序探索処理と、
前記順序探索処理によって探索された前記個体が有する前記順序情報を用いて配列を生成し、生成された前記配列をQUBO形式に変換して組合せを探索する組合せ探索処理と、
を実行させることを特徴とする演算プログラム。
(付記2)
前記順序情報は、前記個体に含まれる複数の要素の配列の順序を示す情報であり、前記組合せは、前記複数の要素の配列に関する組合せであることを特徴とする付記1に記載の演算プログラム。
(付記3)
前記評価値は、前記進化的アルゴリズムによって得られる個体が有する順序情報を用いて配列を生成し、生成された前記配列をQUBO形式に変換し、組合せ最適化を実行することで得られた結果を評価することで得られる値であることを特徴とする付記1または付記2に記載の演算プログラム。
(付記4)
前記コンピュータに、
前記進化的アルゴリズムによって得られる個体の前記評価値をキャッシュに格納しておき、次世代以降に得られる個体が有する配列が前記キャッシュに格納された前記個体の配列と同じときは、前記キャッシュに格納された前記評価値を読み出し、個体の評価に用いる処理を実行させることを特徴とする付記3に記載の演算プログラム。
(付記5)
前記進化的アルゴリズムとして、遺伝的アルゴリズムを用いることを特徴とする付記1または付記2に記載の演算プログラム。
(付記6)
前記個体は、複数の化合物基が順次配置される格子の集合である格子空間に、前記複数の化合物基のいずれかが前記格子空間のいずれかの格子に配置されたことを表す個体であることを特徴とする付記1または付記2に記載の演算プログラム。
(付記7)
配列探索を含む組合せ最適化処理の対象であって順序情報を有する個体を対象として、進化的アルゴリズムを用いて世代が進むことに応じて評価値が更新されるように前記順序情報を探索し、
探索された前記個体が有する順序情報を用いて配列を生成し、生成された前記配列をQUBO形式に変換して組合せを探索する、
処理をコンピュータが実行することを特徴とする演算方法。
(付記8)
前記順序情報は、前記個体に含まれる複数の要素の配列の順序を示す情報であり、前記組合せは、前記複数の要素の配列に関する組合せであることを特徴とする付記7に記載の演算方法。
(付記9)
前記評価値は、前記進化的アルゴリズムによって得られる個体が有する順序情報を用いて配列を生成し、生成された前記配列をQUBO形式に変換し、組合せ最適化を実行することで得られた結果を評価することで得られる値であることを特徴とする付記7または付記8に記載の演算方法。
(付記10)
前記進化的アルゴリズムによって得られる個体の前記評価値をキャッシュに格納しておき、次世代以降に得られる個体が有する配列が前記キャッシュに格納された前記個体の配列と同じときは、前記キャッシュに格納された前記評価値を読み出し、個体の評価に用いる処理を、前記コンピュータが実行することを特徴とする付記9に記載の演算方法。
(付記11)
前記進化的アルゴリズムとして、遺伝的アルゴリズムを用いることを特徴とする付記7または付記8に記載の演算方法。
(付記12)
前記個体は、複数の化合物基が順次配置される格子の集合である格子空間に、前記複数の化合物基のいずれかが前記格子空間のいずれかの格子に配置されたことを表す個体であることを特徴とする付記7または付記8に記載の演算方法。
(付記13)
配列探索を含む組合せ最適化処理の対象であって順序情報を有する個体を対象として、進化的アルゴリズムを用いて世代が進むことに応じて評価値が更新されるように前記順序情報を探索する順序探索処理部と、
前記順序探索処理部によって探索された前記個体が有する前記順序情報を用いて配列を生成し、生成された前記配列をQUBO形式に変換して組合せを探索する組合せ探索処理部と、を備えることを特徴とする情報処理装置。
(付記14)
前記順序情報は、前記個体に含まれる複数の要素の配列の順序を示す情報であり、前記組合せは、前記複数の要素の配列に関する組合せであることを特徴とする付記13に記載の情報処理装置。
(付記15)
前記評価値は、前記進化的アルゴリズムによって得られる個体が有する順序情報を用いて配列を生成し、生成された前記配列をQUBO形式に変換し、組合せ最適化を実行することで得られた結果を評価することで得られる値であることを特徴とする付記13または付記14に記載の情報処理装置。
(付記16)
前記進化的アルゴリズムによって得られる個体の前記評価値を格納するキャッシュを備え、
前記順序探索処理部は、次世代以降に得られる個体が有する配列が前記キャッシュに格納された前記個体の配列と同じときは、前記キャッシュに格納された前記評価値を読み出し、個体の評価に用いることを特徴とする付記15に記載の情報処理装置。
(付記17)
前記進化的アルゴリズムとして、遺伝的アルゴリズムを用いることを特徴とする付記13または付記14に記載の情報処理装置。
(付記18)
前記個体は、複数の化合物基が順次配置される格子の集合である格子空間に、前記複数の化合物基のいずれかが前記格子空間のいずれかの格子に配置されたことを表す個体であることを特徴とする付記13または付記14に記載の情報処理装置。
【符号の説明】
【0063】
10 格納部
20 初期個体生成部
30 評価部
40 順序最適化部
50 組合せ最適化部
60 キャッシュ
100 情報処理装置
101 CPU
102 RAM
103 記憶装置
104 入力装置
105 表示装置

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14