(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-24
(45)【発行日】2024-07-02
(54)【発明の名称】最適化装置、最適化プログラム、及び最適化方法
(51)【国際特許分類】
G06N 99/00 20190101AFI20240625BHJP
【FI】
G06N99/00 180
(21)【出願番号】P 2020020502
(22)【出願日】2020-02-10
【審査請求日】2022-10-06
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100107515
【氏名又は名称】廣田 浩一
(72)【発明者】
【氏名】實宝 秀幸
【審査官】渡辺 一帆
(56)【参考文献】
【文献】特開2020-004387(JP,A)
【文献】特開2015-191340(JP,A)
【文献】米国特許出願公開第2017/0017884(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 99/00
(57)【特許請求の範囲】
【請求項1】
相互に独立した複数の組合せ最適化問題を求解するための複数ビットのうち、複数の第1ビットを前記複数の組合せ最適化問題に含まれる第1組合せ最適化問題に割り当て、複数の第2ビットを前記複数の組合せ最適化問題に含まれる第2組合せ最適化問題に割り当て、
前記複数の第1ビットの各々と前記複数の第2ビットの各々との相互作用をゼロとして、
前記複数の組合せ最適化問題を求解する求解部を備えることを特徴とする最適化装置。
【請求項2】
前記第1組合せ最適化問題と前記第2組合せ最適化問題は互いに同種又は異種の組合せ最適化問題である、請求項1に記載の最適化装置。
【請求項3】
前記複数の第2ビットは、前記複数ビットにおいて前記複数の第1ビットに対して隣接する、請求項1又は2に記載の最適化装置。
【請求項4】
前記求解部が、
前記複数の組合せ最適化問題をコスト関数に基づき求解し、
前記コスト関数は、
前記複数の第1ビットに含まれるそれぞれのビットの間の相互作用が整数となり、
前記複数の第2ビットに含まれるそれぞれのビットの間の相互作用が整数となるように定められた関数である、
請求項1から3のいずれかに記載の最適化装置。
【請求項5】
前記求解部が、下記式(1)で表されるイジングモデルに変換した前記コスト関数に基づき、前記複数の組合せ最適化問題を求解する、請求項4に記載の最適化装置。
【数1】
ただし、前記式(1)において、
前記Eは、当該Eを最小化することが、前記複数の組合せ最適化問題を求解することを意味する前記コスト関数であり、
前記w
ijは、i番目の前記ビットとj番目の前記ビットとの間の相互作用を表す数値であり、
前記b
iは、i番目の前記ビットに対するバイアスを表す数値であり、
前記x
iは、i番目の前記ビットが0又は1であることを表すバイナリ変数であり、
前記x
jは、j番目の前記ビットが0又は1であることを表すバイナリ変数である。
【請求項6】
前記求解部が、焼き鈍し法により、前記複数の組合せ最適化問題を求解する、請求項1から5のいずれかに記載の最適化装置。
【請求項7】
相互に独立した複数の組合せ最適化問題を求解するための複数ビットのうち、複数の第1ビットを前記複数の組合せ最適化問題に含まれる第1組合せ最適化問題に割り当て、複数の第2ビットを前記複数の組合せ最適化問題に含まれる第2組合せ最適化問題に割り当て、
前記複数の第1ビットの各々と前記複数の第2ビットの各々との相互作用をゼロとして、
前記複数の組合せ最適化問題を求解する処理を、コンピュータに行わせることを特徴とする最適化プログラム。
【請求項8】
相互に独立した複数の組合せ最適化問題を求解するための複数ビットのうち、複数の第1ビットを前記複数の組合せ最適化問題に含まれる第1組合せ最適化問題に割り当て、複数の第2ビットを前記複数の組合せ最適化問題に含まれる第2組合せ最適化問題に割り当て、
前記複数の第1ビットの各々と前記複数の第2ビットの各々との相互作用をゼロとして、
前記複数の組合せ最適化問題を求解する求解工程を含む
処理を、コンピュータに行わせることを特徴とする最適化方法。
【発明の詳細な説明】
【技術分野】
【0001】
本件は、最適化装置、最適化プログラム、及び最適化方法に関する。
【背景技術】
【0002】
種々の条件や制約を考慮して、膨大な組合せの中から最適な組合せを求める問題を、組合せ最適化問題という。近年では、実社会における様々な分野において、問題の解決に組合せ最適化問題を応用して、最適な答えを得ようとする試みが行われている。
組合せ最適化問題として考えることができる問題としては、例えば、創薬における分子の類似性検索、金融におけるポートフォリオの最適化、デジタルマーケティングのパーソナライズ広告の最適化、工場や物流における倉庫部品の配置の最適化などが挙げられる。
【0003】
しかしながら、組合せ最適化問題においては、考慮する要因の数が増えると、要因の組合せの数が指数関数的に膨大に増えるため、逐次的に処理を行う従来の計算手法では、実社会の問題を実用的な時間内に解くことは難しい。
そこで、組合せ最適化問題を高速に解くことができる技術として、アニーリングマシンなどを用いて、焼き鈍し法(アニーリング)による計算を行う技術が提案されている(例えば、特許文献1参照)。
【0004】
ここで、このような従来技術においては、複数の組合せ最適化問題を解く場合には、それぞれの組合せ最適化問題について別々に計算を行う(別々のジョブとして計算する)ことにより、それぞれの組合せ最適化問題を個別に求解する。このため、従来技術では、求解しようとする組合せ最適化問題の数に応じて、個別に繰り返して求解を行わなければならず、複数の組合せ最適化問題の求解に必要となる計算時間が長くなってしまうという問題があった。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
一つの側面では、本件は、複数の組合せ最適化問題を、個別に求解することを繰り返すことなく効率的に短時間で求解できる最適化装置、最適化プログラム、及び最適化方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記の課題を解決するための手段の一つの実施態様は、以下の通りである。
すなわち、一つの実施態様では、最適化装置は、複数の組合せ最適化問題を求解するための複数ビットのうち、複数の第1ビットを複数の組合せ最適化問題に含まれる第1組合せ最適化問題に割り当て、複数の第2ビットを複数の組合せ最適化問題に含まれる第2組合せ最適化問題に割り当て、複数の第1ビットの各々と複数の第2ビットの各々との相互作用をゼロとして、複数の組合せ最適化問題を求解する求解部を備える。
【0008】
また、一つの実施態様では、最適化プログラムは、複数の組合せ最適化問題を求解するための複数ビットのうち、複数の第1ビットを複数の組合せ最適化問題に含まれる第1組合せ最適化問題に割り当て、複数の第2ビットを複数の組合せ最適化問題に含まれる第2組合せ最適化問題に割り当て、複数の第1ビットの各々と複数の第2ビットの各々との相互作用をゼロとして、複数の組合せ最適化問題を求解する処理を、コンピュータに行わせる。
【0009】
さらに、一つの実施態様では、最適化方法は、複数の組合せ最適化問題を求解するための複数ビットのうち、複数の第1ビットを複数の組合せ最適化問題に含まれる第1組合せ最適化問題に割り当て、複数の第2ビットを複数の組合せ最適化問題に含まれる第2組合せ最適化問題に割り当て、複数の第1ビットの各々と複数の第2ビットの各々との相互作用をゼロとして、複数の組合せ最適化問題を求解する求解工程を含む。
【発明の効果】
【0010】
一つの側面では、本件は、複数の組合せ最適化問題を、個別に求解することを繰り返すことなく効率的に短時間で求解できる最適化装置、最適化プログラム、及び最適化方法を提供できる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、組合せ最適化問題を求解することにより、問い合わせ分子に対して、類似する構造を有する分子を探索する際の様子の一例を示す図である。
【
図2】
図2は、従来技術の一例において、3つの組合せ最適化問題を、アニーリングマシンを用いて、それぞれの組合せ最適化問題に対応するイジングモデル式を最小化することにより求解する際の形態の一例を示す図である。
【
図3】
図3は、本件で開示する技術の一例において、3つの組合せ最適化問題を、アニーリングマシンを用いて、それぞれの組合せ最適化問題に対応するイジングモデル式を最小化することにより求解する際の形態の一例を示す図である。
【
図4】
図4は、本件で開示する技術の一例において、複数の組合せ最適化問題における個々の組合せ最適化問題の求解に用いるビットを割り当てる方式の一例を示す図である。
【
図5】
図5は、本件で開示する技術の一例において、複数の組合せ最適化問題における個々の組合せ最適化問題の求解に用いるビットを割り当てる方式の他の一例を示す図である。
【
図6】
図6は、本件で開示する技術の一例において、複数の組合せ最適化問題における個々の組合せ最適化問題の求解に用いるビットを割り当てる方式の他の一例を示す図である。
【
図7】
図7は、本件で開示する最適化装置の構成例を表す図である。
【
図8】
図8は、本件で開示する最適化装置の他の構成例を表す図である。
【
図9】
図9は、本件で開示する最適化装置の他の構成例を表す図である。
【
図10】
図10は、本件で開示する最適化装置の一実施形態としての機能構成例を示す図である。
【
図11】
図11は、本件で開示する技術の一例を用いて、複数の組み合わせ最適化問題を求解する際のフローチャートの例である。
【
図12】
図12は、焼き鈍し法に用いるアニーリングマシンの機能構成の一例を示す図である。
【
図13】
図13は、遷移制御部の回路レベルの一例を示すブロック図である。
【
図14】
図14は、遷移制御部の動作フローの一例を示す図である。
【
図15】
図15は、実施例1の問題(A1)におけるバイアスの例を示す図である。
【
図16】
図16は、実施例1の問題(A2)におけるバイアスの例を示す図である。
【
図17】
図17は、実施例1の問題(A1)と問題(A2)の求解に用いるバイアスの例を示す図である。
【
図18】
図18は、実施例1の問題(A1)におけるウエイトの例を示す図である。
【
図19】
図19は、実施例1の問題(A2)におけるウエイトの例を示す図である。
【
図20】
図20は、実施例1の問題(A1)と問題(A2)の求解に用いるウエイトの例を示す図である。
【
図21】
図21は、実施例1及び比較例1の条件及び結果を示す図である。
【
図22】
図22は、酢酸及び酢酸メチルをグラフ化する様子の一例を示す図である。
【
図23】
図23は、分子A及びBにおける同じ元素どうしを組み合わせてコンフリクトグラフのノードをする場合の組み合わせの一例を示す図である。
【
図24】
図24は、コンフリクトグラフにおけるエッジ作成のルールの一例を示す図である。
【
図25】
図25は、分子Aと分子Bにおけるコンフリクトグラフの一例を示す図である。
【
図26】
図26は、グラフにおける最大独立集合の一例を示す図である。
【
図27】
図27は、分子Aと分子Bとにおける最大の共通部分構造を、コンフリクトグラフの最大独立集合を求める(最大独立集合問題を解く)ことにより求める場合における流れの一例を示す図である。
【
図28】
図28は、ノードの数が6個のグラフにおける最大独立集合を探索する手法の一例を説明するための説明図である。
【
図29】
図29は、ノードの数が6個のグラフにおける最大独立集合を探索する手法の一例を説明するための説明図である。
【
図30】
図30は、コンフリクトグラフにおける最大独立集合の一例を示す図である。
【
図31】
図31は、実施例2において設定するバイアス及びウエイトの配置方式の一例を示す図である。
【
図32】
図32は、比較例2において設定するバイアス及びウエイトの配置方式の一例を示す図である。
【
図33】
図33は、実施例2及び比較例2の条件及び結果を示す図である。
【
図34】
図34は、実施例2において、複数の組合せ最適化問題を求解することにより、個々の組合せ最適化問題を求解した結果として、ビットの状態(ステート)の情報を得るときのビットの状態の一例を示す図である。
【
図35】
図35は、実施例3において設定するバイアス及びウエイトの配置方式の一例を示す図である。
【
図36】
図36は、比較例3において設定するバイアス及びウエイトの配置方式の一例を示す図である。
【
図37】
図37は、実施例3及び比較例3の条件及び結果を示す図である。
【
図38】
図38は、実施例4において設定するバイアス及びウエイトの配置方式の一例を示す図である。
【
図39】
図39は、比較例4において設定するバイアス及びウエイトの配置方式の一例を示す図である。
【
図40】
図40は、実施例4及び比較例4の条件及び結果を示す図である。
【
図41】
図41は、本件で開示する技術の一実施形態及び従来技術における、複数の組み合わせ最適化問題を求解する際の関係の一例を示す図である。
【発明を実施するための形態】
【0012】
(最適化装置)
本件で開示する最適化装置は、一つの側面では、複数の組合せを最適化する装置とすることができる。本件で開示する最適化装置は、求解部を備え、更に必要に応じてその他の部(手段)を備える。
【0013】
まず、本件で開示する技術の詳細を説明する前に、従来技術における組合せ最適化問題の求解手法について説明する。
組合せ最適化問題を求解する手法としては、例えば、組合せ最適化問題における条件や制約に基づいた関数である「コスト関数」を用いる手法が挙げられる。なお、コスト関数は、目的関数、エネルギー関数、ハミルトニアンなどと称される場合もある。
コスト関数は、当該コスト関数における変数(パラメータ)が、組合せ最適化問題における最適な組合せとなるときに、最小の値をとる関数である。このため、コスト関数が最小の値となる変数の組合せを探索することにより、組合せ最適化問題の解を探索することができる。
【0014】
ここで、コスト関数が最小の値となる変数の組合せを探索する手法としては、例えば、コスト関数をイジングモデルと呼ばれる形式に変換し、イジングモデルに変換したコスト関数の値を最小化することにより、組合せ最適化問題の求解を行う手法が挙げられる。
イジングモデル式に変換したコスト関数の最小化は、例えば、アニーリングマシンなどを用いた焼き鈍し法(アニーリング)を行うことにより、短時間で実行することができる。ここで、焼き鈍し法とは、材料を高い温度に熱してから徐々に冷ますことにより、材料の結晶構造を最適な状態に収束させることに例えられた方法である。焼き鈍し法では、材料における温度に相当するパラメータを高い状態から徐々に下げていくことで、解の探索範囲を広い範囲から徐々に狭めていき、最もエネルギーの低い状態を探索することができる。
また、アニーリングマシンとは、イジングモデルで表されるコスト関数について基底状態探索を行なうアニーリング方式のコンピュータを意味する。アニーリングマシンを用いることにより、従来のノイマン型のコンピュータと比べて、イジングモデル式に変換したコスト関数の最小化(コスト関数の最小値の探索)を短時間で行うことができるため、組合せ最適化問題を短時間で求解することができる。
【0015】
イジングモデルに変換したコスト関数としては、例えば、下記の数式(1)で表される数式を用いることができる。なお、下記の数式(1)は、Quadratic Unconstrained Binary Optimization(QUBO)形式のイジングモデルである。
【数1】
ただし、上記式(1)において、Eは、最小化することが組合せ最適化問題を求解することを意味するコスト関数である。
w
ijは、i番目の要素(ビット)とj番目の要素(ビット)の間の重み付けのための係数である。
x
iは、i番目の要素(ビット)が0又は1であることを表すバイナリ変数であり、x
jは、j番目の要素(ビット)が0又は1であることを表すバイナリ変数である。
b
iは、i番目の要素(ビット)に対するバイアスを表す数値である。
【0016】
ここで、アニーリングマシンにより、上記の式(1)のイジングモデルのコスト関数(イジングモデル式)を焼き鈍し法で最小化する際には、式(1)のイジングモデル式における「xi」のそれぞれに対応するビットを割り当てる。また、イジングモデル式を最小化することにより組合せ最適化問題を求解する際、アニーリングマシンでは、組合せ最適化問題の規模(組合せの数)が大きいほど、多くの数のビットを割り当てる必要がある。
上記の式(1)のイジングモデル式における「bi」は、それぞれのビットに対するバイアスの項であり、計算に用いられるビットと同数の数値の組である。また、上記の式(1)のイジングモデル式における「wij」は、ビットとビットとの間の重み付けのための係数(ウエイト)であり、ビット間の相互作用の大きさを意味し、計算に用いられるビットの組合せ(ビットの数の二乗)と同数の数値の組である。
【0017】
このように、アニーリングマシンにより、上記の式(1)のイジングモデル式を最小化する際には、組合せ最適化問題の規模に合わせて割り当てた数のビット(0又は1)を用いて、バイアス及びウエイトに基づきイジングモデル式の最小値を探索する。このため、アニーリングマシンにより上記の式(1)のイジングモデル式を最小化する際に、従来技術では、求解する組合せ最適化問題ごとにバイアス及びウエイトを設定して、焼き鈍し法による計算を実行する。
【0018】
ここで、組合せ最適化問題を実社会の問題に適用しようとする際には、多数の組合せ最適化問題を求解することが求められる場合がある。
例えば、創薬などの場面において、組合せ最適化問題を求解することにより、分子間の類似性(類似度)を求める場合、基準とする1つの分子(問い合わせ分子)に対する、様々な分子の類似性を求めることが必要となるときがある。
図1に示すように、例えば、薬としての効果が既知の問い合わせ分子に対して、類似する構造を有する分子を探索する際には、問い合わせ分子と、問い合わせ分子に対する類似性を求める検索対象分子とのそれぞれについて、類似性を求める必要がある。このとき、例えば、10,000個の分子が記録されたデータベースから、問い合わせ分子に類似する検索対象分子を検索する場合、検索対象分子ごとの類似性を求めるためには、10,000個のように膨大な数の組合せ最適化問題を求解する必要がある。
【0019】
このように、複数の組合せ最適化問題を求解しようとする場合、従来技術においては、それぞれの組合せ最適化問題について別々に計算を行う(別々のジョブとして計算する)ことにより、それぞれの組合せ最適化問題を個別に求解する。つまり、従来技術においては、複数の組合せ最適化問題を求解する場合、まず初めに1つ目の組合せ最適化問題を求解し、1つ目の組合せ最適化問題の求解が完了した後に、2つ目の組合せ最適化問題を求解する。したがって、従来技術では、複数の組合せ最適化問題を求解する場合、1つ1つの組合せ最適化問題を逐次的に計算するため、求解しようとする組合せ最適化問題の数に応じて、組合せ最適化問題の求解に必要となる計算時間が長くなってしまうという問題があった。
【0020】
従来技術の一例として、
図2に示すように、3つの組合せ最適化問題を、アニーリングマシンを用いて、それぞれの組合せ最適化問題に対応するイジングモデル式を最小化することにより求解する場合を考える。
図2の例では、問題(1)の求解を行うためのジョブ(1)は、2つのビット(2bit)を用いる組合せ最適化問題であり、バイアスは2つの数値の組となり、ウエイトは4つの数値の組となる。問題(2)の求解を行うためのジョブ(2)は、4つのビットを用いる組合せ最適化問題であり、バイアスは4つの数値の組となり、ウエイトは16つの数値の組となる。問題(3)の求解を行うためのジョブ(3)は、問題(1)と同様に、2つのビットを用いる組合せ最適化問題であり、バイアスは2つの数値の組となり、ウエイトは4つの数値の組となる。
また、
図2の例においては、問題(1)、(2)、(3)のそれぞれの求解に必要となる計算時間は、それぞれ1秒であるとする。
【0021】
図2の例においては、まず初めに問題(1)の求解を行い、問題(1)の求解が完了した後に、問題(2)の求解を行い、問題(2)の求解が完了した後に、問題(3)の求解を行う。このため、
図2に示した例では、問題(1)、(2)、及び(3)の求解に必要となる計算時間は、最も短い場合でも3秒となる。
図2に示したような例では、複数の組合せ最適化問題の求解を行うために必要となる計算時間は、求解する組合せ最適化問題の数に比例して増大する。このため、従来技術では、例えば、求解に1秒かかる組合せ最適化問題をN個求解する場合は、最短でも合計でN秒の計算時間が必要となる。
【0022】
このように、従来技術では、求解しようとする組合せ最適化問題の数に応じて、個別に繰り返して求解を行わなければならず、求解に必要となる計算時間が長くなってしまい、複数の組合せ最適化問題を効率的に短時間で求解することができなかった。
【0023】
そこで、本発明者は、複数の組合せ最適化問題を、個別に求解することを繰り返すことなく効率的に短時間で求解できる最適化装置等について鋭意検討を重ね、以下の知見を得た。すなわち、本発明者は、複数の組合せ最適化問題を求解するための複数ビットのうち、複数の第1ビットを複数の組合せ最適化問題に含まれる第1組合せ最適化問題に割り当て、複数の第2ビットを複数の組合せ最適化問題に含まれる第2組合せ最適化問題に割り当て、複数の第1ビットの各々と複数の第2ビットの各々との相互作用をゼロとして、複数の組合せ最適化問題を求解する求解部を備える最適化装置等により、複数の組合せ最適化問題を、個別に求解することを繰り返すことなく効率的に短時間で求解できることを知見した。本件で開示する技術は、この知見に基づくものである。
【0024】
ここで、本件で開示する技術の一例について、
図3を参照して説明する。
図3に示す例では、
図2に示した例と同様に、3つの組合せ最適化問題を、アニーリングマシンを用いて求解する場合を考える。
図3に示す例では
図2に示した例と同様に、問題(1)は2つのビットを用いる問題であり、問題(2)は4つのビットを用いる問題であり、問題(3)は2つのビットを用いる問題であるとする。
本件で開示する技術の一例では、まず、これらの3つの組合せ最適化問題を求解するためのビットを用意する。用意するビットの数(例えば、アニーリングマシンのビット数)は、それぞれの組合せ最適化問題の求解に必要となるビットの数の合計以上の数であるとする。
【0025】
図3に示した例では、用意したビットにおける、1番目と2番目のビットを、問題(1)を求解するためのビットとし、3番目から6番目のビットを、問題(2)を求解するためのビットとし、7番目と8番目のビットを、問題(3)を求解するためのビットとする。このように、本件で開示する技術の一例では、用意したビットにおいて、複数の組合せ最適化問題における個々の組合せ最適化問題の求解に用いるビットを割り当てる。つまり、本件で開示する技術の一例では、複数の組合せ最適化問題を求解するための複数ビットのうち、複数の第1ビットを複数の組合せ最適化問題に含まれる第1組合せ最適化問題に割り当てる。さらに、本件で開示する技術の一例では、複数の組合せ最適化問題を求解するための複数ビットのうち、複数の第2ビットを複数の組合せ最適化問題に含まれる第2組合せ最適化問題に割り当てる。
そして、本件で開示する技術の一例では、割り当てたビットのそれぞれに、イジングモデル式における「b
i」に対応するバイアスの値が設定される。
図3に示した例では、バイアスの1番目と2番目を、問題(1)の求解に用いるバイアスとし、バイアスの3番目から6番目を、問題(2)の求解に用いるバイアスとし、バイアスの7番目と8番目を、問題(3)の求解に用いるバイアスとする。なお、
図3においては、問題(1)の求解に用いるバイアスと、問題(2)の求解に用いるバイアスと、問題(3)の求解に用いるバイアスとを、バイアスの枠の濃淡で表している。
【0026】
本件で開示する技術の一例では、割り当てたビットの組合せごとに、イジングモデル式における「w
ij」に対応する重み付けのための係数(ウエイト)の値が設定される。ウエイトは、割り当てたビット間の相互作用を意味する。
図3に示した例では、1番目と2番目のビットの組合せに対応するウエイトを、問題(1)の求解に用いるウエイトとし、3番目から6番目のビットの組合せに対応するウエイトを、問題(2)の求解に用いるウエイトとする。同様に、
図3に示した例では、7番目と8番目ビットの組合せに対応するウエイトを、問題(3)の求解に用いるウエイトとする。なお、
図3においては、問題(1)の求解に用いるウエイトと、問題(2)の求解に用いるウエイトと、問題(3)の求解に用いるウエイトとを、ウエイトの枠の濃淡で表している。
【0027】
さらに、
図3に示した例では、問題(1)の求解に用いるビットと、問題(2)及び(3)の求解に用いるビットとの間のウエイトをゼロ(0)としている。また、
図3に示した例では、問題(2)の求解に用いるビットと、問題(1)及び(3)の求解に用いるビットとの間のウエイトをゼロとしている。同様に、
図3に示した例では、問題(3)の求解に用いるビットと、問題(1)及び(2)の求解に用いるビットとの間のウエイトをゼロとしている。つまり、
図3に示した例では、3つの組合せ最適化問題について、互いに異なる組合せ最適化問題(問題(1)から(3)のそれぞれ)の求解に用いるビット間のウエイトがゼロになっている。
このように、本件で開示する技術の一例では、複数の組合せ最適化問題における、互いに異なる組合せ最適化問題の求解に用いるビット間の相互作用をゼロとする。言い換えると、本件で開示する技術の一例では、複数の第1ビットの各々と複数の第2ビットの各々との相互作用をゼロとする。本件で開示する技術の一例では、こうすることにより、複数の組合せ最適化問題における、互いに異なる組合せ最適化問題を、それぞれ正しく求解することができる。
【0028】
また、
図3に示した例では、3つの組合せ最適化問題を一括して(1つのジョブ)で求解することができる。
ここで、アニーリングマシンなどを用いてイジングモデル式を最小化することにより、組合せ最適化問題を求解する際の計算時間は、例えば、焼き鈍し法による計算を実行する際のパラメータ(例えば、計算のイテレーション数(反復回数))などに依存する。このため、組合せ最適化問題の求解に割り当てるビットの数が多くなったとしても、同質の組合せ最適化問題の求解を行う場合、求解に必要となる計算時間は、一般に、1つの組合せ最適化問題の求解に必要となる計算時間と同じになる。
したがって、問題(1)、(2)、(3)のそれぞれの求解に必要となる計算時間が、それぞれ1秒であるとすると、
図3に示した例では、これらの3つの組合せ最適化問題の求解を、合計1秒で行うことができる。つまり、
図3に示した例では、
図2に示した従来技術の例と比べて、3分の1(1/3)の計算時間で、3つの組合せ最適化問題を求解することができる。このため、本件で開示する技術の一例では、例えば、求解に1秒かかる組合せ最適化問題をN個求解する場合であっても、1秒で全ての組合せ最適化問題を求解することができるため、従来技術に比べて、計算時間をN分の1(1/N)にすることができる。
【0029】
このように、本件で開示する技術では、複数の組合せ最適化問題を一括して正しく求解することができるため、従来技術と比べて、複数の組合せ最適化問題を求解する際の計算時間を短縮することができる。つまり、本件で開示する技術では、複数の組合せ最適化問題を、個別に求解することを繰り返すことなく効率的に短時間で求解できる。
【0030】
以下では、本件で開示する技術の一例である最適化装置について、より詳細に説明する。なお、本件で開示する技術の一例としての最適化装置における、組合せ最適化問題の求解などの処理(動作)は、例えば、最適化装置が有する求解部により行うことができる。
【0031】
<組合せ最適化問題>
本件で開示する技術において、求解する組合せ最適化問題としては、イジングモデルで
表現可能なものであれば特に制限はなく、目的に応じて適宜選択することができる。
組合せ最適化問題としては、例えば、分子(化合物)の類似性検索、ペプチドの安定構造の探索、金融におけるポートフォリオの最適化、デジタルマーケティングのパーソナライズ広告の最適化、工場や物流における倉庫部品の配置の最適化などの問題が挙げられる。
【0032】
また、本件で開示する技術は、例えば、多数の組合せ最適化問題を求解する場合に、特に好適に用いることができる。例えば、上述したように、創薬などの場面においては、化合物間の類似性(類似度)を求める場合に、基準とする1つの化合物(問い合わせ化合物)に対する、多数の化合物の類似性を計算することが求められるときがある。
アニーリングマシンなどを用いて組合せ最適化問題を求解することで化合物間の類似度を求める場合、
図1に示したような大きさ(原子数)の化合物間の類似性を求める際には、例えば、2つの化合物間の類似度の計算では20ビットから80ビット程度を割り当てる。アニーリングマシンが扱うことができるビットの数(用意できるビットの数)は、アニーリングマシンの種類ごとに異なるが、例えば、8,000ビット程度である場合には、2つの化合物間の類似度を、一度の計算で100通り以上求めることができる。
【0033】
本件で開示する技術においては、複数の組合せ最適化問題の求解を行う際に、求解を行う組合せ最適化問題が、全て同じ種類(同種)組合せ最適化問題である必要はなく、異なる種類(異種)の組合せ最適化問題が含まれていてもよい。本件で開示する技術では、例えば、化合物間の類似性(類似度)を求めるための組合せ最適化問題と、工場における倉庫部品の配置を最適化するための組合せ最適化問題とを、一括して(1回のジョブで)求解することもできる。
このように、本件で開示する技術では、複数の組合せ最適化問題が、同種及び異種の少なくともいずれかの組合せ最適化問題を含んでいてもよい。言い換えると、本件で開示する技術では、第1組合せ最適化問題と第2組合せ最適化問題は互いに同種又は異種の組合せ最適化問題とすることができる。
【0034】
<ビットの用意>
本件で開示する技術の一例では、複数の組合せ最適化問題を求解するためのビットを用意する。ここで、本件で開示する技術の一例において、ビットを用意する際には、例えば、組合せ最適化問題の求解に用いる計算機のビットを用いることができる。組合せ最適化問題の求解に用いる計算機としては、特に制限はなく、目的に応じて適宜選択することができるが、イジングモデルで表されるコスト関数について基底状態探索を行なうアニーリング方式のコンピュータ(アニーリングマシン)が好ましい。
アニーリングマシンとしては、例えば、量子アニーリングマシン、半導体技術を用いた半導体アニーリングマシン、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)を用いてソフトウェアにより実行されるシミュレーテッド・アニーリング(Simulated Annealing)を行うマシンなどが挙げられる。また、アニーリングマシンとしては、例えば、デジタルアニーラ(登録商標)を用いてもよい。
また、複数の組合せ最適化問題を求解するためのビットは、例えば、組合せ最適化問題の求解に用いるアニーリングマシンの種類に応じて選択することができ、例えば、演算ビット(0又は1の値をとる通常のビット)であってもよいし、量子ビット(量子的な重ね合わせが可能なビット)であってもよい。
【0035】
用意するビットの数(例えば、アニーリングマシンのビット数)としては、求解する複数の組合せ最適化問題において、それぞれの組合せ最適化問題の求解に必要となるビットの数の合計以上の数であれば、特に制限はなく、目的に応じて適宜選択することができる。
また、本件で開示する技術においては、複数の組合せ最適化問題の求解を、複数回行ってもよい。例えば、1,000ビットを用意可能なアニーリングマシンにより、求解に100ビット必要な組合せ最適化問題を20個求解する場合、まず10個の組合せ最適化問題を一括して求解し、次に残りの10個の組合せ最適化問題を一括して求解するようにしてもよい。このように、本件で開示する技術においては、用意するビットの数と、求解する組合せ最適化問題に割り当てるビットの数とに応じて、複数の組合せ最適化問題の求解を行う回数を、適宜選択することができる。
【0036】
<ビットの割り当て>
本件で開示する技術の一例では、用意したビットにおいて、複数の組合せ最適化問題における個々の組合せ最適化問題の求解に用いるビットを割り当てる。つまり、本件で開示する技術の一例では、求解する複数の組合せ最適化問題に含まれる、個々の組合せ最適化問題の求解に用いるビットを、用意したビットに割り当てる。
言い換えると、本件で開示する技術の一例では、複数の組合せ最適化問題を求解するための複数ビットのうち、複数の第1ビットを複数の組合せ最適化問題に含まれる第1組合せ最適化問題に割り当てる。さらに、本件で開示する技術の一例では、複数の組合せ最適化問題を求解するための複数ビットのうち、複数の第2ビットを複数の組合せ最適化問題に含まれる第2組合せ最適化問題に割り当てる。
【0037】
個々の組合せ最適化問題の求解に用いるビットの割り当ては、例えば、求解する組合せ最適化問題におけるイジングモデルにおいて、各ビットのバイアス及びビット間の相互作用を、個々の組合せ最適化問題に対応させて設定することにより行うことができる。
例えば、
図4に示す例では、バイアスの1番目と2番目を、問題(1)の求解に用いるバイアスとし、バイアスの3番目から6番目を、問題(2)の求解に用いるバイアスとし、バイアスの7番目と8番目を、問題(3)の求解に用いるバイアスとする。さらに、1番目と2番目のビットの組合せに対応するウエイト(相互作用)を、問題(1)の求解に用いるウエイトとし、3番目から6番目のビットの組合せに対応するウエイトを、問題(2)の求解に用いるウエイトとする。同様に、
図4に示した例では、7番目と8番目ビットの組合せに対応するウエイトを、問題(3)の求解に用いるウエイトとする。なお、
図4においては、各問題の求解に用いるバイアス及びウエイトを、バイアスの枠の濃淡で表している。
図4に示した例においては、上記のようにバイアス及びウエイトを設定することにより、1番目と2番目のビットを、問題(1)の求解に用いるビットとして割り当てることができる。同様に、
図4の例では、3番目から6番目のビットを、問題(2)の求解に用いるビットとして割り当てることができ、7番目と8番目のビットを、問題(3)の求解に用いるビットとして割り当てることができる。
【0038】
本件で開示する技術では、例えば、複数の組合せ最適化問題に含まれる、一の組合せ最適化問題の求解に用いるビットと、他の組合せ最適化問題の求解に用いるビットとが重複しないように、個々の組合せ最適化問題の求解に用いるビットを割り当てる。言い換えると、本件で開示する技術では、例えば、複数の組合せ最適化問題に含まれる、一の組合せ最適化問題の求解に用いるバイアス及びウエイトを、他の組合せ最適化問題の求解に用いるバイアス及びウエイトと重複しないように設定する。
このように、本件で開示する技術の一例では、複数の組合せ最適化問題における個々の組合せ最適化問題の求解に用いるビットを重複しないように割り当てることにより、個々の組合せ最適化問題を、確実に正しく求解することができる。
【0039】
本件で開示する技術の一例においては、
図4に示した例のように、互いに異なる組合せ最適化問題の求解に用いるビットが隣接するように、ビットを割り当てることが好ましい。言い換えると、本件で開示する技術の一例では、用意したビットにおいて、複数の組合せ最適化問題における、一の組合せ最適化問題の求解に用いるビットに対し、他の組合せ最適化問題の求解に用いるビットを隣接させて割り当てることが好ましい。つまり、本件で開示する技術の一例では、複数の第2ビットは、複数ビットにおいて複数の第1ビットに対して隣接することが好ましい。
こうすることにより、本件で開示する技術の一例では、複数の組合せ最適化問題における個々の組合せ最適化問題の求解に用いるビットを、効率的に割り振ることができ、一度の計算でより多くの組合せ最適化問題を求解することができる。
【0040】
また、本件で開示する技術では、個々の組合せ最適化問題の求解に用いるビットを、用意したビットの先頭から順に割り当てる(隣接させる)ことは必須ではなく、ビットの割り当て形式は、目的に応じて適宜選択することができる。
本件で開示する技術では、組合せ最適化問題の求解に用いる(割り当てる)ビットは、例えば、互いに異なる組合せ最適化問題の求解に用いるビットが隣接していなくてもよい。言い換えると、本件で開示する技術においては、一の組合せ最適化問題の求解に用いるビットと、他の組合せ最適化問題の求解に用いるビットの間に、組合せ最適化問題の求解に用いない(割り当てない)ビットが存在してもよい。つまり、本件で開示する技術においては、複数の第1ビットと、複数の第2ビットの間に、複数の組合せ最適化問題の求解に用いない(割り当てない)ビットが存在してもよい。
例えば、
図5に示すように、問題(1)の求解に用いるビットと、問題(2)の求解に用いるビットとの間に、組合せ最適化問題の求解に用いないビットが存在していてもよい。なお、複数の組合せ最適化問題の求解に用いないビットは、例えば、対応するバイアスの値及びウエイトの値が全てゼロであるビットとすることができる。
【0041】
さらに、本件で開示する技術では、組合せ最適化問題の求解に用いるビットは、例えば、個々の組合せ最適化問題の求解に用いるビットが一群となっていなくてもよい。言い換えると、本件で開示する技術においては、1つの組合せ最適化問題の求解に用いるビット間に、組合せ最適化問題の求解に用いない(割り当てない)ビットが存在してもよい。例えば、
図6に示すように、問題(1)の求解に用いるビット間に、組合せ最適化問題の求解に用いないビットが存在していてもよい。
【0042】
<ビット間の相互作用>
本件で開示する技術の一例では、複数の組合せ最適化問題における、互いに異なる組合せ最適化問題の求解に用いるビット間の相互作用(ウエイト)をゼロとする。言い換えると、本件で開示する技術の一例では、複数の組合せ最適化問題における、一の組合せ最適化問題の求解に用いるビットが関係するウエイトのうち、当該一の組合せ最適化問題の求解に用いるビットどうしの組合せ以外のウエイトをゼロとする。つまり、本件で開示する技術の一例では、複数の第1ビットの各々と複数の第2ビットの各々との相互作用をゼロとする。
【0043】
ここで、
図4に戻り、複数の組合せ最適化問題における、互いに異なる組合せ最適化問題の求解に用いるビット間の相互作用をゼロとすることについて説明する。
図4の例に示すように、問題(1)の求解に割り当てられた1番目と2番目のビットを含むウエイト(行又は列に、1番目又は2番目のビットを含むウエイト)において、1番目又は2番目のビットどうしの組合せのウエイト以外はゼロになっている。同様に、問題(2)の求解に割り当てられた3番目から6番目のビットを含むウエイト(行又は列に、3番目から6番目のいずれかのビットを含むウエイト)において、3番目から6番目のビットどうしの組合せのウエイト以外はゼロになっている。さらに、問題(3)の求解に割り当てられた7番目と8番目のビットを含むウエイト(行又は列に、7番目又は8番目のビットを含むウエイト)において、7番目又は8番目のビットどうしの組合せのウエイト以外はゼロになっている。
【0044】
このように、
図4に示した例では、3つの組合せ最適化問題における、個々の組合せ最適化問題(問題(1)から(3)のそれぞれ)の求解に用いるビット間以外のウエイトがゼロとなっている。言い換えると、
図4に示した例では、3つの組合せ最適化問題における、互いに異なる組合せ最適化問題の求解に用いるビット間の相互作用をゼロとしている。また、
図5及び6に示した例においても、3つの組合せ最適化問題における、互いに異なる組合せ最適化問題の求解に用いるビット間の相互作用がゼロとなっている。
【0045】
本件で開示する技術の一例では、上述した例のように、複数の組合せ最適化問題における、互いに異なる組合せ最適化問題の求解に用いるビット間の相互作用をゼロとする。言い換えると、本件で開示する技術の一例では、複数の第1ビットの各々と複数の第2ビットの各々との相互作用をゼロとする。こうすることにより、本件で開示する技術の一例では、個々の組合せ最適化問題を計算するためのビットの領域(バイアス及びウエイトの領域)を分けることができるため、個々の組合せ最適化問題を正しく求解することができる。
【0046】
また、複数の組合せ最適化問題における、互いに異なる組合せ最適化問題の求解に用いるビット間の相互作用(ウエイト)を「ゼロ」とする際には、ウエイトを「厳密なゼロ(0)」とすることは必須ではなく、「実質的にゼロ」と考えられる数値であればよい。「実質的にゼロ」と考えられる数値としては、例えば、組合せ最適化問題の求解した結果に影響を及ぼさない(正しく求解できる)程度の大きさの数値とすることができる。
「実質的にゼロ」と考えることができる数値は、例えば、組合せ最適化問題の求解に用いるバイアス及びウエイトの数値の大きさに対して相対的に変化する。例えば、バイアス及びウエイトの数値が大きい場合は、「実質的にゼロ」と考えることができる数値は、組合せ最適化問題の求解した結果に影響を及ぼさない範囲内であれば、多少大きな数値であってもよい。
【0047】
ここで、複数の組合せ最適化問題における、互いに同じ組合せ最適化問題の求解に用いるビット間の相互作用(ウエイト)としては、特に制限はなく、目的に応じて適宜選択することができ、例えば、整数とすることができる。つまり、互いに同じ組合せ最適化問題の求解に用いるビット間の相互作用は、正の整数であってもよいし、負の整数であってもよいし、ゼロであってもよい。
複数の組合せ最適化問題における、互いに同じ組合せ最適化問題の求解に用いるビット間の相互作用については、例えば、同一の番号のビット間のウエイトは、ゼロとすることが好ましい。言い換えると、本件で開示する技術の一例では、例えば、1番目のビットと1番目のビットの間のウエイトなど、同一の番号のビットどうしの組合せのウエイトは、バイアスと同様の意味合い(役割)となるため、ゼロとすることが好ましい。
【0048】
<複数の組合せ最適化問題の求解>
本件で開示する技術の一例では、複数の組合せ最適化問題について、個々の組合せ最適化問題の求解に用いるビットを割り当て、互いに異なる組合せ最適化問題の求解に用いるビット間の相互作用をゼロとした上で、複数の組合せ最適化問題を求解する。つまり、本件で開示する技術の一例では、複数の第1ビットを第1組合せ最適化問題に、複数の第2ビットを第2組合せ最適化問題に割り当て、複数の第1ビットの各々と複数の第2ビットの各々との相互作用をゼロとして、複数の組合せ最適化問題を求解する。
ここで、複数の組合せ最適化問題の求解方法としては、特に制限はなく、目的に応じて適宜選択することができるが、組合せ最適化問題における条件や制約に基づいた関数である「コスト関数」に基づき求解する方法が好ましい。本件で開示する技術の一例では、コスト関数が最小の値となる変数の組合せを探索することにより、組合せ最適化問題を求解することができる。
【0049】
コスト関数としては、求解する組合せ最適化問題の条件や制約に応じて、適宜選択することができ、例えば、同種の組合せ最適化問題であれば、関数の形式(表現)は同様のものを用いることができる。コスト関数の具体的な数式等については後述する。
本件で開示する技術の一例において、コスト関数は、複数の組合せ最適化問題における、互いに同じ組合せ最適化問題の求解に用いるビット間の相互作用が整数となるように定められた関数であることが好ましい。言い換えると、本件で開示する技術の一例では、コスト関数は、複数の第1ビットに含まれるそれぞれのビットの間の相互作用が整数となり、複数の第2ビットに含まれるそれぞれのビットの間の相互作用が整数となるように定められた関数であることが好ましい。また、本件で開示する技術の一例において、コスト関数は、複数の組合せ最適化問題における、互いに異なる組合せ最適化問題の求解に用いるビット間の相互作用がゼロとなるように定められた関数であることが好ましい。
つまり、本件で開示する技術の一例では、コスト関数は、互いに同じ組合せ最適化問題の求解に用いるビット間の相互作用が整数となり、互いに異なる組合せ最適化問題の求解に用いるビット間の相互作用がゼロとなるように定められた関数であることが好ましい。こうすることにより、本件で開示する技術の一例では、個々の組合せ最適化問題の求解に用いるウエイトを容易に設定することができ、複数の組合せ最適化問題を求解する際のユーザの利便性をより向上させることができる。
【0050】
また、コスト関数に基づいて複数の組合せ最適化問題を求解する手法としては、コスト関数をイジングモデルと呼ばれる形式に変換し、イジングモデルに変換したコスト関数の値を最小化することにより、組合せ最適化問題の求解を行う手法が好ましい。なお、本件で開示する技術の一例では、コスト関数が、元々イジングモデルの形式で表現されている場合もあり、この場合は、コスト関数のイジングモデルへの変換は行わなくてもよい。
イジングモデルに変換したコスト関数の値を最小化は、例えば、アニーリングマシンなどを用いた焼き鈍し法(アニーリング)を行うことにより、短時間で実行することができる。つまり、本件で開示する技術の一例では、焼き鈍し法により、複数の組合せ最適化問題を求解することが好ましい。なお、アニーリングマシンを用いた焼き鈍し法の詳細については後述する。
【0051】
イジングモデルに変換したコスト関数としては、例えば、下記の数式(1)で表される数式を用いることが好ましい。
【数2】
ただし、上記式(1)において、Eは、最小化することが、複数の組合せ最適化問題を求解することを意味するコスト関数である。
w
ijは、i番目のビットとj番目のビットの間の相互作用を表す数値である。
x
iは、i番目のビットが0又は1であることを表すバイナリ変数であり、x
jは、j番目のビットが0又は1であることを表すバイナリ変数である。
b
iは、i番目のビットに対するバイアスを表す数値である。
【0052】
ここで、上記式(1)におけるwijは、例えば、イジングモデルに変換する前のコスト関数における各パラメータの数値などを、xiとxjの組み合わせ毎に抽出することにより求めることができ、通常は行列となる。
上記式(1)における右辺の一項目は、全回路から選択可能な2つの回路の全組み合わせについて、漏れと重複なく、2つの回路の状態(ステート)と重み値(ウエイト)との積を積算したものである。
また、上記式(1)における右辺の二項目は、全回路のそれぞれのバイアスの値と状態との積を積算したものである。
つまり、イジングモデルに変換する前のコスト関数のパラメータを抽出して、wij及びbiを求めることにより、コスト関数を、上記式(1)で表されるイジングモデルに変換することができる。
【0053】
本件で開示する技術の一例では、上記式(1)におけるw
ij(ウエイト)及びb
i(バイアス)を、例えば、上述した
図4に示した例のように、個々の組合せ最適化問題に対応させて設定する。こうすることにより、本件で開示する技術の一例では、複数の組合せ最適化問題について、個々の組合せ最適化問題の求解に用いるビットを割り当て、互いに異なる組合せ最適化問題の求解に用いるビット間の相互作用をゼロとすることができる。
本件で開示する技術の一例では、上記式(1)において、個々の組合せ最適化問題に対応させて設定したw
ij及びb
iに基づいて、アニーリングマシンなどを用いてx
iとx
jと変化させて、上記式(1)を最小化する。つまり、本件で開示する技術の一例では、アニーリングマシンなどを用いて上記式(1)を最小化することにより、上記式(1)が最小値となる(上記(1)に最小値を与える)ときの、ビットの状態(ステート)を求めることができる。
【0054】
このように、本件で開示する技術の一例では、複数の組合せ最適化問題を求解した結果として、コスト関数の最小値と、当該最小値を与えるビットの状態(ステート)を求めることができる。
本件で開示する技術の一例では、複数の組合せ最適化問題を求解した結果としてのビットの状態から、個々の組合せ最適化問題についての最適なビットの状態(個々のコスト関数に最小値を与えるビットの状態)を得ることができる。本件で開示する技術の一例では、複数の組合せ最適化問題を求解して得たビットの状態(全体のビットの状態)から、個々の組合せ最適化問題の求解に用いたビット(割り当てたビット)の状態を求めることにより、個々の組合せ最適化問題を求解することができる。
【0055】
ここで、一例として、複数の組合せ最適化問題として、基準とする1つの化合物(問い合わせ化合物)に対する、多数の化合物の類似度を求める場合を考える。この場合、複数の組合せ最適化問題を求解して得たビットの状態から得た、個々の組合せ最適化問題の求解に用いたビットの状態に基づいて、問い合わせ化合物に対する、個々の化合物ごとの類似度を計算することができる。なお、化合物間の類似度の計算方法の詳細については後述する。
【0056】
また、本件で開示する技術の一例では、上述したように、複数の組合せ最適化問題の求解を行う際に、求解を行う組合せ最適化問題が、全て同じ種類(同種)組合せ最適化問題である必要はなく、異なる種類(異種)の組合せ最適化問題が含まれていてもよい。
ここで、組合せ最適化問題を求解する際には、計算条件を、求解する組合せ最適化問題の性質に応じて、適宜適切に設定することが好ましい。組合せ最適化問題を求解する際の計算条件としては、例えば、アニーリングマシンにおけるアニーリングパラメータなどが挙げられる。アニーリングマシンにおけるアニーリングパラメータとしては、例えば、計算のイテレーション数(反復回数)、アニーリングの温度に対応するパラメータなどが挙げられる。
複数の組合せ最適化問題に、異種の組合せ最適化問題が含まれる場合、組合せ最適化問題を求解する際の計算条件は、求解する組合せ最適化問題のうち、最も求解しづらい問題(求解に時間がかかる問題)を求解するための計算条件を用いることが好ましい。こうすることにより、本件で開示する技術の一例では、複数の組合せ最適化問題における、全ての個々の組合せ最適化問題を、確実に正しく求解することができる。
【0057】
本件で開示する技術の一例では、求解する組合せ最適化問題のうち、最も求解しづらい問題を求解する際の計算条件を用いる場合、複数の組合せ最適化問題を求解するための計算時間は、最も求解しづらい問題を求解する際に必要となる計算時間と同じになる。この場合、例えば、求解に10秒かかる組合せ最適化問題と、求解に5秒かかる組合せ最適化問題と、求解に7秒かかる組合せ最適化問題との求解を一括して行う場合は、これらの3つの組合せ最適化問題の求解にかかる時間は10秒となる。
【0058】
以下では、装置の構成例やフローチャートなどを用いて、本件で開示する技術の一例を更に詳細に説明する。
図7に、本件で開示する最適化装置のハードウェア構成例を示す。
最適化装置10においては、例えば、制御部11、メモリ12、記憶部13、表示部14、入力部15、出力部16、I/Oインターフェース部17がシステムバス18を介して接続されている。
【0059】
制御部11は、演算(四則演算、比較演算、焼き鈍し法の演算等)、ハードウェア及びソフトウェアの動作制御などを行う。
制御部11としては、特に制限はなく、目的に応じて適宜選択することができ、例えば、CPUであってもよいし、後述する焼き鈍し法に用いる最適化装置であってもよく、これらの組み合わせでもよい。
本件で開示する最適化装置における求解部は、例えば、制御部11により実現することができる。
【0060】
メモリ12は、RAM(Random Access Memory)、ROM(Read Only Memory)などのメモリである。RAMは、ROM及び記憶部13から読み出されたOS(Operating System)及びアプリケーションプログラムなどを記憶し、制御部11の主メモリ及びワークエリアとして機能する。
【0061】
記憶部13は、各種プログラム及びデータを記憶する装置であり、例えば、ハードディスクである。記憶部13には、制御部11が実行するプログラム、プログラム実行に必要なデータ、OSなどが格納される。
また、本件で開示する最適化プログラムは、例えば、記憶部13に格納され、メモリ12のRAM(主メモリ)にロードされ、制御部11により実行される。
【0062】
表示部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〕などのデータの入出力を可能にする。
【0063】
図8に、本件で開示する最適化装置の他のハードウェア構成例を示す。
図8に示す例は、最適化装置をクラウド型にした場合の例であり、制御部11が、記憶部13などとは独立している。
図8に示す例においては、ネットワークインターフェース部19、20を介して、記憶部13などを格納するコンピュータ30と、制御部11を格納するコンピュータ40とが接続される。
ネットワークインターフェース部19、20は、インターネットを利用して、通信を行うハードウェアである。
【0064】
図9に、本件で開示する最適化装置の他のハードウェア構成例を示す。
図9に示す例は、最適化装置をクラウド型にした場合の例であり、記憶部13が、制御部11などとは独立している。
図9に示す例においては、ネットワークインターフェース部19、20を介して、制御部11等を格納するコンピュータ30と、記憶部13を格納するコンピュータ40とが接続される。
【0065】
図10に、本件で開示する最適化装置の一実施形態としての機能構成例を示す。
図10に示すように、最適化装置10は、通信機能部101と、入力機能部102と、出力機能部103と、制御機能部104と、記憶機能部106と、を備える。
【0066】
通信機能部101は、例えば、各種のデータを外部の装置と送受信する。通信機能部101は、例えば、外部の装置から、イジングモデルに変換したコスト関数におけるバイアス及びウエイトのデータを受信してもよい。
入力機能部102は、例えば、最適化装置10に対する各種指示を受け付ける。また、入力機能部102は、例えば、イジングモデルに変換したコスト関数におけるバイアス及びウエイトのデータの入力を受け付けてもよい。
出力機能部103は、例えば、求解した複数の組合せ最適化問題における、コスト関数の最小値やその最小値を与えるビットの状態の情報などを出力する。
【0067】
制御機能部104は、求解部105を有する。制御機能部104は、例えば、記憶機能部106に記憶された各種プログラムを実行するとともに、最適化装置10全体の動作を制御する。
求解部105は、複数の組合せ最適化問題を求解する処理を行う。
記憶機能部106は、バイアスデータベース(バイアスDB)107と、ウエイトデータベース(ウエイトDB108)を有する。記憶機能部106は、例えば、各種プログラムを記憶する。
バイアスDB107は、複数の組合せ最適化問題の求解に用いる、イジングモデルに変換したコスト関数におけるバイアスのデータを記憶するデータベースである。
ウエイトDB108は、複数の組合せ最適化問題の求解に用いる、イジングモデルに変換したコスト関数におけるウエイト(相互作用)のデータを記憶するデータベースである。
【0068】
図11に、本件で開示する技術の一例を用いて、複数の組合せ最適化問題を求解する際のフローチャートの例を示す。
【0069】
まず、求解部105では、複数の組合せ最適化問題における、個々の組合せ最適化問題の条件と制約に応じて定義された、複数の組合せ最適化問題のコスト関数を定義する(S101)。このとき、求解部105では、通信機能部101又は入力機能部102により、コスト関数の入力を受け付けて、複数の組合せ最適化問題のコスト関数を定義してもよい。
続いて、求解部105は、定義されたコスト関数におけるパラメータを抽出して、上記酢式(1)におけるbi(バイアス)及びwij(ウエイト)を求めることにより、コスト関数を、上記式(1)で表されるイジングモデルに変換する(S102)。
【0070】
次に、求解部105は、アニーリングマシンにより、複数の組合せ最適化問題を求解するためのビットを用意する。そして、求解部105は、用意したビットにおいて、上記(1)のイジングモデルにおけるbi(バイアス)及びwij(ウエイト)に基づいて、個々の組合せ最適化問題の求解に用いるビットを割り当てる(S103)。言い換えると、S103において、求解部105は、上記(1)のイジングモデルにおけるbi(バイアス)及びwij(ウエイト)を、個々の組合せ最適化問題に対応させて設定し、個々の組合せ最適化問題の求解に用いるビットを割り当てる。
そして、求解部105は、求解する複数の組合せ最適化問題のうち、最も求解しづらい(求解に時間がかかる)組合せ最適化問題を求解可能な計算条件(アニーリングパラメータ)を設定する(S104)。ここで、S104において、求解部105は、アニーリングパラメータとして、計算のイテレーション数(反復回数)、アニーリングの温度に対応するパラメータなどを設定する。
【0071】
次いで、求解部105は、アニーリングマシンで上記式(1)を最小化することにより、複数の組合せ最適化問題を求解する(S105)。言い換えると、S105において、求解部105は、上記式(1)についての焼き鈍し法を用いた基底状態探索を実行することにより、上記式(1)の最小エネルギーを算出することで、複数の組合せ最適化問題を求解する。
続いて、求解部105は、複数の組合せ最適化問題を求解した結果に基づいて、個々の組合せ最適化問題を求解した結果を出力する(S106)。そして、求解部105は、個々の組合せ最適化問題を求解した結果を出力すると、処理を終了させる。
なお、ここでは、本件で開示する技術の一例について、具体的な処理の順序について説明したが、本件で開示する技術はこれに限られるものではなく、技術的に矛盾を生じない範囲で適宜処理の順番を変更してもよいし、複数の処理を一括して行ってもよい。
【0072】
以下に、焼き鈍し法及びアニーリングマシンの一例について説明する。
焼き鈍し法は、乱数値や量子ビットの重ね合わせを用いて確率的に解を求める方法である。以下では最適化したい評価関数の値を最小化する問題を例に説明し、評価関数の値をエネルギーと呼ぶことにする。また、評価関数の値を最大化する場合は、評価関数の符号を変えればよい。
【0073】
まず、各変数に離散値の1つを代入した初期状態からはじめ、現在の状態(変数の値の組み合わせ)から、それに近い状態(例えば、1つの変数だけ変化させた状態)を選び、その状態遷移を考える。その状態遷移に対するエネルギーの変化を計算し、その値に応じてその状態遷移を採択して状態を変化させるか、採択せずに元の状態を保つかを確率的に決める。エネルギーが下がる場合の採択確率をエネルギーが上がる場合より大きく選ぶと、平均的にはエネルギーが下がる方向に状態変化が起こり、時間の経過とともにより適切な状態へ状態遷移することが期待できる。このため、最終的には最適解又は最適値に近いエネルギーを与える近似解を得られる可能性がある。
もし、これを決定論的にエネルギーが下がる場合に採択とし、上がる場合に不採択とすれば、エネルギーの変化は時間に対して広義単調減少となるが、局所解に到達したらそれ以上変化が起こらなくなってしまう。上記のように離散最適化問題には非常に多数の局所解が存在するために、状態が、ほとんど確実にあまり最適値に近くない局所解に捕まってしまう。したがって、離散最適化問題を解く際には、その状態を採択するかどうかを確率的に決定することが重要である。
【0074】
焼き鈍し法においては、状態遷移の採択(許容)確率を次のように決めれば、時刻(反復回数)無限大の極限で状態が最適解に到達することが証明されている。
以下では、焼き鈍し法を用いて最適解を求める方法について、順序を追って説明する。
【0075】
(1)状態遷移に伴うエネルギー変化(エネルギー減少)値(-ΔE)に対して、その状態遷移の許容確率pを、次のいずれかの関数f( )により決める。
【0076】
【0077】
【0078】
【0079】
ここで、Tは、温度値と呼ばれるパラメータであり、例えば、次のように変化させることができる。
【0080】
(2)温度値Tを次式で表されるように反復回数tに対数的に減少させる。
【0081】
【0082】
ここで、T0は、初期温度値であり問題に応じて、十分大きくとることが望ましい。
(1)の式で表される許容確率を用いた場合、十分な反復後に定常状態に達したとすると、各状態の占有確率は熱力学における熱平衡状態に対するボルツマン分布に従う。
そして、高い温度から徐々に下げていくとエネルギーの低い状態の占有確率が増加するため、十分温度が下がるとエネルギーの低い状態が得られると考えられる。この様子が、材料を焼き鈍したときの状態変化とよく似ているため、この方法は焼き鈍し法(または、疑似焼き鈍し法)と称される。なお、エネルギーが上がる状態遷移が確率的に起こることは、物理学における熱励起に相当する。
【0083】
図12に焼き鈍し法を行うアニーリングマシンの機能構成の一例を示す。ただし、下記説明では、状態遷移の候補を複数発生させる場合についても述べるが、基本的な焼き鈍し法は、遷移候補を1つずつ発生させるものである。
【0084】
アニーリングマシン100は、現在の状態S(複数の状態変数の値)を保持する状態保持部111を有する。また、アニーリングマシン100は、複数の状態変数の値のいずれかが変化することによる現在の状態Sからの状態遷移が起こった場合における、各状態遷移のエネルギー変化値{-ΔEi}を計算するエネルギー計算部112を有する。さらに、アニーリングマシン100は、温度値Tを制御する温度制御部113、状態変化を制御するための遷移制御部114を有する。なお、アニーリングマシン100は、上記の最適化装置10の一部とすることができる。
【0085】
遷移制御部114は、温度値Tとエネルギー変化値{-ΔEi}と乱数値とに基づいて、エネルギー変化値{-ΔEi}と熱励起エネルギーとの相対関係によって複数の状態遷移のいずれかを受け入れるか否かを確率的に決定する。
【0086】
ここで、遷移制御部114は、状態遷移の候補を発生する候補発生部114a、各候補に対して、そのエネルギー変化値{-ΔEi}と温度値Tとから状態遷移を許可するかどうかを確率的に決定するための可否判定部114bを有する。さらに、遷移制御部114は、可となった候補から採用される候補を決定する遷移決定部114c、及び確率変数を発生させるための乱数発生部114dを有する。
【0087】
アニーリングマシン100における、一回の反復における動作は次のようなものである。
まず、候補発生部114aは、状態保持部111に保持された現在の状態Sから次の状態への状態遷移の候補(候補番号{Ni})を1つまたは複数発生する。次に、エネルギー計算部112は、現在の状態Sと状態遷移の候補を用いて候補に挙げられた各状態遷移に対するエネルギー変化値{-ΔEi}を計算する。可否判定部114bは、温度制御部113で発生した温度値Tと乱数発生部114dで生成した確率変数(乱数値)を用い、各状態遷移のエネルギー変化値{-ΔEi}に応じて、上記(1)の式の許容確率でその状態遷移を許容する。
そして、可否判定部114bは、各状態遷移の可否{fi}を出力する。許容された状態遷移が複数ある場合には、遷移決定部114cは、乱数値を用いてランダムにそのうちの1つを選択する。そして、遷移決定部114cは、選択した状態遷移の遷移番号Nと、遷移可否fを出力する。許容された状態遷移が存在した場合、採択された状態遷移に応じて状態保持部111に記憶された状態変数の値が更新される。
【0088】
初期状態から始めて、温度制御部113で温度値を下げながら上記反復を繰り返し、一定の反復回数に達する、又はエネルギーが一定の値を下回る等の終了判定条件が満たされたときに動作が終了する。アニーリングマシン100が出力する答えは、終了時の状態である。
【0089】
図13は、候補を1つずつ発生させる通常の焼き鈍し法における遷移制御部、特に可否判定部のために必要な演算部分の構成例の回路レベルのブロック図である。
遷移制御部114は、乱数発生回路114b1、セレクタ114b2、ノイズテーブル114b3、乗算器114b4、比較器114b5を有する。
【0090】
セレクタ114b2は、各状態遷移の候補に対して計算されたエネルギー変化値{-ΔEi}のうち、乱数発生回路114b1が生成した乱数値である遷移番号Nに対応するものを選択して出力する。
【0091】
ノイズテーブル114b3の機能については後述する。ノイズテーブル114b3として、例えば、RAM、フラッシュメモリ等のメモリを用いることができる。
【0092】
乗算器114b4は、ノイズテーブル114b3が出力する値と、温度値Tとを乗算した積(前述した熱励起エネルギーに相当する)を出力する。
比較器114b5は、乗算器114b4が出力した乗算結果と、セレクタ114b2が選択したエネルギー変化値である-ΔEとを比較した比較結果を遷移可否fとして出力する。
【0093】
図13に示されている遷移制御部114は、基本的に前述した機能をそのまま実装するものであるが、(1)の式で表される許容確率で状態遷移を許容するメカニズムについて、更に詳細に説明する。
【0094】
許容確率pで1を、(1-p)で0を出力する回路は、2つの入力A,Bを持ち、A>Bのとき1を出力し、A<Bのとき0を出力する比較器の入力Aに許容確率pを、入力Bに区間[0,1)の値をとる一様乱数を入力することで実現することができる。したがって、この比較器の入力Aに、エネルギー変化値と温度値Tにより(1)の式を用いて計算される許容確率pの値を入力すれば、上記の機能を実現することができる。
【0095】
すなわち、fを(1)の式で用いる関数、uを区間[0,1)の値をとる一様乱数とするとき、f(ΔE/T)がuより大きいとき1を出力する回路により、上記の機能を実現できる。
【0096】
また、次のような変形を行っても、上記の機能と同じ機能が実現できる。
2つの数に同じ単調増加関数を作用させても大小関係は変化しない。したがって、比較器の2つの入力に同じ単調増加関数を作用させても出力は変わらない。この単調増加関数として、fの逆関数f
-1を採用すると、-ΔE/Tがf
-1(u)より大きいとき1を出力する回路とすることができることがわかる。さらに、温度値Tが正であることから、-ΔEがTf
-1(u)より大きいとき1を出力する回路でよいことがわかる。
図13中のノイズテーブル114b3はこの逆関数f
-1(u)を実現するための変換テーブルであり、区間[0,1)を離散化した入力に対して次の関数の値を出力するテーブルである。
【0097】
【0098】
【0099】
遷移制御部114には、判定結果等を保持するラッチやそのタイミングを発生するステートマシン等も存在するが、
図13では図示を簡単にするため省略されている。
【0100】
図14は、遷移制御部114の動作フローの一例を示す図である。
図14に示す動作フローは、1つの状態遷移を候補として選ぶステップ(S0001)、その状態遷移に対するエネルギー変化値と温度値と乱数値の積の比較で状態遷移の可否を決定するステップ(S0002)、状態遷移が可ならばその状態遷移を採用し、否ならば不採用とするステップ(S0003)を有する。
【0101】
(最適化方法)
本件で開示する最適化方法は、複数の組合せ最適化問題を求解するための複数ビットのうち、複数の第1ビットを複数の組合せ最適化問題に含まれる第1組合せ最適化問題に割り当て、複数の第2ビットを複数の組合せ最適化問題に含まれる第2組合せ最適化問題に割り当て、複数の第1ビットの各々と複数の第2ビットの各々との相互作用をゼロとして、複数の組合せ最適化問題を求解する求解工程を含む。
【0102】
本件で開示する最適化方法は、例えば、本件で開示する最適化装置により行うことができる。また、本件で開示する最適化方法における好適な態様は、例えば、本件で開示する最適化装置における好適な態様と同様にすることができる。
【0103】
(最適化プログラム)
本件で開示する最適化プログラムは、複数の組合せ最適化問題を求解するための複数ビットのうち、複数の第1ビットを複数の組合せ最適化問題に含まれる第1組合せ最適化問題に割り当て、複数の第2ビットを複数の組合せ最適化問題に含まれる第2組合せ最適化問題に割り当て、複数の第1ビットの各々と複数の第2ビットの各々との相互作用をゼロとして、複数の組合せ最適化問題を求解する処理を、コンピュータに行わせる。
【0104】
本件で開示する最適化プログラムは、例えば、本件で開示する最適化方法をコンピュータに実行させるプログラムとすることができる。また、本件で開示する最適化プログラムにおける好適な態様は、例えば、本件で開示する最適化装置における好適な態様と同様にすることができる。
【0105】
本件で開示する最適化プログラムは、使用するコンピュータシステムの構成及びオペレーティングシステムの種類・バージョンなどに応じて、公知の各種のプログラム言語を用いて作成することができる。
【0106】
本件で開示する最適化プログラムは、内蔵ハードディスク、外付けハードディスクなどの記録媒体に記録しておいてもよいし、CD-ROM、DVD-ROM、MOディスク、USBメモリなどの記録媒体に記録しておいてもよい。
さらに、本件で開示する最適化プログラムを、上記の記録媒体に記録する場合には、必要に応じて、コンピュータシステムが有する記録媒体読取装置を通じて、これを直接又はハードディスクにインストールして使用することができる。また、コンピュータシステムから情報通信ネットワークを通じてアクセス可能な外部記憶領域(他のコンピュータなど)に本件で開示する最適化プログラムを記録しておいてもよい。この場合、外部記憶領域に記録された本件で開示する最適化プログラムは、必要に応じて、外部記憶領域から情報通信ネットワークを通じてこれを直接、又はハードディスクにインストールして使用することができる。
なお、本件で開示する最適化プログラムは、複数の記録媒体に、任意の処理毎に分割されて記録されていてもよい。
【0107】
(コンピュータが読み取り可能な記録媒体)
本件で開示するコンピュータが読み取り可能な記録媒体は、本件で開示する最適化プログラムを記録してなる。
本件で開示するコンピュータが読み取り可能な記録媒体としては、特に制限はなく、目的に応じて適宜選択することができ、例えば、内蔵ハードディスク、外付けハードディスク、CD-ROM、DVD-ROM、MOディスク、USBメモリなどが挙げられる。
また、本件で開示するコンピュータが読み取り可能な記録媒体は、本件で開示する最適化プログラムが任意の処理毎に分割されて記録された複数の記録媒体であってもよい。
【実施例】
【0108】
以下では、本件で開示する技術の一実施例について説明するが、本件で開示する技術は、これらの実施例に限定されるものではない。
【0109】
(バイアス及びウエイトを乱数とした例)
<実施例1>
実施例1として、本件で開示する最適化装置の一例を用いて、上記式(1)のイジングモデルにおける、個々の組合せ最適化問題の求解に用いるb
i(バイアス)及びw
ij(ウエイト)を、乱数(ランダムな整数)として、2つの組合せ最適化問題の求解を行った。実施例1では、
図10に示すような機能構成を有する最適化装置を用いて、
図11のフローチャートにおけるステップS103からS106を行うことにより、2つの組合せ最適化問題の求解を行った。また、組合せ最適化問題の求解(式(1)イジングモデルの最小化)は、デジタルアニーラ(登録商標)を用いた。
実施例1では、2つの組合せ最適化問題として、問題(A1)と問題(A2)の求解を行った。実施例1においては、
図15に示す数値の列を、問題(A1)におけるイジングモデルのb
i(バイアス)とし、
図16に示す数値の列を、問題(A2)におけるイジングモデルのb
i(バイアス)とする。なお、
図15及び16では、紙面の都合上、バイアスを縦の列で示したが、これに限られるものではない。また、「・・・」は、以降の行においても数値が「0」になっていることを示す。
このとき、
図15に示した問題(A1)のバイアスと、
図16に示した問題(A2)のバイアスとをまとめたバイアス(2つの最適化問題の求解に用いるバイアス)は、
図17に示すようになる。
このように、実施例1では、問題(A1)と問題(A2)におけるバイアスを隣接して配置した。言い換えると、実施例1では、互いに異なる組合せ最適化問題の求解に用いるビットが隣接するように、ビットを割り当てた。
【0110】
また、実施例1では、
図18に示す行列を、問題(A1)におけるイジングモデルのw
ij(ウエイト)とし、
図19に示す行列を、問題(A2)におけるイジングモデルのw
ij(ウエイト)とした。
このとき、
図18に示した問題(A1)のウエイトと、
図19に示した問題(A2)のウエイトとをまとめたウエイト(2つの最適化問題の求解に用いるウエイト)は、
図20に示すようになる。
図20に示すように、実施例1における2つの最適化問題の求解に用いるウエイトにおいては、互いに異なる組合せ最適化問題の求解に用いるビット間の相互作用(ウエイト)がゼロになっている。
【0111】
実施例1では、アニーリングパラメータを、問題(A1)と問題(A2)とを正しく求解することができる条件に設定して、
図17に示したバイアス及び
図20に示したウエイトに基づいて、上記式(1)のイジングモデルの最小化を行った。つまり、実施例1では、
図17に示したバイアス及び
図20に示したウエイトに基づいて、2つの組合せ最適化問題の求解を行った。
実施例1において、
図17に示したバイアス及び
図20に示したウエイトに基づいて、上記式(1)のイジングモデルの最小化を行ったところ、上記式(1)のイジングモデルの最小値(E
min)は、「-1081523」であった。また、上記式(1)のイジングモデルの最小化に必要となった計算時間は0.9秒であった。
【0112】
(比較例1)
比較例1では、実施例1において、問題(A1)と問題(A2)を、個別に2回の計算を行うことにより求解した以外は、実施例1と同様にして、上記式(1)のイジングモデルの最小化を行った。
比較例1において、問題(A1)の求解には、
図15に示した問題(A1)のバイアスと、
図18に示した問題(A1)のウエイトとを用いた。同様に、比較例1において、問題(A2)の求解には、
図16に示した問題(A2)のバイアスと、
図19に示した問題(A2)のウエイトとを用いた。
【0113】
比較例1において、問題(A1)と問題(A2)を個別に求解したところ、問題(A1)における上記式(1)のイジングモデルの最小値は「-16」であり、問題(A2)における上記式(1)のイジングモデルの最小値は「-1081507」であった。また、上記式(1)のイジングモデルの最小化に必要となった計算時間は、問題(A1)と問題(A2)においてそれぞれ0.9秒であり、合計1.8秒となった。
【0114】
ここで、
図21に、実施例1及び比較例1の条件および結果の比較を示す。なお、
図21では、それぞれの例におけるイジングモデルの最小値を「E
min」、「E
min1」、「E
min2」で表し、それぞれの例における計算時間を「t」、「t
1」、「t
2」で表している。
実施例1のイジングモデルの最小値「-1081507」は、比較例1において、問題(A1)のイジングモデルを個別に最小化した結果の「-16」と、問題(A2)のイジングモデルを個別に最小化した結果の「-1081507」との和(合計)となっている。
このことから、実施例1において、問題(A1)と問題(A2)という、個々の組合せ最適化問題を正しく求解できていることがわかる。
さらに、
図21に示すように、実施例1においては、計算時間は0.9秒であり、比較例1の計算時間である1.8秒と比べて、半分(1/2)の計算時間で、問題(A1)と問題(A2)を求解できた。
【0115】
(分子間の類似度を計算する問題の例)
<実施例2>
実施例2として、組合せ最適化問題を求解することにより、分子(化合物)間の類似度を計算する問題を対象として計算を行った。実施例2では、実施例1と同様に、
図10に示すような機能構成を有する最適化装置を用いて、
図11のフローチャートにおけるステップS101、S103からS106を行うことにより、2つの組合せ最適化問題の求解を行った。また、組合せ最適化問題の求解(イジングモデルの最小化)は、デジタルアニーラ(登録商標)を用いた。
【0116】
<<分子間の類似度の計算方法>>
ここで、実施例2のように、組合せ最適化問題を求解することにより、分子間の類似度を計算する方法について説明する。
【0117】
分子どうしの類似度の算出手法の一例として、コンフリクトグラフの最大独立集合問題を解くことにより、比較する分子(化合物)どうしにおいて共通する部分構造を探索して類似度を算出する手法について説明する。
【0118】
コンフリクトグラフの最大独立集合問題を解くことにより、化合物どうしの構造の類似度を算出する際には、化合物をグラフ化して扱う。ここで、化合物をグラフ化するとは、例えば、化合物における原子の種類(元素)の情報と各原子の結合状態の情報とを用いて、化合物の構造を表すことを意味する。
化合物の構造は、例えば、MOL形式や、SDF(Structure Data File)形式の表現を用いて表すことができる。通常、SDF形式とは、MOL形式で表現された複数の化合物の構造情報を、一つのファイルにまとめたものを意味する。また、SDF形式のファイルにおいては、MOL形式の構造情報の他に、化合物ごとの付加情報(例えば、カタログ番号、CAS番号、分子量など)を扱うことが可能である。これらの化合物の構造は、例えば、「原子1(の名称)、原子2(の名称)、原子1の元素の情報、原子2の元素の情報、原子1と原子2の結合次数」を1つの行とするCSV(Comma-Separated Value)形式としてグラフ化できる。
【0119】
以下では、コンフリクトグラフの作成方法について、酢酸(CH
3COOH)と酢酸メチル(CH
3COOCH
3)とにおけるコンフリクトグラフを作成する場合を例として説明する。
まず、酢酸(以下では、「分子A」と称することがある)と酢酸メチル(以下では、「分子B」と称することがある)をグラフ化すると、
図22のようになる。
図22においては、酢酸を形成する原子をA1、A2、A3、及びA5で示し、酢酸メチルを形成する原子をB1からB5で示している。また、
図22では、A1、A2、B1、B2、及びB4は炭素を示し、A3、A5、B3、及びB5は酸素を示すとともに、単結合を細い実線で、二重結合を太い実線で示している。なお、
図22に示す例においては、水素以外の原子を選択してグラフ化しているが、化合物をグラフ化する際には、水素も含めて全ての原子を選択してグラフ化してもよい。
【0120】
次に、グラフ化した分子A及びBにおける頂点(原子)どうしを組み合わせて、コンフリクトグラフの頂点(ノード)を作成する。このとき、例えば、
図23に示すように、分子A及びBにおける同じ元素どうしを組み合わせてコンフリクトグラフのノードとすることが好ましい。
図23に示す例においては、炭素を表すA1、A2、B1、B2、及びB4どうしの組み合わせ、並びに、酸素を表すA3、A5、B3、及びB5どうしの組み合わせをコンフリクトグラフのノードとする。このように、同じ元素どうしの組み合わせをノードとすることにより、最大独立集合に含まれ得るノードでコンフリクトグラフを作成することができるため、ノードの数を抑制でき、最大独立集合問題を解くために必要とされる計算機のビットの数を少なくできる。
図23の例では、分子Aの炭素と分子Bの炭素との組み合わせにより6個、分子Aの酸素と分子Bの酸素との組み合わせにより4個のノードを作成するため、グラフ化した分子A及びBから作成されるコンフリクトグラフにおけるノードの数は10個となる。
【0121】
続いて、コンフリクトグラフにおけるエッジ(枝、辺)を作成する。このとき、2つのノードを比較して、ノードどうしが異なる状況(例えば、原子番号、結合の有無、結合次数など)にある原子で構成される場合は、その2つのノードの間にエッジを作成する。一方、2つのノードを比較して、ノードどうしが同じ状況にある原子で構成される場合は、その2つのノードの間にはエッジを作成しない。
【0122】
ここで、
図24を参照して、コンフリクトグラフにおけるエッジ作成のルールについて説明する。
まず、
図24に示す例において、ノード〔A1B1〕とノード〔A2B2〕との間にエッジを作成するか否かについて説明する。
図24におけるグラフ化した分子Aの構造からわかるように、ノード〔A1B1〕に含まれる分子Aの炭素A1と、ノード〔A2B2〕に含まれる分子Aの炭素A2は、互いに結合(単結合)している。同様に、ノード〔A1B1〕に含まれる分子Bの炭素B1と、ノード〔A2B2〕に含まれる分子Bの炭素B2は、互いに結合(単結合)している。すなわち、炭素A1と炭素A2の結合の状況と、炭素B1と炭素B2の結合の状況は互いに同一になっている。
このように、
図24の例においては、分子Aにおける炭素A1と炭素A2の状況と、分子Bにおける炭素B1と炭素B2の状況が互いに同一となっており、ノード〔A1B1〕とノード〔A2B2〕は、互いに同一の状況の原子で構成されるノードどうしとなる。このため、
図24に示す例では、ノード〔A1B1〕とノード〔A2B2〕との間には、エッジを作成しない。
【0123】
次に、
図24に示す例において、ノード〔A1B4〕とノード〔A2B2〕との間にエッジを作成するか否かについて説明する。
図24におけるグラフ化した分子Aの構造からわかるように、ノード〔A1B4〕に含まれる分子Aの炭素A1と、ノード〔A2B2〕に含まれる分子Aの炭素A2は、互いに結合(単結合)している。一方、グラフ化した分子Bの構造からわかるように、ノード〔A1B4〕に含まれる分子Bの炭素B4と、ノード〔A2B2〕に含まれる分子Bの炭素B2は、間に酸素B3を挟んでおり、直接は結合していない。すなわち、炭素A1と炭素A2の結合の状況と、炭素B4と炭素B2の結合の状況は互いに異なっている。
つまり、
図24の例においては、分子Aにおける炭素A1と炭素A2の状況と、分子Bにおける炭素B4と炭素B2の状況が互いに異なっており、ノード〔A1B4〕とノード〔A2B2〕は、互いに異なる状況の原子で構成されるノードどうしとなる。このため、
図24に示す例では、ノード〔A1B4〕とノード〔A2B2〕との間に、エッジを作成する。
【0124】
このように、コンフリクトグラフは、ノードどうしが異なる状況にある原子で構成される場合は、そのノードの間にエッジを作成し、同じ状況にある原子で構成される場合は、そのノードの間にはエッジを作成しないというルールに基づいて作成することができる。
図25は、分子Aと分子Bにおけるコンフリクトグラフの一例を示す図である。
図25に示すように、例えば、ノード〔A2B2〕とノード〔A5B5〕においては、分子Aにおける炭素A2と酸素A5の結合の状況と、分子Bにおける炭素B2と炭素B5の結合の状況は互いに同一になっている。このため、ノード〔A2B2〕とノード〔A5B5〕は、互いに同一の状況にある原子で構成されるノードとなるため、ノード〔A2B2〕とノード〔A5B5〕との間には、エッジを作成していない。
【0125】
ここで、コンフリクトグラフのエッジは、例えば、構造の類似度を算出する2つの化合物の化学構造データに基づいて作成することができる。例えば、SDF形式のファイルを用いて化合物の化学構造データを入力する場合、SDF形式のファイルに含まれる情報に基づいて、コンピュータ等の計算機を用いて計算を行うことで、コンフリクトグラフのエッジを作成(特定)することができる。
【0126】
次に、作成したコンフリクトグラフの最大独立集合問題を解く方法について説明する。
コンフリクトグラフにおける最大独立集合(Maximum Independent Set;MIS)とは、コンフリクトグラフを構成するノードの集合のうち、ノード間にエッジが存在しないノードが最も多く含まれる集合を意味する。言い換えると、コンフリクトグラフにおける最大独立集合とは、互いのノードの間にエッジが存在しないノードで形成される集合のうち、最大の大きさ(ノード数)を有する集合を意味する。
【0127】
図26は、グラフにおける最大独立集合の一例を示す図である。
図26では、集合に含まれるノードには「1」の符号を、集合に含まれないノードには「0」の符号を付し、ノード間にエッジが存在する箇所は実線で当該ノードどうしを結び、エッジが存在しない箇所は点線で当該ノードどうしを結んでいる。なお、ここでは、
図26に示すように、説明の簡略化のため、ノードの数が6個のグラフを例として説明する。
図26に示す例においては、ノード間にエッジが存在しないノードで構成される集合のうち、ノードの数が最大となる集合は3つあり、これらの集合のノード数は3である。すなわち、
図26に示す例では、グラフにおける最大独立集合は、一点鎖線で囲んだ3つの集合となる。
【0128】
ここで、上述したように、コンフリクトグラフは、ノードどうしが異なる状況にある原子で構成される場合は、そのノードの間にエッジを作成し、同じ状況にある原子で構成される場合は、そのノードの間にはエッジを作成しないというルールに基づいて作成される。このため、コンフリクトグラフにおいて、ノード間にエッジが存在しないノードで構成される集合のうち、ノードの数が最大となる集合である最大独立集合を求めることは、2つの分子間において共通する部分構造のうち、最大のものを求めることと同義となる。言い換えると、コンフリクトグラフにおける最大独立集合を求めることにより、2つの分子における最も大きな共通の部分構造を特定することができる。
【0129】
つまり、2つの分子をグラフ化して、グラフ化した分子の構造に基づいてコンフリクトグラフを作成し、コンフリクトグラフにおける最大独立集合を求めることにより、当該2つの分子における最大の共通部分構造を求めることができる。
図27には、分子A(酢酸)と分子B(酢酸メチル)とにおける最大の共通部分構造を、コンフリクトグラフの最大独立集合を求める(最大独立集合問題を解く)ことにより求める場合における流れの一例を示す。
図27に示すように、分子Aと分子Bをそれぞれグラフ化し、同じ元素どうしを組み合わせてノードとし、ノードを構成する原子の状況に応じてエッジを形成してコンフリクトグラフを作成する。そして、作成したコンフリクトグラフにおける最大独立集合を求めることにより、分子Aと分子Bにおける最大の共通部分構造を求めることができる。
【0130】
ここで、コンフリクトグラフの最大独立集合を求める(探索する)ための具体的な方法の一例について説明する。
コンフリクトグラフの最大独立集合の探索は、例えば、最小化することが最大独立集合の探索をすることを意味するハミルトニアンを用いることにより行うことができる。より具体的には、例えば、下記の式(2)に示すハミルトニアン(H)を用いることにより行うことができる。なお、ハミルトニアンは、コスト関数の一例である。
【0131】
【数9】
ここで、上記式(2)において、nは、コンフリクトグラフにおけるノードの数であり、b
iは、i番目の前記ノードに対するバイアスを表す数値である。
さらに、w
ijは、i番目のノードとj番目のノードとの間にエッジが存在するときは、0ではない正の数であり、i番目のノードとj番目のノードとの間にエッジが存在しないときは、0である。
また、x
iは、i番目のノードが0又は1であることを表すバイナリ変数であり、x
jは、j番目のノードが0又は1であることを表すバイナリ変数である。
なお、α及びβは、正の数である。
【0132】
上記式(2)で表されるハミルトニアンと最大独立集合の探索との関係について、更に詳細に説明する。上記式(2)は、QUBO形式のイジングモデル式を表すハミルトニアンである。
上記式(2)において、xiは、1である場合、i番目のノードが最大独立集合の候補となる集合に含まれることを意味し、0である場合、i番目のノードが最大独立集合の候補となる集合に含まれないことを意味する。同様に、上記式(2)において、xjは、1である場合、j番目のノードが最大独立集合の候補となる集合に含まれることを意味し、0である場合、j番目のノードが最大独立集合の候補となる集合に含まれないことを意味する。
このため、上記式(1)について、状態を1とした(ビットを1にした)ノード間にはエッジが存在しないという制約の下で、できるだけ多くのノードの状態が1となる組み合わせを探索することにより、最大独立集合を探索することができる。
【0133】
ここで、上記式(2)における各項について説明する。
上記式(2)における右辺の一項目(係数が-αの項)は、xiが1となるiが多いほど(最大独立集合の候補となる集合に含まれるノードの数が多いほど)、値が小さくなる項である。なお、上記式(2)における右辺の一項目において値が小さくなるとは、大きな負の数になることを意味する。つまり、上記式(2)においては、右辺の一項目の作用により、多くのノードのビットが1となると、ハミルトニアン(H)の値が小さくなる。
【0134】
上記式(2)における右辺の二項目(係数がβの項)は、ビットが1になっているノード間にエッジが存在する場合(wijが0ではない正の数である場合)に、値が大きくなるペナルティーの項である。言い換えると、上記式(2)における右辺の二項目は、ビットが1になっているノード間においてエッジが存在する箇所がない場合には0となり、それ以外の場合には正の数となる。つまり、上記式(2)においては、右辺の二項目の作用により、ビットが1になっているノード間にエッジが存在すると、ハミルトニアン(H)の値が大きくなる。
【0135】
上記式(2)は、上述したように、多くのノードのビットが1となると値が小さくなるとともに、ビットが1になっているノード間にエッジが存在すると値が大きくなるため、上記式(1)を最小化することが最大独立集合の探索をすることを意味するといえる。
【0136】
ここで、上記式(2)で表されるハミルトニアンと最大独立集合の探索との関係について、図面を参照しながら例を用いて説明する。
ノードの数が6個のグラフにおいて、
図28に示す例のように各ノードにビットを設定する場合を考える。
図28の例では、
図26と同様に、ノード間にエッジが存在する箇所は実線で当該ノードどうしを結び、エッジが存在しない箇所は点線で当該ノードどうしを結んでいる。
【0137】
図28の例について、上記式(2)におけるb
iを1とし、i番目のノードとj番目のノードとの間にエッジが存在するときのw
ijを1とすると、上記式(2)は次のようになる。
【0138】
【0139】
このように、
図28の例では、ビットが1になっているノード間においてエッジが存在する箇所がない場合(独立集合として矛盾がない場合)には右辺の二項目は0となり、一項目の値が、そのままハミルトニアンの値となる。
【0140】
次に、
図29に示す例のように各ノードにビットを設定する場合を考える。
図28の例と同様に、上記式(2)におけるb
iを1とし、i番目のノードとj番目のノードとの間にエッジが存在するときのw
ijを1とすると、上記式(2)は次のようになる。
【0141】
【0142】
このように、
図29の例では、ビットが1になっているノード間においてエッジが存在する箇所があるため、右辺の二項目は0とはならず、ハミルトニアンの値は、右辺の2つの項の和となる。ここで、
図28及び29に示した例では、例えば、α>5βとすると、-3α<-4α+5βとなるため、
図29の例におけるハミルトニアンの値よりも、
図28の例におけるハミルトニアンの値の方が小さくなっている。
図28の例は、最大独立集合として矛盾のないノードの集合であり、上記式(2)のハミルトニアンの値が小さくなるノードの組み合わせを探索することにより、最大独立集合を探索できることがわかる。
【0143】
次に、探索した最大独立集合に基づいて、分子どうしの構造の類似度を算出する方法について説明する。
分子どうしの構造の類似度は、例えば、下記の式(3)を用いて算出することができる。
【0144】
【数12】
ここで、上記式(3)において、S(G
A,G
B)は、グラフ化した第一の分子(例えば、分子A)とグラフ化した第二の分子(例えば、分子B)との類似度を表し、0~1で表され、1に近づく程、類似度が高いことを意味する。
また、V
Aは、グラフ化した第一の分子におけるノード原子の総数を表し、V
c
Aは、グラフ化した第一の分子におけるノード原子の内、コンフリクトグラフの最大独立集合に含まれるノード原子の数を表す。なお、ノード原子とは、グラフ化した分子における頂点の原子を意味する。
さらに、V
Bは、グラフ化した第二の分子におけるノード原子の総数を表し、V
c
Bは、グラフ化した第二の分子におけるノード原子の内、コンフリクトグラフの最大独立集合に含まれるノード原子の数を表す。
δは、0~1の数である。
【0145】
また、上記式(3)において、max{A,B}は、AとBのうち、値が大きい方を選択することを意味し、min{A,B}は、AとBのうち、値が小さい方を選択することを意味する。
【0146】
ここで、
図22等と同様に、酢酸(分子A)と酢酸メチル(分子B)を例として、類似度の算出方法について説明する。
図30に示したコンフリクトグラフにおいて、最大独立集合は、ノード〔A1B1〕、ノード〔A2B2〕、ノード〔A3B3〕、及びノード〔A5B5〕の4つのノードで構成される。つまり、
図30の例においては、|V
A|は4となり、|V
c
A|は4となり、|V
B|は5となり、|V
c
B|は4となる。また、この例において、δを0.5として、第一の分子と第二の分子の平均を取る(均等に扱う)こととすると、上記式(3)は次のようになる。
【0147】
【0148】
このように、
図30の例においては、上記式(2)に基づいて、分子どうしの構造の類似度は0.9と算出される。
以上、説明したように、組合せ最適化問題を求解して、コンフリクトグラフの最大独立集合問題を解くことにより、比較する分子(化合物)どうしにおいて共通する部分構造を探索して類似度を算出することができる。
【0149】
<<問題(B1)及び問題(B2)の求解>>
実施例2では、求解する組合せ最適化問題として、問題(B1)と問題(B2)の2つの組合せ最適化問題の求解を行った。問題(B1)は、アセト酢酸エチル(Ethyl acetoacetate)と、2-メトキシベンズアルデヒド(2-Methoxybenzaldehyde)との間の構造の類似度を求める問題とした。問題(B2)は、Ala(アラニン)-Glu(グルタミン酸)のペプチドと、Glu(グルタミン酸)-Ala(アラニン)のペプチドとの間の構造の類似度を求める問題とした。
【0150】
実施例2においては、コスト関数(ハミルトニアン)として、上記式(2)を用い、問題(B1)と問題(B2)で類似度を求める分子の情報(グラフ)に基づいて、上記式(2)におけるb
i(バイアス)及びw
ij(ウエイト)を設定した。なお、上記式(2)のコスト関数は、QUBO形式のイジングモデルで表された関数であるため、イジングモデルへの変換は行わなかった。
また、実施例2では、
図31に示すように、問題(B1)と問題(B2)におけるバイアスを隣接して配置した。実施例2では、
図31に示すように、問題(B1)と問題(B2)におけるウエイトをバイアスに対応させると共に、互いに異なる組合せ最適化問題の求解に用いるビット間のウエイトをゼロにした。
【0151】
実施例2では、アニーリングパラメータを、問題(B1)と問題(B2)とを正しく求解することができる条件に設定して、上記式(2)の最小化を行った。
実施例2において、上記式(2)の最小化を行ったところ、上記式(2)のイジングモデルのコスト関数(ハミルトニアン)における最小値(Emin)は、「-20070」であった。また、上記式(2)のイジングモデルのコスト関数の最小化に必要となった計算時間は0.9秒であった。
【0152】
(比較例2)
比較例2では、実施例2において、問題(B1)と問題(B2)を、個別に2回の計算を行うことにより求解した以外は、実施例2と同様にして、上記式(2)のイジングモデルのコスト関数の最小化を行った。
比較例2においては、
図32に示すように、問題(B1)におけるバイアス及びウエイトと、問題(B2)におけるバイアス及びウエイトとを、個別に設定して、それぞれの組合せ最適化問題の求解を個別に行った。
【0153】
比較例2において、問題(B1)と問題(B2)を個別に求解したところ、問題(B1)における上記式(2)のイジングモデルのコスト関数の最小値は「-20000」であった。また、問題(B2)における上記式(2)のイジングモデルのコスト関数の最小値は「-70」であった。また、上記式(2)のイジングモデルのコスト関数の最小化に必要となった計算時間は、問題(B1)と問題(B2)においてそれぞれ0.9秒であり、合計1.8秒となった。
【0154】
ここで、
図33に、実施例2及び比較例2の条件及び結果の比較を示す。なお、
図33では、それぞれの例におけるイジングモデルの最小値を「E
min」、「E
min1」、「E
min2」で表し、それぞれの例における計算時間を「t」、「t
1」、「t
2」で表している。
実施例2のイジングモデルの最小値「-20070」は、比較例2において、問題(B1)のイジングモデルを個別に最小化した結果の「-20000」と、問題(B2)のイジングモデルを個別に最小化した結果の「-70」との和(合計)となっている。
このことから、実施例2において、問題(B1)と問題(B2)という、個々の組合せ最適化問題を正しく求解できていることがわかる。
さらに、
図33に示すように、実施例2においては、計算時間は0.9秒であり、比較例2の計算時間である1.8秒と比べて、半分(1/2)の計算時間で、問題(B1)と問題(B2)とを求解できた。
【0155】
ここで、実施例2において、問題(B1)におけるアセト酢酸エチルをX
1とし、2-メトキシベンズアルデヒドをY
1とし、分子X
1の原子数をnX
1とし、分子Y
1の原子数をnY
1とする。同様に、実施例2において、問題(B2)におけるAla-GluのペプチドをX
2とし、Glu-AlaのペプチドをY
2とし、分子X
2の原子数をnX
2とし、分子Y
2の原子数をnY
2とする。
この場合、問題(B1)と問題(B2)とを一度に求解したときに、問題(B1)の求解に割り当てたビットの範囲における、状態が「1」であるビットの数は、問題(B1)の最大共通部分構造の数(分子間で共通する原子の数)nX
1Y
1 commonと等しい。同様に、問題(B2)の求解に割り当てたビットの範囲における、状態が「1」であるビットの数は、問題(B2)の最大共通部分構造の数(分子間で共通する原子の数)nX
2Y
2 commonと等しい。
例えば、
図34に示すように、問題(B1)と問題(B2)とを一度に求解することにより、問題(B1)と問題(B2)との求解に割り当てたビットの状態(ステート)に関する情報を得ることができる。このため、問題(B1)と問題(B2)とを一度に求解することにより、個々の問題におけるビットの状態を得ることができ、ビットの状態に基づいて、個々の問題に割り当てたビットの範囲に、状態が「1」であるビットがいくつあるかを求めることができる。したがって、実施例2では、問題(B1)と問題(B2)における最大共通部分構造の数を特定することができ、個々の問題について、分子間の類似度を計算することができる。
実施例2及び比較例2において計算した分子間の類似度を比較したところ、実施例2で算出した問題(B1)の類似度と、比較例2で算出した問題(B1)の類似度は一致した。また、実施例2で算出した問題(B2)の類似度と、比較例2で算出した問題(B2)の類似度も一致した。
【0156】
(ナップザック問題を求解する例)
<実施例3>
実施例3として、組合せ最適化問題を求解することにより、ナップザック問題の求解を行った。実施例3では、実施例1と同様に、
図10に示すような機能構成を有する最適化装置を用いて、
図11のフローチャートにおけるステップS101からS106を行うことにより、2つの組合せ最適化問題の求解を行った。また、組合せ最適化問題の求解(式(1)のイジングモデルの最小化)は、デジタルアニーラ(登録商標)を用いた。
【0157】
<<ナップザック問題>>
ここで、ナップザック問題とは、ナップザックの中に、所定の価値を有する複数種類の品物を詰め込んだ場合に、ナップザックに入れた品物の総価値を最大にする品物の組合せを求めるという問題である。ナップザック問題では、ナップザックに入れることができる品物の重さ(又は容積)が決められており、入れた品物の重さ(又は容積)の総和が、ナップザックの容量を超えてはいけないという制約がある。
【0158】
ナップザック問題を求解できるコスト関数(ハミルトニアン(H))としては、例えば、下記の式(4)が挙げられる。
【数14】
【0159】
ここで、上記式(4)におけるVは、ナップザックに入れた品物の価値の合計を意味する。上記式(4)におけるVは、より具体的には、次の式で表すことができる。
【数15】
ここで、nは品物の個数を意味し、mはナップザックの個数を意味し、v
iは品物iの価値を意味する。また、x
i,jは、品物iが、ナップザックjに入っているか否かを意味し、0又は1であることを表すバイナリ変数である。
【0160】
上記式(4)におけるP
itemは、品物はどのナップザックにも入れないか、又はどれかのナップザックに入れるという、品物の個数に関する制約項を意味する。上記式(4)におけるP
itemは、より具体的には、次の式で表すことができる。
【数16】
ここで、βはパラメータ(係数)であり、例えば、1000とすることができる。
【0161】
上記式(4)におけるP
knapsackは、ナップザックに入れることができる品物の重さがナップザックの容量以下であるという、ナップザックの容量についての制約項を意味する。上記式(4)におけるP
knapsackは、より具体的には、次の式で表すことができる。
【数17】
ここで、αはパラメータ(係数)であり、C
jはナップザックjの容量を意味し、w
iは品物iの重さを意味し、y
iはスラック変数を意味する。また、パラメータであるαは、例えば、1とすることができる。
スラック変数y
iは、より具体的には、次の式で表すことができる。
【数18】
また、スラック変数y
iは、[0,2
l-1]の範囲の整数値となる。ここで、l(エル)は次の式で表すことができる。
【数19】
【0162】
また、上記式(4)におけるP
knapsackは、スラック変数y
iを用いて、ナップザックjの容量C
jを不等式から等式に変換することにより、求めることができる。ナップザックjの容量C
jの不等式から等式への変換は、次の3つの式の変形により行うことができる。
【数20】
【数21】
【数22】
【0163】
<<問題(C1)及び問題(C2)の求解>>
実施例3では、求解する組合せ最適化問題として、問題(C1)と問題(C2)の2つの組合せ最適化問題の求解を行った。
問題(C1)は、10種類の品物を3つのナップザックに詰める場合のナップザック問題である。問題(C1)においては、品物iの価値をそれぞれ、(v0,v1,v2,v3,v4,v5,v6,v7,v8,v9)=(4,2,7,4,6,9,4,8,2,3)とした。また、問題(C1)においては、品物iの重さをそれぞれ、(w0,w1,w2,w3,w4,w5,w6,w7,w8,w9)=(4,8,3,7,9,2,1,6,8,9)とした。さらに、問題(C1)においては、ナップザックjの容量をそれぞれ、(C0,C1,C2)=(12,18,26)とした。
問題(C2)は、10種類の品物を2つのナップザックに詰める場合のナップザック問題である。問題(C2)においては、品物iの価値をそれぞれ、(v0,v1,v2,v3,v4,v5,v6,v7,v8,v9)=(1,2,3,2,5,6,9,7,4,8)とした。また、問題(C2)においては、品物iの重さをそれぞれ、(w0,w1,w2,w3,w4,w5,w6,w7,w8,w9)=(1,9,7,1,5,8,6,5,9,8)とした。さらに、問題(C2)においては、ナップザックjの容量をそれぞれ、(C0,C1)=(14,22)とした。
【0164】
実施例3においては、コスト関数(ハミルトニアン)として、上記式(4)を用いた。そして、上述した問題(C1)と問題(C2)の条件に基づいて、上記式(4)を上記式(1)のイジングモデルに変換し、b
i(バイアス)及びw
ij(ウエイト)を設定した。
また、実施例3では、
図35に示すように、問題(C1)と問題(C2)におけるバイアスを隣接して配置した。実施例3では、
図35に示すように、問題(C1)と問題(C2)におけるウエイトをバイアスに対応させると共に、互いに異なる組合せ最適化問題の求解に用いるビット間のウエイトをゼロにした。
【0165】
実施例3では、アニーリングパラメータを、問題(C1)と問題(C2)とを正しく求解することができる条件に設定して、上記式(1)の最小化を行った。
実施例2において、上記式(1)のイジングモデルの最小化を行ったところ、上記式(1)のイジングモデルにおける最小値(Emin)は、「-1910」であった。また、上記式(1)のイジングモデルの最小化に必要となった計算時間は8.4秒であった。
【0166】
(比較例3)
比較例3では、実施例3において、問題(C1)と問題(C2)を、個別に2回の計算を行うことにより求解した以外は、実施例3と同様にして、上記式(1)のイジングモデルの最小化を行った。
比較例3においては、
図36に示すように、問題(C1)におけるバイアス及びウエイトと、問題(C2)におけるバイアス及びウエイトとを、個別に設定して、それぞれの組合せ最適化問題の求解を個別に行った。
【0167】
比較例3において、問題(C1)と問題(C2)を個別に求解したところ、問題(C1)における上記式(1)のイジングモデルの最小値は「-1192」であった。また、問題(C2)における上記式(1)のイジングモデルの最小値は「-718」であった。また、上記式(1)のイジングモデルの最小化に必要となった計算時間は、問題(C1)と問題(C2)においてそれぞれ8.4秒であり、合計16.8秒となった。
【0168】
ここで、
図37に、実施例3及び比較例3の条件及び結果の比較を示す。なお、
図37では、それぞれの例におけるイジングモデルの最小値を「E
min」、「E
min1」、「E
min2」で表し、それぞれの例における計算時間を「t」、「t
1」、「t
2」で表している。
実施例3のイジングモデルの最小値「-1910」は、比較例3において、問題(C1)のイジングモデルを個別に最小化した結果の「-1192」と、問題(C2)のイジングモデルを個別に最小化した結果の「-718」との和(合計)となっている。
このことから、実施例3において、問題(C1)と問題(C2)という、個々の組合せ最適化問題を正しく求解できていることがわかる。
さらに、
図37に示すように、実施例3においては、計算時間は8.4秒であり、比較例2の計算時間である16.8秒と比べて、半分(1/2)の計算時間で、問題(C1)と問題(C2)とを求解できた。
【0169】
(複数の組合せ最適化問題が異種の組合せ最適化問題を含む例)
<実施例4>
実施例4として、複数の組合せ最適化問題が、異種の組合せ最適化問題を含む場合について、複数の組合せ最適化問題の求解を行った。実施例4では、実施例1と同様に、
図10に示すような機能構成を有する最適化装置を用いて、
図11のフローチャートにおけるステップS101からS106を行うことにより、3つの組合せ最適化問題の求解を行った。また、組合せ最適化問題の求解(式(1)のイジングモデルの最小化)は、デジタルアニーラ(登録商標)を用いた。
【0170】
実施例4では、実施例1における問題(A2)、実施例2における問題(B2)、及び実施例3における問題(C1)の3つの組み合わせ最適化問題の求解を行った。実施例4においては、上記の問題(A2)、問題(B2)、及び問題(C1)におけるイジングモデルのb
i(バイアス)及びw
ij(ウエイト)を、
図38に示すように設定した。実施例4では、
図38に示すように、上記の問題(A2)、問題(B2)、及び問題(C1)におけるウエイトをバイアスに対応させると共に、互いに異なる組合せ最適化問題の求解に用いるビット間のウエイトをゼロにした。
【0171】
実施例4では、アニーリングパラメータを、上記の問題(A2)、問題(B2)、及び問題(C1)の内で、最も求解しにくい問題である問題(C1)を正しく求解することができる条件に設定して、上記式(1)の最小化を行った。
実施例4において、上記式(1)のイジングモデルの最小化を行ったところ、上記式(1)のイジングモデルにおける最小値(Emin)は、「-1082769」であった。また、上記式(1)のイジングモデルの最小化に必要となった計算時間は8.4秒であった。
【0172】
(比較例4)
比較例4では、実施例4において上記の問題(A2)、問題(B2)、及び問題(C1)を、個別に3回の計算を行うことにより求解した以外は、実施例4と同様にして、上記式(1)のイジングモデルの最小化を行った。
比較例4においては、
図39に示すように、問題(A2)におけるバイアス及びウエイトと、問題(B2)におけるバイアス及びウエイトと、問題(C1)におけるバイアス及びウエイトを、個別に設定して、それぞれの組合せ最適化問題の求解を個別に行った。
【0173】
比較例4において、問題(A2)、問題(B2)、及び問題(C1)を個別に求解したところ、問題(A2)における上記式(1)のイジングモデルの最小値は「-1081507」であった。また、問題(B2)における上記式(1)のイジングモデルの最小値は「-70」であった。さらに、問題(C1)における上記式(1)のイジングモデルの最小値は「-1192」であった。また、上記式(1)のイジングモデルの最小化に必要となった計算時間は、問題(A2)は0.9秒であり、問題(B2)は0.9秒であり、問題(C1)は8.4秒であり、合計10.2秒となった。
【0174】
ここで、
図40に、実施例4及び比較例4の条件及び結果の比較を示す。なお、
図40では、それぞれの例におけるイジングモデルの最小値を「E
min」、「E
min1」、「E
min2」、「E
min3」で表し、それぞれの例における計算時間を「t」、「t
1」、「t
2」、「t
3」で表している。
実施例4のイジングモデルの最小値「-1082769」は、比較例4において、問題(A2)のイジングモデルを個別に最小化した結果の「-1081507」と、問題(B2)のイジングモデルを個別に最小化した結果の「-70」と、問題(C1)のイジングモデルを個別に最小化した結果の「-1192」との和(合計)となっている。
このことから、実施例4において、問題(A2)と、問題(B2)と、問題(C1)という、個々の組合せ最適化問題を正しく求解できていることがわかる。
さらに、
図40に示すように、実施例4においては、計算時間は8.4秒であり、比較例2の計算時間である10.2秒と比べて、短くすることができた。実施例4では、複数の組合せ最適化問題を求解するための計算時間は、最も求解しづらい問題(C1)を求解する際に必要となる計算時間と同じとなった。
【0175】
図41は、本件で開示する技術の一実施形態及び従来技術における、複数の組み合わせ最適化問題を求解する際の関係の一例を示す図である。
図41に示すように、従来技術では、複数の組合せ最適化問題を求解する際に、各組合せ最適化問題(問題(1)と問題(2))について、個別に繰り返して求解を行うことにより、逐次的に組合せ最適化問題を求解する。このため、
図41に示す例ように、従来技術では、個々の組合せ最適化問題の求解の計算時間が10秒である場合は、問題(1)の求解を行うジョブ(1)と、問題(2)の求解を行うジョブ(2)とに、それぞれ10秒かかるため、合計の計算時間は20秒となる。
【0176】
一方、本件で開示する技術の一実施形態では、
図41に示すように、問題(1)と問題(2)という2つの組合せ最適化問題における、個々の組合せ最適化問題の求解に用いるビットを、用意したビットに割り当てる。つまり、本件で開示する技術の一実施形態では、複数の第1ビットを複数の組合せ最適化問題に含まれる第1組合せ最適化問題に割り当て、複数の第2ビットを複数の組合せ最適化問題に含まれる第2組合せ最適化問題に割り当てる。
さらに、本件で開示する技術の一実施形態では、
図41に示すように、問題(1)と問題(2)という2つの組合せ最適化問題における、互いに異なる組合せ最適化問題の求解に用いるビット間の相互作用(ウエイト)をゼロとする。つまり、本件で開示する技術の一実施形態では、複数の第1ビットの各々と複数の第2ビットの各々との相互作用をゼロとする。
そして、本件で開示する技術の一実施形態では、上記のように設定した条件に基づいて、複数の組合せ最適化問題を一括して(1つのジョブで)求解する。
こうすることにより、本件で開示する技術の一実施形態では、
図41に示す例において、個々の求解に10秒ずつ必要となる問題(1)と問題(2)を求解する際に、問題(1)と問題(2)とをまとめて求解でき、合計の計算時間を10秒とすることができる。つまり、本件で開示する技術の一実施形態においては、
図41に示す例では、複数の組み合わせ最適化問題の求解に必要となる計算時間を半分にすることができる。
【0177】
このように、本件で開示する技術の一実施形態では、複数の組合せ最適化問題を、個別に求解することを繰り返すことなく効率的に短時間で求解できる。
【0178】
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
複数の組合せ最適化問題を求解するための複数ビットのうち、複数の第1ビットを前記複数の組合せ最適化問題に含まれる第1組合せ最適化問題に割り当て、複数の第2ビットを前記複数の組合せ最適化問題に含まれる第2組合せ最適化問題に割り当て、
前記複数の第1ビットの各々と前記複数の第2ビットの各々との相互作用をゼロとして、
前記複数の組合せ最適化問題を求解する求解部を備えることを特徴とする最適化装置。
(付記2)
前記第1組合せ最適化問題と前記第2組合せ最適化問題は互いに同種又は異種の組合せ最適化問題である、付記1に記載の最適化装置。
(付記3)
前記複数の第2ビットは、前記複数ビットにおいて前記複数の第1ビットに対して隣接する、付記1又は2に記載の最適化装置。
(付記4)
前記求解部が、
前記複数の組合せ最適化問題をコスト関数に基づき求解し、
前記コスト関数は、
前記複数の第1ビットに含まれるそれぞれのビットの間の相互作用が整数となり、
前記複数の第2ビットに含まれるそれぞれのビットの間の相互作用が整数となるように定められた関数である、
付記1から3のいずれかに記載の最適化装置。
(付記5)
前記求解部が、下記式(1)で表されるイジングモデルに変換した前記コスト関数に基づき、前記複数の組合せ最適化問題を求解する、付記4に記載の最適化装置。
【数23】
ただし、前記式(1)において、
前記Eは、当該Eを最小化することが、前記複数の組合せ最適化問題を求解することを意味する前記コスト関数であり、
前記w
ijは、i番目の前記ビットとj番目の前記ビットとの間の相互作用を表す数値であり、
前記b
iは、i番目の前記ビットに対するバイアスを表す数値であり、
前記x
iは、i番目の前記ビットが0又は1であることを表すバイナリ変数であり、
前記x
jは、j番目の前記ビットが0又は1であることを表すバイナリ変数である。
(付記6)
前記求解部が、焼き鈍し法により、前記複数の組合せ最適化問題を求解する、付記1から5のいずれかに記載の最適化装置。
(付記7)
前記複数の組合せ最適化問題が、複数の分子間における類似性探索である、付記1から6のいずれかに記載の最適化装置。
(付記8)
複数の組合せ最適化問題を求解するための複数ビットのうち、複数の第1ビットを前記複数の組合せ最適化問題に含まれる第1組合せ最適化問題に割り当て、複数の第2ビットを前記複数の組合せ最適化問題に含まれる第2組合せ最適化問題に割り当て、
前記複数の第1ビットの各々と前記複数の第2ビットの各々との相互作用をゼロとして、
前記複数の組合せ最適化問題を求解する処理を、コンピュータに行わせることを特徴とする最適化プログラム。
(付記9)
前記第1組合せ最適化問題と前記第2組合せ最適化問題は互いに同種又は異種の組合せ最適化問題である、付記8に記載の最適化プログラム。
(付記10)
前記複数の第2ビットは、前記複数ビットにおいて前記複数の第1ビットに対して隣接する、付記8又は9に記載の最適化プログラム。
(付記11)
前記複数の組合せ最適化問題をコスト関数に基づき求解し、
前記コスト関数は、
前記複数の第1ビットに含まれるそれぞれのビットの間の相互作用が整数となり、
前記複数の第2ビットに含まれるそれぞれのビットの間の相互作用が整数となるように定められた関数である、
付記8から10のいずれかに記載の最適化プログラム。
(付記12)
下記式(1)で表されるイジングモデルに変換した前記コスト関数に基づき、前記複数の組合せ最適化問題を求解する、付記11に記載の最適化プログラム。
【数24】
ただし、前記式(1)において、
前記Eは、当該Eを最小化することが、前記複数の組合せ最適化問題を求解することを意味する前記コスト関数であり、
前記w
ijは、i番目の前記ビットとj番目の前記ビットとの間の相互作用を表す数値であり、
前記b
iは、i番目の前記ビットに対するバイアスを表す数値であり、
前記x
iは、i番目の前記ビットが0又は1であることを表すバイナリ変数であり、
前記x
jは、j番目の前記ビットが0又は1であることを表すバイナリ変数である。
(付記13)
焼き鈍し法により、前記複数の組合せ最適化問題を求解する、付記8から12のいずれかに記載の最適化プログラム。
(付記14)
前記複数の組合せ最適化問題が、複数の分子間における類似性探索である、付記8から13のいずれかに記載の最適化プログラム。
(付記15)
複数の組合せ最適化問題を求解するための複数ビットのうち、複数の第1ビットを前記複数の組合せ最適化問題に含まれる第1組合せ最適化問題に割り当て、複数の第2ビットを前記複数の組合せ最適化問題に含まれる第2組合せ最適化問題に割り当て、
前記複数の第1ビットの各々と前記複数の第2ビットの各々との相互作用をゼロとして、
前記複数の組合せ最適化問題を求解する求解工程を含むことを特徴とする最適化方法。
(付記16)
前記第1組合せ最適化問題と前記第2組合せ最適化問題は互いに同種又は異種の組合せ最適化問題である、付記15に記載の最適化方法。
(付記17)
前記複数の第2ビットは、前記複数ビットにおいて前記複数の第1ビットに対して隣接する、付記15又は16に記載の最適化方法。
(付記18)
前記求解工程において、
前記複数の組合せ最適化問題をコスト関数に基づき求解し、
前記コスト関数は、
前記複数の第1ビットに含まれるそれぞれのビットの間の相互作用が整数となり、
前記複数の第2ビットに含まれるそれぞれのビットの間の相互作用が整数となるように定められた関数である、
付記15から17のいずれかに記載の最適化方法。
(付記19)
前記求解工程において、下記式(1)で表されるイジングモデルに変換した前記コスト関数に基づき、前記複数の組合せ最適化問題を求解する、付記18に記載の最適化方法。
【数25】
ただし、前記式(1)において、
前記Eは、当該Eを最小化することが、前記複数の組合せ最適化問題を求解することを意味する前記コスト関数であり、
前記w
ijは、i番目の前記ビットとj番目の前記ビットとの間の相互作用を表す数値であり、
前記b
iは、i番目の前記ビットに対するバイアスを表す数値であり、
前記x
iは、i番目の前記ビットが0又は1であることを表すバイナリ変数であり、
前記x
jは、j番目の前記ビットが0又は1であることを表すバイナリ変数である。
(付記20)
前記求解工程において、焼き鈍し法により、前記複数の組合せ最適化問題を求解する、付記15から19のいずれかに記載の最適化方法。
(付記21)
前記複数の組合せ最適化問題が、複数の分子間における類似性探索である、付記15から20のいずれかに記載の最適化方法。
【符号の説明】
【0179】
10 最適化装置
11 制御部
12 メモリ
13 記憶部
14 表示部
15 入力部
16 出力部
17 I/Oインターフェース部
18 システムバス
19 ネットワークインターフェース部
20 ネットワークインターフェース部
30 コンピュータ
40 コンピュータ
101 通信機能部
102 入力機能部
103 出力機能部
104 制御機能部
105 求解部
106 記憶機能部
107 バイアスデータベース
108 ウエイトデータベース