JP4829441B2 - 制約充足問題解決装置および解決方法 - Google Patents

制約充足問題解決装置および解決方法 Download PDF

Info

Publication number
JP4829441B2
JP4829441B2 JP2001286278A JP2001286278A JP4829441B2 JP 4829441 B2 JP4829441 B2 JP 4829441B2 JP 2001286278 A JP2001286278 A JP 2001286278A JP 2001286278 A JP2001286278 A JP 2001286278A JP 4829441 B2 JP4829441 B2 JP 4829441B2
Authority
JP
Japan
Prior art keywords
solution
problem solving
constraint satisfaction
constraint
adopted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2001286278A
Other languages
English (en)
Other versions
JP2003099259A (ja
Inventor
伸弘 湯上
唯子 太田
由起子 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2001286278A priority Critical patent/JP4829441B2/ja
Publication of JP2003099259A publication Critical patent/JP2003099259A/ja
Application granted granted Critical
Publication of JP4829441B2 publication Critical patent/JP4829441B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は制約充足問題、すなわち変数の値の組合わせの中で許される組合わせとしての制約が与えられた時に、各変数の値を求める問題の解決方式に係り、更に詳しくは生産計画問題、配送問題、製品のカスタマイゼーション問題などのように、同じ制約のもとで、変数の値に対してそれぞれの時点毎に異なる要求が与えられる場合の制約充足問題解決方式に関する。
【0002】
【従来の技術】
本発明が対象とする制約充足問題、例えば生産計画問題においては、製品毎の生産量やその納期を表わす変数と、実際の生産スケジュールを表わす変数とがあり、特に前者については、問題を解くにあたって外部からの要求として、変数の値自身や、その値のとり得る範囲が与えられる。例えばある製品に対する注文が10個であり、在庫が全くないとすると、その製品の生産量を表わす変数のとり得る範囲は10以上となる。
【0003】
このような生産計画問題では、例えば月毎、あるいは週毎、日毎に異なる生産量の要求に対して問題を解く必要がある。すなわち生産量や納期を表わす変数に対しては、問題を解くたびに異なる値、あるいは値の範囲が外部から要求して与えられることになる。
【0004】
制約充足問題とは、複数の変数と各変数のとり得る値の集合に対応して、2つないしはそれ以上の変数の値の組合わせの中で、許される組合わせと許されない組合わせを表わす制約の集合が与えられた時に、全ての制約を満足するような各変数の値を求める問題である。本発明ではそれに加えて、変数の一部に対してはそのとり得る値の集合に制限があり、その制限を前記の要求として、残りの変数の値を求める問題を対象とする。
【0005】
対象とする問題の全ての要素を、以上のような制約充足問題として理論的に表現できれば、表現された問題を解くことによって実用的な解、例えば生産計画問題では生産スケジュールを求めることができるはずである。
【0006】
しかしながら実際には、必要な全ての要素を論理的に記述することは極めて困難である。例えば機械の生産能力などのような物理的な制約を記述することは比較的容易であるが、例えば人間関係の良さなどの人的な要素や、運用上の習慣などを制約として論理的に記述することは困難である。
【0007】
その結果、実際のアプリケーションにおいては制約充足問題として記述される制約は不十分であったり、不正確であったりする可能性がある。そのため単に与えられた制約を全て満足する解を求めるだけでは、その解が十分によい解であるとは限らない。そこで求められた解に対して様々な評価を行って、最適な解を求めなければならない。
【0008】
このような制約充足問題に類似した問題の解決技術として次の2つの文献がある。
文献1)特開平11−184872号,多属性データ群に対する検索支援システム.
文献2)特開2001−154848号,仲介型問題解決支援システム.
文献1では複数の属性で表現されるデータに対する検索支援システムが開示されており、あらかじめシステム管理者あるいは利用者によって設定された評価関数やルールを用いることによって、解のランキングを行ったり、与えられた条件を満足しない解を選別することができる。
【0009】
文献2では過去の問題解決事例が保存され、新しい要求、すなわち1つ、または複数の変数の値の範囲を制限する要求が入力された時に、過去の類似した要求とそれに対して採用された解が検索され、値が決められていない変数の値としてどの値がどの程度望ましいかが推定され、その推定結果が実際に問題を解くための問題解決器に対する前処理、または後処理で用いられる。
【0010】
すなわち利用者からは値の指定がされていない属性に対しても、その値を高い信頼度で推定できる場合には、推定結果の値を解に対する条件として前処理において追加する。あるいは解候補の評価関数として、その値をとるような解候補を高く評価する関数を生成して、後処理においてその関数に基づいて利用者に提示すべき解を選択する。
【0011】
【発明が解決しようとする課題】
前述の文献1においては、あらかじめ解の候補が全て羅列されていることを前提としており、組合わせる要素が多く、全ての解候補を羅列することが難しいような問題、例えば前述の生産計画問題や、複数商品の組合わせを求めるコンフィグレーション問題などに適用することが困難であるという第1の問題点があった。
【0012】
またシステム管理者、または利用者が様々な評価関数やルールを設定する必要があり、システム管理者の作業を増大させたり、利用者の手間を増やすという第2の問題点があった。特にどのような解が望ましい解であるかについての評価基準が、例えば日々変化するような場合には、システム管理者が適切な評価関数を用意しておくことは極めて困難である。
【0013】
更に解の評価を行う場合の評価関数として、一般には解の各属性、すなわち変数の値の評価値を独立に評価する評価関数が用いられるために、複数の属性、すなわち変数が互いに強い相関を持つようなアプリケーションには向かないという第3の問題点があった。
【0014】
文献2では問題解決器として制約充足システムや組合わせ最適化システムを用いることによって、全ての候補を羅列しなければならないという第1の問題点がある程度解決される。また過去の問題解決事例を用いて解の評価を行うために、システム管理者や利用者が評価関数やルールをあらかじめ設定する必要がなく、第2の問題点も解決される。
【0015】
しかしながら第3の問題点については、評価関数として複数の属性の値の組を識別/評価できる評価関数を生成することは実際には非常に困難であり、例えば実際には制約を満足しないものだけが高く評価されてしまう評価関数が用いられてしまう可能性があった。
【0016】
本発明の課題は、上述の問題点を解決することができる制約充足問題解決装置、および解決方法を提供することである。
【0017】
【課題を解決するための手段】
本発明では過去の問題解決事例を用いることによって前述の第2の問題点を解決する。更にあらかじめ可能な解を用意しておくのではなく、利用者から問題が与えられた後で、あらかじめ定義されている制約や新たに与えられた要求を満足する解を生成/探索して、その処理中に過去の問題解決事例を利用して解候補の評価を行うことによって、第1の問題点、および第3の問題点を解決する。
【0018】
図1は本発明の制約充足問題解決装置の原理構成ブロック図である。同図は、変数の集合と各変数のとり得る値の集合に対応して、許される変数の値の組合わせの集合としての制約を充足する制約充足解を求める制約充足問題解決装置1の原理構成ブロック図である。
【0019】
図1において要求入力手段2は、例えば要求入力部であり、前記制約以外の条件として、変数の値に対する外部からの要求、例えば利用者からの要求を受取るものであり、充足解生成手段3は例えば制約充足解生成部であり、入力された要求と前記制約とを満足する複数の制約充足解を生成するものである。
【0020】
最適解出力手段4は、充足解生成手段3によって生成された解を過去の問題解決事例において採用された解と比較し、同一の解が過去に採用された頻度に基づいて、その解の評価値を求め、最も評価値の高い解を出力するものである。
【0021】
発明の実施の形態においては、制約充足問題解決装置1は、生成された制約充足解と過去の問題解決事例において採用された解との類似度を求める類似度計算手段を更に備え、生成された解が過去の問題解決事例において採用されていない時、最適解出力手段4が類似度計算手段の計算結果に基づいて最適の解を出力することもでき、この場合、生成された解と過去の問題解決事例において採用された解との距離を用いて、類似度計算手段が類似度を求めることもできる。
【0022】
また実施の形態においては、充足解生成手段3が制約充足解を生成する毎に、最適解出力手段4が生成された解に対する評価値を求めると共に、すでに生成された解の評価値に対応して、その評価値より評価値が高い解が生成される可能性がない時、充足解生成手段3による解の生成を中止させる探索範囲制限手段を更に備えることもでき、あるいは充足解生成手段3による解生成の開始からの処理時間があらかじめ定められた時間を経過した時に、充足解生成手段3による解の生成を中止させる問題解決時間管理手段を更に備えることもできる。
【0023】
実施の形態においては、制約充足問題解決装置1が最適解出力手段4によって求められた評価値が高い複数の解を保存する複数解保存手段を更に備え、最適解出力手段4が評価値の最も高い解に加えて、評価値が高い、さらに1つ以上の解を出力することもできる。
【0024】
更に実施の形態においては、最適解出力手段4が前述の同一の解が採用された頻度に加えて、あらかじめ与えられた目的関数を用いて前述の評価値を求めることもできる。
【0025】
本発明の制約充足問題解決方法においては、制約以外の条件として変数の値に対する外部からの要求を受取り、その要求と制約とを満足する複数の制約充足解を生成し、該生成された解を過去の問題解決事例で採用された解と比較し、同一の解が採用された頻度に基づいてその解の評価値を求め、最も評価値の高い解を最適解として出力する方法が用いられる。
【0026】
本発明の記憶媒体においては、制約以外の条件として変数の値に対する外部からの要求を受取るステップと、その要求と制約とを満足する複数の制約充足解を生成するステップと、該生成された解を過去の問題解決事例で採用された解と比較し、同一の解が採用された頻度に基づいてその解の評価値を求めるステップと、最も評価値の高い解を最適解として出力するステップとを計算機に実行させるためのプログラムを格納した計算機読出し可能可搬型記憶媒体が用いられる。
【0027】
本発明のプログラムにおいては、制約以外の条件として変数の値に対する外部からの要求を受取る手順と、その要求と制約とを満足する複数の制約充足解を生成する手順と、該生成された解を過去の問題解決事例で採用された解と比較し、同一の解が採用された頻度に基づいてその解の評価値を求める手順と、最も評価値の高い解を最適解として出力する手順とを計算機に実行させるためのプログラムが用いられる。
【0028】
以上のように本発明によれば、制約に加えて、その度毎に異なった要求が与えられる時に、過去の問題解決事例を用いて制約と要求とを満足する最適な解が出力される。
【0029】
【発明の実施の形態】
図2は本発明の制約充足問題解決装置の最も基本的な構成ブロック図である。本発明の制約充足問題解決装置は当然一般的なコンピュータシステムによって実現されるが、そのようなコンピュータシステムのより一般的な構成については後述するものとし、図2では本発明を実現するための最も基本的な部分について説明する。
【0030】
本発明における制約充足問題解決のためのプログラムは、図2において例えば補助記憶装置10に格納され、必要に応じて主記憶装置11上に展開され、CPU12によって実行される。必要となるデータ、すなわち変数やその可能な値、制約、目的関数など、問題自身に関するデータや、過去の事例データなども補助記憶装置10に格納され、プログラム実行時において必要に応じて参照される。高速な処理が求められる場合には、これらのデータも主記憶装置11上に展開され、そのデータを用いた処理が実行される。
【0031】
問題データや事例データなどが図2と異なる他のコンピュータシステム上にある場合には、必要に応じてネットワークを介してデータの参照を行うことによって、制約充足問題の解が求められる。
【0032】
図3は本発明の制約充足問題解決装置の機能的な構成ブロック図である。同図における各ブロックは、基本的にはプログラムとして図2の補助記憶装置10に格納される。
【0033】
図3において要求入力部20は、制約以外の問題解決に対する条件、すなわち問題を解くたびに与えられる変数の値や、その範囲を示す要求を受取るものであり、その要求は制約充足解生成部21に与えられる。
【0034】
制約充足解生成部21は変数の集合、各変数のとり得る値の集合、および制約を問題管理部22から受取り、要求入力部20から与えられた要求と、制約とを満足する制約充足解を、一般に複数個生成し、生成した制約充足解を解評価部23によって与える。
【0035】
解評価部23は、事例管理部24によって管理されている過去の問題解決事例において採用された解と、生成された制約充足解とを比較して、同じ解が採用された頻度を用いることによって、あるいは類似度計算部25によって過去の問題解決事例において採用された解と生成された制約充足解との類似度を用いて、あるいは目的関数管理部26によって管理されている目的関数の値を更に用いて制約充足解に対する評価値を求め、その評価値を制約充足解生成部21に返す。
【0036】
最適解出力部27は、制約充足解生成部21によって生成された複数の制約充足解のうちで、例えば最も評価値の高い解を最適解として、あるいは複数解保存部28に保存されている評価値の高い複数の解を外部に出力する。
【0037】
探索範囲制限部29は、例えば複数解保存部28から与えられる評価値の下限を用いて、その評価値の下限よりも大きい制約充足解が生成される可能性がなくなった時点で、制約充足解生成部21による解の生成を中止させ、探索範囲の制限を行うものである。
【0038】
また問題解決時間管理部30は、制約充足解生成部21による解の生成の開始からあらかじめ定められた時間が経過した時点で、制約充足解生成部21による解の生成を中止させ、問題解決時間をある一定値以内に収めるものであり、制約充足解生成部21からの探索時間の問い合わせに対応して、探索の継続の可否を制約充足解生成部21に支持する。
【0039】
以下の説明においては、まず変数とそのとり得る値の集合は次のものとする。
X∈{1,2,3},Y∈{1,2,3},
Z∈{1,2,3},W∈{1,2,3}
また制約は次の変数の組合わせ、すなわち許される変数の組合わせとする。なおここでは組合わせ(Y,Z)についての制約が示されておらず、その意味ではこの問題は完全には定義されていないものである。
【0040】
(X,Z)∈{(1,1),(2,2),(3,3)}
(Y,W)∈{(1,2),(1,3),(2,1),(2,3),(3,1),(3,2)}
(Z,W)∈{(1,1),(1,2),(1,3),(2,2),(2,3),(3,3)}
以下の説明においては、制約充足問題を解くにあたり過去の問題解決事例を利用する。図4はそのような過去の問題解決事例を示す。これは上述の4つの変数に対する値の割当ての集合であり、図4に示すような8個の事例が存在するものとする。なおこの過去の問題解決事例とは、制約充足問題解決装置から最適解として出力されたものでも、例えばシステム管理者によって前述のような運用上の習慣や人的な要素を考慮して、不適切と判断されたものを除いたものである。
【0041】
本発明の第1の実施形態として次の要素が、例えば利用者から入力された場合を考える。
X∈{1,2}&Y∈{2,3}
第1の実施形態では、前述の制約と入力された要求とを満足する制約充足解、すなわち4個の変数に対して値が割当てられた解が、図3の制約充足解生成部21によって順次生成され、生成されたそれぞれの制約充足解について解評価部23によって評価値が計算され、最も評価値の高い制約充足解が最適解出力部27によって出力される。
【0042】
図5は第1の実施形態における制約充足問題解決処理のフローチャートである。同図において、新しい要求の入力に対応してステップS1で制約充足解の1つが生成され、ステップS2で制約充足解が生成できたか否かが判定され、生成できた場合にはステップS3で生成された解の評価値が、図4で説明した過去の問題解決事例における解と比較され、例えば図4に示されている過去の解のうちで生成された解と一致する解の個数が求められる。そしてステップS4で、その値、すなわち評価値が現在までに見つけられた最良の解の評価値よりよいか否かが判定され、よい場合にはステップS5で新しい解とその評価値が最良解として記憶された後に、また評価値がよくない場合には直ちに、ステップS1で次の制約充足解が生成され、ステップS2以降の処理が繰返される。そしてステップS2で制約充足解が生成できなくなったと判定された時点で、ステップS6で最良解(最適解)が出力されて処理を終了する。
【0043】
図5のステップS1で制約充足解を生成する方法について説明する。その方法としては様々な方法が可能であるが、本実施形態では深さ優先の木探索を用いるものとする。深さ優先の木探索では、値が決定されていない変数を選択し、その変数の値を決定することを繰返して、全ての変数の値を決定する。制約に違反することなく全ての変数の値が決定された場合には、それを制約充足解として出力し、最後に値が決定された変数の値をまだ調べていない他の値に変更することによって、別の制約充足解を探す処理が行われる。
【0044】
値を決定して行く途中で制約、または要求が満たせない場合、またはある変数の値を全て調べた場合には、直前に値が決定された変数の値をまだ調べていない別の値に変更して処理を続けることによって、全ての制約充足解を求めることができる。
【0045】
木探索の処理においては、値が決定されていない変数が複数個存在する時に、次に値を決める変数をどのように選択するか、また選択された変数の値としてどの値から取っていくかによって、解を求める経過が異なってくる。本実施形態では、とり得る値の数が最も少ない変数を選択し、その値としては小さな値から順次調べていくことにする。
【0046】
図6は第1の実施形態における制約充足解生成部21による木探索処理の動作例である。前述の要求では、XとYとがとり得る値の数がともに2で最も少ないが、図6ではこの2つのうち変数Xを出発ノード、すなわちルートとした場合の深さ優先の木探索の結果として得られる探索木が示されている。
【0047】
前述のように、Xの次に調べられる変数としては、左側の木ではX=1に対応して組合わせ可能なZの値が1のみとなり、Zの値が決定された後に2個の値をとり得るYの値が決定され、最後にWの値が決定されることによって制約充足解が次々と求められる。
【0048】
以上の処理によって、第1の実施形態では制約充足解生成部21によって次の6個の制約充足解が生成される。なお、例えば変数が多い問題など、複雑な問題に対する解の個数は数百、数万、数百万にも達する。また、要求、すなわち変数の値に対する要求が入力されない場合の解の個数はさらに多くなる。
【0049】
解1:(X,Y,Z,W)=(1,2,1,1)
解2:(X,Y,Z,W)=(1,2,1,3)
解3:(X,Y,Z,W)=(1,3,1,1)
解4:(X,Y,Z,W)=(1,3,1,2)
解5:(X,Y,Z,W)=(2,2,2,3)
解6:(X,Y,Z,W)=(2,3,2,2)
これらの制約充足解は、与えられた要求とあらかじめ定義された制約とを共に満足する解という意味では対等のものであるが、第1の実施形態ではそのうち1つだけが最適解として出力される。ここでは6個の解を図4の解、すなわち過去の問題解決事例において採用された解のうちのいくつと一致するかによって評価し、最も評価値の高いものが最適解として出力される。6個の解を図4の解と比較すると解1は2個の事例と一致、解3,解6はそれぞれ1個の事例と一致し、解2、解4、解5と一致する事例は存在しない。よって解1が最適解として出力される。
【0050】
ここで、生成された制約充足解の評価を、過去の問題解決事例において採用された同一の解の数によって行う理由について説明する。
具体的な例としてパソコンの販売方法について考える。一般にパソコンは一組のシステムとして本体,メモリ,ディスプレイ,その他が組合されて販売される。この本体,メモリ,ディスプレイ,・・・が変数X,Y,Z,・・・に相当する。
【0051】
本実施形態では過去の販売実績としてデータベースに格納されている組合わせの中で、たくさん売れている組合わせをユーザの要求を満足するものとして出すことをポリシーとしている。
【0052】
あるユーザにとってたくさん売れているものが必ずしもよい組合わせとは限らず、そういう意味では論理的根拠が充分とは言えないが、たくさんの人が選んでいる組合わせが高い確率でユーザが望むものと考えられ、本実施形態ではそのような推定にもとづいて解の評価を行う。
【0053】
以上の説明では、制約充足解生成の方法として深さ優先の木探索を用いるものとしたが、他の方法、例えば幅優先探索(横方向優先探索)などの他の木探索方法や、制約を満足する変数の値の組合わせを始めに全て列挙しておき、それらの中から要求、すなわちいくつかの変数の値についての条件が入力された時に、条件を満足するものを選択する方法なども可能であり、これらを深さ優先の木探索の代わりに用いてもよい。
【0054】
第1の実施形態においては、制約充足解の評価にあたって解と完全に一致する過去の問題解決事例の数を用いているが、解が多数の変数を用いて表現されていたり、個々の変数がとり得る値の数が多いような場合には、全く同じ解が過去の問題解決事例において採用されていた可能性は少ない。その結果、最適解の評価が困難になる。
【0055】
そこで本発明の第2の実施形態では、過去の問題解決事例において採用された解の中で、評価対象としての制約充足解に完全に一致していなくても、十分類似している解を検索し、評価対象の解とどの程度類似したものがいくつあるかをもとに解の評価を行う。すなわち完全に一致していなくても、非常によく似た解が多数ある解の評価値を高くすることによって、最適解を決定する。
【0056】
図7は第2の実施形態における制約充足問題解決処理のフローチャートである。同図を第1の実施形態に対応する図5と比較すると、ステップS2で制約充足解を生成できた時に、ステップS3の処理に代わって、ステップS10で生成された解とそれぞれの問題解決事例における解との類似度が計算され、類似事例の集合が決定され、ステップS11でその類似事例を用いて生成された解の評価値が計算され、ステップS4以降の処理が実行される点が異なっている。
【0057】
第2の実施形態における具体例として、次の要求が外部から入力されたものとする。
X=1&W∈{2,3}
図8は前述の制約とこの要求とを満足する制約充足解生成処理における探索木を示す。ルートとしての変数Xに対する外部からの要求がX=1のみに限られるため、X=1のみに対する探索が実行され、その結果として次の4個の解が生成される。
【0058】
解1:(X,Y,Z,W)=(1,1,1,2)
解2:(X,Y,Z,W)=(1,1,1,3)
解3:(X,Y,Z,W)=(1,2,1,3)
解4:(X,Y,Z,W)=(1,3,1,2)
なお図8ではこの4個の解は解1、解4、解2、解3の順序で生成され、解の生成順序とその番号とは必ずしも対応していない。
【0059】
図4の問題解決事例において採用された解の中には、この4個の解と一致するものが1つも存在せず、第1の実施形態では最良の解を選ぶことができない。第2の実施形態では制約充足解の評価にあたって、完全に一致する事例ではなく、類似した事例が用いられる。
【0060】
類似した事例を用いた評価においては、制約充足解と事例との距離をどのように定義するか、また類似した事例の集合から全体的にどのように評価値を決定するかについて様々な方法を用いることができる。
【0061】
例えば後者については、距離がある閾値以下の事例の数で評価したり、制約充足解毎に距離の小さい順にある一定個数の事例を選択し、選択された事例との距離の平均値を用いたり、距離dと負の相関を持つような関数、例えば次の関数
1/(d+α)、ここでαは小さな正数
の値の和によって評価することができる。
【0062】
ここでは解と事例との間の距離としては、異なる値をとる変数の数を用い、制約充足解の評価は最も近い事例との間の距離が小さいほど高く、また距離が最も近い事例が複数ある場合には、その距離にある事例の数が多いほど高いものとして処理が行われる。
【0063】
前述の4個の制約充足解について、図4の過去の問題解決事例における解と比較すると、解1と解2は最も近い事例との距離が2であり、解3と解4は最も近い事例との距離は1であるが、解3と距離1の事例は事例1と事例7との2個あるのに対して、解4と距離1の事例は事例2の1個だけであるため、第2の実施形態では解3が最良解として出力される。
【0064】
次に本発明の第3の実施形態について説明する。第3の実施形態においては、制約充足解生成部21によって、例えば深さ優先探索を用いて次々と制約充足解を生成するにあたって、制約充足解が制約されるたびにその解の評価値を計算し、計算された評価値に対応して制約充足解探索範囲の制限が行われる。
【0065】
すなわち、すでにいくつか制約充足解が生成されている場合、それらの中で最もよい解の評価値よりも評価値が低くなるような解が以後生成されたとしても、その解は最終的な結果として出力される可能性は存在しない。そこで第3の実施形態では、それまでに見つかった解の評価値を用いて、制約充足解生成のための探索範囲を制限することによって、全体的な処理速度の向上が行われる。
【0066】
図9は第3の実施形態における制約充足問題解決処理のフローチャートである。同図を第2の実施形態における図7と比較すると、まず要求入力に対応して、ステップS15で評価値の下限Lの値が設定される。ステップS15ではその下限Lの初期値として−∞が設定され、続いてステップS1で制約充足解が生成され、ステップS16で評価値がその下限Lより大きい制約充足解を生成できたか否かが判定される。
【0067】
生成できた場合には図7におけると同様のステップS10,S11の処理が行われ、ステップS5で新しい解とその評価値が最良解として記憶され、ステップS17で最良解の評価値が評価値の下限Lとされた後に、ステップS1以降の処理が繰返される。ステップS16で評価値がLより大きい制約充足解が生成できない、あるいは生成できる可能性がないと判定された場合には、ステップS6で最良解が出力されて処理を終了する。
【0068】
第3の実施形態における処理の例として、第1の実施形態におけると同じ要求が与えられたものとし、また制約充足解の評価は第2の実施形態におけると同様に行われるものとする。そして制約充足解の生成においては、第1実施形態、および第2の実施形態におけると同様に、深さ優先の木探索が行われるものとする。
【0069】
図10は第3の実施形態における探索木を示す。この探索において最初の制約充足解、すなわち
解1:(X,Y,Z,W)=(1,2,1,1)
を発見するまでは、第1、第2の実施形態におけると同様の処理が行われる。
【0070】
解1が発見された時点で、この解の評価を行うために図4の過去の問題解決事例との比較が行われ、距離0の事例が2つあることが分かる。そこで以降の処理においてはこれよりもよい解、すなわち距離0の事例が3個以上ある解を探す必要がある。
【0071】
一般に探索木中の出発ノード(ルート)から最も下のノード(リーフ)に至る間の中間ノードでは、それまでに決定されている変数の値の組との距離がある一定値以下である事例の数は、探索木中のノードを下にたどる、すなわち値が決定されていない変数の値を決定していくにつれて単調に減少する。
【0072】
この例では中間ノードにおいて距離0の事例が3個未満となったら、その下で距離0の事例が3個以上ある制約充足解を見つけられる可能性は存在しない。そこでそのような中間ノードに達した時点で、それ以下のノードの探索は行わず、上に戻って他の制約充足解を見つける処理を続行する。
【0073】
図10において、解1と解2を生成した後にY=3に対する処理が行われるが、この時点でX=1,Y=3,Z=1に対応する事例は事例2の1つのみであり、距離0の事例数が1であることから、それ以下のノードをたどる処理は行われず、出発ノードに戻ってX=2に対する処理が行われる。
【0074】
しかし、入力された要求においてYの値が2、または3でなければならないことから、この中間ノードにおいて距離0の事例は事例4の1つだけとなり、距離0の事例が3個以上ある制約充足解を見つけられる可能性は存在せず、この中間ノードにおいて処理は打ち切られ、図6における木探索の処理に比べて処理時間を短縮することができる。
【0075】
すなわち、図10においては、解1に対してのみ図9のステップS10,S11で類似度の計算と評価値の計算が行われ、解2の生成時を含め、以後の処理ではステップS16で評価値がLより大きい制約充足解を生成できなかったと判定されて処理を終了する。
【0076】
図11は第4の実施形態における制約充足問題解決処理のフローチャートである。第4の実施形態では、第1〜第3の実施形態のように最良解を1つだけ出力するのでなく、評価値の高い複数の解を出力し、そのうちどれを選択するかは利用者またはシステム管理者のような専門家にまかせるものとする。
【0077】
図11を第3の実施形態に対応する図9と比較すると、ステップS11までの処理は同様である。そしてステップS16で評価値がその下限Lより大きい制約充足解が生成できたために、ステップS20で新しく生成された解とその評価値が図3の複数解保存部28に追加され、ステップS21で複数解保存部28に保存されている解の数が要求されている数、すなわち出力すべき数より大きいか否かが判定される。
【0078】
要求されている数より大きくない場合には、ステップS22で複数解保存部28に保存されている解の数が要求されている数と等しいか否かが判定され、等しくない場合にはステップS1以降の処理が繰返される。
【0079】
要求されている数と等しい場合には、ステップS23で解の評価値の下限としてのLの値が、複数解保存部28に保存されている解の評価値の中で最も低い値に設定された後に、ステップS1以降の処理が繰返される。
【0080】
すなわちステップS22で保存されている解の数が要求されている解の数に達していない場合には、評価値がどのような値であっても生成された解を複数解保存部28に保存するだけでよいが、要求されている数に達した場合には、それ以後に生成される解は複数解保存部28に保存されている解の中で評価値の最も低い値よりも評価値が大きくなければならないために、ステップS15で設定された評価値の下限が再設定されて、ステップS1以降の処理が行われることになる。
【0081】
ステップS21で複数解保存部28に保存されている解の数が要求されている数より大きいと判断された場合には、ステップS20で新しい解の追加を行うことによって解の数が過剰になったことになるので、ステップS24で複数解保存部28に保存されている解の中で最も評価値が低い解とその評価値が削除され、ステップS23で解の評価値の下限Lが再設定された後にステップS1以降の処理が繰返され、ステップS16で評価値がLより大きい制約充足解を生成できなくなった時点で、ステップS25で複数解保存部28に保存されている解が出力されて処理を終了する。
【0082】
このように第4の実施形態では評価値の高い解が1つだけでなく複数個出力され、最終的な解の選択は人間の専門家にまかせられる。これは、例えば第1の実施形態においては評価値が2番目、あるいはそれ以下の解の方が最良解よりもよいと専門家によって判断される可能性があるからである。特に過去の問題解決事例における解が十分に集められていないような場合には、そのような状況がおこる可能性が高い。例えば第2の実施形態の問題に対して、出力すべき解の数が2個と指定された場合には、評価値の高い順に2つの制約充足解、すなわち解3と解4とが出力されることになる。
【0083】
なお図11では複数解保存部28に追加される新しい解の評価においても、第2,第3の実施形態と同様に類似度を用いて解の評価値が求められるものとしたが、第1の実施形態におけると同様に生成された解と完全に一致する事例の数を用いて評価することも当然可能である。
【0084】
次に第5の実施形態について説明する。第1〜第4の実施形態では、過去の問題解決事例において採用された解を用いて生成された制約充足解の評価が行われる。しかしながら実際の問題、例えば生産スケジューリング問題では在庫はできれば少なくおさえたいとか、コストは低いほうがよいなど、明白な目的関数が与えられる場合が多い。この目的関数と制約とが完全であれば、制約充足解の中で目的関数の値が最もよいものを求めればよいことになる。
【0085】
しかし、前述のように必要な全ての要素を制約として記述することが困難であるのと同様に、完全な目的関数を記述することもまた困難である。そこで生成された制約充足解を評価するために、目的関数だけでなく、過去の問題解決事例も用いることが有効である。第5の実施形態では、例えば第1の実施形態で述べた距離0の事例数による解の評価と、目的関数による評価とを組合わせて最終的な評価関数を生成し、制約充足解の評価を行うものとする。
【0086】
図12は第5の実施形態における制約充足問題解決処理のフローチャートである。図11の第4の実施形態に対するフローチャートと比較すると、図11のステップS11で解の評価値が類似事例のみを使って計算されるのに対して、図12ではステップS26で解の評価値が類似事例と目的関数の両方を使って計算される点だけが異なっている。
【0087】
類似事例と目的関数とを組合わせた評価関数としては、目的関数による評価値と事例による評価値との線形和をとるものとするが、より複雑な非線形関数、例えば距離0の事例数が多ければ事例数のみを使い、その事例数が少なければある目的関数を使うというようにすることも可能である。
【0088】
ここでは例として第1の実施形態におけると同じ要求が入力されたものとする。目的関数はY+Wの最大化とし、事例を用いた評価関数は距離0の事例の数であるとする。また目的関数と事例による評価関数とを組合わせた制約充足解に対する評価関数は、目的関数の値と距離0の事例の数との線形和とし、その係数は目的関数の値に対して100、距離0の事例の数に対して1とする。すなわち基本的には外部から与えられた目的関数が重視されるが、その値がほとんど同じ場合には、距離0の事例の数の多い解が最良解として選択される。
【0089】
図13は第1の実施形態におけると同じ6個の解のそれぞれに対する評価関数の値を示す。その結果から要求されている解の数が1個の場合には解6が出力されることになる。
【0090】
図14は第6の実施形態における制約充足問題解決処理のフローチャートである。第1〜第5の実施形態では、基本的には生成される可能性のある解の全ての評価値を調べ、最適な解を1つ、または複数個の解を出力する。しかし多くの制約充足問題では、1つの解を求めるだけでも常に問題のサイズ(変数の数)の多項式時間で解けることが補償されないものと考えられる。そのため変数の数が多い場合には、第1〜第5の実施形態では処理に時間がかかる。
【0091】
また制約充足問題が適用されるアプリケーションにおいては、時間をかけてもできるだけよい解がほしい場合もあるが、逆に解の質はほどほどでも、できるだけ短時間で解がほしい場合もある。
【0092】
そこで第6の実施形態では、図3で説明した問題解決時間管理部30による管理によって、あらかじめ設定された、あるいはユーザから要求された時間が経過した時点でそれ以上の処理を中止し、その段階で見つかっている解の中で最良の解、または複数解保存部28に保存されている複数個の解を出力する処理が実行される。
【0093】
図14を第5の実施形態に対応する図12と比較すると、ステップS15とステップS1の間のステップS28で処理時間が与えられた問題解決時間を超過したか否かが判定され、まだ超過していない場合にはステップS1において次の制約充足解を生成する処理以降が繰返されるが、超過した場合にはステップS25で複数解保存部28に保存されている解が出力されて、処理を終了する点だけが異なっている。
【0094】
図15は第6の実施形態において評価値の下限Lの値を使用しない場合の制約充足問題解決処理のフローチャートである。同図において、例えば利用者から入力された要求に対応してステップS28で処理時間が与えられた問題解決時間を超過したか否かが判定され、超過してない場合には第1の実施形態に対応するステップS1,S2の処理が行われ、制約充足解を生成できた場合には図12におけると同様にステップS26で生成された解の評価値が計算され、ステップS22で複数解保存部に保存されている解の数が要求されている解の数と等しいか否かが判定される。
【0095】
要求されている解の数と等しくない場合には、複数解保存部28に保存されている解の数が要求されている解の数に達していないことになるため、ステップS20で新しい解とその評価値が複数解保存部28に保存された後に、ステップS28以降の処理が繰返される。
【0096】
ステップS22で要求されている数と等しいと判定されると、ステップS30で新しく生成された解の評価値が複数解保存部28に保存されている解の中で最も悪い解の評価よりもよいか否かが判定され、よい場合にはステップS31でその評価値が最悪の解が複数解保存部28から削除され、新しい解と評価値とが保存された後に、また最悪な評価値よりもよくない場合にはステップS31の処理を行うことなく、ステップS28以降の処理が繰返される点が異なっている。
【0097】
以上において本発明の制約充足問題解決装置、および解決方法についてその詳細を説明したが、この制約充足問題解決装置は前述のように一般的なコンピュータシステムとして構成することが可能であり、そのようなシステムの基本的な部分は図2においてすでに説明したが、図16はそのようなコンピュータシステム、すなわちハードウェア環境のより一般的な構成ブロック図を示す。
【0098】
図16においてコンピュータシステムは中央処理装置(CPU)50、リードオンリメモリ(ROM)51、ランダムアクセスメモリ(RAM)52、通信インタフェース53、記憶装置54、入出力装置55、および可搬型記憶媒体の読取り装置56、およびこれらの全てが接続されたバス57によって構成されている。
【0099】
記憶装置54としては、ハードディスク、磁気ディスクなど様々な形式の記憶装置を使用することができ、このような記憶装置54、またはROM51に図5、図7、図9、図11、図12、図14および図15などのフローチャートに示されたプログラムや、本発明の特許請求の範囲の請求項10のプログラムなどが格納され、そのようなプログラムがCPU50によって実行されることにより、本実施形態における制約充足問題解決が可能となる。
【0100】
このようなプログラムは、プログラム提供者58側からネットワーク59、および通信インタフェース53を介して、例えば記憶装置54に格納されることも、また市販され、流通している可搬型記憶媒体60に格納され、読取り装置56にセットされて、CPU50によって実行されることも可能である。可搬型記憶媒体60としてはCD−ROM、フレキシブルディスク、光ディスク、光磁気ディスクなど様々な形式の記憶媒体を使用することができ、このような記憶媒体に格納されたプログラムが読取り装置56によって読取られることにより、本実施形態における制約充足問題解決が可能となる。
【0101】
【発明の効果】
以上詳細に説明したように本発明によれば、制約充足問題の解決のために過去の問題解決事例において採用された解、あるいはそのような解と目的関数とを組合わせた評価関数を用いることによって、いくつかの変数の組合わせに対する制限としての制約の必ずしも全てが与えられていない場合、すなわち問題が完全に定義されていない場合でも、どのような解が望ましいがを判定してよりよい解を求めることが可能となり、制約充足問題の解決効率化に寄与するところが大きい。
【図面の簡単な説明】
【図1】本発明の制約充足問題解決装置の原理構成ブロック図である。
【図2】制約充足問題解決装置としてのコンピュータの基本構成を示す図である。
【図3】制約充足問題解決装置の機能的な構成を示すブロック図である。
【図4】事例管理部に保存されている過去の問題解決事例の例である。
【図5】第1の実施形態における処理のフローチャートである。
【図6】第1の実施形態における探索木の例である。
【図7】第2の実施形態における処理のフローチャートである。
【図8】第2の実施形態における探索木の例である。
【図9】第3の実施形態における処理のフローチャートである。
【図10】第3の実施形態における探索木の例である。
【図11】第4の実施形態における処理のフローチャートである。
【図12】第5の実施形態における処理のフローチャートである。
【図13】第5の実施形態における制約充足解に対する評価値を示す図である。
【図14】第6の実施形態における処理のフローチャートである。
【図15】第6の実施形態において評価値の下限を用いない処理のフローチャートである。
【図16】本発明を実現するためのコンピュータシステムのより一般的な構成を示す図である。
【符号の説明】
1 制約充足問題解決装置
2 要求入力手段
3 充足解生成手段
4 最適解出力手段
10 補助記憶装置
11 主記憶装置
12 中央処理装置(CPU)
20 要求入力部
21 制約充足解生成部
22 問題管理部
23 解評価部
24 事例管理部
25 類似度計算部
26 目的関数管理部
27 最適解出力部
28 複数解保存部
29 探索範囲制限部
30 問題解決時間管理部

