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

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

Info

Publication number
JPS6072031A
JPS6072031A JP58177955A JP17795583A JPS6072031A JP S6072031 A JPS6072031 A JP S6072031A JP 58177955 A JP58177955 A JP 58177955A JP 17795583 A JP17795583 A JP 17795583A JP S6072031 A JPS6072031 A JP S6072031A
Authority
JP
Japan
Prior art keywords
block
associative
rule
term
fact
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
JP58177955A
Other languages
English (en)
Other versions
JPH0616266B2 (ja
Inventor
Setsuo Tsuruta
節夫 鶴田
Shoji Miyamoto
宮本 捷二
Makoto Nomi
能見 誠
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 JP58177955A priority Critical patent/JPH0616266B2/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 JPS6072031A publication Critical patent/JPS6072031A/ja
Publication of JPH0616266B2 publication Critical patent/JPH0616266B2/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)

Abstract

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

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、経験則や自然の法則と初期事実から新事実や
仮説を推論する(プロダクション)システムの高速制御
方式に係わり、特に、大規模で時間がかかりすぎたり、
リアルタイム性を要求される場合に好適な、高速推論の
だめの計算機システムの高速処理方式に関する。
〔発明の背景〕
規則と事実から推論を行なうのに、推論の各サイクル毎
に全ての規則と事実の照合をとって実行規則を決めるの
がプロダクションシステムであるが、規則と事実の増大
と共に推論時間が爆発的に増大し実用規模では有用でな
い。これを防止するだめ、規則や事実のコード化とその
インデキシングを行なっている。特に、弁別ネットを用
いた高速方式が効率・適用性において優れているが、規
則の各項目によっては弁別ネットのオーツくヘッドは大
きく、リアルタイムシステムへの実用化上問題がある。
〔発明の目的〕
経験則や自然法則などのルールをプロダクションメモリ
に、事実や仮説をワーキングメモリに持ち、条件部の内
容がワーキングメモリに存在するルールを順次適用する
ことにより計算機に推論を行ワスプロダクションシステ
ムが存在する。本発明の目的はプロダクションシステム
の推論速度を、実用上充分高速に、しかも、従来のよう
にルールや条件の数、事実数に依存しない処理方式を提
供することにある。
〔発明の概要〕
規則の条件部と結論部を調べて、どの条件が成立すると
どの規則が起動され、結論部の実行により、どの規則の
条件が新たに成立したシネ成立になったりするのかの関
係をネットワーク構造にして登録しておく。ただし、規
則に変数を含む場合の処理を行うために、変数の具体値
によシ照合する可能性のある条件項と結論部をグループ
化し、その代表を連想環とし、連想環の個別部により事
実を貯えるようにし、連想環を核に上記ネットワークを
構成した。
〔発明の実施例〕
以下、本発明の一実施例を、ME 1〜第15図により
説明する。
第1A図は、本発明の方式を実現するだめのシステム構
成である。
連想ネット作成プロセッサ100は、規則ファイル10
3から、規則を取出し、規則の起動条件やその起動が他
の規則の起動や推論に及ぼす影響を分析し、その結果を
連想ネット(但し、事実組込み前のもの)106として
出力する。また、初期事実を連想ネットに効率良く組込
むための連想フィルタ105を作成する。初期事実組込
みプロセッサ101は、初期事実ファイル104から事
実を取出し、連想ネット106の該当場所に組込む。推
論実行プロセッサ102は、連想ネット106をベース
に、高速推論を行ない推論結果107を出力する。
第1B図は、本発明の方式の計算機システム上での実現
構成図である。
連想ネット作成プロセッサ1001初期事実組02 込みプロセッサ101、推論実行プロセッサ、連想フィ
ルタ105は、推論プログラム151として、また、連
想ネット106は推論用知識152として、それぞれC
PU 150に置かれる。
コンソールディスプレー153(キーボード。
コンソールタイプライタでも良い)から、規則や初期事
実を入力する。実際のシステムでは、初期事実の入力は
、センサーにども用いることも可能である。推論の実行
(あるいは連想ネット106の作成など推論の準備)な
ど推論制御指令16(Jもコンソールディスプレー15
3から入力する。
推論結果は、(ライン)プリンタ154やCB、T15
5、あるいは、ディスクやM/Tなどの補助記憶装置1
56に出力する。推論制御指令160 ・により、推論
結果に至るまでの推論経過の出力も可能である。
補助記憶装置156には、規則ファイル103、初期事
実ファイル104、連想ネット106を保存し、エラー
回復や前処理に利用できる。
第2図は高速に推論を実行するだめの連想ネット106
の構成を示す。
200は、規則のリストであり、その要素201はコー
ド化された規則210であり、条件部211と行動部2
12から成る。条件部、行動部の各項220もコード化
されており、それぞれ条件項213、行動部215〜2
17から構成される。
行動部は、さらに、削除項215、追加項216、停止
項217などに分れる。
上記の各項220は、項コード221、項を条件部に持
つ規則(連想規則251)のリスト250を値として持
つ規則連想属性222、共通の型の項(連想項245)
のリスト(連想項リス)244)を、値として持つ項連
想属性223、連想項間の共通部230を値として持つ
共通部属性224、個別な部分(個別構造240その要
素は個別要素243)を値として持つ個別部属性225
、項が既知事実かどうかを示す事実属性226項が含む
変数(関数でも良い。以後同様)242を順番に並べた
変数列241を値に持つ変数属性227、項の内容24
6(その要素音247に示す。)を値として持つ内容層
性228、から構成される。
具体値(列)す・スト248は、項の変数の具体値の列
(具体値列249)のリストであり、項が変数242を
含む時の事実属性226の値である。
共通部230は、そのコード235と、その内容である
共通構造(その要素である共通要素234は、項の要素
のうちの個別要素243に対応するものを−”(アンダ
ーライン)に変換し、他の項の要素はそのままにしたも
の)233を匝として持つ構造属性231と、この共通
部を持つすべての項(共通部コード236)のリストで
ある共通部コードリスト235を直として持つ連想項属
性232とから成る。
候補規則リスト260は、(実行)候補規則261のリ
ストである。
第3図は、コードリストのデータ構造を示す。
すなわち、コード化した項220を登録するコードリス
ト300は、項の内容221と対応するコード246か
ら成るコードベア301を要素とするリストである。項
のコード化(後述。ブロック602)に用いる。
第4図は、連想ネット共通部のデータ構造である。本デ
ータ構造は、連想ネット共通部作成(ブロック603゜
後述)の途中段1者のものである。
すなわち共通部候補401は、共通部の候補であり、連
想ネット共通部作成処理終了時点以降は、共通部230
と一致する。同様に、共通部リスト400は、共通部コ
ードは共通部候補401、作成後は共通部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)。取出した項は、照合の高速化のだめ
にコード化して、連想ネット]06の規則210に埋込
むとともに、規則連想属性222を設定する(ブロック
602)。さらに、連想ネノl−106の共通部230
を作成する。以上の処理を規則ファイル103の全ての
規則の項に対して行なった後、連想ネツl−106の個
別構造240を作成する(ブロック604)。また、連
想フィルタ105を作成する(ブロック605)。
第7図は、項をコード化した規則210を作成し、規則
連想属性222を設定するだめの処理である。
ブロック701では、ブロック601で取出した規則の
項が、コードリス)300に既登録かどうかをチェック
する。既登録なら、登録されている該コードを現コード
とする(ブロック7o2)。
未登録なら、項の内容246と新コード番号のペア(コ
ードベア301)を、コードリスト300に追加しくブ
ロック703)、現コード番号の値を新コード番号の値
に設定し、新コード番号を更新する(ブロック704)
。ブロック705では、現コード番号にユニークに対応
する環コード221を持つ項220の変数桿性227と
して、取出した項が含む変数242を先頭から順にリス
ト結合したもの(変数リス)241)を、内容属性22
8として、項の′内容246を設定する。
さて、ブロック702あるいは、ブロック705の処理
が終了したら規則210の項220の環コード221を
現コードとし、条件部211、もしくは行動部212か
らネットワークを張って、連想ネット106の一部とす
る(ブロック706)。
さらに、処理中の項が、条件部213なら、その規則連
想属性222の値、つまり連想規則リスト250の要素
251として、1項が属する規則の規則コード214を
追加する。
第8図は、連想ネット106の項の共通部230を抽出
、作成するための処理フローである。
ブロック801では、ブロック601で取出した規則の
項の変数(関数を含む、以後同様)を−に変えたものを
(共通部)候補項401とする。
この候補項のコート責将来の共通部コード)402は、
たとえば、取出した項のコードがfiのときaiとする
。次に、ブロック802では、候補項4010項連想属
性404として、上記の候補項のコード402を設定す
る。
さて、ブロック803では、(共通部)候補項401と
、共通部リスト400に登録ずみの各候補項との照合を
とり、既登録かどうかのチェックを行なう。ただし、こ
の照合では、−はどの要素(定数、変数)とも照合が成
功するものとする。
既登録なら、まず、候補項と照合した共通部リスト内の
候補項の一以外の要素406のうち、候補項の−と照合
した要素を−に置替えたものを、改めて候補項とする。
この候補項のコードは、上記の照合した共通部リスト内
の候補項のコード402とする(ブロック804)。次
に、この新しい候補項の連想項リストに、もとの候補項
の連想項リストを結合する(ブロック806)。さらに
、もとの候補項と照合した共通部リスト内の候補項を共
1m部リスト400から削除する。ブロック803から
ブロック806までの処理を、ブロック803の処理結
果が既登録である間中くシ返し、結果が未登録になれば
、連想ネット106の共通部リスト400に候補項40
1を追加して(ブロック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として、ブロック9
01で取出した共通部230のコード235を設定しく
ブロック905)、ブロック903の処理に戻る。
第10図は、初期事実104を連想ネット106に組込
むだめの連想フィルタ105を作成するための処理方式
を示す。
ブロック1001では連想フィルタ105のノードに与
える番号(新ノード番号)を1に設定する。
次に、共通部リスト400から順次、その要素235を
取出す(ブロック1002 )。取出す要素がなくなれ
ば処理を終了する。取出す要素があれば、まず、現在の
ノードを出発ノード(例えば、番号0のノード)とする
(ブロック1004)。次に、共通部230の要素23
4を順次取出す(ブロック1004)。ブロック100
6では、取出した要素234が、−(変数に対応)かど
うかをチェックしくブロック1006)、Yesなら、
現在のノード500の変数特徴属性502の値が空かど
うかを調らべ(ブロック1007 ) 、空なら、新ノ
ード番号を現ノードの変数特徴属性502として設定す
る(ブロック1008)。空でなければ、変数特徴属性
502の値を現ノードとする゛(ブロック1010)。
ブロック1006の処理結果がNOなら、ブロック10
04で取出した要素234が、現在のノード500の定
数特徴属性502に含まれるかどうかをチェックしくブ
ロック1011)、含まれなければ、取出した要素23
4と新ノード番号の対を現在のノードの定数特徴属性5
03に追加しくブロック1012 ) 、含まれれば、
マツチした定数特徴属性値505の要素506に対応す
るノード507を現在のノードとする。また、ブロック
1008.1012の処理が終了すれば、ブロック10
09において、新ノード番号のノードを現ノードにし、
新ノード番号を更新する。ブロック1009.1010
.1013の処理の後1004に戻り、共通部230の
要素234がなくなるまで、ブロック1006以下の処
理を繰返す。取出す要素がなくなると、現在のノード5
00の終端属性504に、ブロック1002で取出した
共通部230のコード235を設定する(ブロック1o
os)。
第11図は、初期事実104を連想ネット106に組込
むだめの処理を示す。
まず、初期事実ファイル104から事実を先頭から順に
取出しくブロック1100 ) 、取出す事実がある間
、以下の処理を行う。つまり、ブロック1101では、
事実を連想フィルタ105に通して、対応する共通部2
30と個別具体値を取出す(事実のフィルタリング処理
(第12図)。つぎに、この共通部230の連想項リス
ト235の中から、上で取出した個別具体値に、その個
別構造240が照合する連想項236を選択し、その事
実属性226に具体値列249を追加する(ブロック1
102)。
第12図は、事実のフィルタリング処理を示す。
まず、個別具体値(リスト)を空に設定し、さらに、現
在のノード500を出発ノード(ノード番号0)としく
ブロック1201)、ブロック1100で取出した事実
に対して、その要素(すなわち事実の文を構成する定数
や変数)を、前から順次取出す(ブロック1202)。
取出した要素に対して、それが、現在のノード500の
定数特徴属性値505に含まれるかどうかをチェック−
しくブロック1203)、含まれなければ、現在のノー
ドの変数特徴属性502の値が空かどうかをチェックし
くブロック1204)、空なら、事実フィルタリング処
理の結果に空を設定(ブロック1208)L、処理を終
了する。空でなければ、ブロック1202で取出した要
素を個別具体値(リスト)に追加する。この後、あるい
は、ブロック1203の処理結果がYesO時、前者で
は変数特徴属性502によって示される次ノードを、後
者では、取出した要素とその定数部508が一致する定
数特徴属性値505の要素の次ノード部509が示す次
ノードを現在のノード500とし、ブロック1202の
処理に戻る。ブロック1202で取出す要素がなくなれ
ば、現在のノード500の終端属性504が空かどうか
をチェックしくブロック1207 ) 、空でないこと
が確認できたら、事実のフィルタリング処理の結果とし
て、終端属性504の値(つまり共通部コード235)
と、個別具体値(リスト)を設定する(ブロック120
9)。終端属性504が空なら、事実のフィルタリング
処理の結果を空とする(ブロック12os )。
第13図は、初期事実に対応する事実属性226の値と
して、具体直列249を組込むための処理(事実属性設
定処理)である。
ブロック1301では、事実のフィルタリング処理の結
果が空でなければ、共通部の項連想属性232の値、つ
まシ、(共通部)連想環リスト235を取出す。結果が
空なら事実属性設定処理を終了する。次に、(共通部)
連想環リスト235か、ら連想環236を先頭から順に
取出しくブロック1302)、以下の処理を行う。
まず、事実のフィルタリング処理の結果でおる事実の個
別具体値と上記の連想環2360個別構造240との照
合をとる。個別構造240の要素243が変数の時は、
対応する位置の個別具体値の要素が、その変数に対する
変数具体値として設定される(ブロック1303 )。
照合が不成功ならブロック1302に戻り、次の連想環
をとり出す。
照合が成功すれば、上記の連想環23Gの変数属性22
7の値が空かどうかをチェックしくブロック1304)
、空なら、さらに事実属性226が空かどうかをチェッ
クする(ブロック1308)。空でなければ、すでに、
連想ネットに組込み済みの事実であるから、ブロック1
302に戻り、次の連想環の処理を行う。空であれば、
上記の連想環の事実属性を空風外、例えばtに設定しく
ブロック1309 )、同じく規則連想属性222の値
である連想規則リスト250を、候補規則リスト260
に結合しくブロック1307 ) 、ブロック1302
に戻る。
ブロック1304で、連想環の変数属性値が空でなけれ
ば、ブロック1303で設定した変数具体値(列)が連
想環の事実属性226の値(具体値リス)248 )の
要素である具体直列249のどれかに一致するかをチェ
ックしくブロック1305)、一致すれば、ブロック1
302に戻り、次の連想環の処理を行う。一致しなけれ
ば、変数具体値(列)を具体値リスト248に追加し、
ブロック1307の処理を行う。
第14図は、推論実行プロセッサ102の処理方式を示
す。
推論の実行のためには、まず、候補規則リスト260が
空かどうかをチェックしくブロック1401 ) 、空
なら推論実行処理を終了する。空でなければ、候補規則
リスト260の要素でおる候補規則261の中から最初
に実行する規則を選択する(ブロック1402・・・競
合解消処理)。この場合、不変属性が設定されている規
則は、推論結果が新事実の生−成や事実の削除など、環
境の変化に寄与しないので選択の対象外とする。次に、
選択された規則を実行しくブロック1403 )、その
結果が変化(上記の環境の変化に寄与する場合)なら、
候補規則261で不変属性が設定されているものは、す
べてその不変属性を解除しくブロック1404 ) 、
ブロック1401へ戻る。結果が不変なら、実行した規
則に不変属性を設定しくブロック1405)ブロック1
401へ戻る。結果が不成立なら(規則の条件が成立し
ない場合)、実行した規則261を、候補規則リスト2
60から削除しくブロック1406)、やはり、ブロッ
ク1401へ戻る。結果が“停止”なら、本処理(推論
実行処理)を終了する。
第15図は規則実行処理(ブロック1403 ]を示し
たものである。まず、結果を″不成立”にしくブロック
1500) 、次に実行規則の条件部211が満足され
るかどうかをチェックする。変数に対しては具体値が矛
盾なく決めることができるかをチェックする(以上ブロ
ック1501 )。条件が不成立なら、本処理(規則実
行処理)を直ちに終了する。条件が成立すれば、行動部
212を実行しくブロック15021.その結果が1不
変”なら本処理の結果を6不変″としくブロック150
5)、ブロック1501に戻り、条件部211が、異な
る具体値の組に対して成立するかをチェックする。
行動部実行結果が6停止”なら規則実行処理結果を6停
止”に設定しくブロック1503)、”変化”なら本処
理の結果を1変化”にして(ブロック1504)、規則
実行処理を終了する。
第16図は実行条件判定処理(ブロック15011を示
す。
実行規則の条件部211の先頭から順に条件部213を
取出しくブロック1601)、取出した条件部213の
事実属性226をチェックしくブロック1602) 、
その値がt(つまり変数を含まない項でしかも条件が成
立する)なら、次の条件部を取出すためにブロック16
01に戻る。事実属性の値が空なら、条件が不成立であ
るから、条件判定処理の結果を6不成立#に設定して(
ブロック1606)、本処理、すなわち、実行条件判定
処理を終了する。事実属性の値が、tや全以外であれば
・その要素、つまり具体直列249を順次取出しくブロ
ック1603]、取出した具体直列と変数属性227の
値(変数列241)との照合をとる(条件項変数部照合
処理・・・ブロック1604]。照合が成功すれば、す
なわち変数の具体値が矛盾なく定まれば(詳細は第17
図)、次の条件部を調べるためにブロック1601に戻
り、照合が成功しなければ、次の具体値を取出すために
、ブロック1603に戻る。ブロック1603において
、次に取出すべき具体直列がなくなれば、ブロック16
06の処理を行う。ブロック1601で、次に取出すべ
き条件部がなくなれば、条件判定処理の結果を1成立”
に設定して(ブロック1605) 、本処理を終了する
第17図は、条件項変数部照合処理(ブロック1604
 )を示す。
