JPH10275084A - 制約充足問題の解決装置及び解決方法、システム構築装置及び構築方法 - Google Patents
制約充足問題の解決装置及び解決方法、システム構築装置及び構築方法Info
- Publication number
- JPH10275084A JPH10275084A JP8113697A JP8113697A JPH10275084A JP H10275084 A JPH10275084 A JP H10275084A JP 8113697 A JP8113697 A JP 8113697A JP 8113697 A JP8113697 A JP 8113697A JP H10275084 A JPH10275084 A JP H10275084A
- Authority
- JP
- Japan
- Prior art keywords
- alternatives
- solution
- alternative
- parts
- reachable
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【課題】 大規模な制約充足問題を高速に処理する。
【解決手段】 代替案集合生成部1が、与えられた問題
を、各部分が最大2個の代替案を含む部分集合に分解す
る。解計算部2が、分解された部分集合ごとに、部分の
代替案間の制約を満足する代替案の組み合わせを解とし
て計算する。各部分が最大2個の代替案を持つ部分集合
に関する解の計算は、部分が多数でもきわめて短時間で
行うことができる。このため、分解された各部分集合ご
との計算所要時間をすべて合計しても、もとの問題のま
ま解を計算する所要時間よりも大幅に短縮される。
を、各部分が最大2個の代替案を含む部分集合に分解す
る。解計算部2が、分解された部分集合ごとに、部分の
代替案間の制約を満足する代替案の組み合わせを解とし
て計算する。各部分が最大2個の代替案を持つ部分集合
に関する解の計算は、部分が多数でもきわめて短時間で
行うことができる。このため、分解された各部分集合ご
との計算所要時間をすべて合計しても、もとの問題のま
ま解を計算する所要時間よりも大幅に短縮される。
Description
【0001】
【発明の属する技術分野】本発明は、いわゆる制約充足
問題の解を計算する技術の改良に関するもので、大規模
な問題についても、高速に解を計算するようにしたもの
である。
問題の解を計算する技術の改良に関するもので、大規模
な問題についても、高速に解を計算するようにしたもの
である。
【0002】
【従来の技術】複数の部分から構成される問題として、
制約充足問題が知られている。制約充足問題は、複数の
部分がそれぞれいくつかの選択肢(代替案と呼ぶ)をと
ることができ、異なった部分の代替案間に、許される組
み合わせや許されない組み合わせのような制約が存在す
る問題である。制約充足問題の解は、全ての制約を満足
するように、全ての部分に代替案をあてはめたものであ
る。
制約充足問題が知られている。制約充足問題は、複数の
部分がそれぞれいくつかの選択肢(代替案と呼ぶ)をと
ることができ、異なった部分の代替案間に、許される組
み合わせや許されない組み合わせのような制約が存在す
る問題である。制約充足問題の解は、全ての制約を満足
するように、全ての部分に代替案をあてはめたものであ
る。
【0003】ここで、制約充足問題の例を示す。例え
ば、4つの部分A,B,C,Dからなる機械Xについ
て、個々の部分ごとに、実現する方式(実現方式)が3
個ずつ存在するとする。すなわち、部分Aに対して実現
方式a1,a2及びa3(以下「{a1,a2,a
3}」のように表す)、部分Bに対して{b1,b2,
b3}、部分Cに対して{c1,c2,c3}、部分D
に対して{d1,d2,d3}が存在するとする。な
お、部分毎に存在する個々の選択肢(例えば実現方式a
1)を代替案と呼ぶ。
ば、4つの部分A,B,C,Dからなる機械Xについ
て、個々の部分ごとに、実現する方式(実現方式)が3
個ずつ存在するとする。すなわち、部分Aに対して実現
方式a1,a2及びa3(以下「{a1,a2,a
3}」のように表す)、部分Bに対して{b1,b2,
b3}、部分Cに対して{c1,c2,c3}、部分D
に対して{d1,d2,d3}が存在するとする。な
お、部分毎に存在する個々の選択肢(例えば実現方式a
1)を代替案と呼ぶ。
【0004】また、部分AとB、AとC、AとD、また
BとC、BとD、CとDのそれぞれの間に存在する制約
として、実現方式の番号が同じであってはならないとす
る。例えば、Aの実現方式がaj(j=1,2,3)で
あれば、部分B,C,Dの実現方式はそれぞれbk,c
k,dk(k≠j)でなければならない。同様に、Bの
実現方式がbj(j=1,2,3)ならば、部分C,D
の実現方式はそれぞれck,dk(k≠j)でなければ
ならず、Cの実現方式がcj(j=1,2,3)なら、
部分Dの実現方式はdk(k≠j)でなければならな
い。
BとC、BとD、CとDのそれぞれの間に存在する制約
として、実現方式の番号が同じであってはならないとす
る。例えば、Aの実現方式がaj(j=1,2,3)で
あれば、部分B,C,Dの実現方式はそれぞれbk,c
k,dk(k≠j)でなければならない。同様に、Bの
実現方式がbj(j=1,2,3)ならば、部分C,D
の実現方式はそれぞれck,dk(k≠j)でなければ
ならず、Cの実現方式がcj(j=1,2,3)なら、
部分Dの実現方式はdk(k≠j)でなければならな
い。
【0005】上記のような場合に、組み合わせに関する
全ての条件(組み合わせ条件)が満たされるように、各
部分A,B,C,Dの実現方式を決定して機械Xを設計
することを考える。この問題の例では、全ての組み合わ
せ条件を満足する実現方式の組み合わせ、すなわち解は
存在しないので、機械Xを設計することはできないとい
う解となる。しかし、この判断を下すまでには、 {a1,b1,c1,d1} {a1,b1,c1,d2} {a1,b1,c1,d3} {a1,b1,c2,d1} {a1,b1,c2,d2} というように、各部分の実現方式の組み合わせの全てに
ついて、組み合わせ条件を満たすかどうか確認する必要
がある。そして、この例のように部分の数がわずか4個
程度の場合でも、設計者がこれを即座に判断するのは困
難である。問題を構成する部分の数が多くなると、この
決定はさらに困難になる。例えば、各々が4個ずつの実
現方式を選択しうる部分が30個も存在する場合は、確
認しなければならない代替案の組み合わせは、順列組み
合わせにしたがって膨大な数となる。このため、前記の
ような決定を組織的に行うことは事実上不可能である。
したがって、制約充足問題の解を得るための決定は、従
来では、経験則に基づいた多くの試行錯誤を経て行われ
ていた。
全ての条件(組み合わせ条件)が満たされるように、各
部分A,B,C,Dの実現方式を決定して機械Xを設計
することを考える。この問題の例では、全ての組み合わ
せ条件を満足する実現方式の組み合わせ、すなわち解は
存在しないので、機械Xを設計することはできないとい
う解となる。しかし、この判断を下すまでには、 {a1,b1,c1,d1} {a1,b1,c1,d2} {a1,b1,c1,d3} {a1,b1,c2,d1} {a1,b1,c2,d2} というように、各部分の実現方式の組み合わせの全てに
ついて、組み合わせ条件を満たすかどうか確認する必要
がある。そして、この例のように部分の数がわずか4個
程度の場合でも、設計者がこれを即座に判断するのは困
難である。問題を構成する部分の数が多くなると、この
決定はさらに困難になる。例えば、各々が4個ずつの実
現方式を選択しうる部分が30個も存在する場合は、確
認しなければならない代替案の組み合わせは、順列組み
合わせにしたがって膨大な数となる。このため、前記の
ような決定を組織的に行うことは事実上不可能である。
したがって、制約充足問題の解を得るための決定は、従
来では、経験則に基づいた多くの試行錯誤を経て行われ
ていた。
【0006】制約充足問題が発生する分野は、上記のよ
うに部分ごとにどのような要素を用いて機械を作るか決
めるような場合には限られない。例えば、ソフトウェア
の個々の部分にどのようなパラメータを設定するか、あ
る領域に複数の物をどのように配置するか、など多くの
場合にこのような制約充足問題に遭遇する。このため、
制約充足問題は、エキスパートシステムなどの実現にお
いて非常に重要な位置を占めるものである。
うに部分ごとにどのような要素を用いて機械を作るか決
めるような場合には限られない。例えば、ソフトウェア
の個々の部分にどのようなパラメータを設定するか、あ
る領域に複数の物をどのように配置するか、など多くの
場合にこのような制約充足問題に遭遇する。このため、
制約充足問題は、エキスパートシステムなどの実現にお
いて非常に重要な位置を占めるものである。
【0007】制約充足問題は、一般的には次のように定
式化できる。すなわち、制約充足問題とは、複数の部分
から成り、各部分の実現又は各部分の機能の実行に関係
する手段として有限個の代替案を持ち、それらの部分の
対から成る集合に属する個々の対を構成する2つの部分
間の代替案の組み合わせに制約が存在するシステム(問
題)において、個々の部分にそれらの制約を満足するよ
うに代替案を設定する問題である。
式化できる。すなわち、制約充足問題とは、複数の部分
から成り、各部分の実現又は各部分の機能の実行に関係
する手段として有限個の代替案を持ち、それらの部分の
対から成る集合に属する個々の対を構成する2つの部分
間の代替案の組み合わせに制約が存在するシステム(問
題)において、個々の部分にそれらの制約を満足するよ
うに代替案を設定する問題である。
【0008】
【発明が解決しようとする課題】しかし、制約充足問題
は、特殊な場合を除くとNP完全な問題である。ここ
で、NP完全な問題は、xのy乗を「x^y」と表すこ
ととすると、問題の解を計算するのに必要な計算量を、
次のように表すことができるものである。すなわち、部
分の数をN、各部分に許された代替案の個数の最大をd
個とすると、各部分に互いに矛盾の無い代替案を設定す
るには、最悪の場合、d^Nオーダーの計算が必要であ
る。例えば、部分の数N=100、代替案の最大個数d
=2とすると2^100オーダーの計算が必要になり、
実用的な時間内では到底計算することができない。
は、特殊な場合を除くとNP完全な問題である。ここ
で、NP完全な問題は、xのy乗を「x^y」と表すこ
ととすると、問題の解を計算するのに必要な計算量を、
次のように表すことができるものである。すなわち、部
分の数をN、各部分に許された代替案の個数の最大をd
個とすると、各部分に互いに矛盾の無い代替案を設定す
るには、最悪の場合、d^Nオーダーの計算が必要であ
る。例えば、部分の数N=100、代替案の最大個数d
=2とすると2^100オーダーの計算が必要になり、
実用的な時間内では到底計算することができない。
【0009】制約充足問題の解法としては、Adapt
ive ConsistencyAlgorithmな
ど、制約関係が影響を及ぼす範囲を居所化して計算量を
削減する手法も存在するが(参考文献:Rina De
chter,JudeaPearl:“Network
−Based Heuristics forCons
traint−Satisfaction Probl
ems,”Artificial Intellige
nce 34(1988))、この手法では、計算の実
行中に、本来存在しない制約関係が追加されるので、多
くの場合にはほぼd^Nオーダーの計算が必要になる。
ive ConsistencyAlgorithmな
ど、制約関係が影響を及ぼす範囲を居所化して計算量を
削減する手法も存在するが(参考文献:Rina De
chter,JudeaPearl:“Network
−Based Heuristics forCons
traint−Satisfaction Probl
ems,”Artificial Intellige
nce 34(1988))、この手法では、計算の実
行中に、本来存在しない制約関係が追加されるので、多
くの場合にはほぼd^Nオーダーの計算が必要になる。
【0010】また、多項式オーダー計算量の手法とし
て、部分間の制約関係を表わす制約グラフが木構造やあ
るいは木構造の拡張であるk−木構造を持つ場合に有効
なものが開発されているが(参考文献:Eugene
Freuder:“Complexity of K−
Tree Structured Constrain
t Satisfaction Problem
s,”)、この手法が前提とする仮定が実際の応用で満
たされるのは希であった。
て、部分間の制約関係を表わす制約グラフが木構造やあ
るいは木構造の拡張であるk−木構造を持つ場合に有効
なものが開発されているが(参考文献:Eugene
Freuder:“Complexity of K−
Tree Structured Constrain
t Satisfaction Problem
s,”)、この手法が前提とする仮定が実際の応用で満
たされるのは希であった。
【0011】したがって、制約充足問題がエキスパート
システムなどの実現において非常に重要な位置を占める
にもかかわらず、従来では、部分間の制約関係を表わす
グラフが木構造を持つなど特殊な場合を除けば、非常に
小規模な問題しか扱うことはできなかった。
システムなどの実現において非常に重要な位置を占める
にもかかわらず、従来では、部分間の制約関係を表わす
グラフが木構造を持つなど特殊な場合を除けば、非常に
小規模な問題しか扱うことはできなかった。
【0012】本発明は、上記のような従来技術の問題点
を解決するために提案されたもので、その第1の目的
は、大規模な制約充足問題を高速に解決することのでき
る装置並びに方法を提供することにある。また、本発明
の他の目的は、複数の代替案を有する複数の部分から構
成され、且つ各部分の代替案間に制約が存在する機械や
コンピュータプログラムなどのシステムを、その制約を
満足するように、従来技術に比較して容易に構築するこ
とができる装置及び方法を提供することにある。
を解決するために提案されたもので、その第1の目的
は、大規模な制約充足問題を高速に解決することのでき
る装置並びに方法を提供することにある。また、本発明
の他の目的は、複数の代替案を有する複数の部分から構
成され、且つ各部分の代替案間に制約が存在する機械や
コンピュータプログラムなどのシステムを、その制約を
満足するように、従来技術に比較して容易に構築するこ
とができる装置及び方法を提供することにある。
【0013】
【課題を解決するための手段】上記の目的を達成するた
め、請求項1の発明は、それぞれ複数の代替案を持つ部
分を複数有し、部分の代替案間に組み合わせに制約が存
在する問題の解を計算する制約充足問題の解決装置にお
いて、与えられた問題を、各部分が最大2個の代替案を
含む部分集合に分解する手段と、分解された部分集合ご
とに、部分の代替案間の制約を満足する代替案の組み合
わせを分析する手段と、を有することを特徴とする。請
求項4の発明は、請求項1の発明を方法の観点から把握
したものであって、それぞれ複数の代替案を持つ部分を
複数有し、部分の代替案間に組み合わせに制約が存在す
る問題の解を計算する制約充足問題の解決方法におい
て、与えられた問題を、各部分が最大2個の代替案を含
む部分集合に分解するステップと、分解された部分集合
ごとに、部分の代替案間の制約を満足する代替案の組み
合わせを分析するステップと、を含むことを特徴とす
る。請求項1,4の発明では、与えられた問題が、各部
分が最大2個の代替案を含む部分集合に分解される。各
部分が最大2個の代替案を持つ部分集合に関する解の計
算は、部分が多数でもきわめて短時間で行うことができ
る。このため、分解された各部分集合ごとの計算所要時
間をすべて合計しても、もとの問題のまま解を計算する
所要時間よりも大幅に短縮される。このため、大規模な
制約充足問題も高速に解決することができる。
め、請求項1の発明は、それぞれ複数の代替案を持つ部
分を複数有し、部分の代替案間に組み合わせに制約が存
在する問題の解を計算する制約充足問題の解決装置にお
いて、与えられた問題を、各部分が最大2個の代替案を
含む部分集合に分解する手段と、分解された部分集合ご
とに、部分の代替案間の制約を満足する代替案の組み合
わせを分析する手段と、を有することを特徴とする。請
求項4の発明は、請求項1の発明を方法の観点から把握
したものであって、それぞれ複数の代替案を持つ部分を
複数有し、部分の代替案間に組み合わせに制約が存在す
る問題の解を計算する制約充足問題の解決方法におい
て、与えられた問題を、各部分が最大2個の代替案を含
む部分集合に分解するステップと、分解された部分集合
ごとに、部分の代替案間の制約を満足する代替案の組み
合わせを分析するステップと、を含むことを特徴とす
る。請求項1,4の発明では、与えられた問題が、各部
分が最大2個の代替案を含む部分集合に分解される。各
部分が最大2個の代替案を持つ部分集合に関する解の計
算は、部分が多数でもきわめて短時間で行うことができ
る。このため、分解された各部分集合ごとの計算所要時
間をすべて合計しても、もとの問題のまま解を計算する
所要時間よりも大幅に短縮される。このため、大規模な
制約充足問題も高速に解決することができる。
【0014】請求項2の発明は、請求項1記載の制約充
足問題の解決装置において、前記解を計算する手段は、
部分集合から、前記制約に合致する代替案の組み合わせ
を表す可到達値集合を計算する手段と、計算された可到
達値集合を完全化する手段と、完全化された可到達値集
合から解を計算する手段と、を有することを特徴とす
る。請求項2の発明では、問題を構成する部分が多数で
あっても、可到達値集合を完全化する手順によって、部
分集合からきわめて短時間に解を計算することができる
ので、問題全体の解を計算する所要時間が大幅に短縮さ
れる。
足問題の解決装置において、前記解を計算する手段は、
部分集合から、前記制約に合致する代替案の組み合わせ
を表す可到達値集合を計算する手段と、計算された可到
達値集合を完全化する手段と、完全化された可到達値集
合から解を計算する手段と、を有することを特徴とす
る。請求項2の発明では、問題を構成する部分が多数で
あっても、可到達値集合を完全化する手順によって、部
分集合からきわめて短時間に解を計算することができる
ので、問題全体の解を計算する所要時間が大幅に短縮さ
れる。
【0015】請求項3の発明は、請求項1又は2記載の
制約充足問題の解決装置において、前記分解する手段又
は前記計算する手段のうち少なくとも一方を複数設けた
ことを特徴とする。請求項3の発明では、問題を部分集
合へ分解したり部分集合からの解の計算が並列処理でき
るので、特に大規模な問題の場合も、処理が高速に行わ
れる。
制約充足問題の解決装置において、前記分解する手段又
は前記計算する手段のうち少なくとも一方を複数設けた
ことを特徴とする。請求項3の発明では、問題を部分集
合へ分解したり部分集合からの解の計算が並列処理でき
るので、特に大規模な問題の場合も、処理が高速に行わ
れる。
【0016】請求項5の発明は、複数の部分から構成さ
れ、それぞれの部分が複数の代替案を有し、かつ前記各
部分の代替案の間の組み合わせに制約が存在するシステ
ムを構築する装置において、前記システムの各部分を、
各部分が最大2個の代替案を含む部分集合に分解する手
段と、分解された部分集合ごとに、部分の代替案間の制
約を満足する代替案の組み合わせを計算することによ
り、前記制約を満足するシステムを構築することを特徴
とする。また、請求項6の発明は、複数の部分から構成
され、それぞれの部分が複数の代替案を有し、かつ前記
各部分の代替案の間の組み合わせに制約が存在するシス
テムを構築する方法において、前記システムの各部分
を、各部分が最大2個の代替案を含む部分集合に分解
し、分解された部分集合ごとに、部分の代替案間の制約
を満足する代替案の組み合わせを計算することにより、
前記制約を満足するシステムを構築することを特徴とす
る。
れ、それぞれの部分が複数の代替案を有し、かつ前記各
部分の代替案の間の組み合わせに制約が存在するシステ
ムを構築する装置において、前記システムの各部分を、
各部分が最大2個の代替案を含む部分集合に分解する手
段と、分解された部分集合ごとに、部分の代替案間の制
約を満足する代替案の組み合わせを計算することによ
り、前記制約を満足するシステムを構築することを特徴
とする。また、請求項6の発明は、複数の部分から構成
され、それぞれの部分が複数の代替案を有し、かつ前記
各部分の代替案の間の組み合わせに制約が存在するシス
テムを構築する方法において、前記システムの各部分
を、各部分が最大2個の代替案を含む部分集合に分解
し、分解された部分集合ごとに、部分の代替案間の制約
を満足する代替案の組み合わせを計算することにより、
前記制約を満足するシステムを構築することを特徴とす
る。
【0017】このような構成を有する請求項5または請
求項6の発明によれば、多数の部分から構成され、各部
分の代替案間に制約が存在する複雑なシステムを従来技
術に比較して簡単な手法で構成することが可能になる。
求項6の発明によれば、多数の部分から構成され、各部
分の代替案間に制約が存在する複雑なシステムを従来技
術に比較して簡単な手法で構成することが可能になる。
【0018】
【発明の実施の形態】以下、本発明の実施の形態(以下
「実施形態」という)である制約充足問題の解決装置
(以下「本装置」という)について、図面を参照して説
明する。
「実施形態」という)である制約充足問題の解決装置
(以下「本装置」という)について、図面を参照して説
明する。
【0019】(1)構成 まず、図1は、本装置の要部について、概略的な構成を
示す機能ブロック図である。なお、図1に示すように、
本装置は、コンピュータ上においてプログラム100に
よってCPU101を制御することによって実現され、
この場合の具体的な実現態様は種々考えられる。このた
め、以下の説明では、本装置の各機能に対応する仮想的
回路ブロックとして「〜部」をもって本装置を説明す
る。なお、CPU101は、プログラム100で指定さ
れたとおりに、コンピュータの各種ハードウェア資源を
利用しながら、前記各仮想的回路ブロックの作用を実現
する。
示す機能ブロック図である。なお、図1に示すように、
本装置は、コンピュータ上においてプログラム100に
よってCPU101を制御することによって実現され、
この場合の具体的な実現態様は種々考えられる。このた
め、以下の説明では、本装置の各機能に対応する仮想的
回路ブロックとして「〜部」をもって本装置を説明す
る。なお、CPU101は、プログラム100で指定さ
れたとおりに、コンピュータの各種ハードウェア資源を
利用しながら、前記各仮想的回路ブロックの作用を実現
する。
【0020】ハードウェア資源の典型例として、CPU
101には、バス及び入出力制御回路102を介して、
RAMなどの記憶素子からなるメモリ103、ハードデ
ィスクドライブなどの補助記憶装置104、入力装置と
してマウス105やキーボード106、出力装置として
表示装置107やプリンタ108を接続することが考え
られる。但し、これらハードウェア資源は例示に過ぎ
ず、情報の記憶・入力・出力などの目的を達成できる他
の各種装置を用いることもできる。
101には、バス及び入出力制御回路102を介して、
RAMなどの記憶素子からなるメモリ103、ハードデ
ィスクドライブなどの補助記憶装置104、入力装置と
してマウス105やキーボード106、出力装置として
表示装置107やプリンタ108を接続することが考え
られる。但し、これらハードウェア資源は例示に過ぎ
ず、情報の記憶・入力・出力などの目的を達成できる他
の各種装置を用いることもできる。
【0021】このようなハードウェア資源を用いて実現
される本装置は、次のように構成される。すなわち、本
装置は、図1に示すように、経路3から入力される問題
を部分集合に分解する代替案集合生成部1と、分解され
た部分集合から問題の解を計算する解計算部2とを有す
る。代替案集合生成部1は、与えられた問題を、各部分
が最大2個の代替案を持つ部分集合に分解する手段であ
る。これら代替案集合生成部1と解計算部2は、経路
4,5及び7によって接続される。このうち経路5は、
部分集合を解計算部1に送るためのもので、経路4は、
部分集合に対応する組み合わせの制約を解計算部1に送
るためのものである。また、経路7は、一つの部分集合
の処理を終えた解計算部1が、次の部分集合の送信を代
替案集合生成部1に要求するためのものである。解計算
部2は、部分集合から求めた解を、経路6を通じて出力
する。
される本装置は、次のように構成される。すなわち、本
装置は、図1に示すように、経路3から入力される問題
を部分集合に分解する代替案集合生成部1と、分解され
た部分集合から問題の解を計算する解計算部2とを有す
る。代替案集合生成部1は、与えられた問題を、各部分
が最大2個の代替案を持つ部分集合に分解する手段であ
る。これら代替案集合生成部1と解計算部2は、経路
4,5及び7によって接続される。このうち経路5は、
部分集合を解計算部1に送るためのもので、経路4は、
部分集合に対応する組み合わせの制約を解計算部1に送
るためのものである。また、経路7は、一つの部分集合
の処理を終えた解計算部1が、次の部分集合の送信を代
替案集合生成部1に要求するためのものである。解計算
部2は、部分集合から求めた解を、経路6を通じて出力
する。
【0022】次に、図2は、本装置の構成を、より具体
的に示す機能ブロック図である。なお、図2では、図1
の経路4,5及び7をまとめて経路11として示す。ま
た、経路3及び6は、図1の経路3及び6に対応する。
本装置は、図2に示すように、代替案集合生成部1及び
解計算部2の他に、解計算パターン記憶部8、結果記憶
部9及び解出力部10を有する。このうち、解計算パタ
ーン記憶部8は、解を1つだけ求めるのか、全ての解を
求めるのかといったユーザによる指定を記憶する部分で
ある。結果記憶部9は、解計算部2が計算した結果を記
憶する部分である。解出力部10は、解計算パターン記
憶部8に記憶された指定に応じて、解計算部2に解を要
求し、返送された解をユーザに出力する部分である。解
計算部2は、解を要求されたときに、結果記憶部9に記
憶された情報に基づく解を解出力部10に返送する。
的に示す機能ブロック図である。なお、図2では、図1
の経路4,5及び7をまとめて経路11として示す。ま
た、経路3及び6は、図1の経路3及び6に対応する。
本装置は、図2に示すように、代替案集合生成部1及び
解計算部2の他に、解計算パターン記憶部8、結果記憶
部9及び解出力部10を有する。このうち、解計算パタ
ーン記憶部8は、解を1つだけ求めるのか、全ての解を
求めるのかといったユーザによる指定を記憶する部分で
ある。結果記憶部9は、解計算部2が計算した結果を記
憶する部分である。解出力部10は、解計算パターン記
憶部8に記憶された指定に応じて、解計算部2に解を要
求し、返送された解をユーザに出力する部分である。解
計算部2は、解を要求されたときに、結果記憶部9に記
憶された情報に基づく解を解出力部10に返送する。
【0023】また、図3は、解計算部2の具体的な構成
を示す機能ブロック図である。すなわち、解計算部2
は、図3に示すように、経路11から与えられた部分集
合から、前記制約に合致する代替案の組み合わせを表す
可到達値集合を計算する可到達値集合計算部16と、計
算された可到達値集合を完全化する値完全化部17と、
を有する。完全化された可到達値集合から解を計算する
解発生部18と、を有する。
を示す機能ブロック図である。すなわち、解計算部2
は、図3に示すように、経路11から与えられた部分集
合から、前記制約に合致する代替案の組み合わせを表す
可到達値集合を計算する可到達値集合計算部16と、計
算された可到達値集合を完全化する値完全化部17と、
を有する。完全化された可到達値集合から解を計算する
解発生部18と、を有する。
【0024】(2)作用 上記のような構成を有する本実施の形態では、次のよう
な手順によって問題の解が計算される。なお、以下の説
明では、次のように定義される用語を用いる。すなわ
ち、全ての制約を満足する各部分の代替案の組み合わせ
を、システムあるいは問題の解と呼ぶ。また、部分Xk
の代替案が部分Xj の代替案に制約される時、部分Xk
と部分Xj は互いに隣接するという。また、部分Xk に
隣接する全ての部分の集合を部分Xk の隣接集合と呼
び、N(Xk )と表わす。また、部分Xk と部分Xj が
隣接して、部分Xk の代替案wk と部分Xj の代替案w
j が組み合わせ制約を満たす時、代替案wk と代替案w
j は可接続であると呼ぶ。また、互いに隣接する部分の
任意の列{Xj ,…,Xk }上に互いに可接続な代替案
列{wj ,…,wk }が存在する時、部分Xk の代替案
wk は部分Xj の代替案wj から可到達であるという。
ここで、{Xj ,…,Xk }は同一の部分Xh を複数個
含んでもよく、また、そのとき、部分Xj と部分Xk 以
外の部分Xh 上の代替案は出現するごとに異なっていて
もよい。さらに、代替案wk の部分Xj 上の可到達値集
合r(Xj :wk )を、代替案wk から可到達な値だけ
から成る部分Xj の代替案の集合と定義する。
な手順によって問題の解が計算される。なお、以下の説
明では、次のように定義される用語を用いる。すなわ
ち、全ての制約を満足する各部分の代替案の組み合わせ
を、システムあるいは問題の解と呼ぶ。また、部分Xk
の代替案が部分Xj の代替案に制約される時、部分Xk
と部分Xj は互いに隣接するという。また、部分Xk に
隣接する全ての部分の集合を部分Xk の隣接集合と呼
び、N(Xk )と表わす。また、部分Xk と部分Xj が
隣接して、部分Xk の代替案wk と部分Xj の代替案w
j が組み合わせ制約を満たす時、代替案wk と代替案w
j は可接続であると呼ぶ。また、互いに隣接する部分の
任意の列{Xj ,…,Xk }上に互いに可接続な代替案
列{wj ,…,wk }が存在する時、部分Xk の代替案
wk は部分Xj の代替案wj から可到達であるという。
ここで、{Xj ,…,Xk }は同一の部分Xh を複数個
含んでもよく、また、そのとき、部分Xj と部分Xk 以
外の部分Xh 上の代替案は出現するごとに異なっていて
もよい。さらに、代替案wk の部分Xj 上の可到達値集
合r(Xj :wk )を、代替案wk から可到達な値だけ
から成る部分Xj の代替案の集合と定義する。
【0025】(2−1)問題の入力 問題の解を得ようとするユーザは、代替案集合生成部1
へ、経路3を通して問題と制約とを与えるとともに、処
理の開始を要求する。なお、使用者は、処理の開始を要
求する際に、解を計算するパターンとして、与えられた
解m個の解だけを計算するのか、全ての解を計算するか
の区別を入力する。代替案集合生成部1は、入力された
区別を、経路14を通じて、解計算パターン記憶部8に
記憶する。
へ、経路3を通して問題と制約とを与えるとともに、処
理の開始を要求する。なお、使用者は、処理の開始を要
求する際に、解を計算するパターンとして、与えられた
解m個の解だけを計算するのか、全ての解を計算するか
の区別を入力する。代替案集合生成部1は、入力された
区別を、経路14を通じて、解計算パターン記憶部8に
記憶する。
【0026】与えられる問題は、問題を構成する部分の
集合と、個々の部分ごとに許された代替案の集合によっ
て表される。また、問題に対する制約は、問題に含まれ
る各部分の代替案間の組み合わせの制約であり、制約関
係がある部分の対の集合、及び個々の対を構成する2つ
の部分に対して許された、又は禁止された代替案の組み
合わせによって表される。
集合と、個々の部分ごとに許された代替案の集合によっ
て表される。また、問題に対する制約は、問題に含まれ
る各部分の代替案間の組み合わせの制約であり、制約関
係がある部分の対の集合、及び個々の対を構成する2つ
の部分に対して許された、又は禁止された代替案の組み
合わせによって表される。
【0027】すなわち、問題は、部分の集合 X={X1 ,X2 ,… XN } 各部分ごとに許された代替案集合列 V={V1 ,V2 ,… VN } 制約関係がある部分の対の集合 Z={(Xi ,Xj ),(Xk ,Xm ),…} のように与えられる。
【0028】また、制約は、個々の対(Xi ,Xj )に
対して許された代替案の組み合わせの集合 Cij={(wip,wjq),(wkr,wjs),…} からなり、代替案集合生成部1はこれら問題と制約を合
わせて X1 ,X2 ,… XN V1 ,V2 ,… VN (Xi ,Xj )=(wip,wjq),(wkr,wjs),… (Xk ,Xm )=(wkt,wmu),(wkv,wmy),… ・・・ ・・・ の形で受け取る。
対して許された代替案の組み合わせの集合 Cij={(wip,wjq),(wkr,wjs),…} からなり、代替案集合生成部1はこれら問題と制約を合
わせて X1 ,X2 ,… XN V1 ,V2 ,… VN (Xi ,Xj )=(wip,wjq),(wkr,wjs),… (Xk ,Xm )=(wkt,wmu),(wkv,wmy),… ・・・ ・・・ の形で受け取る。
【0029】(2−2)部分集合への分解 代替案集合生成部1は、与えられた問題を、各部分が最
大2個の代替案を含む部分集合に分割する。この分割で
は、部分ごとの代替案を最大2個ずつのグループにまと
め、異なった部分のグループを順列組み合わせにしたが
って組み合わせることによって部分集合を作成する。
大2個の代替案を含む部分集合に分割する。この分割で
は、部分ごとの代替案を最大2個ずつのグループにまと
め、異なった部分のグループを順列組み合わせにしたが
って組み合わせることによって部分集合を作成する。
【0030】例えば、部分Aが代替案a1,a2,a
3,a4を持ち、部分Bが代替案b1,b2,b3,b
4を持つとき、部分Aの各代替案はグループ{a1,a
2}及び{a3,a4}にまとめられ、部分Bの代替案
はグループ{b1,b2}及び{b3,b4}にまとめ
られる。そして、部分Aのグループと部分Bのグループ
を組み合わせて、 {a1,a2}と{b1,b2} {a1,a2}と{b3,b4} {a3,a4}と{b1,b2} {a3,a4}と{b3,b4} という4通りの部分集合が作成される。すなわち、各部
分Xj に許された代替案の集合Vj を取り出し、各々が
2個以下の代替案から成る部分集合の列{Vj (1),
Vj (2),…,Vj (jm )}に分割する。
3,a4を持ち、部分Bが代替案b1,b2,b3,b
4を持つとき、部分Aの各代替案はグループ{a1,a
2}及び{a3,a4}にまとめられ、部分Bの代替案
はグループ{b1,b2}及び{b3,b4}にまとめ
られる。そして、部分Aのグループと部分Bのグループ
を組み合わせて、 {a1,a2}と{b1,b2} {a1,a2}と{b3,b4} {a3,a4}と{b1,b2} {a3,a4}と{b3,b4} という4通りの部分集合が作成される。すなわち、各部
分Xj に許された代替案の集合Vj を取り出し、各々が
2個以下の代替案から成る部分集合の列{Vj (1),
Vj (2),…,Vj (jm )}に分割する。
【0031】なお、具体的な分割の手法は、本装置を適
用しようとする問題の性質に合わせて決定すればよい。
例えば、ユーザが具体的な問題の内容を理解したうえ
で、所望の分割ルールを入力することによって、解決し
ようとする問題ごとに異なった所望のルールを適用する
ことができる。
用しようとする問題の性質に合わせて決定すればよい。
例えば、ユーザが具体的な問題の内容を理解したうえ
で、所望の分割ルールを入力することによって、解決し
ようとする問題ごとに異なった所望のルールを適用する
ことができる。
【0032】(2−3)部分集合の解計算部2への送付 代替案集合生成部1は、生成された部分集合ごとに、制
約と共に、 X1 ,X2 ,XN V1 (1),V2 (2),VN (1) (Xi ,Xj )=(wip,wjq),(wkr,wjs),… (Xk ,Xm )=(wkt,wmu),(wkv,wmy),… ・・・ ・・・ の形で、経路11を通して解計算部2に送る。ただし、
ここでは、制約の存在する部分の対(Xi ,Xj )に許
された代替案の組としては、与えられた組(wip,wj
q)の中で、部分集合中の代替案Vi に一方の代替案wi
pが含まれ、部分集合中の代替案Vj に他方の代替案wj
qが含まれるものだけを選択して送る。
約と共に、 X1 ,X2 ,XN V1 (1),V2 (2),VN (1) (Xi ,Xj )=(wip,wjq),(wkr,wjs),… (Xk ,Xm )=(wkt,wmu),(wkv,wmy),… ・・・ ・・・ の形で、経路11を通して解計算部2に送る。ただし、
ここでは、制約の存在する部分の対(Xi ,Xj )に許
された代替案の組としては、与えられた組(wip,wj
q)の中で、部分集合中の代替案Vi に一方の代替案wi
pが含まれ、部分集合中の代替案Vj に他方の代替案wj
qが含まれるものだけを選択して送る。
【0033】なお、代替案集合生成部1から解計算部2
への部分集合の送信は、指定された解の計算パターンに
応じて、次のように行われる。解計算部2は、一つの部
分集合に基づく計算が終了すると、処理終了の通知及び
解が存在したか否かを、経路11を通じて代替案集合生
成部1に送る。代替案集合生成部1は、解計算部2から
解の存在を通知されかつ解計算パターン記憶部8に、1
個の解だけを求める指示が記憶されている場合以外は、
つまり、与えられた数の解がまだ得られていないかある
いは全ての解を求める指示があるときは、次のデータを
解計算部2に送る。
への部分集合の送信は、指定された解の計算パターンに
応じて、次のように行われる。解計算部2は、一つの部
分集合に基づく計算が終了すると、処理終了の通知及び
解が存在したか否かを、経路11を通じて代替案集合生
成部1に送る。代替案集合生成部1は、解計算部2から
解の存在を通知されかつ解計算パターン記憶部8に、1
個の解だけを求める指示が記憶されている場合以外は、
つまり、与えられた数の解がまだ得られていないかある
いは全ての解を求める指示があるときは、次のデータを
解計算部2に送る。
【0034】代替案集合生成部1から解計算部2に一度
に送られるデータは、 X1 ,X2 ,…,XN V1 (1),…,VN-1 (1),VN (2) (Xi ,Xj )=(wip,wjq),(wkr,wjs),… (Xk ,Xm )=(wkt,wmu),(wkv,wmy),… のような内容である。代替案集合生成部1は、部分集合
を逐次生成する場合、以下同様にして、辞書順に代替案
集合を解計算部2に送る。このように順次送られるデー
タは、次のようになる。 {V1 (1),…,VN (1)} {V1 (1),…,VN-1 (1),VN (2)} {V1 (1),…,VN-1 (1),VN (3)} ・・・ {V1 (1),…,VN-1 (1),VN (NT )} {V1 (1),…,VN-1 (2),VN (1)} {V1 (1),…,VN-1 (2),VN (2)} ・・・ {V1 (1),…,VN-1 (2),VN (NT )} {V1 (1),…,VN-1 (3),VN (1)} {V1 (1),…,VN-1 (3),VN (2)} ・・・ {V1 (1),…,VN-1 (3),VN (NT )} {V1 (1),…,VN-1 (2T ),VN (NT )} この場合、代替案集合生成部1は、解が求まった通知を
受け取るかあるいは最後の {V1(1),…,VN-1 (2T ),VN (NT )} に対応するシステム構成データを送り終わるまで、経路
11を通して X1 ,X2 ,…,XN V1 (j1 ),V2 (j2 ),…,VN (jN ) (Xi ,Xj )=(wip,wjq),(wkr,wjs),… (Xk ,Xm )=(wkt,wmu),(wkv,wmy),… のように、解計算部2にデータを送る。
に送られるデータは、 X1 ,X2 ,…,XN V1 (1),…,VN-1 (1),VN (2) (Xi ,Xj )=(wip,wjq),(wkr,wjs),… (Xk ,Xm )=(wkt,wmu),(wkv,wmy),… のような内容である。代替案集合生成部1は、部分集合
を逐次生成する場合、以下同様にして、辞書順に代替案
集合を解計算部2に送る。このように順次送られるデー
タは、次のようになる。 {V1 (1),…,VN (1)} {V1 (1),…,VN-1 (1),VN (2)} {V1 (1),…,VN-1 (1),VN (3)} ・・・ {V1 (1),…,VN-1 (1),VN (NT )} {V1 (1),…,VN-1 (2),VN (1)} {V1 (1),…,VN-1 (2),VN (2)} ・・・ {V1 (1),…,VN-1 (2),VN (NT )} {V1 (1),…,VN-1 (3),VN (1)} {V1 (1),…,VN-1 (3),VN (2)} ・・・ {V1 (1),…,VN-1 (3),VN (NT )} {V1 (1),…,VN-1 (2T ),VN (NT )} この場合、代替案集合生成部1は、解が求まった通知を
受け取るかあるいは最後の {V1(1),…,VN-1 (2T ),VN (NT )} に対応するシステム構成データを送り終わるまで、経路
11を通して X1 ,X2 ,…,XN V1 (j1 ),V2 (j2 ),…,VN (jN ) (Xi ,Xj )=(wip,wjq),(wkr,wjs),… (Xk ,Xm )=(wkt,wmu),(wkv,wmy),… のように、解計算部2にデータを送る。
【0035】全ての解が必要な場合は、代替案集合生成
部1から解計算部2に全ての部分集合を送る必要がある
が、この場合は、全ての部分集合を一括して解計算部2
に送る構成も考えられるし、計算終了ごとに逐次部分集
合を生成して送ることも考えられる。部分集合を一括送
付する場合は、次の部分集合を要求するための経路7は
用いられない。
部1から解計算部2に全ての部分集合を送る必要がある
が、この場合は、全ての部分集合を一括して解計算部2
に送る構成も考えられるし、計算終了ごとに逐次部分集
合を生成して送ることも考えられる。部分集合を一括送
付する場合は、次の部分集合を要求するための経路7は
用いられない。
【0036】部分集合を逐次生成して送付するときは、
代替案集合生成部1は、一つの部分集合を生成するごと
に、その部分集合を解計算部2に送る。解計算部2は、
経路5を通して受け取った部分集合について解を計算
し、処理が終了した段階で、あるいは終了を予測した段
階で、経路7を通して代替案集合生成部1に新たな代替
案集合の送信を要求し、代替案集合生成部1はこれに応
えて新たな代替案集合と場合によっては許可あるいは禁
止された代替案の組み合わせ情報を、それぞれ経路5、
経路4を通して解計算部2に送る。なお、部分集合につ
いての処理の終了は、解が存在しないことが判明した場
合を含む。
代替案集合生成部1は、一つの部分集合を生成するごと
に、その部分集合を解計算部2に送る。解計算部2は、
経路5を通して受け取った部分集合について解を計算
し、処理が終了した段階で、あるいは終了を予測した段
階で、経路7を通して代替案集合生成部1に新たな代替
案集合の送信を要求し、代替案集合生成部1はこれに応
えて新たな代替案集合と場合によっては許可あるいは禁
止された代替案の組み合わせ情報を、それぞれ経路5、
経路4を通して解計算部2に送る。なお、部分集合につ
いての処理の終了は、解が存在しないことが判明した場
合を含む。
【0037】(2−4)解の計算 解計算部2は、{V1 (k1 ),V2 (k2 ),…,V
N (kN )}を経路5を通して受け取ると、各部分Xj
に許された代替案がVj (kj )であるとして、つまり
各部分が高々2個の代替案を持つとして、全ての部分上
の矛盾の無い代替案の組み合わせを計算する。なお、問
題全体は部分{X1 ,…,XN }から成り、代替案集合
生成部1から解計算部2へは、各部分Xj に許される代
替案の集合として2個以下の代替案からなる集合{wj
1,wj2}が与えられるとする。なお、入力情報として
与えられた個々の部分に許された代替案の集合によって
解が構成できる場合は、その解は{V1 (k1 ),V2
(k2 ),…,VN (kN )}(1≦kj ≦jm }のい
ずれかを代替案の集合とした場合の解であるので、これ
ら部分集合から解を求めることによって、結果的に、問
題全体から求められるのと同一の解を全て求めることが
できる。解計算部における解の計算は、次に示すよう
に、可到達値集合の計算、可到達値集合の完全化、完全
化された可到達集合からの解の計算、という処理によっ
て行われる。
N (kN )}を経路5を通して受け取ると、各部分Xj
に許された代替案がVj (kj )であるとして、つまり
各部分が高々2個の代替案を持つとして、全ての部分上
の矛盾の無い代替案の組み合わせを計算する。なお、問
題全体は部分{X1 ,…,XN }から成り、代替案集合
生成部1から解計算部2へは、各部分Xj に許される代
替案の集合として2個以下の代替案からなる集合{wj
1,wj2}が与えられるとする。なお、入力情報として
与えられた個々の部分に許された代替案の集合によって
解が構成できる場合は、その解は{V1 (k1 ),V2
(k2 ),…,VN (kN )}(1≦kj ≦jm }のい
ずれかを代替案の集合とした場合の解であるので、これ
ら部分集合から解を求めることによって、結果的に、問
題全体から求められるのと同一の解を全て求めることが
できる。解計算部における解の計算は、次に示すよう
に、可到達値集合の計算、可到達値集合の完全化、完全
化された可到達集合からの解の計算、という処理によっ
て行われる。
【0038】(2−4−1)可到達値集合の計算(ステ
ップ41〜49) まず、可到達値集合を計算する手順を示すフローチャー
トを、図4(前半)及び図5(後半)に示す。なお、図
4及び図5のフローチャートは、接続子1〜4によって
一体になっているものである。
ップ41〜49) まず、可到達値集合を計算する手順を示すフローチャー
トを、図4(前半)及び図5(後半)に示す。なお、図
4及び図5のフローチャートは、接続子1〜4によって
一体になっているものである。
【0039】まず、可到達値集合計算部16が、部分X
j の各代替案wjp(p=1,2)に対して各部分Xj 上
の可到達値集合r(Xj :wk )を計算する(ステップ
41〜49)。この計算では、まず、ステップ41で、
部分Xj の各代替案wjp=(p=1,2)に対して、部
分Xj 上の代替案wjpの可到達集合r(Xj :wjp)を
代替案wjpだけから成る集合とし、部分Xj 以外の部分
Xk (k≠j)上では可到達値集合r(Xk :wjp)を
空集合にする。ここで、ステップ41において、既にそ
の上の可到達集合r(Xh :wjp)を計算済みの部分の
集合を既算集合Fと表し、その上の可到達集合r(Xh
:wjp)を計算すべき部分の集合を未算集合Gと表
し、後述するステップ群で可到達値集合r(Xh :wj
p)から代替案が削減されたことを記憶する集合を削除
集合Hと表す。
j の各代替案wjp(p=1,2)に対して各部分Xj 上
の可到達値集合r(Xj :wk )を計算する(ステップ
41〜49)。この計算では、まず、ステップ41で、
部分Xj の各代替案wjp=(p=1,2)に対して、部
分Xj 上の代替案wjpの可到達集合r(Xj :wjp)を
代替案wjpだけから成る集合とし、部分Xj 以外の部分
Xk (k≠j)上では可到達値集合r(Xk :wjp)を
空集合にする。ここで、ステップ41において、既にそ
の上の可到達集合r(Xh :wjp)を計算済みの部分の
集合を既算集合Fと表し、その上の可到達集合r(Xh
:wjp)を計算すべき部分の集合を未算集合Gと表
し、後述するステップ群で可到達値集合r(Xh :wj
p)から代替案が削減されたことを記憶する集合を削除
集合Hと表す。
【0040】ステップ42〜45では、未算集合Gに属
する各部分Xh 上の可到達値集合r(Xh :wjp)を計
算する。なお、この手順で用いられる未算集合G*は未
算集合Gの複製である。まず、ステップ42では、既算
集合Fに属して部分Xh に隣接する全ての部分Xks上の
可到達値集合r(Xks:wjp)が部分Xh の代替案wh
と可接続な代替案を含む時、可到達値集合r(Xh :w
jp)に代替案wh を追加する。さらに、ステップ43で
は、可到達値集合r(Xh :wj1)と可到達値集合r
(Xh :wj2)の両方が空集合になる場合には解が存在
しないので、処理を終了する。
する各部分Xh 上の可到達値集合r(Xh :wjp)を計
算する。なお、この手順で用いられる未算集合G*は未
算集合Gの複製である。まず、ステップ42では、既算
集合Fに属して部分Xh に隣接する全ての部分Xks上の
可到達値集合r(Xks:wjp)が部分Xh の代替案wh
と可接続な代替案を含む時、可到達値集合r(Xh :w
jp)に代替案wh を追加する。さらに、ステップ43で
は、可到達値集合r(Xh :wj1)と可到達値集合r
(Xh :wj2)の両方が空集合になる場合には解が存在
しないので、処理を終了する。
【0041】可到達値集合r(Xh :wj1)と可到達値
集合r(Xh :wj2)のいずれかが空集合でない場合
は、ステップ44において可到達値集合r(Xh :wj
p)のどの代替案とも可接続ではない代替案を可到達値
集合r(Xks:wjp)から削減する。つまり、可到達値
集合r(Xks:wjp)の代替案ws が可到達値集合r
(Xh :wjp)のどの代替案とも可接続でない場合は、
代替案ws は代替案wjpから可到達ではないので、可到
達値集合r(Xks:wjp)から代替案ws を削減すると
共に、代替案ws を削減した影響でさらに削減すべき代
替案を計算するために削除集合Hに{Xks:ws ,wj
p}を追加する。
集合r(Xh :wj2)のいずれかが空集合でない場合
は、ステップ44において可到達値集合r(Xh :wj
p)のどの代替案とも可接続ではない代替案を可到達値
集合r(Xks:wjp)から削減する。つまり、可到達値
集合r(Xks:wjp)の代替案ws が可到達値集合r
(Xh :wjp)のどの代替案とも可接続でない場合は、
代替案ws は代替案wjpから可到達ではないので、可到
達値集合r(Xks:wjp)から代替案ws を削減すると
共に、代替案ws を削減した影響でさらに削減すべき代
替案を計算するために削除集合Hに{Xks:ws ,wj
p}を追加する。
【0042】また、ステップ45では、ステップ10と
同じように、可到達値集合r(Xks:wj1)と可到達値
集合r(Xks:wj2)の両方が空集合になる場合には解
が存在しないので、処理を終了する。
同じように、可到達値集合r(Xks:wj1)と可到達値
集合r(Xks:wj2)の両方が空集合になる場合には解
が存在しないので、処理を終了する。
【0043】ステップ42〜45を繰り返すことによっ
て未算集合Gに属する全ての部分Xh 上の可到達値集合
r(Xh :wjp)が計算されると、ステップ46、47
で(図5)、削除集合Hに属する代替案を可到達集合か
ら削減したことによってさらに削減すべき可到達集合の
代替案を計算する。ステップ46では、削除集合Hから
削減された可到達集合の代替案{Xr :wr ,wjp}を
取り出し、既算集合FとN(Xr )の両方に含まれる部
分Xh 上の可到達値集合r(Xh :wjp)が可到達値集
合r(Xr :wjp)に属する代替案wr ではない代替案
wrvと可接続な代替案を含まなければ、部分Xj の代替
案が代替案wjpである解は存在しないので既算集合Fに
属する全ての部分Xi に対して、可到達値集合r(Xi
:wjp)を空集合にする。また、削除集合Hから、最
後の項が代替案wjpと一致する全ての{Xi :wi ,w
jp}を削減する。
て未算集合Gに属する全ての部分Xh 上の可到達値集合
r(Xh :wjp)が計算されると、ステップ46、47
で(図5)、削除集合Hに属する代替案を可到達集合か
ら削減したことによってさらに削減すべき可到達集合の
代替案を計算する。ステップ46では、削除集合Hから
削減された可到達集合の代替案{Xr :wr ,wjp}を
取り出し、既算集合FとN(Xr )の両方に含まれる部
分Xh 上の可到達値集合r(Xh :wjp)が可到達値集
合r(Xr :wjp)に属する代替案wr ではない代替案
wrvと可接続な代替案を含まなければ、部分Xj の代替
案が代替案wjpである解は存在しないので既算集合Fに
属する全ての部分Xi に対して、可到達値集合r(Xi
:wjp)を空集合にする。また、削除集合Hから、最
後の項が代替案wjpと一致する全ての{Xi :wi ,w
jp}を削減する。
【0044】既算集合FとN(Xr )の両方に含まれる
全ての部分Xh 上の可到達値集合r(Xh :wjp)が代
替案wrvと可接続な代替案を含む場合は、ステップ47
で代替案wrvと可接続でない代替案wh を可到達値集合
r(Xh :wjp)から削減して、削除集合Hに{Xh :
wh ,wjp}を追加する。さらに、ステップ48では、
可到達値集合r(Xh :wj1)と可到達値集合r(Xh
:wj2)の両方が空集合になる場合には解が存在しな
いので処理を終了する。
全ての部分Xh 上の可到達値集合r(Xh :wjp)が代
替案wrvと可接続な代替案を含む場合は、ステップ47
で代替案wrvと可接続でない代替案wh を可到達値集合
r(Xh :wjp)から削減して、削除集合Hに{Xh :
wh ,wjp}を追加する。さらに、ステップ48では、
可到達値集合r(Xh :wj1)と可到達値集合r(Xh
:wj2)の両方が空集合になる場合には解が存在しな
いので処理を終了する。
【0045】削除集合Hが空集合になると、ステップ4
9で次に可到達値集合を計算すべき部分の集合未算集合
Gを、未算集合Gに属する部分の隣接集合に属して既算
集合Fには属さない部分の集合とする。
9で次に可到達値集合を計算すべき部分の集合未算集合
Gを、未算集合Gに属する部分の隣接集合に属して既算
集合Fには属さない部分の集合とする。
【0046】最終的に、各部分Xk がすべての部分Xk
上で可到達値集合r(Xk :wj )が空にならない代替
案wj を含む場合には、解が存在するので、可到達値集
合計算部16は、可到達値集合r(Xk :wj )を経路
12を通じて結果記憶部9に書き込む。
上で可到達値集合r(Xk :wj )が空にならない代替
案wj を含む場合には、解が存在するので、可到達値集
合計算部16は、可到達値集合r(Xk :wj )を経路
12を通じて結果記憶部9に書き込む。
【0047】(2−4−2)可到達値集合の完全化 値集合完全化部17は、可到達値集合計算部16で求め
た可到達値集合を完全化する。図6は、値集合を完全化
する手順を示すフローチャートである。すなわち、この
手順では、ループの制御変数としてjとkを用いなが
ら、ステップ61で、各部分Xk と部分Xj に対して、
部分Xk の代替案wkpの部分Xj 上の可到達値集合r
(Xj :wkp)が代替案wjqを含むが可到達値集合r
(Xj :wjq)が空集合である場合は、可到達値集合r
(Xj :wkp)から代替案wjqを削減する。
た可到達値集合を完全化する。図6は、値集合を完全化
する手順を示すフローチャートである。すなわち、この
手順では、ループの制御変数としてjとkを用いなが
ら、ステップ61で、各部分Xk と部分Xj に対して、
部分Xk の代替案wkpの部分Xj 上の可到達値集合r
(Xj :wkp)が代替案wjqを含むが可到達値集合r
(Xj :wjq)が空集合である場合は、可到達値集合r
(Xj :wkp)から代替案wjqを削減する。
【0048】(2−4−3)完全化された可到達値集合
からの解の算出 さらに、解発生部18では、値集合完全化部17で完全
化した可到達値集合を用いて解を計算する。図7は、解
の計算の手順を示すフローチャートである。すなわち、
ステップ71では、k=1から順に可到達値集合r(X
k :wk )が空ではない部分Xk の代替案wk を1つ選
択する。ここでk=Nならばこれまでに選択して部分X
1 ,…,XN 上の代替案の組w1 ,…,wN が解である
ので処理を終了する。k<Nの場合は部分XK の代替案
wk に矛盾する部分Xj (j>k)の代替案を削減する
ために、ステップ72で可到達値集合r(Xj :wk )
に含まれないから部分Xj の代替案wj が存在すると、
可到達値集合r(Xj :wj )から代替案wj を削減す
る。
からの解の算出 さらに、解発生部18では、値集合完全化部17で完全
化した可到達値集合を用いて解を計算する。図7は、解
の計算の手順を示すフローチャートである。すなわち、
ステップ71では、k=1から順に可到達値集合r(X
k :wk )が空ではない部分Xk の代替案wk を1つ選
択する。ここでk=Nならばこれまでに選択して部分X
1 ,…,XN 上の代替案の組w1 ,…,wN が解である
ので処理を終了する。k<Nの場合は部分XK の代替案
wk に矛盾する部分Xj (j>k)の代替案を削減する
ために、ステップ72で可到達値集合r(Xj :wk )
に含まれないから部分Xj の代替案wj が存在すると、
可到達値集合r(Xj :wj )から代替案wj を削減す
る。
【0049】なお、以上の図4〜7に示した手順によっ
て全ての部分に矛盾の無い代替案の割り当て(解)が決
まることは明らかである。なぜならば、各部分Xk が高
々2個の代替案を含む場合にはシステム全体に矛盾の無
い代替案を割り当てることのできる必要十分条件は、各
部分Xk が代替案wk を持ち全ての部分Xj 上で可到達
集合r(Xj :wk )が空ではなく、さらに、可到達値
集合r(Xj :wk )が代替案wj を含むなら可到達値
集合r(Xj :wj )が空ではないことであるためであ
る。
て全ての部分に矛盾の無い代替案の割り当て(解)が決
まることは明らかである。なぜならば、各部分Xk が高
々2個の代替案を含む場合にはシステム全体に矛盾の無
い代替案を割り当てることのできる必要十分条件は、各
部分Xk が代替案wk を持ち全ての部分Xj 上で可到達
集合r(Xj :wk )が空ではなく、さらに、可到達値
集合r(Xj :wk )が代替案wj を含むなら可到達値
集合r(Xj :wj )が空ではないことであるためであ
る。
【0050】(2−4−4)解の出力 代替案集合生成部1は、解計算部2から解の存在を通知
され、かつ、解計算パターン記憶部8に指示された個数
の解が得られた場合、あるいは全ての部分集合V1 (j
1 ),V2 (j2 ),…,VN (jN )に対する処理を
終了した場合は、経路13を通して解出力部10に解の
出力指令を送出する。この出力指令を受け取った解出力
部10は、経路6を通して解計算部2に、すでに計算し
た可到達値集合から解を算出する指令を送り、解計算部
2中の解発生部18(図3)がこれを受けて、結果記憶
部9に記憶された可到達値集合から解を計算し、経路6
を経由して解出力部10に解を返す。最終的な解は、そ
れを受け取った解出力部10が、個々の応用で受け入れ
られる形式で出力する。このとき、解出力部10は、解
計算パターン記憶部8に記憶された指示にしたがって、
m個の解が必要な場合はm個の解だけを、そうでない場
合は全ての解を出力する。
され、かつ、解計算パターン記憶部8に指示された個数
の解が得られた場合、あるいは全ての部分集合V1 (j
1 ),V2 (j2 ),…,VN (jN )に対する処理を
終了した場合は、経路13を通して解出力部10に解の
出力指令を送出する。この出力指令を受け取った解出力
部10は、経路6を通して解計算部2に、すでに計算し
た可到達値集合から解を算出する指令を送り、解計算部
2中の解発生部18(図3)がこれを受けて、結果記憶
部9に記憶された可到達値集合から解を計算し、経路6
を経由して解出力部10に解を返す。最終的な解は、そ
れを受け取った解出力部10が、個々の応用で受け入れ
られる形式で出力する。このとき、解出力部10は、解
計算パターン記憶部8に記憶された指示にしたがって、
m個の解が必要な場合はm個の解だけを、そうでない場
合は全ての解を出力する。
【0051】(3)実例1 なお、具体的な例題を用いて、上記のような処理手順に
よって解を計算する実例を示す。例題は、図8に示すよ
うに、部分A,B,C,Dがそれぞれ代替案a1〜a
6,b1〜b6,c1〜c6,d1〜d6を持つもので
ある。そして、部分A−B,B−C,C−D,D−A間
に制約が存在するものとする。図8では、部分D−A間
の関係を除いて、部分間の代替案間で許される組み合わ
せを線で結んで示している。この他に、代替案a1に対
してd1又はd2だけを、また、代替案a4に対してd
3だけを組み合わせることが許される。
よって解を計算する実例を示す。例題は、図8に示すよ
うに、部分A,B,C,Dがそれぞれ代替案a1〜a
6,b1〜b6,c1〜c6,d1〜d6を持つもので
ある。そして、部分A−B,B−C,C−D,D−A間
に制約が存在するものとする。図8では、部分D−A間
の関係を除いて、部分間の代替案間で許される組み合わ
せを線で結んで示している。この他に、代替案a1に対
してd1又はd2だけを、また、代替案a4に対してd
3だけを組み合わせることが許される。
【0052】すなわち、部分と代替案が 部分A:代替案a1,a2,a3,a4,a5,a6 部分B:代替案b1,b2,b3,b4,b5,b6 部分C:代替案c1,c2,c3,c4,c5,c6 部分D:代替案d1,d2,d3,d4,d5,d6 であり、代替案の可能な組み合わせが 部分Aと部分B(a1:b1),(a3:b3),(a
4:b6),(a5:b5) 部分Aと部分D(a1:d1/d2),(a4:d3) 部分Bと部分C(b1:c2),(b2:c2),(b
3:c3),(b6:c5) 部分Cと部分D(c2:d1),(c5:d2/d
3),(c6:d6) のように問題を設定すると、解としては{a1,b1,
c2,d1}と{a4,b6,c5,d3}の2つが存
在する。解となる代替案間の組み合わせを図8では太線
で結んで示す。この例題に対して、実施形態の手順で解
を求める例を以下に示す。
4:b6),(a5:b5) 部分Aと部分D(a1:d1/d2),(a4:d3) 部分Bと部分C(b1:c2),(b2:c2),(b
3:c3),(b6:c5) 部分Cと部分D(c2:d1),(c5:d2/d
3),(c6:d6) のように問題を設定すると、解としては{a1,b1,
c2,d1}と{a4,b6,c5,d3}の2つが存
在する。解となる代替案間の組み合わせを図8では太線
で結んで示す。この例題に対して、実施形態の手順で解
を求める例を以下に示す。
【0053】(3−1)代替案集合生成部による処理 まず、代替案集合生成部1には部分A,部分B,部分
C,部分D: (a1,a2,a3,a4,a5,a6),(b1,b
2,b3,b4,b5,b6),(c1,c2,c3,
c4,c5,c6),(d1,d2,d3,d4,d
5,d6) (部分A,部分B)=(a1,b1),(a3,b
3),(a4,b6),(a5,b5)/(部分A,部
分D)=(a1,d1),(a1,d2),(a4,d
3)/(部分B,部分C)=(b1,c2),(b2,
c2),(b3,c3),(b6,c5)/(部分C,
部分D)=(c2,d1),(c5,d2),(c5,
d3),(c6,d6)/ なるデータが入力される(図9)。
C,部分D: (a1,a2,a3,a4,a5,a6),(b1,b
2,b3,b4,b5,b6),(c1,c2,c3,
c4,c5,c6),(d1,d2,d3,d4,d
5,d6) (部分A,部分B)=(a1,b1),(a3,b
3),(a4,b6),(a5,b5)/(部分A,部
分D)=(a1,d1),(a1,d2),(a4,d
3)/(部分B,部分C)=(b1,c2),(b2,
c2),(b3,c3),(b6,c5)/(部分C,
部分D)=(c2,d1),(c5,d2),(c5,
d3),(c6,d6)/ なるデータが入力される(図9)。
【0054】すると、代替案集合生成部1は各部分に許
された代替案の集合を2個以下の代替案の集合に分割し
て (ア)部分A,部分B,部分C,部分D:(a1,a
2),(b1,b2),(c1,c2),(d1,d
2) (部分A,部分B)=(a1,b1)/(部分A,部分
D)=(a1,d1),(a1,d2)/(部分B,部
分C)=(b1,c2),(b2,c2)/(部分C,
部分D)=(c2,d1)/ (図10) (イ)部分A,部分B,部分C,部分D:(a1,a
2),(b1,b2),(c1,c2),(d3,d
4) (部分A,部分B)=(a1,b1)/(部分A,部分
D)=無し/(部分B,部分C)=(b1,c2),
(b2,c2)/(部分C,部分D)=無し/ (図11) (ウ)部分A,部分B,部分C,部分D:(a1,a
2),(b1,b2),(c1,c2),(d5,d
6): (部分A,部分B)=(a1,b1),/(部分A,部
分D)=無し/(部分B,部分C)=(b1,c2),
(b2,c2)/(部分C,部分D)=無し/ (図12) (エ)部分A,部分B,部分C,部分D:(a1,a
2),(b1,b2),(c3,c4),(d1,d
2): (部分A,部分B)=(a1,b1)/(部分A,部分
D)=(a1,d1),(a1,d2)/(部分B,部
分C)=無し/(部分C,部分D)=無し/ (図13) (オ)部分A,部分B,部分C,部分D:(a1,a
2),(b1,b2),(c3,c4),(d3,d
4): (部分A,部分B)=(a1,b1)/(部分A,部分
D)=無し/(部分B,部分C)=無し/(部分C,部
分D)=無し/ (図14) ・・・・・・ ・・・・・・ (P)部分A,部分B,部分C,部分D:(a3,a
4),(b5,b6),(c5,c6),(d3,d
4): (部分A,部分B)=(a4,b6)/(部分A,部分
D)=(a4,d3)/(部分B,部分C)=(b6,
c5)/(部分C,部分D)=(c5,d3)/ (図15) ・・・・・・ (Q)部分A,部分B,部分C,部分D:(a5,a
6),(b5,b6),(c5,c6),(d5,d
6): (部分A,部分B)=(a5,b5)/(部分A,部分
D)=無し/(部分B,部分C)=(b6,c5)/
(部分C,部分D)=(c6,d6)/ (図16)の順に問題を生成して、解計算部2に送る。
された代替案の集合を2個以下の代替案の集合に分割し
て (ア)部分A,部分B,部分C,部分D:(a1,a
2),(b1,b2),(c1,c2),(d1,d
2) (部分A,部分B)=(a1,b1)/(部分A,部分
D)=(a1,d1),(a1,d2)/(部分B,部
分C)=(b1,c2),(b2,c2)/(部分C,
部分D)=(c2,d1)/ (図10) (イ)部分A,部分B,部分C,部分D:(a1,a
2),(b1,b2),(c1,c2),(d3,d
4) (部分A,部分B)=(a1,b1)/(部分A,部分
D)=無し/(部分B,部分C)=(b1,c2),
(b2,c2)/(部分C,部分D)=無し/ (図11) (ウ)部分A,部分B,部分C,部分D:(a1,a
2),(b1,b2),(c1,c2),(d5,d
6): (部分A,部分B)=(a1,b1),/(部分A,部
分D)=無し/(部分B,部分C)=(b1,c2),
(b2,c2)/(部分C,部分D)=無し/ (図12) (エ)部分A,部分B,部分C,部分D:(a1,a
2),(b1,b2),(c3,c4),(d1,d
2): (部分A,部分B)=(a1,b1)/(部分A,部分
D)=(a1,d1),(a1,d2)/(部分B,部
分C)=無し/(部分C,部分D)=無し/ (図13) (オ)部分A,部分B,部分C,部分D:(a1,a
2),(b1,b2),(c3,c4),(d3,d
4): (部分A,部分B)=(a1,b1)/(部分A,部分
D)=無し/(部分B,部分C)=無し/(部分C,部
分D)=無し/ (図14) ・・・・・・ ・・・・・・ (P)部分A,部分B,部分C,部分D:(a3,a
4),(b5,b6),(c5,c6),(d3,d
4): (部分A,部分B)=(a4,b6)/(部分A,部分
D)=(a4,d3)/(部分B,部分C)=(b6,
c5)/(部分C,部分D)=(c5,d3)/ (図15) ・・・・・・ (Q)部分A,部分B,部分C,部分D:(a5,a
6),(b5,b6),(c5,c6),(d5,d
6): (部分A,部分B)=(a5,b5)/(部分A,部分
D)=無し/(部分B,部分C)=(b6,c5)/
(部分C,部分D)=(c6,d6)/ (図16)の順に問題を生成して、解計算部2に送る。
【0055】(3−2)解計算部2による処理 代替案集合生成部1から最初の入力データ (ア)部分A,部分B,部分C,部分D:(a1,a
2),(b1,b2),(c1,c2),(d1,d
2): (部分A,部分B)=(a1,b1)/(部分A,部分
D)=(a1,d1),(a1,d2)/(部分B,部
分C)=(b1,c2),(b2,c2)/(部分C,
部分D)=(c2,d1)/が与えられると(図1
0)、解計算部2では、図4及び5に示した手順にした
がって、まず、各代替案の各部分上での可到達値集合を
計算する。
2),(b1,b2),(c1,c2),(d1,d
2): (部分A,部分B)=(a1,b1)/(部分A,部分
D)=(a1,d1),(a1,d2)/(部分B,部
分C)=(b1,c2),(b2,c2)/(部分C,
部分D)=(c2,d1)/が与えられると(図1
0)、解計算部2では、図4及び5に示した手順にした
がって、まず、各代替案の各部分上での可到達値集合を
計算する。
【0056】すなわち、ステップ41ではAの代替案a
1,a2に対して、まず、部分A上の可到達値集合r
(A:a1)=a1,可到達値集合r(A:a2)=a
2とする。また、既算集合F={A}で、Aに隣接する
部分の集合はB,Dであるので未算集合G=未算集合G
*={B,D}となる(図17)。そこで、ステップ4
2ではまずBを未算集合G*から取り出して未算集合G
*={D}とし、さらに、代替案a1とb1が可接続で
あるので可到達値集合r(B:a1)={b1}(部分
Bでa1と可接続のものはb1、の意)となるが、代替
案a2と可接続なBの代替案が無いので可到達値集合r
(B:a2)は空集合となる(図18)。ここで、可到
達値集合r(B:a1)={b1}は、部分Bで代替案
a1と可接続のものはb1、の意である。なお、図18
において、代替案b2については、部分Aのどの代替案
とも可接続ではない。
1,a2に対して、まず、部分A上の可到達値集合r
(A:a1)=a1,可到達値集合r(A:a2)=a
2とする。また、既算集合F={A}で、Aに隣接する
部分の集合はB,Dであるので未算集合G=未算集合G
*={B,D}となる(図17)。そこで、ステップ4
2ではまずBを未算集合G*から取り出して未算集合G
*={D}とし、さらに、代替案a1とb1が可接続で
あるので可到達値集合r(B:a1)={b1}(部分
Bでa1と可接続のものはb1、の意)となるが、代替
案a2と可接続なBの代替案が無いので可到達値集合r
(B:a2)は空集合となる(図18)。ここで、可到
達値集合r(B:a1)={b1}は、部分Bで代替案
a1と可接続のものはb1、の意である。なお、図18
において、代替案b2については、部分Aのどの代替案
とも可接続ではない。
【0057】さらに、ステップ44では、可到達値集合
r(A:a2)の要素a2が可到達値集合r(B:a
2)のどの要素とも可接続ではないので、可到達値集合
r(A:a2)から代替案a2が削除されて空集合とな
り、削除集合Hに{A,a2,a2}が追加される(図
19)。なお、図19において代替案a2は、部分Bの
どの代替案とも可接続ではない。
r(A:a2)の要素a2が可到達値集合r(B:a
2)のどの要素とも可接続ではないので、可到達値集合
r(A:a2)から代替案a2が削除されて空集合とな
り、削除集合Hに{A,a2,a2}が追加される(図
19)。なお、図19において代替案a2は、部分Bの
どの代替案とも可接続ではない。
【0058】ここで、既算集合Fに部分Bが追加されて
既算集合F={A,B}となり、未算集合G*が空では
ないのでステップ42に戻って未算集合G*から部分D
を取り出し未算集合G*が空集合になる。ここで、部分
Dには代替案d1とd2が存在し、ともに代替案a1と
可接続であるので(部分BとDは制約関係が無い)可到
達値集合r(D:a1)={d1,d2}、また、既算
集合F={A,B,D}となる(図20)。すると、未
算集合G*が空集合であり、また、削除集合Hが{A,
a2,a2}を含んでいるので、ステップ46に進む
が、既に可到達値集合r(A:a2)が空集合であるの
で、何も起こらずにステップ49に進む。ここでは、未
算集合G={B,D}に隣接して既算集合Fに含まれな
い部分として未算集合G={C}が計算され、未算集合
G*=未算集合Gとなってステップ42に戻る(図2
1)。
既算集合F={A,B}となり、未算集合G*が空では
ないのでステップ42に戻って未算集合G*から部分D
を取り出し未算集合G*が空集合になる。ここで、部分
Dには代替案d1とd2が存在し、ともに代替案a1と
可接続であるので(部分BとDは制約関係が無い)可到
達値集合r(D:a1)={d1,d2}、また、既算
集合F={A,B,D}となる(図20)。すると、未
算集合G*が空集合であり、また、削除集合Hが{A,
a2,a2}を含んでいるので、ステップ46に進む
が、既に可到達値集合r(A:a2)が空集合であるの
で、何も起こらずにステップ49に進む。ここでは、未
算集合G={B,D}に隣接して既算集合Fに含まれな
い部分として未算集合G={C}が計算され、未算集合
G*=未算集合Gとなってステップ42に戻る(図2
1)。
【0059】ステップ42では、今度はまず、部分Cを
未算集合G*={C}から取り出して未算集合G*を空
集合とし、さらに代替案c2とb1およびc2とd1が
可接続であるので可到達値集合r(C:a1)={c
2}となるが(図22)、代替案d2と可接続な可到達
値集合r(C:a1)の要素が存在しないので、ステッ
プ44で可到達値集合r(D:a1)={d1,d2}
からd2が削除され、{D,d2,a1}が削除集合H
に追加される(図23)。なお、図22において、代替
案c1は、部分Dのどの代替案とも可接続ではない。ま
た、図23において、代替案d2は、部分Cのどの代替
案とも可接続ではない。
未算集合G*={C}から取り出して未算集合G*を空
集合とし、さらに代替案c2とb1およびc2とd1が
可接続であるので可到達値集合r(C:a1)={c
2}となるが(図22)、代替案d2と可接続な可到達
値集合r(C:a1)の要素が存在しないので、ステッ
プ44で可到達値集合r(D:a1)={d1,d2}
からd2が削除され、{D,d2,a1}が削除集合H
に追加される(図23)。なお、図22において、代替
案c1は、部分Dのどの代替案とも可接続ではない。ま
た、図23において、代替案d2は、部分Cのどの代替
案とも可接続ではない。
【0060】また、代替案c1と可接続な可到達値集合
r(B:a1)、可到達値集合r(D:a1)の要素が
ないので代替案c1は可到達値集合r(C:a1)には
含まれない(図22)。次に既算集合FにCが追加され
て既算集合F={A,B,C,D}となる。さらに削除
集合Hが{D,d2,a1}を含むのでステップ46に
進むが、Dに隣接するA,C上では可到達値集合r
(A:a1)の要素a1と可到達値集合r(C:a1)
の要素c2がともにd2ではない可到達値集合r(D:
a1)の要素d1と可接続であるので、何も起こらずに
ステップ49に進む(図24)。なお、図24におい
て、代替案a1は、代替案d2と可接続であるが、代替
案d1とも可接続であるので、代替案d2が削除されて
も何も起こらない。
r(B:a1)、可到達値集合r(D:a1)の要素が
ないので代替案c1は可到達値集合r(C:a1)には
含まれない(図22)。次に既算集合FにCが追加され
て既算集合F={A,B,C,D}となる。さらに削除
集合Hが{D,d2,a1}を含むのでステップ46に
進むが、Dに隣接するA,C上では可到達値集合r
(A:a1)の要素a1と可到達値集合r(C:a1)
の要素c2がともにd2ではない可到達値集合r(D:
a1)の要素d1と可接続であるので、何も起こらずに
ステップ49に進む(図24)。なお、図24におい
て、代替案a1は、代替案d2と可接続であるが、代替
案d1とも可接続であるので、代替案d2が削除されて
も何も起こらない。
【0061】ここでは、既算集合Fに含まれない要素が
もう存在しないので未算集合Gが空集合となり、今度は
部分Bの代替案b1とb2の可到達値集合の算出が行わ
れる。同様に部分C,Dに対する処理が行なわれて、結
局 r(A:a1)={a1},r(A:a2)=空,r
(B:a1)={b1},r(B:a2)=空,r
(C:a1)={c2},r(C:a2)=空,r
(D:a1)={d1},r(D:a2)=空,r
(A:b1)={a1},r(A:b2)=空,r
(B:b1)={b1},r(B:b2)=空,r
(C:b1)={c2},r(C:b2)=空,r
(D:b1)={d1},r(D:b2)=空,r
(A:c1)=空, r(A:c2)={a1},
r(B:c1)=空, r(B:c2)={b
1},r(C:c1)=空, r(C:c2)=
{c2},r(D:c1)=空, r(D:c2)
={d1},r(A:d1)={a1},r(A:b
2)=空,r(B:d1)={b1},r(B:d2)
=空,r(C:d1)={c2},r(C:d2)=
空,r(D:d1)={d1},r(D:d2)=空と
なる。
もう存在しないので未算集合Gが空集合となり、今度は
部分Bの代替案b1とb2の可到達値集合の算出が行わ
れる。同様に部分C,Dに対する処理が行なわれて、結
局 r(A:a1)={a1},r(A:a2)=空,r
(B:a1)={b1},r(B:a2)=空,r
(C:a1)={c2},r(C:a2)=空,r
(D:a1)={d1},r(D:a2)=空,r
(A:b1)={a1},r(A:b2)=空,r
(B:b1)={b1},r(B:b2)=空,r
(C:b1)={c2},r(C:b2)=空,r
(D:b1)={d1},r(D:b2)=空,r
(A:c1)=空, r(A:c2)={a1},
r(B:c1)=空, r(B:c2)={b
1},r(C:c1)=空, r(C:c2)=
{c2},r(D:c1)=空, r(D:c2)
={d1},r(A:d1)={a1},r(A:b
2)=空,r(B:d1)={b1},r(B:d2)
=空,r(C:d1)={c2},r(C:d2)=
空,r(D:d1)={d1},r(D:d2)=空と
なる。
【0062】図6に示す可到達値集合を完全化する処理
では、これらの可到達値集合から、可到達値集合r
(P:q)がpを含み可到達値集合r(P:p)が空集
合である場合に可到達値集合r(P:q)からpを削除
するが、この例ではこのような場合は無いので何も起こ
らない。さらに、図7に示す解の計算の処理では、まず
ステップ71で可到達値集合r(A:a1)={a1}
であるので代替案a1が選ばれる。ステップ72では、
可到達値集合r(B:a1),可到達値集合r(C:a
1),可到達値集合r(D:a1)に含まれない部分
B,C,Dの要素b2,c1,d2の可到達値集合はい
ずれも空集合であるので、何もせずにステップ72に戻
り、今度は可到達値集合r(B:b1)={b1}であ
るのでBの代替案としてb1が選ばれる。以降同様に、
c2,d1が選ばれて、結局解{a1,b1,c2,d
1}が求まる。
では、これらの可到達値集合から、可到達値集合r
(P:q)がpを含み可到達値集合r(P:p)が空集
合である場合に可到達値集合r(P:q)からpを削除
するが、この例ではこのような場合は無いので何も起こ
らない。さらに、図7に示す解の計算の処理では、まず
ステップ71で可到達値集合r(A:a1)={a1}
であるので代替案a1が選ばれる。ステップ72では、
可到達値集合r(B:a1),可到達値集合r(C:a
1),可到達値集合r(D:a1)に含まれない部分
B,C,Dの要素b2,c1,d2の可到達値集合はい
ずれも空集合であるので、何もせずにステップ72に戻
り、今度は可到達値集合r(B:b1)={b1}であ
るのでBの代替案としてb1が選ばれる。以降同様に、
c2,d1が選ばれて、結局解{a1,b1,c2,d
1}が求まる。
【0063】同じ操作が(イ)以降のすべてのデータに
対して施されるが、データ(P)以外は解を持たないの
で、すべての可到達値集合が空集合となるが、データ
(P)に対しては解{a4,b6,c5,d3}が求ま
る。
対して施されるが、データ(P)以外は解を持たないの
で、すべての可到達値集合が空集合となるが、データ
(P)に対しては解{a4,b6,c5,d3}が求ま
る。
【0064】(4)実例2 次に、代替案集合を分割しないと、解が存在しないにも
かかわらず可到達値集合が空にはならない実例を示す。
かかわらず可到達値集合が空にはならない実例を示す。
【0065】(4−1)代替案集合生成部による処理 部分と代替案を 部分A代替案a1,a2,a3 部分B代替案b1,b2,b3 部分C代替案c1,c2,c3 部分D代替案d1,d2,d3 代替案の可能な組み合わせを 部分Aと部分B(a1:b2/b3),(a2:b1/
b3),(a3:b1/b2) 部分Aと部分C(a1:c2/c3),(a2:c1/
c3),(a3:c1/c2) 部分Aと部分D(a1:d2/d3),(a2:d1/
d3),(a3:d1/d2) 部分Bと部分C(b1:c2/c3),(b2:c1/
c3),(b3:c1/c2) 部分Bと部分D(b1:d2/d3),(b2:d1/
d3),(b3:d1/d2) 部分Cと部分D(c1:d2/d3),(c2:d1/
d3),(c3:d1/d2) とすると、まず、代替案集合生成部1には 部分A,部分B,部分C,部分D:(a1,a2,a
3),(b1,b2,b3),(c1,c2,c3),
(d1,d2,d3): (部分A,部分B)=(a1,b2),(a1,b
3),(a2,b1),(a2,b3),(a3,b
1),(a3,b2)/(部分A,部分C)=(a1,
c2),(a1,c3),(a2,c1),(a2,c
3),(a3,c1),(a3,c2)/(部分A,部
分D)=(a1,d2),(a1,d3),(a2,d
1),(a2,d3),(a3,d1),(a3,d
2)/(部分B,部分C)=(b1,c2),(b1,
c3),(b2,c1),(b2,c3),(b3,c
1),(b3,c2)/(部分B,部分D)=(b1,
d2),(b1,d3),(b2,d1),(b2,d
3),(b3,d1),(b3,d2)/(部分C,部
分D)=(c1,d2),(c1,d3),(c2,d
1),(c2,d3),(c3,d1),(c3,d
2)/なるデータが入力される(図25)。
b3),(a3:b1/b2) 部分Aと部分C(a1:c2/c3),(a2:c1/
c3),(a3:c1/c2) 部分Aと部分D(a1:d2/d3),(a2:d1/
d3),(a3:d1/d2) 部分Bと部分C(b1:c2/c3),(b2:c1/
c3),(b3:c1/c2) 部分Bと部分D(b1:d2/d3),(b2:d1/
d3),(b3:d1/d2) 部分Cと部分D(c1:d2/d3),(c2:d1/
d3),(c3:d1/d2) とすると、まず、代替案集合生成部1には 部分A,部分B,部分C,部分D:(a1,a2,a
3),(b1,b2,b3),(c1,c2,c3),
(d1,d2,d3): (部分A,部分B)=(a1,b2),(a1,b
3),(a2,b1),(a2,b3),(a3,b
1),(a3,b2)/(部分A,部分C)=(a1,
c2),(a1,c3),(a2,c1),(a2,c
3),(a3,c1),(a3,c2)/(部分A,部
分D)=(a1,d2),(a1,d3),(a2,d
1),(a2,d3),(a3,d1),(a3,d
2)/(部分B,部分C)=(b1,c2),(b1,
c3),(b2,c1),(b2,c3),(b3,c
1),(b3,c2)/(部分B,部分D)=(b1,
d2),(b1,d3),(b2,d1),(b2,d
3),(b3,d1),(b3,d2)/(部分C,部
分D)=(c1,d2),(c1,d3),(c2,d
1),(c2,d3),(c3,d1),(c3,d
2)/なるデータが入力される(図25)。
【0066】すると、代替案集合生成部1は各部分に許
された代替案の集合を2個以下の代替案の集合に分割し
て (ア)部分A,部分B,部分C,部分D:(a1,a
2),(b1,b2),(c1,c2), (d1,d2):(部分A,部分B)=(a1,b
2),(a2,b1)/(部分A,部分C)=(a1,
c2),(a2,c1)/(部分A,部分D)=(c
1,d2),(a2,d1)/(部分B,部分C)=
(b1,c2),(b2,c1)/(部分B,部分D)
=(b1,d2),(b2,d1)/(部分C,部分
D)=(c1,d2),(c2,d1)/ (図27) (イ)部分A,部分B,部分C,部分D:(a1,a
2),(b1,b2),(c1,c2),(d3): (部分A,部分B)=(a1,b2),(a2,b1)
/(部分A,部分C)=(a1,c2),(a2,c
1)/(部分A,部分D)=(a1,d3),(a2,
d3)/(部分B,部分C)=(b1,c2),(b
2,c1)/(部分B,部分D)=(b1,d3),
(b2,d3)/(部分C,部分D)=(c1,d
3),(c2,d3)/ (ウ)部分A,部分B,部分C,部分D:(a1,a
2),(b1,b2),(c3),(d1,d2): (部分A,部分B)=(a1,b2),(a2,b1)
/(部分A,部分C)=(a1,c3),(a2,c
3)/(部分A,部分D)=(a1,d2),(a2,
d1)/(部分B,部分C)=(b1,c3),(b
2,c3)/(部分B,部分D)=(b1,d2),
(b2,d1)/(部分C,部分D)=(c1,d
3),(c2,d3)/ (エ)部分A,部分B,部分C,部分D:(a1,a
2),(b3),(c1,c2),(d1,d2): (部分A,部分B)=(a1,b3),(a2,b3)
/(部分A,部分C)=(a1,c2),(a2,c
1)/(部分A,部分D)=(a1,d2),(a2,
d1)/(部分B,部分C)=(b3,c2),(b
3,c1)/(部分B,部分D)=(b3,d2),
(b3,d1)/(部分C,部分D)=(c1,d
2),(c2,d1)/ (オ)部分A,部分B,部分C,部分D:(a3),
(b1,b2),(c1,c2),(d1,d2): (部分A,部分B)=(a3,b1),(a3,b2)
/(部分A,部分C)=(a3,c1),(a3,c
2)/(部分A,部分D)=(a3,d1),(a3,
d2)/(部分B,部分C)=(b1,c2),(b
2,c1)/(部分B,部分D)=(b1,d2),
(b2,d1)/(部分C,部分D)=(c1,d
2),(c2,d1)/ (カ)部分A,部分B,部分C,部分D:(a1,a
2),(b1,b2),(c3),(d3): (部分A,部分B)=(a1,b2),(a2,b1)
/(部分A,部分C)=(a1,c3),(a2,c
3)/(部分A,部分D)=(a1,d3),(a2,
d3)/(部分B,部分C)=(b1,c3),(b
2,c3)/(部分B,部分D)=(b1,d3),
(b2,d3)/(部分C,部分D)=(c3,d3)
/ …… (A)部分A,部分B,部分C,部分D:(a3),
(b3),(c3),(d3): (部分A,部分B)=無し/(部分A,部分C)=無し
/(部分A,部分D)=無し)/(部分B,部分C)=
無し/(部分B,部分D)=無し/(部分C,部分D)
=無し/の順に問題を生成して、解計算部2に送る。
された代替案の集合を2個以下の代替案の集合に分割し
て (ア)部分A,部分B,部分C,部分D:(a1,a
2),(b1,b2),(c1,c2), (d1,d2):(部分A,部分B)=(a1,b
2),(a2,b1)/(部分A,部分C)=(a1,
c2),(a2,c1)/(部分A,部分D)=(c
1,d2),(a2,d1)/(部分B,部分C)=
(b1,c2),(b2,c1)/(部分B,部分D)
=(b1,d2),(b2,d1)/(部分C,部分
D)=(c1,d2),(c2,d1)/ (図27) (イ)部分A,部分B,部分C,部分D:(a1,a
2),(b1,b2),(c1,c2),(d3): (部分A,部分B)=(a1,b2),(a2,b1)
/(部分A,部分C)=(a1,c2),(a2,c
1)/(部分A,部分D)=(a1,d3),(a2,
d3)/(部分B,部分C)=(b1,c2),(b
2,c1)/(部分B,部分D)=(b1,d3),
(b2,d3)/(部分C,部分D)=(c1,d
3),(c2,d3)/ (ウ)部分A,部分B,部分C,部分D:(a1,a
2),(b1,b2),(c3),(d1,d2): (部分A,部分B)=(a1,b2),(a2,b1)
/(部分A,部分C)=(a1,c3),(a2,c
3)/(部分A,部分D)=(a1,d2),(a2,
d1)/(部分B,部分C)=(b1,c3),(b
2,c3)/(部分B,部分D)=(b1,d2),
(b2,d1)/(部分C,部分D)=(c1,d
3),(c2,d3)/ (エ)部分A,部分B,部分C,部分D:(a1,a
2),(b3),(c1,c2),(d1,d2): (部分A,部分B)=(a1,b3),(a2,b3)
/(部分A,部分C)=(a1,c2),(a2,c
1)/(部分A,部分D)=(a1,d2),(a2,
d1)/(部分B,部分C)=(b3,c2),(b
3,c1)/(部分B,部分D)=(b3,d2),
(b3,d1)/(部分C,部分D)=(c1,d
2),(c2,d1)/ (オ)部分A,部分B,部分C,部分D:(a3),
(b1,b2),(c1,c2),(d1,d2): (部分A,部分B)=(a3,b1),(a3,b2)
/(部分A,部分C)=(a3,c1),(a3,c
2)/(部分A,部分D)=(a3,d1),(a3,
d2)/(部分B,部分C)=(b1,c2),(b
2,c1)/(部分B,部分D)=(b1,d2),
(b2,d1)/(部分C,部分D)=(c1,d
2),(c2,d1)/ (カ)部分A,部分B,部分C,部分D:(a1,a
2),(b1,b2),(c3),(d3): (部分A,部分B)=(a1,b2),(a2,b1)
/(部分A,部分C)=(a1,c3),(a2,c
3)/(部分A,部分D)=(a1,d3),(a2,
d3)/(部分B,部分C)=(b1,c3),(b
2,c3)/(部分B,部分D)=(b1,d3),
(b2,d3)/(部分C,部分D)=(c3,d3)
/ …… (A)部分A,部分B,部分C,部分D:(a3),
(b3),(c3),(d3): (部分A,部分B)=無し/(部分A,部分C)=無し
/(部分A,部分D)=無し)/(部分B,部分C)=
無し/(部分B,部分D)=無し/(部分C,部分D)
=無し/の順に問題を生成して、解計算部2に送る。
【0067】(4−2)解計算部2による処理 代替案集合生成部1から最初の入力データ (ア)部分A,部分B,部分C,部分D:(a1,a
2),(b1,b2),(c1,c2), (d1,d2):(部分A,部分B)=(a1,b
2),(a2,b1)/(部分A,部分C)=(A1,
C2),(A2,C1)/(部分A,部分D)=(a
1,d2),(a2,d1)/(部分B,部分C)=
(b1,c2),(b2,c1)/(部分B,部分D)
=(b1,d2),(b2,d1)/(部分C,部分
D)=(c1,d2),(c2,d1)/が与えられた
場合を考える。
2),(b1,b2),(c1,c2), (d1,d2):(部分A,部分B)=(a1,b
2),(a2,b1)/(部分A,部分C)=(A1,
C2),(A2,C1)/(部分A,部分D)=(a
1,d2),(a2,d1)/(部分B,部分C)=
(b1,c2),(b2,c1)/(部分B,部分D)
=(b1,d2),(b2,d1)/(部分C,部分
D)=(c1,d2),(c2,d1)/が与えられた
場合を考える。
【0068】この場合、図4に示す手順では、まず各代
替案の各部分上での可到達値集合を計算する。すなわ
ち、ステップ41では、例えばAの代替案a1に対し
て、まず部分A上の可到達値集合r(A:a1)=a1
とする。ステップ42〜45では最初は既算集合F=
{A}であり、また、部分Aに隣接する部分の集合は
B,C,Dであるので未算集合G*={B,C,D}で
ある。そこで未算集合G*からまずBを取り出すと、可
到達値集合r(B:a1)={b2}となる。次に未算
集合G*からCを取り出すと、部分Cの代替案c1とc
2は共に可到達値集合r(A:a1)={a1}と可到
達値集合r(B:a1)={b2}のどちらかと矛盾す
るので可到達値集合r(C:a1)は空集合になる。同
じように可到達値集合r(C:a2)も空集合になるの
で、(ア)は解を持たず処理は終了する(図27)。な
お、図27において、代替案c1は、可到達値集合r
(A:a1)のどの代替案とも可接続ではなく、また、
代替案c2は、可到達値集合r(B:a1)のどの代替
案とも可接続ではない。
替案の各部分上での可到達値集合を計算する。すなわ
ち、ステップ41では、例えばAの代替案a1に対し
て、まず部分A上の可到達値集合r(A:a1)=a1
とする。ステップ42〜45では最初は既算集合F=
{A}であり、また、部分Aに隣接する部分の集合は
B,C,Dであるので未算集合G*={B,C,D}で
ある。そこで未算集合G*からまずBを取り出すと、可
到達値集合r(B:a1)={b2}となる。次に未算
集合G*からCを取り出すと、部分Cの代替案c1とc
2は共に可到達値集合r(A:a1)={a1}と可到
達値集合r(B:a1)={b2}のどちらかと矛盾す
るので可到達値集合r(C:a1)は空集合になる。同
じように可到達値集合r(C:a2)も空集合になるの
で、(ア)は解を持たず処理は終了する(図27)。な
お、図27において、代替案c1は、可到達値集合r
(A:a1)のどの代替案とも可接続ではなく、また、
代替案c2は、可到達値集合r(B:a1)のどの代替
案とも可接続ではない。
【0069】この場合は(イ)以下も解を持たずに処理
が終了し、結局に代替案集合生成部1に最初に与えられ
た元の問題は解を持たないことになる。元の問題は実際
に解を持たないので正しく処理が終わったことになる。
が終了し、結局に代替案集合生成部1に最初に与えられ
た元の問題は解を持たないことになる。元の問題は実際
に解を持たないので正しく処理が終わったことになる。
【0070】しかし、元の代替案集合を分割せずに 部分A,部分B,部分C,部分D:(a1,a2,a
3),(b1,b2,b3),(c1,c2,c3),
(d1,d2,d3): (部分A,部分B)=(a1,b2),(a1,b
3),(a2,b1),(a2,b3),(a3,b
1),(a3,b2)/(部分A,部分C)=(a1,
c2),(a1,c3),(a2,c1),(a2,c
3),(a3,c1),(a3,c2)/(部分A,部
分D)=(a1,d2),(a1,d3),(a2,d
1),(a2,d3),(a3,d1),(a3,d
2)/(部分B,部分C)=(b1,c2),(b1,
c3),(b2,c1),(b2,c3),(b3,c
1),(b3,c2)/(部分B,部分D)=(b1,
d2),(b1,d3),(b2,d1),(b2,d
3),(b3,d1),(b3,d2)/(部分C,部
分D)=(c1,d2),(c1,d3),(c2,d
1),(c2,d3),(c3,d1),(c3,d
2)/をそのまま解計算部2に与える場合を考える(図
25)。
3),(b1,b2,b3),(c1,c2,c3),
(d1,d2,d3): (部分A,部分B)=(a1,b2),(a1,b
3),(a2,b1),(a2,b3),(a3,b
1),(a3,b2)/(部分A,部分C)=(a1,
c2),(a1,c3),(a2,c1),(a2,c
3),(a3,c1),(a3,c2)/(部分A,部
分D)=(a1,d2),(a1,d3),(a2,d
1),(a2,d3),(a3,d1),(a3,d
2)/(部分B,部分C)=(b1,c2),(b1,
c3),(b2,c1),(b2,c3),(b3,c
1),(b3,c2)/(部分B,部分D)=(b1,
d2),(b1,d3),(b2,d1),(b2,d
3),(b3,d1),(b3,d2)/(部分C,部
分D)=(c1,d2),(c1,d3),(c2,d
1),(c2,d3),(c3,d1),(c3,d
2)/をそのまま解計算部2に与える場合を考える(図
25)。
【0071】この場合も、ステップ41ではまず部分A
上の代替案a1の可到達値集合はr(A:a1)=a1
となり、ステップ42〜45では最初は既算集合F=
{A}で、また、部分Aに隣接する部分の集合はB,
C,Dであるので未算集合G*={B,C,D}である
ことまでは先と同じである。そこで未算集合G*からま
ずBを取り出すと、この場合は、可到達値集合r(B:
a1)={b2,b3}である。したがって、次に未算
集合G*から部分Cを取り出すと、c2とc3がa1と
矛盾しないが、c2はa1およびb3と矛盾せず、ま
た、c3はa1およびb2と矛盾しないので、可到達値
集合r(C:a1)={c2,c3}となる。同じよう
にして、結局 r(A:a1)=a1 r(B:a1)={b2,b3} r(C:a1)={c2,c3} r(D:a1)={d2,d3} r(A:a2)=a2 r(B:a2)={b1,b3} r(C:a2)={c1,c3} r(D:a2)={d1,d3} r(A:a3)=a3 r(B:a3)={b1,b2} r(C:a3)={c1,c2} r(D:a3)={d1,d2} ・・・ となる。したがって、解が存在しないことをここでは判
定できず、ステップ3で種々の組み合わせを試してそれ
が判ることになる(図26)。
上の代替案a1の可到達値集合はr(A:a1)=a1
となり、ステップ42〜45では最初は既算集合F=
{A}で、また、部分Aに隣接する部分の集合はB,
C,Dであるので未算集合G*={B,C,D}である
ことまでは先と同じである。そこで未算集合G*からま
ずBを取り出すと、この場合は、可到達値集合r(B:
a1)={b2,b3}である。したがって、次に未算
集合G*から部分Cを取り出すと、c2とc3がa1と
矛盾しないが、c2はa1およびb3と矛盾せず、ま
た、c3はa1およびb2と矛盾しないので、可到達値
集合r(C:a1)={c2,c3}となる。同じよう
にして、結局 r(A:a1)=a1 r(B:a1)={b2,b3} r(C:a1)={c2,c3} r(D:a1)={d2,d3} r(A:a2)=a2 r(B:a2)={b1,b3} r(C:a2)={c1,c3} r(D:a2)={d1,d3} r(A:a3)=a3 r(B:a3)={b1,b2} r(C:a3)={c1,c2} r(D:a3)={d1,d2} ・・・ となる。したがって、解が存在しないことをここでは判
定できず、ステップ3で種々の組み合わせを試してそれ
が判ることになる(図26)。
【0072】(5)証明 なお、上記の処理手順によって解が正しく求められるこ
との証明を以下に示す。
との証明を以下に示す。
【0073】(5−1)定義1:制約充足問題 CSP
(X,Z,V,C) X={X1 ,X2 ,・・・}を変数の集合、ZをXに属
する変数の対の集合とし、変数対
(X,Z,V,C) X={X1 ,X2 ,・・・}を変数の集合、ZをXに属
する変数の対の集合とし、変数対
【数1】 が採り得る値の組み合わせに制約があるとする。つまり
{Xi ,Xj }には許された値の組しか代入することが
できない。この時、Xのすべての変数にすべての制約を
満たす値を代入する問題をCSP(X,Z,V,C)と
呼ぶ。また、制約を満足する値の組をCSP(X,Z,
V,C)の解と呼ぶ。ここで、V={V1,V2 ,・・
・}は変数Xi (i=1,2,・・・)に代入可能な値
の集合Viの列であり、C={Ci ,j }はZの変数対
{Xi ,Xj }(i,j=1,2,・・・)に許された
値の組み合わせの集合の列である。
{Xi ,Xj }には許された値の組しか代入することが
できない。この時、Xのすべての変数にすべての制約を
満たす値を代入する問題をCSP(X,Z,V,C)と
呼ぶ。また、制約を満足する値の組をCSP(X,Z,
V,C)の解と呼ぶ。ここで、V={V1,V2 ,・・
・}は変数Xi (i=1,2,・・・)に代入可能な値
の集合Viの列であり、C={Ci ,j }はZの変数対
{Xi ,Xj }(i,j=1,2,・・・)に許された
値の組み合わせの集合の列である。
【0074】さらにCSP(X,Z,V,C)の変数
【数2】 は
【数3】 であれば互いに隣接すると言い、Xi に隣接するすべて
の変数の集合をXi の隣接集合と呼ぶ。また、
の変数の集合をXi の隣接集合と呼ぶ。また、
【数4】 とする時、{Vi ,Vj }の要素の組{vi ,vj }が
Cの要素であれば、viとvj は可接続であるという。
Cの要素であれば、viとvj は可接続であるという。
【0075】(5−2)定義2:可到達値集合 CSP(X,Z,V,C)の互いに隣接するループを含
む任意の変数列{Xi,…,Xk }上に、Xi ,Xk 上
で各々wi ,wk となる互いに可接続な値の列
む任意の変数列{Xi,…,Xk }上に、Xi ,Xk 上
で各々wi ,wk となる互いに可接続な値の列
【数5】 が存在する時、Xk の値wk はXi の値wi から可到達
であるという。そしてwi から可到達なすべての値から
成るVk の部分集合を、Xk 上のwi の可到達値集合と
呼びr(Xk :wi )と表わす。ただし変数列{Xi ,
…,Xk }が同じ変数を複数個含む場合は、Xi とXk
以外の変数Xp に与えられる値は各々異なっていてもよ
い。
であるという。そしてwi から可到達なすべての値から
成るVk の部分集合を、Xk 上のwi の可到達値集合と
呼びr(Xk :wi )と表わす。ただし変数列{Xi ,
…,Xk }が同じ変数を複数個含む場合は、Xi とXk
以外の変数Xp に与えられる値は各々異なっていてもよ
い。
【0076】(5−3)定義3:完全な値集合 CSP(X,Z,V,C)において、X={X1 ,X2
,・・・}、V={V1 ,V2 ,・・・}とし、Vの
部分集合を
,・・・}、V={V1 ,V2 ,・・・}とし、Vの
部分集合を
【数6】 としてCSP(X,Z,V,C)を構成する。また、可
到達値集合r(Xh :wk )をCSP(X,Z,V,
C)における値
到達値集合r(Xh :wk )をCSP(X,Z,V,
C)における値
【数7】 のXh 上の可到達値集合とする。ここで、すべてのiに
対して Vi ≠φであり、また、
対して Vi ≠φであり、また、
【数8】 ならば任意のXj 上で 可到達値集合r(Xj :wk )
≠φ、さらに
≠φ、さらに
【数9】 なら
【数10】 が成り立つ時、値集合Vは完全であるという。また、V
が完全な値集合Vを含む時、CSP(X,Z,V,C)
は完全であるという。さらにCSP(X,Z,V,C)
の完全な値集合Vが、CSP(X,V,Z,C)の任意
の解{w1 ,w2,・・・}に属するすべての値wj を
含む時、VはCSP(X,V,Z,C)の最大の完全な
値集合であるという。
が完全な値集合Vを含む時、CSP(X,Z,V,C)
は完全であるという。さらにCSP(X,Z,V,C)
の完全な値集合Vが、CSP(X,V,Z,C)の任意
の解{w1 ,w2,・・・}に属するすべての値wj を
含む時、VはCSP(X,V,Z,C)の最大の完全な
値集合であるという。
【0077】(5−4)定理1 各変数Xi の値集合Vi が高々2個の値から成るCSP
(X,Z,V,C)が解を持つ必要十分条件は、CSP
(X,Z,V,C)が完全であることである。また、V
が完全な値集合であると、任意の値
(X,Z,V,C)が解を持つ必要十分条件は、CSP
(X,Z,V,C)が完全であることである。また、V
が完全な値集合であると、任意の値
【数11】 を含むCSP(X,Z,V,C)の解が存在する。
【0078】(5−6)証明 CSP(X,Z,V,C)がN個の変数{X1 ,・・
・,XN }を持つとして、その解を{v1 ,・・・,v
N }とする。すると V={v1 ,・・・,vN}は明
らかに完全である。したがって、定理の条件はCSP
(X,Z,V,C)が解を持つための必要条件である。
そこでCSP(X,Z,V,C)の完全な値集合をVと
し、CSP(X,Z,V,C)における変数Xk の値w
k のXh 上の可到達値集合をr(Xh :wk )として、
定理の条件が十分条件であることを証明する。
・,XN }を持つとして、その解を{v1 ,・・・,v
N }とする。すると V={v1 ,・・・,vN}は明
らかに完全である。したがって、定理の条件はCSP
(X,Z,V,C)が解を持つための必要条件である。
そこでCSP(X,Z,V,C)の完全な値集合をVと
し、CSP(X,Z,V,C)における変数Xk の値w
k のXh 上の可到達値集合をr(Xh :wk )として、
定理の条件が十分条件であることを証明する。
【0079】まず、Vが完全で
【数12】 ならすべてのXh 上で
【数13】 となることを示す。そこであるXh 上で
【数14】 であると仮定する。するとVh が高々2つの要素{wh
,wh }しか含まず、可到達値集合r(Xh :wk )
≠φ、可到達値集合r(Xh :wj )≠φであるので、
,wh }しか含まず、可到達値集合r(Xh :wk )
≠φ、可到達値集合r(Xh :wj )≠φであるので、
【数15】 なら
【数16】 でかつ、可到達値集合r(Xh :wk )はwh を、ま
た、可到達値集合r(Xh:wj )はwh を含まない。
た、可到達値集合r(Xh:wj )はwh を含まない。
【0080】つまりXk からXh に至るある経路Pが存
在して、wk から始まるP上のすべての互いに可接続な
値列のXh 上の値がwh だけであるので、
在して、wk から始まるP上のすべての互いに可接続な
値列のXh 上の値がwh だけであるので、
【数17】 が成り立つ。また、可到達値集合r(Xh :wj )がw
h を含まないことから、可到達値集合r(Xj :wh )
がwj を含まない。もし
h を含まないことから、可到達値集合r(Xj :wh )
がwj を含まない。もし
【数18】 なら、Xj とXh を結ぶ任意の経路Q={Xj ,Xq1,
・・・,Xqm,Xh }に対して、Qを逆にたどるXh と
Xj を結ぶ経路P={Xh ,Xqm,・・・,Xq1,Xj
}上に互いに可接続な値列{wh ,wqm,・・・,wq
1,wj }が存在するので、{wj ,wq1,・・・,wq
m,wh }がXj とXh を結ぶQ上の互いに可接続な値
列となり、
・・・,Xqm,Xh }に対して、Qを逆にたどるXh と
Xj を結ぶ経路P={Xh ,Xqm,・・・,Xq1,Xj
}上に互いに可接続な値列{wh ,wqm,・・・,wq
1,wj }が存在するので、{wj ,wq1,・・・,wq
m,wh }がXj とXh を結ぶQ上の互いに可接続な値
列となり、
【数19】 となるからである。したがって、wj が可到達値集合r
(Xj :wk )の要素ではないことになり、
(Xj :wk )の要素ではないことになり、
【数20】 である仮定に矛盾する。つまり、Vが完全で
【数21】 ならすべてのXh 上で
【数22】 が成り立つ。
【0081】そこで次に、Vが完全なら変数集合{X1
,・・・,XN }上にVの要素の列{w1 ,・・・,
wN }が存在して、任意のXk ,Xj とXh に対して
,・・・,XN }上にVの要素の列{w1 ,・・・,
wN }が存在して、任意のXk ,Xj とXh に対して
【数23】 となることを示す。まずVが完全なら変数X1 の値
【数24】 が存在して、X2 上に
【数25】 が存在する。また、上述の性質から、任意のXh 上で
【数26】 が成り立つ。そこで{X1 ,・・・,Xn }(n≧2)
上にVの要素の列{w1,・・・,wn }が存在して、
k≦n,j≦n ならば任意のXh 上で
上にVの要素の列{w1,・・・,wn }が存在して、
k≦n,j≦n ならば任意のXh 上で
【数27】 が成り立つと仮定する。すると2個の要素から成る集合
Aの部分集合A1 とA2が
Aの部分集合A1 とA2が
【数28】 を満たすなら、
【数29】 か
【数30】 であるので、各変数Xh が高々2個の値しか含まないこ
とから、{w1 ,・・・,wn }の順序を{wk1,・・
・,wkn}と並べ替えて
とから、{w1 ,・・・,wn }の順序を{wk1,・・
・,wkn}と並べ替えて
【数31】 となるようにすることができる。
【0082】したがって、 h=n+1 とすると
【数32】 であり、
【数33】 が存在するので、{X1 ,・・・,Xn ,Xn+1 }の値
列{w1 ,・・・,wn,wn+1 }に対しても{k,j
≦n+1}ならば任意のXh 上で
列{w1 ,・・・,wn,wn+1 }に対しても{k,j
≦n+1}ならば任意のXh 上で
【数34】 が成り立つ。
【0083】つまり、帰納法によってVが完全であれば
{X1 ,・・・,XN }の値列{w1 ,・・・,wN }
が存在して、任意のXh に対して
{X1 ,・・・,XN }の値列{w1 ,・・・,wN }
が存在して、任意のXh に対して
【数35】 となることが証明される。ここで{w1 ,・・・,wN
}がCSP(X,Z,V,C)の解であることは明ら
かである。また、解{w1 ,・・・,wN }を構成する
上述の過程における変数X1 およびその値w1 の選び方
には
}がCSP(X,Z,V,C)の解であることは明ら
かである。また、解{w1 ,・・・,wN }を構成する
上述の過程における変数X1 およびその値w1 の選び方
には
【数36】 であること以外の制限は無いので、任意の
【数37】 を含むCSP(X,Z,V,C)の解が存在することも
分かる。
分かる。
【0084】(6)実施の形態による効果 以上のように、本実施形態では、与えられた問題が、各
部分が最大2個の代替案を含む部分集合に分解される。
各部分が最大2個の代替案を持つ部分集合に関する解の
計算は、部分が多数でもきわめて短時間で行うことがで
きる。このため、分解された各部分集合ごとの計算所要
時間をすべて合計しても、もとの問題のまま解を計算す
る所要時間よりも大幅に短縮される。このため、大規模
な制約充足問題も高速に解決することができる。
部分が最大2個の代替案を含む部分集合に分解される。
各部分が最大2個の代替案を持つ部分集合に関する解の
計算は、部分が多数でもきわめて短時間で行うことがで
きる。このため、分解された各部分集合ごとの計算所要
時間をすべて合計しても、もとの問題のまま解を計算す
る所要時間よりも大幅に短縮される。このため、大規模
な制約充足問題も高速に解決することができる。
【0085】また、本実施形態では、問題を構成する部
分が多数であっても、可到達値集合を完全化する手順に
よって、部分集合からきわめて短時間に解を計算するこ
とができるので、問題全体の解を計算する所要時間が大
幅に短縮される。
分が多数であっても、可到達値集合を完全化する手順に
よって、部分集合からきわめて短時間に解を計算するこ
とができるので、問題全体の解を計算する所要時間が大
幅に短縮される。
【0086】つまり、ある部分に許された代替案の数が
2個より多い場合に各部分に矛盾無く代替案を割り当て
る問題は、各部分に2個以下の代替案が許されている場
合に矛盾無く代替案を割り当てる問題の集合に変換でき
るので、変換された個々の問題を高速に処理することに
よって、元の割り当てが高速に実行できるようになる。
2個より多い場合に各部分に矛盾無く代替案を割り当て
る問題は、各部分に2個以下の代替案が許されている場
合に矛盾無く代替案を割り当てる問題の集合に変換でき
るので、変換された個々の問題を高速に処理することに
よって、元の割り当てが高速に実行できるようになる。
【0087】なお、本実施形態において、記憶量及び計
算量を実質的に律し、律速段階となるのは解の計算であ
る。この点、本発明によれば、各部分が2個以下の代替
案を持つ時、部分の数をN、各部分と制約関係にある部
分の平均個数をcとすると、従来のように2^Nに比例
するのではなく、O(4c・N^2)オーダーの計算量
で矛盾の無い代替案の組み合わせが求まる。なお、この
場合、必要な記憶量でO(4×N^2)オーダーとな
る。したがって、Nの数が100でも計算量はO(40
0,000)オーダーであり、実用的な時間内に代替案
の組み合わせを算出できるようになる。
算量を実質的に律し、律速段階となるのは解の計算であ
る。この点、本発明によれば、各部分が2個以下の代替
案を持つ時、部分の数をN、各部分と制約関係にある部
分の平均個数をcとすると、従来のように2^Nに比例
するのではなく、O(4c・N^2)オーダーの計算量
で矛盾の無い代替案の組み合わせが求まる。なお、この
場合、必要な記憶量でO(4×N^2)オーダーとな
る。したがって、Nの数が100でも計算量はO(40
0,000)オーダーであり、実用的な時間内に代替案
の組み合わせを算出できるようになる。
【0088】従来は特殊な場合を除くと全ての場合を調
べ尽くす方法しか無く、具体的には、ある部分の代替案
を選び、次の部分の代替案との矛盾の有無を確認すると
いう作業を、部分ごとの順列組み合わせで全て行う必要
が生じる。このため、最悪の場合には矛盾の無い代替案
の組み合わせを求めるのにO(100×c/2×2^1
00)オーダー以上の計算が必要であったが、本発明に
よって1/2^90以下に計算量を削減できたことにな
る。
べ尽くす方法しか無く、具体的には、ある部分の代替案
を選び、次の部分の代替案との矛盾の有無を確認すると
いう作業を、部分ごとの順列組み合わせで全て行う必要
が生じる。このため、最悪の場合には矛盾の無い代替案
の組み合わせを求めるのにO(100×c/2×2^1
00)オーダー以上の計算が必要であったが、本発明に
よって1/2^90以下に計算量を削減できたことにな
る。
【0089】なお、コンピュータによる個々の計算に1
0オーダー程度の命令が必要になるので、全体ではO
(40c×N^2)オーダーの処理量となり、各々が2
個以下の代替案を持つ100個の部分が存在し、各部分
と制約関係のある部分の平均個数が10であるとする
と、計算量は最大でO(400×100^2)=O
(4,000,000)となる。
0オーダー程度の命令が必要になるので、全体ではO
(40c×N^2)オーダーの処理量となり、各々が2
個以下の代替案を持つ100個の部分が存在し、各部分
と制約関係のある部分の平均個数が10であるとする
と、計算量は最大でO(400×100^2)=O
(4,000,000)となる。
【0090】また、各部分が3個以上の代替案を持つ場
合にも、部分の数をN、各部分と制約関係にある部分の
平均個数をcとすると、従来の全ての場合を調べ尽くす
方法ではO(N×c×d^N)オーダーの計算が必要で
あったが、本発明によるとそれをO(4c×N^2)×
(d/2)^N)オーダーまで削減することができる。
合にも、部分の数をN、各部分と制約関係にある部分の
平均個数をcとすると、従来の全ての場合を調べ尽くす
方法ではO(N×c×d^N)オーダーの計算が必要で
あったが、本発明によるとそれをO(4c×N^2)×
(d/2)^N)オーダーまで削減することができる。
【0091】また、各部分が4個の代替案を持つ部分が
20個存在し、各部分と制約関係のある部分の平均個数
が4である場合を考えると、従来方法の計算量はO(8
0×4^20)=O(80×2^40)オーダーであっ
たが、本発明の計算量はO(6,400×2^20)で
あり、本発明における個々の計算が10ステップ程度の
計算機命令で実現されるとしても1/500以下に計算
量を削減できる。
20個存在し、各部分と制約関係のある部分の平均個数
が4である場合を考えると、従来方法の計算量はO(8
0×4^20)=O(80×2^40)オーダーであっ
たが、本発明の計算量はO(6,400×2^20)で
あり、本発明における個々の計算が10ステップ程度の
計算機命令で実現されるとしても1/500以下に計算
量を削減できる。
【0092】この場合、O(16×400×10)=O
(64,000)オーダーの計算を2^20個の{V1
(k1 ),…,VN (kN )}に対して実行する必要が
あるが、これは一般に用いられる通常のワークステーシ
ョンやパーソナルコンピュータによれば十数分以内程度
で終了する程度の計算量になる。しかも2^20個に分
割された個々の部分集合は全く独立に計算できるので、
10台程度の計算機で並列処理すれば、数分で計算が完
了し、全ての解を求めることができる。
(64,000)オーダーの計算を2^20個の{V1
(k1 ),…,VN (kN )}に対して実行する必要が
あるが、これは一般に用いられる通常のワークステーシ
ョンやパーソナルコンピュータによれば十数分以内程度
で終了する程度の計算量になる。しかも2^20個に分
割された個々の部分集合は全く独立に計算できるので、
10台程度の計算機で並列処理すれば、数分で計算が完
了し、全ての解を求めることができる。
【0093】本発明は、このように問題を高速に解決す
るので、エキスパート・システムなどを応用したシステ
ムが実用的な時間内で動作するようになる。
るので、エキスパート・システムなどを応用したシステ
ムが実用的な時間内で動作するようになる。
【0094】なお、多くの問題では、部分が多数であっ
ても、個々の部分に設定可能な代替案の個数は限られる
場合が多い。このため、代替案の組み合わせに関する制
約が全ての部分対の間に存在することは少なく、部分の
集合を制約的には互いに独立な集合の組に分解すること
ができる。また、設定可能な代替案の数が多くても、実
質的に意味のある代替案の数は少なくなる場合が多い。
例えば、各代替案に評価値が割り当てられている場合
に、評価値がある値以上になる代替案の数は限られる。
このような事情から、相当複雑な問題でも、部分の数が
大きくても実効的には20程度になる場合も少なくな
い。したがって、上記のように本発明により解決あるい
は改善できる問題やシステムの範囲は飛躍的に広くな
る。
ても、個々の部分に設定可能な代替案の個数は限られる
場合が多い。このため、代替案の組み合わせに関する制
約が全ての部分対の間に存在することは少なく、部分の
集合を制約的には互いに独立な集合の組に分解すること
ができる。また、設定可能な代替案の数が多くても、実
質的に意味のある代替案の数は少なくなる場合が多い。
例えば、各代替案に評価値が割り当てられている場合
に、評価値がある値以上になる代替案の数は限られる。
このような事情から、相当複雑な問題でも、部分の数が
大きくても実効的には20程度になる場合も少なくな
い。したがって、上記のように本発明により解決あるい
は改善できる問題やシステムの範囲は飛躍的に広くな
る。
【0095】さらに、Adaptive Consis
tency Algorihm(ACA)のように、制
約関係が影響を及ぼす部分の集合を局所化する方法との
併用により、部分の数がさらに大きい場合も扱えるよう
になる。
tency Algorihm(ACA)のように、制
約関係が影響を及ぼす部分の集合を局所化する方法との
併用により、部分の数がさらに大きい場合も扱えるよう
になる。
【0096】(7)他の実施の形態 なお、本発明は上記実施の形態に限定されるものではな
いので、次に例示するような他の実施の形態をも包含す
るものである。例えば、上記実施例では、全ての処理を
逐次的に行っているが、短時間で処理を終了させるため
に適当な部分を並列に処理することも可能である(請求
項3)。図28、図29は解を並列に算出する構成の例
である。
いので、次に例示するような他の実施の形態をも包含す
るものである。例えば、上記実施例では、全ての処理を
逐次的に行っているが、短時間で処理を終了させるため
に適当な部分を並列に処理することも可能である(請求
項3)。図28、図29は解を並列に算出する構成の例
である。
【0097】図28は、代替案集合生成部81が1つ存
在して、解計算部82が、解計算部821,822のよ
うに複数個存在する例である。つまり1つの代替案集合
生成部81が複数の解計算部82に各々異なる代替案集
合の組み合わせ{V1 (k1),V2 (k2 ),…,VN
(kN )}を送り、解計算部82が与えられた代替案
集合の組み合わせに対する解をそれぞれ並列に計算す
る。
在して、解計算部82が、解計算部821,822のよ
うに複数個存在する例である。つまり1つの代替案集合
生成部81が複数の解計算部82に各々異なる代替案集
合の組み合わせ{V1 (k1),V2 (k2 ),…,VN
(kN )}を送り、解計算部82が与えられた代替案
集合の組み合わせに対する解をそれぞれ並列に計算す
る。
【0098】図29は、代替案集合生成部91も、代替
案集合生成部911,912のように複数個設ける例で
あり、各代替案集合生成部91は予め指定された範囲の
代替案集合の組み合わせを並列に算出し、各々に接続さ
れた解計算部92が、接続された代替案集合生成部が算
出した代替案集合の組み合わせに対応する解を並列に計
算する。
案集合生成部911,912のように複数個設ける例で
あり、各代替案集合生成部91は予め指定された範囲の
代替案集合の組み合わせを並列に算出し、各々に接続さ
れた解計算部92が、接続された代替案集合生成部が算
出した代替案集合の組み合わせに対応する解を並列に計
算する。
【0099】このようにすれば、問題を部分集合へ分解
したり部分集合からの解の計算が並列処理できるので、
特に大規模な問題の場合も、処理が高速に行われる(請
求項3)。
したり部分集合からの解の計算が並列処理できるので、
特に大規模な問題の場合も、処理が高速に行われる(請
求項3)。
【0100】なお、上記各実施形態では、制約充足問題
とその解を求めることを例に挙げて説明したが、本発明
のシステム構築装置及び構築方法においては、この制約
充足問題における各部分と代替案が、システムを構成す
る各部分と各部分が有する代替案に相当する。また、実
施の形態で得られた解が、構築目標となるシステムの構
成を示す。例えば、問題における各部分が機械やプログ
ラムの所定の部分に相当し、代替案が機械やプログラム
の所定の部分を構成するに当たって選択できる複数の異
なった部品を意味する。そして、各部分の代替案間にお
ける制約は、例えば、機械の所定の部分でボルトを使用
した場合には、隣接する部分ではそのボルトに合ったナ
ットを使用する必要があり、所定の部分でボルトの代わ
りに係合用の爪を使用した場合には、隣接する部分では
係合用の孔を使用する必要があるということを意味す
る。
とその解を求めることを例に挙げて説明したが、本発明
のシステム構築装置及び構築方法においては、この制約
充足問題における各部分と代替案が、システムを構成す
る各部分と各部分が有する代替案に相当する。また、実
施の形態で得られた解が、構築目標となるシステムの構
成を示す。例えば、問題における各部分が機械やプログ
ラムの所定の部分に相当し、代替案が機械やプログラム
の所定の部分を構成するに当たって選択できる複数の異
なった部品を意味する。そして、各部分の代替案間にお
ける制約は、例えば、機械の所定の部分でボルトを使用
した場合には、隣接する部分ではそのボルトに合ったナ
ットを使用する必要があり、所定の部分でボルトの代わ
りに係合用の爪を使用した場合には、隣接する部分では
係合用の孔を使用する必要があるということを意味す
る。
【0101】また、本発明では、部分集合から必ずしも
最終的な解までは計算せず、一定の分析を行うようにし
てもよい。また、本発明は、コンピュータをプログラム
で制御することによって実現することが一般的と考えら
れるが、そのようなプログラムを記録した記録媒体も本
発明の一態様である。
最終的な解までは計算せず、一定の分析を行うようにし
てもよい。また、本発明は、コンピュータをプログラム
で制御することによって実現することが一般的と考えら
れるが、そのようなプログラムを記録した記録媒体も本
発明の一態様である。
【0102】
【発明の効果】以上説明したように、本発明によれば、
大規模な制約充足問題も高速に計算することができ、人
工知能をはじめとする複雑な情報処理の実用性が大幅に
向上する。また、本発明によれば、制約充足問題として
把握することのできるシステムの構築作業を、比較的容
易に実施することのできるシステム構築装置及び構築方
法を提供することが可能となる。
大規模な制約充足問題も高速に計算することができ、人
工知能をはじめとする複雑な情報処理の実用性が大幅に
向上する。また、本発明によれば、制約充足問題として
把握することのできるシステムの構築作業を、比較的容
易に実施することのできるシステム構築装置及び構築方
法を提供することが可能となる。
【図1】本発明の実施の形態である制約充足問題の解決
装置の要部の構成を概略的に示す機能ブロック図。
装置の要部の構成を概略的に示す機能ブロック図。
【図2】本発明の実施の形態における制約充足問題の解
決装置の構成をより具体的に示す機能ブロック図。
決装置の構成をより具体的に示す機能ブロック図。
【図3】本発明の実施の形態において、解計算部の具体
的な構成を示す機能ブロック図。
的な構成を示す機能ブロック図。
【図4】本発明の実施の形態において、可到達値集合を
算出する手順を示すフローチャート(前半)。
算出する手順を示すフローチャート(前半)。
【図5】本発明の実施の形態において、可到達値集合を
算出の手順を示すフローチャート(後半)。
算出の手順を示すフローチャート(後半)。
【図6】本発明の実施の形態において、可到達値集合を
完全化する手順を示すフローチャート。
完全化する手順を示すフローチャート。
【図7】本発明の実施の形態において、完全化した可到
達値集合から解を計算する手順を示すフローチャート。
達値集合から解を計算する手順を示すフローチャート。
【図8】本発明の実施の形態における例題の構成を示す
図。
図。
【図9】本発明の実施の形態における例題の内容を示す
図。
図。
【図10】本発明の実施の形態における例題を分解して
作成された部分集合(ア)の内容を示す図。
作成された部分集合(ア)の内容を示す図。
【図11】本発明の実施の形態における例題を分解して
作成された部分集合(イ)の内容を示す図。
作成された部分集合(イ)の内容を示す図。
【図12】本発明の実施の形態における例題を分解して
作成された部分集合(ウ)の内容を示す図。
作成された部分集合(ウ)の内容を示す図。
【図13】本発明の実施の形態における例題を分解して
作成された部分集合(エ)の内容を示す図。
作成された部分集合(エ)の内容を示す図。
【図14】本発明の実施の形態における例題を分解して
作成された部分集合(オ)の内容を示す図。
作成された部分集合(オ)の内容を示す図。
【図15】本発明の実施の形態における例題を分解して
作成された部分集合(P)の内容を示す図。
作成された部分集合(P)の内容を示す図。
【図16】本発明の実施の形態における例題を分解して
作成された部分集合(Q)の内容を示す図。
作成された部分集合(Q)の内容を示す図。
【図17】本発明の実施の形態における例題を分解して
作成された部分集合から解を得る途中過程において、各
集合の内容を示す図。
作成された部分集合から解を得る途中過程において、各
集合の内容を示す図。
【図18】本発明の実施の形態における例題を分解して
作成された部分集合から解を得る途中過程において、各
集合の内容を示す図。
作成された部分集合から解を得る途中過程において、各
集合の内容を示す図。
【図19】本発明の実施の形態における例題を分解して
作成された部分集合から解を得る途中過程において、各
集合の内容を示す図。
作成された部分集合から解を得る途中過程において、各
集合の内容を示す図。
【図20】本発明の実施の形態における例題を分解して
作成された部分集合から解を得る途中過程において、各
集合の内容を示す図。
作成された部分集合から解を得る途中過程において、各
集合の内容を示す図。
【図21】本発明の実施の形態における例題を分解して
作成された部分集合から解を得る途中過程において、各
集合の内容を示す図。
作成された部分集合から解を得る途中過程において、各
集合の内容を示す図。
【図22】本発明の実施の形態における例題を分解して
作成された部分集合から解を得る途中過程において、各
集合の内容を示す図。
作成された部分集合から解を得る途中過程において、各
集合の内容を示す図。
【図23】本発明の実施の形態における例題を分解して
作成された部分集合から解を得る途中過程において、各
集合の内容を示す図。
作成された部分集合から解を得る途中過程において、各
集合の内容を示す図。
【図24】本発明の実施の形態における例題を分解して
作成された部分集合から解を得る途中過程において、各
集合の内容を示す図。
作成された部分集合から解を得る途中過程において、各
集合の内容を示す図。
【図25】本発明の実施の形態における例題の他の場合
について、集合の内容を示す図。
について、集合の内容を示す図。
【図26】本発明の実施の形態における例題の他の場合
について、集合の内容を示す図。
について、集合の内容を示す図。
【図27】本発明の実施の形態における例題の他の場合
について、集合の内容を示す図。
について、集合の内容を示す図。
【図28】本発明の他の実施の形態について、構成を示
す概念図。
す概念図。
【図29】本発明の他の実施の形態について、構成を示
す概念図。
す概念図。
1,81,91…代替案集合生成部 2,82,92…解計算部 3〜7,11〜15…経路 8…解計算パターン記憶部 9…結果記憶部 10…解出力部 F,G,H…集合 A,B,C,D…部分 a1〜d6…代替案 16…可到達値集合計算部 17…値完全化部 18…解発生部 STEP…手順の各ステップ
Claims (6)
- 【請求項1】 それぞれ複数の代替案を持つ部分を複数
有し、部分の代替案間に組み合わせに制約が存在する問
題の解を計算する制約充足問題の解決装置において、 与えられた問題を、各部分が最大2個の代替案を含む部
分集合に分解する手段と、 分解された部分集合ごとに、部分の代替案間の制約を満
足する代替案の組み合わせを分析する手段と、 を有することを特徴とする制約充足問題の解決装置。 - 【請求項2】 前記解を計算する手段は、 部分集合から、前記制約に合致する代替案の組み合わせ
を表す可到達値集合を計算する手段と、 計算された可到達値集合を完全化する手段と、 完全化された可到達値集合から解を計算する手段と、 を有することを特徴とする請求項1記載の制約充足問題
の解決装置。 - 【請求項3】 前記分解する手段又は前記計算する手段
のうち少なくとも一方を複数設けたことを特徴とする請
求項1又は2記載の制約充足問題の解決装置。 - 【請求項4】 それぞれ複数の代替案を持つ部分を複数
有し、部分の代替案間に組み合わせに制約が存在する問
題の解を計算する制約充足問題の解決方法において、 与えられた問題を、各部分が最大2個の代替案を含む部
分集合に分解するステップと、 分解された部分集合ごとに、部分の代替案間の制約を満
足する代替案の組み合わせを分析するステップと、 を含むことを特徴とする制約充足問題の解決方法。 - 【請求項5】 複数の部分から構成され、それぞれの部
分が複数の代替案を有し、かつ前記各部分の代替案の間
の組み合わせに制約が存在するシステムを構築する装置
において、 前記システムの各部分を、各部分が最大2個の代替案を
含む部分集合に分解する手段と、 分解された部分集合ごとに、部分の代替案間の制約を満
足する代替案の組み合わせを計算することにより、前記
制約を満足するシステムを構築することを特徴とするシ
ステム構築装置。 - 【請求項6】 複数の部分から構成され、それぞれの部
分が複数の代替案を有し、かつ前記各部分の代替案の間
の組み合わせに制約が存在するシステムを構築する方法
において、 前記システムの各部分を、各部分が最大2個の代替案を
含む部分集合に分解し、 分解された部分集合ごとに、部分の代替案間の制約を満
足する代替案の組み合わせを計算することにより、前記
制約を満足するシステムを構築することを特徴とするシ
ステム構築方法。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8113697A JPH10275084A (ja) | 1997-03-31 | 1997-03-31 | 制約充足問題の解決装置及び解決方法、システム構築装置及び構築方法 |
| US09/050,133 US6336110B1 (en) | 1997-03-31 | 1998-03-30 | System for solving of a constraint-satisfaction problem and constructing of a system |
| DE19814422A DE19814422A1 (de) | 1997-03-31 | 1998-03-31 | System zur Lösung eines Randbedingungsproblems und Aufbau eines derartigen Systems |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8113697A JPH10275084A (ja) | 1997-03-31 | 1997-03-31 | 制約充足問題の解決装置及び解決方法、システム構築装置及び構築方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH10275084A true JPH10275084A (ja) | 1998-10-13 |
Family
ID=13737995
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8113697A Pending JPH10275084A (ja) | 1997-03-31 | 1997-03-31 | 制約充足問題の解決装置及び解決方法、システム構築装置及び構築方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US6336110B1 (ja) |
| JP (1) | JPH10275084A (ja) |
| DE (1) | DE19814422A1 (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010510591A (ja) * | 2006-11-20 | 2010-04-02 | マイクロソフト コーポレーション | 並列化制約充足問題ソルバにおけるLock−free状態併合 |
| WO2010134370A1 (ja) * | 2009-05-21 | 2010-11-25 | 株式会社 日立製作所 | データ処理システム、データ処理方法、およびデータ処理プログラム |
| KR101002117B1 (ko) | 2002-09-19 | 2010-12-16 | 글로벌 뉴클리어 퓨얼-어메리카스, 엘엘씨 | 원자로 |
Families Citing this family (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA2433996C (en) * | 2001-01-09 | 2012-03-13 | British Telecommunications Public Limited Company | Software tool for heuristic search methods |
| US7444309B2 (en) * | 2001-10-31 | 2008-10-28 | Icosystem Corporation | Method and system for implementing evolutionary algorithms |
| US8660972B1 (en) | 2002-11-11 | 2014-02-25 | Zxibix, Inc. | System and method to provide a customized problem solving environment for the development of user thinking about an arbitrary problem |
| US7685085B2 (en) | 2003-11-10 | 2010-03-23 | James Ralph Heidenreich | System and method to facilitate user thinking about an arbitrary problem with output and interfaces to external systems, components and resources |
| US10395173B1 (en) | 2002-11-11 | 2019-08-27 | Zxibix, Inc. | System and methods for exemplary problem solving, thinking and learning using an exemplary archetype process and enhanced hybrid forms |
| US7730009B1 (en) | 2002-11-11 | 2010-06-01 | Zxibix, Inc. | System and methods for archetype enabled research and search |
| US7203667B2 (en) | 2002-11-11 | 2007-04-10 | Zxibix, Inc. | System and method of facilitating and evaluating user thinking about an arbitrary problem using an archetype process |
| US7720780B1 (en) | 2003-11-10 | 2010-05-18 | Zxibix, Inc. | System and method for facilitating collaboration and related multiple user thinking and cooperation regarding an arbitrary problem |
| US7949617B1 (en) | 2002-11-11 | 2011-05-24 | Linda Shawn Higgins | System and methods for facilitating user thinking and learning utilizing enhanced interactive constructs |
| EP1611546B1 (en) | 2003-04-04 | 2013-01-02 | Icosystem Corporation | Methods and systems for interactive evolutionary computing (iec) |
| EP1649346A2 (en) * | 2003-08-01 | 2006-04-26 | Icosystem Corporation | Methods and systems for applying genetic operators to determine system conditions |
| US7356518B2 (en) * | 2003-08-27 | 2008-04-08 | Icosystem Corporation | Methods and systems for multi-participant interactive evolutionary computing |
| GB0407260D0 (en) * | 2004-03-31 | 2004-05-05 | Ibm | Accelerated solution of constraint satisfaction problems by partioning of the variable space |
| EP1782285A1 (en) * | 2004-07-06 | 2007-05-09 | Icosystem Corporation | Methods and apparatus for query refinement using genetic algorithms |
| US7707220B2 (en) * | 2004-07-06 | 2010-04-27 | Icosystem Corporation | Methods and apparatus for interactive searching techniques |
| US7333968B2 (en) * | 2005-08-17 | 2008-02-19 | International Business Machines Corporation | Conditional CSP solving using constraint propagation |
| US7457789B2 (en) * | 2005-08-17 | 2008-11-25 | Tacton Systems Ab | Configuration assistance for complex products |
| WO2007035848A2 (en) * | 2005-09-21 | 2007-03-29 | Icosystem Corporation | System and method for aiding product design and quantifying acceptance |
| WO2008002906A2 (en) * | 2006-06-26 | 2008-01-03 | Icosystem Corporation | Methods and systems for interactive customization of avatars and other animate or inanimate items in video games |
| US7792816B2 (en) * | 2007-02-01 | 2010-09-07 | Icosystem Corporation | Method and system for fast, generic, online and offline, multi-source text analysis and visualization |
| US8069127B2 (en) * | 2007-04-26 | 2011-11-29 | 21 Ct, Inc. | Method and system for solving an optimization problem with dynamic constraints |
| US8078562B2 (en) * | 2008-11-19 | 2011-12-13 | Tacton Systems Ab | Decomposing configuration problems |
| US8301582B2 (en) * | 2009-10-15 | 2012-10-30 | Oracle International Corporation | Dynamic constraint satisfaction problem solver with sub-problem placeholder |
| US9367801B2 (en) | 2013-10-16 | 2016-06-14 | International Business Machines Corporation | Optimal non-recursive method for finding a minimal subset satisfying an upward-closed property |
| US10824683B2 (en) * | 2017-04-19 | 2020-11-03 | International Business Machines Corporation | Search engine |
| CN114237835B (zh) * | 2021-09-30 | 2025-12-02 | 华为技术有限公司 | 一种任务求解方法及其装置 |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5123057A (en) * | 1989-07-28 | 1992-06-16 | Massachusetts Institute Of Technology | Model based pattern recognition |
| US5249261A (en) * | 1990-02-26 | 1993-09-28 | International Business Machines Corporation | Failure history table for optimizing backtrack searches |
| US5195172A (en) * | 1990-07-02 | 1993-03-16 | Quantum Development Corporation | System and method for representing and solving numeric and symbolic problems |
| DE69132286T2 (de) * | 1990-11-14 | 2000-11-30 | Fujitsu Ltd., Kawasaki | Kombinationsproblem-Lösungsvorrichtungen |
| US5276775A (en) * | 1990-12-07 | 1994-01-04 | Texas Instruments Inc. | System and method for building knowledge-based applications |
| US5855009A (en) * | 1992-07-31 | 1998-12-29 | Texas Instruments Incorporated | Concurrent design tradeoff analysis system and method |
| CA2115876A1 (en) * | 1993-03-22 | 1994-09-23 | Henry Alexander Kautz | Methods and apparatus for constraint satisfaction |
-
1997
- 1997-03-31 JP JP8113697A patent/JPH10275084A/ja active Pending
-
1998
- 1998-03-30 US US09/050,133 patent/US6336110B1/en not_active Expired - Fee Related
- 1998-03-31 DE DE19814422A patent/DE19814422A1/de not_active Ceased
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101002117B1 (ko) | 2002-09-19 | 2010-12-16 | 글로벌 뉴클리어 퓨얼-어메리카스, 엘엘씨 | 원자로 |
| JP2010510591A (ja) * | 2006-11-20 | 2010-04-02 | マイクロソフト コーポレーション | 並列化制約充足問題ソルバにおけるLock−free状態併合 |
| WO2010134370A1 (ja) * | 2009-05-21 | 2010-11-25 | 株式会社 日立製作所 | データ処理システム、データ処理方法、およびデータ処理プログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| US6336110B1 (en) | 2002-01-01 |
| DE19814422A1 (de) | 1998-11-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH10275084A (ja) | 制約充足問題の解決装置及び解決方法、システム構築装置及び構築方法 | |
| Tong et al. | A linguistic approach to decisionmaking with fuzzy sets | |
| Xu et al. | An effective teaching–learning-based optimization algorithm for the flexible job-shop scheduling problem with fuzzy processing time | |
| US11521129B2 (en) | Processing device, accelerator, and method for federated learning | |
| US20100318476A1 (en) | Rule processing method and apparatus providing automatic user input selection | |
| Yu et al. | Assembly line balancing based on an adaptive genetic algorithm | |
| WO2022063542A1 (en) | Method and system for providing recommendations concerning a configuration process | |
| Liu et al. | Mathematical modeling and a multiswarm collaborative optimization algorithm for fuzzy integrated process planning and scheduling problem | |
| Liu et al. | Prompt learning for generalized vehicle routing | |
| Huang et al. | Particle swarm optimization with variable neighborhood search for multiobjective flexible job shop scheduling problem | |
| Kusiak | Expert systems and optimization | |
| CN118690864B (zh) | 基于模式树的量子线路模式匹配方法 | |
| CN120144902A (zh) | 一种考虑多层加速的综合供能系统可靠性快速判断方法 | |
| El-Fakih et al. | A method and a genetic algorithm for deriving protocols for distributed applications with minimum communication cost | |
| US6272543B1 (en) | Network-computer system build support system and support method | |
| Song et al. | Multi-objective reinforcement learning with adaptive pareto reset for prefix adder design | |
| JP2003108377A (ja) | 知識ルール変換装置、エキスパートシステム、知識ルール変換プログラムおよびエキスパートシステムの構築方法 | |
| Hosobe et al. | A Soft Constraint-Based Framework for Ethical Reasoning. | |
| Wang et al. | Intelligent systems for conceptual design of mechanical products | |
| JP2001331485A (ja) | 分散データベース演算処理装置 | |
| CN112861453A (zh) | 近似算术逻辑电路的最大绝对输出误差的计算方法 | |
| Pang et al. | A Multiform Many-Objective Genetic Programming Method for Dynamic Flexible Job Shop Scheduling | |
| JP7640820B1 (ja) | 情報処理装置、情報処理方法及びプログラム | |
| Cousins et al. | The embedded genetic allocator-a system to automatically optimize the use of memory resources in high performance, scalable computing systems | |
| Nishizaki et al. | A computational method using genetic algorithms for obtaining Stackelberg solutions to two‐level linear programming problems |