JPH02204835A - ルール型プログラム実行方法 - Google Patents
ルール型プログラム実行方法Info
- Publication number
- JPH02204835A JPH02204835A JP1023840A JP2384089A JPH02204835A JP H02204835 A JPH02204835 A JP H02204835A JP 1023840 A JP1023840 A JP 1023840A JP 2384089 A JP2384089 A JP 2384089A JP H02204835 A JPH02204835 A JP H02204835A
- Authority
- JP
- Japan
- Prior art keywords
- rule
- condition
- execution
- data
- based program
- 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
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本方式は電子計算機を利用したエキスパートシステム等
のルール型プログラムの実行方法に関する。
のルール型プログラムの実行方法に関する。
エキスパートシステム等のソフトウェアをルール型形式
で記述し実行するプロダクションシステムにおいて、従
来の実行方式は「プロダクションシステムの高速化技術
2石田・桑原、情報処理。
で記述し実行するプロダクションシステムにおいて、従
来の実行方式は「プロダクションシステムの高速化技術
2石田・桑原、情報処理。
第29巻、第5号(1988)、467〜477頁」で
論じられているようにRETE方式等がある。
論じられているようにRETE方式等がある。
プロダクションシステムの発端は、定理の自動証明とい
った時間の流れに関しない静的な世界において情報量を
増やすことであった。プロダクションシステムでのプロ
グラムは条件部と実行部を持つルールの集合で記述され
る。
った時間の流れに関しない静的な世界において情報量を
増やすことであった。プロダクションシステムでのプロ
グラムは条件部と実行部を持つルールの集合で記述され
る。
ある分野の専門家の思考を計算機で行なわせるエキスパ
ートシステムを作るときに、専門家の知識をルールとし
てプログラムを作ることで、従来のようにアルゴリズム
を意識しなくて済むので、プロダクションシステムが利
用されている。
ートシステムを作るときに、専門家の知識をルールとし
てプログラムを作ることで、従来のようにアルゴリズム
を意識しなくて済むので、プロダクションシステムが利
用されている。
ところでルールの実行によって条件の論理値が変化する
ような動的な世界の記述をすると、ある時点で条件部が
成立するルールが複数個ある時にどのルールを実行する
かによって結果は異なる可能性がある。多くのプロダク
ションシステムではこれを競合解消と呼んでルールの選
択順序を規定する戦略として与えらる。
ような動的な世界の記述をすると、ある時点で条件部が
成立するルールが複数個ある時にどのルールを実行する
かによって結果は異なる可能性がある。多くのプロダク
ションシステムではこれを競合解消と呼んでルールの選
択順序を規定する戦略として与えらる。
本発明では、成立するルールにどれが実行されても構わ
ず、もしルールの選び方によって不都合が生じるとすれ
ば、これはプログラムが誤っているという立場をとる0
本発明にもルールの選択順序を規定する戦略はあるが、
これはプログラムの不完全さを補なうものではなく、プ
ログラムの実行時間を短縮させる目的に用いる。以上の
ことから本発明に対してはプロダクションシステムとい
う名称を用いずに、ルール型形式記述のプログラムと表
現する。
ず、もしルールの選び方によって不都合が生じるとすれ
ば、これはプログラムが誤っているという立場をとる0
本発明にもルールの選択順序を規定する戦略はあるが、
これはプログラムの不完全さを補なうものではなく、プ
ログラムの実行時間を短縮させる目的に用いる。以上の
ことから本発明に対してはプロダクションシステムとい
う名称を用いずに、ルール型形式記述のプログラムと表
現する。
RETE方式では中間結果を保存して、ルールの実行に
よる変化分だけを再計算することにより、全条件を再計
算する方式より実行性能を向上させることを目的として
いる。しかし、ルールの実行による変化分が大きい時に
は、保存した中間結果が無効になり、さらに中間結果の
更新のため余分な処理が必要になるという問題があった
。
よる変化分だけを再計算することにより、全条件を再計
算する方式より実行性能を向上させることを目的として
いる。しかし、ルールの実行による変化分が大きい時に
は、保存した中間結果が無効になり、さらに中間結果の
更新のため余分な処理が必要になるという問題があった
。
このため、TREATRETE式間結果の一部について
は保存しないことで、変化分が大きい時に中間結果の更
新にかかる負担を減らしている。
は保存しないことで、変化分が大きい時に中間結果の更
新にかかる負担を減らしている。
しかし、ルールの条件部を満たすデータの組を全て求め
るために、あるルールの実行により実行前に成立してい
、た他のあるいは同一のルールの条件部が成立しなくな
った時にはそれらのルールについて求められていたデー
タ組がすべて削除されることになる。このため、事前に
それらのデータ組を求めるために要した処理と、それら
のデータ組を削除する処理が必要なので依然として中間
結果の保存が実行性能の向上に逆効果になるという問題
があった。
るために、あるルールの実行により実行前に成立してい
、た他のあるいは同一のルールの条件部が成立しなくな
った時にはそれらのルールについて求められていたデー
タ組がすべて削除されることになる。このため、事前に
それらのデータ組を求めるために要した処理と、それら
のデータ組を削除する処理が必要なので依然として中間
結果の保存が実行性能の向上に逆効果になるという問題
があった。
本発明の方式の目的は、ルールの条件部の計算方法と保
存情報の形式と管理方法を工夫することにより、保存情
報が無効になる割合を減らし、ルール型形式記述のプロ
グラムの実行性能を向上させることにより、エキスパー
トシステム等の応答速度を速くするルール型プログラム
の実行方法を提供することにある。
存情報の形式と管理方法を工夫することにより、保存情
報が無効になる割合を減らし、ルール型形式記述のプロ
グラムの実行性能を向上させることにより、エキスパー
トシステム等の応答速度を速くするルール型プログラム
の実行方法を提供することにある。
上記目的を達成するために、本発明ではルールの条件部
をデータ集合の要素の検索を必要とする限定条件と、そ
の他の基本条件に分けて、限定条件については1組のデ
ータを保存して、ルール実行後に毎回再計算するのを避
けている。
をデータ集合の要素の検索を必要とする限定条件と、そ
の他の基本条件に分けて、限定条件については1組のデ
ータを保存して、ルール実行後に毎回再計算するのを避
けている。
また、本発明ではルールの条件部の論理値に「真」 r
偽」の他に「不明」を加えて、必要となるまで条件判定
処理を遅らせている。
偽」の他に「不明」を加えて、必要となるまで条件判定
処理を遅らせている。
限定条件については条件を満たすデータの組を高々1つ
しか求めないことにより、データ集合の検索を減らすこ
とにより実行性能が向上する。
しか求めないことにより、データ集合の検索を減らすこ
とにより実行性能が向上する。
また、条件判定処理を必要とするまで遅らせることによ
り、条件判定処理の総数を減らして実行性能を向上させ
ている。
り、条件判定処理の総数を減らして実行性能を向上させ
ている。
ルールの実行による限定条件への影響は、ルールの実行
によって1単位増加する内部時計によりあるいはデータ
集合への追加、削除により1単位増加するデータ集合付
属の時計データ集合への追加、削除の最終時刻と限定条
件をチエツクした最終時刻を記憶して、前者の値の方が
大きい時だけ調べればよいので実行性能を向上させてい
る。
によって1単位増加する内部時計によりあるいはデータ
集合への追加、削除により1単位増加するデータ集合付
属の時計データ集合への追加、削除の最終時刻と限定条
件をチエツクした最終時刻を記憶して、前者の値の方が
大きい時だけ調べればよいので実行性能を向上させてい
る。
またルールの実行による限定条件への影響があらかじめ
解析可能な場合には、この情報を用いて実行時の条件判
定を高速にすることができる。
解析可能な場合には、この情報を用いて実行時の条件判
定を高速にすることができる。
以下1本発明の一実施例を第1図により説明する。第1
図はルール集合の実行手順を示すフローチャートである
。
図はルール集合の実行手順を示すフローチャートである
。
ルール集合とは、条件部と実行部を持つルールの集まり
である。ルール集合の実行とは、ルール集合中のルール
のうち条件部が成立するルールを選び、その実行部を実
行するという処理を条件部が成立するルールがなくなる
まで繰り返すことである0条件部が成立するルールが複
数の場合には、そのうちのどのルールが実行されてもよ
く、ルールの選択は処理系に任される。ルールの実行に
より、それまで条件部が成立していたルールが成立しな
くなったり、不成立のものが成立するようになる。
である。ルール集合の実行とは、ルール集合中のルール
のうち条件部が成立するルールを選び、その実行部を実
行するという処理を条件部が成立するルールがなくなる
まで繰り返すことである0条件部が成立するルールが複
数の場合には、そのうちのどのルールが実行されてもよ
く、ルールの選択は処理系に任される。ルールの実行に
より、それまで条件部が成立していたルールが成立しな
くなったり、不成立のものが成立するようになる。
ルールの条件には変数値の比較等の論理式の他に、デー
タ集合中にある条件を満たすデータが存在するというよ
うなデータ集合の検索を必要とする論理式がある。ここ
では前者を基本条件、後者を限定条件と呼ぶ。
タ集合中にある条件を満たすデータが存在するというよ
うなデータ集合の検索を必要とする論理式がある。ここ
では前者を基本条件、後者を限定条件と呼ぶ。
本実施例においては、基本条件はルールの実行後に毎回
計算を行なうが、限定条件については、その限定条件の
例あるいは例外といった特別なデータを1組保存する。
計算を行なうが、限定条件については、その限定条件の
例あるいは例外といった特別なデータを1組保存する。
さらに限定条件の論理値に「不明」という値を許して必
要となるまでデータ集合の検索を行なわない。限定条件
の論理値に、「真」 「偽」に[不明」を加えて3値論
理とするので、ルールの条件部も同じく3値論理となる
6上述の3値論理はファジィ論理とは根本的に異なる。
要となるまでデータ集合の検索を行なわない。限定条件
の論理値に、「真」 「偽」に[不明」を加えて3値論
理とするので、ルールの条件部も同じく3値論理となる
6上述の3値論理はファジィ論理とは根本的に異なる。
ファジィでは成立、不成立のどちらかであるという1,
0の2値論理に対し、成立する確率としてOと1の間の
値を許したものであるのに対して、本方式で用いる3値
論理を、計算がまだ完了していないため0か1かがわか
らないという、不明の状態を許したものである。
0の2値論理に対し、成立する確率としてOと1の間の
値を許したものであるのに対して、本方式で用いる3値
論理を、計算がまだ完了していないため0か1かがわか
らないという、不明の状態を許したものである。
第3図は本発明の一実施例で用いる3値論理の演算表で
ある。これは第1図のステップ3でルール条件部の論理
値を3値評価するときに用いる。
ある。これは第1図のステップ3でルール条件部の論理
値を3値評価するときに用いる。
(、a)は論理積“and″″の演算表であり、A a
ndBという論理式においてA、Bのうちどちらか−方
が偽であれば偽、両方とも真であれば真、その他は不明
となることを示している。(b)は論理和“or#(o
)は否定# n0tII、(d)は同値a=” (6
)は、(d)の否定、(g)のA≦Bは[AならばBJ
を意味する含意、(f)のAくBはA2Bの否定につい
ての演算衣である。
ndBという論理式においてA、Bのうちどちらか−方
が偽であれば偽、両方とも真であれば真、その他は不明
となることを示している。(b)は論理和“or#(o
)は否定# n0tII、(d)は同値a=” (6
)は、(d)の否定、(g)のA≦Bは[AならばBJ
を意味する含意、(f)のAくBはA2Bの否定につい
ての演算衣である。
その他、論理値を引数とする関数や論理値を添字とする
配列で引数、添字の値が不明のときは、その関数、配列
の値は不明とする。
配列で引数、添字の値が不明のときは、その関数、配列
の値は不明とする。
第1図のステップ1では限定条件テーブルを初期化する
。
。
限定条件テーブルは、限定条件番号を添字とする配列で
その要素は限定条件の3値論理値、限定条件の例あるい
は例外となる特別なデータ、限定条件をチエツク済みで
ある部分データ集合、限定条件をチエツクした最終時刻
である。
その要素は限定条件の3値論理値、限定条件の例あるい
は例外となる特別なデータ、限定条件をチエツク済みで
ある部分データ集合、限定条件をチエツクした最終時刻
である。
各データ集合ごとに、それが含むデータにフレーム番号
と呼ぶ自然数を与えて、フレーム番号を添字とする配列
でデータを管理する。上述の限定条件の特別なデータと
チエツク済みの部分データ集合はこのフレーム番号で示
される。
と呼ぶ自然数を与えて、フレーム番号を添字とする配列
でデータを管理する。上述の限定条件の特別なデータと
チエツク済みの部分データ集合はこのフレーム番号で示
される。
上述の限定条件チエツクの最終時刻とは、ルールの実行
により1単位増加する内部時計あるいはデータ集合への
追加、削除により、1単位増加するデータ集合付属の時
計を用いて設定される。さらに各データ集合には、デー
タ追加最終時刻、データ削除最終時刻を記録する。
により1単位増加する内部時計あるいはデータ集合への
追加、削除により、1単位増加するデータ集合付属の時
計を用いて設定される。さらに各データ集合には、デー
タ追加最終時刻、データ削除最終時刻を記録する。
ステップ2では全ルールについて選択優先度の初期化を
行なう。
行なう。
ステップ3では全ルールについて条件部の論理値を3値
で評価する。
で評価する。
すなわち限定条件については条件検索を行なわずに限定
条件テーブルの2値論理値を用いる。
条件テーブルの2値論理値を用いる。
ステップ4では条件部が[偽」でないルールが存在する
かを判定し、もし存在しなければルール集合の実行を終
了する。
かを判定し、もし存在しなければルール集合の実行を終
了する。
ステップ5では条件部が「偽」でないルールの中から優
先度最大のルールを選択する。
先度最大のルールを選択する。
ステップ6では選択されたルールの条件部の論理値が[
不明」であれば、必要な限定条件を計算して論理値を真
偽の2値で評価する。
不明」であれば、必要な限定条件を計算して論理値を真
偽の2値で評価する。
ステップ7で選択されたルールの条件部が「真」である
かを判定する0選択時に「不明」であり、前ステップ5
の計算の結果「偽」であった時には、選択したルールを
実行せずにステップ3へ進む。
かを判定する0選択時に「不明」であり、前ステップ5
の計算の結果「偽」であった時には、選択したルールを
実行せずにステップ3へ進む。
ステップ8では選択したルールの実行部を実行する。
ステップ9ではデータ集合へのデータの追加。
削除、変更があった時に限定条件に与える影響を調べ、
限定条件テーブルを更新する。つまり限定条件のチエツ
ク済み部分データ集合、限定条件の特別データ、限定条
件の3値論理値を更新する。
限定条件テーブルを更新する。つまり限定条件のチエツ
ク済み部分データ集合、限定条件の特別データ、限定条
件の3値論理値を更新する。
ただしこの時にデータ検索を行なって限定条件を計算す
ることはしない。
ることはしない。
ルールの実行においてデータの変更はデータの削除、追
加の連続する処理と考える。
加の連続する処理と考える。
ステップ9で、限定条件の変化を考える時に、データ集
合への追加、削除があったかどうかは、データ集合のデ
ータ追加最終時刻、データ削除最終時刻と、限定条件の
チエツク最終時刻の大小関係の判定による。
合への追加、削除があったかどうかは、データ集合のデ
ータ追加最終時刻、データ削除最終時刻と、限定条件の
チエツク最終時刻の大小関係の判定による。
ステップ10では全ルールについて、ルールの選択優先
度を更新する。
度を更新する。
ステップ10の次はステップ3へ進み、以上の処理を繰
り返す。
り返す。
第2図は、上述した本発明のプログラム実行方法を実現
するためのコンピュータの一般的構成を示すもので、中
央処理装置11.入出力装置12゜記憶袋W113.演
算装置14等を含む。
するためのコンピュータの一般的構成を示すもので、中
央処理装置11.入出力装置12゜記憶袋W113.演
算装置14等を含む。
本発明は各ルールの条件を満たすデータの組を全部求め
ず、高々1組しか求めない、またルールの条件に3値論
理を求めて必要となるまで条件判皆を遅らせることによ
り、従来方式に比べて実行速度を10倍以上高速化した
。
ず、高々1組しか求めない、またルールの条件に3値論
理を求めて必要となるまで条件判皆を遅らせることによ
り、従来方式に比べて実行速度を10倍以上高速化した
。
このため、エキスパートシステム等のプログラムの実行
において1本発明を用いることによりユーザへの応答時
間を短縮することができる。
において1本発明を用いることによりユーザへの応答時
間を短縮することができる。
また1本発明のルール型プログラム実行方式では、ある
時点で条件部に成立するルールが複数あるときには、ど
れを選択しても構わないという立場をとっているため、
特定の競合解決戦略を仮定したプログラミングを許さな
いので、ルール型プログラムの汎用性、保守性が高い。
時点で条件部に成立するルールが複数あるときには、ど
れを選択しても構わないという立場をとっているため、
特定の競合解決戦略を仮定したプログラミングを許さな
いので、ルール型プログラムの汎用性、保守性が高い。
第1図は本発明の一実施例のルール集合の実行手順を示
すフローチャートである。 第2図は、本発明が実行されるコンピュータを示すブロ
ック図である。
すフローチャートである。 第2図は、本発明が実行されるコンピュータを示すブロ
ック図である。
Claims (1)
- 【特許請求の範囲】 1、条件部と実行部を持つルールを記述し、条件部が成
立するルールの実行部を実行することで計算を行なうル
ール型プログラムの実行方法において、上記ルールの条
件部をデータ集合中の要素を検索しなければならない限
定条件と、その他の基本条件とに分けて、限定条件に対
しては条件を満たす1組のデータを保存し、基本条件に
対しては計算結果を保存しないことを特徴とするルール
型プログラム実行方法。 2、条件部と実行部を持つルールを記述し、条件部が成
立するルールの実行部を実行することで計算を行なうル
ール型プログラムの実行方法において、ルールの条件部
の論理値に「真」、「偽」の他に条件未判定による「不
明」という値をいれた3値論理を用いて、選択したルー
ルの論理値が「不明」であれば「真」、「偽」を明らか
にして、「真」のときにそのルールを実行することを特
徴とするルール型プログラム実行方法。 3、条件部と実行部を持つルールを記述し、条件部が成
立するルールの実行部を実行することで計算を行なうル
ール型プログラムの実行方法において、ルールの条件部
のうち条件判定に要する時間が長く、ルールの実行によ
る変化の割合が小さい条件について計算結果を保存する
ことを特徴とするルール型プログラム実行方法。 4、条件部と実行部を持つルールを記述し、条件部が成
立するルールの実行部を実行することで計算を行なうル
ール型プログラムの実行方法において、ルールの条件部
のうち条件判定に要する時間が長い条件について論理値
を「不明」とし、必要となつてから条件を計算して「真
」、「偽」を明らかにすることを特徴とするルール型プ
ログラム実行方法。 5、請求項1記載の限定条件の論理値が「不明」のまま
ルールの条件部に論理値を請求項2記載の3値論理で求
めることを特徴とするルール型プログラム実行方法。 6、ルールの実行により1単位増加する内部時計を有し
、データ集合ごとにデータの追加、削除、変更等の時刻
と、限定条件ごとにその保存する論理値、データの組を
求めた時刻を記憶し、大小関係を調べることで限定条件
の保存情報が有効であるかを判定することを特徴とする
請求項5記載のルール型プログラム実行方法。 7、データ集合ごとにデータの追加、削除、変更により
1単位増加する内部時計を有するとともに最終データ追
加時刻を記録し、限定条件ごとにその保存する論理値、
データの組を求めた時点での対応するデータ集合の時刻
を記憶し、大小関係を調べることで限定条件の保存情報
が有効であるから判定することを特徴とする請求項5記
載のルール型プログラム実行方法。 8、ルールの実行による当該ルール集合中の各ルールの
条件への影響をあらかじめ計算しておき、この情報を実
行時の条件判定を用いることを特徴とする請求項1また
は請求項2記載のルール型プログラム実行方法。 9、知識をルール型形式で記述し、ルールの実行により
制御や知識の獲得を目的とするエキスパートシステムに
おいて、上記各請求項記載のルール型プログラム実行方
式を用いたエキスパートシステム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1023840A JPH02204835A (ja) | 1989-02-03 | 1989-02-03 | ルール型プログラム実行方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1023840A JPH02204835A (ja) | 1989-02-03 | 1989-02-03 | ルール型プログラム実行方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH02204835A true JPH02204835A (ja) | 1990-08-14 |
Family
ID=12121596
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1023840A Pending JPH02204835A (ja) | 1989-02-03 | 1989-02-03 | ルール型プログラム実行方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH02204835A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10885037B2 (en) | 2017-08-02 | 2021-01-05 | Fujitsu Limited | Detection method, detection apparatus, and non-transitory computer-readable storage medium |
-
1989
- 1989-02-03 JP JP1023840A patent/JPH02204835A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10885037B2 (en) | 2017-08-02 | 2021-01-05 | Fujitsu Limited | Detection method, detection apparatus, and non-transitory computer-readable storage medium |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0877327B1 (en) | Method and apparatus for performing a join query in a database system | |
| US8386463B2 (en) | Method and apparatus for dynamically associating different query execution strategies with selective portions of a database table | |
| US20030061244A1 (en) | System and method for database query optimization | |
| US20020099688A1 (en) | Method and system for handling foreign key update in an object-oriented database environment | |
| Li et al. | ASLM: Adaptive single layer model for learned index | |
| US5721924A (en) | Method and device for obtaining a value of a referred to variable defined in a source program having a specific variable name | |
| US20070250517A1 (en) | Method and Apparatus for Autonomically Maintaining Latent Auxiliary Database Structures for Use in Executing Database Queries | |
| CN119806542A (zh) | 一种计算图的编译优化方法、装置、设备及介质 | |
| CN108710640B (zh) | 一种提高Spark SQL的查询效率的方法 | |
| JPH02204835A (ja) | ルール型プログラム実行方法 | |
| JP2780996B2 (ja) | 問い合わせ最適化処理方法 | |
| US12360993B2 (en) | Method and database system for optimizing query processing execution scheme | |
| JPH07319742A (ja) | 論理削除データ物理削除方式 | |
| JPH0456344B2 (ja) | ||
| JP3073889B2 (ja) | データ転送方法 | |
| JP2843748B2 (ja) | 排他制御方式 | |
| JP2001155028A (ja) | リレーショナルデータベースにおける集約演算処理方法、その装置及び集約演算処理プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
| JPS63271525A (ja) | デ−タ処理装置 | |
| Li et al. | ASLM: Adaptive Single Layer Model | |
| JP5060350B2 (ja) | リレーショナルデータベースのレコード追加システム | |
| WO2025248338A1 (zh) | 数据处理 | |
| JPH04102172A (ja) | 情報検索方式 | |
| JPH04276828A (ja) | 知識処理システムの仮説管理方式 | |
| JPH04241624A (ja) | 設計情報管理方式 | |
| JPH0243677A (ja) | 索引管理方式 |