変数列241から、その要素である変数242を順番に
取出しくブロック1701)、取出した変数1702の
値が、同じ規則内の前の条件部との照合においてすでに
定まっているか(つまり既束縛変数かどうか)をチェッ
クしくブロック1702)、未束縛なら該変数を未束縛
変数列に加え、具体直列の対応要素を束縛値としくブロ
ック1703)、次の変数を処理するためにブロック1
701に戻る。
既束縛変数に対しては、束縛値と具体直列249の対応
要素が一致するかどうかをチェックし、一致すればブロ
ック1701に戻り、一致しなければ、未束縛変数列の
変数をすべて未束縛にし、未束縛変数列をクリアしくブ
ロック1705 ) 、本処理(条件項変数部照合処理
)の結果を1′照合不成功”に設定しくブロック170
6) 、本処理を終了する。
さて、ブロック1701において、変数列241から取
出すべき要素がなくなれば、本処理の結果を“照合成功
”に設定して(ブロック1707)、本処理を終了する
第18図は、行動部実行処理(第15図のブロック15
02)を示す。
まず、本処理(行動部実行処理)の処理結果を、”不変
”に初期設定する(ブロック1801 )。つぎに、実
行規則の行動部212の行動部215〜217を先頭か
ら順番に取出す(ブロック1802)。
取出した行動部が追加項216かどうかチェックしくブ
ロック1803 ) 、追加項なら、追加処理を行う(
ブロック1804 )。次に、行動部が削除項215か
どうかをチェックしくブロック1805)、もしそうな
ら削除処理を行ない(ブロック1806)、そうでない
なら停止環かどうかをチェックしくブロック1807’
J 、停止環217なら行動部実行処理の結果を1停止
”に設定して(ブロック1809)本処理を終える。行
動部が以上のいずれの項でもなければ、該当する処理を
行ない(ブロック1808) 、ブロック1802に戻
り次の行動部の処理を行う。ブロック1804.180
6の処理の後も、同様にブロック1802に戻る。ブロ
ック1802で取出すべき行動部がなくなれば、変数2
42の束縛値をクリアしくブロック1810 )、本処
理を終了する。
第19図は、追加処理(第18図のブロック1804)
を示す。
まず、追加値216の事実属性226の値をチェックす
る(ブロック1900)。t(追加項は変数を含まず、
かつ既知事実である。)なら、直ちに追加処理を終了す
る。空なら、追加項の変数属性227が空かどうかをチ
ェックしくブロック1903 ’J、Yesなら追加項
の事実属性226にtをセットしくブロック1904)
、Noなら追加項の事実属性226に、変数属性227
の値、つまり変数列241の各要素242を具体化させ
たものC以下、変数の具体値と呼ぶ)を追加する(ブロ
ック1902)。ブロック1900の結果が、t、6る
いは空以外なら、追加項の変数の具体値が、具体値リス
ト248の要素のどれかと一致するかをチエンドしくブ
ロック1901) 、一致すれば追加項目は既知事実で
あるから追加処理を終了し、不一致なら、上述のブロッ
ク1902の処理を行う。
ブロック1902、ブロック1904の処理の後、行動
部実行結果を6変化”にセットしくブロック1905)
、追加項の規則連想属性222のf1α、つまり連想規
則リスト250を候補規則リスト260に結合する(ブ
ロック1906)。
次に、追加項の項連想属性223をとり出す(ブロック
1907)。項連想属性223が空なら追加処理を終了
し、空でないなら、その値の要素(連想環245)を順
次取出す(ブロック1908)。連想環245の処理が
全て終了すれば、追加処理を終了する。そうでなければ
、連想環の個別構造240と、追加項の個別構造(ただ
し変数は具体化されている。)との照合をとる(ブロッ
ク1909)、照合が不成功ならブロック1908に戻
シ次の連想環を取出す。照合が成功すれば、連想環の変
数の具体値(ブロック1902で説明したもの。)が連
想環の具体値IJスト248の要素249のどれかと一
致するかチェックしくブロック1910) 、どれかと
一致すれば、直ちに、どれとも一致しなければ、連想環
245の規則連想属性222の値、すなわち連想規則リ
ス)250を候補規則260に結合した(ブロック19
11)後、ブロック1908に戻91次の連想環の処理
を行なう。
第20図は、削除処理〔第18図のブロック1806)
を示す。
まず、削除環215の事実属性226の値をチェックす
る(ブロック2001)。空なら削除処理を終了する。
t(削除環は変数を含まず、しかも既知事実である。)
なら、削除環215の事実属性226を空にしく200
4)、さらに、候補規則リスト260から削除環215
の規則連想属性222の値、つまり連想規則リストの要
素251を全て削除する(ブロック2005)。ブロッ
ク2001の結果が、tや空以外なら、削除環215の
変数属性227の1直(変数列241)の各要素(変数
242)を具体化させたもの(変数の具体値。ブロック
1902で定義したものと同じ。)が、同じ削除環21
5の具体値リスト248の要素249のどれかと一致す
るかをチェックしくブロック2002 ) 、一致しな
ければ、削除処理を終了し、一致すれば、上記の変数の
具体値を、削除環215の事実属性226の値、すなわ
ち具体直列リストから削除する(ブロック2003)。
ブロック2003、ブロック2005の終了後、行動部
実行結果を、6変化2に設定する(ブロック2006)
次に、削除環215の項連想属性223をチェックする
(ブロック2007)。空なら、削除処理を終了する。
空でなければ、項連想属性の値、すなわち、連想環リス
ト244の要素(連想環245)を順次取出す(ブロッ
ク2008)。全ての連想環を取出せば、削除処理を終
了する。連想環に対しては、その個別構造240が、削
除環の個別構造(ただし変数要素を具体化したもの)と
照合する\ か(具体化してない変数は全ての定数と照合することを
前提とする。)をチェックしくブロック2009) 、
照合が不成功なら、次の連想環の処理をするためにブロ
ック2008に戻る。照合が成功した場合、連想環の変
数属性227が空かどうかをチェックしくブロック20
10 ) 、空でなければ、連想環の変数の具体値(ブ
ロック2062で定義したもの)が、同じ連想環の具体
値リスト248の要素249のいずれかと一致すればこ
れを削除して、いずれとも一致しなければ何もしないで
、ブロック2008に戻る。ブロック2010の結果が
空なら、連想環は定義しか含まないから、まず、連想項
の事実属性226を空にしくブロック2012)、次に
、候補規則リスト260から連想項の規則連想属性22
2の値、つまυ連想規則リスト250の要素251を全
て削除しくブロック2013)、ブロック2008に戻
る。
〔発明の効果〕
(1)する規則の実行後、次に起動される可能性のおる
規則群が事前に連想ネットに保存されているので、次に
実行する規則を探す時間が全体の規則数に依存しない。
(2)条件項が事実かどうかを事実属性として保持して
いるため、従来のように事実空間内の全事実と照合をと
る必要がない。つまり、条件項が事実かどうかのチェッ
クに要する時間が事実の数に依存することがない。この
ことと(1)とから、推論時間が規則X事実の数に独立
になる。規則数か数100事実数が50以上の実用的な
推論システムでは、このだめの効率向上は基本的なオー
バヘッドを考慮しても数百倍以上となる。
(3)マルチプロセッサや連想メモリ等の特殊なアーキ
テクチャ−の計算機、素子を用いていないので安価に高
速化が実現できる。また、ソフトウェアの移行性も高い
(4)規則の実行によって追加されたり削除されたシす
る事実に対しては、その定数要素などの共通要素の関連
は事前に分析し連想ネットに組み込んであるので、変数
要素の具体値(実行時に変数のとる値)だけ既存の事実
と照合すればよく、オーバヘッドの大半を占める照合時
間が短縮される。通常、事実を表わす文の変数要素は、
文の要素の1〜2割程度であるから照合時間は、5〜1
0倍に向上すると考える。
(5)定数要素や変数要素を文の任意の位置に書いた規
則、つまり、自然語的に表現された規則や事実を入力し
、推論結果もこの形式(自然語的な表現形式)で出力す
るので、マンマシンインタフェース、操作性が性能向上
と引き換えに損われることがない。
(6) 条件項で、その一部の変数要素が特別な定数値
と指定してるるものとないものを統合し、連想項グルー
プとして効率良く処理できるため、知識の記述・表現な
どシステムの操作性を損わずに効率の向上が可能である
(7)初期事実の連想ネットへの組込みは、連想フィル
タを用いたため、組込み時間は、(全規則の項の総数)
×(事実数]に比例する時間かかるはずのものが、その
対数時間に減少する。
(8)事実を削除した時・連想項のうち定数型のものを
条件部に持つ規Allだけを候補規則集合から削除する
ことにより、少ないオーバヘッドで無駄な規則の条件チ
ェック数を減らせるので全体の処理速度が向上する。
(9)実行した結果、新事実の追加や削除などによシ環
境を変化させることのなかった規則に不変属性を設定し
て実行を抑止することにより、無駄な条件チェック時間
、実行時間が減り、全体の処理速度が向上する。
αQ 実行の結果、新事実の追加や削除などにより環境
変化が生じた場合は、他の変数具体値に対して同じ規則
の実行を行うのでなく、候補規則集合をチェックして環
境の変化によシ先に実行すべき規則ができたらそれを実
行するので自然な競合解消処理が行える。
(11)候補規則集合(リスト)に、追加あるいは削除
すべき規則が、項を構成する変数の照合だけで決定でき
るため、不要となった定数部の照合時間だけ、全体の処
理効率が増す。
(呻事実は変数に対応する部分のみ、その変数の具体値
として記憶するため、項ごとに事実を記憶しても所要メ
モリは少なくて済む。
(V)連想フィルタにおいて終端ノート責最終状態)を
特に作成せず、ノードが終端と非終端の両属性を持てる
方式であるため、処理が簡単な上、メモリ効軍も良い。
(1+)不変属性((9)参照)を、他の規則が実行さ
れて環境が変化したらクリアすることは、その環境の変
化が不変属性を持つ規則の処理結果が、新環境を変化さ
せるかという複雑な処理を行うことなく、不変属性を持
つ規則の新環境での実行の機会を与える。
ur$行時に条件が成立しないことが判明した規則は、
候補規則集合から削除されるので、無駄な条件照合チェ
ックにより処理効率が低下することがない。
(1ω事実が追加されることによって規則の条件項のう
ち1つでも満足されれば、その規則を候補規則としく候
補規則集合に加え)、その規則の時 他の条件のチェックは実へに行なうため、全実行条件が
満足されないと候補規則に加えない方式と比べて(この
方式では、事実が削除された時の処理が複雑になる。)
簡単なチェックで候補規則が絞れるために全体の処理効
率が向上する。
いり)連想フィルタは共通項のみを識別すれば良いので
、同一状態(ノード)にある時、多種の変数を入力した
場合のような複雑な変数処理が不要であるため、処理が
簡単で処理効率が良い。
特に、連想フィルタは、事実の組込みなど多用され全体
の性能に影響を与えるので、その処理効率の向上は、シ
ステム全体の性能の向上に寄与する。
なお、上述した説明では推論について説明したが、上述
した方式は、一般の情報処理にも当てはまる。
【図面の簡単な説明】
第1図は、本発明を実現するシステムの一構成例の全体
図、第2図は連想ネットの構成図、第3図および第4図
は、それぞれコードリストおよび連想ネット共通部(作
成時)のデータ構造の一例を示す図、第5図は連想フィ
ルタの構成図、第6図は連想ネット作成処理フローを示
す図・第7〜10図はその詳細処理フローを示す図、第
11〜13図は(初期)事実組込み処理フローを示す図
、第14〜20図は、推論実行処理フローを示す図であ
る。 100・・・連想ネット作成プロセッサ、101・・・
初期事実組込みプロセッサ、102・・・推論実行プロ
セッサ、103・・・規則ファイル、104・・・初期
事実ファイル、105・・・連想フィルタ、106・・
・連想ネット、200・・・規則リスト、210・・・
規則、213・・・条件項、215・・・削除項、21
6・・・追加項、221・・・環コード、251・・・
連想規則、245・・・連想環、240・・・個別構造
、249・・・具体位動、241・・・変数列、230
・・・共通部、233・・・共通T I A 旧 % I B i ¥FJ 3 図 ′¥J 4 図 第 乙 図 %711D 第6図 葛 9 図 毫 lρ 図 ぢ 11 図 菓 12 口 ’34 13 図 % lIJ 図 不 15 図 ′fJ16 図 第 77 図 % Ig 図 条/q図