Claims (9)

  1. 変数の集合と各変数のとり得る値の集合に対応して、変数の許される値の組合わせの集合としての制約を充足する制約充足解を求める制約充足問題解決装置において、
    前記制約以外の条件として、変数の値に対する外部からの要求を受取る要求入力手段と、
    該入力された要求と前記制約とを満足する複数の制約充足解を生成する充足解生成手段と、
    該生成された解と過去の問題解決事例において採用された解との類似度を求める類似度計算手段と、
    該生成された解を過去の問題解決事例において採用された解と比較し、同一の解が採用された頻度に基づいて該解の評価値を求め最も評価値の高い解を出力し、該生成された解が過去の問題解決事例において採用されていない時は、前記類似度計算手段による計算結果に基づいて最適の解を出力する最適解出力手段とを備えることを特徴とする制約充足問題解決装置。
  2. 前記類似度計算手段が、前記生成された制約充足解と過去の問題解決事例において採用された解との間の距離によって前記類似度を求めることを特徴とする請求項記載の制約充足問題解決装置。
  3. 前記充足解生成手段が前記制約充足解を生成する毎に、前記最適解出力手段が生成された解に対する前記評価値を求めると共に、
    すでに生成された解の評価値に対応して、該評価値より評価値が高い解が生成される可能性がない時、前記充足解生成手段による解の生成を中止させる探索範囲制限手段を更に備えることを特徴とする請求項1記載の制約充足問題解決装置。
  4. 前記制約充足問題解決装置が、前記最適解決出力手段によって求められた評価値が高い複数の解を保存する複数解保存手段を更に備え、
    前記最適解出力手段が、前記評価値の最も高い解に加えて、評価値が高い、更に1つ以上の解を出力することを特徴とする請求項1記載の制約充足問題解決装置。
  5. 前記最適解出力手段が、前記同一の解が採用された頻度に加えて、あらかじめ与えられた目的関数を用いて前記評価値を求めることを特徴とする請求項1記載の制約充足問題解決装置。
  6. 前記充足解生成手段が前記制約充足解を生成する毎に、前記最適解出力手段が生成された解に対する前記評価値を求めると共に、
    該充足解生成手段による解の生成開始からの処理時間があらかじめ定められた時間を経過した時、該充足解生成手段による解の生成を中止させる問題解決時間管理手段を更に備えることを特徴とする請求項1記載の制約充足問題解決装置。
  7. 変数の集合と各変数のとり得る値の集合に対応して、変数の値の許される組合わせの集合としての制約を充足する制約充足解を求める制約充足問題解決方法において、
    前記制約以外の条件として、外部から与えられる変数の値に対する要求を受取り、
    該要求と前記制約とを満足する複数の制約充足解を生成し、
    該生成された解を過去の問題解決事例において採用された解と比較し、同一の解が採用された頻度に基づいて該解の評価値を求め、該生成された解が過去の問題解決事例において採用されていない時は、該生成された解と過去の問題解決事例において採用された解との類似度を求め、
    最も評価値の高い解または前記類似度に基づく最適の解を出力する処理をコンピュータが実行する制約充足問題解決方法。
  8. 変数の集合と各変数のとり得る値の集合に対応して、変数の値の許される組合わせの集合としての制約を充足する制約充足解を求めるための計算機によって使用される記憶媒体において、
    前記制約以外の条件として、外部から与えられる変数の値に対する要求を受取るステップと、
    該要求と前記制約とを満足する複数の制約充足解を生成するステップと、
    該生成された解を過去の問題解決事例において採用された解と比較し、同一の解が採用された頻度に基づいて該解の評価値を求め、該生成された解が過去の問題解決事例において採用されていない時は、該生成された解と過去の問題解決事例において採用された解との類似度を求めるステップと、
    最も評価値の高い解または前記類似度に基づく最適の解を出力するステップとを計算機に実行させるためのプログラムを格納した計算機読出し可能可搬型記憶媒体。
  9. 変数の集合と各変数のとり得る値の集合に対応して、変数の値の許される組合わせの集合としての制約を充足する制約充足解を求めるための計算機によって使用されるプログラムにおいて、
    前記制約以外の条件として、外部から与えられる変数の値に対する要求を受取る手順と、
    該要求と前記制約とを満足する複数の制約充足解を生成する手順と、
    該生成された解を過去の問題解決事例において採用された解と比較し、同一の解が採用された頻度に基づいて該解の評価値を求め、該生成された解が過去の問題解決事例において採用されていない時は、該生成された解と過去の問題解決事例において採用された解との類似度を求める手順と、
    最も評価値の高い解または前記類似度に基づく最適の解を出力する手順とを計算機に実行させるためのプログラム。
