JPH0635703A - 仮説推論処理方法 - Google Patents

仮説推論処理方法

Info

Publication number
JPH0635703A
JPH0635703A JP4191194A JP19119492A JPH0635703A JP H0635703 A JPH0635703 A JP H0635703A JP 4191194 A JP4191194 A JP 4191194A JP 19119492 A JP19119492 A JP 19119492A JP H0635703 A JPH0635703 A JP H0635703A
Authority
JP
Japan
Prior art keywords
consumer
processing
queue
node
environment
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.)
Withdrawn
Application number
JP4191194A
Other languages
English (en)
Inventor
Hiroyuki Yoshida
裕之 吉田
Nobuhiro Yugami
伸弘 湯上
Kazuhiro Oishi
和弘 大石
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP4191194A priority Critical patent/JPH0635703A/ja
Publication of JPH0635703A publication Critical patent/JPH0635703A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

(57)【要約】 【目的】 仮説推論処理を行う装置に関し、コンシュー
マ機構のメモリ所要量と、コンシューマ待ち行列操作の
処理時間を共に減少できる仮説推論処理方法を目的とす
る。 【構成】 システムに再評価用スタック72を設け、コン
シューマ70の待ち行列71を、単方向リンクのみで形成し
(処理73)、該再評価を要するコンシューマを検出した
場合には、当該コンシューマ70の待ち行列71上の接続を
保持したまま、該コンシューマを再評価用スタック72に
登録し(処理74)、該注目環境ごとの該コンシューマ評
価処理(処理75)では、待ち行列71の該リンクに従って
すべてのコンシューマ70の該評価を行った後、再評価用
スタック72に登録されたすべてのコンシューマ70を順次
再評価スタック72から取り出して評価し、該起動可能コ
ンシューマには、起動したことを示す所定の状態表示を
行うように構成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、スケジューリング、プ
ランニング等を、必ずしも真であるか否か判定できてい
ない仮説のデータに基づいて問題解決を行うための、仮
説推論処理をコンシューマ機構を用いて実行する装置に
おいて、コンシューマの管理を改善した仮説推論処理方
法に関する。
【0002】
【従来の技術】いくつかの仮説を同時に選択して解を探
索する処理を行う一手法として、公知のATMS(assum
ption-based truth maintenance system) がある。
【0003】仮説推論では、いくつかの仮説の論理積集
合を環境と呼び、1又は複数の環境の論理和について、
その環境が真のとき成り立つデータを前提として、ある
知識を適用して結果を推論するのであるが、その場合に
ATMSでは、各特定の推論動作が、その前提データす
べてが、そのとき注目している環境において成立すると
きに初めて実行されるように制御するために、コンシュ
ーマ機構を用いる。
【0004】即ち、与えられた知識について、前提デー
タに対してコンシューマと呼ぶデータ構造を作成してお
き、現在の注目環境(別途適当な戦略で設定される真と
仮定された仮説の集合)に対して前提データがすべて成
立するコンシューマを検索し、それを起動可能コンシュ
ーマとして取り出して推論処理を行う。
【0005】図2はATMSによる仮説推論装置の構成
例を示すブロック図であり、問題解決部1と無矛盾性管
理部2とからなる。問題解決部1において、制御部3は
注目環境を決定し、起動待ちの各コンシューマについ
て、すべての前提データが注目環境で成立しているか評
価し、起動可能コンシューマを検出するごとに推論部4
に渡す。
【0006】推論部4は、起動可能コンシューマについ
て、コンシューマに設定されているポインタで指定され
る知識を、知識管理部5に保持する知識から取り出して
推論を実行する。
【0007】その推論によって、新しいデータが推論さ
れれば、無矛盾性管理部2のノード管理部6に通知し、
ノード管理部6が新しいデータのためのノード(後述す
るデータのためのデータ構造)を生成し、コンシューマ
管理部7が知識管理部5に保持する知識を参照すること
により、そのデータを前提とする知識について、新しい
コンシューマを生成する。
【0008】推論により、新しい正当化(後述するよう
にして関係付けられる、データ間の前提/帰結の関係)
が判明したときは、ラベル更新部8を起動してラベル更
新処理を行い正当化を伝播する。又、推論によって矛盾
が判明した場合には、矛盾管理部9を起動して、正当化
の調整と呼ぶ処理を行うが、詳細は省略する。
【0009】ここで、正当化の伝播とは、後述のよう
に、その正当化で確定した、データが成立する環境を、
該当ノードの情報に追加し、そのデータを前提とするデ
ータがある場合に、それらのデータのノードにも新たな
正当化を波及させるラベル更新部8の処理である。
【0010】図4(a)は、データ等を格納するデータ構
造である前記ノードの構成を説明する図であって、ノー
ドはデータ項、ラベル項、正当化項、帰結項からなり、
データ項にデータが格納され、ラベル項にはデータ項の
データが成立する環境の論理和が格納される。
【0011】正当化項と帰結項とは、他のノードとの前
提/帰結関係を指示する項であるが、ノード間の前提/
帰結関係は次に述べる正当化のデータ構造(以下に単に
正当化という)を介して指示するので、正当化項には、
このデータが導かれた前提となった他のデータのノード
を指示するために、各正当化を指示するポインタが格納
され、帰結項には、このデータを前提として導かれた他
のデータのノードを指示するために、各正当化を指示す
るポインタが格納される。
【0012】図4(b)は、正当化のデータ構造であっ
て、前提項と帰結項からなり、前提項には前提となった
ノード(即ち前記の帰結項で、この正当化を指示してい
るノード)すべてのアドレスが格納され、帰結項には前
提項で指示するノード集合からの帰結データを表すノー
ド(即ち前記の正当化項で、この正当化を指示している
ノード)のアドレスが格納される。
【0013】図5は以上のデータ構造によって推論結果
が表現されている例を示す図であって、ノードは、先
ず網かけ部分が無い状態では、環境「A&B」(仮説A
と仮説Bの論理積)の下でデータ「X=1」が成立する
ことを表し、ノードは環境「C」でデータ「Y=2」
が成立することを表し、ノードは環境「D」でデータ
「X=2」が成立することを表し、ノードは環境
「E」でデータ「Y=1」が成立することを表す。
【0014】これらのノード〜に対して、知識「Z
=X+Y」に基づく推論のために、コンシューマが後述
のように生成され、前記のようにしてそのコンシューマ
が起動可能になって推論部4による推論が行われると、
正当化、正当化、ノードが作られる。
【0015】正当化は、ノードとノードとを前提
として、ノードが表しているデータ「Z=3」が導か
れることを表し、正当化は、ノードとノードとを
前提として、同じくノードのデータ「Z=3」が導か
れることを表す。
【0016】従ってノードのラベル項には、前記ラベ
ル更新部8によるラベル更新処理によって、正当化に
対応する環境「A&B&C」と、正当化に対応する環
境「D&E」とが、データ「Z=3」が成立する環境と
して表現される。
【0017】このような関係がある場合に、既存のノー
ドで表すデータが別の推論によっても再び導かれると、
ラベル更新処理によって、そのノードの正当化項とラベ
ル項がそれに従って拡張するように更新すると共に、更
に正当化のポインタを使って関連するノードのラベル項
へ更新を伝播する。
【0018】例えば図5が前記説明のように表現されて
いる場合に、推論部4によってノードのデータ「X=
1」が、環境「F」の下でデータ「W=1」の成立を示
すノードと知識「X+W=2」から導かれると、正当
化が生成されて、ラベル更新部8によってノードの
ラベル項に環境「F」が追加され、更に正当化がノード
まで伝播されてラベル項に環境「C&F」が追加され
る。
【0019】以上の処理は前記のように、コンシューマ
管理部7が生成するコンシューマから、制御部3が検索
する起動可能コンシューマに基づいて、推論部4、ラベ
ル更新部8等によって実行される。
【0020】図6(a)はコンシューマのデータ構造を示
す図であって、各コンシューマは前提項と知識項を有
し、コンシューマ間に双方向リンクを設けて待ち行列を
構成し管理するためにnext項とprev項を持つ。前提項は
推論の前提となるノードを直接又は間接に指示するポイ
ンタを保持し、知識項は推論に使用する知識を指定する
ために、知識管理部5に保持する知識のアドレスを保持
する。
【0021】図6(b)は、(a)に示したコンシューマによ
って前提のノードを指示する一例であり、前記の図5に
よって説明したノードに知識「X+W=2」を適用す
るためのコンシューマとノードとの接続構造である。
【0022】このコンシューマは、注目環境が環境F
を論理的に包含することを制御部3で判定されたとき、
起動可能コンシューマとなり、推論部4の推論が起動さ
れて図5に示す正当化が作られて、コンシューマは
削除される。
【0023】又、図6(c)は、前記図5のノードとノ
ードを前提として、知識「Z=X+Y」を適用するた
めのコンシューマの接続構造である。このように複数の
ノードを前提とする場合には、図示のように一時的にテ
ンポラリノードを設けて、コンシューマはそれを前提
ノードとして指示する。
【0024】テンポラリノードには、前提ノードがすべ
て成立する環境(この例の場合、環境「A&B&C」)
を示し、正当化を介してノードと接続する。この場
合、注目環境がテンポラリノードに示す環境を論理的に
包含するときにコンシューマは起動可能とされ、推論
の結果新しいデータ「Z=3」が導かれる結果、ノード
が生成されて、図5に示すような接続構造ができて、
コンシューマは削除される。
【0025】以上のように制御部3の主要な機能は、予
め与えられている戦略に基づいて注目環境を逐次決定
し、注目環境を決定するごとに、待ち行列の全コンシュ
ーマを順次調べて、その注目環境によって起動可能か判
断し、起動可能のコンシューマを推論部4に渡すことで
ある。
【0026】このように、制御部3は注目環境ごとに、
すべてのコンシューマについて起動可能か否かを1回は
評価し、起動可能と判断したコンシューマは待ち行列か
ら削除して推論処理に渡される。
【0027】しかし、起動できないと判断されたコンシ
ューマについては、その後に起動可能とした他のコンシ
ューマの推論の結果によって行われるラベル更新処理に
よる正当化の伝播によって、前提ノードの環境が追加さ
れることにより、同じ注目環境で「起動可能」に変化す
る可能性がある。
【0028】従って、ラベル更新処理で環境を変化させ
たとき、そのノードが前提となっているコンシューマが
あった場合には、そのコンシューマについて、既に評価
が行われていたとしても、必ず再評価をする必要があ
り、そのために、そのコンシューマがその時点で必ず未
処理のコンシューマ群に入るように、待ち行列上の順位
を変えることとし、そのコンシューマを待ち行列の末尾
に移動する。
【0029】前記のようにコンシューマの待ち行列のリ
ンクを双方向にしているのは、このように再評価のため
に、待ち行列の途中のコンシューマを行列の末尾につな
ぎ変える処理を、行列の先頭から走査して当該コンシュ
ーマの前位のコンシューマを探索しないでもできるよう
にするためである。
【0030】図7はコンシューマの待ち行列の構造を示
す図であり、待ち行列は先頭にダミーのコンシューマを
ヘッダとして置き、行列上の各コンシューマはnext項で
次位のコンシューマを指示し、prev項で前位のコンシュ
ーマを指示し、新しいノードは順次行列の末尾に追加さ
れるものとし、先頭のヘッダのprev項及び末尾コンシュ
ーマのnext項の値は所定の無効表示値 (以下においてNU
LLという)にする。
【0031】又、行列の操作のためのポインタとして、
先頭のヘッダを指示するhead、現処理対象のコンシュー
マを指示するcurrent、currentの指示するコンシューマ
の直前位のコンシューマを指示するprev、及び末尾コン
シューマを指示するtailを設ける。
【0032】図8〜図10は、コンシューマの行列を操作
する処理を必要とする、制御部3、ラベル更新部8及び
コンシューマ管理部7の処理の流れである。以後の処理
の流れの説明において、「aa.bb.cc」のような表現は、
aaで指示されるブロックのbb項で指示されるブロックの
cc項の内容を表すものとする。
【0033】図8は制御部3の処理の流れであって、先
ず処理ステップ10で所定の条件で結論を得ていないこと
を識別した場合に1つの注目環境についての処理に入
り、処理ステップ11で所与の条件により注目環境を決定
し、処理ステップ12で待ち行列のポインタheadの内容を
ポインタprevに設定して各コンシューマについての処理
を開始する。
【0034】処理ステップ13でポインタcurrent にpre
v.next(即ちprevで指示するコンシューマのnext項の内
容)を設定し、処理ステップ14でcurrentがNULLか識別
し、それがNULLなら行列の末尾まで処理を終わったの
で、現注目環境についての処理は終了する。
【0035】currentがNULLでなければ、処理ステップ1
5でcurrentの指示するコンシューマが起動可能か、即ち
そのコンシューマの指示するすべての前提ノードを成立
させる環境が現注目環境に含まれるかを判定し、含まれ
なければこのコンシューマは起動できないので、処理ス
テップ16でポインタprevにcurrentの値を設定して処理
ステップ13に戻り、次のコンシューマの処理に移る。
【0036】処理ステップ15で起動可能と判定すれば、
処理ステップ17でcurrent.nextをprev.next に設定し、
処理ステップ18でポインタprevの値をcurrent.next.pre
v に設定して、current の前位と次位のコンシューマが
直接リンクされるようにすることにより、そのコンシュ
ーマを待ち行列から削除した後、処理ステップ19で、cu
rrent の指示するコンシューマを渡して推論部4を起動
する。
【0037】そこで、推論部4が推論を実行し、その結
果により前記のようにノード管理部6、ラベル更新部8
又は矛盾管理部個が起動され、必要な場合にはコンシュ
ーマ管理部7が動作した後、制御部3へ制御が戻される
ので、制御部3は処理ステップ13で引き続いて次のコン
シューマの処理を始める。
【0038】図9はラベル更新部8の処理の流れであっ
て、ラベル更新部8は推論部4から更新すべき正当化J
を指定して起動されると、処理ステップ20で変数nodeに
正当化Jの帰結項の値を設定し、処理ステップ21でnode
で指示するノードのラベル項に、正当化Jの前提項で指
示する全ノードの環境の論理積を追加するように更新す
る処理をする。
【0039】処理ステップ22で、その更新処理の結果ラ
ベル項の内容が変化したか識別し、変化の無い場合には
処理を終わるが、変化がある場合には正当化を伝播する
ための処理に入り、処理ステップ23で識別してnode.帰
結(nodeで指示するノードの帰結項)で指示する要素(正
当化又はコンシューマである) をすべて処理するまで、
以下の処理を繰り返す。
【0040】即ち、処理ステップ24で node.帰結の指示
する未処理要素から一要素のアドレスを変数Cに設定
し、処理ステップ25でCの指示する要素がコンシューマ
か否か識別し、コンシューマでない場合は正当化である
ので、処理ステップ26に進んでその正当化を再び正当化
Jとして本ラベル更新処理を再帰的に実行する。
【0041】コンシューマである場合には、前記の理由
によりそのコンシューマの再評価が必要になるので、そ
のコンシューマを行列の末尾に移動させるために、先ず
処理ステップ27、28で行列から外し、処理ステップ29〜
32で末尾につなぐ。
【0042】即ち処理ステップ27でC.nextをC.prev.nex
t へ設定し、次に処理ステップ28でC.prevをC.next.pre
v に設定して、Cで指示するコンシューマの前位と次位
のコンシューマが直接リンクするように変更することに
よって、Cを行列の現位置から除く。
【0043】次に、処理ステップ29でCを行列のポイン
タtailで指示するtail.next へ設定し、処理ステップ30
でtailの値をC.prevに設定し、処理ステップ31でC.next
の値をNULLにし、最後にtailをCの値にすることによ
り、Cのコンシューマを行列の末尾にする。以上により
node.帰結の指示する未処理要素の1個ごとの処理を終
わる。
【0044】図10はコンシューマ管理部7の処理の流れ
であり、ノード管理部6が新しいノードnを渡してコン
シューマ管理部7を起動すると、知識管理部5が保持す
る知識を調べてnが前提となる知識が得られるごとに処
理ステップ41以降の処理を行ってコンシューマを生成
し、処理ステップ40で識別して全知識を調べるまでこの
処理を繰り返す。
【0045】ノードnのデータを前提とする知識がある
と、処理ステップ41でそのアドレスを変数Kとし、処理
ステップ42でKの知識の前提となるノードが1個か複数
かで処理を分ける。
【0046】前提が1個の場合には、前記図6(b)によ
って説明したような構造にすればよいので、処理ステッ
プ43で新しいコンシューマCを作って、待ち行列の末尾
に追加し、処理ステップ44でC.知識に知識のアドレスK
を設定し、処理ステップ45でC.前提にnを設定してコン
シューマから前提ノードを指示させ、処理ステップ46で
n.帰結にCを追加して、前提ノードからコンシューマを
指示するリンクを作って、その知識についての処理を終
わる。
【0047】知識の前提が複数ある場合には、更に複数
の前提ノードからなる前提の組が複数組ある場合がある
ので、処理ステップ47で識別して、そのようなすべての
前提の組について、処理ステップ48以降の処理を繰り返
して、それらの組ごとにコンシューマを生成する。
【0048】即ち処理ステップ48でKの前提をなすノー
ドの1組を検索すると、処理ステップ49で正当化Jを生
成して、その前提項で前提ノードを指示し、各前提ノー
ドの帰結項から正当化Jを指示するリンクを作る。
【0049】処理ステップ50で前記図6(c) で説明した
テンポラリノードTを作り、処理ステップ51で前提ノー
ドの環境の論理積をテンポラリノードに設定し、処理ス
テップ52で正当化Jの帰結項にTを設定し、処理ステッ
プ53でテンポラリノードの正当化項にJを設定する。
【0050】処理ステップ54で新しいコンシューマCを
作って、待ち行列の末尾に追加し、処理ステップ55でC.
知識に知識のアドレスKを設定し、処理ステップ56でC.
前提にテンポラリノードのアドレスTを設定してコンシ
ューマとテンポラリノードをリンクし、処理ステップ57
でT.帰結にCを設定して、その前提の組についての処理
を終わる。
【0051】
【発明が解決しようとする課題】前記のようにコンシュ
ーマは双方向リンクで待ち行列を作る構造になるので、
各コンシューマに管理の目的のみのために2個のポイン
タを必要とし、比較的大きなメモリを必要とすると共
に、行列の操作において双方向リンクを操作するための
処理時間も多くなる。
【0052】本発明は、コンシューマ機構のメモリ所要
量と、コンシューマ待ち行列操作の処理時間を共に減少
できる仮説推論処理方法を目的とする。
【0053】
【課題を解決するための手段】図1は、本発明の構成を
示すブロック図である。図は仮説推論処理方法の構成で
あって、本発明を適用するシステムは、所与の仮説の論
理積で表す環境について、該環境の論理和の下に成立す
るデータを示すノードを設け、該データを前提として所
与の知識によって結論となるデータを推論する場合に、
該知識と前提データ群との組合せごとにコンシューマ70
を設け、コンシューマ70から当該知識と当該前提データ
の該ノードを指示し、コンシューマ70を待ち行列71に接
続し、所定の注目環境ごとに、待ち行列71の先頭から各
コンシューマ70の前提ノードの環境を順次評価し、当該
注目環境によって、すべての該ノードの該環境が成立し
ているコンシューマ70を起動可能コンシューマとし、当
該起動可能コンシューマについて、所定の推論処理を行
い、待ち行列71から削除し、該推論処理の結果で該環境
の論理和の内容が更新された該ノードを該前提とするコ
ンシューマ70がある場合には、当該コンシューマを当該
注目環境について再評価するシステムである。
【0054】第1の発明では、このシステムに再評価用
スタック72を設け、コンシューマ70の待ち行列71を、単
方向リンクのみで形成し(処理73)、該再評価を要する
コンシューマを検出した場合には、当該コンシューマ70
の待ち行列71上の接続を保持したまま、該コンシューマ
を再評価用スタック72に登録する(処理74)。
【0055】該注目環境ごとの該コンシューマ評価処理
(処理75)では、待ち行列71の該リンクに従ってすべて
のコンシューマ70の該評価を行った後、再評価用スタッ
ク72に登録されたすべてのコンシューマ70を順次再評価
スタック72から取り出して評価し、該起動可能コンシュ
ーマには、起動可能としたことを示す所定の状態表示を
行う。
【0056】第2の発明では、第1の発明の各コンシュ
ーマ70に、2値を表示するフラグを設けて、前記注目環
境ごとのコンシューマ評価処理75の開始時に、すべての
該コンシューマの該フラグが同一の一方の値を初期値と
して保持するようにし、該評価処理を行ったコンシュー
マ70の該フラグを他方の値に更新する。
【0057】前記再評価用スタック72にコンシューマ70
を登録する(処理74)場合には、当該コンシューマの該
フラグが他方の値に更新されている場合のみ該登録を実
行し、且つ当該フラグを該初期値に再設定する。
【0058】
【作用】本発明の仮説推論処理方法により、コンシュー
マの待ち行列を単方向リンクとするので、従来の各コン
シューマから1個のポインタが不要になるので、その領
域を省くか、又は他の情報の領域に転用することによっ
て、システムの所要メモリ量を減少できる。
【0059】行列を単方向リンクにした結果、再評価コ
ンシューマを従来のように行列の末尾に移動する方法を
採ると、当該コンシューマを行列から一旦外すために、
行列の先頭から走査して、そのコンシューマの前位コン
シューマを検索することが必要になり、処理時間を大幅
に増加する。
【0060】そこで本発明では、再評価用スタックを設
けて、再評価するコンシューマは、行列上の移動を行う
ことなく、再評価用スタックにそのコンシューマのアド
レスを登録し、コンシューマの評価では、行列を末尾ま
で処理した後、再評価用スタックに登録されているコン
シューマの再評価を行うようにする。
【0061】このようにすることにより、従来行ってい
たような、再評価するコンシューマの行列上の移動を双
方向のポインタを操作して行う処理が、本発明では単に
そのコンシューマのアドレスをスタックする処理に変わ
るので、処理時間を減少することができる。
【0062】なお、以上の再評価用スタックへの登録に
よると、再評価を要すると判定した時点で、これから最
初の評価が行われる順位にあるコンシューマもスタック
され、そのようになったコンシューマは不必要に2回処
理対象となる。
【0063】それでも、起動可能となったことを示す表
示を参照することによって、再評価対象としないことを
識別できるので論理的な不都合は生じ無い。しかし、第
2の発明によるフラグをコンシューマに設けることがで
きる場合には、そのフラグによって再評価用スタックへ
の登録要否を識別して、必要なもののみ登録するように
すれば更に効率よく処理することができる。
【0064】
【実施例】図3(a)は本発明のコンシューマのデータ構
造例を示す図であり、図6(a)で説明した従来のコンシ
ューマのprev項が無くなっている。
【0065】図3(d)は(a)のコンシューマによって構成
する待ち行列の例であり、単方向リンクで構成する。行
列の操作のためのポインタ等は従来と同様として、ポイ
ンタhead、current、prev、及びtailを設ける。
【0066】又、本発明により、コンシューマの待ち行
列と組み合わせて再評価用スタックを設け、後述のよう
にして再評価を要するコンシューマのアドレスをこのス
タックに登録する。
【0067】図3(b) は第2の発明におけるコンシュー
マの例であって、知識項の1ビットをフラグに使用し、
後述のようにして再評価用スタックへの登録要否を識別
するのに使用する。待ち行列は前記(d)と同様になる。
【0068】なお、このデータ構造を採るためには、知
識を格納する領域のアドレス境界を工夫する等によっ
て、知識を指示するアドレスを格納する場合のビット長
を1ビット短縮できるようにする必要がある。
【0069】又、図3(c)は、(a)のように減少したポイ
ンタの部分を、前記テンポラリノードのラベル項に使用
する例であって、このようなコンシューマの構造にする
ことにより、テンポラリノードを設ける必要が無くな
り、例えば前記図6(c) に示した構造を、図6(d)に示
すように縮小することができる。
【0070】従って、テンポラリノードを設けるコンシ
ューマが多くなるシステムの場合には、このようにラベ
ル項を持つ構造のコンシューマを使用することによっ
て、所要メモリ量を更に減少することができる。
【0071】この場合には、正当化が指示しているデ
ータ構造がコンシューマを表現しているのか(即ち推論
がまだ行われていないのか)、或いは正当化が指示し
ているデータ構造が推論結果のノードを表現しているの
か、を識別できることが必要であるが、その識別は例え
ば次のようにして比較的簡単にできる。
【0072】それは、例えば知識を格納するメモリ領域
を特定の領域として、アドレス値で他の領域と簡単に区
別できるように領域を管理しておき、コンシューマかノ
ードかの判別を要する場合には、データ構造の第4項の
アドレス値が知識の領域を指示しているか否か識別する
ようにする。
【0073】このデータ構造の第4項が知識項として、
知識へのアドレスを格納していればコンシューマであ
り、帰結項として帰結となる他の正当化を指示するポイ
ンタを格納していればノードであるから、以上によって
データ構造がコンシューマかノードかを識別することが
できる。
【0074】図11は第1の発明における制御部3の処理
の流れ図であって、前記従来の図8に対応する処理であ
り、処理ステップ100〜103は従来の処理ステップ10〜13
と同じである。
【0075】処理ステップ104 で従来と同様に行列の末
尾まで処理したか識別するが、末尾まで処理を終わった
場合には、本発明により後述のように再評価用スタック
の処理をする。
【0076】処理ステップ104で末尾まで処理してない
と判定したときは、処理ステップ105でcurrent.前提がN
ULLか識別し、NULLであれば処理ステップ106 でcurren
t.nextをprev.next に設定することによって、現処理中
のコンシューマを行列から削除する。
【0077】この「current.前提=NULL」は本発明によ
って必要となったコンシューマの処理状態の表示であっ
て、第1の発明の場合には、行列を走査して評価するコ
ンシューマが、既に再評価用スタックに登録されている
場合があるので、起動可能として推論したコンシューマ
は識別できるようにして、再評価スタックから取り出し
た場合に捨てるようにしなければならないので、例えば
推論処理したコンシューマは、既に不要な前提項の値を
NULLにすることによって、その表示とする。
【0078】又、第1及び第2の発明ともに、再評価ス
タックに登録されたコンシューマを、スタックから取り
出して評価した結果が起動可能となっても、待ち行列か
ら削除するためには、行列を先頭から走査して、削除す
るコンシューマの位置を識別することが必要になる。
【0079】それを避けるために、再評価スタックから
取り出して推論処理をしたものについて、前記と同じよ
うに「current.前提=NULL」にして、評価処理のための
待ち行列走査のついでに、前記のように処理ステップ10
5、106の処理によって行列から削除する。
【0080】処理ステップ105でcurrent.前提がNULLで
なければ処理ステップ107でコンシューマが起動可能か
評価し、起動可能でなければ処理ステップ108 で、ポイ
ンタprevにcurrentの値を設定して処理ステップ103に戻
り、次のコンシューマの処理に移る。この部分は従来と
同様である。
【0081】処理ステップ107で起動可能と判定すれ
ば、処理ステップ109でcurrent.nextをprev.next に設
定して、そのコンシューマを待ち行列から削除する。こ
のように従来は処理ステップ17、18の2ステップの処理
を要したリンクの操作が本発明では1ステップで終わ
る。
【0082】その後従来と同様に、処理ステップ110
で、currentの指示するコンシューマを渡して推論部4
を起動するが、推論処理の後、制御部3へ制御が戻され
ると、処理ステップ111 でcurrent.前提をNULLとして、
前記のとおり起動済みの表示とした後、処理ステップ10
3へ戻る。
【0083】処理ステップ104で、「current=NULL」の
場合には、処理ステップ112 で識別して、再評価用スタ
ックが空になるまで、スタックに登録されているコンシ
ューマを順次以下のように処理する。
【0084】処理ステップ113 で、再評価用スタックに
登録されているコンシューマのアドレスを1個取り出し
てポインタcurrent に設定して、そのコンシューマの処
理を開始し、処理ステップ114 でcurrent.前提がNULLか
識別する。
【0085】NULLであれば、前記のとおり既に行列上で
起動可能となって処理されたコンシューマであるので、
そのまま処理をおわって処理ステップ112 に戻り、NULL
でなければ処理ステップ115 でそのコンシューマが起動
可能か評価する。
【0086】起動可能でなければ、処理ステップ112 へ
もどり、起動可能であれば処理ステップ116、117によ
り、前記処理ステップ110、111と同様に推論部の処理、
及び起動済みの表示の設定をして、処理ステップ112に
戻る。
【0087】図12は第1の発明のラベル更新部8の処理
の流れであって、前記従来の図9に対応する処理であ
り、処理ステップ120〜126の処理は、図9の処理ステッ
プ20〜26と同様である。
【0088】処理ステップ125 で、従来の処理ステップ
25と同様にCの指示する要素がコンシューマか否か識別
し、コンシューマである場合には再評価が必要なコンシ
ューマとして再評価されるようにする。
【0089】しかし、その処理は本発明により、従来の
ような行列内の移動ではなく、処理ステップ127 によっ
て、コンシューマのアドレスであるCの内容を再評価用
スタックに登録することで完了する。即ち従来は処理ス
テップ27〜32の6ステップによる行列のリンク操作を行
っていたのが、スタックへの登録の1ステップに短縮さ
れる。
【0090】第1の発明の場合のコンシューマ管理部7
の動作は、図10によって説明した従来の処理の流れと同
様である、但し処理ステップ43及び処理ステップ54にお
ける新しいコンシューマを作って行列の末尾に追加する
場合に、本発明では単方向リンクのみを処理すればよい
ようになる。
【0091】次に第2の発明の場合の処理例を説明す
る。第2の発明で前記のように設けるフラグの使い方と
しては、例えば制御部3のコンシューマ評価処理の最初
に、全コンシューマのフラグを例えば初期値「0」に設
定し、評価済みを「1」で表すようにしてもよい。
【0092】しかし、このようにして評価処理を進める
と、行列から再評価用スタックまで一連の処理を完了し
たときには、すべてのコンシューマのフラグが「1」に
なっている。
【0093】そこで、初期値を固定値「0」にしない
で、「0」を初期値として一連の処理を完了すると、次
の回の処理では「1」を初期値として、評価済みを
「0」で表すというように、交互にフラグの値の解釈を
交換することにすれば、処理の最初に初期設定を行う必
要が無くなる。
【0094】図13〜図15は、第2の発明を後者の方法に
よって処理する場合の、各部の処理の流れである。図13
は制御部3の処理の流れであって、変数FLAGを設けて、
例えばシステムの運転開始時にFLAGを1に初期設定して
おくものとする。このようにして制御部3は処理ステッ
プ100〜110を前記図11と同様に処理する。
【0095】但し、処理ステップ101aでこの回の処理に
おけるFLAGの値を、現に保持されている前回の値の反転
値に更新する処理が入る。この結果、FLAGの値は、現在
の全コンシューマのフラグと同じ値になる筈である。
【0096】又処理ステップ107 でコンシューマが起動
可能か評価し、起動可能でない場合に次のコンシューマ
を処理するために処理ステップ108でポインタcurrentの
値をポインタprevに設定する処理は前記と同様である
が、次に現に処理したコンシューマに評価済みの表示を
するために、処理ステップ108aでcurrent.フラグを反転
した後、処理ステップ103に戻る。
【0097】起動可能の場合には前記と同様に処理ステ
ップ109、処理ステップ110で推論処理を実行するが、第
2の発明により後述のように、未評価のコンシューマが
再評価用スタックに登録されることは無くなるので、前
記の処理ステップ111 の処理は不要になる。
【0098】処理ステップ104 で、待ち行列の末尾まで
処理したと識別した場合には、再評価用スタックの処理
に入り、処理ステップ112、113でスタックに登録されて
いるコンシューマのアドレスを1個取り出すと、直ちに
処理ステップ115 でそのコンシューマが起動可能か識別
する。
【0099】即ち、第2の発明では後述のようにして、
待ち行列上で未評価のコンシューマが再評価用スタック
に登録されることは無いので、第1の発明の場合の処理
ステップ114 のように、スタックから取り出したコンシ
ューマが、既に起動可能として処理済みではないかチェ
ックする必要は無い。
【0100】処理ステップ115で起動可能と評価すれ
ば、前記と同様に処理ステップ116、処理ステップ117
の処理をする。又、起動可能で無い場合には、処理ステ
ップ115aでcurrent.フラグを反転して、評価済みにして
おく。
【0101】図14は第2の発明におけるラベル更新部8
の処理の流れであり、処理ステップ120から126までの処
理、及び処理ステップ127 は、前記第1の発明の図12の
処理と同様である。
【0102】処理ステップ125 でノードの帰結項で指示
する要素がコンシューマであると識別した場合に、第2
の発明では処理ステップ125aで、そのコンシューマのフ
ラグC.フラグがFLAGに保持する値と同一か識別し、FLAG
と異なれば評価済みであるので、その場合のみ処理ステ
ップ125bでC.フラグを反転して、未評価の表示に戻し、
処理ステップ127で再評価用スタックに登録する。
【0103】図15は第2の発明のコンシューマ管理部7
の処理の流れであり、処理ステップ140〜157は前記図10
により説明した従来の処理の処理ステップ40〜57と同様
である。
【0104】第2の発明により、新しく生成したコンシ
ューマのフラグを設定する必要があるので、処理ステッ
プ145a及び処理ステップ156aが挿入され、フラグをその
時の変数FLAGの値に設定する。
【0105】
【発明の効果】以上の説明から明らかなように本発明に
よれば、仮説推論処理を行う装置において、コンシュー
マ機構のメモリ所要量と、コンシューマの待ち行列操作
の処理時間を共に減少して、システムの処理効率を改善
するという著しい工業的効果がある。
【図面の簡単な説明】
【図1】 本発明の構成を示すブロック図
【図2】 仮説推論装置の構成例ブロック図
【図3】 本発明のコンシューマのデータ構造を示す図
【図4】 ノード及び正当化のデータ構造を説明する図
【図5】 推論結果の表現例を示す図
【図6】 コンシューマのデータ構造を説明する図
【図7】 従来のコンシューマの待ち行列の構造を示す
【図8】 従来の制御部の処理の流れ図
【図9】 従来のラベル更新部の処理の流れ図
【図10】 従来のコンシューマ管理部の処理の流れ図
【図11】 第1の発明の制御部の処理の流れ図
【図12】 第1の発明のラベル更新部の処理の流れ図
【図13】 第2の発明の制御部の処理の流れ図
【図14】 第2の発明のラベル更新部の処理の流れ図
【図15】 第2の発明のコンシューマ管理部の処理の
流れ図
【符号の説明】
1 問題解決部 2 無矛盾性管理部 3 制御部 4 推論部 5 知識管理部 6 ノード管理部 7 コンシューマ管理部 8 ラベル更新部 9 矛盾管理部 10〜32、40〜57、100〜117、120〜126、140〜157 処理
ステップ 70 コンシューマ 71 待ち行列 72 再評価用スタック 73〜75 処理

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 所与の仮説の論理積で表す環境につい
    て、該環境の論理和の下に成立するデータを示すノード
    を設け、該データを前提として所与の知識によって結論
    となるデータを推論する場合に、 該知識と前提データ群との組合せごとにコンシューマ(7
    0)を設け、該コンシューマから当該知識と当該前提デー
    タの該ノードを指示し、 該コンシューマを待ち行列(71)に接続し、所定の注目環
    境ごとに、該待ち行列の先頭から各該コンシューマの前
    提ノードの環境を順次評価し、当該注目環境によって、
    すべての該ノードの該環境が成立している該コンシュー
    マを起動可能コンシューマとし、当該起動可能コンシュ
    ーマについて、所定の推論処理を行い、該待ち行列から
    削除し、 該推論処理の結果で該環境の論理和の内容が更新された
    該ノードを該前提とする該コンシューマがある場合に
    は、当該コンシューマを当該注目環境について再評価す
    るシステムにおいて、 再評価用スタック(72)を設け、 該コンシューマの待ち行列(71)を、単方向リンクのみで
    形成し(73)、 該再評価を要するコンシューマ(70)を検出した場合に
    は、当該コンシューマの該待ち行列上の接続を保持した
    まま、該コンシューマのアドレスを該再評価用スタック
    (72)に登録し(74)、 該注目環境ごとの該コンシューマ評価処理(75)では、該
    待ち行列(71)の該リンクに従ってすべての該コンシュー
    マの該評価を行った後、該再評価用スタックに登録され
    たすべての該コンシューマを順次該再評価スタック(72)
    から取り出して評価し、 該起動可能コンシューマには、起動したことを示す所定
    の状態表示を行うように構成されていることを特徴とす
    る仮説推論処理方法。
  2. 【請求項2】 各前記コンシューマ(70)に、2値を表示
    するフラグを設けて、前記注目環境ごとのコンシューマ
    評価処理の開始時に、すべての該コンシューマの該フラ
    グが同一の一方の値を初期値として保持するようにし、 該評価処理を行った該コンシューマの該フラグを他方の
    値に更新し、 前記再評価用スタック(72)に該コンシューマを登録する
    場合には、当該コンシューマの該フラグが他方の値に更
    新されている場合のみ該登録を実行し、且つ当該フラグ
    を該初期値に再設定する、請求項1記載の仮説推論処理
    方法。
