人工智能与专家系统实验报告

上传人:新** 文档编号:465931271 上传时间:2023-07-08 格式:DOC 页数:17 大小:444.50KB
返回 下载 相关 举报
人工智能与专家系统实验报告_第1页
第1页 / 共17页
人工智能与专家系统实验报告_第2页
第2页 / 共17页
人工智能与专家系统实验报告_第3页
第3页 / 共17页
人工智能与专家系统实验报告_第4页
第4页 / 共17页
人工智能与专家系统实验报告_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《人工智能与专家系统实验报告》由会员分享,可在线阅读,更多相关《人工智能与专家系统实验报告(17页珍藏版)》请在金锄头文库上搜索。

1、暨南大学本科实验报告专用纸课程名称人工智能与专家系统成绩评定0实验项目名称动物识别系统设计指导教师0实验项目编号实验项目类型综合型 0实验地点 南校区 学生姓名学号0学院 信息科学技术学院系计算机科学系专业0实验时间 2017 年 12 月日-年月日 温度湿度(一)实验目的通过建立动物识别产生式系统,理解并体会知识库与控制系统相互独立的智能产生式系统与一般程序的区别。(二)实验要求1.系统的设计和完成可以使用各种编程语言和实用工具,不采用人工智能语言和工具 ,这样能够使你更加了解专家系统。2.推荐使用语言 :C、 java、php 、javascript 、 delphi 。也可以使用其他语言

2、。3 如果使用数据库做后台 ,要求使用最简单的Access。4.系统可以使用图形界面 ,简单的也可以使用字符界面,不要求。(三)设计并完成知识库本课程设计的主旨是设计并实现具有15 条规则能自动识别7 种动物的产生.专业整理 .式系统 。 知识库与控制系统相互独立,系统完成后除了能识别已有的7 种动物外,按产生式知识表示方法向知识库中添加、修改新的知识后 ,系统能在不修改控制系统程序的情况下仍然能正确识别。1. 综合数据库中数据结构说明 ;产生式通过满足前件,得到后件的结论或者执行后件的相应动作,即后件由前件来触发 。 同时,一个产生式生成的结论可以作为另一个产生式的前提或语言变量使用 ,进一

3、步可构成产生式系统。因此在通过有关特征识别动物的特征中规定:识别动物的前件(即动物的特征):0:有毛发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. 信天翁于是在综合数据库中 ,将设定 int 型数组 facts30 ,数组的

4、编号对应着以上事实的编号 ,数组的值为 1 时,意味着对应编号的事实为真,否则为假 。2. 规则的格式的数据结构说明 ;. 学习帮手 .专业整理 .每条规则都拥有前件与后件,建立规则的数据结构时将前件与后件定义即可。 前件往往有一个或多个,而后件只有一个 。 为了方便采用序号代替前后件,因此定义前件为数组int condition6 ;定义后件 intoutcome; 规则的数据结构也随之敲定 。typedefstruct / 存放规则的结构体 ,由条件和结果构成皆用序号 int 型表示int condition6;/ 条件int outcome; / 结论Rule;将 15 条规则转化为符号

5、 :0,20,/ 有毛发 哺乳动物1,20,/ 有奶 哺乳动物2,21,/ 有羽毛 鸟3,4,21,/ 会飞 & 会生蛋鸟5,22,/ 吃肉 食肉动物6,7,8,22,/ 有锋利牙齿 & 有爪 & 眼向前方 食肉动物20,8,23,/ 哺乳动物 & 有蹄 有蹄类动物20,9,23,/ 哺乳动物 & 反刍 有蹄类动物20,22,11,12,25,/ 哺乳动物 & 食肉动物 & 有黄褐色皮毛 & 有暗斑点 豹20,22,11,13,24,/ 哺乳动物 & 食肉动物 & 有黄褐色皮毛 & 有黑色条纹 虎23,14,15,12,27,/ 有蹄类动物 & 长脖子 & 长腿 & 有暗斑点 长颈鹿. 学习帮

6、手 .专业整理 .23,13,26,/ 有蹄类动物 & 有黑色条纹 斑马21,16,14,15,18,29,/ 鸟& 不会飞 & 长脖子 & 长腿 & 黑白两色 鸵鸟21,16,17,18,28,/ 鸟 & 不会飞 & 会游泳 & 黑白两色 企鹅21,19,24;/ 鸟& 善飞 信天翁3. 推理机(包括正向和反向推理 )过程。在上述规则的基础上 ,可以利用推理机对给出条件进行推理:(1) 正向推理 :从下向上进行推理。在建立规则库时需要使子规则在父规则前。在进行正向推理是只要将规则库从前到后遍历下来看是否能由给定规则推出相应结果即可 。通过判断每次与规则匹配得到的结果,如果结果不是动物,则更新

