人工智能产生式系统实验报告(共12页)_第1页
人工智能产生式系统实验报告(共12页)_第2页
人工智能产生式系统实验报告(共12页)_第3页
人工智能产生式系统实验报告(共12页)_第4页
人工智能产生式系统实验报告(共12页)_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PAGE PAGE 13实 验 报 告【实验(shyn)名称】_产生式系统_【实验(shyn)目的】1. 理解产生式系统的结构原理(yunl)与实际应用。2. 掌握产生式规则表示及规则库组建的实现方法。3. 熟悉和掌握产生式系统的运行机制,掌握基于规则推理的基本方法。【实验原理】产生式系统用来描述若干个不同的以一个基本概念为基础的系统,这个基本概念就是产生式规则或产生式条件和操作对。在产生式系统中,论域的知识分为两部分:用事实表示静态知识;用产生式规则表示推理过程和行为。【实验内容】1.自己建造产生式系统(包括规则库和事实库),然后进行推理,即可以自己输入任何的事实,并基于原有的规则和输入的事

2、实进行推理。2.建造动物识别系统,能根据输入的动物特征判断是那种动物或给出相应的回答。3.算法设计 = 1 * GB3 首先建立事实库事实库是在程序的开始直接输入的,用户根据需要选择,即要求用户先输入特征个数,然后输入动物的特征,进行识别。如果未识别出来,则可以重新选择,或者退出。动物的特征如下:1有奶 2有毛发 3有羽毛(ymo) 4会飞 5生蛋 6有爪 7有犬齿 8目盯前方 9吃肉 10有蹄 11反刍(fnch)食物 12黄褐色 13黑色条纹 14黑色斑点 15长腿 16长脖子 17暗斑点 18白色(bis) 19不会飞 20黑白色 21会游泳 22善飞 23不怕风浪 24哺乳动物 25鸟

3、 26食肉动物 27有蹄动物 28偶蹄动物 29海燕 30老虎 31金钱豹 32长颈鹿 33斑马 34鸵鸟 35企鹅 = 2 * GB3 建立静态规则库即建立产生式规则,本算法采用了产生中间事实的方法,便于建立和使用规则。为了便于设计,我们把要识别的动物限于7种,这样所需要的产生式规则就比较少。本算法共有15种规则,如下:R1: 如果动物有奶,则它是哺乳动物R2: 如果动物有毛发,则它是哺乳动物R3: 如果动物有羽毛,则它是鸟R4: 如果动物会飞且生蛋,则它是鸟R5: 吃肉的哺乳动物是食肉动物R6: 有爪有犬齿木钉前方的哺乳动物是食肉动物R7: 有蹄的哺乳动物是有蹄动物R8: 反刍食物的有蹄动

4、物是偶蹄动物R9: 黄褐色有黑条纹的食肉动物是老虎R10:黄褐色有黑色斑点的食肉动物是金钱豹R11:长腿长脖子有黄褐色暗斑点的有蹄动物是长颈鹿R12:有黑白条纹的有蹄动物是斑马R13:不会飞长腿长脖的鸟是鸵鸟R14:不会飞会游泳黑白色的鸟是企鹅R15:善飞不怕风浪的鸟是海燕具体表示如下:R1: 1-24R2: 2-24R3: 3-25R4: 4*5-25R5: 6*7*8*24-26R6: 9*24-26R7: 10*24-27R8: 11*27-28R9: 12*13*24-30R10: 12*14*24-31R11: 12*15*16*17*27-32R12: 13*18*27-33R13

5、: 15*16*19*25-34R14: 19*20*21*25-35R15: 22*23*25-29 = 3 * GB3 正向(zhn xin)推理过程从已知事实出发,通过规则库求得结论,或称数据驱动方式。推理(tul)过程是:规则集中的规则前件与事实库中的事实进行匹配(ppi),得匹配的规则集合。从匹配规则集合中选择一条规则作为使用规则。执行使用规则的后件,将该使用规则的后件送入事实库中。重复这个过程直至达到目标。 如有多条匹配规则需从中选一条作为使用规则,本算法是根据规则的顺序依次选择,且规则中不存在同一组事实对应多条匹配规则。 = 4 * GB3 实验流程图 = 5 * GB3 实验结

6、果及分析如输入如下事实:有羽毛、善飞、不怕风浪。系统的推理过程如下: 先从规则(guz)库中取出第一条规则R1,检查(jinch)其前提是否可与事实库中的已知事实相匹配。 R1的前提(qint)是“有奶”,但事实库中无此事实,故匹配失败;然后取R2,匹配失败;接着取R3,该前提与已知事实“有羽毛”相匹配,故R3被执行,并将其结论“鸟”作为新的事实加入到事实库中。此时,事实库的内容变为:有羽毛、善飞、不怕风浪、鸟;此后,R4R14均匹配失败,接着取R15,该前提“善飞+不怕风浪+鸟”与已知事实相匹配,R15被执行,并推出“该动物是海燕”。由于“海燕”已是目标集合中的一个结论,即已推出最终结果,故

7、问题求解过程结束。 下面是程序运行的结果:【实验程序】#include#define N 23void main()int i,j,k,a,b,c;int num;int factN,tempN;int flag=1;while(flag=1)printf(动物的特征如下:n);printf(1有奶 2有毛发 3有羽毛 4会飞 5生蛋n6有爪 7有犬齿(qunch) 8目盯前方 9吃肉 10有蹄n11反刍食物 12黄褐色 13黑色条纹 14黑色斑点 15长腿n16长脖子 17暗斑点 18白色 19不会飞 20黑白色n21会游泳 22善飞 23不怕风浪n);printf(请输入描述(mio sh

