產生式系統
產生式系統是給定事實與推理規則,進行自動推理的推理系統。
產生式系統由3個部分組成:總數據庫、產生式規則、控制策略。
-
總數據庫是存放求解過程中各種當前信息的數據結構,包括已知事實與推理過程中得到的結論
-
產生式規則是一個規則庫,存放形如"if <前提>, then <結論>" 的推理規則.
-
控制策略決定了推理過程中如何應用規則,即確定下一步應該選用什么規則,類比於圖搜索中的圖搜索策略(DFS,BFS,etc.)
產生式系統 | 圖搜索 |
---|---|
初始事實數據 | 初始節點 |
目標條件 | 目標節點 |
產生式規則 | 狀態轉換規則 問題變換規則 |
規則集 | 操作集 |
動態數據庫 | 節點(狀態/問題) |
控制策略 | 搜索策略 |
按照搜索方向,產生式系統可分為正向推理、逆向推理和雙向推理。
例 正向推理 設\(P_1,P_2,P_3,P_4\) 為謂詞公式或命題, 初始總數據庫 \(DB=\{P_1\},\) 規則庫 \(R=\{R_1:P_1\to P_2, R_2:P_2\to P_3, R_3:P_3 \to P_4 \},\) 則推理步驟如下
- \(P_1 \in DB,\) 在規則庫\(R\)中尋找到可用的規則 \(R_1:P_1\to P_2,\) 得到 \(P_2,\) 當前\(DB=\{P_1,P_2\}\)
- \(P_2 \in DB,\) 在規則庫\(R\)中尋找到可用的規則 \(R_2:P_2\to P_3,\) 得到 \(P_3,\) 當前\(DB=\{P_1,P_2,P_3\}\)
- \(P_3 \in DB,\) 在規則庫\(R\)中尋找到可用的規則 \(R_3:P_3\to P_4,\) 得到 \(P_4,\) 當前\(DB=\{P_1,P_2,P_3,P_4\}\)