JPH0616267B2 - 計算機システムの高速処理方法 - Google Patents

計算機システムの高速処理方法

Info

Publication number
JPH0616267B2
JPH0616267B2 JP58177959A JP17795983A JPH0616267B2 JP H0616267 B2 JPH0616267 B2 JP H0616267B2 JP 58177959 A JP58177959 A JP 58177959A JP 17795983 A JP17795983 A JP 17795983A JP H0616267 B2 JPH0616267 B2 JP H0616267B2
Authority
JP
Japan
Prior art keywords
block
term
fact
attribute
associative
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP58177959A
Other languages
English (en)
Other versions
JPS6072032A (ja
Inventor
節夫 鶴田
誠 能見
捷二 宮本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP58177959A priority Critical patent/JPH0616267B2/ja
Priority to DE8484111496T priority patent/DE3485999T2/de
Priority to US06/654,487 priority patent/US4779208A/en
Priority to EP84111496A priority patent/EP0137414B1/en
Publication of JPS6072032A publication Critical patent/JPS6072032A/ja
Publication of JPH0616267B2 publication Critical patent/JPH0616267B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/046Forward inferencing; Production systems

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)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、経験則や自然の法則と初期事実から新事実や
仮説を推論する(プロダクション)システムの高速化処
理方法に係わり、特に、大規模で時間がかかりすぎた
り、リアルタイム性を要求される場合に好適な、高速推
論のための計算機システムの高速処理方法に関する。
〔発明の背景〕
規則と事実から推論を行なうのに、推論の各サイクル毎
に全ての規則と事実の照合をとって実行規則を決めるの
がプロダクションシステムであるが、規則と事実の増大
と共に推論時間が爆発的に増大し実用規模では有用でな
い。これを防止するため、規則や事実のコード化とその
インデキシングを行なっている。特に、弁別ネットを用
いた高速方式が効率・適用性において優れているが、規
則の各項目によっては弁別ネットのオーバヘッドは大き
く、リアルタイムシステムへの実用化上問題がある。
また、規則にカウンタを持たせ、その初期値をその条件
項の数に等しくし、事実のプールであるワーキングメモ
リに、この規則の条件項と類似の事実が加えられたらカ
ウンタの値を1減らし、削除されたらカウンタの数を1
増し、カウンタの値が0か、マイナスになったら、この
規則を実行候補規則に加え、より完全な実行チェックを
行なう方式(一種のフィルタ)が提案されているが、こ
のフィルタは、効率が悪い。なぜなら、同一条件項の変
数の値が異なる場合に相当する事実が連続して加えられ
ると上記カウンタは常に0以下になり、他の条件項の事
実属性が空の規則が実行候補規則に加えられ、変数の値
のすべての組合わせを試みた後、実行条件を満さないと
判定するロスを生じる。また、類似の条件項を見つける
だけであるから実行条件を満さない規則を実行候補規則
に加えるだけでなく、実行条件を満す規則さえ実行候補
規則から削除すること、つまり不良を発生することすら
ある。
〔発明の目的〕
本発明の目的は、高度な知的情報処理を可能にするプロ
ダクションシステムあるいは、これに類する計算機シス
テムの実行速度を、実用上充分高速に(特に、コマンド
アンドコントロール等厳しいリアルタイム性を要求され
る場合にも耐えれるように)、しかも、ルールや条件の
数,事実数,変数の数などにより性能の急激な低下に対
処するために実行候補規則を選択する効率的な方法を提
供することにある。
〔発明の概要〕
従来技術の問題点で述べたように、カウンタによる実行
候補規則のフィルタでは、実行条件を満足しない規則が
多数、実行候補に加えられるため推論効率が低下する。
特に変数の数や種類が多い場合、効率低下が著るしい。
フィルタリング機能が高く、しかもオーバヘッドの少な
いフィルタが必要となる。本発明では、この要求に応じ
るため、変数の値の矛盾は無視した場合に、条件が全て
満足される規則のみを実行候補とするフィルタに特徴が
ある。
〔発明の実施例〕
以下、本発明の一実施例を、第1〜第15図により説明
する。
第1A図は、本発明の方法を実現するためのシステム構
成である。
連想ネット作成プロセッサ100は、規則ファイル10
3から、規則を取出し、規則の起動条件やその起動が他
の規則の起動や推論に及ぼす影響を分析し、その結果を
連想ネット(但し、事実組込み前のもの)106として
出力する。また、初期事実を連想ネットに効率良く組込
むための連想フィルタ105を作成する。初期事実組込
みプロセッサ101は、初期事実ファイル104から事
実を取出し、連想ネット106の該当場所に組込む。推
論実行プロセッサ102は、連想ネット106をベース
に、高速推論を行ない推論結果107を出力する。
第1B図は、本発明の方法の計算機システム上での実現
構成図である。
連想ネット作成プロセッサ100、初期事実組込みプロ
セッサ101、推論実行プロセッサ102、連想フィル
タ105は、推論プログラム151として、また、連想
ネット106は推論用知識152として、それぞれCP
U150に置かれる。
コンソールディスプレー153(キーボード、コンソー
ルタイプライタでも良い)から、規則や初期事実を入力
する。実際のシステムでは、初期事実の入力は、センサ
ーなども用いることも可能である。推論の実行(あるい
は連想ネット106の作成など推論の準備)など推論制
御指令160もコンソールディスプレー153から入力
する。
推論結果は、(ライン)プリンタ154やCRT15
5、あるいは、ディスクやM/Tなどの補助記憶装置1
56に出力する。推論制御指令160により、推論結果
に至るまでの推論経過の出力も可能である。
補助記憶装置156には、規則ファイル103、初期事
実ファイル104、連想ネット106を保存し、エラー
回復や前処理に利用できる。
以下、具体的な事実や規則とこれを用いた連想ネットワ
ークの作成について説明する。
第1C図は上記プロダクションシステムで用いるルール
集合の具体例を示す。同図において、>FはFが変数で
あることを示し、>のつかない文字は定数であることを
示す。Fは女性、Mは男性、またPは人を示す。さら
に、行動項(then項)中のadは追加されるべき項
目、rdは除去されるべき項目をそれぞれ示す。
初期事実が第1D図に示すものであると仮定して、実行
関係を表わすネットワーク、すなわち、初期事実にもと
づく連想ネットワークが第1E図のように具体化され
る。
第1E図において、ルール番号R1〜R5で示される水
平線はその上側及び下側が、それぞれ第1C図に示され
るルール集合のうちの関連するルールのif部及びth
en部に対応することを表わしている。水平線の下につ
けた小さい丸印はここから発する矢印で示される大きい
丸印が除去されるべき項目であることを示すものであ
る。
第1F図は第1D図の初期事実を第1E図上にはめ込ん
だ状態を示す。第1F図において、大きい丸印中の実線
の長円は入力済の事実を示し、点線の長円は新しい初期
事実(例:Kate comes from Paris)がそこに加えられ
る時の状態を示す。さらに、長円を囲む円はルールの項
目を示し、点線で結ばれた項目は関連する項目(連想
項)であることを示す。
第2図は高速に推論を実行するための連想ネット106
の構成を示す。
200は、規則のリストであり、その要素201はコー
ド化された規則210であり、条件部211と行動部2
12から成る。条件部,行動部の各項220もコード化
されており、それぞれ条件項213、行動項215〜2
17から構成される。行動項は、さらに、削除項21
5、追加項216、停止項217などに分れる。
上記の各項220は、項コード221、項を条件部に持
つ規則(連想規則251)のリスト250を値として持
つ規則連想属性222、共通の型の項(連想項245)
のリスト(連想項リスト244)を、値として持つ項連
想属性223、連想項間の共通部230を値として持つ
共通部属性224、個別な部分(個別構造240その要
素は個別要素243)を値として持つ個別部属性22
5、項が既知事実かどうかを示す事実属性226項を含
む変数(関数でも良い。以後同様)242を順番に並べ
た変数列241を値に持つ変数属性227、項の内容2
46(その要素を247に示す。)を値として持つ内容
属性228、から構成される。
具体値(列)リスト248は、項の変数の具体値の列
(具体値列249)のリストであり、項が変数242を
含む時の事実属性226の値である。
共通部230は、そのコード235と、その内容である
共通構造(その要素である共通要素234は、項の要素
のうちの個別要素243に対応するものを“−”(アン
ダーライン)に変換し、他の項の要素はそのままにした
もの)233を値として持つ構造属性231と、この共
通部を持つすべての項(共通部連想項236)のリスト
である共通部連想項リスト235を値として持つ連想項
属性232とから成る。
候補規則リスト260は、実行)候補規則261のリス
トである。
第3図は、コードリストのデータ構造を示す。すなわ
ち、コード化した項220を登録するコードリスト30
0は、項の内容221と対応するコード246から成る
コードペア301を要素とするリストである。項のコー
ド化(後述。ブロック602)に用いる。
第4図は、連想ネット共通部のデータ構造である。本デ
ータ構造は、連想ネット共通部作成(ブロック603。
後述)の途中段階のものである。すなわち共通部候補4
01は、共通部の候補であり、連想ネット共通部作成処
理終了時点以降は、共通部230と一致する。同様に、
共通部リスト400は、共通部作成中は共通部候補40
1、作成後は共通部230を要素とするリストである。
共通部コード402、構造属性403、項連想属性40
4、共通要素406、連想項リスト405も、共通部候
補に関するものであることを除いては、第2図で説明し
た共通部に関するそれらと同様である。
第5図は、連想フィルタ105の構成を示す。
連想フィルタは、初期ノード(ノード番号501が0の
ノード)から始まるノード500のトリー構造体であ
る。各ノード500は、ノード番号501、変数特徴属
性502、定数特徴属性503、終端属性504から成
る。システムは、ノード上を動きながら、初期事実の要
素(定数,変数)を読み込むが、変数特徴属性502は
変数を読み込んだ時にシステムが動く先のノード次ノー
ド(507)を、定数特徴属性503は、どの定数50
8を読み込んだら次ノード509がどのノードであるか
のペア506を要素とする表(変数特徴属性値505)
を、それぞれ値として持つ。終端属性504は、ノード
500が共通部リスト400に登録された共通部のいず
れかをシステムが読み込んだ時、初期ノードから到達す
る先のノードである時、その共通部230の共通部コー
ド235を、そうでない時には空を値として持つ。
第6図は、連想ネット作成処理を示す。
まず、規則の項のうちその内容が記号列として互いに異
なるものにユニークを番号をつけるために、新コード番
号を1に、規則の項を取出すためのポインタを1に初期
設定する(ブロック600)。次に、規則ファイル10
3から規則の項を取出すとともにポインタを更新する
(ブロック601)。取出した項は、照合の高速化のた
めにコード化して、連想ネット106の規則210に埋
込むとともに、規則連想属性222を設定する(ブロッ
ク602)。さらに、連想ネット106の共通部230
を作成する。以上の処理を規則ファイル103の全ての
規則の項に対して行なった後、連想ネット106の個別
構造240を作成する(ブロック604)。また、連想
フィルタ105を作成する(ブロック605)。
第7図は、項をコード化した規則210を作成し、規則
連想属性222を設定するための処理である。
ブロック701では、ブロック601で取出した規則の
項が、コードリスト300に既登録かどうかをチェック
する。既登録なら、登録されている該コードを現コード
とする(ブロック702)。未登録なら、項の内容24
6と新コード番号のペア(コードペア301)を、コー
ドリスト300に追加し(ブロック703)、現コード
番号の値を新コード番号の値に設定し、新コード番号を
更新する(ブロック704)。ブロック705では、現
コード番号にユニークに対応する項コード221を持つ
項220の変数属性227として、取出した項が含む変
数242を先頭から順にリスト結合したもの(変数リス
ト241)を、内容属性228として、項の内容246
を設定する。
さて、ブロック702あるいは、ブロック705の処理
が終了したら規則210の項220の項コード221を
現コードとし、条件部211、もしくは行動部212か
らネットワークを張って、連想ネット106の一部とす
る(ブロック706)。さらに、処理の項が、条件項2
13なら、その規則連想属性222の値、つまり連想規
則リスト250の要素251として自項が属する規則の
規則コード214を追加する。
第8図は、連想ネット106の項の共通部230を抽
出,作成するための処理フローである。
ブロック801では、ブロック601で取出した規則の
項の変数(関数を含む、以後同様)を−に変えたものを
(共通部)候補項401とする。この候補項のコード
(将来の共通部コード)402は、たとえば、取出した
項のコードがfのときaとする。次に、ブロック8
02では、候補項401の項連想属性404として、上
記の候補項のコード402を設定する。
さて、ブロック803では、(共通部)候補項401
と、共通部リスト400に登録ずみの各候補項との照合
をとり、既登録かどうかのチェックを行なう。ただし、
この照合では、はどの要素(定数,変数)とも照合が
成功するものとする。
既登録なら、まず、候補項と照合した共通部リスト内の
候補項の以外の要素406のうち、候補項のと照合
した要素をに置替えたものを、改めて候補項とする。
この候補項のコードは、上記の照合した共通部リスト内
の候補項のコード402とする(ブロック804)。次
に、この新しい候補項の連想項リストに、もとの候補項
の連想項リストを結合する(ブロック806)。さら
に、もとの候補項と照合した共通部リスト内の候補項を
共通部リスト400から削除する。ブロック803から
ブロック806までの処理を、ブロック803の処理結
果が既登録である間中くり返し、結果が未登録になれ
ば、連想ネット106の共通部リスト400に候補項4
01を追加して(ブロック807)、ブロック601で
取出した項に対する共通部作成処理を終了する。
第9図は、連想ネット106のうち各項に個別な部分
(個別構造240)を作成するための処理方式を示す。
共通部リスト400の要素、つまり共通部230(以後
の処理では、共通部リストが確定しているので、(共通
部)候補項401は、すべて共通部230になる。)を
順次取出し(ブロック901)、その項連想属性223
の値、つまり連想項リスト244をとり出す(ブロック
902)。次に、その要素、つまり、共通部を共有する
連想項のグループ(連想グループ)のメンバーとなる項
(連想項245)を順次取出す(ブロック903)。連
想項リストの要素の取出しが全て終了すれば、ブロック
901に戻って、共通部リスト400から次の要素を取
出し、共通部リストの要素を全て取り出すまで繰返し同
じ処理を行う。
さて、ブロック904では、取出した連想項904に対
して、共通部230の共通構造233の要素234の値
である要素の共通構造内の相対位置にある連想項の
要素247を取出してリストにしたものを同連想項の個
別部属性226の値として、個別構造240に設定す
る。次に、連想項の共通部属性224として、ブロック
901で取出した共通部230のコード235を設定し
(ブロック905)、ブロック903の処理に戻る。
以上、第6〜9図に連想ネット作成法のうち事実や仮説
を取込む前の部分を述べたが、これを第1C図と第1E
と図いた具体例で説明する。
第6図のブロック600で初期化後、601で規則R1
の項(>F likes wine)を取出し、ブロック602つ
まり第7図の処理を行なう。上記の項をコード化し、コ
ードリスト(300)に設定し(703)、コード化さ
れた項の変数属性227にその変数のリスト(上例では
>Fだけ)を、内部属性228には項の内容、つまり>
F,likes,wineを要素とするリストを設定する(ブロッ
ク705)。ブロック706で規則R1に対応する条件
項213に上記の項のコードを設定し、上記の項が条件
項か判定し(707)、条件項なので、この項の規則連
想属性222に規則R1の識別コードを設定する(70
8)。以上でブロック602の処理を終り、次に603
の処理、つまり第8図の処理を行う。まず項(>F li
ke wine)の変数>Fを特別コード(特殊記号)で置
換えた(likes wine)を候補項とし(801),連想
項リスト(236,最初は空)に項のコードを加える
(802)。上記候補項は共通部リスト(400,最初
はこれも空)に未登録なので(803),共通部リス
トに上記候補項(のコード)を加える(807)。
以上でブロック603の処理を終り、601に戻り、規
則R1の次の項(>F is female)を取出す。以下,
上記と同様の処理を行ない共通部リスト(400)の値
は(likes wine)と(is female)から構成される
リストとなる。また規則R1の条件部には(>F is f
emale)のコードも追加される。
次に、規則R1の項(John likes>F)が601で取出
されるが、この場合、規則R1の行動部212にそのコ
ードが設定される(ブロック706)。項の内容を対応
コードに入れ替えるだけなのでad(追加),rm(削
除)などの情報は保存される。さて、第8図のブロック
801でこの項は(John likes)と変形され候補項と
なるが、共通部リスト(400)には(likes wine)が
存在する。そこで803でJohnとwineのいずれもに照
合するため、804で(likes)が改めて候補項と
なり、805でその連想項リスト(>F like wine)
のコードに807で作成した連想項リスト((John lik
es>F)のコードだけを要素とするリスト)とつなぐ。
次に照合した(Johe like)を共通部リスト(40
0)から削除し、803に戻り、新しい候補項(like
s)が共通部リスト(400)にないことをチェック
し、これを共通部リスト(400)に加える(80
7)。
以上でブロック601に再び戻り、 (Adam likes>F)を取出し、上記と同様の処理を行な
い、共通部リスト(400)は(is female)のコー
ドと(likes)のコードを要素とするリストとな
る。また後者の要素に対する(共通部)連想項リスト2
36は(Adam likes>F),(John likes>F),(>
F likes wine)のそれぞれのコードを要素とするリス
トとなる。
以上を第1C図の全規則(R1〜R5)の全項に対して
繰返し、処理終了後、ブロック604つまり、第9図の
処理を行ない。連想ネット個別部を作成することによ
り、第1E図の連想ネット(事実や仮説の取込まれてい
ないもの)が作成できる。詳細には共通部リスト(40
0)の要素、例えば(like)に対応するコードを取
出し(901)、その連想項リスト(235)を取出し
(902)その要素つまり連想項220(Adam likes>
F),(John…),(>F likes wine))を取出し
(903),共通部(likes)のの位置にある例
えばAdam,>Fのリストを個別部属性(225)の値
(240)として設定し(904)、共通部属性224
に共通部(likes)のコードを設定する(905)
を全連想項に対して繰返す。
第10図は、初期事実104を連想ネット106に取込
むための連想フィルタ105を作成するための処理方法
を示す。
ブロック1001では連想フィルタ105のノードに与
える番号(新ノード番号)を1に設定する。次に、共通
部リスト400から順次、その要素235を取出す(ブ
ロック1002)。取出す要素がなくなれば処理を終了
する。取出す要素があれば、まず、現在のノードを出発
ノード(例えば、番号0のノード)とする(ブロック1
004)。次に、共通部230の要素234を順次取出
す(ブロック1004)。ブロック1006では、取出
した要素234が、(変数に対応)かどうかをチェッ
クし(ブロック1006)、Yesなら、現在のノード5
00の変数特徴属性502の値が空かどうか調らべ(ブ
ロック1007)、空なら、新ノード番号を現ノードの
変数特徴属性502として設定する(ブロック100
8)。空でなければ、変数特徴属性502の値を現ノー
ドとする(ブロック1010)。ブロック1006の処
理結果がNoなら、ブロック1004で取出した要素2
34が、現在のノード500の変数特徴属性502に含
まれるかどうかをチェックし(ブロック1011)、含
まれなければ、取出した要素234と新ノード番号の対
を現在のノードの定数特徴属性503に追加し(ブロッ
ク1012)、含まれれば、マッチした定数時特徴属性
値505の要素506に対応するノード507を現在の
ノードとする。また、ブロック1008,1012の処
理が終了すれば、ブロック1009において、新ノード
番号のノードを現ノードにし、新ノード番号を更新す
る。ブロック1009,1010,1013の処理の後
1004に戻り、共通部230の要素234がなくなる
まで、ブロック1006以下の処理を繰返す。取出す要
素がなくなると、現在のノード500の終端属性504
に、ブロック1002で取出した共通部230のコード
235を設定する(ブロック1005)。
以下が連想フィルタ105の作成法であるが、第1C図
の規則に対して、連想フィルタを構成した具体例が第1
G図である。この具体例で連想フィルタの作成法を述べ
る。
先ず、第1C図の規則から第8図に従って共通部リスト
を作成する。第8図によると、変数やそれに対応する位
置にある定数は全て特別コードによって置き換えられ
共通部リストに設定される。従って共通部リストは((
likes)(loves)(lies)(is female)
is beautiful)(is young)(comes from Par
is))となる。
第10図のブロック1002で上記共通部リストの各要
素(共通項)、例えば(likes)を取り出す。10
04でこの要素の要素であるやlikesを順次取出す。
なら変数特徴属性)第5図の502)に次ノード番号
を、likesなど以外なら定数特徴属性(第5図の5
03に定数値(この場合likes)と次ノード番号の対
(第5図の506)を追加する。これを繰返してネット
ワークのパスを構成する。共通項の要素を全て取出した
ら、現ノードの終端属性(第5図の504)に共通項の
識別コード(共通部コード)をセットする(第10図の
ブロック1005)。上記の共通部リストの全要素に対
し以上の処理を終了すると第1G図の連想フィルタが構
成できる。
第11図は、初期事実104を連想ネット106に組込
むための処理を示す。
まず、初期事実ファイル104から事実を先頭から順に
取り出し(ブロック1100)、取出す事実がある間、
以下の処理を行う。つまり、ブロック1101では、事
実を連想フィルタ105に通して、対応する共通部23
0と個別具体値を取出す(事実のフィルタリング処理
(第12図))。つぎに、この共通部230の連想項リ
スト235の中から、上で取出した個別具体値に、その
個別構造240が照合する連想項236を選択し、その
事実属性226に具体値列249を追加する(ブロック
1102)。
第12図は、事実のフィルタリング処理を示す。
まず、個別具体値(リスト)を空に設定し、さらに、現
在のノード500を出発ノード(ノード番号0)とし
(ブロック1201)、ブロック1100で取出した事
実に対して、その要素(すなわち事実の文を構成する定
数や変数)を、前から順次取出す(ブロック120
2)。
取出した要素に対して、それが、現在のノード500の
定数特徴属性値505に含まれるかどうかをチェック
(ブロック1203)、含まれなければ、現在のノード
の変数特徴属性502の値が空かどうかをチェックし
(ブロック1204)、空なら、事実フィルタリング処
理の結果に空を設定(ブロック1208)し処理を終了
する。空でなければ、ブロック1202で取出した要素
を個別具体値(リスト)に追加する。この後、あるい
は、ブロック1203の処理結果がYesの時、前者では
変数特徴属性502によって示される次ノードを、後者
では、取出した要素とその定数部508が一致する定数
特徴属性値505の要素の次ノード部509が示す次ノ
ードを現在のノード500とし、ブロック1202の処
理に戻る。ブロック1202で取出す要素がなくなれ
ば、現在のノード500の終端属性504が空かどうか
をチェックし(ブロック1207)、空でないことが確
認できたら、事実のフィルタリング処理の結果として、
終端属性504の値(つまり共通部コード235)と、
個別具体値(リスト)を設定する(ブロック120
9)。終端属性504が空なら、事実のフィルタリング
処理の結果を空とする。(ブロック1208)。
事実を連想ネットワークに組み込むための連想フィルタ
の使用法は以上の通りである。これをより具体的に第1
D図の事実を第1E図の連想ネットワークに連想フィル
タ第1G図を用いて組込む例で説明する(第11〜13
図参照)。第1G図において、枝上の定数(lies,isな
ど)はすぐ上側にあるノード(○印)の定数特徴属性の
要素値である。終端ノード(◎印)はそれぞれ( )付
文の識別コードをその終端属性として持つ。例えば第1
D図の事実の最終の(Kate comes from Paris)に対して
は、第1G図の連想フィルタのパスのうち、その構成要
素である各枝が全て上記の事実の構成要素と一致するパ
スである(>F,>M,>Pなど>を付加した変数に対
応する枝はどれにも一致する)第1G図の右端のパス
(>Pcomes from Paris)が第12図のブロック120
1〜1207の処理によって選ばれる。
より詳細には、まずブロック1201で現ノードが第1
G図の出発ノードに設定され、上例の事実である(Kate
comes from Paris)の要素Kateが第12図の1202で
取出される。第1G図の出発ノードからは特別コード
(変数)に対応する枝しか出てない、つまり定数特性属
性は空なのでブロック1203では“No”で、ブロック
1204で“Yes”となり、ブロック1205でKateが
対応する変数(この場合>P)の個別具体値として設定
され、ブロック1205で先のノードが現ノードにな
る。再びブロック1202に戻り、次の要素comesが取
出され、ブロック1203でcomesが現ノードの定数特
徴属性に含まれることが分り(第1G図の出発ノードの
すぐ下の○印ノードからcomesの枝が出ていることから
分かり)、ブロック1206で、対応する枝の先のコー
ド(第1G図の3段目の右端のノード)に現ノードが移
り、再び1202に戻り、次の要素fromを取り出す。以
下、同様の処理の反復により、第1G図右端のパスの最
下端の◎印のノードが現ノードとなり、ブロック120
7に入る。このノードの終端属性は(comes from Par
is)の識別コードであり、空でないから終端ノードであ
り、ブロック1209に進む。
さて、1209で、この終端属性、つまり(comes from
Paris)の識別コード(共通部コード735の値)が取
出される。同様に個別具体値(−つまり変数)に対応す
る部分の定数値も取出される。以上が、第11図のブロ
ック1101つまり、事実のフィルタリングの結果とし
て取出されるものである。次に、取出した共通部コード
に対する連想項の事実属性に個別具体値を設定する(ブ
ロック1102)。即ち、まず、取出した共通部コード
(の値)を持つ共通部(第2図の230)を取出し、そ
の連想項属性(232)から共通部連想項リスト235
を取出す(1301)。さらに、このリストの要素(連
想項236)が指す全ての項(220)に対して、その
事実属性226の指す具体値リスト248に、上記の個
別具体値(本例ではKate)を設定する(第13図の13
06)。以上を繰返すことにより、連想ネット第1E図
の中空の円内に第1D図の事実が第1G図の連想フィル
タを用いて組込まれ第1F図の様に事実を(円内に)組
込んだ連想ネットを作成できる。
第13図は、初期事実に対応する事実属性226の値と
して、具体値列249を組込むための処理(事実属性設
定処理)である。
ブロック1301では、事実のフィルタリング処理の結
果が空でなければ、共通部の項連想属性232の値、つ
まり、(共通部)連想項リスト235を取出す。結果が
空なら事実属性設定処理を終了する。次に、(共通部)
連想項リスト235から連想項236を先頭から順に取
出し(ブロック1302)、以下の処理を行う。
まず、事実のフィルタリング処理の結果である事実の個
別具体値と上記の連想項236の個別構造240との照
合をとる。個別構造240の要素243が変数の時は、
対応する位置の個別具体値の要素が、その変数に対する
変数具体値として設定される(ブロック1303)。照
合が不成功ならブロック1302に戻り、次の連想項を
とり出す照合が成功すれば、上記の連想項236の変数
属性227の値が空かどうかをチェックし(ブロック1
304)、空なら、さらに事実属性226が空かどうか
をチェックする(ブロック1308)。空でなければ、
すでに、連想ネットに組込み済みの事実であるから、ブ
ロック1302に戻り、次の連想項の処理を行う。空で
あれば、上記の連想項の事実属性を空以外、例えばtに
設定し(ブロック1309)。同じく規則連想属性22
2の値である連想規則リスト250を、候補規則リスト
260に結合し(ブロック1307)、ブロック130
2に戻る。
ブロック1304で、連想項の変数属性値が空でなけれ
ば、ブロック1303で設定した変数具体値(列)が連
想項の事実属性226の値(具体値リスト248)の要
素である具体値列249のどれかに一致するかをチェッ
クし(ブロック1305)、一致すれば、ブロック13
02に戻り、次の連想項の処理を行う。一致しなけれ
ば、変数具体値(列)を具体値リスト248に追加し、
ブロック1307の処理を行う。
第14図は、推論実行プロセッサ102の処理方式を示
す。
推論の実行のためには、まず、候補規則リスト260が
空かどうかをチェックし(ブロック1401)、空なら
推論実行処理を終了する。空でなければ、候補規則リス
ト260の要素である候補規則261の中から最初に実
行する規則を選択する(ブロック1402……競合解消
処理)。この場合、不変属性が設定されている規則は、
推論結果が新事実の生成や削除など、環境の変化に寄与
しないので選択の対象外とする。次に、選択された規則
を実行し(ブロック1403)、その結果が変化(上記
の環境の変化に寄与する場合)なら、候補規則261で
不変属性が設定されているものは、すべてその不変属性
を解除し(ブロック1404)、ブロック1401へ戻
る。結果が不変なら、実行した規則に不変属性を設定し
(ブロック1405)ブロック1401へ戻る。結果が
不成立(規則の条件が成立しない場合)、実行した規則
261を、候補規則リスト260から削除し(ブロック
1406)、やはり、ブロック1401へ戻る。結果が
“停止”なら、本処理(推論実行処理)を終了する。
第15図は規則実行処理(ブロック1403)を示した
ものである。まず、結果を“不成立”にし(ブロック1
500)、次に実行規則の条件部211が満足されるか
どうかをチェックする。変数に対しては具体値が矛盾な
く決めることができるかをチェックする(以上ブロック
1501)。条件が不成立なら、本処理(規則実行処
理)を直ちに終了する。条件が成立すれば、行動部21
2を実行し(ブロック1502)、その結果が“不変な
ら”本処理の結果を“不変”とし(ブロック150
5)、ブロック1501に戻り、条件部211が、異な
る具体値の組に対して成立するかをチェックする。行動
部実行結果が“停止”なら規則実行処理結果を“停止”
に設定し(ブロック1503)、“変化”なら本処理の
結果を“変化”にして(ブロック1504)、規則実行
処理を終了する。
第16図は実行条件判定処理(ブロック1501)を示
す。
実行規則の条件部211の先頭から順に条件項213を
取出し(ブロック1601)、取出した条件項213の
事実属性226をチェックし(ブロック1602)、そ
の値がt(つまり変数を含まない項でしかも条件が成立
する)なら、次の条件項を取出すためにブロック160
1に戻る。事実属性の値が空なら、条件が不成立である
から、条件判定処理の結果を不成立に設定して(ブロッ
ク1606)、本処理、すなわち、実行条件判定処理を
終了する。事実属性の値が、tや空以外であれば、その
要素、つまり具体値列249を順次取出し(ブロック1
603)、取出した具体値列と変数属性227の値(変
数列241)との照合をとる(条件項変数部照合処理…
…ブロック1604)。照合が成功すれば、すなわち変
数の具体値が矛盾なく定まれば(詳細は第17図)、次
の条件項を調べるためにブロック1601に戻り、照合
が成功しなければ、次の具体値を取出すために、ブロッ
ク1603に戻る。ブロック1603において、次に取
出すべき具体値列がなくなれば、ブロック1606の処
理を行う。ブロック1601で、次に取出すべき条件項
がなくなれば、条件判定処理の結果を“成立”に設定し
て(ブロック1605)、本処理を終了する。
第17図は、条件項変数部照合処理(ブロック160
4)を示す。
変数列241から、その要素である変数242を順番に
取出し(ブロック1701)、取出した変数1702の
値が、同じ規則内の前の条件項との照合においてすでに
定まっているか(つまり既束縛変数かどうか)をチェッ
クし(ブロック1702)、未束縛なら該変数を未束縛
変数列に加え、具体値列の対応要素を束縛値とし(ブロ
ック1703)、次の変数を処理するためにブロック1
701に戻る。既束縛変数に対しては、束縛値と具体値
列249の対応要素が一致するかどうかをチェックし、
一致すればブロック1701に戻り、一致しなければ、
未束縛変数列の変数をすべて未束縛にし、未束縛変数列
をクリアし(ブロック1705)、本処理(条件項変数
部照合処理)の結果を“照合不成功に設定し(ブロック
1806)、本処理を終了する。
さて、ブロック1701において、変数列241から取
出すべき要素がなくなれば、本処理の結果を“照合成
功”に設定して(ブロック1707)、本処理を終了す
る。
第18図は、行動部実行処理(第15図のブロック15
02)を示す。
まず、本処理(行動部実行処理)の処理結果を、“不
変”に初期設定する(ブロック1801)。つぎに、実
行規則の行動部212の行動項215〜217を先頭か
ら順番に取出す(ブロック1802)。取出した行動項
が追加項216かどうかチェックし(ブロック180
3)、追加項なら、追加処理を行う(ブロック180
4)。次に、行動項が削除項215かどうかをチェック
し(ブロック1805)、もしそうなら削除処理を行な
い(ブロック1806)、そうでないなら停止項かどう
かをチェックし(ブロック1807)、停止項217な
ら行動部実行処理の結果を“停止”に設定して、(ブロ
ック1809)本処理を終える。行動項が以上のいずれ
の項でもなければ、該当する処理を行ない(ブロック1
808)、ブロック1802に戻り次の行動項の処理を
行う。ブロック1804,1806の処理の後も、同様
にブロック1802に戻る。ブロック1802で取出す
べき行動項がなくなれば、変数242の束縛値をクリア
し(ブロック1810)、本処理を終了する。
第19図は、追加処理(第18図のブロック1804)
を示す。
まず、追加項216の事実属性226の値をチェックす
る(ブロック1900)。t(追加項は変数を含まず、
かつ既知事実である。)なら、直ちに追加処理を終了す
る。tでなく、かつ、空でもないなら、追加項の変数の
具体値が、具体値リスト248の要素のどれかと一致す
るかをチェックし(ブロック1901)、一致すれば追
加項目は既知事実であるから追加処理を終了し、不一致
なら、またはブロック1900の結果が空なら、追加項
の個別構造240でその変数や関数要素をその具体値で
置き換えたもの(個別構造具体値と呼ぶ)、および、連
想項リスト244を取出す(ブロック1902)。
次に、取出した連想項リスト244からその要素である
連想項245を順次取出す(ブロック1903)。取出
すべき連想項がなくなれば、直ちに追加処理を終了す
る。次のブロック1904では、取出した連想項は定数
からのみ構成されるかをチェックし、そうでなければ、
ブロック1905、そうならばブロック1909の処理
を行なう。ブロック1905では、追加項216の個別
構造具体値(ブロック1902で取出したもの)とブロ
ック1903で取出した連想項245の個別構造240
の照合をとる。照合が不成功なら、ブロック1903に
戻る。照合が成功すれば、取出した連想項245の事実
属性226の値(具体値列リスト248)に、連想項2
45の変数242の値の列(具体値列249)を追加す
る(ブロック1906)。ブロック1909では、追加
項216の個別構造具体値(ブロック1902で取出し
たもの)と、連想項245の個別構造240が一致する
(照合は変数を含む場合で、ブロック1905で述べた
照合は、定数部が一致すれば良く、変数部はチェックし
ないもの。従って、変数を含まない“照合”の意味で、
本ブロックでは“一致”とした。)かどうかチェックす
る。不一致ならブロック(903に戻る。一致すれば、
連想項245の事実属性226の値248を、真値(例
えばt)とする(ブロック1910)。
ブロック1906,1910の処理に続いて候補規則選
択処理(ブロック1907)を行う。ここでは、連想項
の規則連想属性222の値の要素、つまり連想規則25
1のうち、その条件部221のすべての条件項213の
事実属性226が(空以外の)値を持つものだけを、候
補規則リスト260に加える。詳細は、第20図を用い
て、後で説明する。本ブロックの処理が終了すると、行
動部実行結果を“変化”にセットし(ブロック190
8)、ブロック1903の処理に戻る。
第20図は、候補規則選択処理(第19図のブロック1
907)を示す。
まず、連想項245の規則連想属性値、つまり、連想規
則リスト250を取出す(ブロック2001)。つぎ
に、この連想規則リスト250の先頭から順に連想規則
251を取出す(ブロック2002)。すべての連想規
則の処理が終了すれば、候補規則選択処理(本処理)を
終了する。取出した連想規則251に対しては、これが
すでに候補規則リスト260に含まれているかどうかを
チェックする(ブロック2003)。含まれておれば、
ブロック2002に戻り、次の連想規則の処理を行う。
含まれてなければ、連想規則の条件項213のうち、そ
の事実属性226の値が空のものがないかをチェックす
る(ブロック2004)。空のものがなければ、この連
想規則を候補規則リスト260に追加し(ブロック20
05)、ブロック2002に戻る。空のものがあれば、
何もしないでブロック2002に戻る。
第21図は、削除処理(第18図のブロック1806)
を示す。
まず、削除項215の個別構造240で、その変数をそ
の(具体)値で置換えたもの(個別構造具体値)を取出
す(ブロック2101)。さらに、削除項215の連想
項リスト244も取出す(ブロック2102)。
次に、連想項リスト244から、その要素である連想項
245を先頭から順次取出す(ブロック1903)。取
出して処理すべき連想項がなくなれば削除処理を終了す
る。取出した連想項245に対しては、これが定数だけ
を含むかどうかをチェックし(ブロック2104)。
“NO”ならブロック2105、YESならブロック2
109の処理を行う。
ブロック2105では、削除項215の個別構造具体値
(ブロック2101で取出したもの)と連想項245の
個別構造240の照合をとる。照合が成功しなければ、
ブロック2104に戻り、次の連想項の処理を行なう。
照合が成功すれば、連想項245の事実属性値(つまり
具体値列リスト248)から、この連想項の変数242
の値の列(具体値列249)を削除する(ブロック21
06)。その結果、この連想項245の事実属性値が空
になれば、ブロック2107、空にならなければ、ブロ
ック2104の処理を行なう。
ブロック2109では、削除項215の個別構造具体値
と、取出した連想項245の個別構造240が一致する
かどうかをチェックする。一致しなければ、ブロック2
104に戻り、次の連想項の処理を行なう。一致すれ
ば、連想項245の事実属性226の値を空にし(ブロ
ック2110)。ブロック2107の処理を行なう。
ブロック2107では、候補規則リスト260から、連
想項245の規則連想属性222の値の要素(つまり連
想規則251)を全て削除する。続いて、ブロック21
08において、行動部実行結果を“変化”に設定し、ブ
ロック2103の処理に戻る。
〔発明の効果〕
本発明によれば、変数の値の矛盾などを無視した条件部
のチェックをまず行なうことにより、実行候補規則を絞
ることができるので、すべての変数の組合わせに対して
条件部が成立するかどうかをチェックして条件部が満足
されないような、組合わせ論的に急増するオーバヘッド
を効率良く抑止でき推論効率・性能が向上する。
このオーバヘッドを定量的に見積ると、 Θ=I Nv・T・N ただし N…実行候補規則に加えられたが、条件を満
足しないことが判明した規則の平均数 N…上記規則内の変数の平均数 I…上記規則内の変数の具体値の平均数 T…変数の組合わせの一つに対して条件部を満足する
かチェックする時間の平均値 T=10ミリ秒,N=3,I=3,N=500
とした場合Θ=135秒,これがN=5,I=5と
なるとΘ=15000秒となり急激に増大し、実用に耐
えられない。実験したところ、従来の方式(カウント方
式)でN=550であったが、本発明の方式ではN
=60となり、約10倍、オーバヘッドが減少した。
(Nを絞るための時間は、変数の値の矛盾を無視した
テストであるから充分小さいと考えられる。実験でも1
秒以下であり、充分無視できる。) 連想ネットを用いると、条件項の属性として事実が記憶
されるので上記テストの処理効率が良い。
なお、上述の説明では推論について述べたが、一般に情
報処理にも適用できることは言うまでもない。
【図面の簡単な説明】
第1A図は本発明の方法を実現するためのシステム構成
図、第1B図は本発明の方法の計算機システム上での実
現構成図、第1C図はルール集合の1例を示す図、第1
D図は初期事実の1例を示す図、第1E図は初期事実に
もとづく連想ネットワークの1例を示す図、第1F図は
第1D図の事実を第1E図上にはめ込んだ状態を示す
図、第1G図は連想フィルタの具体例を示す図、第2図
は連想ネットの構成図、第3図はコードリストのデータ
構造を示す図、第4図は連想ネット共通部のデータ構造
を示す図、第5図は連想フィルタの構成図、第6〜9図
は連想ネットの作成の流れ図、第10図は連想フィルタ
の作成を示す図、第11〜13図は事実組込み処理を示
す図、第14〜21図は推論実行処理の流れ図である。 251……連想規則、213……条件項、226……事
実属性、260……候補規則集合又は候補規則リスト、
236……連想項、242……変数、222……規則連
想属性、ブロック2004……変数の値の矛盾は無視し
て条件部の事実属性をチェックする処理、ブロック21
07……削除後の事実属性が空の連想項の規則連想属性
の全要素を候補規則集合から削除する処理。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】その要素として定数の他に変数も含みう
    る、条件項と行動項を持つ、少なくとも1個の規則と事
    実が与えられた時、該規則に従って事実を変更する推論
    サイクルを繰返すことにより情報処理を行う計算機シス
    テムにおいて、事実が追加されたら、該事実に関連する
    条件項を見つけ、該事実を該条件項の事実属性として登
    録し、該条件項を含む規則の条件部のすべての条件項に
    対して、その事実属性が空か否かをチェックし、どの条
    件項の事実属性も空でない規則だけを、さらに完全にチ
    ェックするための実行候補リストに加え、該リストに加
    えられた規則にたいしてのみすべての条件項を変数の一
    致チェックも含めてチェックする完全条件チェックをお
    こなうことを特徴とする計算機システムの高速処理方
    法。
  2. 【請求項2】前記完全条件チェックをおこなう処理は、
    チェックを行なった結果、条件部が満足されないことが
    判明した規則を実行候補リストから削除する処理を含む
    特許請求の範囲第1項記載の計算機システムの高速処理
    方法。
  3. 【請求項3】前記削除する処理は、削除されるべき事実
    に対応する条件項の事実属性から該事実を削除し、該条
    件項の事実属性が空か否かをチェックし、空なら、該条
    件項を条件部に含む規則を前記実行候補リストから削除
    する処理からなる特許請求の範囲第2項記載の計算機シ
    ステムの高速処理方法。
  4. 【請求項4】前記登録する処理は、(イ)規則の行動部
    のうちの追加項または削除項によってそれぞれ追加又は
    削除される事実にもとづき満足されるか否かを決定する
    条件項を連想項として前記追加項または削除項の属性と
    して登録する処理と、(ロ)該条件項を条件部に含む規
    則を前記追加項または削除項の属性として登録する処理
    と、(ハ)該追加項または削除項によってそれぞれ追加
    または削除される事実がその連想項である前記条件項を
    含む条件部のすべての条件項の変数値と矛盾しないか、
    どうかを決める追加項または削除項内の要素に対応する
    前記連想項の変数名とその値を前記連想項の個別部属性
    として登録する処理とにより、事実を前記追加項または
    削除項、および条件項の各項の事実属性として分散して
    保持できるようにあらかじめ作成した情報ネットワーク
    である連想ネットワークに前記各項の属性として与えら
    れた初期事実を登録する処理からなる特許請求の範囲第
    1項記載の計算機システムの高速処理方法。
JP58177959A 1983-09-28 1983-09-28 計算機システムの高速処理方法 Expired - Lifetime JPH0616267B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP58177959A JPH0616267B2 (ja) 1983-09-28 1983-09-28 計算機システムの高速処理方法
DE8484111496T DE3485999T2 (de) 1983-09-28 1984-09-26 Hochgeschwindigkeitverarbeitungssystem fuer rechneranlage.
US06/654,487 US4779208A (en) 1983-09-28 1984-09-26 Information processing system and method for use in computer systems suitable for production system
EP84111496A EP0137414B1 (en) 1983-09-28 1984-09-26 High speed processing system for computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58177959A JPH0616267B2 (ja) 1983-09-28 1983-09-28 計算機システムの高速処理方法

Publications (2)

Publication Number Publication Date
JPS6072032A JPS6072032A (ja) 1985-04-24
JPH0616267B2 true JPH0616267B2 (ja) 1994-03-02

Family

ID=16040069

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58177959A Expired - Lifetime JPH0616267B2 (ja) 1983-09-28 1983-09-28 計算機システムの高速処理方法

Country Status (1)

Country Link
JP (1) JPH0616267B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62212830A (ja) * 1986-03-14 1987-09-18 Nec Corp 推論装置
JPS633334A (ja) * 1986-06-23 1988-01-08 Hitachi Zosen Corp 前向き推論方式
JPS633333A (ja) * 1986-06-23 1988-01-08 Hitachi Zosen Corp 知識工学システム用推論処理方式
JPS6367626A (ja) * 1986-09-09 1988-03-26 Nec Corp 連想型知識処理方式

Also Published As

Publication number Publication date
JPS6072032A (ja) 1985-04-24

Similar Documents

Publication Publication Date Title
JP2726568B2 (ja) 文字認識方法及び装置
US7490078B2 (en) Stream data processing system and method for avoiding duplication of data process
US5655129A (en) Character-string retrieval system and method
US4779208A (en) Information processing system and method for use in computer systems suitable for production system
WO2020136959A1 (ja) マンガ生成システムおよびマンガ生成方法
KR950012381B1 (ko) 퍼지 추론 룰의 재배열방법, 코드화방법 및 그 룰에 따른 퍼지추론 처리방법
JPH08137873A (ja) 文書共通論理情報編集装置
CN115168615A (zh) 结合数据可视化的知识图谱大数据处理方法及系统
JPH0616267B2 (ja) 計算機システムの高速処理方法
JPH0652221A (ja) 固有名詞の自動抽出方式
JPH0616266B2 (ja) 計算機システムの高速処理方法
CN116301824B (zh) 一种文档指导的api使用序列搜索方法
JP2002202973A (ja) 構造化文書管理装置
JP7157245B2 (ja) ファイル管理装置、ファイル管理方法、及びプログラム
CN112182235A (zh) 一种构建知识图谱的方法、装置、计算机设备及存储介质
JP2982244B2 (ja) 文字認識後処理方式
JP2585951B2 (ja) コードデータ検索装置
JP3249654B2 (ja) 活字文字認識用辞書の作成方法
JP2002297603A (ja) 情報抽出方法および構造化文書管理装置およびプログラム
JP2591758B2 (ja) 複数パターンの検索方法
JPH08297579A (ja) テキストデータにおける区切り語処理方式
CN121029052A (zh) 一种基于大语言模型的自然语言网页交互方法
CN115879460A (zh) 面向文本内容的新标签实体识别方法、装置、设备及介质
CN119441395A (zh) 一种基于大模型的问答方法、装置及设备
JPH08110890A (ja) 入力解釈装置