JP3064307B2 - エキスパートシステム構築方法 - Google Patents
エキスパートシステム構築方法Info
- Publication number
- JP3064307B2 JP3064307B2 JP1258544A JP25854489A JP3064307B2 JP 3064307 B2 JP3064307 B2 JP 3064307B2 JP 1258544 A JP1258544 A JP 1258544A JP 25854489 A JP25854489 A JP 25854489A JP 3064307 B2 JP3064307 B2 JP 3064307B2
- Authority
- JP
- Japan
- Prior art keywords
- area
- variable
- values
- search
- expert system
- 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
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、エキスパートシステムに係り、特に、計画
問題等のような解構成の多くのステップにおいて、複数
の候補からの選択を行い、後で、必要であれば、その決
定を取消、再度、解を構成するステップを続けなければ
ならないようなシステムの構築に好適なエキスパートシ
ステムの構築ツールに関するものである。
問題等のような解構成の多くのステップにおいて、複数
の候補からの選択を行い、後で、必要であれば、その決
定を取消、再度、解を構成するステップを続けなければ
ならないようなシステムの構築に好適なエキスパートシ
ステムの構築ツールに関するものである。
従来、コンピュータにより、専門的知識を有効に用い
て種々の問題を解決するシステム、いわゆる、エキスパ
ートシステムを構築するツールとして、非単調推論に基
づくものが提供されている。
て種々の問題を解決するシステム、いわゆる、エキスパ
ートシステムを構築するツールとして、非単調推論に基
づくものが提供されている。
この非単調推論に基づくエキスパートシステム構築ツ
ールの目的は、エキスパートシステムの適用分野を一層
拡大し、より実用に耐えるものとするためであり、演繹
的推論では対処できない欠如した情報による推論等のよ
うに、不完全な知識に基づく推論を進めるものである。
ールの目的は、エキスパートシステムの適用分野を一層
拡大し、より実用に耐えるものとするためであり、演繹
的推論では対処できない欠如した情報による推論等のよ
うに、不完全な知識に基づく推論を進めるものである。
非単調推論に基づくものには、TMS(Truth Maintena
nce System)やATMS(Assumption−based Truth Mai
ntenance System)等がある。
nce System)やATMS(Assumption−based Truth Mai
ntenance System)等がある。
TMSは、推論の各ステップを保存することにより、推
論の制御、仮説の採択や棄却、棄却されていた仮説の復
活という非単調論理、仮説推論に必要な機能を提供し、
さらに、推論に使用する知識ベースを状況の変化を反映
させながら一貫性を保持する知識管理のための機能を提
供する。
論の制御、仮説の採択や棄却、棄却されていた仮説の復
活という非単調論理、仮説推論に必要な機能を提供し、
さらに、推論に使用する知識ベースを状況の変化を反映
させながら一貫性を保持する知識管理のための機能を提
供する。
TMSで同時に扱える仮説の組み合わせは1つである
が、ATMSは、複数の仮説の組み合わせの取扱を可能とし
た。そして、ATMSは、仮説の組み合わせごとに1つの世
界を構成し、矛盾の出た仮説の組み合わせを記録し、そ
れを他の仮説世界が利用することにより、探索空間の絞
り込みを行い、推論の効率を図るものである。
が、ATMSは、複数の仮説の組み合わせの取扱を可能とし
た。そして、ATMSは、仮説の組み合わせごとに1つの世
界を構成し、矛盾の出た仮説の組み合わせを記録し、そ
れを他の仮説世界が利用することにより、探索空間の絞
り込みを行い、推論の効率を図るものである。
これらエキスパートシステム構築ツールに関しては、
「電子情報通信ハンドブック、第14編、第3部門、3.エ
キスパートシステム構築用ツール」(電子情報通信学会
編)に記載されている。
「電子情報通信ハンドブック、第14編、第3部門、3.エ
キスパートシステム構築用ツール」(電子情報通信学会
編)に記載されている。
ATMSに関して、以下、さらに詳しく説明を行う。
従来のエキスパートシステムにおいて、例えば、計画
問題に対するアプローチとしては、1986年発行の学会誌
「アーティフィシャルインテリジェンスの第28巻(Arti
ficial Intelleigence Vol.28)に掲載されたドゥ・
クレア(de Kleer J.)の論文「仮説に基づいた真理
の管理機構」(An Assumption−based Truth Mainte
nance System)に記載のエーティーエムエス(以下ATM
Sと記載)がある。
問題に対するアプローチとしては、1986年発行の学会誌
「アーティフィシャルインテリジェンスの第28巻(Arti
ficial Intelleigence Vol.28)に掲載されたドゥ・
クレア(de Kleer J.)の論文「仮説に基づいた真理
の管理機構」(An Assumption−based Truth Mainte
nance System)に記載のエーティーエムエス(以下ATM
Sと記載)がある。
ATMSで制約充足問題を解く場合、変数の取り得る値の
全ての場合を「仮説)としてATMSに入力し、制約を「if
条件then結論)の形のルールの集合として入力する。例
えば、変数xが、{2,3,5,7}、変数yが{2,4,8}を取
り得る場合、次のようなデータを仮説として入力する。
全ての場合を「仮説)としてATMSに入力し、制約を「if
条件then結論)の形のルールの集合として入力する。例
えば、変数xが、{2,3,5,7}、変数yが{2,4,8}を取
り得る場合、次のようなデータを仮説として入力する。
(x=2) (x=3) (x=5) (x=7) (y=2) (y=4) (y=8) ATMSでは、「結論」部の記述に、特に「矛盾」を表す
記号を導入し、推論において「矛盾」を導いたとき制約
を犯したと解釈する。
記号を導入し、推論において「矛盾」を導いたとき制約
を犯したと解釈する。
例えば、「変数xと変数yの値の合計が10以下になら
なければならない」という制約は、次のように記述され
る。
なければならない」という制約は、次のように記述され
る。
if(x=?a)&(y=?b)&?a+?b>10 then 矛盾 ここで、?が前についている文字列は、任意のデータ
とマッチするものとする。
とマッチするものとする。
さらに、ATMSでは、目的をルールの連鎖で表現する。
例えば、「変数xに3以上の数を割り当て、変数yに
4以上の数を割り当てる」という目的を表す一つの方法
は次のような3つのルールを入力することである。
4以上の数を割り当てる」という目的を表す一つの方法
は次のような3つのルールを入力することである。
if(x=?a)&?a≧3 thenゴール1達成 if(y=?b)&?b≧4 thenゴール2達成 ifゴール1達成&ゴール2達成 thenゴール達成 ATMSは、これらのルールが与えられると、各ルールの
結論部がどのような仮説の組み合わせの元に成立するか
を条件部から計算する。例えば、上の例において「ゴー
ル1達成」は、 (x=3) (x=5) (x=7) の、どれの場合も成立する。
結論部がどのような仮説の組み合わせの元に成立するか
を条件部から計算する。例えば、上の例において「ゴー
ル1達成」は、 (x=3) (x=5) (x=7) の、どれの場合も成立する。
「ゴール2達成」は、 (y=4) (y=8) の、どちらの場合も成立する。
「ゴール達成」は、「ゴール1達成」かつ「ゴール2
達成」の両方が成立しているとき成立するので、 (x=3)&(y=4) (x=3)&(y=8) (x=5)&(y=4) (x=5)&(y=8) (x=7)&(y=4) (x=7)&(y=8) の、6つの場合に成立する。
達成」の両方が成立しているとき成立するので、 (x=3)&(y=4) (x=3)&(y=8) (x=5)&(y=4) (x=5)&(y=8) (x=7)&(y=4) (x=7)&(y=8) の、6つの場合に成立する。
このように、ATMSは、導出した全てのデータに、それ
がどのような「仮説」で成立するかを記録していく。
がどのような「仮説」で成立するかを記録していく。
この際、「仮説」の組み合わせを個数の少ない順に生
成し、「矛盾」を導出する「仮説」の組み合わせを集合
として含むような「仮説」の組み合わせは、ルールの条
件部の成立判定から除去する。そのために、少ない個数
の組み合わせが矛盾すると結論された場合は、探索空間
から解の存在範囲を大きく絞ることができる。
成し、「矛盾」を導出する「仮説」の組み合わせを集合
として含むような「仮説」の組み合わせは、ルールの条
件部の成立判定から除去する。そのために、少ない個数
の組み合わせが矛盾すると結論された場合は、探索空間
から解の存在範囲を大きく絞ることができる。
上記の問題の場合、最終的にルールによる導出が終わ
った時点で、データ「ゴール達成」を成立させる「仮
説」の組み合わせが得られ、それが、元の計画問題の全
ての解となる。
った時点で、データ「ゴール達成」を成立させる「仮
説」の組み合わせが得られ、それが、元の計画問題の全
ての解となる。
目的関数が与えられている場合は、ATMSを利用してい
るソフトウェアが、それらの解の評価を行い、最良のも
のを返す処理を行う。
るソフトウェアが、それらの解の評価を行い、最良のも
のを返す処理を行う。
ATMSは、少ない個数の「仮説」の組み合わせが矛盾を
起こすような問題では、探索すべき空間を大幅に縮小す
ることができ、効率的である。
起こすような問題では、探索すべき空間を大幅に縮小す
ることができ、効率的である。
また、基本的には、全解探索なので、全ての解が請求
されるときに有効である。
されるときに有効である。
従来の非単調推論型のエキスパートシステム構築ツー
ルにおけるATMSは、「仮説」の少数の組み合わせが矛盾
を生じ、また、全ての解が必要な問題に対しては、効率
的に働くが、多くの計画型問題に対しては、次のような
不備がある。
ルにおけるATMSは、「仮説」の少数の組み合わせが矛盾
を生じ、また、全ての解が必要な問題に対しては、効率
的に働くが、多くの計画型問題に対しては、次のような
不備がある。
(イ)少数の「仮説」の組み合わせでは矛盾を起こさ
ず、矛盾の検出が、探索空間を絞るための充分な手段と
ならないことがある。通常、この探索空間は、巨大であ
るので、有意味な時間では、解が求まらない場合が多
い。この現象を避けるために、通常のプログラミングで
は、専門家の探索戦略(ヒューリスティクス)を利用す
ることになるが、ATMSでは、全解探索に有効な組み込ま
れた探索戦略があるため、ヒューリスティクスを記述し
にくい。
ず、矛盾の検出が、探索空間を絞るための充分な手段と
ならないことがある。通常、この探索空間は、巨大であ
るので、有意味な時間では、解が求まらない場合が多
い。この現象を避けるために、通常のプログラミングで
は、専門家の探索戦略(ヒューリスティクス)を利用す
ることになるが、ATMSでは、全解探索に有効な組み込ま
れた探索戦略があるため、ヒューリスティクスを記述し
にくい。
(ロ)全ての解を求めるときは効果的であるが、実際に
は、最良の解、あるいは、最良に近い解が幾つか求まれ
ば良い問題も多い。このような場合には、全ての解を求
めるための無駄な探索を行っていることになる。
は、最良の解、あるいは、最良に近い解が幾つか求まれ
ば良い問題も多い。このような場合には、全ての解を求
めるための無駄な探索を行っていることになる。
(ハ)変数が取り得る値は、最初に「仮説」として全て
列挙されねばならず、無限の領域(例えば、整数の集
合)を扱うことができない。また、複数の変数が同じ領
域を取る場合には、同じ領域を何度も列挙せねばなら
ず、記述の量がかさばる。
列挙されねばならず、無限の領域(例えば、整数の集
合)を扱うことができない。また、複数の変数が同じ領
域を取る場合には、同じ領域を何度も列挙せねばなら
ず、記述の量がかさばる。
(ニ)既に割り当てられた変数の値の組み合わせから、
別の変数の値の範囲を絞り込むことができる場合も、全
ての組み合わせをルールにより検査しなければならず効
率が悪い。
別の変数の値の範囲を絞り込むことができる場合も、全
ての組み合わせをルールにより検査しなければならず効
率が悪い。
(ホ)発見した全ての途中結果(各ルールの結論部がど
のような仮説の組み合わせで成立するか)を記憶してお
かねばならないので、記憶装置を多く使用する。
のような仮説の組み合わせで成立するか)を記憶してお
かねばならないので、記憶装置を多く使用する。
以上の問題があった。
本発明の目的は、これら従来技術の課題を解決し、効
率の良い計画型のエキスパートシステムを容易に構築す
ることができるエキスパートシステム構築ツールを提供
することである。
率の良い計画型のエキスパートシステムを容易に構築す
ることができるエキスパートシステム構築ツールを提供
することである。
上記目的を達成するため、本発明のエキスパートシス
テム構築ツールは、(1)エキスパートシステムを開発
するための道具として使うソフトウェアであるエキスパ
ートシステム構築ツールにおいて、値を格納する場所と
付加情報を格納する場所からなる複数の変数と、この複
数の変数が各々取り得る値の集合としての領域と、変数
への値の割り当てから帰結されるデータを記録するデー
タ領域と、変数の集合およびこのデータ領域のデータが
満たすべき制約の集合の3つにより定義される制約充足
問題を格納する作業エリア、複数の制約充足問題を探索
済み領域と未探索領域に分けて格納する問題ストック、
探索順序の指定、変数の割り当て順序の指定、探索不必
要な問題の指定、作業エリアに取り出された制約充足問
題に対する行動指定を含むユーザの問題解決知識を蓄積
する探索戦略データベース、この探索戦略データベース
の知識に基づき、問題ストックの未探索領域から制約充
足問題を取り出し、探索済み領域に入れ、かつ、この制
約充足問題を作業エリアに置き、この作業エリアの制約
充足問題の未割り当て変数を選びだし、この未割り当て
変数の領域の値を、この変数へ割り当てることにより新
しい制約充足問題を生成して問題ストックの未探索領域
に格納する動作を繰り返す探索エンジン、および、この
探索エンジンによりデータの書き込み、および、参照を
行う大域データ領域を有することを特徴とする。
テム構築ツールは、(1)エキスパートシステムを開発
するための道具として使うソフトウェアであるエキスパ
ートシステム構築ツールにおいて、値を格納する場所と
付加情報を格納する場所からなる複数の変数と、この複
数の変数が各々取り得る値の集合としての領域と、変数
への値の割り当てから帰結されるデータを記録するデー
タ領域と、変数の集合およびこのデータ領域のデータが
満たすべき制約の集合の3つにより定義される制約充足
問題を格納する作業エリア、複数の制約充足問題を探索
済み領域と未探索領域に分けて格納する問題ストック、
探索順序の指定、変数の割り当て順序の指定、探索不必
要な問題の指定、作業エリアに取り出された制約充足問
題に対する行動指定を含むユーザの問題解決知識を蓄積
する探索戦略データベース、この探索戦略データベース
の知識に基づき、問題ストックの未探索領域から制約充
足問題を取り出し、探索済み領域に入れ、かつ、この制
約充足問題を作業エリアに置き、この作業エリアの制約
充足問題の未割り当て変数を選びだし、この未割り当て
変数の領域の値を、この変数へ割り当てることにより新
しい制約充足問題を生成して問題ストックの未探索領域
に格納する動作を繰り返す探索エンジン、および、この
探索エンジンによりデータの書き込み、および、参照を
行う大域データ領域を有することを特徴とする。
また、(2)上記(1)において、変数の領域に名前
をつけ、制約充足問題の記述において、変数の領域の値
の集合の代わりにこの名前を指定し、この名前を値の集
合に戻すことを特徴とする。
をつけ、制約充足問題の記述において、変数の領域の値
の集合の代わりにこの名前を指定し、この名前を値の集
合に戻すことを特徴とする。
また、(3)上記(2)において、名前が表す領域の
指示における具体的な値の集合に、値の集合を指示する
名前の値の集合との和集合演算を行うことを特徴とす
る。
指示における具体的な値の集合に、値の集合を指示する
名前の値の集合との和集合演算を行うことを特徴とす
る。
また、(4)上記(1)において、変数の領域を分割
することを特徴とする。
することを特徴とする。
また、(5)上記(1)において、ユーザのプログラ
ムにより動作する装置を用いて、変数に対して領域の値
を列挙することを特徴とする。
ムにより動作する装置を用いて、変数に対して領域の値
を列挙することを特徴とする。
また、(6)上記(1)において、値の各集合の間の
関係定義をユーザが記述して格納する装置を用い、この
装置に格納されている関係に基づき、変数の領域の範囲
を絞り込むことを特徴とする。
関係定義をユーザが記述して格納する装置を用い、この
装置に格納されている関係に基づき、変数の領域の範囲
を絞り込むことを特徴とする。
また、(7)上記(1)において、問題ストックを複
数の部分問題に分け、制約充足問題をこの部分問題に分
けて解決することを特徴とする。
数の部分問題に分け、制約充足問題をこの部分問題に分
けて解決することを特徴とする。
また、(8)上記(7)において、部分問題のそれぞ
れに名前をつけ、探索戦略データベースに記述される知
識にこの名前を使うことを特徴とする。
れに名前をつけ、探索戦略データベースに記述される知
識にこの名前を使うことを特徴とする。
また、(9)上記(1)において、問題ストックの問
題の集合を元の部分問題に戻す装置を用い、問題ストッ
クの占めるメモリを減少させることを特徴とする。
題の集合を元の部分問題に戻す装置を用い、問題ストッ
クの占めるメモリを減少させることを特徴とする。
そして、(10)上記(1)において、変数を重要度に
基づき分割して、この分割された変数の集合に名前を付
けて蓄積し、この変数集合の名前を変数の割当て順番指
定に用いることを特徴とする。
基づき分割して、この分割された変数の集合に名前を付
けて蓄積し、この変数集合の名前を変数の割当て順番指
定に用いることを特徴とする。
本発明において探索エンジンは、戦略データベータに
記述された知識に基づき、問題ストックを探索し、問題
に対しての解を求める。
記述された知識に基づき、問題ストックを探索し、問題
に対しての解を求める。
この探索動作中に、ユーザがどのような解でも良いか
ら欲しい場合には、この行動として、「解を見つけたら
探索を中止せよ」という知識を探索戦略データベースに
書くことにより、ここで探索を打ち切ることになる。ま
た、探索の順序指定、変数の割当て順序の指定、探索不
必要な問題の指定により、ユーザのヒューリスティクス
を表現し、求解に必要な探索だけを行うように探索を制
御できるので、矛盾だけを用いた場合より探索空間を絞
ることができ、前記課題(イ)が解決される。また、あ
る解を見つけたら、それを大域データ領域に書き出し、
充分な個数の最良に近い解が大域データ領域に書き出さ
れたときに探索を中断するように探索戦略データベース
に指定しておけば、全ての解を探す無駄な探索を避ける
ことができ、前記課題(ロ)が解決される。
ら欲しい場合には、この行動として、「解を見つけたら
探索を中止せよ」という知識を探索戦略データベースに
書くことにより、ここで探索を打ち切ることになる。ま
た、探索の順序指定、変数の割当て順序の指定、探索不
必要な問題の指定により、ユーザのヒューリスティクス
を表現し、求解に必要な探索だけを行うように探索を制
御できるので、矛盾だけを用いた場合より探索空間を絞
ることができ、前記課題(イ)が解決される。また、あ
る解を見つけたら、それを大域データ領域に書き出し、
充分な個数の最良に近い解が大域データ領域に書き出さ
れたときに探索を中断するように探索戦略データベース
に指定しておけば、全ての解を探す無駄な探索を避ける
ことができ、前記課題(ロ)が解決される。
また、制約充足問題の変数の領域に名前をつけ、か
つ、この名前を値の集合に戻す機能により、その制約充
足問題の記述においては、値の集合の代わりに、この名
前を指定する。また、この領域名が表す領域の具体的な
値の集合に加えて、別の値の集合を指示する名前の集合
との和集合演算を用いて、例えば、自然数の集合などの
再帰的な無限集合を記述する。さらに、領域分割機能に
より、作業エリアの制約充足問題の変数に対する値割り
当ての操作だけでなく、領域を分割する操作も行い、領
域を無限集合と有限集合に分け、探索空間の有限な展開
を可能として、無限集合の領域を含む探索問題を扱う。
これらにより、前記課題(ハ)が解決される。
つ、この名前を値の集合に戻す機能により、その制約充
足問題の記述においては、値の集合の代わりに、この名
前を指定する。また、この領域名が表す領域の具体的な
値の集合に加えて、別の値の集合を指示する名前の集合
との和集合演算を用いて、例えば、自然数の集合などの
再帰的な無限集合を記述する。さらに、領域分割機能に
より、作業エリアの制約充足問題の変数に対する値割り
当ての操作だけでなく、領域を分割する操作も行い、領
域を無限集合と有限集合に分け、探索空間の有限な展開
を可能として、無限集合の領域を含む探索問題を扱う。
これらにより、前記課題(ハ)が解決される。
次に、ユーザは、領域の値列挙装置をプログラムで制
御して、有効な値だけを列挙する。または、有望な値を
領域から選びだすための式を領域の値列挙装置に蓄積
し、これを利用し、有望な値だけを列挙する。このこと
により、解に到達しやすい割り当てだけを行うことがで
き、前記課題(ニ)が解決される。
御して、有効な値だけを列挙する。または、有望な値を
領域から選びだすための式を領域の値列挙装置に蓄積
し、これを利用し、有望な値だけを列挙する。このこと
により、解に到達しやすい割り当てだけを行うことがで
き、前記課題(ニ)が解決される。
また、縮退装置は、その縮退条件テーブルの記述に従
い、今後しばらく使われることのない部分探索木や探索
する必要のなくなった部分探索木を制約充足問題に戻し
て、問題ストックの占めるメモリを減少させる。もし、
以後の探索で縮退した部分探索木が必要になった場合に
は、再度展開する。これにより、前記課題(ホ)が解決
される。
い、今後しばらく使われることのない部分探索木や探索
する必要のなくなった部分探索木を制約充足問題に戻し
て、問題ストックの占めるメモリを減少させる。もし、
以後の探索で縮退した部分探索木が必要になった場合に
は、再度展開する。これにより、前記課題(ホ)が解決
される。
以下本発明の実施例を、図面により詳細に説明する。
第1図は本発明を施したツール101の構成を示すブロ
ック図である。
ック図である。
作業エリア102、問題ストック104、探索戦略データベ
ース105、探索エンジン106、大域データ領域107から構
成される。
ース105、探索エンジン106、大域データ領域107から構
成される。
作業エリア102には、制約充足問題103が置かれてい
る。さらに、制約充足問題103は、後述の第2図に示さ
れるように、変数と各変数に対して付加情報を蓄えるフ
ィールドおよび変数が取り得る値の集合の3つの組の集
合からなる変数部201と、データ書き込みのためのデー
タ領域202と、変数およびデータ領域のデータに関する
制約の集合である制約部203との3つ組で表現される。
る。さらに、制約充足問題103は、後述の第2図に示さ
れるように、変数と各変数に対して付加情報を蓄えるフ
ィールドおよび変数が取り得る値の集合の3つの組の集
合からなる変数部201と、データ書き込みのためのデー
タ領域202と、変数およびデータ領域のデータに関する
制約の集合である制約部203との3つ組で表現される。
問題ストック104は、探索済み領域と未探索領域に分
けられる。
けられる。
探索戦略データベース105には、後述の第8図に示さ
れるように、以下のものが格納されている。
れるように、以下のものが格納されている。
i)問題ストックから問題を選ぶ知識801、 ii)割り当て変数を決定する知識802、 iii)ある問題をさらに探索すべきかどうかの知識803、 例えば、「既に解が幾つか求まっており、ある問題を
解いても、既に求めた解よりよい解が得られないとき
は、その問題を探索する必要がない」という知識、 iv)作業エリアの問題に対する行動804、例えば、「解
であれば(すなわち、全ての変数が制約を侵さずに割り
当てられていれば)、それを大域データ領域に記録し
て、探索を終了せよ」という指示が格納される。
解いても、既に求めた解よりよい解が得られないとき
は、その問題を探索する必要がない」という知識、 iv)作業エリアの問題に対する行動804、例えば、「解
であれば(すなわち、全ての変数が制約を侵さずに割り
当てられていれば)、それを大域データ領域に記録し
て、探索を終了せよ」という指示が格納される。
また、ユーザによりツール外部から作業エリア102に
おかれた制約充足問題103は、問題ストック104の未探索
領域に格納される。
おかれた制約充足問題103は、問題ストック104の未探索
領域に格納される。
さて、以下に、探索エンジン106の動作に基づき、ツ
ール101の処理動作を説明する。
ール101の処理動作を説明する。
まず、探索エンジン106は、戦略データベース105の
「問題ストックから問題を選ぶ知識」801を用いて、問
題ストック104の中の未探索領域から問題を1つ選び、
それを取り出して作業エリア102に置き、問題ストック1
04中のその問題を探索済み領域に入れる。
「問題ストックから問題を選ぶ知識」801を用いて、問
題ストック104の中の未探索領域から問題を1つ選び、
それを取り出して作業エリア102に置き、問題ストック1
04中のその問題を探索済み領域に入れる。
そして、この問題に対して探索戦略データ105の中に
ある「ある問題を探索すべきかどうかに関する知識」80
3を用いて探索すべきがどうかを決定する。
ある「ある問題を探索すべきかどうかに関する知識」80
3を用いて探索すべきがどうかを決定する。
もし、探索しなくて良いならば、上の問題選択の処理
に戻る。また、探索するのであれば、この問題に対し
て、戦略データベース105の「作業エリアの問題に対す
る行動」804に従って、操作がなされる。
に戻る。また、探索するのであれば、この問題に対し
て、戦略データベース105の「作業エリアの問題に対す
る行動」804に従って、操作がなされる。
ここで、ユーザがどのような解でも良いから欲しい場
合には、この行動として、「解を見つけたら探索を中止
せよ」という知識が探索戦略データベース105に書かれ
ており、ここで探索を打ち切ることになる。その場合、
解は、作業エリア102にあるものである。
合には、この行動として、「解を見つけたら探索を中止
せよ」という知識が探索戦略データベース105に書かれ
ており、ここで探索を打ち切ることになる。その場合、
解は、作業エリア102にあるものである。
探索戦略データベース105に書かれている動作を終え
た後、この問題に未割り当て変数があるかどうかを調べ
る。
た後、この問題に未割り当て変数があるかどうかを調べ
る。
未割り当て変数が残っている場合は、探索戦略データ
ベース105に格納されている「割り当てる変数を決定す
る知識」802を用いて、未割り当ての変数を1つ選びだ
し、その変数の領域の値を1つづつ割り当ててみて、割
り当てた範囲で制約を侵していないかどうかを確かめ
る。侵していなければ、それを問題ストック104の未探
索領域に格納する。
ベース105に格納されている「割り当てる変数を決定す
る知識」802を用いて、未割り当ての変数を1つ選びだ
し、その変数の領域の値を1つづつ割り当ててみて、割
り当てた範囲で制約を侵していないかどうかを確かめ
る。侵していなければ、それを問題ストック104の未探
索領域に格納する。
未割り当て変数が残っていない場合は、処理を次に進
める。
める。
この動作を、問題ストック104の中に未探索領域に問
題がある間行う。
題がある間行う。
ここで、本ツール101は、制約チェックによる矛盾の
検出のほかに、探索戦略を用いることができる。従っ
て、矛盾だけでは充分探索空間が絞れない場合でも、ど
のような割り当てが解に到着しやすいかをユーザが知っ
ていれば、それを「問題選択の知識」801と「割り当て
変数選択の知識」802用いて探索をガイドしてやり、例
えば、探索の順序指定、変数の割当て順序の指定、探索
不必要な問題の指定により、ユーザのヒューリスティク
スを表現し、求解に必要な探索だけを行うように探索を
制御できるので、解が見つかるまで探索空間を広げない
で済む。また、矛盾を導かなくとも探索を打ち切って良
い場合をユーザが知っている場合には、「問題を探索す
べきかどうかの知識」803を用いて、そのような問題の
探索を終了させれば良いので、矛盾だけを用いた場合よ
り探索空間を絞ることができる。
検出のほかに、探索戦略を用いることができる。従っ
て、矛盾だけでは充分探索空間が絞れない場合でも、ど
のような割り当てが解に到着しやすいかをユーザが知っ
ていれば、それを「問題選択の知識」801と「割り当て
変数選択の知識」802用いて探索をガイドしてやり、例
えば、探索の順序指定、変数の割当て順序の指定、探索
不必要な問題の指定により、ユーザのヒューリスティク
スを表現し、求解に必要な探索だけを行うように探索を
制御できるので、解が見つかるまで探索空間を広げない
で済む。また、矛盾を導かなくとも探索を打ち切って良
い場合をユーザが知っている場合には、「問題を探索す
べきかどうかの知識」803を用いて、そのような問題の
探索を終了させれば良いので、矛盾だけを用いた場合よ
り探索空間を絞ることができる。
これにより、前記(イ)における問題(すなわち、少
数の「仮説」の組み合わせでは矛盾を起こさず、矛盾の
検出が、探索空間を絞るための充分な手段とならないこ
とがある。通常、この探索空間は、巨大であるので、有
意味な時間では、解が求まらない場合が多い。という問
題)が解決される。
数の「仮説」の組み合わせでは矛盾を起こさず、矛盾の
検出が、探索空間を絞るための充分な手段とならないこ
とがある。通常、この探索空間は、巨大であるので、有
意味な時間では、解が求まらない場合が多い。という問
題)が解決される。
また、探索戦略データベース105には、問題に対する
行動を記述することができるので、解を見つけたら、そ
れを大域データ領域107に書き出しておいて、充分な個
数の最良に近い解が大域データ領域107に書き出された
とき、探索を中断するように探索戦略データベース105
に指定しておけば、全ての解を探す無駄な探索を防ぐこ
とができ、前記(ロ)における問題(すなわち、全ての
解を求めるときは効果的であるが、実際には、最良の
解、あるいは、最良に近い解が幾つか求まれば良い問題
も多い。このような場合には、全ての解を求めるための
無駄な探索を行っていることになる。という問題)は解
決される。
行動を記述することができるので、解を見つけたら、そ
れを大域データ領域107に書き出しておいて、充分な個
数の最良に近い解が大域データ領域107に書き出された
とき、探索を中断するように探索戦略データベース105
に指定しておけば、全ての解を探す無駄な探索を防ぐこ
とができ、前記(ロ)における問題(すなわち、全ての
解を求めるときは効果的であるが、実際には、最良の
解、あるいは、最良に近い解が幾つか求まれば良い問題
も多い。このような場合には、全ての解を求めるための
無駄な探索を行っていることになる。という問題)は解
決される。
第2図は、第1図における制約充足問題103の表現方
法を示す展開図である。
法を示す展開図である。
制約充足問題103は、変数部201とデータ領域202、そ
して、制約部203から構成されている。
して、制約部203から構成されている。
さらに、変数部201は、変数の集まりで構成され、変
数は、変数名2011と種々の情報を格納するフィールド値
を格納する値フィールド2012、および、値フィールドに
割り当てる値の集合である領域2013からなる。
数は、変数名2011と種々の情報を格納するフィールド値
を格納する値フィールド2012、および、値フィールドに
割り当てる値の集合である領域2013からなる。
ユーザは、変数に任意のフィールドを定義でき、種々
の情報を書き込むことができる。例えば、第2図では、
購入品の決定を行う問題を表現しており、変数としては
{買う、買わない}を領域とする購入希望品が選ばれて
おり、それぞれの価格を格納するために金額のフィール
ドが設けられている。
の情報を書き込むことができる。例えば、第2図では、
購入品の決定を行う問題を表現しており、変数としては
{買う、買わない}を領域とする購入希望品が選ばれて
おり、それぞれの価格を格納するために金額のフィール
ドが設けられている。
データ領域202は、変数の割り当てから帰結されるデ
ータが任意に書き込まれる領域である。例えば、第2図
では、変数部201において、現在までに買うことを決定
した品物の合計の金額(310,000)が書き込まれてい
る。
ータが任意に書き込まれる領域である。例えば、第2図
では、変数部201において、現在までに買うことを決定
した品物の合計の金額(310,000)が書き込まれてい
る。
制約部203は、変数の割り当てが満たすべき性質が記
述される。例えば、第2図においては、「プリンタはパ
ソコンがあって始めて役に立つので、プリンタを買うな
らばパソコンを買わねばならないこと」および「全体の
合計金額が100万円を越えてはならないこと」が制約と
して書かれている。
述される。例えば、第2図においては、「プリンタはパ
ソコンがあって始めて役に立つので、プリンタを買うな
らばパソコンを買わねばならないこと」および「全体の
合計金額が100万円を越えてはならないこと」が制約と
して書かれている。
第3図は、第1図において、問題ストック104と制約
充足問題103とを複数の部分に分けて利用する状況を示
すブロック図である。
充足問題103とを複数の部分に分けて利用する状況を示
すブロック図である。
問題ストック104を複数の部分に分けて管理する問題
集合テーブル301と、制約充足問題103を複数の部分に分
けて管理する変数集合テーブル302が付加されている。
集合テーブル301と、制約充足問題103を複数の部分に分
けて管理する変数集合テーブル302が付加されている。
問題集合テーブル301は、問題集合名3011欄と問題の
集合欄3012から構成され、問題P2、P4、P5、P7、P8の集
まりは、エキスパートシステム構築ツールを利用するユ
ーザが付けた「部分問題(1)」との名前で管理され
る。同様に、問題P3、P6の集まりは、「部分問題
(2)」との名前で管理され、さらに、問題P7、P6は、
「解きやすそうな問題」との名前で管理されている。
集合欄3012から構成され、問題P2、P4、P5、P7、P8の集
まりは、エキスパートシステム構築ツールを利用するユ
ーザが付けた「部分問題(1)」との名前で管理され
る。同様に、問題P3、P6の集まりは、「部分問題
(2)」との名前で管理され、さらに、問題P7、P6は、
「解きやすそうな問題」との名前で管理されている。
また、変数集合テーブル302は、変数集合名3021と変
数の集合3022から構成されている。変数X1、X3、X5の集
まりは、「重要変数」との名前で管理され、変数X2、X4
の集まりは、「非重要変数」との名前で管理されてい
る。
数の集合3022から構成されている。変数X1、X3、X5の集
まりは、「重要変数」との名前で管理され、変数X2、X4
の集まりは、「非重要変数」との名前で管理されてい
る。
第1図におけるツール101では、制約充足問題103を解
いた場合に、同じ変数の同じ値の割り当てに対して、同
じ制約を何度もチェックする可能性がある。
いた場合に、同じ変数の同じ値の割り当てに対して、同
じ制約を何度もチェックする可能性がある。
しかし、第3図の問題集合テーブル301に示されるよ
うに、問題ストック104を部分問題(1)や部分問題
(2)等の複数の部分に分けることにより、同じ制約を
何度もチェックする無駄が無くなる。すなわち、何度も
チェックする可能性のある変数集合は、部分問題として
問題集合テーブル301で分割して問題ストック104に設
け、そこで探索を行い、その結果を残りの部分問題で利
用すれば、最初の部分探索空間は、1度しか探索されな
いので、同じ割り当ての組み合わせに対して、同じ制約
のチェックを何度も行わないで済む。
うに、問題ストック104を部分問題(1)や部分問題
(2)等の複数の部分に分けることにより、同じ制約を
何度もチェックする無駄が無くなる。すなわち、何度も
チェックする可能性のある変数集合は、部分問題として
問題集合テーブル301で分割して問題ストック104に設
け、そこで探索を行い、その結果を残りの部分問題で利
用すれば、最初の部分探索空間は、1度しか探索されな
いので、同じ割り当ての組み合わせに対して、同じ制約
のチェックを何度も行わないで済む。
また、問題集合テーブル301の問題集合名3011を利用
することにより、問題ストック104から問題を選択する
操作を、ある問題集合に限定することができ、問題スト
ックからの問題の検索を高速化できる。
することにより、問題ストック104から問題を選択する
操作を、ある問題集合に限定することができ、問題スト
ックからの問題の検索を高速化できる。
これらの結果として、探索の効率を向上することがで
き、前記(イ)における問題の解決に、より貢献する。
き、前記(イ)における問題の解決に、より貢献する。
さらに、制約充足問題103を、変数に基づき複数の部
分に分けて管理する変数集合テーブル302が付加されて
いるため、この変数集合テーブル302を利用することに
より、次に割り当てる変数の範囲を限定することがで
き、割り当てる変数の決定を高速化できる。その結果と
して、同様に、探索の効率が向上し、前記(イ)におけ
る問題の解決に、より貢献する。
分に分けて管理する変数集合テーブル302が付加されて
いるため、この変数集合テーブル302を利用することに
より、次に割り当てる変数の範囲を限定することがで
き、割り当てる変数の決定を高速化できる。その結果と
して、同様に、探索の効率が向上し、前記(イ)におけ
る問題の解決に、より貢献する。
第4図は、第1図における制約充足問題103の領域を
分割管理する領域名テーブル401を設け、かつ、領域の
分割割り当て機能を持つ領域分割機能402を探索エンジ
ン106に加えた構成を示すブロック図である。
分割管理する領域名テーブル401を設け、かつ、領域の
分割割り当て機能を持つ領域分割機能402を探索エンジ
ン106に加えた構成を示すブロック図である。
領域名テーブル401は、変数が取り得る値の集合とし
ての領域、例えば、「{買う,買わない}」の領域式に
対応して「決定値」との領域名4011を持つので、探索エ
ンジン106は、この領域名4011で領域名テーブル401を検
索することにより、対応する値の集合を求めることがで
き、領域名4011を値の集合に戻すことができる。このこ
とにより、ユーザは、制約充足問題103の記述におい
て、値の集合の代わりに、この領域名4011(「決定
値」)で指定できる。このようにして、巨大な領域は、
1度記述すれば、再度現れるときには、その領域の名前
で参照できるので、何度も同じものを列挙する必要はな
い。
ての領域、例えば、「{買う,買わない}」の領域式に
対応して「決定値」との領域名4011を持つので、探索エ
ンジン106は、この領域名4011で領域名テーブル401を検
索することにより、対応する値の集合を求めることがで
き、領域名4011を値の集合に戻すことができる。このこ
とにより、ユーザは、制約充足問題103の記述におい
て、値の集合の代わりに、この領域名4011(「決定
値」)で指定できる。このようにして、巨大な領域は、
1度記述すれば、再度現れるときには、その領域の名前
で参照できるので、何度も同じものを列挙する必要はな
い。
また、領域名テーブル401において、領域名4011が表
わす領域の指示で、「{買う,買わない}」などのよう
な具体的な集合に加えて、「決定値U{もらう}」等の
ように、領域名あるいは別の値の集合を指示する名前と
集合の和集合演算を用いることができる。
わす領域の指示で、「{買う,買わない}」などのよう
な具体的な集合に加えて、「決定値U{もらう}」等の
ように、領域名あるいは別の値の集合を指示する名前と
集合の和集合演算を用いることができる。
さらに、領域分割機能402を用いることにより、再帰
的な無限集合(例えば自然数の集合など)を記述できる
ようになる。すなわち、領域分割機能402は、領域を分
割する操作機能を有し、例えば、領域名テーブル401に
おける領域名4011「自然数」のように、「{0}U(ま
たは){X+1|X∈自然数}(Xは自然数)」といっ
た、再帰的な定義で無限に要素のある領域の要素を、順
次生成し、有限回で止め、例えば「自然数前半={0,1,
2,…,100}」や、「自然数後半=(自然数,100まで列
挙)」等を生成し、既に生成した要素の列挙と生成の続
きを継続できるデータに分けることができる。
的な無限集合(例えば自然数の集合など)を記述できる
ようになる。すなわち、領域分割機能402は、領域を分
割する操作機能を有し、例えば、領域名テーブル401に
おける領域名4011「自然数」のように、「{0}U(ま
たは){X+1|X∈自然数}(Xは自然数)」といっ
た、再帰的な定義で無限に要素のある領域の要素を、順
次生成し、有限回で止め、例えば「自然数前半={0,1,
2,…,100}」や、「自然数後半=(自然数,100まで列
挙)」等を生成し、既に生成した要素の列挙と生成の続
きを継続できるデータに分けることができる。
このように、領域を無限集合と有限集合に分ければ、
探索空間の有限な展開が可能となり、無限集合の領域を
含む探索問題を扱うことが可能となる。
探索空間の有限な展開が可能となり、無限集合の領域を
含む探索問題を扱うことが可能となる。
このことにより、前記(ハ)における問題(すなわ
ち、変数が取り得る値は、最初に「仮説」として全て列
挙されねばならず、無限の領域(例えば、整数の集合)
を扱うことができない。また、複数の変数が同じ領域を
取る場合には、同じ領域を何度も列挙せねばならず、記
述の量がかさばる。という問題)が解決される。
ち、変数が取り得る値は、最初に「仮説」として全て列
挙されねばならず、無限の領域(例えば、整数の集合)
を扱うことができない。また、複数の変数が同じ領域を
取る場合には、同じ領域を何度も列挙せねばならず、記
述の量がかさばる。という問題)が解決される。
第5図は、第1図におけるツール101がユーザプログ
ラムにより制御される領域の値列挙装置を利用する構成
を示すブロック図である。
ラムにより制御される領域の値列挙装置を利用する構成
を示すブロック図である。
領域の値列挙装置501には、ユーザプログラム(1)5
02、ユーザプログラム(2)503等が設けられている。
02、ユーザプログラム(2)503等が設けられている。
ユーザは、領域の値列挙装置501が、領域名テーブル4
01を参照して、有効な値だけを列挙するようにプログラ
ム502で制御する。
01を参照して、有効な値だけを列挙するようにプログラ
ム502で制御する。
例えば、制約充足問題103内の割り当てられる変数に
ユーザの領域列挙プログラム502が蓄積されていれば、
それを用いて値の列挙を行う。
ユーザの領域列挙プログラム502が蓄積されていれば、
それを用いて値の列挙を行う。
このアルゴリズムを使用すると、ユーザが、領域の効
率的な列挙法を知っている場合には、それをプログラム
化することにより、制約充足問題を効率的に解くことが
できる。
率的な列挙法を知っている場合には、それをプログラム
化することにより、制約充足問題を効率的に解くことが
できる。
第6図は、第1図におけるツール101が、領域の値列
挙装置501を介し、述語表現により領域の値の列挙を制
御される構成を表すブロック図である。
挙装置501を介し、述語表現により領域の値の列挙を制
御される構成を表すブロック図である。
関係用語テーブル601には、問題の解として有望な値
を領域から選び出すための各集合間の関係を表わす条件
(「P(X)≡X>2」、「q(X,Y)≡X>Y」、
…)がユーザにより述語表現で定義されており、また、
領域の列挙装置501には、この関係用語テーブル601で定
義された条件を用いた式(「P(X1)」、「q(X1,
X2)」、…)が、関係表現602,603として蓄積されてい
る。このような構成において、領域の列挙装置501は、
関係用語テーブル601の述語定義に基づき、領域名テー
ブル401の各値を、関係表現602,603を用いて評価し、成
立した値だけを変数に割り当てる。これにより、探索エ
ンジンは、解に到達しやすい有望な値のみの割り当てだ
けを行なうことになる。
を領域から選び出すための各集合間の関係を表わす条件
(「P(X)≡X>2」、「q(X,Y)≡X>Y」、
…)がユーザにより述語表現で定義されており、また、
領域の列挙装置501には、この関係用語テーブル601で定
義された条件を用いた式(「P(X1)」、「q(X1,
X2)」、…)が、関係表現602,603として蓄積されてい
る。このような構成において、領域の列挙装置501は、
関係用語テーブル601の述語定義に基づき、領域名テー
ブル401の各値を、関係表現602,603を用いて評価し、成
立した値だけを変数に割り当てる。これにより、探索エ
ンジンは、解に到達しやすい有望な値のみの割り当てだ
けを行なうことになる。
これにより、ユーザが変数の取る値を効率的に絞る条
件を知っている場合は、それを記述することにより、制
約充足問題を効率的に解くことができる。
件を知っている場合は、それを記述することにより、制
約充足問題を効率的に解くことができる。
これらにより、前記(ニ)における問題(すなわち、
既に割り当てられた変数の値の組み合わせから、別の変
数の値の範囲を絞り込むことができる場合も、全ての組
み合わせをルールにより検査しなければならず効率が悪
い。という問題)が解決される。
既に割り当てられた変数の値の組み合わせから、別の変
数の値の範囲を絞り込むことができる場合も、全ての組
み合わせをルールにより検査しなければならず効率が悪
い。という問題)が解決される。
第7図は、第1図におけるツール101が縮退装置702を
利用する構成を示すブロック図である。
利用する構成を示すブロック図である。
縮退装置702は、縮退条件テーブル701を有し、縮退条
件テーブル701には、例えば、「残りのメモリが1M以下
であれば、優先度100以下を縮退」等が記述される。
件テーブル701には、例えば、「残りのメモリが1M以下
であれば、優先度100以下を縮退」等が記述される。
縮退装置702は、この縮退条件テーブル701の記述に従
って問題ストック104の木構造となっている各部分問題
に対して、後述の第14図で説明するアルゴリズムに基づ
く縮退処理を行なう。すなわち、縮退装置702は、問題
ストック104の中の問題を(木構造に従って)順に探索
し、縮退条件テーブル701で定義された縮退する条件を
満たした場合、その問題の子孫を捨て去り、その部分問
題を頂点とする部分探索木に縮退する。
って問題ストック104の木構造となっている各部分問題
に対して、後述の第14図で説明するアルゴリズムに基づ
く縮退処理を行なう。すなわち、縮退装置702は、問題
ストック104の中の問題を(木構造に従って)順に探索
し、縮退条件テーブル701で定義された縮退する条件を
満たした場合、その問題の子孫を捨て去り、その部分問
題を頂点とする部分探索木に縮退する。
縮退された問題の頂点の部分問題には、探索情報エッ
センス703として、縮退したという印をつける。
センス703として、縮退したという印をつける。
このように、縮退条件テーブル701への記述する条件
によっては、縮退装置702を介して行う探索により、問
題ストック104の占めるメモリを減少させ、メモリを節
約することができる。すなわち、ユーザの判断により、
今後しばらく使われることのない部分探索木や探索する
必要のなくなった部分探索木に関しては、縮退条件テー
ブル701に縮退条件として記述し、これらの部分探索木
を制約充足問題103に戻することができ、これにより、
問題ストック104の占めるメモリを減少させることがで
きる。
によっては、縮退装置702を介して行う探索により、問
題ストック104の占めるメモリを減少させ、メモリを節
約することができる。すなわち、ユーザの判断により、
今後しばらく使われることのない部分探索木や探索する
必要のなくなった部分探索木に関しては、縮退条件テー
ブル701に縮退条件として記述し、これらの部分探索木
を制約充足問題103に戻することができ、これにより、
問題ストック104の占めるメモリを減少させることがで
きる。
尚、もし、以後の探索で、縮退した部分探索木が必要
になった場合には、探索情報エッセンス703を探索し、
問題ストック104の未探索領域に再度展開すれば良い。
になった場合には、探索情報エッセンス703を探索し、
問題ストック104の未探索領域に再度展開すれば良い。
これにより、前記(ホ)における問題(すなわち、発
見した全ての途中結果(各ルールの結論部がどのような
仮説の組み合わせで成立するか)を記憶しておかねばな
らないので、記憶装置を多く使用する。という問題)が
解決される。
見した全ての途中結果(各ルールの結論部がどのような
仮説の組み合わせで成立するか)を記憶しておかねばな
らないので、記憶装置を多く使用する。という問題)が
解決される。
第8図は第1図におけるツールの探索戦略データベー
ス105の内部構成を示すブロック図である。
ス105の内部構成を示すブロック図である。
探索戦略データベース105には、「問題ストックから
問題を選ぶ知識」801と「割り当てる変数を決定する知
識」802と「ある問題を探索すべきかどうかを決定する
知識」803と「作業エリアの問題に対する行動」804が蓄
積されている。これらの知識を第1図の探索エンジン10
6が参照することにより、ツール101は、種々の問題の解
を得ることができる。
問題を選ぶ知識」801と「割り当てる変数を決定する知
識」802と「ある問題を探索すべきかどうかを決定する
知識」803と「作業エリアの問題に対する行動」804が蓄
積されている。これらの知識を第1図の探索エンジン10
6が参照することにより、ツール101は、種々の問題の解
を得ることができる。
第9図は、第1図における探索エンジン106の動作を
示す構造化チャートである。
示す構造化チャートである。
まず、ユーザから、作業エリアに問題が入力される
と、処理901で、その問題を問題ストック104の未探索領
域に入れる。次に処理902で、問題ストック104の未探索
領域が空になるまで処理904から処理907までを続ける。
と、処理901で、その問題を問題ストック104の未探索領
域に入れる。次に処理902で、問題ストック104の未探索
領域が空になるまで処理904から処理907までを続ける。
まず、処理904で探索木縮退条件をチェックすること
により、縮退すべき部分探索木があるかどうかを調べ、
もしあるならば、縮退させる。
により、縮退すべき部分探索木があるかどうかを調べ、
もしあるならば、縮退させる。
次に、処理905で探索戦略データベース105の問題選択
知識に従い、問題を1つ選び、それを問題ストック104
の未探索領域から取り去り、作業エリアに置く。
知識に従い、問題を1つ選び、それを問題ストック104
の未探索領域から取り去り、作業エリアに置く。
次に、処理906で、探索戦略データベース105の「問題
を探索すべきかどうかの知識」を用いて、その問題を探
索すべきかどうかを調べる。もし、探索すべきであれば
処理908を行う。探索しなくて良いならば処理907で木の
還元処理を行う。
を探索すべきかどうかの知識」を用いて、その問題を探
索すべきかどうかを調べる。もし、探索すべきであれば
処理908を行う。探索しなくて良いならば処理907で木の
還元処理を行う。
この処理907は、問題ストックの未探索領域に問題が
なくなったとき起動を受け、縮退した探索木の内、元に
戻す必要のあるものがあるかを調べ、もし、あれば、そ
れを未探索領域に加える処理を行う。
なくなったとき起動を受け、縮退した探索木の内、元に
戻す必要のあるものがあるかを調べ、もし、あれば、そ
れを未探索領域に加える処理を行う。
次に、処理908で、その問題に対して探索戦略データ
ベース105の知識に蓄積されている操作を行う。
ベース105の知識に蓄積されている操作を行う。
そして、処理909で、その問題に未割り当て変数があ
るかどうか調べる。もし、未割り当て変数が存在すれ
ば、処理910から処理911の処理を行う。
るかどうか調べる。もし、未割り当て変数が存在すれ
ば、処理910から処理911の処理を行う。
まず、処理910で探索戦略データベース105の知識に従
い、割り当てるべき変数を選ぶ。次に、処理911で変数
に対する領域の値を1つづつ割り当てながら制約を満た
すものを求め、それらを問題ストック104の未割り当て
領域にいれる。
い、割り当てるべき変数を選ぶ。次に、処理911で変数
に対する領域の値を1つづつ割り当てながら制約を満た
すものを求め、それらを問題ストック104の未割り当て
領域にいれる。
このアルゴリズムにより、ユーザが探索空間のどこを
探索すれば良いかを知っている場合、その知識を探索戦
略データベース105の4つの知識により表現できるの
で、探索空間を大きく絞ることができる。
探索すれば良いかを知っている場合、その知識を探索戦
略データベース105の4つの知識により表現できるの
で、探索空間を大きく絞ることができる。
第10図は、第9図における処理905の具体的処理を記
述した構造化チャートである。
述した構造化チャートである。
尚、処理905は、第1図の探索エンジン106が、第8図
の「問題ストックから問題を選ぶ知識」801に基づき、
問題ストック104から未探索の問題を選びだすアルゴリ
ズムである。
の「問題ストックから問題を選ぶ知識」801に基づき、
問題ストック104から未探索の問題を選びだすアルゴリ
ズムである。
まず、処理1001でLを問題ストックの未探索領域と
し、XをLの最初の問題とし、LからXを取り去る。次
に、処理1002で探索戦略データベースから問題選択の知
識を取り出し、これをKとする。Kは、p(A,B)の形
をした2引数の述語の集合であり、p(X,Y)が成立す
る時、問題Xを問題Yに先行して探索すべき問題である
ことを意味するものとする。
し、XをLの最初の問題とし、LからXを取り去る。次
に、処理1002で探索戦略データベースから問題選択の知
識を取り出し、これをKとする。Kは、p(A,B)の形
をした2引数の述語の集合であり、p(X,Y)が成立す
る時、問題Xを問題Yに先行して探索すべき問題である
ことを意味するものとする。
次に、処理1003でLが空になるまで処理1005から1006
までを続ける。処理1005では、YをLから取り去る。処
理1006では、YがXより先に探索すべき問題であるかを
調べる。そのために、Kの各述語p(A,B)に対して、
p(Y,X)を評価し、成立すれば、YをXに先行して探
索すべきであると判断し、処理1007でXにYを代入す
る。
までを続ける。処理1005では、YをLから取り去る。処
理1006では、YがXより先に探索すべき問題であるかを
調べる。そのために、Kの各述語p(A,B)に対して、
p(Y,X)を評価し、成立すれば、YをXに先行して探
索すべきであると判断し、処理1007でXにYを代入す
る。
ループ処理が終わったら、Xには戦略データベース10
5の知識に照らしあわせて、最も優先して探索すべき問
題が入っているので、処理1004でXを返す。
5の知識に照らしあわせて、最も優先して探索すべき問
題が入っているので、処理1004でXを返す。
第11図は、第9図の処理908のアルゴリズムを示す構
造化チャートである。
造化チャートである。
尚、第9図の処理908は、第8図の「作業エリアの問
題に対する行動」804を解釈実行するアルゴリズムであ
る。
題に対する行動」804を解釈実行するアルゴリズムであ
る。
まず、処理1101において、Kは、(条件、行動)の形
をした知識の集合である。
をした知識の集合である。
次に、処理1102において、Kが空になるまで、処理11
03から処理1105までを繰り返す。
03から処理1105までを繰り返す。
処理1103で、XをKの最初の要素とし、XをKから取
り去る。
り去る。
処理1104において、CをXの条件部とし、AをXの行
動部とする。処理1105で、作業エリア102の問題に対し
てCを評価して、成立すれば処理1106で、行動Aを作業
エリアの問題に対して行う。
動部とする。処理1105で、作業エリア102の問題に対し
てCを評価して、成立すれば処理1106で、行動Aを作業
エリアの問題に対して行う。
このアルゴリズムにより、探索中に解を見つけた場
合、それを第1図の大域データ領域107に書き出した
り、また、探索自身を終了させることができる。
合、それを第1図の大域データ領域107に書き出した
り、また、探索自身を終了させることができる。
第12図は、第8図における「割り当てる変数を決定す
る知識」802に基づき、第1図の探索エンジン106が実行
する第9図の処理910のアルゴリズムを示す構造化チャ
ートである。
る知識」802に基づき、第1図の探索エンジン106が実行
する第9図の処理910のアルゴリズムを示す構造化チャ
ートである。
処理910は、作業エリアにある問題の未割り当て変数
のうち、次にどの変数を割り当てるかを決定するアルゴ
リズムである。
のうち、次にどの変数を割り当てるかを決定するアルゴ
リズムである。
まず、処理1201でVLを未割り当て変数の集合とし、X
をVLの最初の変数とし、LからXを取り去る。
をVLの最初の変数とし、LからXを取り去る。
次に、処理1202で探索戦略データベースから変数選択
の知識を取り出し、これをKとする。
の知識を取り出し、これをKとする。
Kは、p(A.B)の形をした2引数の述語の集合であ
り、p(X.Y)が成立するとき、変数Xを変数Yに先行
して割り当てるべき変数であることを意味するものとす
る。
り、p(X.Y)が成立するとき、変数Xを変数Yに先行
して割り当てるべき変数であることを意味するものとす
る。
次に、処理1203で、VLが空になるまで処理1205から12
06までを続ける。処理1205では、YをVLの最初の要素と
し、YをVLから取り去る。
06までを続ける。処理1205では、YをVLの最初の要素と
し、YをVLから取り去る。
処理1206では、YがXより先に割り当てを試みるべき
変数であるかを調べる。
変数であるかを調べる。
そのために、Kの各述語p(A,B)に対して、p(Y,
X)を評価し、成立すれば、YをXに先行して割り当て
るべきであると判断し、処理1207で、XにYを代入す
る。
X)を評価し、成立すれば、YをXに先行して割り当て
るべきであると判断し、処理1207で、XにYを代入す
る。
ループ処理が終わったら、Xには戦略データベースの
知識に照らしあわせて、最も優先して割り当てるべき変
数が入っているので、処理1204でXを返す。
知識に照らしあわせて、最も優先して割り当てるべき変
数が入っているので、処理1204でXを返す。
第13図は、第9図の処理911の部分問題生成のアルゴ
リズムを示す構造化チャートである。
リズムを示す構造化チャートである。
まず、処理1301でXを割り当てる変数としてDをその
領域とする。処理1302でDが空になるまで処理1303から
処理1305までを行う。処理1303では、dにDの最初の要
素を入れ、それをDから取り去る。
領域とする。処理1302でDが空になるまで処理1303から
処理1305までを行う。処理1303では、dにDの最初の要
素を入れ、それをDから取り去る。
処理1304でdを変数Xに割り当ててみる。処理1305
で、これまで割り当てられた変数の範囲でチェックでき
る制約をチェックする。
で、これまで割り当てられた変数の範囲でチェックでき
る制約をチェックする。
もし、全ての制約が成立しているならば、処理1306で
データの更新を行う。次に、処理1307で、データ領域に
関する制約チェックを行う。もし、全ての制約を満たし
ていれば、処理1308で、その問題を問題ストックの未探
索領域に入れる。すなわち、この問題ストックの未探索
領域は、今後、解かどうか、あるいは、まだ割り当てを
行なう必要があるかどうかを調べなければならない問題
を格納する領域であり、処理1304で変数の一つに値を割
り当てられ、これまで割り当てられた変数の範囲でチェ
ックできる全ての制約を満たしている問題は、そのよう
な、次に解かどうか、あるいは、さらに割り当てが必要
化どうかを調べる問題であるから、問題ストックの未探
索領域に入れる。
データの更新を行う。次に、処理1307で、データ領域に
関する制約チェックを行う。もし、全ての制約を満たし
ていれば、処理1308で、その問題を問題ストックの未探
索領域に入れる。すなわち、この問題ストックの未探索
領域は、今後、解かどうか、あるいは、まだ割り当てを
行なう必要があるかどうかを調べなければならない問題
を格納する領域であり、処理1304で変数の一つに値を割
り当てられ、これまで割り当てられた変数の範囲でチェ
ックできる全ての制約を満たしている問題は、そのよう
な、次に解かどうか、あるいは、さらに割り当てが必要
化どうかを調べる問題であるから、問題ストックの未探
索領域に入れる。
第14図は、第7図における縮退装置701の動作、すな
わち、第9図の処理904の探索木縮退のアルゴリズムを
示す構造化チャートである。
わち、第9図の処理904の探索木縮退のアルゴリズムを
示す構造化チャートである。
まず、処理1401で、C1を第7図の縮退条件テーブル70
2に格納されている縮退条件として、C2を部分問題ごと
の縮退条件とする。
2に格納されている縮退条件として、C2を部分問題ごと
の縮退条件とする。
次に、処理1402で、C1を評価し、もし、成立すれば、
処理1403で、木の縮退を行う。
処理1403で、木の縮退を行う。
処理1403では、問題ストックの中を、最初に与えられ
た制約充足問題から生成の関係に従って、深さ優先でト
ラバースし、各部分問題に対してC2を適用し、もし、成
立すれば、その部分問題を頂点とする部分探索木を取り
去り、その部分問題に縮退したという印をつける。
た制約充足問題から生成の関係に従って、深さ優先でト
ラバースし、各部分問題に対してC2を適用し、もし、成
立すれば、その部分問題を頂点とする部分探索木を取り
去り、その部分問題に縮退したという印をつける。
取り去った部分探索木に未探索の問題が含まれていな
ければ、さらに、探索済みの印をつける。また、未探索
の問題が残っていれば未探索の印をつける。
ければ、さらに、探索済みの印をつける。また、未探索
の問題が残っていれば未探索の印をつける。
C2が成立しなければ、トラバースを続ける。
ここで、例えば、条件C1としてメモリ不足の条件を指
定しておき、また、ユーザが、探索においてしばらく調
べる必要のない問題として判断し、その条件をC2として
指定しておけば、このアルゴリズムにより、探索中にメ
モリの不足が生じたら、自動的に部分探索木を1つの問
題に縮退し、メモリを確保して探索を続けることができ
る。
定しておき、また、ユーザが、探索においてしばらく調
べる必要のない問題として判断し、その条件をC2として
指定しておけば、このアルゴリズムにより、探索中にメ
モリの不足が生じたら、自動的に部分探索木を1つの問
題に縮退し、メモリを確保して探索を続けることができ
る。
第15図は、第9図の処理907の処理動作を示す構造化
チャートである。
チャートである。
処理907は、同じく第9図の処理904で縮退した探索木
を、再度、探索する対象に加えるアルゴリズムである。
を、再度、探索する対象に加えるアルゴリズムである。
まず、処理1501で、問題ストックにある問題をトラバ
ースして、子孫に未探索の印のついた縮退木がないノー
ドを探索済みの縮退木として縮退する。次に、処理1502
で、探索済み領域から、未探索の印のついた縮退木を検
索し、それを問題ストックの未探索領域に入れる。これ
は、再度、探索が可能になるようにするためである。す
なわち、子孫のノードの問題を全て探索し終わっていな
いノードで、メモリの制約から縮退させられていた問題
を、再度、未探索の領域に入れ、探索を続ける。
ースして、子孫に未探索の印のついた縮退木がないノー
ドを探索済みの縮退木として縮退する。次に、処理1502
で、探索済み領域から、未探索の印のついた縮退木を検
索し、それを問題ストックの未探索領域に入れる。これ
は、再度、探索が可能になるようにするためである。す
なわち、子孫のノードの問題を全て探索し終わっていな
いノードで、メモリの制約から縮退させられていた問題
を、再度、未探索の領域に入れ、探索を続ける。
このようにして、処理904の探索木の縮退を行って
も、このアルゴリズムにより、完全性を損なうことなく
探索を続けることができる。
も、このアルゴリズムにより、完全性を損なうことなく
探索を続けることができる。
第16図は、第5図の値列挙装置501のアルゴリズムを
示す構造化チャートである。
示す構造化チャートである。
まず、処理1601で、割り当てられる変数にユーザの領
域列挙プログラムが蓄積されているかどうかを調べる。
域列挙プログラムが蓄積されているかどうかを調べる。
もし、蓄積されていれば、処理1602で、それを用いて
値の列挙を行う。もし、蓄積されていなければ、処理16
03で、領域の全ての値を列挙する処理を行う。
値の列挙を行う。もし、蓄積されていなければ、処理16
03で、領域の全ての値を列挙する処理を行う。
このアルゴリズムを使用すると、ユーザが、領域の効
率的な列挙法を知っていいる場合は、それをプログラム
化することにより、制約充足問題を効率的に解くことが
できる。
率的な列挙法を知っていいる場合は、それをプログラム
化することにより、制約充足問題を効率的に解くことが
できる。
第17図は、第6図の値列挙装置501のアルゴリズムを
示す構造化チャートである。
示す構造化チャートである。
まず、処理1701で、割り当てられた変数に述語表現が
蓄積されているかどうかを調べる。
蓄積されているかどうかを調べる。
もし、蓄積されていれば、処理1702で、その述語表現
が満たされる値だけを列挙する。もし、蓄積されていな
ければ、処理1703で、領域の全ての値を列挙する処理を
行う。
が満たされる値だけを列挙する。もし、蓄積されていな
ければ、処理1703で、領域の全ての値を列挙する処理を
行う。
このアルゴリズムを使用すると、ユーザが変数の取る
値を効率的に絞る条件を知っている場合は、それを記述
することにより、制約充足問題を効率的に解くことがで
きる。
値を効率的に絞る条件を知っている場合は、それを記述
することにより、制約充足問題を効率的に解くことがで
きる。
本発明によれば、計画型の効率的なエキスパートシス
テムを容易に構築することができる。
テムを容易に構築することができる。
図面は本発明の実施例を示し、第1図は本発明を施した
エキスパートシステム構築ツールの構成を示すブロック
図、第2図は第1図におけるツールが取り扱う問題の表
現方法を示す展開図、第3図は第1図におけるツールが
問題集合テーブルと変数集合テーブルを利用する構成を
示すブロック図、第4図は第1図におけるツールが領域
テーブルを利用する構成を示すブロック図、第5図は第
1図におけるツールがユーザプログラムにより制御され
る領域の値列挙装置を利用する構成を示すブロック図、
第6図は第1図におけるツールが述語表現により列挙を
制御される構成を表すブロック図、第7図は第1図にお
けるツールの縮退装置の構成を示すブロック図、第8図
は第1図における探索戦略データベースの内部構成を示
す展開図、第9図は第1図における探索エンジンのアル
ゴリズムを示す構造化チャート、第10図は第1図におけ
るツールの問題選択のアルゴリズムを示す構造化チャー
ト、第11図は第1図のツールの問題への動作的ようアル
ゴリズムを示す構造化チャート、第12図は第1図におけ
るツールの割り当て変数選択のアルゴリズムを示す構造
化チャート、第13図は第1図におけるツールの部分問題
生成のアルゴリズムを示す構造化チャート、第14図は第
1図におけるツールの探索木縮退のアルゴリズムを示す
構造化チャート、第15図は第1図におけるツールの探索
木還元のアルゴリズムを示す構造化チャート、第16図は
第5図におけるユーザプログラムにより制御される領域
の値列挙装置のアルゴリズムを示す構造化チャート、第
17図は第6図におけるユーザの述語表現により制御され
る領域の値列挙装置のアルゴリズムを示す構造化チャー
トである。 101:ツール,102:作業エリア,103:制約充足問題,104:問
題ストック,105:探索戦略データベース,106:探索エンジ
ン,107:大域データ領域,201:変数部,202:データ領域,20
3:制約部,301:問題集合テーブル,302:変数集合テーブ
ル,401:領域名テーブル,402:領域分割機能,501:領域の
値列挙装置,502:ユーザプログラム(1),503:ユーザプ
ログラム(2),601:関係用語テーブル,602,603:関係表
現,701:縮退条件テーブル,702:縮退装置,703:探索情報
エッセンス,801〜804:探索戦略ベータベース内の知識。
エキスパートシステム構築ツールの構成を示すブロック
図、第2図は第1図におけるツールが取り扱う問題の表
現方法を示す展開図、第3図は第1図におけるツールが
問題集合テーブルと変数集合テーブルを利用する構成を
示すブロック図、第4図は第1図におけるツールが領域
テーブルを利用する構成を示すブロック図、第5図は第
1図におけるツールがユーザプログラムにより制御され
る領域の値列挙装置を利用する構成を示すブロック図、
第6図は第1図におけるツールが述語表現により列挙を
制御される構成を表すブロック図、第7図は第1図にお
けるツールの縮退装置の構成を示すブロック図、第8図
は第1図における探索戦略データベースの内部構成を示
す展開図、第9図は第1図における探索エンジンのアル
ゴリズムを示す構造化チャート、第10図は第1図におけ
るツールの問題選択のアルゴリズムを示す構造化チャー
ト、第11図は第1図のツールの問題への動作的ようアル
ゴリズムを示す構造化チャート、第12図は第1図におけ
るツールの割り当て変数選択のアルゴリズムを示す構造
化チャート、第13図は第1図におけるツールの部分問題
生成のアルゴリズムを示す構造化チャート、第14図は第
1図におけるツールの探索木縮退のアルゴリズムを示す
構造化チャート、第15図は第1図におけるツールの探索
木還元のアルゴリズムを示す構造化チャート、第16図は
第5図におけるユーザプログラムにより制御される領域
の値列挙装置のアルゴリズムを示す構造化チャート、第
17図は第6図におけるユーザの述語表現により制御され
る領域の値列挙装置のアルゴリズムを示す構造化チャー
トである。 101:ツール,102:作業エリア,103:制約充足問題,104:問
題ストック,105:探索戦略データベース,106:探索エンジ
ン,107:大域データ領域,201:変数部,202:データ領域,20
3:制約部,301:問題集合テーブル,302:変数集合テーブ
ル,401:領域名テーブル,402:領域分割機能,501:領域の
値列挙装置,502:ユーザプログラム(1),503:ユーザプ
ログラム(2),601:関係用語テーブル,602,603:関係表
現,701:縮退条件テーブル,702:縮退装置,703:探索情報
エッセンス,801〜804:探索戦略ベータベース内の知識。
フロントページの続き (56)参考文献 特開 平1−88746(JP,A) 特開 昭62−203225(JP,A) 淵一博・監修「知識情報処理シリーズ 第8巻(8巻,別冊2)知識プログラ ミング」、共立出版株式会社・発行 (1988年9月1日初版)、P.27〜39 日経エレクトロニクス 1987年8月10 日号(日経マグロウヒル社)、P.76〜 77 E・リッチ・著、廣田薫、宮村勲・ 訳、「人工知能▲I▼」、マグロウヒル ブック株式会社・発行(昭和59年初 版)、P.116〜122 田中幸吉、淵一博・監訳、「人工知能 ハンドブック第▲I▼巻」、共立出版株 式会社・発行(1983年4月初版)、P. 67〜97 電子情報通信学会技術研究報告、VO L.88、NO.320(AI88−40〜45)、 P.31〜38(1988年12月15日) (58)調査した分野(Int.Cl.7,DB名) G06F 9/44 G06F 17/60 G06F 19/00 JICSTファイル(JOIS) CSDB(日本国特許庁)
Claims (10)
- 【請求項1】中央処理装置と記憶装置を有するコンピュ
ータによりエキスパートシステムを構築する方法であっ
て、 変数名を格納するフィールドと各変数の値を格納するフ
ィールドおよび各変数が取り得る値の集合を格納する領
域フィールドからなる変数部と、上記変数への値の割り
当てから帰結されるデータを記録するデータ領域と、上
記変数部の各変数および上記データ領域のデータが満た
すべき制約を格納する制約部とにより定義される制約充
足問題を上記コンピュータの記憶装置の作業エリア領域
に記憶し、複数の上記制約充足問題を探索済み領域と未
探索領域に分けて上記記憶装置の問題ストック領域に格
納し、 探索順序の指定と、変数の割り当て順序の指定と、探索
不必要な問題の指定と、上記記憶装置の上記問題ストッ
ク領域から上記作業エリア領域に取り出された上記制約
充足問題に対する行動指定を含むユーザの問題解決知識
を上記記憶装置の探索戦略データベース領域に蓄積し、 上記コンピュータの中央処理装置により、上記記憶装置
の上記探索戦略データベース領域から上記問題解決知識
を読み出し、該読み出した問題解決知識に基づき、上記
記憶装置の上記問題ストック領域の未探索領域から上記
制約充足問題を取り出して、上記問題ストック領域の探
索済み領域に入れ、かつ、該制約充足問題を上記記憶装
置の上記作業エリア領域に置き、該作業エリア領域の制
約充足問題の未割り当て変数を選びだし、該未割り当て
変数に、該変数の変数名に対応して上記領域フィールド
に格納された値を割り当てることにより新しい制約充足
問題を生成して上記記憶装置の上記問題ストック領域の
未探索領域に格納する動作を繰り返し、 該動作の繰り返しを上記制約充足問題に限定すると共
に、 上記領域フィールドにおける値の集合のそれぞれに名前
を付けて上記記憶装置に記憶させたテーブルで対応付け
て登録し、上記制約充足問題の記述においては上記領域
フィールドにおける値の集合のそれぞれの値を指定する
代わりに上記名前を指定し、上記中央処理装置により上
記変数へ値を割り当てる際には上記テーブルを参照して
該当する名前が付けられた値の集合に戻すことを特徴と
するエキスパートシステム構築方法。 - 【請求項2】請求項1に記載のエキスパートシステム構
築方法において、 上記領域フィールドにおける値の集合として、別の値の
集合の名前を、具体的な値との和集合演算で格納するこ
とを特徴とするエキスパートシステム構築方法。 - 【請求項3】請求項1、もしくは、請求項2のいずれか
に記載のエキスパートシステム構築方法において、 上記領域フィールドにおける値の集合が、無限集合であ
れば、該値の集合での上記中央処理装置による繰り返し
動作を有限回で止め、該有限回の動作で生成した値の集
合と、残りの無限集合での上記中央処理装置による動作
を継続させる値の集合とに分けることを特徴とするエキ
スパートシステム構築方法。 - 【請求項4】請求項1から請求項3のいずれかに記載の
エキスパートシステム構築方法において、 予めユーザが作成した、上記領域フィールドに格納され
た値の集合から上記変数に用いるのに有効な値だけを列
挙するプログラムを起動して、上記中央処理装置による
処理で割り当てる値を絞り込むことを特徴とするエキス
パートシステム構築方法。 - 【請求項5】請求項1から請求項4のいずれかに記載の
エキスパートシステム構築方法において、 ユーザから入力された、上記領域フィールドに格納され
た値の集合から上記変数に用いるのに有望な値だけを列
挙するための各集合間の関係を定義した情報に基づき、
上記有望な値だけを列挙して上記変数に割り当てること
を特徴とするエキスパートシステム構築方法。 - 【請求項6】請求項1から請求項5のいずれかに記載の
エキスパートシステム構築方法において、 上記問題ストックを複数の問題の集合からなる部分スト
ックに分け、上記制約充足問題を部分問題に分けて解決
することを特徴とするエキスパートシステム構築方法。 - 【請求項7】請求項6記載のエキスパートシステム構築
方法において、 上記部分ストックのそれぞれに名前をつけ、上記記憶装
置の上記探索戦略データベース領域に記述される知識に
該名前を使うことを特徴とするエキスパートシステム構
築方法。 - 【請求項8】請求項6、もしくは、請求項7のいずれか
に記載のエキスパートシステム構築方法において、 上記部分問題の一つに対する上記中央処理装置の探索処
理により新たに展開された複数の問題の集合を、予め設
定された条件に対応して、一つの部分問題に縮退させて
上記記憶装置の上記問題ストック領域に格納することを
特徴とするエキスパートシステム構築方法。 - 【請求項9】請求項8に記載のエキスパートシステム構
築方法において、 上記縮退させて上記記憶装置の上記問題ストック領域に
格納した部分問題を、予め設定された条件に対応して、
上記制約充足問題に戻し、 上記中央処理装置での探索で、上記縮退させた部分問題
が必要になれば、上記制約充足問題に戻した部分問題
を、上記問題ストック領域の未探索領域に再度展開する
ことを特徴とするエキスパートシステム構築方法。 - 【請求項10】請求項1から請求項9のいずれかに記載
のエキスパートシステム構築方法において、 上記変数を重要度に基づき複数の集合に分割し、該分割
した変数の集合に名前を付けて上記中央処理装置が参照
するテーブルに登録し、上記変数集合の名前を上記記憶
装置の上記探索戦略データベース領域での変数割当て順
番指定に用いることを特徴とするエキスパートシステム
構築方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1258544A JP3064307B2 (ja) | 1989-10-03 | 1989-10-03 | エキスパートシステム構築方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1258544A JP3064307B2 (ja) | 1989-10-03 | 1989-10-03 | エキスパートシステム構築方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH03119426A JPH03119426A (ja) | 1991-05-21 |
JP3064307B2 true JP3064307B2 (ja) | 2000-07-12 |
Family
ID=17321704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1258544A Expired - Lifetime JP3064307B2 (ja) | 1989-10-03 | 1989-10-03 | エキスパートシステム構築方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3064307B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7246959B2 (en) | 2004-04-28 | 2007-07-24 | Funai Electric Co., Ltd. | Image formation apparatus and sublimation printer |
-
1989
- 1989-10-03 JP JP1258544A patent/JP3064307B2/ja not_active Expired - Lifetime
Non-Patent Citations (5)
Title |
---|
E・リッチ・著、廣田薫、宮村勲・訳、「人工知能▲I▼」、マグロウヒルブック株式会社・発行(昭和59年初版)、P.116〜122 |
日経エレクトロニクス 1987年8月10日号(日経マグロウヒル社)、P.76〜77 |
淵一博・監修「知識情報処理シリーズ 第8巻(8巻,別冊2)知識プログラミング」、共立出版株式会社・発行(1988年9月1日初版)、P.27〜39 |
田中幸吉、淵一博・監訳、「人工知能ハンドブック第▲I▼巻」、共立出版株式会社・発行(1983年4月初版)、P.67〜97 |
電子情報通信学会技術研究報告、VOL.88、NO.320(AI88−40〜45)、P.31〜38(1988年12月15日) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7246959B2 (en) | 2004-04-28 | 2007-07-24 | Funai Electric Co., Ltd. | Image formation apparatus and sublimation printer |
Also Published As
Publication number | Publication date |
---|---|
JPH03119426A (ja) | 1991-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2002249161B2 (en) | Data structure for information systems | |
US6704719B1 (en) | Decision tree data structure for use in case-based reasoning | |
JPS62293352A (ja) | 知識情報処理システム | |
CN109344230A (zh) | 代码库文件生成、代码搜索、联结、优化以及移植方法 | |
JP3205406B2 (ja) | 参照対象変数決定処理方法および翻訳処理システム | |
Radwan et al. | Top-k generation of integrated schemas based on directed and weighted correspondences | |
CN109388690A (zh) | 文本检索方法、用于文本检索的倒排表生成方法以及系统 | |
JP3064307B2 (ja) | エキスパートシステム構築方法 | |
Belussi et al. | Cost estimation of spatial join in spatialhadoop | |
Low et al. | Techniques for the automatic selection of data structures | |
Medina et al. | Evaluation of indexing strategies for possibilistic queries based on indexing techniques available in traditional RDBMS | |
Bakar et al. | Propositional satisfiability algorithm to find minimal reducts for data mining | |
US20040024742A1 (en) | Computer system | |
Moser et al. | The real-time graphical interval logic toolset | |
Tham et al. | Prober—A design system based on design prototypes | |
Bruno et al. | Constrained physical design tuning | |
Solodovnikova et al. | Managing Evolution of Heterogeneous Data Sources of a Data Warehouse. | |
JP3434641B2 (ja) | データベース処理方法 | |
Kambhampati | Formalizing dependency directed backtracking and explanation based learning in refinement search | |
JPH0895764A (ja) | ソフトウェア設計支援装置 | |
Shyu et al. | Stochastic clustering for organizing distributed information sources | |
JP3379179B2 (ja) | 概念的データの構造化方法および装置 | |
JP3599055B2 (ja) | 記憶装置管理方法およびシステム | |
JPH07200389A (ja) | データ管理方法 | |
Mitra et al. | Integrating optimization models and human expertise in decision support tools |