7、事实库 ,将此次结果作为前件匹配下一个规则。若有多条规则可用 ,则使用冲突消解策略,选取一条规则执行 。 直到最终结果是动物时,视为推理成功 。具体步骤如下 :a. 输入得到当前事实 facts ,针对 15 条 rules 轮流筛查可用规则 。b. 将 rules 所需的前件提取出来与 facts 中的事实进行比对 。若有多条规则可用时 ,冲突消解的方法是 :选取规则表 rules 中顺序最前的规则 。找到可用规则 。扩充 facts ,重复 b 步骤 。c. 在无可扩充时 ,检查 facts ,若其中没有结果是动物 ,则推理失败;若其中推理出超过两个动物时 ,仍记为推理失败 。 在只有一个

8、结果是动物时 ,则推理成功 。. 学习帮手 .专业整理 .(2) 反向推理 :反向推理的思路是从事实库的动物开始从前向后进行匹配,如果所有动物都不能推出为识别失败,若能推出其中一个,则识别成功 。若有多条规则可用,则从中选出一条规则,将规则的前件添加到综合数据库。具体步骤如下 :a. 假设有动物 m ,若其已经在 facts 中,则假设成立搜索终止 。b. 若该假设动物不在 facts 中,则从 rules 中所有后件中含有该动物 m 的规则组成表 。 若该表为空 ,则询问用户 fact 的真假,若为真 ,则将 fact 添加到 facts,搜索中止 。c. 若该表不为空 ,则逐个判断表内规则

9、是否有规则的全部前件都包含在 facts 中,如果有,则证明假设可以直接被推出 。 识别成功 。d. 如果不能直接推出 ,则重新进行步骤 b,直至满足步骤 c。 这时,我们认为假设可以被间接推出 ,识别成功 。否则若没有可用规则 ,则识别失败 。( 四)开发环境1.工具: C-free 5.02.语言: C+3.OS 平台说明 :win10. 学习帮手 .专业整理 .(五)综合数据库与推理机1. 综合数据库char *animalBase = 0.有毛发 ,1.有奶 ,2.有羽毛 ,3.会飞 ,4.会生蛋 ,5.吃肉 ,6.有锋利牙齿,7.有爪 ,8.眼向前方 ,9.有蹄 ,10. 反刍 ,1

10、1. 有黄褐色皮毛 ,12. 有暗斑点 ,13. 有黑色条纹 ,14.长脖子 ,15. 长腿 ,16.不会飞 ,17. 会游泳 ,18.黑白二色 ,19. 善飞 ,20. 哺乳动物 ,21. 鸟,22.食肉动物 ,23. 有蹄类动物 ,24. 虎,25. 豹,26.斑马 ,27. 长颈鹿 ,28. 企鹅 ,29. 鸵鸟 ,30. 信天翁 ;对应以上特征 ,设定整型数组存储求解过程中产生的各种信息,包括初始事实、推理得到的中间结论 ,以及最终结论 。int facts30 = 0 ;/ 记录被选择的事实,初始化都为 0,被选择后赋值为1对三种不同的信息进行区分的方法是利用序号区间进行区分。0-1

11、9序号部分是存放原始信息 , 20-23 存放的是中间结论 ,24-30 存放了最后的结论 。2. 推理机推理部分主要使用了两个函数,分别是 deduce 函数和 animal 函数。Deduce 函数是用于根据原始信息,进行规则的遍历 ,不断正向推理的函数;animal 函数是利用 deduce 函数推理得出的facts 数组,即综合数据库 ,进行结果的判断 ,如果推理得出的结果唯一,则返回推理成功的信息,输出最终的结果,否则判定为推理失败 。for (i = 0;i15;i+)/ 依次对 15 条规则进行检测j = 0;. 学习帮手 .专业整理 .f = rulei.conditionj;while (f != -1)/ 推理是否满足第i 条规则if (factsf = 0)/ 第 i 条规则有一个条件不满足,即为不满足该条规则break ;/ 从此次 i 规则检验循环中跳出j+;f = rulei.conditionj;/ 取出 i 规则中所需的条件序号if (f = -1)/ 若经过上一个循环有f=-1 ,则代表满足第i 条规则out1 = rulei.outcome;factsout1 = 1;/ 将得出的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号