JPH03185522A - 推論エンジン - Google Patents

推論エンジン

Info

Publication number
JPH03185522A
JPH03185522A JP1324263A JP32426389A JPH03185522A JP H03185522 A JPH03185522 A JP H03185522A JP 1324263 A JP1324263 A JP 1324263A JP 32426389 A JP32426389 A JP 32426389A JP H03185522 A JPH03185522 A JP H03185522A
Authority
JP
Japan
Prior art keywords
inference
language
facts
inference engine
section
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
JP1324263A
Other languages
English (en)
Inventor
Yoshihiro Kitagawa
北川 美宏
Yukio Takimoto
瀧本 幸雄
Shunichi Shimoji
下地 俊一
Yasunori Tanimoto
谷本 靖典
Hiroshi Chatani
茶谷 浩
Yoshio Doi
誉生 土居
Kazuaki Suzaki
須崎 和明
Yutaka Ashikari
豊 葦苅
Hiroshi Yamamoto
博史 山本
Shiro Takada
司郎 高田
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.)
C S K SOGO KENKYUSHO KK
Original Assignee
C S K SOGO KENKYUSHO KK
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 C S K SOGO KENKYUSHO KK filed Critical C S K SOGO KENKYUSHO KK
Priority to JP1324263A priority Critical patent/JPH03185522A/ja
Publication of JPH03185522A publication Critical patent/JPH03185522A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、エキスパートシステム等に用いられるプロ
ダクションシステムにおける推論エンジンに関し、特に
動作の高速化をはかった推論エンジンに関するものであ
る。
〔従来の技術〕
第3図は従来のp rolog処理系によるプロダクシ
ョンシステムを示すブロック図であり、図において、l
はルールが集合したルールベース、2は事実が集合した
事実ベース、3は推論を実行する推論エンジン、4は操
作者が事実や目標を入力する入出力部、3aはP ro
logで記述された推論部、3bはP rologプロ
グラムを解釈、実行するPrologインタプリータで
ある。
次に動作について説明する。プロダクションシステムで
は一般に、ルールベース1に格納されたルールは、IF
(前提部)THEN (結論部)の形式となっている。
また、入出力部4に入力された事実および推論実行中に
得られた事実は事実ベース2に格納される。前向き推論
を行う場合には、例えば、推論エンジン3はルールベー
ス1中のルールを先頭から探索して、前提部が事実ベー
ス2中の事実と適合するものを探す、適合したルールが
あればその結論部を新たな事実として事実ベース2に付
加するとともに、再度ルールベース1の探索を行う、そ
して、事実に適合するルールが見つからなくなった時に
、得られた事実のうちの適正なものを結論とする。
以上のような推論を実行するにあたって、ルールの条件
部または結論部と事実とのパターンマツチングが繰り返
し行われるので、推論エンジン3はパターンマツチング
機能が備わった処理系とする必要がある。従って、従来
から推論エンジン3はパターンマツチング機能やリスト
処理機能等が強力であるP rologやLi5p等の
処理系が使用されている。
例えば、P rolog処理系を採用した場合には、推
論部3a、事実およびルールはP rologでプログ
ラミングされる。そして、第3図に示すように。
P rologインタプリータ3bは推論部3aを解釈
して、ルールベース1中のルールおよび事実のパターン
マツチングを行いながらルールベース1の探索を順次実
行する。
〔発明が解決しようとする課題〕
従来の推論エンジン3は以上のように構成されているの
で、P rologインタプリータ3b等のインタプリ
ータにより推論が進められ、そのために推論速度はある
程度以上には向上させることができないという課題があ
った。特に、ルール数が多数となったり推論機能を豊富
にする程推論速度の低下は顕著である。
この発明は上記のような課題を解消するためになされた
もので、推論速度を従来のものに比べて大幅に向上させ
ることができるとともに、ユーザに対しては従来のP 
rolog等の処理系で推論を行っているように振舞う
ことができる推論エンジンを得ることを目的とする。
C111題を解決するための手段〕 この発明に係る推論エンジンは、パターンマツチング等
の推論を実行する際の推論過程における各処理を、C3
語、アセンブリ言語等のいわゆるハードウェア寄りの言
語で記述した関数で記述した上、これらの関数を集合さ
せた実行部を設け、かつ、ハードウェア寄りの言語で記
述されていて。
入出力部に与えられた事実や推論実行中に得られた事実
等に応じて実行部の関数を呼び出す、ブまり実行させる
推論部を設けたものである。
〔作用〕
この発明における実行部は、コンパイルまたはアセンブ
ルされた後に推論エンジンに組込まれることになるので
、推論を実行する際のそれぞれの推論過程を高速で処理
し、結局、推論を高速で実行することになる。
〔実施例〕
以下、この発明の一実施例を図について説明する。第1
図において、5はパターンマツチング等の推論過程にお
ける処理を1つの関数としたものを集合させた実行部で
あり、C言語(以下、Cという、)やアセンブリ言語(
以下、アセンブラという、)で記述したプログラムをコ
ンパイルまたはアセンブルしたものである。また、6は
入出力部4に与えられた事実と中間処理結果とに応じて
必要な関数を呼び出して推論を進める推論部であり、や
はり、Cやアセンブラで記述されたものである。その他
のものは同一符号を付して第3図に示したものと同一の
ものである。
次に動作について説明する。初めに、基本となるプログ
ラム言語にP rologを採用した場合の実行部5お
よび推論部6の作成の仕方について説明する。まず、P
 rologの機能、規約および組込み述語をCやアセ
