JPH0377139A - 後向き推論の高速化方法 - Google Patents
後向き推論の高速化方法Info
- Publication number
- JPH0377139A JPH0377139A JP1213696A JP21369689A JPH0377139A JP H0377139 A JPH0377139 A JP H0377139A JP 1213696 A JP1213696 A JP 1213696A JP 21369689 A JP21369689 A JP 21369689A JP H0377139 A JPH0377139 A JP H0377139A
- Authority
- JP
- Japan
- Prior art keywords
- rule
- inference
- variable
- knowledge base
- backward
- 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
Links
- 238000000034 method Methods 0.000 title claims description 10
- 208000024891 symptom Diseases 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 206010037660 Pyrexia Diseases 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
(a)産業上の利用分野
この発明はプロダクションルール(if then l
k−ル)により記述された知識ベースを基に後向き推論
を行う際の推論の高速化方法に関する。
k−ル)により記述された知識ベースを基に後向き推論
を行う際の推論の高速化方法に関する。
(b)従来の技術
プロダクションルールにより記述された知識ベースから
後向き推論を行う方法は、設備2機器の故障診断に多く
用いられている。ここでの考え方は以下のようなもので
ある。
後向き推論を行う方法は、設備2機器の故障診断に多く
用いられている。ここでの考え方は以下のようなもので
ある。
(1)保守の専門化が経験的に得た異常伝播関数(事象
とその原因の因果関係)をルール化し、(2)異常が発
生したときにルールを三段論法的に組み合わせて根本的
な原因を推定する。
とその原因の因果関係)をルール化し、(2)異常が発
生したときにルールを三段論法的に組み合わせて根本的
な原因を推定する。
ここでルール化とは、異常現象とその原因を1fthe
n形式で表現することである。
n形式で表現することである。
後向き推論の基本的考え方を次に示す。
(1)1つの原因に注目し、その原因をルールの“th
en”側に持つルールを示す。
en”側に持つルールを示す。
(2)探したルールの“′if”側が成立しているかど
うかをチエツクする。
うかをチエツクする。
(3)if“側の中に未解決の要素があれば、それを新
しい原因として“t、h e n”°側にそれを持つル
ールを探す。
しい原因として“t、h e n”°側にそれを持つル
ールを探す。
このように、後向き推論は、“then”側が成立する
ためにはif”側が成立しなければならないと考え、i
f thenルールを“then ”側からみていく方
法である。
ためにはif”側が成立しなければならないと考え、i
f thenルールを“then ”側からみていく方
法である。
従来のif then B−ILに対して使用していた
後向き推論方式では、評価すべきルールを探すためにル
ールを−通り全て調べるようにしていた。
後向き推論方式では、評価すべきルールを探すためにル
ールを−通り全て調べるようにしていた。
(C1発明が解決しようとする課題
しかしながら、全てのルールを調べる方法は、ルール数
が少ない場合には問題はそれほどないが、ルール数があ
る程度増加してくると推論に要する時間が指数的に増大
し、実用的時間内に推論が終了しない場合が出てくると
いう欠点があった。
が少ない場合には問題はそれほどないが、ルール数があ
る程度増加してくると推論に要する時間が指数的に増大
し、実用的時間内に推論が終了しない場合が出てくると
いう欠点があった。
この発明の目的は、if then J>−ルを網羅的
に探索することを避け、推論に必要なルールのみをテー
ブルから探して知識ベースを縮小化し、その縮小化され
た知識ベースに基づいて後向き推論を行うことにより推
論の高速化を図ることのできる方法を提供することにあ
る。
に探索することを避け、推論に必要なルールのみをテー
ブルから探して知識ベースを縮小化し、その縮小化され
た知識ベースに基づいて後向き推論を行うことにより推
論の高速化を図ることのできる方法を提供することにあ
る。
(d’1課題を解決するための手段
筒■図はこの発明の構成図を示している。
推論機構は、if then ト+を形式で記述された
知識ベース1と、この知識ベース1から得られる1ft
hen IL−Bに従って推論を実行していく推論部2
と、推論結果を出力する結果出力部3とを備え、さらに
、各ルールで使用される’ then”側の変数別に、
その変数を使用しているルールの番号が予め登録されて
いるテーブル4とを備えている。
知識ベース1と、この知識ベース1から得られる1ft
hen IL−Bに従って推論を実行していく推論部2
と、推論結果を出力する結果出力部3とを備え、さらに
、各ルールで使用される’ then”側の変数別に、
その変数を使用しているルールの番号が予め登録されて
いるテーブル4とを備えている。
ここで、if then IL−ルは例えば次のように
記述する。
記述する。
if A=a and B=b then
C=c同ルールで、A、B、Gを変数、a、b、cを値
と呼ぶ。例えば、 if“症状”=“大きな音がする’ and “温度
“−“高い゛ then“原因パ= バルブの目詰まり°”のように
書く。
C=c同ルールで、A、B、Gを変数、a、b、cを値
と呼ぶ。例えば、 if“症状”=“大きな音がする’ and “温度
“−“高い゛ then“原因パ= バルブの目詰まり°”のように
書く。
このルールでは、“症状”、“′温度”、“原因°′が
変数であり、“大きな音がする“、“高い゛“バルブの
目詰まり”が値である。そして、then”′側の変数
はこの場合゛°原因”である。
変数であり、“大きな音がする“、“高い゛“バルブの
目詰まり”が値である。そして、then”′側の変数
はこの場合゛°原因”である。
′“then″側の変数としては、この他“″対策”等
が考えられる。
が考えられる。
前記テーブル4は、上記“then”側の変数別にその
変数を”then”側に使用しているルールの番号を記
憶するものである。例えば、図に示す例では、変数名°
“原因゛′を’then”側に使用するルール番号は、
テーブル4に示すように、1.2,510.1),16
. ・・・・である。
変数を”then”側に使用しているルールの番号を記
憶するものである。例えば、図に示す例では、変数名°
“原因゛′を’then”側に使用するルール番号は、
テーブル4に示すように、1.2,510.1),16
. ・・・・である。
te1作用
上記の構成の推論機構において、(後向き)推論の開始
指令が出ると、予め指定されている変数を使用している
ルール番号を先ずテーブル4から探す。例えば、指定し
ている変数名が“原因”であれば、その°“原因”に対
応するルール番号をテーブル4から探す。そして、ルー
ル番号に対応するルールを知識ベース1から探し、探し
たルールに基づいて推論部2で後向き推論を実行する。
指令が出ると、予め指定されている変数を使用している
ルール番号を先ずテーブル4から探す。例えば、指定し
ている変数名が“原因”であれば、その°“原因”に対
応するルール番号をテーブル4から探す。そして、ルー
ル番号に対応するルールを知識ベース1から探し、探し
たルールに基づいて推論部2で後向き推論を実行する。
すなわち、知識ベースIに記憶されている全てのルール
を対象にするのではな(、テーブル4から引き出された
ルール番号によって知識ベースを縮小化し、その縮小化
された知識ベースに基づいて推論を行う。
を対象にするのではな(、テーブル4から引き出された
ルール番号によって知識ベースを縮小化し、その縮小化
された知識ベースに基づいて推論を行う。
このようにすると、推論の高速化が実現できるまた、少
なくとも“′if”側の変数と値(および、望ましくは
“then”側の変数も)をコードなどによってID化
しておくと、推論動作が極めて高速化する。例えば、“
l irl側の変数が“症状゛および“温度″であった
とすると、各変数を“A“u B ++とID化し、ま
た値の“大きな音がする゛高い”をそれぞれ°“a、”
b”とID化しておくと、推論部2において推論を行っ
ているときの°“tf”側の成立有無の判定時間が短く
なる。従来の方法では、“if”側が成立しているかど
うかをチエツクする際、=l = t l”側の要素(
変数と値の組み)の文字列(“°症状°°や“大きな音
がする”)に対し、パターンマツチングを行う。つまり
、 “′症状゛−“大きな音がするパ が成立していることを確かめるために、事実の中から“
症状゛(4バイト)を探し、その値として“″大きな音
がする” (14バイト)が登録しであるかどうかを1
バイトづつ比較していた。このために所要時間がかなり
長くなっていた。これに対して、この発明では、ルール
に記述されている文字列を1つの記号とみなし、文字列
に1つの番号など(ID)を割り当て、ID比較により
パターンマツチングを実現さセているために時間の短縮
をはかることができる。
なくとも“′if”側の変数と値(および、望ましくは
“then”側の変数も)をコードなどによってID化
しておくと、推論動作が極めて高速化する。例えば、“
l irl側の変数が“症状゛および“温度″であった
とすると、各変数を“A“u B ++とID化し、ま
た値の“大きな音がする゛高い”をそれぞれ°“a、”
b”とID化しておくと、推論部2において推論を行っ
ているときの°“tf”側の成立有無の判定時間が短く
なる。従来の方法では、“if”側が成立しているかど
うかをチエツクする際、=l = t l”側の要素(
変数と値の組み)の文字列(“°症状°°や“大きな音
がする”)に対し、パターンマツチングを行う。つまり
、 “′症状゛−“大きな音がするパ が成立していることを確かめるために、事実の中から“
症状゛(4バイト)を探し、その値として“″大きな音
がする” (14バイト)が登録しであるかどうかを1
バイトづつ比較していた。このために所要時間がかなり
長くなっていた。これに対して、この発明では、ルール
に記述されている文字列を1つの記号とみなし、文字列
に1つの番号など(ID)を割り当て、ID比較により
パターンマツチングを実現さセているために時間の短縮
をはかることができる。
(f)実施例
第2図はこの発明に係る後向き推論方法を示す概略のフ
ローチャートである。
ローチャートである。
先ず、ステップnlでは“°原因”や“′対策゛なとの
’then”側の変数の内、キーより指定(設定)され
た変数の数(“原因°”と°゛対対策金指定した場合は
、変数の数は2となる)をゴール数として、その設定さ
れたゴール数のループを設定する。次に、1つの変数に
対する終了フラグをオフしくn2)、n3でその1つの
変数(ゴール変数)をブツシュし、n4でブツシュした
ゴール変数に対するループを設定する。次に、n5にお
いて上記ゴール変数を“then ”にもつルールをテ
ーブルから探す。そしてルールが見つかればn7で後の
ルールの1) ir II側を評価し、そのルールの“
if′”側が成立しているかどうかの判定を行う(n8
)。もし成立していれば、そのルールの“then”側
の要素を事実として登録する(neo)。すなわち、“
then”側の要素が例えば“原因”=“バルブの目詰
まり゛であれば、それが事実として登録される。また、
“if”側が不成立であれば何もせず、不明であれば、
“1)側に存在する判定できない要素の変数のIDを新
たな変数としてブツシュする。すなわち、この変数に対
する処理が、上記n2から行なわれる。
’then”側の変数の内、キーより指定(設定)され
た変数の数(“原因°”と°゛対対策金指定した場合は
、変数の数は2となる)をゴール数として、その設定さ
れたゴール数のループを設定する。次に、1つの変数に
対する終了フラグをオフしくn2)、n3でその1つの
変数(ゴール変数)をブツシュし、n4でブツシュした
ゴール変数に対するループを設定する。次に、n5にお
いて上記ゴール変数を“then ”にもつルールをテ
ーブルから探す。そしてルールが見つかればn7で後の
ルールの1) ir II側を評価し、そのルールの“
if′”側が成立しているかどうかの判定を行う(n8
)。もし成立していれば、そのルールの“then”側
の要素を事実として登録する(neo)。すなわち、“
then”側の要素が例えば“原因”=“バルブの目詰
まり゛であれば、それが事実として登録される。また、
“if”側が不成立であれば何もせず、不明であれば、
“1)側に存在する判定できない要素の変数のIDを新
たな変数としてブツシュする。すなわち、この変数に対
する処理が、上記n2から行なわれる。
一方、上記n6でルールが見つからなかった場合には、
n9でその変数がユーザーへの問い合わ廿を含むもので
あるかどうかを判定し、問い合わせ指定があればn12
でユーザーへの問い合わせを行い、入力されたデータを
事実として登録する(n13)。そして、n14でその
ゴール変数をポツプする。上記n9でユーザーへの問い
合わせ指定がない場合にはn15で終了フラグ5をオン
して当該ゴール変数に対するループ処理を終了する。
n9でその変数がユーザーへの問い合わ廿を含むもので
あるかどうかを判定し、問い合わせ指定があればn12
でユーザーへの問い合わせを行い、入力されたデータを
事実として登録する(n13)。そして、n14でその
ゴール変数をポツプする。上記n9でユーザーへの問い
合わせ指定がない場合にはn15で終了フラグ5をオン
して当該ゴール変数に対するループ処理を終了する。
上記のループ動作を各ゴール変数に対して行っていき、
最終的に求めたいゴール変数に対する値(事実)が与え
られるまで繰り返して動作が続けられていく。
最終的に求めたいゴール変数に対する値(事実)が与え
られるまで繰り返して動作が続けられていく。
本実施例では、上記の動作においてn5でルールをテー
ブルから探すようにしているために、ルール全てを総当
たりする必要がない。また、上記n7で−L ir +
−側を評価する際に文字列によるパターンマツチングを
行わずID比較によりマツチングを行っている。このた
め、推論実行時間が非常に高速化する利点がある。また
、ルールをテーブルから探すときにもID比較により行
っているために、さらに高速化が可能になっている。実
際に、後向き推論を実行する言語PROLOGを使用し
た場合に比較し、約10〜30倍の高速化を実現するこ
とができた。
ブルから探すようにしているために、ルール全てを総当
たりする必要がない。また、上記n7で−L ir +
−側を評価する際に文字列によるパターンマツチングを
行わずID比較によりマツチングを行っている。このた
め、推論実行時間が非常に高速化する利点がある。また
、ルールをテーブルから探すときにもID比較により行
っているために、さらに高速化が可能になっている。実
際に、後向き推論を実行する言語PROLOGを使用し
た場合に比較し、約10〜30倍の高速化を実現するこ
とができた。
(g)発明の効果
この発明によれば、後向き推論を行う際に指定された変
数を使用しているルールの番号をテーブルから探して実
質的に知識ベースを縮小化し、その縮小化された知識ベ
ースに基づいて推論動作を行うために、元の知識ベース
が非常に大きなものであっても推論動作が高速に行える
利点がある。
数を使用しているルールの番号をテーブルから探して実
質的に知識ベースを縮小化し、その縮小化された知識ベ
ースに基づいて推論動作を行うために、元の知識ベース
が非常に大きなものであっても推論動作が高速に行える
利点がある。
また、“if””側の評価を行う際にIDによってマツ
チングを行うようにしているために、さらに推論動作を
高速化することができる。
チングを行うようにしているために、さらに推論動作を
高速化することができる。
第1図はこの発明の詳細な説明するための図である。ま
た、第2図はこの発明の実施例の動作を示すフローチャ
ートである。 1−知識ベース、 2−推論部、 4−テーブル。
た、第2図はこの発明の実施例の動作を示すフローチャ
ートである。 1−知識ベース、 2−推論部、 4−テーブル。
Claims (2)
- (1)プロダクションルール(if then ルール
)により記述された知識ベースから、各ルールで使用さ
れる“then”側の変数別に、その変数を“then
”側に使用しているルールの番号をテーブルとして予め
登録しておき、 後向き推論を行う際に、指定された変数を使用している
ルールの番号を前記テーブルから探して知識ベースを縮
小化し、その縮小化された知識ベースに基づいて後向き
推論を行うことを特徴とする後向き推論の高速化方法。 - (2)少なくとも前記“if”側の変数と値とをID化
し、推論動作時の変数と値の比較をID比較で行うこと
を特徴とする、請求項1記載の後向き推論の高速化方法
。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1213696A JPH0377139A (ja) | 1989-08-18 | 1989-08-18 | 後向き推論の高速化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1213696A JPH0377139A (ja) | 1989-08-18 | 1989-08-18 | 後向き推論の高速化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0377139A true JPH0377139A (ja) | 1991-04-02 |
Family
ID=16643479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1213696A Pending JPH0377139A (ja) | 1989-08-18 | 1989-08-18 | 後向き推論の高速化方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0377139A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008070048A (ja) * | 2006-09-14 | 2008-03-27 | Matsushita Electric Ind Co Ltd | シャッター装置 |
-
1989
- 1989-08-18 JP JP1213696A patent/JPH0377139A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008070048A (ja) * | 2006-09-14 | 2008-03-27 | Matsushita Electric Ind Co Ltd | シャッター装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wahler et al. | Clone detection in source code by frequent itemset techniques | |
US7003779B2 (en) | Hierarchical connected graph model for implementation of event management design | |
Harman et al. | Pre/post conditioned slicing | |
Bottaci | A genetic algorithm fitness function for mutation testing | |
US8943003B2 (en) | Composite production rules | |
Karlaš et al. | Data debugging with shapley importance over end-to-end machine learning pipelines | |
Wang et al. | Benchmarking the combinatorial generalizability of complex query answering on knowledge graphs | |
Tapia-Flores et al. | Discovering Process Models from Incomplete Event Logs using Conjoint Occurrence Classes. | |
JPH0377139A (ja) | 後向き推論の高速化方法 | |
JP2651452B2 (ja) | 質問回答方法および装置 | |
Zomorodian | Context-free language induction by evolution of deterministic push-down automata using genetic programming | |
Brenas et al. | A Hoare-like calculus using the SROIQ σ logic on transformations of graphs | |
CN115292347A (zh) | 一种基于规则的主动式sql算法性能检查装置及方法 | |
Logeswaran et al. | Code Models are Zero-shot Precondition Reasoners | |
JPH10340278A (ja) | 論理等価性検証方法および論理等価性検証装置 | |
US20100050132A1 (en) | System and GUI for specifying composite predicates and dynamic systems | |
Mensfelt et al. | Logic-Enhanced Language Model Agents for Trustworthy Social Simulations | |
Fan et al. | High-frequency keywords to predict defects for android applications | |
Dannert et al. | Generalized absorptive polynomials and provenance semantics for fixed-point logic | |
Bakewell et al. | Towards automatic modelling of constraint satisfaction problems: A system based on compositional refinement | |
KR102490281B1 (ko) | 제품 불량 원인 분석 방법 및 장치 | |
US20240202522A1 (en) | Device and method for generating deep learning model graph and abstract syntax tree for integrated compiler | |
Aucher | BMS revisited | |
JP2002073387A (ja) | データベース処理方法 | |
JPH03131933A (ja) | ルール型知識ベースの動的後向きデバッガ |