Claims (1)

  1. 【特許請求の範囲】 1、条件部と行動部を持つ規則と事実又は仮説が与えら
    れると、規則に従って事実又は仮説を変更するサイクル
    を繰返すことにより情報処理tを行う計算機システムに
    おいて、規則の行動部のうち事実又は仮説の追加・削除
    に関する項が、どのような具体値に対し、どの規則のど
    の条件項を成立にするかを表わす連想ネットと呼ぶネッ
    トワークを、共通の定数部を持つ各項を共通部と個別部
    からなる連想項としてグループ化し、これを介して情報
    処理実行前に作成し、与えられた事実又は仮説を関係す
    る連想項の変数の具体値としてその個別部に設定するこ
    とによって連想ネットに組込み、以後連想ネットをたど
    つ理字臥。 2、前記の条件項や行動部の構成要素のうち定数以外を
    1つの特別なコードに置き換えるとともに、対応する定
    数がすべて一致する2つの項の定数どうしが対応しない
    位置の要素をすべて上記の特別コードで置き換えること
    を全ての項に対して繰返すことにより連想ネットワーク
    の共通部を作成し、かつ事実がこの共通部のどれかと同
    じ定数部を持つ場合だけ、その共通部の項のコードが得
    られる状態に遷移する機械である連想フィルタを作成し
    、これを用いて、事実がどの共通部を持つかを認識させ
    、連想ネットに組込む特許請求の範囲第1項記載の計算
    機システムの高速処理方式。
