人工智能实验报告.doc

上传人:jian****018 文档编号:9108344 上传时间:2020-04-03 格式:DOC 页数:7 大小:44KB
返回 下载 相关 举报
人工智能实验报告.doc_第1页
第1页 / 共7页
人工智能实验报告.doc_第2页
第2页 / 共7页
人工智能实验报告.doc_第3页
第3页 / 共7页
点击查看更多>>
资源描述
人工智能导论实验报告一、实验题目:识别型专家系统设计识别动物专家系统二、实验目的1、掌握专家系统的基本构成2、掌握用人工智能程序设计语言编制智能程序的方法三、实验内容1、 所选编程语言:C语言;2.拟订的规则:(1)若某动物有奶,则它是哺乳动物。(2)若某动物有毛发,则它是哺乳动物。(3)若某动物有羽毛,则它是鸟。 (4)若某动物会飞且生蛋,则它是鸟。(5) 若某动物是哺乳动物且有爪且有犬齿且目盯前方,则它是食肉动物。(6)若某动物是哺乳动物且吃肉,则它是食肉动物。 (7)若某动物是哺乳动物且有蹄,则它是有蹄动物。 (8)若某动物是哺乳动物且反刍食物,则它是有蹄动物。 (9)若某动物是食肉动物且黄褐色且有黑色条纹,则它是老虎。 (10)若某动物是食肉动物且黄褐色且有黑色斑点,则它是金钱豹。(11)若某动物是有蹄动物且长腿且长脖子且黄褐色且有暗斑点,则它是长颈鹿。 (12)若某动物是有蹄动物且白色且有黑色条纹,则它是斑马。(13)若某动物是鸟且不会飞且长腿且长脖子且黑白色,则它是驼鸟。 (14)若某动物是鸟且不会飞且会游泳且黑白色,则它是企鹅。(15)若某动物是鸟且善飞,则它是海燕。2、 设计思路:用户界面:采用问答形式;知识库(规则库):存放产生式规则,推理时用到的一般知识和领域知识,比如动物的特征,动物的分类标准,从哺乳动物、食肉动物来分,再具体地添加一些附加特征得到具体动物;建立知识库的同时也建立了事实库。事实库是一个动态链表,一个事实是链表的一个结点。知识库通过事实号与事实库发生联系。数据库:用来存放用户回答的问题,存放初始状态,中间推理结果,最终结果;推理机:采用正向推理,推理机是动物识别的逻辑控制器,它控制、协调系统的推理,并利用知识库中的规则对综合数据库中的数据进行逻辑操作。推理机担负两项基本任务:一是检查已有的事实和规则,并在可能的情况下增加新的事实;二是决定推理的方式和推理顺序。将推理机制同规则对象封装在一起,事实对象记录了当前的状态,规则对象首先拿出前提条件的断言(只有这些前提都有符合时才会做这条规则的结论),询问事实对象集,如事实对象集不知道,则询问用户,如所有前提条件都被证实为真则结论为真,否则系统不知道结论真假。 3、 程序流程图:程序运行如下:有暗斑点长脖子长腿有蹄有蹄动物长颈鹿有黑色斑点金钱豹目盯前方有犬齿有爪吃肉有奶有毛发哺乳动物食肉动物有黑色条纹黄褐色老虎以老虎,金钱豹,长颈鹿为例画出程序流程图如下:四、程序编制:程序包括知识库,数据库,推理机:#include Fact.h#include Rule.h#include fact *Fact;/事实集(概念集)char *str=, 反刍 /* 1 */, 有蹄 /* 2 */, 哺乳类 /* 3*/, 眼前 /* 4 */, 有爪 /* 5 */, 犬齿 /* 6 */, 吃肉 /* 7 */, 下蛋 /* 8 */, 能飞 /* 9*/, 羽毛 /* 10 */, 有蹄类 /* 11 */, 食肉类 /* 12 */, 鸟类 /* 13 */, 有奶 /* 14 */, 毛发 /* 15 */, 善飞 /* 16 */, 黑色白条纹/* 17 */, 游泳 /* 18 */, 长腿 /* 19 */, 长脖子 /* 20 */, 黑条纹 /* 21 */, 暗斑点 /* 22 */, 黄褐色 /* 23 */, 海燕 /* 24 */, 企鹅 /* 25 */, 鸵鸟 /* 26 */, 斑马 /* 27 */, 长颈鹿 /* 28 */, 老虎 /* 29 */, 金钱豹 /* 30 */,0;/规则之前件(条件)集,注意与下面对应int rulep6=22,23,12,3,0,0, /*金钱豹 30*/ 21,23,12,3,0,0, /*老虎 29*/ 22,19,20,11,0,0, /*长颈鹿 28*/ 21,17,0,0,0,0, /*斑马 27*/ 17,19,20,13,-9,0, /*鸵鸟 26*/ 17,18,13,-9,0,0, /*企鹅 25*/13,16,0,0,0,0, /* 海燕24*/ 15,0,0,0,0,0, /*哺乳类 3*/ 14,0,0,0,0,0, /*哺乳类 3*/10,0,0,0,0,0, /*鸟类 13*/ 8,9,0,0,0,0, /*鸟类 13*/ 3,7,0,0,0,0, /*食肉类 12*/3,4,5,6,0,0, /*食肉类12*/ 3,2,0,0,0,0, /*有蹄类 11*/ 3,1,0,0,0,0 /*有蹄类 11*/;/规则之后件(结论)集,注意与上面对应int rulec= 30, 29, 28, 27, 26, 25, 24, 3, 3, 13, 13, 12, 12, 11, 11; /前7个是要识别的动物int main() fact *F,*T; rule *Rule,*R; char ch8; int i=1; Fact=NULL; /事实链表初始为空while(strcmp(stri, 0)!=0) /在事实链表中填入事实,注意:前插入 F=new fact(i,stri+); F-Next=Fact; Fact=F; F=Fact; Fact=NULL; while(F) /倒转上面前插入的事实链表。inverted the upper linkT=F; F=F-Next; T-Next=Fact; Fact=T; ch0=R;ch1=U;ch2=L;ch3=E;ch4=_;ch5=a;ch6=0; Rule=NULL; /规则链表初始为空for (i=0;iNext=Rule; Rule=R; ch5+; R=Rule; for (;) /开始询问用户。Query i=R-Query(Fact); if(i=1) break; /如果返回“真”,则推理成功,并可以给出最后专家答案!R=R-Next; if(!R) break; /所有规则都扫描完,R为空,则退出! if(!R) coutendlI dont know; /所有规则都扫描完的退出,表明无法得到答案,coutendlPress any bar to exit!; getchar(); return True; 五、实验总结本次识别型专家系统可以采用多种语言编程,如vc,vb,prolog等等,我通过认真阅读了实验指导书后,选用c语言设计成动物识别型专家系统;通过本次专家系统的设计,使我懂得了专家系统的组成,一个简单的专家系统由用户界面,知识库,数据库,推理机,解释机构,知识获取机构;懂得了专家系统的类别,分为解释型,预测型,诊断型,设计型,控制型,管理型专家系统;专家系统的推理机分为正向推理和反向推理,一般选用正向推理;在运行程序的过程中,我认识到智能系统的实践性和理论性的结合;在规则库里可以增删规则,得到新的识别型专家系统,如识别鸟类,花,交通工具等等;通过此次设计型实验,在一定程度上锻炼了自己的设计能力和编程能力;
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!