JPH03119426A - エキスパートシステム構築方法 - Google Patents

エキスパートシステム構築方法

Info

Publication number
JPH03119426A
JPH03119426A JP1258544A JP25854489A JPH03119426A JP H03119426 A JPH03119426 A JP H03119426A JP 1258544 A JP1258544 A JP 1258544A JP 25854489 A JP25854489 A JP 25854489A JP H03119426 A JPH03119426 A JP H03119426A
Authority
JP
Japan
Prior art keywords
area
variable
expert system
search
variables
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.)
Granted
Application number
JP1258544A
Other languages
English (en)
Other versions
JP3064307B2 (ja
Inventor
Akihiko Koga
明彦 古賀
Shiyouichi Masui
増位 庄一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP1258544A priority Critical patent/JP3064307B2/ja
Publication of JPH03119426A publication Critical patent/JPH03119426A/ja
Application granted granted Critical
Publication of JP3064307B2 publication Critical patent/JP3064307B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、エキスパートシステムに係り、特に、計画問
題等のような層構成の多くのステップにおいて、複数の
候補からの選択を行い、後で、必要であれば、その決定
を取消、再度、解を構成するステップを続けなければな
らないようなシステムの構築に好適なエキスパートシス
テムの構築ツールに関するものである。
〔従来の技術〕
従来、コンピュータにより、専門的知識を有効に用いて
種々の問題を解決するシステム、いわゆる、エキスパー
トシステムを構築するツールとして、非単調推論に基づ
くものが提供されている。
この非単調推論に基づくエキスパートシステム構築ツー
ルの目的は、エキスパートシステムの適用分野を一層拡
大し、より実用に耐えるものとするためであり、演鐸的
推論では対処できない欠如した情報による推論等のよう
に、不完全な知識に基づく推論を進めるものである。
非単調推論に基づくものには、T M S (Trut
hMaintenance  System)やA T
 M S (A ssumptionbased  T
ruth  Maintenance  System
)等がある。
TMSは、推論の各ステップを保存することにより、推
論の制御、仮説の採択や棄却、棄却されていた仮説の復
活という非単調論理、仮説推論に必要な機能を提供し、
さらに、推論に使用する知識ベースを状況の変化を反映
させながら一貫性を保持する知識管理のための機能を提
供する。
TMSで同時に扱える仮説の組み合わせは1つであるが
、ATMSは、複数の仮説の組み合わせの取扱を可能と
した。そして、ATMSは、仮説の組み合わせごとに1
つの世界を構成し、矛盾の出た仮説の組み合わせを記録
し、それを他の仮説世界が利用することにより、探索空
間の絞り込みを行い、推論の効率を図るものである。
これらエキスパートシステム構築ツールに関しては、[
電子情報通信ハンドブック、第14編、第3部門、3.
エキスパートシステム構築用ツール」(電子情報通信学
会編)に記載されている。
ATMSに関して、以下、さらに詳しく説明を行う。
従来のエキスパートシステムにおいて、例えば、計画問
題に対するアプローチとしては、1986年発行の学会
誌「アーティフィシャルインテリジェンスの第28巻(
Artificial  I nt、elleigen
ceVol、 28)に掲載されたドウ・フレア(de
  Kleer  J、)の論文「仮説に基づいた真理
の管理機構J (An  Assumption−ba
sed  Truth  Maintenance  
5yst、em)に記載のニーティーエムニス(以下A
TMSと記載)がある。
ATMSで制約充足問題を解く場合、変数の取り得る値
の全ての場合を「仮説)として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以下になら
なければならない」という制約は、次のように記述され
る。
1f(x=7a)&(y=?b)&7a+7b  >l
○ then  矛盾 ここで、?が前についている文字列は、任意のデータと
マヅチするものとする。
さらに、ATMSでは、目的をルールの連鎖で表現する
例えば、[変数Xに3以上の数を割り当て、変数yに4
以]二の数を割り当てる」という目的を表す一つの方法
は次のような3つのルールを入力することである。
i f (x= 7 a)&7 a≧3しhenゴール
1達成 i f (y−7b)&7 b≧4 t h、 e nゴール2達成 ifゴール1達成&ゴール2達成 thenゴール達成 ATMSは、これらのルールが与えられると、各ルール
の結論部がどのような仮説の組み合わせの元に成立する
かを条件部から計算する。例えば、上の例において「ゴ
ール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つの場合に成立する。
このように、ATMSは、導出した全てのデータに、そ
れがどのような「仮説」で成立するかを記録していく。
この際、「仮説」の組み合わせを個数の少ない順に生成
し、「矛盾」を導出する「仮説」の組み合わせを集合と
して含むような[仮説jの組み合わせは、ルールの条件
部の成立判定から除去する。
そのために、少ない個数の組み合わせが矛盾すると結論
された場合は、探索空間から解の存在範囲を大きく絞る
ことができる。
上記の問題の場合、最終的にルールによる導出が終わっ
た時点で、データ[ゴール達成Jを成立させる「仮説」
の組み合わせが得られ、それが、元の計画問題の全ての
解となる。
目的関数が与えられている場合は、ATMSを利用して
いるソフトウェアが、それらの解の評価を行い、最良の
ものを返す処理を行う。
ATMSは、少ない個数の「仮説」の組み合わせが矛盾
を起こすような問題では、探索すべき空間を大幅に縮小
することができ、効率的である。
また、基本的には、全層探索なので、全ての解が請求さ
れるときに有効である。
〔発明が解決しようとする課題〕
従来の非単調推論型のエキスパートシステム構築ツール
におけるATMSは、「仮説」の少数の組み合わせが矛
盾を生じ、また、全ての解が必要な問題に対しては、効
率的に働くが、多くの計画型問題に対しては、次のよう
な不備がある。
(イ)少数の「仮説」の組み合わせでは矛盾を起こさず
、矛盾の検出が、探索空間を絞るための充分 11− な手段とならないことがある。通常、この探索空間は、
巨大であるので、有意味な時間では、解が求まらない場
合が多い。この現象を避けるために、通常のプログラミ
ングでは、専門家の探索戦略(ヒユーリスティクス)を
利用することになるが、ATMSでは、全層探索に有効
な組み込まれた探索戦略があるため、ヒユーリスティク
スを記述しにくい。
(ロ)全ての解を求めるときは効果的であるが、実際に
は、最良の解、あるいは、最良に近い解が幾つか求まれ
ば良い問題も多い。このような場合には、全ての解を求
めるための無駄な探索を行っていることになる。
(ハ)変数が取り得る値は、最初に「仮説」として全て
列挙されねばならず、無限の領域(例えば、整数の集合
)を扱うことができない。また、複数の変数が同じ領域
を取る場合には、同じ領域を何度も列挙せねばならず、
記述の量がかさばる。
(ニ)既に割り当てられた変数の値の組み合わせから、
別の変数の値の範囲を絞り込むことができる2− 場合も、全ての組み合わせをルールにより検査しなけれ
ばならず効率が悪い。
(ホ)発見した全ての途中結果(各ルールの結論部がど
のような仮説の組み合わせで成立するが)を記憶してお
かねばならないので、記憶装置を多く使用する。
以上の問題があった。
本発明の目的は、これら従来技術の課題を解決し、効率
の良い計画型のエキスパートシステムを容易に構築する
ことができるエキスパートシステム構築ツールを提供す
ることである。
〔課題を解決するための手段〕
上記目的を達成するため、本発明のエキスパートシステ
ム構築ツールは、(1)エキスパートシステムを開発す
るための道具として使うソフトウェアであるエキスパー
トシステム構築ツールにおいて、値を格納する場所と付
加情報を格納する場所からなる複数の変数と、この複数
の変数が各々取り得る値の集合としての領域と、変数へ
の値の割り当てから帰結されるデータを記録するデータ
領域と、変数の集合およびこのデータ領域のデータが満
たすべき制約の集合の3つにより定義される制約充足問
題を格納する作業エリア、複数の制約充足問題を探索済
み領域と未探索領域に分けて格納する問題ストック、探
索順序の指定、変数の割り当て順序の指定、探索不必要
な問題の指定、作業エリアに取り出された制約充足問題
に対する行動指定を含むユーザの問題解決知識を蓄積す
る探索戦略データベース、この探索戦略データベースの
知識に基づき、問題ストックの未探索領域から制約充足
問題を取り出し、探索済み領域に入れ、かつ、この制約
充足問題を作業エリアに置き、この作業エリアの制約充
足問題の未割り当て変数を選びだし、この未割り当て変
数の領域の値を、この変数へ割り当てることにより新し
い制約充足問題を生成して問題ストックの未探索領域に
格納する動作を繰り返す探索エンジン、および、この探
索エンジンによりデータの書き込み、および、参照を行
う大域データ領域を有することを特徴とする特 また、(2)上記(1)において、変数の領域に名前を
つけ、制約充足問題の記述において、変数の領域の値の
集合の代わりにこの名前を指定し、この名前を値の集合
に戻すことを特徴とする。
また、(3)上記(2)において、名前が表す領域の指
示における具体的な値の集合に、値の集合を指示する名
前の値の集合との和集合演算を行うことを特徴とする。
また、(4)上記(1)において、変数の領域を分割す
ることを特徴とする。
また、(5)上記(1)において、ユーザのプログラム
により動作する装置を用いて、変数に対して領域の値を
列挙することを特徴とする。
また、(6)上記(1)において、値の各集合の間の関
係定義をユーザが記述して格納する装置を用い、この装
置に格納されている関係に基づき、変数の領域の範囲を
絞り込むことを特徴とする。
また、(7)上記(1)において、問題ストックを複数
の部分問題に分け、制約充足問題をこの部分問題に分け
て解決することを特徴とする。
5 また、(8)上記(7)において、部分問題のそれぞれ
に名前をつけ、探索戦略データベースに記述される知識
にこの名前を使うことを特徴とする。
また、(9)上記(1)において、問題ストックの問題
の集合を元の部分問題に戻す装置を用い、問題ストック
の占めるメモリを減少させることを特徴とする。
そして、(1o)上記(1)において、変数を重要度に
基づき分割して、この分割された変数の集合に名前を付
けて蓄積し、この変数集合の名前を変数の割当て順番指
定に用いることを特徴とする。
〔作用] 本発明において探索エンジンは、戦略データベータに記
述された知識に基づき、問題ストックを探索し、問題に
対しての解を求める。
この探索動作中に、ユーザがどのような解でも良いから
欲しい場合には、この行動として、「解を見つけたら探
索を中止せよ」という知識を探索戦略データベースに書
くことにより、ここで探索を打ち切ることになる。また
、探索の順序指定、6 変数の割当て順序の指定、探索不必要な問題の指定によ
り、ユーザのヒユーリスティクスを表現し、求解に必要
な探索だけを行うように探索を制御できるので、矛盾だ
けを用いた場合より探索空間を絞ることができ、前記課
題(イ)が解決される。また、ある解を見つけたら、そ
れを大域データ領域に書き出し、充分な個数の最良に近
い解が大域データ領域に書き出されたときに探索を中断
するように探索戦略データベースに指定しておけば、全
ての解を探す無駄な探索を避けることができ、前記課題
(ロ)が解決される。
また、制約充足問題の変数の領域に名前をつけ、かつ、
この名前を値の集合に戻す機能により、その制約充足問
題の記述においては、値の集合の代わりに、この名前を
指定する。また、この領域名が表す領域の具体的な値の
集合に加えて、別の値の集合を指示する名前の集合との
和集合演算を用いて、例えば、自然数の集合などの再帰
的な無限集合を記述する。さらに、領域分割機能により
、作業エリアの制約充足問題の変数に対する値割り当て
の操作だけでなく、領域を分割する操作も行い、領域を
無限集合と有限集合に分け、探索空間の有限な展開を可
能として、無限集合の領域を含む探索問題を扱う。これ
らにより、前記課題(ハ)が解決される。
次に、ユーザは、領域の値列挙装置をプログラムで制御
して、有効な値だけを列挙する。または、有望な値を領
域から選びだすための式を領域の値列挙装置に蓄積し、
これを利用し、有望な値だけを列挙する。このことによ
り、解に到達しやすい割り当てだけを行うことができ、
前記課題(ニ)が解決される。
また、縮退装置は、その縮退条件テーブルの記述に従い
、今後しばらく使われることのない部分探索木や探索す
る必要のなくなった部分探索木を制約充足問題に戻して
、問題ストックの占めるメモリを減少させる。もし、以
後の探索で縮退した部分探索木が必要になった場合には
、再度展開する。これにより、前記課題(ホ)が解決さ
れる。
〔実施例〕
以下本発明の実施例を、図面により詳細に説明する。
第1図は本発明を施したツール101の構成を示すブロ
ック図である。
作業エリア102、問題ストック104、探索戦略デー
タベース105、探索エンジン106、大域データ領域
107から構成される。
作業エリア102には、制約充足問題103が置かれて
いる。さらに、制約充足問題103は、後述の第2図に
示されるように、変数と各変数に対して付加情報を蓄え
るフィールドおよび変数が取り得る値の集合の3つの組
の集合からなる変数部201と、データ書き込みのため
のデータ領域202と、変数およびデータ領域のデータ
に関する制約の集合である制約部203との3つ組で表
現される。
rIR題ストック104は、探索済み領域と未探索領域
に分けられる。
探索戦略データベース105には、後述の第8図に示さ
れるように、以下のものが格納されてい9 i)問題ストックから問題を選ぶ知識801、■)割り
当て変数を決定する知識802、]1i)ある問題をさ
らに探索すべきかどうかの知識803、 例えば、「既に解が幾つか求まっており、ある問題を解
いても、既に求めた解よりよい解が得られないときは、
その問題を探索する必要がない」という知識、 ■)作業エリアの問題に対する行動804、例えば、[
解であれば(すなわち、全ての変数が制約を侵さずに割
り当てられていれば)、それを大域データ領域に記録し
て、探索を終了せよ」という指示が格納される。
また、ユーザによりツール外部から作業エリア102に
おかれた制約充足問題103は、問題ストック104の
未探索領域に格納される。
さて、以下に、探索エンジン106の動作に基づき、ツ
ール101の処理動作を説明する。
まず、探索エンジン106は、戦略データベー20 ス105の「問題ストックから問題を選ぶ知識」801
を用いて、問題ストック104の中の未探索領域から問
題を1つ選び、それを取り出して作業エリア102に置
き、問題ストック104中のその問題を探索済み領域に
入れる。
そして、この問題に対して探索戦略データ105の中に
ある「ある問題を探索すべきかどうかに関する知識」8
03を用いて探索すべきがどうかを決定する。
もし、探索しなくて良いならば、上の問題選択の処理に
戻る。また、探索するのであれば、この問題に対して、
戦略データベース105の1作業エリアの問題に対する
行動」804に従って、操作がなされる。
ここで、ユーザがどのような解でも良いから欲しい場合
には、この行動として、[解を見つけたら探索を中止せ
よ」という知識が探索戦略データベース105に書かれ
ており、ここで探索を打ち切ることになる。その場合、
解は、作業エリア102にあるものである。
探索戦略データベース105に書かれている動作を終え
た後、この問題に未割り当て変数があるかどうかを調べ
る。
未割り当て変数が残っている場合は、探索戦略データベ
ース105に格納されている「割り当てる変数を決定す
る知識」802を用いて、未割り当ての変数を1つ選び
だし、その変数の領域の値を1つづつ割り当ててみて、
割り当てた範囲で制約を侵していないかどうかを確かめ
る。侵していなければ、それを問題ストック104の未
探索領域に格納する。
未割り当て変数が残っていない場合は、処理を次に進め
る。
この動作を、問題ストック104の中に未探索領域に問
題がある間行う。
ここで1本ツール101は、制約チエツクによる矛盾の
検出のほかに、探索戦略を用いることができる。従って
、矛盾だけでは充分探索空間が絞れない場合でも、どの
ような割り当てが解に到着しやすいかをユーザが知って
いれば、それを[問題選択の知識」801と「割り当て
変数選択の知識J 802用いて探索をガイドしてやり
、例えば、探索の順序指定、変数の割当て1頃序の指定
、探索不必要な問題の指定により、ユーザのヒユーリス
ティクスを表現し、求解に必要な探索だけを行うように
探索を制御できるので、解が見つかるまで探索空間を広
げないで済む。また、矛盾を導かなくとも探索を打ち切
って良い場合をユーザが知っている場合には、「問題を
探索すべきかどうかの知識」803を用いて、そのよう
な問題の探索を終了させれば良いので、矛盾だけを用い
た場合より探索空間を絞ることができる。
これにより、前記(イ)における問題(すなわち、少数
の「仮説」の組み合わせでは矛盾を起こさず、矛盾の検
出が、探索空間を絞るための充分な手段とならないこと
がある。通常、この探索空間は、巨大であるので、有意
味な時間では、解が求まらない場合が多い。という問題
)が解決される。
また、探索戦略データベース105には、問題に対する
行動を記述することができるので、解を3 見つけたら、それを大域データ領域107に書き出して
おいて、充分な個数の最良に近い解が大域データ領域1
07に書き出されたとき、探索を中断するように探索戦
略データベース105に指定しておけば、全ての解を探
す無駄な探索を防ぐことができ、前記(ロ)における問
題(すなわち、全ての解を求めるときは効果的であるが
、実際には、最良の解、あるいは、最良に近い解が幾つ
か求まれば良い問題も多い。このような場合には、全て
の解を求めるための無駄な探索を行っていることになる
。という問題)は解決される。
第2図は、第1図における制約充足問題103の表現方
法を示す展開図である。
制約充足問題103は、変数部201とデータ領域20
2、そして、制約部203から構成されている。
さらに、変数部201は、変数の集まりで構成され、変
数は、変数名2011と種々の情報を格納するフィール
ド値を格納する値フィールド2012、および、値フィ
ールドに割り当てる値の集合である領域2o13からな
る。
ユーザは、変数に任意のフィールドを定義でき、種々の
情報を書き込むことができる。例えば、第2図では、購
入品の決定を行う問題を表現しており、変数としては(
買う、買わない)を領域とする購入希望品が選ばれてお
り、それぞれの価格を格納するために金額のフィールド
が設けられている。
データ領域202は、変数の割り当てから帰結されるデ
ータが任意に書き込まれる領域である。
例えば、第2図では、変数部201において、現在まで
に買うことを決定した品物の合計の金額(310,00
0)が書き込まれている。
制約部203は、変数の割り当てが満たすべき性質が記
述される。例えば、第2図においては、[プリンタはパ
ソコンがあって始めて役に立つので、プリンタを買うな
らばパソコンを買わねばならないことJおよび[全体の
合計金額が100万円を越えてはならないこと」が制約
として書かれている。
第3図は、第1図において、問題ストック104と制約
充足問題103とを複数の部分に分けて利用する状況を
示すブロック図である。
問題ストック104を複数の部分に分けて管理する問題
集合テーブル301と、制約充足問題103を複数の部
分に分けて管理する変数集合テーブル302が付加され
ている。
問題集合テーブル301は、問題集合名3011欄と問
題の集合欄3012から構成され、問題P2、P4、P
。、P7、P、の集まりは、部分問題(1)の名前で管
理される。また、問題P3、P、の集まりは、部分問題
(2)の名前で管理され、さらに、問題P7、P、は、
解きやすそうな問題の名前で管理されている。
また、変数集合テーブル302は、変数集合糸3021
と変数の集合3022から構成されている。変数x1、
X、、X、の集まりは、重要変数の名前で管理され、変
数X2、x4の集まりは、非重要変数の名前で管理され
ている。
第1図におけるツール101では、制約充足問題103
を解いた場合に、同じ変数の同じ値の割り当てに対して
、同じ制約を何度もチエツクする可能性がある。
しかし、第3図の問題集合テーブル301に示されるよ
うに、問題ストック104を部分問題(1)や部分問題
(2)等の複数の部分に分けることにより、同じ制約を
何度もチエツクする無駄が無くなる。すなわち、何度も
チエツクする可能性のある変数集合は、部分問題として
問題集合テーブル301で分割して問題ストック104
に設け、そこで探索を行い、その結果を残りの部分問題
で利用すれば、最初の部分探索空間は、1度しか探索さ
れないので、同じ割り当ての組み合わせに対して、同じ
制約のチエツクを何度も行わないで済む。
また、問題集合テーブル301の問題集合名3011を
利用することにより、問題ストック104から問題を選
択する操作を、ある問題集合に限定することができ、問
題ストックからの問題の検索を高速化できる。
これらの結果として、探索の効率を向上することができ
、前記(イ)における問題の解決に、より貢献する。
さらに、制約充足問題103を、変数に基づき複数の部
分に分けて管理する変数集合テーブル302が付加され
ているため、この変数集合テーブル302を利用するこ
とにより、次に割り当てる変数の範囲を限定することが
でき、割り当てる変数の決定を高速化できる。その結果
として、同様に、探索の効率が向上し、前記(イ)にお
ける問題の解決に、より貢献する。
第4図は、第1図における制約充足問題103の領域を
分割管理する領域名テーブル401を設け、かつ、領域
の分割割り当て機能を持つ領域分割機能402を探索エ
ンジン106に加えた構成を示すブロック図である。
領域名テーブル401は、決定値、代替案、等の領域名
4011を持つ。
探索エンジン106は、領域分割機能402により、作
業エリアの制約充足問題103の変数に28 対する値割り当ての操作だけでなく、領域を分割する操
作機能を有し、さらに、この領域名4011を値の集合
に戻す機能を持つ。このことにより、制約充足問題10
3の記述において、値の集合の代わりに、この領域名4
011を指定できる。
このようにして、巨大な領域は、1度記述すれば、再度
現われるときには、その領域の名前で参照できるので、
何度も同じものを列挙する必要はない。
また、領域名4011が表す領域の指示において、具体
的な値の集合に加えて、この領域名あるいは別の値の集
合を指示する名前と集合の和集合演算を用いることがで
きる。これにより、再帰的な定義が可能となり、例えば
、自然数の集合などの再帰的な無限集合を記述できるよ
うになる。
さらに、領域分割機能部402は、作業エリアの制約充
足問題の変数に対する値割り当ての操作だけでなく、領
域を分割する操作機能を有する。
これにより、領域を分けることが可能となり、領域を無
限集合と有限集合に分ければ、探索空間の有限な展開が
可能となり、無限集合の領域を含む探索問題を扱うこと
が可能となる。
このことにより、前記(ハ)における問題(すなわち、
変数が取り得る値は、最初に「仮説」として全て列挙さ
れねばならず、無限の領域(例えば、整数の集合)を扱
うことができない。また、複数の変数が同じ領域を取る
場合には、同じ領域を何度も列挙せねばならず、記述の
量がかさばる。という問題)が解決される。
第5図は、第1図におけるツール101がユーザプログ
ラムにより制御される領域の値列挙装置を利用する構成
を示すブロック図である。
領域の値列挙装置501には、ユーザプログラム(1)
502、ユーザプログラム(2)503等が設けられて
いる。
ユーザは、領域の値列挙装置501が、領域名テーブル
401を参照して、有効な値だけを列挙するようにプロ
グラム502で制御する。
例えば、制約充足問題103内の割り当てられる変数に
ユーザの領域列挙プログラム502が蓄30 積されていれば、それを用いて値の列挙を行う。
このアルゴリズムを使用すると、ユーザ′が、領域の効
率的な列挙法を知っている場合には、それをプログラム
化することにより、制約充足問題を効率的に解くことが
できる。
第6図は、第1図におけるツール101が、領域の値列
挙装置501を介し、述語表現により領域の値の列挙を
制御される構成を表すブロック図である。
問題の解として有望な値を領域からユーザが選びだすた
めの述語に基づいた言語体系601を提供しており、こ
れを用いた式を領域の値列挙装置501内に関係表現6
02として蓄積している。
領域の値列挙装置501は、関係表現602を利用し、
領域名テーブル4.01を参照して、有望な値だけを列
挙することにより、第1図の探索エンジンは106は、
解に到達しやすい割り当てだけを行う。
これにより、ユーザが変数の取る値を効率的に絞る条件
を知っている場合は、それを記述するこ3+− とにより、制約充足問題を効率的に解くことかできる。
これらにより、前記(ニ)における問題(すなわち、既
に割り当てられた変数の値の組み合わせから、別の変数
の値の範囲を絞り込むことができる場合も、全ての組み
合わせをルールにより検査しなければならず効率が悪い
。という問題)が解決される。
第7図は、第1図におけるツール101が縮退装置70
1を利用する構成を示すブロック図である。
縮退装置701は、縮退条件テーブル702を有し、縮
退条件テーブル702には、例えば、「残りのメモリが
1M以下であれば、優先度100以下を縮退」等が記述
される。
縮退装置701は、この縮退条件テーブル702の記述
に従って問題ストック104の木構造となっている各部
分問題に対して探索を行い、この探索結果に基づき、問
題ストック104の問題の集合は、その部分問題を頂点
とする部分探索木に32 縮退する。
縮退された問題の頂点の部分問題には、探索情報エツセ
ンス703として、縮退したという印をつける。
このように、縮退条件テーブル702への記述する条件
によっては、縮退装置701を介して行う探索により、
今後しばらく使われることのない部分探索木や探索する
必要のなくなった部分探索木は、制約充足問題103に
戻すことも可能であり、問題ストック104の占めるメ
モリを減少させ、メモリを節約することができる。
尚、もし、以後の探索で、縮退した部分探索木が必要に
なった場合には、探索情報エツセンス703を探索し、
問題ストック104の未探索領域に再度展開すれば良い
これにより、前記(ホ)における問題(すなわち、発見
した全ての途中結果(各ルールの結論部がどのような仮
説の組み合わせで成立するか)を記憶しておかねばなら
ないので、記憶装置を多く使用する。という問題)が解
決される。
第8図は第1図におけるツールの探索戦略データベース
105の内部構成を示すブロック図である。
探索戦略データベース+05には、「問題ストックから
問題を選ぶ知識」801と[割り当てる変数を決定する
知識」802と[ある問題を探索すべきかどうかを決定
する知識」803と「作業エリアの問題に対する行動J
804が蓄積されている。これらの知識を第1図の探索
エンジン106が参照することにより、ツール101は
、種々の問題の解を得ることができる。
第9図は、第1図における探索エンジン106の動作を
示す構造化チャートである。
まず、ユーザから、作業エリアに問題が入力されると、
処理901で、その問題を問題ストック104の未探索
領域に入れる。次に処理902で、問題ストック104
の未探索領域が空になるまで処理904から処理907
までを続ける。
まず、処理904で探索木縮退条件をチエツクすること
により、縮退すべき部分探索木があるかどうかを調べ、
もしあるならば、縮退させる。
次に、処理905で探索戦略データベースI05の問題
選択知識に従い、問題を1つ選び、それを問題ストック
104の未探索領域から取り去り、作業エリアに置く。
次に、処理906で、探索戦略データベース105の「
問題を探索すべきかどうかの知識Jを用いて、その問題
を探索すべきかどうかを調べる。
もし、探索すべきであれば処理908を行う。探索しな
くて良いならば処理907で木の還元処理を行う。
この処理907は、問題ストックの未探索領域に問題が
なくなったとき起動を受け、縮退した探索木の内、元に
戻す必要のあるものがあるかを調べ、もし、あれば、そ
れを未探索領域に加える処理を行う。
次に、処理908で、その問題に対して探索戦略データ
ベース105の知識に蓄積されている操作を行う。
そして、処理909で、その問題に未割り当て変数があ
るかどうか調べる。もし、未割り当て変数が存在すれば
、処理910から処理911の処理を行う。
まず、処理910で探索戦略データベースlO5の知識
に従い、割り当てるべき変数を選ぶ。次に、処理911
で変数に対する領域の値を1つづつ割り当てながら制約
を満たすものを求め、それらを問題ストック104の未
割り当て領域にいれる。
このアルゴリズムにより、ユーザが探索空間のどこを探
索すれば良いかを知っている場合、その知識を探索戦略
データベース105の4つの知識により表現できるので
、探索空間を大きく絞ることができる。
第10図は、第9図における処理905の具体的処理を
記述した構造化チャートである。
尚、処理905は、第1図の探索エンジン106が、第
8図の「問題ストックから問題を選ぶ知識」801に基
づき、問題ストック104から未探索の問題を選びだす
アルゴリズムである。
6− まず、処理1001でLを問題ストックの未探索領域と
し、XをLの最初の問題とし、LがらXを取り去る。次
に、処理1002で探索戦略データベースから問題選択
の知識を取り出し、これをKとする。Kは、p(A、B
)の形をした2引数の述語の集合であり、p(X、Y)
が成立する時、問題Xを問題Yに先行して探索すべき問
題であることを意味するものとする。
次に、処理1003でLが空になるまで処理l005か
ら1006までを続ける。処理1005では、YをLか
ら取り去る。処理1006では、YがXより先に探索す
べき問題であるかを調べる。
そのために、Kの各述語p (A、B)に対して、p(
Y、X)を評価し、成立すれば、YをXに先行して探索
すべきであると判断し、処理1007でXにYを代入す
る。
ループ処理が終わったら、Xには戦略データベース10
5の知識に照らしあわせて、最も優先して探索すべき問
題が入っているので、処理1004でXを返す。
第11図は、第9図の処理908のアルゴリズムを示す
構造化チャートである。
尚、第9図の処理908は、第8図の「作業エリアの問
題に対する行動」804を解釈実行するアルゴリズムで
ある。
まず、処理1101において、Kは、(条件、行動)の
形をした知識の集合である。
次に、処理1102において、Kが空になるまで、処理
1103から処理1105までを繰り返す。
処理1103で、XをKの最初の要素とし、XをKから
取り去る。
処理1104において、C@Xの条件部とし、AをXの
行動部とする。処理1105で、作業エリア102の問
題に対してCを評価して、成立すれば処理1106で、
行動Aを作業エリアの問題に対して行う。
このアルゴリズムにより、探索中に解を見つけた場合、
それを第1図の大域データ領域107に書き出したり、
また、探索自身を終了させることができる。
第12図は、第8図における「割り当てる変数を決定す
る知識」802に基づき、第1図の探索エンジン+06
が実行する第9図の処理9 ] 0のアルゴリズムを示
す構造化チャー1・である。
処理910は、作業エリアにある問題の未割り当て変数
のうち、次にどの変数を割り当てるかを決定するアルゴ
リズムである。
まず、処理12o1でVLを未割り当て変数の集合とし
、XをVLの最初の変数とし、LからXを取り去る。
次に、処理1202で探索戦略データベースから変数選
択の知識を取り出し、これをKとする。
Kは、p(A、B)の形をした2引数の述語の集合であ
り、p(X、Y)が成立するとき、変数Xを変数Yに先
行して割り当てるべき変数であることを意味するものと
する。
次に、処理1203で、VLが空になるまで処理120
5から1206までを続ける。処理1205では、Yを
VLの最初の要素とし、YをVLから取り去る。
処理1206では、YがXより先に割り当てを試みるべ
き変数であるかを調べる。
そのために、Kの各述語I)(A、13)に対して、p
(Y、X)を評価し、成立すれば、YをXに先行して割
り当てるべきであると判断し、処理1207で、XにY
を代入する。
ループ処理が終わったら、Xには戦略データベースの知
識に照らしあわせて、最も優先して割り当てるべき変数
が入っているので、処理1204でXを返す。
第13図は、第9図の処理911の部分問題生成のアル
ゴリズムを示す構造化チャートである。
まず、処理13o1でXを割り当てる変数としてDをそ
の領域とする。処理1302でDが空になるまで処理1
 :303から処理1305までを行う。処理1303
では、dにDの最初の要素を入れ、それをDから取り去
る。
処理13o4でdを変数Xに割り当ててみる。
処理1305で、これまで割り当てられた変数の0 範囲でチエツクできる制約をチエツクする。
もし、全ての制約が成立しているならば、処理1306
でデータの更新を行う。次に、処理1307で、データ
領域に関する制約チエツクを行う。
もし、全ての制約を満たしていれば、処理1308で、
その問題を問題ストックの未探索領域に入れる。
第14図は、第7図における縮退装置701の動作、す
なわち、第9図の処理904の探索木縮退のアルゴリズ
ムを示す構造化チャートである。
まず、処理1401で、C1を第7図の縮退条件テーブ
ル702に格納されている縮退条件として、C2を部分
問題ごとの縮退条件とする。
次に、処理1402で、C1を評価し、もし、成立すれ
ば、処理1403で、木の縮退を行う。
処理1403では、問題ストックの中を、最初に与えら
れた制約充足問題がら生成の関係に従って、深さ優先で
トラバースし、各部分問題に対してC2を適用し、もし
、成立すれば、その部分問題を頂点とする部分探索木を
取り去り、その部分問題に縮退したという印をつける。
取り去った部分探索木に未探索の問題が含まれていなけ
れば、さらに、探索済みの印をつける。
また、未探索の問題が残っていれば未探索の印をつける
C2が成立しなければ、トラバースを続ける。
ここで、例えば、条件CIとしてメモリ不足の条件を指
定しておき、また、C2として、探索においてしばらく
調べる必要のない問題の条件を指定しておけば、このア
ルゴリズムにより、探索中にメモリの不足が生じたら、
自動的に部分探索木を1つの問題に縮退し、メモリを確
保して探索を続けることができる。
第15図は、第9図の処理907の処理動作を示す構造
化チャートである。
処理907は、同じく第9図の処理904で縮退した探
索木を、再度、探索する対象に加えるアルゴリズムであ
る。
まず、処理1501で、問題ストックにある問題をトラ
バースして、子孫に未探索の印の付いた縮退水がなけれ
ば、その問題自身を探索済みの印の付いた縮退水を1つ
選び、その木に記入されている問題を問題ストックの未
探索領域に入れて処理を終わる。
このようにして、処理904の探索木の縮退を行っても
、このアルゴリズムにより、完全性を損なうことなく探
索を続けることができる。
第16図は、第5図の値列挙装置501のアルゴリズム
を示す構造化チャートである。
まず、処理1601で、謂り当てられる変数にユーザの
領域列挙プログラムが蓄積されているかどうかを調べる
もし、蓄積されていれば、処理1602で、それを用い
て値の列挙を行う。もし、蓄積されていなければ、処理
1603で、領域の全ての値を列挙する処理を行う。
このアルゴリズムを使用すると、ユーザが、領域の効率
的な列挙法を知っていいる場合は、それをプログラム化
することにより、制約充足問題を効率的に解くことがで
きる。
43 第17図は、第6図の値列挙装置501のアルゴリズム
を示す構造化チャートである。
まず、処理1701で、割り当てられた変数に述語表現
が蓄積されているかどうかを調べる。
もし、蓄積されていれば、処理1702で、その述語表
現が満たされる値だけを列挙する。もし、蓄積されてい
なければ、処理1703で、領域の全ての値を列挙する
処理を行う。
このアルゴリズムを使用すると、ユーザが変数の取る値
を効率的に絞る条件を知っている場合は、それを記述す
ることにより、制約充足問題を効率的に解くことができ
る。
〔発明の効果〕
本発明によれば、計画型の効率的なエキスパートシステ
ムを容易に構築することができる。
【図面の簡単な説明】
図面は本発明の実施例を示し、第1図は本発明を施した
エキスパートシステム構築ツールの構成を示すブロック
図、第2図は第1図におけるツールが取り扱う問題の表
現方法を示す展開図、第34− 図は第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:デ
ータ領域、203:制約部、301:問題集合テーブル
、302:変数集合テーブル、401:領域名テーブル
、402:領域分割機能、501:領域の値列挙装置、
502ニューザブログラム(1)、503.ユーザプロ
グラム(2)、601:関係用語テーブル、602,6
03:関係表現、701:縮退装置、702:縮退条件
テーブル。 703:探索情報エツセンス。 801 〜804 探索戦略ベータベース内の知識。 第 図

Claims (1)

  1. 【特許請求の範囲】 1、エキスパートシステムを開発するための道具として
    使うソフトウェアであるエキスパートシステム構築ツー
    ルにおいて、値を格納する場所と付加情報を格納する場
    所からなる複数の変数と、該複数の変数が各々取り得る
    値の集合としての領域と、上記変数への値の割り当てか
    ら帰結されるデータを記録するデータ領域と、上記変数
    の集合および該データ領域のデータが満たすべき制約の
    集合の3つにより定義される制約充足問題を格納する作
    業エリア、複数の上記制約充足問題を探索済み領域と未
    探索領域に分けて格納する問題ストック、探索順序の指
    定と、上記変数の割り当て順序の指定と、探索不必要な
    問題の指定と、上記作業エリアに取り出された上記制約
    充足問題に対する行動指定の4つを含むユーザの問題解
    決知識を蓄積する探索戦略データベース、該探索戦略デ
    ータベースの知識に基づき、上記問題ストックの未探索
    領域から上記制約充足問題を取り出し、上記問題ストッ
    クの探索済み領域に入れ、かつ、該制約充足問題を上記
    作業エリアに置き、該作業エリアの制約充足問題の未割
    り当て変数を選びだし、該未割り当て変数の領域の値を
    該変数へ割り当てることにより新しい制約充足問題を生
    成して上記問題ストックの未探索領域に格納する動作を
    繰り返す探索エンジン、および、該探索エンジンにより
    データの書き込み、および、参照を行う大域データ領域
    を有することを特徴とするエキスパートシステム構築ツ
    ール。 2、請求項1記載のエキスパートシステム構築ツールに
    おいて、上記変数の領域に名前をつけ、上記制約充足問
    題の記述において、上記変数の領域の値の集合の代わり
    に該名前を指定し、該名前を上記値の集合に戻すことを
    特徴とするエキスパートシステム構築ツール。 3、請求項2記載のエキスパートシステム構築ツールに
    おいて、上記名前が表す領域の指示における具体的な値
    の集合に、値の集合を指示する名前の値の集合との和集
    合演算を行うことを特徴とするエキスパートシステム構
    築ツール。 4、請求項1記載のエキスパートシステム構築ツールに
    おいて、上記変数の領域を分割することを特徴とするエ
    キスパートシステム構築ツール。 5、請求項1記載のエキスパートシステム構築ツールに
    おいて、ユーザのプログラムにより動作する装置を用い
    て、上記変数に対して領域の値を列挙することを特徴と
    するエキスパートシステム構築ツール。 6、請求項1記載のエキスパートシステム構築ツールに
    おいて、上記値の各集合の間の関係定義をユーザが記述
    して格納する装置を用い、該装置に格納されている関係
    に基づき、上記変数の領域の範囲を絞り込むことを特徴
    とするエキスパートシステム構築ツール。 7、請求項1記載のエキスパートシステム構築ツールに
    おいて、上記問題ストックを複数の部分ストックに分け
    、上記制約充足問題を部分問題に分けて解決することを
    特徴とするエキスパートシステム構築ツール。 8、請求項7記載のエキスパートシステム構築ツールに
    おいて、上記部分ストックのそれぞれに名前をつけ、上
    記探索戦略データベースに記述される知識に該名前を使
    うことを特徴とするエキスパートシステム構築ツール。 9、請求項1記載のエキスパートシステム構築ツールに
    おいて、上記問題ストックの問題の集合を元の部分問題
    に戻す装置を用い、問題ストックの占めるメモリを減少
    させることを特徴とするエキスパートシステム構築ツー
    ル。 10、請求項1記載のエキスパートシステム構築ツール
    において、上記変数を重要度に基づき分割し、該分割さ
    れた変数の集合に名前を付けて蓄積し、該変数集合の名
    前を変数割当て順番指定に用いることを特徴とするエキ
    スパートシステム構築ツール。
JP1258544A 1989-10-03 1989-10-03 エキスパートシステム構築方法 Expired - Lifetime JP3064307B2 (ja)

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 true JPH03119426A (ja) 1991-05-21
JP3064307B2 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)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4000478B2 (ja) 2004-04-28 2007-10-31 船井電機株式会社 昇華型プリンタ

Also Published As

Publication number Publication date
JP3064307B2 (ja) 2000-07-12

Similar Documents

Publication Publication Date Title
Blazewicz et al. Handbook on scheduling
Kotthoff Algorithm selection for combinatorial search problems: A survey
Blazewicz et al. Scheduling computer and manufacturing processes
Noronha et al. Knowledge-based approaches for scheduling problems: A survey
US6456996B1 (en) Computer implemented scheduling system and process using abstract local search technique
Parnas On the design and development of program families
US7437703B2 (en) Enterprise multi-agent software system with services able to call multiple engines and scheduling capability
US6070144A (en) System and process for job scheduling using limited discrepancy search
US6772163B1 (en) Reduced memory row hash match scan join for a partitioned database system
Maher et al. Developing case-based reasoning for structural design
Malakooti et al. An expert system using priorities for solving multiple-criteria facility layout problems
US20070112609A1 (en) Methods and apparatus to incorporate user feedback during planning
Habib Zahmani et al. Multiple dispatching rules allocation in real time using data mining, genetic algorithms, and simulation
CN113391913A (zh) 一种基于预测的分布式调度方法和装置
Lecoutre Ace, a generic constraint solver
Fox et al. The role of databases in knowledge-based systems
Carlis et al. Physical database design: A DSS approach
Raghunathan A planning aid: an intelligent modeling system for planning problems based on constraint satisfaction
JPH03119426A (ja) エキスパートシステム構築方法
Shen Knowledge management in decision support systems
Zhou et al. Reinforcement learning approach for multi-agent flexible scheduling problems
Alipouri A resource flow-based branch-and-bound algorithm to solve fuzzy stochastic resource-constrained project scheduling problem
Tham et al. Prober—A design system based on design prototypes
Murray et al. A framework for selecting between knowledge-based and traditional systems design
EP0531319A1 (en) Dynamic information management computer system