人工智能实验报告大全.docx

上传人:b****1 文档编号:2081505 上传时间:2022-10-26 格式:DOCX 页数:96 大小:856.84KB
下载 相关 举报
人工智能实验报告大全.docx_第1页
第1页 / 共96页
人工智能实验报告大全.docx_第2页
第2页 / 共96页
人工智能实验报告大全.docx_第3页
第3页 / 共96页
人工智能实验报告大全.docx_第4页
第4页 / 共96页
人工智能实验报告大全.docx_第5页
第5页 / 共96页
点击查看更多>>
下载资源
资源描述

人工智能实验报告大全.docx

《人工智能实验报告大全.docx》由会员分享,可在线阅读,更多相关《人工智能实验报告大全.docx(96页珍藏版)》请在冰豆网上搜索。

人工智能实验报告大全.docx

人工智能实验报告大全

 

人工智能课实验报告

(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、实验目的

(1)熟悉谓词逻辑表示法;

(2)掌握人工智能谓词逻辑中的经典例子——猴子摘香蕉问题的编程实现。

二、编程环境

VC语言

3、问题描述

房子里有一只猴子(即机器人),位于a处。

在c处上方的天花板上有一串香蕉,猴子想吃,但摘不到。

房间的b处还有一个箱子,如果猴子站到箱子上,就可以摸着天花板。

如图1所示,对于上述问题,可以通过谓词逻辑表示法来描述知识。

要求通过VC语言编程实现猴子摘香蕉问题的求解过程。

图1猴子摘香蕉问题

4、源代码

#include

unsignedinti;

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();

}

5、实验结果相关截图

六、心得体会

通过本次实验,我初步了学会了使用VC的新建工程,并且进行简单的程序编写。

此外我还学会如何使用一些谓词来解决生活中的一些简单问题,并且用VC编程给出具体的操作步骤,感觉对VC编程有了新的认识。

在实验中我也遇到过许多问题,比如在我写完代码进行编译时总是会出现一个错误“ fatalerrorC1010:

在查找预编译头时遇到意外的文件结尾,是否忘记了向源中添加“#include‘stdafx.h’”关于这个错误我我问了几个同学得不出答案后,我决定通过上网查找,最终找到了解决方法,需要在该项目的每一个cpp结尾的文件属性中设置不使用预编译头即可。

在这个过程中也锻炼了自己解决问题的能力。

人工智能课实验报告

实验2:

编程实现简单动物识别系统的知识表示

 

学院:

自动化学院

班级:

智能1501

姓名:

少鹏(33)

学号:

06153034

日期:

2017-3-1310:

15-12:

00

 

实验2:

编程实现简单动物识别系统的知识表示

一、实验目的

1、理解和掌握产生式知识表示方法;

2、能够通过VC编程语言实现产生式系统的规则库。

二、实验容

1、以动物识别系统的产生式规则为例;

2、用选定的编程语言建造规则库和综合数据库,并能对它们进行增加、删除和修改操作。

3、实验步骤

1、确定需要识别的动物及其属性

本次实验的简单动物识别系统总共能识别7种动物,即:

老虎、金钱豹、斑马、长颈鹿、企鹅、鸵鸟和信天翁。

2、建立识别七种动物识别系统的规则

3、选定编程语言并确定综合数据库和规则库结构

(1)选用C语言作为编程语言

(2)综合数据库的建立

(3)规则库的建立

四、程序源代码

#include

#include

usingnamespacestd;

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++;

cout<<"number"<

cin>>r[cat].count;

cout<<"输入事实,两种以上的事实请在每个事实后加上‘&’符号"<

cin>>r[cat].pre;

cout<<"输入结果"<

cin>>r[cat].back;

r[cat].mark=0;

while

(1)

{

cout<<"输入“1”继续添加规则,输入“2”查看规则库"<

intp;

cin>>p;

if(p==1)

{

input();

}

else

{

if(p==2)

{

check();

}

else

{

cout<<"输入错误,重新输入"<

}

}

}

}

}

voiddelate()

{

cout<<"输入要删除的条数"<

intbar;

cin>>bar;

for(intt=0;t<=cat;t++)

{

r[bar-1]=r[bar];

bar++;

}

cat--;

check();

}

voidcheck()

{

cout<

for(inti=0;i<=cat;i++)

{

cout<

}

cout<

while

(1)

{

cout<<"输入“1”继续添加规则,输入“3”删除选定的规则"<

cin>>m;

if(m==1)

{

input();

}

else

{

if(m==3)

delate();

}

}

}

intfind_rule(ints)//查找规则库中是否还有可使用的规则

{

for(inti=0;i<=15;i++)

s=s*r[i].mark;

//cout<<"find_rule结果"<

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++;//事实库的长度加1

r.mark=1;//标记规则已使用过

break;

}

else

i++;

}

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]="";

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1