JP2001286278A 2001-09-20 2001-09-20 制約充足問題解決装置および解決方法 Expired - Lifetime JP4829441B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001286278A JP4829441B2 (ja) 2001-09-20 2001-09-20 制約充足問題解決装置および解決方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001286278A JP4829441B2 (ja) 2001-09-20 2001-09-20 制約充足問題解決装置および解決方法

Publications (2)

Publication Number Publication Date
JP2003099259A JP2003099259A (ja) 2003-04-04
JP4829441B2 true JP4829441B2 (ja) 2011-12-07

Family

ID=19109293

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001286278A Expired - Lifetime JP4829441B2 (ja) 2001-09-20 2001-09-20 制約充足問題解決装置および解決方法

Country Status (1)

Country Link
JP (1) JP4829441B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5013506B2 (ja) * 2006-06-08 2012-08-29 日本電信電話株式会社 アプリケーションプログラムの実行方法、その装置及びプログラム
JP6971297B2 (ja) * 2019-12-25 2021-11-24 西日本電信電話株式会社 意思決定支援装置、意思決定支援プログラム及び意思決定支援方法

Also Published As

Publication number Publication date
JP2003099259A (ja) 2003-04-04

Similar Documents

Publication Publication Date Title
US11665072B2 (en) Parallel computational framework and application server for determining path connectivity
Sun et al. A framework of cloud service selection with criteria interactions
Chen et al. Discovering recency, frequency, and monetary (RFM) sequential patterns from customers’ purchasing data
US8447644B2 (en) Supply chain demand satisfaction
US7082426B2 (en) Content aggregation method and apparatus for an on-line product catalog
Hussain et al. Integrated AHP-IOWA, POWA framework for ideal cloud provider selection and optimum resource management
US20090187555A1 (en) Feature selection for ranking
Wang et al. Effective bigdata-space service selection over trust and heterogeneous QoS preferences
Farshidi et al. A decision support system for cloud service provider selection problem in software producing organizations
Atakan et al. Minimizing value-at-risk in single-machine scheduling
JP5460426B2 (ja) 生産性評価装置、生産性評価方法およびプログラム
JP3845553B2 (ja) データベースにおけるドキュメントのリトリーブ・ランク付けを実行するコンピュータ・システム、およびプログラム
Huang UsageQoS: Estimating the QoS of web services through online user communities
CN112580817A (zh) 管理机器学习特征
US7769749B2 (en) Web page categorization using graph-based term selection
US9594756B2 (en) Automated ranking of contributors to a knowledge base
JP4829441B2 (ja) 制約充足問題解決装置および解決方法
US20110167014A1 (en) Method and apparatus of adaptive categorization technique and solution for services selection based on pattern recognition
Maddulapalli et al. Sensitivity analysis for product design selection with an implicit value function
CN113743615A (zh) 简化机器学习的特征移除框架
CN113707282A (zh) 一种候选医生排序方法、装置、可读存储介质及电子设备
JPWO2011016281A1 (ja) ベイジアンネットワーク構造学習のための情報処理装置及びプログラム
Fletcher et al. Aggregating ranked services for selection
CN113420096B (zh) 指标体系的构建方法、装置、设备及存储介质
Benouaret et al. Selecting services for multiple users: Let’s be democratic

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110614

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110810

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110913

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110916

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140922

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4829441

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

EXPY Cancellation because of completion of term