(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6725920
(24)【登録日】2020年6月30日
(45)【発行日】2020年7月22日
(54)【発明の名称】集合分割問題求解装置、方法、及びプログラム
(51)【国際特許分類】
G06F 16/00 20190101AFI20200713BHJP
G06F 17/10 20060101ALI20200713BHJP
G06N 99/00 20190101ALI20200713BHJP
【FI】
G06F16/00
G06F17/10 Z
G06N99/00 180
【請求項の数】8
【全頁数】11
(21)【出願番号】特願2017-139319(P2017-139319)
(22)【出願日】2017年7月18日
(65)【公開番号】特開2019-21052(P2019-21052A)
(43)【公開日】2019年2月7日
【審査請求日】2019年8月2日
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(73)【特許権者】
【識別番号】504176911
【氏名又は名称】国立大学法人大阪大学
(74)【代理人】
【識別番号】110001519
【氏名又は名称】特許業務法人太陽国際特許事務所
(72)【発明者】
【氏名】西野 正彬
(72)【発明者】
【氏名】鈴木 潤
(72)【発明者】
【氏名】梅谷 俊治
【審査官】
吉田 誠
(56)【参考文献】
【文献】
特開2007−325379(JP,A)
【文献】
特開平08−063457(JP,A)
【文献】
米国特許出願公開第2008/0313113(US,A1)
【文献】
梅谷 俊治,大規模な集合分割問題に対する局所探索法,第92回 人工知能基本問題研究会資料 (SIG−FPAI−B303),日本,一般社団法人人工知能学会,2014年 1月27日,21−25ページ
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00
G06F 17/10
G06N 99/00
(57)【特許請求の範囲】
【請求項1】
要素の全体集合を、コストの総和が最小となる複数の部分集合に分割する集合分割問題に対する解候補を局所探索法により更新し、更新された解候補について、前記集合分割問題の制約条件の違反度を計算することを繰り返す局所探索実行部と、
前記計算された違反度が閾値以下となったときに、前記解候補に基づいて、何れの部分集合にも含まれない要素の集合と、2以上の部分集合に含まれる要素を含む前記部分集合との和集合を全体集合とする厳密被覆問題を作成し、前記厳密被覆問題の全ての解を、深さ優先探索により求め、前記厳密被覆問題の全ての解のうち、前記コストの和を最小とする解と、前記解候補に含まれる、2以上の部分集合に含まれる要素を含む前記部分集合以外の前記部分集合とに基づいて、前記集合分割問題の近似解を求める深さ優先探索実行部と、
を含む集合分割問題求解装置。
【請求項2】
前記違反度は、各要素について、前記解候補において前記要素が何れの部分集合にも含まれないこと、及び前記要素が2以上の部分集合に含まれることを表す請求項1記載の集合分割問題求解装置。
【請求項3】
前記深さ優先探索実行部は、前記厳密被覆問題の全ての解を保持するゼロサプレス型二分決定グラフ(Zero-suppressed Binary Decision Diagram)を、深さ優先探索により構築し、前記ゼロサプレス型二分決定グラフが保持する前記厳密被覆問題の全ての解のうち、前記コストの和を最小とする解を求める請求項1又は2記載の集合分割問題求解装置。
【請求項4】
予め定められた終了条件を満たすまで、前記局所探索実行部による処理と、前記深さ優先探索実行部による処理とを繰り返す請求項1〜請求項3の何れか1項記載の集合分割問題求解装置。
【請求項5】
局所探索実行部が、要素の全体集合を、コストの総和が最小となる複数の部分集合に分割する集合分割問題に対する解候補を局所探索法により更新し、更新された解候補について、前記集合分割問題の制約条件の違反度を計算することを繰り返し、
深さ優先探索実行部が、前記計算された違反度が閾値以下となったときに、前記解候補に基づいて、何れの部分集合にも含まれない要素の集合と、2以上の部分集合に含まれる要素を含む前記部分集合との和集合を全体集合とする厳密被覆問題を作成し、前記厳密被覆問題の全ての解を、深さ優先探索により求め、前記厳密被覆問題の全ての解のうち、前記コストの和を最小とする解と、前記解候補に含まれる、2以上の部分集合に含まれる要素を含む前記部分集合以外の前記部分集合とに基づいて、前記集合分割問題の近似解を求める
集合分割問題求解方法。
【請求項6】
前記違反度は、各要素について、前記解候補において前記要素が何れの部分集合にも含まれないこと、及び前記要素が2以上の部分集合に含まれることを表す請求項5記載の集合分割問題求解方法。
【請求項7】
前記深さ優先探索実行部が求めることでは、前記厳密被覆問題の全ての解を保持するゼロサプレス型二分決定グラフ(Zero-suppressed Binary Decision Diagram)を、深さ優先探索により構築し、前記ゼロサプレス型二分決定グラフが保持する前記厳密被覆問題の全ての解のうち、前記コストの和を最小とする解を求める請求項5又は6記載の集合分割問題求解方法。
【請求項8】
コンピュータを、請求項1〜4のいずれか1項に記載の集合分割問題求解装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、集合分割問題求解装置、方法、及びプログラムに係り、特に、集合分割問題を解くための集合分割問題求解装置、方法、及びプログラムに関する。
【背景技術】
【0002】
組合せ最適化問題の一種である、集合分割問題は、M個の要素からなる全体集合U = {1,...,M}、N個のUの部分集合
から構成される集合S={s
1,s
2,...,s
N}および各s
iに対する非負のコストc(s
i)が与えられたときに、
を満たし、かつすべての
であるような
に対して
を満たすような
のうち、コストの総和
を最小とするものを見つける問題である。集合分割問題は、
【0003】
【数1】
【0004】
としても表現できる。ここでx
j はs
jが解に含まれたときに1、そうでないと0となる二値変数である。c
jはc(s
j)の値を表す。a
ijは,全体集合のi番目の要素がs
jに含まれているときに1、そうでないときに0をとる。なお,以下ではx
1,...,x
NをあわせてN次元の二値ベクトルXとして表現する。また、Xへのある値{0,1}
Nの割当をxとして表現する。
【0005】
集合分割問題はNP困難であることが知られている。
【0006】
大規模な集合分割問題の最適解を求めることは一般に非常に困難である。そこで、最適解でなくとも効率的によい解を見つけることが可能な局所探索法に基づく近似解法が用いられている(非特許文献1)。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】Shunji Umetani, “Exploiting Variable Associations to Configure Efficient Local Search in Large-Scale Set Partitioning Problems', In Proceedings of the 29th AAAI Conference on Artificial Intelligence (AAAI-15), 2015
【発明の概要】
【発明が解決しようとする課題】
【0008】
局所探索法は高速に探索を実行できるものの、制約条件を満たす解(実行可能解)を効率的に見つけることができないという課題があった。
【0009】
本発明は、上記の事情に鑑みてなされたもので、集合分割問題の近似解を効率的に求めることができる集合分割問題求解装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するために、本発明に係る集合分割問題求解装置は、要素の全体集合を、コストの総和が最小となる複数の部分集合に分割する集合分割問題に対する解候補を局所探索法により更新し、更新された解候補について、前記集合分割問題の制約条件の違反度を計算することを繰り返す局所探索実行部と、前記計算された違反度が閾値以下となったときに、前記解候補に基づいて、何れの部分集合にも含まれない要素の集合と、2以上の部分集合に含まれる要素を含む前記部分集合との和集合を全体集合とする厳密被覆問題を作成し、前記厳密被覆問題の全ての解を、深さ優先探索により求め、前記厳密被覆問題の全ての解のうち、前記コストの和を最小とする解と、前記解候補に含まれる、2以上の部分集合に含まれる要素を含む前記部分集合以外の前記部分集合とに基づいて、前記集合分割問題の近似解を求める深さ優先探索実行部と、を含んで構成されている。
【0011】
本発明に係る集合分割問題求解方法は、局所探索実行部が、要素の全体集合を、コストの総和が最小となる複数の部分集合に分割する集合分割問題に対する解候補を局所探索法により更新し、更新された解候補について、前記集合分割問題の制約条件の違反度を計算することを繰り返し、前記深さ優先探索実行部が、前記計算された違反度が閾値以下となったときに、前記解候補に基づいて、何れの部分集合にも含まれない要素の集合と、2以上の部分集合に含まれる要素を含む前記部分集合との和集合を全体集合とする厳密被覆問題を作成し、前記厳密被覆問題の全ての解を、深さ優先探索により求め、前記厳密被覆問題の全ての解のうち、前記コストの和を最小とする解と、前記解候補に含まれる、2以上の部分集合に含まれる要素を含む前記部分集合以外の前記部分集合とに基づいて、前記集合分割問題の近似解を求める。
【0012】
本発明に係るプログラムは、コンピュータを、上記発明に係る集合分割問題求解装置の各部として機能させるためのプログラムである。
【発明の効果】
【0013】
以上説明したように、本発明に係る集合分割問題求解装置、方法、及びプログラムによれば、集合分割問題に対する解候補を局所探索法により更新し、更新された解候補について、前記集合分割問題の制約条件の違反度を計算することを繰り返し、前記計算された違反度が閾値以下となったときに、前記解候補に基づいて、厳密被覆問題を作成し、前記厳密被覆問題の全ての解を、深さ優先探索により求め、前記厳密被覆問題の全ての解のうち、前記コストの和を最小とする解と、前記解候補に含まれる、2以上の部分集合に含まれる要素を含む前記部分集合以外の前記部分集合とに基づいて、前記集合分割問題の近似解を求めることにより、集合分割問題の近似解を効率的に求めることができる。
【図面の簡単な説明】
【0014】
【
図1】本発明の実施形態に係る集合分割問題求解装置の機能的な構成の一例を示すブロック図である。
【
図2】本発明の実施形態に係るプログラムによる処理の流れの一例を示すフローチャートである。
【
図3】本発明の実施形態に係るプログラムにおける深さ優先探索処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下、図面を参照して、本発明を実施するための形態の一例について詳細に説明する。
【0016】
[本発明の実施形態の概要]
本実施形態においては、集合分割問題の解の制約に対する違反度を導入し、局所探索法を実行しつつ、解の制約に対する違反度がしきい値以下になった場合に、深さ優先探索に基づく解法に切り替えることによって探索を高速化する。局所探索法によって解の大部分を求めてから、深さ優先探索法に切り替えることによって、集合分割問題の解を高速に発見する。
【0017】
ここで、集合分割問題の解の制約に対する違反度について説明する。ある解xが与えられたときに、y
iを
【0019】
と定義する。xがすべての制約条件を満たすときには、すべてのiについてy
i=0を満たす。このとき、違反度V(x)を以下の式で表わす。
【0021】
上記の式に示すように、違反度V(x)は、各要素x
iについて、解候補xに当該要素x
iが何れの部分集合にも含まれないこと、及び当該要素x
iが2以上の部分集合に含まれることを表している。
【0022】
<本実施形態に係る集合分割問題求解装置の構成>
図1は、本発明の実施形態に係る集合分割問題求解装置10の機能的な構成の一例を示すブロック図である。
【0023】
図1に示すように、集合分割問題求解装置10は、問題入力部12と、局所探索実行部14と、深さ優先探索実行部16と、計算結果出力部18と、を備えている。
【0024】
本実施形態に係る集合分割問題求解装置10は、CPU(Central Processing Unit)、RAM(Random Access memory)、ROM(Read Only Memory)、及びHDD(Hard Disk Drive)等を備えたコンピュータとして構成される。ROMには、本実施形態に係る集合分割問題求解処理を実行するためのプログラムが記憶されている。なお、プログラムは、HDDに記憶されていてもよい。
【0025】
上記のプログラムは、例えば、集合分割問題求解装置10に予めインストールされていてもよい。プログラムは、不揮発性の記憶媒体に記憶して、又は、ネットワークを介して配布して、集合分割問題求解装置10に適宜インストールすることで実現してもよい。なお、不揮発性の記憶媒体の例としては、CD-ROM(Compact Disc Read Only Memory)、光磁気ディスク、DVD-ROM(Digital Versatile Disc Read Only Memory)、フラッシュメモリ、メモリカード等が挙げられる。
【0026】
CPUは、ROMに記憶されているプログラムを読み込んで実行することにより、集合分割問題求解装置10の各部として機能する。
【0027】
問題入力部12は、集合分割問題を外部より受け取る。具体的には、a
ij(i∈{1,...,M}、j∈{1,...,N})及びc
j(j=1,...,N)を入力として受け取る。
【0028】
局所探索実行部14は、問題入力部12より入力された集合分割問題に対して局所探索法を実行する。
【0029】
具体的には、局所探索実行部14は、要素の全体集合Uを、コストの総和が最小となる複数の部分集合に分割する集合分割問題に対する解候補を局所探索法により更新し、更新された解候補について、集合分割問題の制約条件の違反度を計算することを繰り返す。
【0030】
局所探索法は、あるx
1,. ..,x
Nへの値の割当を初期解として、そこから割当を部分的に変更することで、よりよい実行可能解を得るための方法である。
【0031】
また、局所探索実行部14は、探索の進み具合に相当する、集合分割問題の制約条件の違反度が閾値以下となった場合に、深さ優先探索実行部16を用いて部分問題に対する深さ優先探索を実行する。
【0032】
深さ優先探索実行部16は、局所探索実行部14より解候補を受け取り、集合分割問題の部分問題を作成し、集合分割問題の部分問題に対する深さ優先探索を実行して、部分問題に対する最適解を得て、最適解から求まる集合分割問題の近似解を局所探索実行部14に返却する処理を実行する。
【0033】
具体的には、深さ優先探索実行部16は、計算された違反度が閾値以下となったときに、解候補に基づいて、何れの部分集合にも含まれない要素の集合と、2以上の部分集合に含まれる要素を含む部分集合との和集合を全体集合とする厳密被覆問題を、集合分割問題の部分問題として作成し、厳密被覆問題の全ての解を、深さ優先探索により求め、厳密被覆問題の全ての解のうち、コストの和を最小とする解と、解候補に含まれる、2以上の部分集合に含まれる要素を含む部分集合ではない部分集合とに基づいて、集合分割問題の近似解を求める。
【0034】
ここで、深さ優先探索実行部16は、厳密被覆問題の全ての解を、深さ優先探索により求め、厳密被覆問題の全ての解のうち、コストの和を最小とする解を求める際には、厳密被覆問題の全ての解を保持するゼロサプレス型二分決定グラフ(Zero-suppressed Binary Decision Diagram)を、深さ優先探索により構築し、ゼロサプレス型二分決定グラフが保持する厳密被覆問題の全ての解のうち、コストの和を最小とする解を求める。
【0035】
予め定められた終了条件を満たすまで、局所探索実行部14による処理と、深さ優先探索実行部16による処理とを繰り返す。
【0036】
計算結果出力部18では、局所探索実行部14で最終的に得られた集合分割問題に対する近似解を外部に出力する。
【0037】
<本実施形態に係る集合分割問題求解装置の作用>
次に集合分割問題求解装置10による処理の流れを
図2の処理フローを用いて説明する。
【0038】
まず、ステップS01で問題入力部12にて外部から集合分割問題を受け取る。
【0039】
次に、ステップS02で、上記非特許文献1に代表される、集合分割問題に対する局所探索法を実行する。局所探索アルゴリズムではある割当xから、その一部の要素の値を変更して別の割当x′を得て、Σc
ix
iの値が改善されたならば解候補を更新することを繰り返して問題を解く。ステップS02で局所探索を実行し、解候補が更新されたならば、次にステップS03へ進み、更新後の解候補における違反度V(x)の値を計算し、あらかじめ定めたしきい値以下であったならば、ステップS04に遷移する。しきい値より大きい場合には、上記ステップS02に遷移し、局所探索を繰り返す。
【0040】
ステップS04で深さ優先探索を実行する。詳細については後述する。ステップS05で、現在の探索が、予め定められた終了条件を満たしているならば現在の解候補を集合分割問題の近似解として出力して処理を終了する。終了条件としては、例えば、上記非特許文献1であるように、ある解候補とその一つ前に得られた解候補とのコストを比較して、コストの低下の度合いがあるしきい値を下回ったときに探索を終了するなどの方法が考えられる。
【0041】
次にステップS04の深さ優先探索処理について、
図3の処理フローを用いて説明する。
【0042】
深さ優先探索処理は,厳密被覆問題とよばれる離散アルゴリズムの問題に対するすべての解の集合を保持する、ゼロサプレス型二分決定グラフ(ZDD)を構築する処理を実行し、その後に構築されたZDDを用いて、集合分割問題の部分問題に対する解を求める。その後に求まった部分問題の解を用いて元の集合分割問題の解を求めて処理を終了する。厳密被覆問題とは、集合分割問題における目的関数を削除した問題である。すなわち、全体集合UとUの部分集合の集合Sとが与えられた場合に、式(2)、(3)を満たすようなx
1,...,x
Nをすべて求める問題である。まずステップS101で、集合分割問題の部分問題であるような厳密被覆問題を作成する。
【0043】
ステップS101の具体的な手順は以下の(手順1)〜(手順2A)、又は(手順1)〜(手順2B)である。
【0044】
(手順1)現在の解候補xに対して、Uの要素の集合I
- = {i∈{1,...,M}|y
i<0}とI
+={i∈{1,...,M}|y
i>0}を取り出す。また、インデックスの集合
および
を用意する。
【0045】
(手順2A)全体集合をU′=I
−∪I
J、Uの部分集合の集合を
とするような厳密被覆問題を作成する。
【0046】
なお、上記の(手順2A)で生成されるU′,S′は、以下の(手順2B)で作成されるものに置き換えてもよい。
【0047】
(手順2B)全体集合をU′=I
−∪I
J、Uの部分集合の集合を
とするような厳密被覆問題を作成する。
【0048】
以上の具体的な手順で作成された厳密被覆問題に対し、ステップS102で、非特許文献2の手法を適用することで、厳密被覆問題のすべての解の集合を保持するZDDを構築する。
【0049】
例えば、二値行列として表現されている厳密被覆問題のインスタンスの入力を受け付ける。ここで、二値行列は、|S′|行、|U′|列からなり、各列番号が全体集合U′に含まれる各要素に対応し、各行ベクトルが、部分集合の集合S′に含まれる各要素に対応している。そして、二値行列に基づいて、選択される列番号を1とする行番号の各々に対し、行番号を解に含めたときに得られる厳密被覆問題の部分問題を求め、求められた厳密被覆問題の部分問題を再帰的に解いて、部分問題の解を表すZDDの根ノードを得ることにより、厳密被覆問題の全ての解の集合を保持するZDDを構築する。
【0050】
[非特許文献2] Masaaki Nishino, Norihito Yasuda, Shinichi Minato, and Masaaki Nagata, “Dancing with Decision Diagrams: a Combined Approach to Exact Cover", In Proceedings of the 31st AAAI Conference on Artificial Intelligence (AAAI-17), 2017
【0051】
なお、上記非特許文献2の手法以外の手法を用いて、厳密被覆問題のすべての解の集合を保持するZDDを構築するようにしてもよい。
【0052】
次に、ステップS103で、厳密被覆問題のすべての解の集合を保持するZDDに対して、非特許文献3に記載されているAlgorithm Bを実行することにより、厳密被覆問題の解のうち、コストの和を最小にする最適解を求める。
【0053】
[非特許文献3] Donald E. Knuth, “The Art of Computer Programming Volume 4A: Combinatorial Algorithms, Part 1", Addison-Wesley, 2011
【0054】
そして、見つかった最適解(Uの部分集合)をTとすると、Uの部分集合
は元の集合分割問題に対する実行可能解となっている。そこで、
を集合分割問題の近似解として出力して、深さ優先探索処理を終了する。
【0055】
以上説明したように、本発明の実施形態に係る集合分割問題求解装置によれば、集合分割問題に対する解候補を局所探索法により更新し、更新された解候補について、集合分割問題の制約条件の違反度を計算することを繰り返し、計算された違反度が閾値以下となったときに、解候補に基づいて、厳密被覆問題を作成し、厳密被覆問題の全ての解を、深さ優先探索により求め、厳密被覆問題の全ての解のうち、コストの和を最小とする解と、解候補に含まれる、2以上の部分集合に含まれる要素を含む部分集合以外の部分集合とに基づいて、集合分割問題の近似解を求めることにより、集合分割問題の近似解を効率的に求めることができる。
【0056】
以上、実施形態として集合分割問題求解装置及び方法を例示して説明した。実施形態は、コンピュータを、集合分割問題求解装置における各部として機能させるためのプログラムの形態としてもよい。実施形態は、このプログラムを記憶したコンピュータが読み取り可能な記憶媒体の形態としてもよい。
【0057】
その他、上記実施形態で説明した集合分割問題求解装置の構成は、一例であり、主旨を逸脱しない範囲内において状況に応じて変更してもよい。
【0058】
また、上記実施形態で説明したプログラムの処理の流れも、一例であり、主旨を逸脱しない範囲内において不要なステップを削除したり、新たなステップを追加したり、処理順序を入れ替えたりしてもよい。
【0059】
また、上記実施形態では、プログラムを実行することにより、実施形態に係る処理がコンピュータを利用してソフトウェア構成により実現される場合について説明したが、これに限らない。実施形態は、例えば、ハードウェア構成や、ハードウェア構成とソフトウェア構成との組み合わせによって実現してもよい。
【符号の説明】
【0060】
10 集合分割問題求解装置
12 問題入力部
14 局所探索実行部
16 深さ優先探索実行部
18 計算結果出力部