コンピュータサイエンスにおいて、ルールベースシステムとは、ドメイン固有の知識がルールの形で表現され、汎用的な推論を使用してドメイン内の問題を解決する コンピュータシステムです。
1970 年代に 人工知能の分野で 2 種類のルールベース システムが登場しました。
- 条件からアクションを導き出すためにif-then ルールを使用するプロダクション システム。
- 条件ルールに基づいて結論を導き出す論理プログラミングシステム。
これら 2 種類のルールベースのシステム間の違いと関係は、誤解と混乱の大きな原因となってきました。
どちらの種類のルールベース システムも、順方向に連鎖するか逆方向に連鎖するかのいずれかを使用します。これは、リストされたコマンドを順番に実行する命令型プログラムとは対照的です。ただし、ロジック プログラミング システムには論理的な解釈がありますが、プロダクション システムには論理的な解釈がありません。
生産システムのルール
生産ルールベースシステムの典型的な例としては、ルールを使用して推論や選択を行うドメイン固有のエキスパートシステムがあります。 [1] たとえば、エキスパートシステムは、医師が症状のクラスターに基づいて正しい診断を選択したり、ゲームをプレイするための戦術的な動きを選択したりするのに役立ちます。
ルールベースのシステムは、コンピュータプログラムをコンパイルまたは解釈するための語彙解析や、自然言語処理に使用できます。[2]
ルールベース プログラミングでは、データとルールの初期セットから実行命令を導き出そうとします。これは、実行手順を順番にリストする命令型プログラミング言語で使用される方法よりも間接的な方法です。
工事
典型的なルールベースのシステムには4つの基本コンポーネントがあります。[3]
- ルールのリストまたはルール ベース。これは、特定の種類の知識ベースです。
- 推論エンジンまたは意味論的推論器は、入力とルールベースの相互作用に基づいて情報を推論したり、アクションを実行したりします。インタープリタは、次の一致-解決-動作サイクルを実行して、プロダクションシステムプログラムを実行します。 [4]
- 一致: この最初のフェーズでは、すべての生成物の条件側が作業メモリの内容と照合されます。その結果、満たされたすべての生成物のインスタンス化で構成されるセット (競合セット) が得られます。生成物のインスタンス化は、生成物の条件側を満たす作業メモリ要素の順序付きリストです。
- 競合解決: この第 2 フェーズでは、競合セット内の生成物インスタンスの 1 つが実行用に選択されます。生成物が満たされない場合、インタープリタは停止します。
- 実行: この第 3 フェーズでは、競合解決フェーズで選択された生成物のアクションが実行されます。これらのアクションにより、作業メモリの内容が変更される場合があります。このフェーズの最後に、実行は最初のフェーズに戻ります。
- 一時作業記憶。事実のデータベースです。
- 入力信号と出力信号を送受信するためのユーザー インターフェイスまたは外部へのその他の接続。
推論エンジンのマッチングフェーズには論理的な解釈がありますが、競合解決フェーズとアクションフェーズには論理的な解釈がありません。代わりに、「そのセマンティクスは通常、さまざまな状態変更演算子の一連の適用として説明され、多くの場合非常に複雑になります (どの ECA ルールがいつ実行されるかなどを決定する際に行われた選択によって異なります)。そのため、宣言的であるとはほとんど見なされません」。[5]
論理プログラミングのルール
コンピュータ システムの論理プログラミング ファミリには、プログラミング言語Prolog、データベース言語Datalog、知識表現および問題解決言語Answer Set Programming (ASP) が含まれます。これらすべての言語では、ルールは節の形式で記述されます。
A :- B1, ..., Bn.
論理形式では陳述文として読まれます。
A if B1 and ... and Bn.
第一階述語論理のサブセットであるホーン節(または「確定」節)の最も単純なケースでは、A、B 1、...、B n はすべて原子式です。
ホーン節論理プログラムはチューリング完全であるが[6] [7] 、多くの実用的なアプリケーションでは、否定を失敗として実装する否定条件を許可することでホーン節プログラムを拡張すると便利です。このような拡張された論理プログラムは、非単調論理の知識表現機能を備えています。
生成規則と論理プログラミング規則の違いと関係
2 種類のシステムの最も明らかな違いは、生成規則は通常、前向きに記述され(A ならば B )、論理プログラミング規則は通常、後向きに記述され ( A ならば B )ることです。論理プログラミング規則の場合、この違いは表面的で、純粋に構文上のものです。規則の意味には影響しません。また、規則が Prolog スタイルで逆方向に推論して目標B をサブ目標Aに縮小するために使用されるか、Datalog スタイルでAからB を導出するために使用されるかにも影響しません。
プロダクション ルールの場合、構文の順方向は、ほとんどのプロダクション ルールの刺激応答特性を反映しており、刺激Aが応答B の前に来ます。さらに、応答が単に仮定Aから結論B を導き出すだけの場合でも ( modus ponensの場合)、一致-解決-行為サイクルはAからBへの順方向の推論に制限されます。プロダクション システムで逆方向の推論を行うには、まったく異なる種類の推論エンジンを使用する必要があります。
ポール・サガードは、認知科学入門[8] の中で、人間の思考をモデル化する代替アプローチとして、論理とルールを挙げています。彼は論理プログラムを一般論として捉えているのではなく、Prologをルールベースのシステムではなく、「論理表現と演繹的手法を使用するプログラミング言語」と捉えています(40ページ)。
彼は、 IF 条件 THEN アクションという形式のルールは論理条件文に「非常に似ている」が、より単純で、心理的な妥当性が高いと主張している (51 ページ)。 論理とルールのその他の違いの中でも、彼は、論理は演繹を使用するが、ルールは検索を使用する (45 ページ) こと、および前向きにも後ろ向きにも推論できる (47 ページ) ことを主張している。 論理の文は「普遍的に真であると解釈されなければならない」が、ルールは例外を認めるデフォルトにすることができる(44 ページ)。 彼は、ルールのこれらの特徴のすべてが論理プログラミング システムに当てはまるとは考えていない。
参照
参考文献
- ^ Crina Grosan、Ajith Abraham (2011 年 7 月 29 日)。インテリジェント システム: 現代的アプローチ。Springer Science & Business Media。pp. 149– 。ISBN 978-3-642-21004-4。
- ^ Sin-Wai Chan (2014年11月13日)。Routledge Encyclopedia of Translation Technology。Routledge。pp. 454– 。ISBN 978-1-317-60815-8。
- ^ 「ルールベースシステムとは何か?」j-paine.org。
- ^ Cabitza, F., & Dal Seno, B. (2005). 「DJess - 分散推論システムを展開するための知識共有ミドルウェア」. International Journal of Computer and Information Engineering . 2 : 66–69. doi :10.1109/PERSER.2005.1506416. S2CID 27323155.
{{cite journal}}: CS1 maint: 複数の名前: 著者リスト (リンク) - ^ Maier, D., Tekle, KT, Kifer, M. および Warren, DS、2018。「Datalog: 概念、歴史、および展望」。『宣言型論理プログラミング: 理論、システム、およびアプリケーション』(pp. 3-100)。
- ^ Tärnlund, S.Å. (1977). 「ホーン節の計算可能性」. BIT Numerical Mathematics . 17 (2): 215–226. doi :10.1007/BF01932293. S2CID 32577496.
- ^ Andréka, H.; Németi, I. (1978). 「プログラミング言語としてのホーン述語論理の一般化された完全性」. Acta Cybernetica . 4 (1): 3–10.
- ^ タガード、ポール (2005)。マインド:認知科学入門。MIT 出版。p. 11。ISBN 9780262701099。https://www.google.co.uk/books/edition/Mind_second_edition/gjcR1U2HT7kC?hl=ja&gbpv=1&pg=PP11&printsec=frontcover