8、)该动物特征的个数:);scanf(%d,&num);printf(请输入(shr)对这只动物的特征描述的序号(按序号由小到大):n);for(i=0;inum;i+)scanf(%d,&a);facti=a;/*for(i=0;inum;i+)if(facti=1)factnum=24;num+;printf(使用规则1,新增加的事实为: 哺乳动物n);break;/*for(i=0;inum;i+)if(facti=2)factnum=24;num+;printf(使用规则2,新增加的事实为: 哺乳动物n);break;/*for(i=0;inum;i+)if(facti=3)factnu

9、m=25;num+;printf(使用规则3,新增加的事实为:鸟n);break;/*k=0;for(i=0;inum;i+)if(facti=4)tempk=facti;k+;continue;if(facti=5)tempk=facti;break;if(temp0=4&temp1=5)factnum=25;num+;printf(使用(shyng)规则4,新增加的事实为:鸟n);/* k=0;for(i=0;inum;i+)if(facti=6)tempk=facti;k+;continue;if(facti=7)tempk=facti;k+;continue;if(facti=8)te

10、mpk=facti;k+;continue;if(facti=24)tempk=facti;break;if(temp0=6&temp1=7&temp2=8&temp3=24)factnum=26;num+;printf(使用规则(guz)5,新增加的事实为:食肉动物n);/*k=0;for(i=0;inum;i+)if(facti=9)tempk=facti;k+;continue;if(facti=24)tempk=facti;break;if(temp0=9&temp1=24)factnum=26;num+;printf(使用规则6,新增加(zngji)的事实为:食肉动物n);/*k=0

11、;for(i=0;inum;i+)if(facti=10)tempk=facti;k+;continue;if(facti=24)tempk=facti;break;if(temp0=10&temp1=24)factnum=27;num+;printf(使用规则(guz)7,新增加的事实为:有蹄动物n);/*k=0;for(i=0;inum;i+)if(facti=11)tempk=facti;k+;continue;if(facti=27)tempk=facti;break;if(temp0=11&temp1=27)factnum=28;num+;printf(使用(shyng)规则8,新增

12、加的事实为:偶蹄动物n);/*k=0;for(i=0;inum;i+)if(facti=12)tempk=facti;k+;continue;if(facti=13)tempk=facti;k+;continue;if(facti=24)tempk=facti;break;if(temp0=12&temp1=13&temp2=24)factnum=30;/num+;printf(使用规则(guz)9,新增加的事实为:老虎n该动物为老虎n);/*k=0;for(i=0;inum;i+)if(facti=12)tempk=facti;k+;continue;if(facti=14)tempk=fa

13、cti;k+;continue;if(facti=24)tempk=facti;break;if(temp0=12&temp1=14&temp2=24)factnum=31;/num+;printf(使用规则(guz)10,新增加的事实为:金钱豹n该动物为金钱豹n);/*k=0;for(i=0;inum;i+)if(facti=12)tempk=facti;k+;continue;if(facti=15)tempk=facti;k+;continue;if(facti=16)tempk=facti;k+;continue;if(facti=17)tempk=facti;k+;continue;

14、if(facti=27)tempk=facti;break;if(temp0=12&temp1=15&temp2=16&temp3=17&temp4=27)factnum=32;/num+;printf(使用规则11,新增加(zngji)的事实为:长颈鹿n该动物为长颈鹿n);/*k=0;for(i=0;inum;i+)if(facti=13)tempk=facti;k+;continue;if(facti=18)tempk=facti;k+;continue;if(facti=27)tempk=facti;break;if(temp0=13&temp1=18&temp2=27)factnum=

15、33;/num+;printf(使用规则12,新增加的事实为:斑马(bnm)n该动物为斑马n);/*k=0;for(i=0;inum;i+)if(facti=15)tempk=facti;k+;continue;if(facti=16)tempk=facti;k+;continue;if(facti=19)tempk=facti;k+;continue;if(facti=25)tempk=facti;break;if(temp0=15&temp1=16&temp2=19&temp3=25)factnum=34;/num+;printf(使用规则13,新增加的事实为:鸵鸟(tunin)n该动物为

16、鸵鸟n);/*k=0;for(i=0;inum;i+)if(facti=19)tempk=facti;k+;continue;if(facti=20)tempk=facti;k+;continue;if(facti=21)tempk=facti;k+;continue;if(facti=25)tempk=facti;break;if(temp0=19&temp1=20&temp2=21&temp3=25)factnum=35;/num+;printf(使用规则(guz)14,新增加的事实为:企鹅n该动物为企鹅n);/*k=0;for(i=0;inum;i+)if(facti=22)tempk=facti;k+;continue;if(facti=23)tempk=facti;k+;continue;if(facti=25)tempk=facti;break;if(temp0=22&temp1=23&temp2=25)factnum=29;/num+;printf(使用规则15,新增加的事实(shsh)为:海燕n该动物为海燕n);/*if(factnum29)printf(现有事实(shsh)无法推断出结果!n);printf(n);printf(继续(jx)请按1,退出按其它数字键:);scanf(%d,&c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论