JPH0283624A - パターン・マツチング・ネツトワーク更新方法 - Google Patents

パターン・マツチング・ネツトワーク更新方法

Info

Publication number
JPH0283624A
JPH0283624A JP1192791A JP19279189A JPH0283624A JP H0283624 A JPH0283624 A JP H0283624A JP 1192791 A JP1192791 A JP 1192791A JP 19279189 A JP19279189 A JP 19279189A JP H0283624 A JPH0283624 A JP H0283624A
Authority
JP
Japan
Prior art keywords
test
node
value
token
change
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.)
Pending
Application number
JP1192791A
Other languages
English (en)
Inventor
Marshall I Schor
マーシヤル・アイ・シヨー
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0283624A publication Critical patent/JPH0283624A/ja
Pending legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00—Computing arrangements using knowledge-based models
    • G06N5/04—Inference or reasoning models
    • G06N5/046—Forward inferencing; Production systems
    • G06N5/047—Pattern matching networks; Rete networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Devices For Executing Special Programs (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

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

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明はRE T Eタイプのネットワークを含む、更
に詳細に説明すればt’+η記ネットワークの性能を向
−ヒさせるパターン・マッチング・ネットワークに関す
る。
B、従来技術及びその問題点 フォーシイ(Forgy)が示唆したRETEのような
。
いわゆる人工知能ないしはパターン・マツチング・プロ
グラミングが開発されつつあり、ここ数年に互って用い
られている。RETEネットワークは一つ又は複数のマ
ツチング規則を用いるパターン・マツチングへの幾つか
のアプローチの1つである。これらのプログラムはよく
知られている。
”RETE:多パターン/多目的パターン一致間厘の高
速アルゴリズム (A Fast AlgoriLhm
 forthe  Many  P複数tern/ M
any  0bject  P複数tern  M複数
、chproblcm)、  ARTIFICIAL 
 IN置I、IGENCE、Volume  19゜1
.982. pp 1.7−37のチャールス(Cha
rles) l7.フォーシイ(Forgy)の論文を
参照されたい、この分野でのもう一つの公知の例は、”
RE TEパターン・マツチングの進歩 (A d v
 a n c e s i n ((E T [> P
 a t L c r nM複数ching )、 P
ROCEEDINGS  of  1986  AME
RTCANASSOCIATION  for  AR
TIFICIAI、 IN置LIGENCIシCON 
F E It IミNCE、 1986. pp 22
6−232  のマーシャル(Marshall) 1
.ショア (Schor)外の論文にある。
RE T Eネットワーク及び人工知能プログラミング
についての周知の情報は1通常の当業者が本発明を理解
するのに必要とする場合以外は本明a+害には反復記載
しない。
周知のように、前記パターン・マツチング・プログラミ
ングは複数のデータ構造により実行する。
ワーキング・メモリ・ニレメン1〜(WME)は入力デ
ータ構造である。新しいWME、変更されたWMEまた
は削除されたWMEはどれも、RE TEの更新を必要
とする”デルタ”を生ずる5デルタはRET Eの情報
内容がWMEの付加、変更ないしは削除を反映しないこ
とを意味するので、1くE T Eはそれが現在の入力
の情報の状態を反映するように更新されるようにする必
要がある。RETEを更新する際には、前記”デルタ1
はデルタを正確に表わすように構隻された変更1・−ク
ンによって表わされる。その際、WME変更のため生じ
た変更を反映するようにネットワークを更新するため、
当該変更トークンはRETEを介して押込まれる。変更
トークンがRETEを介して押込まれ(処理され)、R
ETE内のパターンと一致させられる毎に、パターン一
致動作が構成される。
デルタ即ち変更トークン入力の各々の結合ノードの更新
は、前のメモリ・ノー1くに記憶されたWME値から、
パターン検査のための入力引数を計算することを必要と
する。この計算には時間がかかることがあるので、パタ
ーン・マツチング動作の正確さに影響を及ぼすことなく
前記計算を少なくすることが望ましい。
RETEはアルファ部とベータ部とから成る。
アルファ部は通常はメモリ・ノード、即ち部分パターン
・マツチング結果が記憶されるノードを持たない、それ
に対し、ベータ部は前記メモリ・ノードの外、多数の引
数値を必要とする複数の検査を含むことがある結合ノー
ドのような他のノードも含む、アルファ部とベータ部の
中間にはアルファ分配ノードがあり、その全てはアルフ
ァ部で生成された部分パターン・マツチング結果を記憶
するメモリ・ノードである。RETEはいわゆる変更ト
ークンによって更新される。各の変更トークンはR,E
 T Eシステムにおける新たな又は変更されたWME
から生ずる情報の変更(デルタ)もしくは削除されたW
MEから生ずる変更を示す情報内容を有する。前記変更
トークンはアルファ分布ノードに記憶される部分一致結
果を生成するためアルファ部分を介して押込められる。
そして変更トークンはアルファ分布ノードからベータ部
に押込められる。
ベータ部では、結合ノードの各は2つの入力部:左側の
入力(L T−(S )及び右側の入力(Rl−I S
 )を11)ることかできる、変更トークンは該2つの
入力のいずれかに到達するであろう、結合ノードは多数
のパターン・マツチング検査を含むことがある。トー1
ンが1つの入力(L IIS 又はRII S )に到
達すると、これらの検査は変更トークン毎に複数の検査
の反復を必要とすることがある。即ち、向かい合ってい
るメモリが多数の部分一致トークンを有するときは、各
の検査は多くの検査オペレーションを生ずることがある
。これらの検査は2つの部分;該検査の引数を得る第1
の部分及び該検査を実行する第2の部分を有するものと
みなされる。多くのアプリケーションの場合、検査を実
行するのに必要な時間の大部分は該引数を取得するのに
用いられる。多くの場合、検査自身は2つのパターンを
比較して一致するか又は同等であるかをを調べる簡単な
ものである。前記計算はRETEのパフォーマンスを低
下させる。ノードが多数の検査を実行されるとき、この
パフォーマンスの低下は特に著しい、全てのタイプのパ
ターン・マッチング・ネットワークの実行時間を少なく
すること、特に、RETEネットワークのベータ部で必
要とされる時間を少なくすることが望ましい。
周知のように、メモリ・ノードの出力はRETEの更新
状態を表わす、メモリ・ノードの内容は部分一致トーグ
ンを含み、 ”向かい合っているメモリ1のような次の
ノードへの入力となりうる。
変更トークンは該向かい合っているメモリで指定された
部分一致トークンと比較される。市記向かい合っている
メモリは該変更トークンを受取るノードの”向かい合っ
ている°°側での直ぐ前のノードのメモリである。この
マツチングは2種類の情報を用いる。第1の種類の情報
は呼出すべき検査機能のタイプを含むパターン検査、検
査引数の仕様、及び部分一致したWMEデータ・ニレメ
ン1〜・トークンを説明する情報を記述する。この第1
の種類の情報はRETE構造が指定されたパターンから
構築されるときに計算される。第2の種類の情報はWM
Eが生成、変更又は削除されるそれによってWME変更
トークンがRETEを介して押込まれる−ときに計算さ
れる。全ての情報へのアクセスは通常のプログラミング
手順に従って行われ、マツチング・オペレーションは通
常のプログラミングによる比較である。−例として、単
一の結合ノード又は一致ノードの各は単一の検査で10
0.1000又はそれ以上の値を利用することができる
。前記値は該ネットワークを介して押込まれる変更トー
クンと比較して一致するものを探すために走査される。
各の前記ノードは1前記検査の多くを受けることがある
。
C1発明の要旨 本発明は°改良されたパターン・マツチング更新動作を
提供する1本発明に従って、検査を受けるパターン・マ
ツチング結合ノードは該検査のための引数入力が結合ノ
ードの1つの側(のみ)からの変更トークンに依存する
だけであるかどうかを確認するために調へられる。この
調査はRETEの構造にだけ依存し、どの部分一致ノー
ドの、どんな現在の内容にも依存しない、その結果、キ
ャッシング(caching)の利点を判定するための
調査は、RETEが構築されるか又は実質的に変更され
るときに一度実行される。
結合ノードでパターン・マツチング・オペレーションを
実行している間に、噴−の変更トークンから取出された
値を複数の引数値と比較することができる。前記比較は
、プログラム・ループで。
例えば向かい合っているメモリからの複数の可能な部分
一致トークンを走査することにより実行される。このル
ープ中、変更トークン引数の供給した値は、それが一定
であるときは必ず、検査が実行されている結合ノード検
査部にキャッシュされる。このキャッシングは前記入力
のための全ての再計算を回避し、それによりRETEオ
ペレーションを向上させる。
最近のRETEパターン・マツチングの慣習では、パタ
ーン検査は任意の方法の計算式で組合わされた多重WM
E属性値に依存することがある。
これは1つのWME値だけを用いる初期のRE TEの
慣習と対照的である。結合ノードで実行中の特定の検査
は到来する変更トークン、ないしは向かい合っているメ
モリのトークン(向かい合っているメモリでの部分一致
トークン全てにわたり結合ノード・ループで一度に1つ
選択される)、又は両者からWME値を参照することが
できる。
結合ノードにおけるキャッシング引数値は一つずつ検査
されることが望ましい、任意の一連の異なる検査では、
該検査の一部についての引数値がキャッシュされること
があり、1官記キヤツシングはL )i Sノード又は
RIISノードのどちらかの入力から取出された引数値
に関するものであると言ってもさしつかえない。
D、実施例 本記述はド記の参照文献に示すような公知のパターン・
マッチング・ネットワークに基づいている。0PS5外
で使用されるような公知のプログラミング言語は”共通
リスプ(Common Li5t’)”である;ガイ 
(Guy) L−スティール(Steele)、 Jr
”共通りスプ(COMMON 1.l5l))”Dig
it、al Press、 1984 (QA76.7
3.L2357:+ +9841SIlN 0−932
376−41−X)参照、既知のRETEアルゴリズム
はブロクラミング・エキスパート・システムズ(PRO
GI+AMMTNGEXPERT SYSTEMS) 
IN 0PS5.アジソンーウェスレイ(Addjso
n−Wesley)、 pp 228−239.198
5にブラウンストーン (Brownstone)によ
り記述されている。
本発明は破線の枠で示す内部メモリ13(第1図)を有
するディジタル・コンピュータ10(図示せず)で実施
される。プログラム11はRE TEプログラムのよう
な以前のマツチング・ネットワーク・プログラムとして
配列される。プログラム11は共通リスプ(LIS))
)、:語で記述することができる。これらのプログラム
はパターン・マツチング・オペレーションを実行するデ
ータ構造(ノード、トークン、ルール)で動作する。1
りE T Eネットワークを生成又は作成する際の最初
のステップは、ネットワークのロジック経路をルール毎
に1経路ずつ明確に定めるルールのリストを生成するす
ることである。このようなルールの形式は前記ショア件
の文献の226頁に示されている。そしてルールは、周
知のように分解され配列される。 +’rf記パターン
・マツチング・ノードはルールで明確に定めたロジック
経路−該ネジ1〜ワークを介してルール毎に1つの前記
ロジック経路が根(root)ノード30から出力位置
60まで延長されるー で前のノードと後のノー1〜に
相互接続される。この分解及び配列は根ノードζ(O、
アルファ・マツチング・ノード33、アルファ分配ノー
1〜35及びベータ・ノード37を有するパターン・マ
ツチング・ネッl−ワークをコンパイルする1本明細書
では項[] 30 、33 、35及び337の集まり
をRE T Eと呼ぶ、根ノー(へ30はワーキング・
メモリ15に論理的に接続される。
矢印16で示すように、ワーキング・メモリ・エレメン
トW M Eがワーキング・メモリ15に付加されたり
5メモリ15から削除されたり又はメモリ15で変更さ
れたりすると、メモリ15の情報ステータスはRE T
 Eの情報ステータスと異なるもの之なり、RE”l”
Eとワーキング・メモリ15の間にデルタを生ずる。こ
のデルタは該デルタを表わす情報内容を有する変更トー
グンー−RETEのデータ内容をワーキング・メモリ1
5の現在の状態に更新するためRE T Eを介して押
込まれる−を必要とする。この変更トークンは1−−ク
ン・アドレスに記憶される。RETIEにおける該トー
クンのアクセス及びその識別はメモリ領域20− メモ
リ13内のプログラム11により指定されたもう1つの
領域−の該トークン・ア(−レスに対するアドレス・ポ
インタにより行われる。
前記データ及びデータ構造はメモリ13に、且つメモリ
13から周辺データ記憶装′a/i(図示せず)にペー
ジングすることができる。他の全ての値及び演算子も同
様にネットワーク33〜37で識別される0次の記述は
アルファ分配ノード35への変更トークン押込みが完Y
しているものと仮定する。
ベータ・ノー1”& 更1−−クン押込みについて記述
する前に、ベータ・ノード・アレイについて記述する。
ベータ・ノードは種々のタイプのノードから成るが、こ
こで重要なのは結合ノー1へである。
各の結合ノードは計算機実行のパターン・マツチング・
オペレーションが2つの入力間で実行されることを可能
にする。各の結合ノードは2つのノード入力に現われた
2つの引数の間のパターン・マツチング検査を規定する
属性(ρredic複数e)検査のテーブルを含む、プ
ロゲラ1111によるベータ・ノー]へ37の部分の走
査は、部分的には、階層的なノード接続に基づいている
8第1図には幾つかの結合ノード40〜43しか示さな
いが、実際のRET Eの構造では多くのロジック経路
及び多くの面記結合ノード即ちベータ・ノードがある。
結合ノードで、1つの入力(L HSまたはRI(S 
)は、(向かい合っているノード入力で)向かい合って
いるメモリに記憶されたデーター先行メモリ・ノードの
記憶結果−に、データを一致させる変更1ヘークン(本
明細書ではノードへのデルタ人カバターンと呼ぶ)を受
取る。
各の結合ノード即ちベータ・ノードは2つの入力ボート
及び1つの出力ポートを得ることができる。トークンが
先行ノードから後続ノードに(例えば、ノード40から
ノード41に)eされるどき、トークン・アドレスは通
常、渡す側の先行ノード40の出力に記憶される(複数
の後続ノードが共用することを可能にする)、各の出力
ポートは複数の前記1−−クン・アドレスを記憶する多
重マツチングの場合を表わす−ことがある。
結合ノードの左側の[、HS入力ポートは、ベータ・ノ
ード40〜433については参照番号51.5;3.5
6及び58によってそれぞれ表示される。
ベータ・ノード即ち結合ノー(へのいわゆる右側のRI
f 5人カポ−1〜は、ノード40〜4:3については
参照番号50.54.55及び57によってそれぞれ表
示される。アルファ分配ノーI−:35はIくE T 
Eのベータ・ノード部において多数のレベル1のノード
に対し相対的に多数の、珪つ低いレベル(高い番号のレ
ベル)に対し直接に接続される論理出力を有する。レベ
ル1のノー1−は分配ノード即ちメモリ・ノー1−二3
5から1入力又は2入力を得ることができる。先行ノー
ドは関連するノード −即ち、ノード40はノード41
に対し先行ノー1〜であり、ノード41−はノード40
に対し後続ノードである−よりもアルファ分配ノー1−
735に論理的に近いノードである。構築された実施例
では、結合ノー1〜の数は数百又はそれ以上になること
がある。
RE’rEとの接続に用いられるデータ構造は既知であ
るのでその説明は省略“する8本発明の理解を容易にす
るため、ベータ・ノード37の部分データ構造を第2図
に示す、ベータ・ノード・データ構造99は、周知のよ
うに、結合ノードの特徴即ちタイプを表わすTYPEフ
ィールド100を含む、ベータ・ノードのタイプの例は
該ノードでプログラム11により実行されるパターン・
マツチング検査の特性である。該特性は過度にj1i純
化さ九た形態ではA N Dロジック・ステップ、”存
在しない”ロジック・ステップ、等を含む。RPフィー
ルド101はRHS即ち右先行(RP)ノードに対する
メモリ・アドレス・ポインタを、もしあれば記憶する。
RSフィールド102も同様にRH5即ち右後続(RS
 )ノードに対するメモリ・アドレス・ポインタを記憶
する。同様に、L Pフィールド105及びLSフィー
ルド106も左先行ノード及び左後続ノードに対するメ
モリ・アドレス・ポインタを記憶する。
MEMフィールド104はノードの入力に到来するトー
クンから構築された部分一致1−−グンを記憶する。こ
れらのトークンはロジック即ち該ノードのパターン・マ
ツチング検査に合格したことを表わす、いったん所′j
、の検査に関する任15:の所与の引数の安定度が決定
されると、結合ノー1−で引数から計算され又は取出さ
れた値のキャッシングが、後述するように、適切な引数
ARG+(120)のキャッシュ値フィールド127又
はA RG2(121)で可能になる。現に討議された
ベータ・ノードを満たす(prime)ための前記キャ
ッシングは後述する属性検査構造1]9で示される。
図示の実施例では、引数値のキャッシングは検査の場合
だけであり、検査毎にキャッシュ可能引数値について1
回生ずる。よって、キャッシングの概念はノードへの安
定したデルタ入力の部分キャッシングを含み、その場合
、キャッシングは、その時点で安定している、即ちほぼ
一定していると決定された引数についてだけである。変
化するり数はキャッシュされない、構造99は追加の制
御フィールド(既知であるから図示せず説明も省略する
)を含む。
ベータ・ノードに含まれるのは検査データ構造119に
示すような検査の定義である。構造119には引数値が
キャッシュされる。ARG1フィールド120及びAR
G2フィールド121は結合ノード検査のための第1及
び第2の検査引数に対するポインタを含む、属性検査フ
ィールド122は、メモリ領域20に記憶された”プロ
グラム”識別された属性検査をARG l及びARG2
の計算値の間で実行する−に対するアドレス・ポインタ
を記憶する。複数の検査構造119は1つのベータ・ノ
ードにあることもあり、連結されたリストとして記憶さ
れることもある。検査引数は結合ノードのLH3入力と
もR)(S入力ともロジック関係を持たない。
各の引数は4つのフィールドを含むが、ARGlのフィ
ールドだけが図示されている。ARG2も同一のフィー
ルド構造を持っている。フィールド125は該引数のデ
ータへのアクセス経路の定義を含む、2以」―のアクセ
ス経路が定義されるときは、”引数関数“フィールド1
28はメモリ領域20内のプログラム−アクセス経路の
各からのデータを1つの検査引数値に結合するーに対す
るポインタを含む、該1つの値はフィールド122で識
別された属性検査で用いられることになっている。フィ
ールド128で指定された前記プログラムは、あとで明
確にされるように、複数の値を組合わせるのに使用可能
な任意の式又はプログラム式関数とすることができる。
唯一のアクセス経路が定義されると、通常は、検索され
た値が検査に用いられる。これらのアクセス経路はノー
ドのデルタ人カバターン(ノード入力における変更トー
クン)をキャッシュする結合ノードの候補を決定する際
に用いられる。用語”値”は、属性検査と協同しうる、
数値;任意の記号ストリング;(アレイ;プログラム式
関数又は手順;ハソシンタ・テーブル;ベクトル構造ア
レイ等のような)データ・オブジェクト等を含む。
フィールド126は、あとで説明するように、引数の値
がキャッシングの候補であるかどうかを示す、実際にキ
ャッシュされた値はフィールド127に記憶される。良
好な実施例では、たとえ両ノード入力がキャッシングの
候補であっても、実行される所与の検査について入力の
一方だけがキャッシュされる。検査式は検査引数の1つ
の多数の検査値と共に用いることができる。これは(受
取った変更l・−クンから取出された)引数値の反復使
用−該引数値は向かい合っているメモリに記憶された多
数の引数値に対する前記反復検査のためキャッシュされ
ることになっているーを必要とする。
プログラム11により、アルファ分配ノード35の1つ
からロジック・ライン50を介して、変更1ヘークンが
押込まれる毎に、一定のベータ・ノード37が更新され
る。前記更新は特定の結合ノー1−における変更トーク
ンから得られた引数、及び”向かい合っている”先行メ
モリ・ノードにおけるRETEに記憶された特定のトー
クンから得られた引数の両者による検査の実施を必要と
することがある。向かい合っているメモリはRI−(S
の先行する部分一致トークン・メモリである。変更トー
クンがアルファ分配ノー1−35からノード40の入力
に押込まれると、プログラム11により、ノード40で
、RIISトークン入力(本明細書ではデルタ入力とも
呼ばれる)と向かい合っている即ち1.、 I(Sノー
ド入力におけるメモリの間で検査が実行される(該検査
は定義されノード40の一部となる)、実際には、この
メモリは、物理的にL HSノード入力にではなく、L
H8先行ノードに置かれる。
本発明に従って、結合ノードに存在していることがある
パターン検査の引数のアクセス経路特性が解析される。
パターン検査に対する引数が結合ノードへのデルタ変更
入力にだけ依存し、向かい合っているメモリからのどの
WME値にも依存しないことが決定されると、その引数
の算定値は特有のフィールド127にキャッシュされる
。前記キャッシング動作は属性検査に対する引数値の計
算結果を保管し、次に実行される検査−変更トークン引
数値と、′向かい合っている”メモリの部分一致トーク
ンとの間の反復する即ちループ比較を含む−に関する当
該値の次の再計算を排除する、このキャッシングはWM
E値の先行1ヘークンにおけるアクセスを少なくし、パ
ターン・マツチング速度を高める。キャッシュされた値
は該向かい合っているメモリとの結合ループ比較動作の
期間中維持される。
結合ノードにおけるパターン検査の引数はL H3,R
H8又は両方のノード入力に到来するWMEからの値を
必要とすることがある。この決定は一度行われることが
あり、そのときRE T E構造がパターン−政体様か
ら構築される。(R1−(S又は1.、 HSのどちら
か)1つのノード入力側からの値にだけ依存する引数は
変更トークンが同じ側から到着するときキャッシュする
ことができる。
いったんRE T Eが設定又は変更されると、パター
ン一致検査を有する全てのノードのパターン一致検査引
数アクセス経路を解析することにより、キャッシング候
補が決定される。キャッシング候補はパターン検査の引
数毎に自宅的に設定される。
どの結合ノードにおいても前記パターンがないこともあ
り、1つ以北の結合パターンがあることもある。引数ア
クセス経路は、トークンで識別された特定のW M E
に達する少なくとも1つの経路を、トークン・トリー(
1; r e e )を介して指定する。いったん特定
のWMEが特定の1〜−クンから選択されると、アクセ
ス経路は選択されたW M Eで識別されたE性に対す
るアクセスを含む1部分一致1ヘークンは一般にn個の
WMEの集合であって、前記n個のW M Eの集合の
間の部分パターン一致を表わし、RETEにおけるその
時点までのパターン・マツチング検査を満足する。
良好な実施例では、n個のWMEの集合はRETEにお
けるそれぞれの結合ノードのトリーに並行する構造を有
する2進トリーとして記憶される。
パターン・マツチング検査における特定の引数は1つの
WMEにある1つの値だけを参照することがしばしばあ
る。このような場合、参照されるWM EがT−HSノ
ード入力における部分一致トークン(そこに到着するデ
ルタ変更、即ちLIIS先行ノードの部分−Mメモリ1
.04からのトークン)を介してみつかると、該引数は
フィールド126で′L″と記録される。検査における
引数が多数のWME値を参照すると、全ての前記値はL
 I(Sノード入力を介してアクセスされる。この引数
もフィールド126で 1L”と記録される。同様に、
もし引数の全てのWME値がRHSノード入力を介して
アクセスされると、その引数はR”と記録される。引数
が両[、H8及びRH3のアクセス可能なWMEからの
値を含むときは、該引数はnot cacheable
″(キャッシュ不可能)と記録される。これらの記録は
記号である。ある実施例では、普通の符号化された表示
が該記号値を表わすのに用いられる。前記記録は(アク
セス経路の解析が終った後)RETEが構築されるとき
1回だけ行われる。それぞれの結合ノードにおける両ノ
ード入力のフィールド126の内容はパターン・マツチ
ングの間に用いられ、該記号値のキャッシングを選択的
に実現する。
第3図及び第4図は結合ノードにおける値のキャッシン
グに関連する計算機動作を示す、第3図は全体の順序を
示し、第4図はキャッシュ動作及び非キャッシュ動作を
用いる引数の取得を示す。
ステップ1.50で、変更1〜−クンをノード入力、L
 1fS又はR)(Sのどちらかで受取る。動作のシー
ケンスは、ノー1−の側が通である以外は、どちらの入
力の場合にも同じである。ステップ151で、(前記定
義されたような)結合ノードは、受取った変更トークン
及び向かい合っているメモリ中の部分一致トークンに関
して実行される検査(検査の数は検査Oから任意の数の
検査まで変ることがあり、その各は検査されるへき多数
の引数値を有することがある)についても調査される。
ステップ152で、もし検査が見つからないなら、プロ
グラム11は本発明の記述範囲を越えた他の計算機動作
に進む、さもなければ、実行される検査はステップ15
4で開始され、キャッシュ値フィールド(ARGIの1
27.ARG2については図示せず)は消去即ちリセッ
トされる。LI−18が受取った変更トークンの向かい
合っているメモリは右の先行ノードにおけるメモリであ
り、R1−(Sが受取った変更1ヘークンの場合は、左
の先行)−ドにおけるメモリである。ステップ154に
続いて、検査を実行する検査ループ160が開始される
。ステップ161及びステップ162で、検査の引数A
RGI及びARG2が、第4図に示すように、引数毎に
取得され計算される1次に、ステップ163で、検査が
実行される。ステップ165で、プログラム11はそれ
以上の検査を実行すべきかどうかを判定する。実行され
た最後の検査が失敗したとき、又は全ての検査が首尾よ
く終了したときは追加の検査は行われない、それ以北の
検査が行われない場合、結合ノードを去り、本記述の範
囲外の他の動作に進むのに関連する技術的に既知の計算
機動作のため、制御は図示の計算機動作のセットから脱
出(exit)する、それ以りの検査が行われるときは
、プログラム11は、ステップ166で、次の検査を指
定し、検査ループ160がもう一度反復される。
ステップ161及び162で実施される計算機動作は第
4図に示され、ARGIのフィールド126のキャッシ
ュ許可値又はARG2のキャッシュ許可値を調べるステ
ップ]、 70で開始される。
このキャッシュ許可値はL”、′R”又は notca
cheable”である、LはL HSノード入力(例
えば、ARGI)がキャッシングの候補であることを表
わし、RはRHSノード入力(例えば、A RG2)が
キャッシングの候補であることを表わす。
not cacheab、leはどちらの引数もキャッ
シングの候補ではないことを表わす、 not cac
heableが受取った変更トークンに関して感知され
ると、引数を取得し計算する従来技術のシステムが用い
られる。従来技術はループ160の反復毎にプログラム
11がステップ171で現在の引数の引数値を取得し計
算することを必要とする。受取った変更トークンのキャ
ッシングが許可されると、プログラム11は、R及びL
の表示を、ノードが変更トークンを受取った側と一致さ
せる。ステップ173では、値RはRN−(S入力変更
トークンの側と比較され、ステップ174では、値■、
はL )(S入力変更トークンの側と比較される。もし
不一致があれば、キャッシングは実行されず、再び、ル
ープ反復毎に引数値を取得し計算する従来技術の方法が
用いられる。プログラム11はステップ174からステ
ップ171に進み現在の引数の引数計算を実行する。不
一致がないものと仮定すると、ステップ175で、プロ
グラム11は引数取出し及び計算が現在の引数の最初の
パスであるかどうかを判定する。もしそうなら、ステッ
プ177で。
現在の引数が取出され計算される。これはステップ17
1の従来技術の動作と同じである。計算が終ですると、
ステップ177で計算された値は、次の検査の反復で用
いるため−もちろん、現在の検査でも用いられる一固有
のARGI又はARG2のキャッシュ値フィールドにキ
ャッシュされる(ステップ178)、次の反復では、従
来技術におけるような引数値を計算するよりも、ステッ
プ180で、キャッシュ値はキャッシュ値フィールドか
ら取得され検査に用いられる。ステップ175で、プロ
グラム11は、その引数取出し及び計算が最初のパスで
はないと判定されると、キャッシュ値が既に存在してお
り、使用可能であることを知る。
E1発明の効果 本発明によればループ中、変数トークンrノj数の供給
した値が一定であるときに、その値をキャッシュし、後
続のテスト繰り返しにおいて利用し、再計算を不必要に
している。したがって処理ノ高速化を図ることができる
。
【図面の簡単な説明】
第1図は本発明を良好に実施することができるR E 
T Eネットワークのffff略図である。 第2図は第1図に示したネットワークに本発明を実現す
るのに使用可能ないくつかのデータ構造の簡略図である
。 第3図及び第4図は図示されたネットワークで本発明を
実現するための任意の結合ノードで使用可能な計算機動
作を示す簡略化された流れ図である。 11・・・・プログラム、13・・・・内部メモリ、1
5・・・・ワーキング・メモリ、2o・・・・メモリ領
域、30・・・・根ノード、3:3・・・・アルファ・
マツチング・ノード、 35・・・・アルファ分配ノード。 ・・・・ベータ ノード。

Claims (1)

  1. 【特許請求の範囲】 複数のパターン・マッチング・ノードを含み、これらノ
    ードが論理パスにおいて論理的に相互接続されて種々の
    先祖ノードから引数を受けとるようにされているパター
    ン・マッチング・ネットワークを更新する方法において
    、 予め定められた1のノードにおいて、一組の先祖ノード
    からの変更トークンを当該ノードの第1の入力に供給し
    て当該ノードを更新するステップと、 上記予め定められた1のノードの第2の入力に論理的に
    結合された1の先祖ノードにおいて複数のパターン・マ
    ッチング・トークンをストアするステップと、 実行されるべきテストの各々において、1のテストのテ
    スト繰り返しの間に上記変更トークンが値を変更させる
    かどうかを表示するステップと、上記変更トークンと上
    記第2の入力で利用可能な部分マッチ・トークンとの間
    に実行されるべきテストがあるかどうかを上記予め定め
    られた1のノードにつき検査するステップと、 上記検査の結果、テストがないと判別されたときに他の
    マシーン操作を実行するステップと、上記検査の結果、
    テストがあると判別され、かつ上記1のテストの間に値
    の変更がないときに上記テストの第1の繰り返しに対し
    変更トークン値を計算し、当該変更トークン値を上記ノ
    ードについて一時記憶し、上記テストの後続の繰り返し
    について上記一時記憶した変更トークン値を用いるステ
    ップと、 上記検査の結果、テストがあると判別され、かつ上記1
    のテストの間に変更があるときに、上記の1のテストの
    各繰り返しにおいて変更トークン引数値を計算するステ
    ップとを有することを特徴とする パターン・マッチング・ネットワーク更新方法。
JP1192791A 1988-09-07 1989-07-27 パターン・マツチング・ネツトワーク更新方法 Pending JPH0283624A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US241498 1988-09-07
US07/241,498 US4882691A (en) 1988-09-07 1988-09-07 Caching argument values in pattern-matching networks

Publications (1)

Publication Number Publication Date
JPH0283624A true JPH0283624A (ja) 1990-03-23

Family

ID=22910918

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1192791A Pending JPH0283624A (ja) 1988-09-07 1989-07-27 パターン・マツチング・ネツトワーク更新方法

Country Status (4)

Country Link
US (1) US4882691A (ja)
EP (1) EP0358618B1 (ja)
JP (1) JPH0283624A (ja)
DE (1) DE68926326D1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4951225A (en) * 1988-11-14 1990-08-21 International Business Machines Corp. Updating pattern-matching networks
EP0417293B1 (en) * 1988-12-14 1998-08-12 Sony Corporation Data management system
JP2507593B2 (ja) * 1989-04-25 1996-06-12 株式会社東芝 推論方式
US5159662A (en) * 1990-04-27 1992-10-27 Ibm Corporation System and method for building a computer-based rete pattern matching network
US5179633A (en) * 1990-06-29 1993-01-12 Digital Equipment Corporation Method and apparatus for efficiently implementing read-type procedural attachments in rete-like pattern matching environment
US5265193A (en) * 1992-04-30 1993-11-23 International Business Machines Corporation Efficiently organizing objects in a rete pattern matching network
US6826599B1 (en) * 2000-06-15 2004-11-30 Cisco Technology, Inc. Method and apparatus for optimizing memory use in network caching
US9269047B2 (en) * 2010-12-09 2016-02-23 At&T Intellectual Property I, L.P. Rule-based selection of content

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4837735A (en) * 1987-06-09 1989-06-06 Martin Marietta Energy Systems, Inc. Parallel machine architecture for production rule systems

Also Published As

Publication number Publication date
EP0358618B1 (en) 1996-04-24
EP0358618A2 (en) 1990-03-14
DE68926326D1 (de) 1996-05-30
US4882691A (en) 1989-11-21
EP0358618A3 (en) 1992-10-21

Similar Documents

Publication Publication Date Title
Ip et al. Verifying systems with replicated components in Murϕ
US6662354B1 (en) Determining destinations of a dynamic branch
US5481473A (en) System and method for building interconnections in a hierarchical circuit design
US5519628A (en) System and method for formulating subsets of a hierarchical circuit design
US6938186B2 (en) System and method for performing a path-sensitive verification on a program
Frigioni et al. Semidynamic algorithms for maintaining single-source shortest path trees
CN111797010A (zh) 一种应用改进遗传算法的智能合约测试用例生成方法
Yang An example of local reasoning in BI pointer logic: the Schorr-Waite graph marking algorithm
JPH02181828A (ja) パターン突合せネットワーク更新方法
CN116204445B (zh) 测试用例生成方法、装置、代码测试方法、设备及介质
De Meyer et al. Algorithms for computing the min-transitive closure and associated partition tree of a symmetric fuzzy relation
De Baets et al. Transitive approximation of fuzzy relations by alternating closures and openings
van Emden An Interpreting Algorithm for Prolog Programs.
EP0358618B1 (en) Caching argument values in pattern-matching networks
CN114238078A (zh) 一种基于高阶函数的程序间依赖关系抽取方法
US4989162A (en) Method of using an accuracy valve in a conflict resolution of a forward inference
CN118884161B (zh) 一种半导体器件测试方法、装置以及存储介质
Kalisch et al. An Overview of the pcalg Package for R
Last et al. Automated test reduction using an info-fuzzy network
Luccio et al. A model of sequential computation with pipelined access to memory
CN108536585A (zh) 数据变更影响域分析方法
Eckstein Parallel graph processing using depth-first search and breadth-first search.
JP2954074B2 (ja) 回路分割方法及び回路分割装置
Tai Automated test sequence generation using sequencing constraints for concurrent programs
Arnold et al. Matching and covering with multiple-output patterns