ンブラでサブルーチン形式で記述する。さらに、これら
をコンパイルまたはアセンブルして(必要ならリンクを
行って)実行部5とする。一方、ルールベース1や事実
ベース2へのアクセス動作を適当な単位ごとにCやアセ
ンブラでサブルーチン形式で記述する。そして、サブル
ーチン化した部分以外をCやアセンブラで記述する6次
に、これらをコンパイルまたはアセンブルして推論部6
とする。そして、実行部5と推論部6とをリンクして、
コンピュータ等の記憶部に格納する。
次に、推論の実行動作について第2図に示したフローチ
ャートを参照して説明する。まず、入出力部4に事実が
入力された場合には(ステップ5T1)、推論部6は事
実ベースへ格納するルーチンを呼び出すことによりこの
ルーチンを実行させ、入力された事実を事実ベース2に
格納する(ステップ5T2)。そして、実行部5のパタ
ーンマツチングルーチンを呼び出して、ルールベース1
の各ルールの前提部と事実ベース2の事実とのパターン
マツチングを行う(ステップ5T3)、ここで、マツチ
したものがあって(ステップ5T4)、結論部に記述さ
れた手続きを実行する必要が生じた時には(ステップS
 T 5 ) 、 Prologインタプリータ3bを
呼び出してこれを処理させる(ステップ5T6)。また
、そのルールの結論部を新たな事実として事実ベース2
に付加する場合には(ステップ5T7)、事実ベースへ
格納するルーチンを呼び出す(ステップ5T8)。以上
のような処理を繰り返した後に、事実にマツチする前提
部を有するルールがなくなったら推論は終了する。
このように、推論エンジン3を、P rolog処理系
を基本としてハードウェア寄りの言語でインプリメント
したので、外部からはP rolog処理系によって推
論が進められているように見えると同時に、その処理速
度を大幅に向上させることができる。処理速度の向上の
度合は、ルールや事実の個数によって差はあるが、10
0ルール程度の推論システムでは数10倍の速度となる
なお、基本となる処理系はP rologに限らず、パ
ターンマツチングやリスト処理に適したものであれば他
のものでもよい。
〔発明の効果〕
以上のように、この発明によれば推論エンジンを、推論
過程で用いられる処理単位をハードウェア寄りの言語で
関数表現するとともに、推論を進行させる部分もハード
ウェア寄りの言語で記述したもので構成したので、従来
の推論エンジンの機能を落とすことなく、より高速に推
論を行えるものが得られる効果がある。
【図面の簡単な説明】
第1図はこの発明の一実施例による推論エンジンを含む
システムの構成を示すフローチャート、第2図は推論部
の動作を示すフローチャート、第3図は従来の推論エン
ジンを含むシステムの構成を示すブロック図である。 1はルールベース、2は事実ベース、3は推論エンジン
、4は入出力部、5は実行部、6は推論部。 なお、図中、同一符号は同一、または相当部分を示す6

Claims (1)

    【特許請求の範囲】
  1. 入出力部に与えられた事実に応じて、ルールが集合した
    ルールベースを順次探索して結論を導く推論エンジンに
    おいて、前記ルールベースを探索する際の推論過程で用
    いられる処理単位のそれぞれをハードウェア寄りの言語
    で記述した関数を集合させた実行部と、前記ハードウェ
    ア寄りの言語で記述され、前記入出力部に与えられた事
    実および前記ルールベースを探索する際の中間処理結果
    に応じて前記関数を呼び出す推論部とを備えたことを特
    徴とする推論エンジン。
JP1324263A 1989-12-14 1989-12-14 推論エンジン Pending JPH03185522A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1324263A JPH03185522A (ja) 1989-12-14 1989-12-14 推論エンジン

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1324263A JPH03185522A (ja) 1989-12-14 1989-12-14 推論エンジン

Publications (1)

Publication Number Publication Date
JPH03185522A true JPH03185522A (ja) 1991-08-13

Family

ID=18163856

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1324263A Pending JPH03185522A (ja) 1989-12-14 1989-12-14 推論エンジン

Country Status (1)

Country Link
JP (1) JPH03185522A (ja)

Similar Documents

Publication Publication Date Title
US4890240A (en) Coalescing changes in pattern-directed, rule-based artificial intelligence production systems
US20040049768A1 (en) Method and program for compiling processing, and computer-readable medium recoding the program thereof
Allan et al. A flow analysis procedure for the translation of high-level languages to a data flow language
JPH03185522A (ja) 推論エンジン
JPH0764766A (ja) 並列計算機における最大・最小値演算方法
JP2585780B2 (ja) 入出力ライブラリにおけるdoループ最適化処理方式
JP3278584B2 (ja) コンピュータプログラム生成装置及び方法
JPH0447337B2 (ja)
JP2633918B2 (ja) メソド検索方法及びメソド検索手続き生成方法
JPH0573335A (ja) プログラムの自動インライン展開方式
JP2601541B2 (ja) Fortran入出力並び処理方式
JPH03144830A (ja) 並列処理方式
JPH0573312A (ja) リスト処理方式
JPH08263298A (ja) コンパイラ装置
JPH0659905A (ja) コンパイラの並列化処理方式
JPH04165537A (ja) プログラム自動インライン展開方式
JPH08263300A (ja) インライン展開方式
JPH06274351A (ja) コンパイラの最適化方式
JPH02181830A (ja) ループ最適化処理方法
JPH0619721A (ja) 機械語翻訳最適化方式
JPH01158532A (ja) プログラム実行方式
Gary et al. An optimizing precompiler for finite-difference computations on a vector computer
JPH04107605A (ja) 制御プログラム用言語処理装置
JPH05298117A (ja) 定数を引数とする手続きの最適化方式
uri Kiho et al. Control Structure Transformations in the Program Multiviewer