产生式系统
产生式系统是给定事实与推理规则,进行自动推理的推理系统。python
产生式系统由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 \},$ 则推理步骤以下code
- $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\}$
if True:
print('hello')