JP4191194A 1992-07-20 1992-07-20 仮説推論処理方法 Withdrawn JPH0635703A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4191194A JPH0635703A (ja) 1992-07-20 1992-07-20 仮説推論処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4191194A JPH0635703A (ja) 1992-07-20 1992-07-20 仮説推論処理方法

Publications (1)

Publication Number Publication Date
JPH0635703A true JPH0635703A (ja) 1994-02-10

Family

ID=16270472

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4191194A Withdrawn JPH0635703A (ja) 1992-07-20 1992-07-20 仮説推論処理方法

Country Status (1)

Country Link
JP (1) JPH0635703A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7707953B2 (en) 2006-02-24 2010-05-04 Groz-Beckert Kg Gripper device for tufting machine

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7707953B2 (en) 2006-02-24 2010-05-04 Groz-Beckert Kg Gripper device for tufting machine
KR101345570B1 (ko) * 2006-02-24 2013-12-30 그로츠-베케르트 카게 터프팅 기계용 그리퍼 도구

Similar Documents

Publication Publication Date Title
Madden et al. Transfer of experience between reinforcement learning environments with progressive difficulty
Merritt et al. Computing with infinitely many processes: Under assumptions on concurrency and participation
US6263325B1 (en) System, method, and program storage medium for executing a learning algorithm
JPH05250377A (ja) スケジューリング方式
JPH0690667B2 (ja) オブジェクト変更処理方法
JPH06131312A (ja) 並行処理方法およびシステム
WO1991018343A1 (fr) Systeme de production
Pinedo et al. On the design and development of object-oriented scheduling systems
JPH0635703A (ja) 仮説推論処理方法
EP0445823A2 (en) Inference method and system
Inoue et al. Development of nurse scheduling support system using interactive EA
US6014514A (en) System for generating and graphically displaying call stack information for processing elements in a parallel processing system
JPH08249190A (ja) 順序付け問題の解法を生成する方法
Shakhlevich et al. Adaptive scheduling algorithm based on mixed graph model
JPH0693204B2 (ja) プラント監視制御システム
Asadi et al. Accellerating action dependent hierarchical reinforcement learning through autonomous subgoal discovery
CN116010410A (zh) 一种基于人机交互的可靠行为树任务规划方法及系统
JPH10143370A (ja) 知識格納・照合方法
Girgin et al. Learning by automatic option discovery from conditionally terminating sequences
Sacha Embedded systems software specification and design methods
JP2765911B2 (ja) データ駆動型制御方法およびコンパイル装置
AU725597B2 (en) Information processing
Turpin Jr et al. On reworks in a serial process with flexible windows of time
Yeoh et al. Discrepancy-Based Approach for Solving Distributed Constraint Optimization Problems
JPH0512017A (ja) 非単調推論型エキスパートシステム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19991005