产生式系统实验报告张昆

产生式系统实验报告张昆

ID:35209401

大小:88.36 KB

页数:20页

时间:2019-03-21

产生式系统实验报告张昆_第1页
产生式系统实验报告张昆_第2页
产生式系统实验报告张昆_第3页
产生式系统实验报告张昆_第4页
产生式系统实验报告张昆_第5页
资源描述:

《产生式系统实验报告张昆》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、产生式系统实验报告姓名:张昆学号:E201102044一、产生式系统的组成一个产生式系统由三大部分组成。1、一组称为产生式的规则。每一规则分左右两部,左部确定该规则的可用性,右部描述应用该规则时采用的行动。这些行动主要是修改数据库的内容。2、一个或多个数据库,它们含有适合于该特定任务的信息,数据库中有些部分可以使永久性的,有些则是仅与求解当前问题有关,可按任何适当的方法构造数据库中的信息;3、一个执行问题求解过程的规则解释程序。产生式系统是通过一系列“识别—作用”周期来执行求解过程。简单的“识别—作用”执行模式是这样:相对于当前数据库的内容,每条产生式的左部被

2、求值,确定哪些产生式是被满足的,二这些被满足的产生式构成冲突集。从冲突集中选择一个产生式,执行该产生式的右部,即改变数据库中的内容。相对于新的数据库内容,这种“识别—作用”过程重复进行。“识别—作用”周期停止的条件是:(1)冲突集为空域;(2)所期望的数据库内容出现,即求得问题的解。从冲突集总选择一个产生式的过程称为冲突解决。二、动物识别系统1、动物识别系统规则库设计数据结构:typedefstruct{intrslt;intcodNum;//记载前提的个数intcod[10];//记载前提的序号intused;//记载是否已匹配成功}Nrule;方便起见,前

3、提和结论对应为数字,如图1;规则库存储于文件中,如图2图1图22、回溯策略2.1如图3,纵向递归推理,横向选择推理分支;两个回溯点:状态不合法、冲突集为空;结束:找到目标状态、尝试所有路径没有解答图32.2递归算法:PS_BACKTRACK(db)(1)若db指示了目标状态,则输出(显示)db作为解答,算法成功结束;  (2)若db指示了失败状态,则返回真值F;  (3)rs:=RULE_ACTIVATE(db),并用启发式知识对rs中的规则按从优到劣的次序排列;  (4)若rs为空,则返回真值F;  (5)r:=MOVE_FIRST(rs);  (6)PS_

4、BACKTRACK(TRANSFORM(db,r));  (7)返回语句(4)。其中db为数据库内容,RULE_ACTIVATE()为匹配函数,MOVE_FIRST()功能为获取最优触发规则,TRANSFORM()将结论加入数据库1、相关策略3.1冲突解决策略:按详细程度排序,即优先选择前提部分描述最详细的规则3.2动物识别系统的推理策略:正向推理一、实验代码#include#include#include#include#defineMAXNUM50typedefstruct{intx

5、uh;charvalu[50];}Node;typedefstruct{intstat;//0:还未访问1:至少用过一次2:没用过但不冲突intxuh;}NFact;typedefstruct{intsnum;//开始时的事实数intcurnum;//目前的事实数intnotEnoughFlag;//当最后若所有未用过的条件支持一个结论,但条件不足时,置1NFactcod[MAXNUM];}Fact;typedefstruct{intrslt;intcodNum;//记载前提的个数intcod[10];//记载前提的序号intused;//记载是否已匹配成功}

6、Nrule;typedefstruct{intcodXuh;intstat;doubleweight;intrslt;//intcodNum;}bQueueNode;typedefstruct{inthead;inttail;bQueueNodebNode[MAXNUM];}bQueue;typedefstruct{intcanReachTime;inthavReached;}Reach;typedefstruct{intlastCodXuhInQueue;intmyXuh;//intmycodNum;intmyRslt;doublemyweight;}Clo

7、seNode;typedefstruct{inthead;inttail;CloseNodenode[MAXNUM];}Close;intcodnum=28;intgoalnum=7;intrulenum=0;Nodegoal[20];Nodecod[50];Nrulerule[50];FactinpCod;bQueuebqueue;ReachrecReach[MAXNUM];Closeclose;voidreadGoal(){FILE*fp;inti;if((fp=fopen("goal.txt","r"))==NULL){printf("cannotope

8、ngoal");exit(0);}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。