产生式系统实验报告 姓名:张昆 学号:E201102044 一、产生式系统的组成 一个产生式系统由三大部分组成
1、一组称为产生式的规则
每一规则分左右两部,左部确定该规则的可用性,右部描述应用该规则时采用的行动
这些行动主要是修改数据库的内容
2、一个或多个数据库,它们含有适合于该特定任务的信息,数据库中有些部分可以使永久性的,有些则是仅与求解当前问题有关,可按任何适当的方法构造数据库中的信息;3、一个执行问题求解过程的规则解释程序
产生式系统是通过一系列“识别—作用”周期来执行求解过程
简单的“识别—作用”执行模式是这样:相对于当前数据库的内容,每条产生式的左部被求值,确定哪些产生式是被满足的,二这些被满足的产生式构成冲突集
从冲突集中选择一个产生式,执行该产生式的右部,即改变数据库中的内容
相对于新的数据库内容,这种“识别—作用”过程重复进行
“识别—作用”周期停止的条件是:(1)冲突集为空域;(2)所期望的数据库内容出现,即求得问题的解
从冲突集总选择一个产生式的过程称为冲突解决
二、动物识别系统 1、 动物识别系统规则库设计 数据结构: typedef struct { int rslt; int codNum;//记载前提的个数 int cod[10];//记载前提的序号 int used;//记载是否已匹配成功 }Nrule; 方便起见,前提和结论对应为数字,如图 1;规则库存储于文件中,如图 2 图 1 图 2 2、 回溯策略 2
1 如图 3,纵向递归推理,横向选择推理分支 ;两个回溯点:状态不合法、冲突集为空 ;结束:找到目标状态、尝试所有路径没有解答 图3 2
2 递归算法:PS_BACKTRACK(db) (1) 若db 指示了目标状态,则输出(显示)db 作为解答,算法成功结束; (2) 若db 指示了失败状态,则返回真值F; (3) rs :