人工智能 课程实验 专家系统 程序源代码

人工智能 课程实验 专家系统 程序源代码

ID:38672955

大小:24.44 KB

页数:11页

时间:2019-06-17

人工智能 课程实验 专家系统 程序源代码_第1页
人工智能 课程实验 专家系统 程序源代码_第2页
人工智能 课程实验 专家系统 程序源代码_第3页
人工智能 课程实验 专家系统 程序源代码_第4页
人工智能 课程实验 专家系统 程序源代码_第5页
资源描述:

《人工智能 课程实验 专家系统 程序源代码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、游戏人物识别专家系统——邢洪伟一试验题目游戏人物识别专家系统二、试验内容游戏人物识别专家系统是流行的专家系统实验模型,主要基于暴风公司出品的经典角色类游戏《暗黑破坏神2》。它用产生式规则来表示知识,共15条规则、可以识别八种游戏人物,这些规则既少又简单,可以改造他们,也可以加进新的规则,还可以用来识别其他东西的新规则来取代这些规则。游戏人物识别15条规则的中文表示是:规则1:如果:暴风公司出品的单机角色类游戏则:该游戏是暗黑破坏神规则2:如果:暴风公司出品的单机对抗类游戏则:该游戏是魔兽争霸规则3:如果:暴风公司出品的网络游戏则:该游戏是魔兽世界规则4:如果:网易游戏出品的网络

2、游戏则:该游戏是梦幻西游规则5:如果:暗黑破坏神版本1则:该游戏是暗黑破坏神1规则6:如果:是暗黑破坏神2则:该游戏是暗黑破坏神2规则7:如果:是暗黑破坏神3则:该游戏是暗黑破坏神3规则8:如果:暗黑破坏神版本2单手武器使用木棒的男性人物则:该人物是德鲁伊规则9:如果:暗黑破坏神2单手武器使用手杖的男性人物则:该人物是亡灵法师规则10:如果:暗黑破坏神版本2单手武器使用法杖的女性人物则:该人物是巫师规则11:如果:暗黑破坏神版本2双手武器使用长剑和盾牌的男性人物则:该人物是圣骑士规则12:如果:暗黑破坏神版本2单手武器使用斧头的男性人物则:该人物是野蛮人规则13:如果:暗黑破坏

3、神版本2单手武器使用爪子的男性人物则:该人物是刺客规则14:如果:暗黑破坏神2单手武器使用长剑的女性人物则:该人物是亚马逊规则15:如果:梦幻西游单手使用鞭子的女性人物则:该人物是飞燕女游戏人物识别专家系统由15条规则组成,可以识别八种动物,在15条规则中,共出现37个概念(也称作事实),共37个事实,每个事实给一个编号,从编号从1到37,在规则对象中我们不存储事实概念,只有该事实的编号,同样规则的结论也是事实概念的编号,事实与规则的数据以常量表示,其结构如下:Char*str{}={"暴风公司出品","网易游戏出品","单机游戏","网络游戏","角色类游戏","对抗类游戏"

4、,"版本1","版本2","版本3","男性","女性","暗黑破坏神","梦幻西游","暗黑破坏神1","暗黑破坏神2","暗黑破坏神3","单身武器","双手武器","使用木棒","是用手杖","使用法杖","使用长剑","使用盾牌","使用斧头","使用爪子","使用鞭子","巫师","德鲁伊","亡灵法师","法师","圣骑士","野蛮人","刺客","亚马逊","飞燕女","魔兽争霸","魔兽世界",""}程序用编号序列的方式表达了产生式规则,如资料中规则15,如果动物是鸟,且善飞,则该动物是信天翁。相应的规则数组第八条是{26,17,13,11,0,0},第26

5、个是“使用鞭子”,如果事实成立,询问使用者下一个事实,第17个“单手武器”,如果也成立,询问使用者下一个事实,第13个是“梦幻西游”则,如果事实成立,询问使用者下一个事实,第11个是“女性”,如果事实成立,查找结论断言编号数组{28,29,30,31,32,33,34,35,14,15,16,13,12,36,37}中第八个“35”,这里35对应事实数组中的“飞燕女”。上述就是程序的推理过程,也是程序中的重点,该部分是由规则类(类rule)中的Query方法实现。三、流程图及分析      主程序的流程主要是:1、实例化各个类2、初始化事实集3、初始化规则集4、使用规则对事实进

6、行推导规则类:规则名只是用来表示规则的一个名称,前提链由前提类生成的单链表,结论则是存放结论断言编号,表示由该规则的到的结论在事实数组中的编号。事件类:事实号和规则数据和结论断言数据的数字相对应。激活标志表示这个时候有没有被处理过。断言这保存推理后的结论,在重复查询这个事实条件时不用反复询问用户。四、关键代码intrule::Query(){inti;charc;intTag=0;list*L;fact*F;F=Fact;L=Pre;if(L==NULL)cout<<"Error";while(L!=NUll){F=Fact;for(;;){if(abs(L->GetNum

7、ber())==F->GetNumber())break;F=F->Next;//查找与规则前提链中前提号相同的事实}if(L->GetNumber()>0){if((F->GetSucc())==true){L=L->Next;continue;}if((F->GetSucc())==false)returnfalse;}//如果事实的断言为真则判断下一个前提,为假,则表示该规则不适合else{if((F->GetSucc())==true)returnfalse;if((F->GetSu

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

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

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