JP58177955A 1983-09-28 1983-09-28 計算機システムの高速処理方法 Expired - Lifetime JPH0616266B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP58177955A JPH0616266B2 (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
JP58177955A JPH0616266B2 (ja) 1983-09-28 1983-09-28 計算機システムの高速処理方法

Publications (2)

Publication Number Publication Date
JPS6072031A true JPS6072031A (ja) 1985-04-24
JPH0616266B2 JPH0616266B2 (ja) 1994-03-02

Family

ID=16040000

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JPH0616266B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5047951A (en) * 1988-05-12 1991-09-10 Kabushiki Kaisha Toshiba Inference processor using meta knowledge
US5245699A (en) * 1988-05-12 1993-09-14 Kabushiki Kaisha Toshiba Inference processor using metal knowledge

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5047951A (en) * 1988-05-12 1991-09-10 Kabushiki Kaisha Toshiba Inference processor using meta knowledge
US5245699A (en) * 1988-05-12 1993-09-14 Kabushiki Kaisha Toshiba Inference processor using metal knowledge

Also Published As

Publication number Publication date
JPH0616266B2 (ja) 1994-03-02

Similar Documents

Publication Publication Date Title
JP2726568B2 (ja) 文字認識方法及び装置
JP7103264B2 (ja) 生成装置、学習装置、生成方法及びプログラム
WO2023007791A1 (ja) プログラムコード自動生成システム
JPH0778742B2 (ja) コンピユータ・プログラム言語変換装置及びその方法
CN117851101A (zh) 一种基于大语言模型的仓库级别代码缺陷自动修复的方法
CN111209753B (zh) 一种实体命名识别方法及装置
CN117573084A (zh) 一种基于逐层融合抽象语法树的代码补全方法
CN119168012A (zh) 基于大语言模型的强化学习奖励函数生成方法及装置
JP3794716B2 (ja) 単語を語形変化させる方法及びその方法を実行するデータ処理装置
JPS6072031A (ja) 計算機システムの高速処理方式
JP5718166B2 (ja) 設計検証方法及びプログラム
JP2019133534A (ja) 併合方法、併合装置、および併合プログラム
JP2012173745A (ja) データベース解析装置及びデータベース解析プログラム
CN114676155B (zh) 代码提示信息的确定方法、数据集的确定方法及电子设备
CN111045991B (zh) 一种基于命令行模式快速打开文件的实现方法
JP5932707B2 (ja) 計算機、プログラム及びデータ生成方法
JPS6072032A (ja) 計算機システムの高速処理方式
CN115098365A (zh) Sql代码的调试方法、装置、电子设备及可读存储介质
CN119046233B (zh) 一种电子自动化设计文件库的信息查找方法、装置、设备及介质
CN121478764B (zh) 基于大模型的人员信息纠错方法、系统和存储介质
JP6318327B1 (ja) コード自動記述ソフトウェアを記録した記録媒体
JP2001092830A (ja) 文字列の照合装置およびその方法
JP7083473B2 (ja) 入力支援装置
CN121209847A (zh) 模型训练与代码生成方法、装置、电子设备及存储介质
JP6347023B1 (ja) コード自動記述2ソフトウェアを記録した記録媒体