您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > AI人工智能 > 人工智能实验报告大全
..人工智能课内实验报告(8次)学院:自动化学院班级:智能1501姓名:刘少鹏(34)学号:06153034..目录课内实验1:猴子摘香蕉问题的VC编程实现……………………1课内实验2:编程实现简单动物识别系统的知识表示………5课内实验3:盲目搜索求解8数码问题………………………18课内实验4:回溯算法求解四皇后问题………………………33课内实验5:编程实现一字棋游戏……………………………37课内实验6:字句集消解实验…………………………………46课内实验7:简单动物识别系统的产生式推理………………66课内实验8:编程实现D-S证据推理算法……………………78..人工智能课内实验报告实验1:猴子摘香蕉问题的VC编程实现学院:自动化学院班级:智能1501姓名:刘少鹏(33)学号:06153034日期:2017-3-810:15-12:00..实验1:猴子摘香蕉问题的VC编程实现一、实验目的(1)熟悉谓词逻辑表示法;(2)掌握人工智能谓词逻辑中的经典例子——猴子摘香蕉问题的编程实现。二、编程环境VC语言三、问题描述房子里有一只猴子(即机器人),位于a处。在c处上方的天花板上有一串香蕉,猴子想吃,但摘不到。房间的b处还有一个箱子,如果猴子站到箱子上,就可以摸着天花板。如图1所示,对于上述问题,可以通过谓词逻辑表示法来描述知识。要求通过VC语言编程实现猴子摘香蕉问题的求解过程。图1猴子摘香蕉问题四、源代码#includestdio.hunsignedinti;voidMonkey_Go_Box(unsignedcharx,unsignedchary){..printf(Step%d:monkey从%c走到%c\n,++i,x,y);//x表示猴子的位置,y为箱子的位置}voidMonkey_Move_Box(charx,chary){printf(Step%d:monkey把箱子从%c运到%c\n,++i,x,y);//x表示箱子的位置,y为香蕉的位置}voidMonkey_On_Box(){printf(Step%d:monkey爬上箱子\n,++i);}voidMonkey_Get_Banana(){printf(Step%d:monkey摘到香蕉\n,++i);}voidmain(){unsignedcharMonkey,Box,Banana;printf(********智能1501班**********\n);printf(********06153034************\n);printf(********刘少鹏**************\n);printf(请用abc来表示猴子箱子香蕉的位置\n);printf(Monkey\tbox\tbanana\n);scanf(%c,&Monkey);getchar();printf(\t);scanf(%c,&Box);getchar();printf(\t\t);scanf(%c,&Banana);getchar();printf(\n操作步骤如下\n);if(Monkey!=Box){Monkey_Go_Box(Monkey,Box);}if(Box!=Banana){Monkey_Move_Box(Box,Banana);}Monkey_On_Box();Monkey_Get_Banana();printf(\n);..getchar();}五、实验结果相关截图六、心得体会通过本次实验,我初步了学会了使用VC的新建工程,并且进行简单的程序编写。此外我还学会如何使用一些谓词来解决生活中的一些简单问题,并且用VC编程给出具体的操作步骤,感觉对VC编程有了新的认识。在实验中我也遇到过许多问题,比如在我写完代码进行编译时总是会出现一个错误“fatalerrorC1010:在查找预编译头时遇到意外的文件结尾,是否忘记了向源中添加“#include‘stdafx.h’”关于这个错误我我问了几个同学得不出答案后,我决定通过上网查找,最终找到了解决方法,需要在该项目的每一个cpp结尾的文件属性中设置不使用预编译头即可。在这个过程中也锻炼了自己解决问题的能力。..人工智能课内实验报告实验2:编程实现简单动物识别系统的知识表示学院:自动化学院班级:智能1501姓名:刘少鹏(33)学号:06153034日期:2017-3-1310:15-12:00..实验2:编程实现简单动物识别系统的知识表示一、实验目的1、理解和掌握产生式知识表示方法;2、能够通过VC编程语言实现产生式系统的规则库。二、实验内容1、以动物识别系统的产生式规则为例;2、用选定的编程语言建造规则库和综合数据库,并能对它们进行增加、删除和修改操作。三、实验步骤1、确定需要识别的动物及其属性本次实验的简单动物识别系统总共能识别7种动物,即:老虎、金钱豹、斑马、长颈鹿、企鹅、鸵鸟和信天翁。2、建立识别七种动物识别系统的规则3、选定编程语言并确定综合数据库和规则库结构(1)选用C语言作为编程语言(2)综合数据库的建立(3)规则库的建立四、程序源代码#includeiostream#includestringusingnamespacestd;structRULES{intcount;charpre[255];charback[255];intmark;};voidcheck();RULESr[100]={{1,有毛发,哺乳动物,0},//所有规则静态数据库{1,有奶,哺乳动物,0},{1,有羽毛,鸟,0},{2,会飞&下蛋&,鸟,0},{1,吃肉,食肉动物,0},..{3,有锋利的牙齿&有爪&眼睛盯着前方&,食肉动物,0},{2,哺乳动物&有蹄&,有蹄类哺乳动物,0},{2,哺乳动物&反刍&,有偶蹄类哺乳动物,0},{4,哺乳动物&食肉动物&黄褐色&有暗斑&,金钱豹,0},{4,哺乳动物&食肉动物&黄褐色&黑色条纹&,老虎,0},{4,有蹄类哺乳动物&有长脖子&有长腿&有暗斑&,长颈鹿,0},{2,有蹄类哺乳动物&黑条纹&,斑马,0},{5,鸟&不会飞&有长脖子&有长腿&黑白色&,鸵鸟,0},{4,鸟&不会飞&会游泳&黑白色&,企鹅,0},{2,鸟&会飞&,信天翁,0},{1,反刍,哺乳动物,0}};intnumber;intm;intcat=15;inta;intlength;//输入的事实长度stringf[255];//输入的事实数组voidinput(){while(1){cat++;coutnumberendl;cinr[cat].count;cout输入事实,两种以上的事实请在每个事实后加上‘&’符号endl;cinr[cat].pre;cout输入结果endl;cinr[cat].back;r[cat].mark=0;while(1){cout输入“1”继续添加规则,输入“2”查看规则库endl;intp;cinp;if(p==1){input();}else{if(p==2){..check();}else{cout输入错误,重新输入endl;}}}}}voiddelate(){cout输入要删除的条数endl;intbar;cinbar;for(intt=0;t=cat;t++){r[bar-1]=r[bar];bar++;}cat--;check();}voidcheck(){coutendl规则库如下endl;for(inti=0;i=cat;i++){couti+1.由r[i].pre可得r[i].backendl;}coutendl;while(1){cout输入“1”继续添加规则,输入“3”删除选定的规则endl;cinm;if(m==1){input();}else{if(m==3)delate();}..}}intfind_rule(ints)//查找规则库中是否还有可使用的规则{for(inti=0;i=15;i++)s=s*r[i].mark;//coutfind_rule结果sendl;returns;}intcompare1(RULESr)//当前提条件为1时{intj=0,i=1;stringstr,str2;str=r.pre;while(i=length){if(f[i]==str){str2=r.back;f[length+1]=str2;//加入事实库length++;//事实库的长度加1r.mark=1;//标记规则已使用过break;}elsei++;}returnr.mark;}intcompare2(RULESr)//前提条件不为1{stringb[10];stringstr,str2;inti,j=1,num=0;inta=0;str=r.pre;for(i=0;i!=10;++i)//转换数组{b[i]=;}for(i=0;i!=str.length();++i){if(str.at(i)!='&'){..b[j]+=str.at(i);}else{j++;}}i=1;while(i=r.count){for(j=1;j!=length+1;j++){if(f[j]==b[i]){a+=1;}}i++;}if(a==r.count){str2=r.back;f[length+1]=str2;//加入事实库length++;//事实库的长度加1r.mark=1;//标记规则已使用过}returnr.mark;}voidresult(){inti=1,m=0;while(i!=length+1){if(f[i]==金钱豹){cout该动物是金钱豹endl;m=1;break;}elseif(f[i]==老虎){cout该动物是老虎endl;m=1;..break;}elseif(f[i]==长颈鹿){cout该动物是长颈鹿endl;m=1;break;}elseif(f[i]==斑马){cout该动物是斑马endl;m=1;break;}elseif(f[i]==鸵鸟){cout该动物是鸵鸟endl;m=1;break;}elseif(f[i]==企鹅){cout该动物是企鹅endl;m=1;break;}elseif(f[i]==信天翁){cout信天翁endl;m=1;break;}elsei++;}if(m==0)cout没有符合的动物,请确认特征,重新输入endl;..}voididetify(){inti=0,u=0;if(find_rule(u)==0)//如果规则库中还有未使用的规则{//cout还有未使用的规则endl;intnum=length;while(i16)//从第一条规则开始遍历{if(r[i].mark==0)//如果该条规则未使用{if(r[i].count==1)//该条规则前提数为1{u=compare1(r[i]);if(u==1)r[i].mark=1;if(r[i].mark==1){cout使用规则i+1;cout且加入的新事实为r[i].backendl;}}else{u=compare2(r[i]);if(u==1)r[i].mark=1;if(r[i].mark==1){cout使用规则i+1;cout且加入的新事实为r[i].backendl;}}}if(i==15){if(num!=length){i=0;num=length;}elsei=16;}..else{i++;}}}else{cout所有的规则都已使用endl;}result();}/*主函数*/voidmain(){cout******智能1501班********endl;cout******06153034**********endl;cou
本文标题:人工智能实验报告大全
链接地址:https://www.777doc.com/doc-7030240 .html