昆明理工大学 人工智能 实验一

昆明理工大学 人工智能 实验一
昆明理工大学 人工智能 实验一

昆明理工大学信息工程与自动化学院学生实验报告

(2011 —2012 学年第 1 学期)

课程名称:人工智能开课实验室: 444 2011年 12 月 9日年级、专业、

计科093 学号200910405310 姓名孙浩川成绩

实验项目名称传教士与野人过河问题指导教师王剑

师评语该同学是否了解实验原理: A.了解□ B.基本了解□ C.不了解□

该同学的实验能力: A.强□ B.中等□ C.差□

该同学的实验是否达到要求: A.达到□ B.基本达到□ C.未达到□

实验报告是否规范: A.规范□ B.基本规范□ C.不规范□

实验过程是否详细记录: A.详细□ B.一般□ C.没有□

教师签名:

年月日

一、实验目的及内容

实验目的:理解并熟悉掌握深度优先搜索和广度优先搜索地方法。

实验内容:设有3个传教士和3个野人来到河边,打算乘一只船从右岸到左岸去。该船的负载能力为两人。在任何时候,如果野人人数超过传教士人数,野人就会把传教士吃掉。他们怎样才能用这条船安全的把所有人都渡过河去?

二、实验原理及基本技术路线图(方框原理图或程序流程图)

三、所用仪器、材料(设备名称、型号、规格等或使用软件)

1台PC以及VISUAL C++6.0软件

四、实验方法、步骤(或:程序代码或操作过程)

#include

#include

#include

#define maxloop 100 /* 最大层数,对于不同的扩展方法自动调整取值 */

#define pristnum 3 /*初始化时设定有3个野人3个传教士,实际可以改动*/

#define slavenum 3

struct SPQ{ int sr,pr; /* 船运行一个来回后河右岸的野人、传教士的人数 */

int sl,pl; /* 船运行一个来回后河左岸的野人、传教士的人数 */ int ssr,spr; /* 回来(由左向右时)船上的人数 */

int sst,spt; /* 去时(由右向左时)船上的人数 */

int loop; /* 本结点所在的层数 */

struct SPQ *upnode ,*nextnode;/* 本结点的父结点和同层的下一个结点的地址 */

}spq;

int loopnum;/* 记录总的扩展次数 */

int openednum;/* 记录已扩展节点个数 */

int unopenednum;/* 记录待扩展节点个数 */

int resultnum;

struct SPQ *opened;

struct SPQ *oend;

struct SPQ *unopened;

struct SPQ *uend;

struct SPQ *result;

void initiate();

void releasemem();

void showresult();

void addtoopened(struct SPQ *ntx);

int search();

void goon();

int stretch(struct SPQ* ntx);

void recorder();

int main()

{

int flag; /* 标记扩展是否成功 */ for( ; ; )

{

initiate();

flag = search ();

if(flag == 1)

{

recorder();

releasemem();

showresult();

goon();

}

else

{

printf("无法找到符合条件的解"); releasemem();

goon();

}

}

system("pause");

return 0;

}

void initiate()

{

int x;

char choice;

uend = unopened = (struct SPQ*)malloc(sizeof(spq));

if(uend==NULL)

{

printf("\n内存不够!\n");

exit(0);

}

unopenednum=1;

openednum=0;

unopened -> upnode = unopened; /* 保存父结点的地址以成链表 */ unopened -> nextnode = unopened;

unopened -> sr = slavenum;

unopened -> pr = pristnum;

unopened -> sl = 0;

unopened -> pl = 0;

unopened -> sst = 0;

unopened -> spt = 0;

unopened -> ssr = 0;

unopened -> spr = 0;

unopened -> loop = 0;

printf("计科093班孙浩川 200910405310\n\n");

printf("设有3个传教士和3个野人来到河边,打算乘一只船从右岸到左岸去。该船的负载能力为两人。在任何时候,如果野人人数超过传教士人数,野人就会把传教士吃掉。他们怎样才能用这条船安全的把所有人都渡过河去?\n");

/*printf("该船的负载能力为两人。在任何时候,如果野人人数超过传教士人数,野人\n");

printf("就会把传教士吃掉。他们怎样才能用这条船安全的把所有人都渡过河去?\n");*/

for(;;)

{

printf("\n是否开始?(Y/N)");

scanf("%s",&choice);

choice=toupper(choice);

if(choice=='N')

{

printf("\n请输入传教士人数");

for(;;)

{

scanf("%d",&x);

if(x>0)

{

unopened -> pr = x;

break;

}

else printf("\n输入值应大于0!\n请重新输入"); }

printf("\n请输入野人人数");

for(;;)

{

scanf("%d",&x);

if(x>0)

{

unopened -> sr = x;

break;

}

else printf("\n输入值应大于0!\n请重新输入"); }

break;

}

if(choice=='Y')break;

}

}

int search()

{

int flag;

struct SPQ *ntx; /* 提供将要扩展的结点的指针 */

for( ; ; )

{

ntx = unopened; /* 从待扩展链表中提取最前面的一个 */

if(ntx->loop == maxloop)

return 0;

addtoopened(ntx); /* 将ntx加入已扩展链表,并将这个节点从待扩展链表中去掉 */

flag = stretch(ntx); /* 对ntx进行扩展,返回-1,0,1 */

if(flag == 1)

return 1;

}

}

int stretch(struct SPQ *ntx)

{

int fsr , fpr ; /* 在右岸上的人数 */

int fsl , fpl ; /* 在左岸上的人数 */

int sst , spt ; /* 出发时在船上的人数 */

int ssr , spr ; /* 返回时船上的人数 */

struct SPQ *newnode;

for (sst = 0 ; sst <= 2 ; sst++) /* 讨论不同的可能性并判断是否符合条件 */

{

fsr = ntx -> sr;

fpr = ntx -> pr;

fsl = ntx -> sl;

fpl = ntx -> pl;

if ((sst <= fsr) && (( 2 - sst) <= fpr))/* 满足人数限制 */

{

spt = 2 - sst;

fsr = fsr - sst;

fpr = fpr - spt;

if((fpr == 0) && (fsr == 0))/* 搜索成功 */

{

newnode = (struct SPQ*) malloc (sizeof(spq));

if(newnode==NULL)

{

printf("\n内存不够!\n");

exit(0);

}

newnode -> upnode = ntx; /* 保存父结点的地址以成链表 */

newnode -> nextnode = NULL;

newnode -> sr = 0;

newnode -> pr = 0;

newnode -> sl = opened -> sr;

newnode -> pl = opened -> pr;

newnode -> sst = sst;

newnode -> spt = spt;

newnode -> ssr = 0;

newnode -> spr = 0;

newnode -> loop = ntx -> loop + 1;

oend -> nextnode = newnode;

oend = newnode;

openednum++;

return 1;

}

else if ((fpr - fsr) * fpr >= 0) /* 判断是否满足传教士人数必

须大于或等于野人人数 */

{

fsl = fsl + sst;

fpl = fpl + spt;

for (ssr = 0 ; ssr <= 1 ; ssr++) /* 返

回 */

{

int ffsl , ffpl;

if ((ssr <= fsl) && ((1 - ssr) <= fpl))

{

spr = 1 - ssr;

ffsl = fsl - ssr;

ffpl = fpl - spr;

if ((ffpl - ffsl) * ffpl >= 0)

{ /* 若符合条件则分配内存并付值 */

int ffsr , ffpr;

ffsr = fsr + ssr;

ffpr = fpr + spr;

newnode = (struct SPQ*) malloc (sizeof(spq));

if(newnode==NULL)

{

printf("\n内存不够!\n");

exit(0);

}

newnode -> upnode = ntx; /* 保存父结点

的地址以成链表 */

newnode -> sr = ffsr;

newnode -> pr = ffpr;

newnode -> sl = ffsl;

newnode -> pl = ffpl;

newnode -> sst = sst;

newnode -> spt = spt;

newnode -> ssr = ssr;

newnode -> spr = spr;

newnode -> loop = ntx -> loop + 1;

uend -> nextnode = newnode;

uend = newnode;

unopenednum++;

}

}

}

}

}

}

return 0;

}

void addtoopened(struct SPQ *ntx)

{

unopened = unopened -> nextnode;

unopenednum--;

if (openednum == 0 )

oend = opened = ntx;

oend -> nextnode = ntx;

oend = ntx;

openednum++;

}

void recorder()

{

int i , loop;

struct SPQ *newnode;

struct SPQ *ntx;

loop = oend -> loop;

ntx = oend;

resultnum = 0;

for( i = 0 ; i <= loop ; i++ )

{

newnode = (struct SPQ*) malloc (sizeof(spq)); if(newnode==NULL)

{

printf("\n内存不够!\n");

exit(0);

}

newnode -> sr = ntx -> sr;

newnode -> pr = ntx -> pr;

newnode -> sl = ntx -> sl;

newnode -> pl = ntx -> pl;

newnode -> sst = ntx -> sst;

newnode -> spt = ntx -> spt;

newnode -> ssr = ntx -> ssr;

newnode -> spr = ntx -> spr;

newnode -> nextnode = NULL;

ntx = ntx -> upnode;

if(i == 0)

result = newnode;

newnode -> nextnode = result;

result = newnode;

resultnum++;

}

}

void releasemem()

{

int i;

struct SPQ* nodefree;

for ( i = 1 ; i < openednum ; i++ ) {

nodefree = opened;

opened = opened -> nextnode;

free(nodefree);

}

for ( i = 0 ; i < unopenednum ; i++ ) {

nodefree = unopened;

unopened = unopened -> nextnode; free(nodefree);

}

}

void showresult()

{

int i;

int fsr , fpr ; /* 在右岸上的人数 */ int fsl , fpl ; /* 在左岸上的人数 */ struct SPQ* nodefree;

printf("%d个传教士",result -> pr);

printf("%d个野人",result -> sr);

printf("%d个传教士",result -> pl);

printf("%d个野人",result -> sl);

for ( i = 1 ; i < resultnum ; i++ )

{

nodefree = result;

result = result -> nextnode;

free(nodefree);

// printf("\n\n\t左岸人数船上人数及方向右岸人数\n");

printf("第%d轮\n",i);

fpl = result -> pl - result -> spt + result -> spr;

fpr = result -> pr - result -> spr;

fsl = result -> sl - result -> sst + result -> ssr;

fsr = result -> sr - result -> ssr;

printf("传教士\t左岸%d人,船上%d人,向左,右岸%d人\n",fpl,result -> spt,fpr);

printf("野人\t左岸%d人,船上%d人,向左,右岸%d人\n",fsl,result -> sst,fsr);

printf("传教士\t左岸%d人,船上%d人,向右,右岸%d人\n",result -> pl,result -> spr,result -> pr - result -> spr);

printf("野人\t左岸%d人,船上%d人,向右,右岸%d人\n",result -> sl,result -> ssr,result -> sr - result -> ssr);

}

printf("\n全体传教士和野人全部到达对岸");

free(result);

}

void goon()

{

char choice;

for(;;)

{

printf("是否继续?(Y/N)\n");

scanf ("%s" , &choice);

choice=toupper(choice);

if(choice=='Y')break;

if(choice=='N')exit(0);

}

}

五、实验过程原始记录( 测试数据、图表、计算等)

六、实验结果、分析和结论(误差分析与数据处理、成果总结等。其中,绘制曲线图时必须用计算纸或程序运行结果、改进、收获)

这次试验让我熟悉了环境,加深了对算法的理解,掌握了把基本算法编程机器语言的能力。更加深入了解了什么是人工智能,让我了解了人工智能的作用以及含义和人工智能的使用范围以及对于我们未来生活得作用的广大。但由于自己编程能力弱,做的不是太好,主要是通过查资料完成的。人工智能这门课的知识比较逻辑化和抽象华,要学懂这门课比较困难,因此,在今后学习中,我要更加努力,熟读课本,以求熟悉并掌握该门课的知识要点。

注:教师必须按照上述各项内容严格要求,认真批改和评定学生成绩。

人工智能实验报告1

昆明理工大学信息工程与自动化学院学生实验报告 (2012 —2013 学年第 1 学期) 课程名称:人工智能开课实验室:信自楼445 2012 年12月 26日年级、专业、班学号姓名成绩实验项目名称线性回归指导教师王剑教 师评语该同学是否了解实验原理: A.了解□ B.基本了解□ C.不了解□ 该同学的实验能力: A.强□ B.中等□ C.差□ 该同学的实验是否达到要求: A.达到□ B.基本达到□ C.未达到□ 实验报告是否规范: A.规范□ B.基本规范□ C.不规范□ 实验过程是否详细记录: A.详细□ B.一般□ C.没有□ 教师签名: 年月日 一、上机目的及内容 1.上机内容: 用于预测房价的线性回归(一元或二元的例子) 2.上机目的 (1)掌握线性回归的实质 (2)能够用MATLAB实现线性回归 二、实验原理及基本技术路线图(方框原理图或程序流程图) (1)建立两个数据包:ex2x.da和ex2y.dat,分别存放住房面积和价格 (2)下载数据,分别付给x和y (3)定义最大迭代次数,以及学习率,通过梯度下降法,进行迭代grad = (1/m).* x' * ((x * theta) - y) theta = theta - alpha .* grad (4)如果没有得到预期目的,返回(3) (5)如果得到回归曲线则停止,输出图形,否则返回(3) 三、所用仪器、材料(设备名称、型号、规格等或使用软件), 1台PC及MA TLAB软件 四、实验方法、步骤(或:程序代码或操作过程) % Exercise 2 Linear Regression % for house % % x refers to a house's area % y is a house's price %

人工智能实验报告大全

人工智能实验报告大 全

人工智能课内实验报告 (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-8 10:15-12:00

实验1:猴子摘香蕉问题的VC编程实现 一、实验目的 (1)熟悉谓词逻辑表示法; (2)掌握人工智能谓词逻辑中的经典例子——猴子摘香蕉问题的编程实现。 二、编程环境 VC语言 三、问题描述 房子里有一只猴子(即机器人),位于a处。在c处上方的天花板上有一串香蕉,猴子想吃,但摘不到。房间的b处还有一个箱子,如果猴子站到箱子上,就可以摸着天花板。如图1所示,对于上述问题,可以通过谓词逻辑表示法来描述知识。要求通过VC语言编程实现猴子摘香蕉问题的求解过程。 图1 猴子摘香蕉问题

四、源代码 #include unsigned int i; void Monkey_Go_Box(unsigned char x, unsigned char y) { printf("Step %d:monkey从%c走到%c\n", ++i, x, y);//x表示猴子的位置,y为箱子的位置 } void Monkey_Move_Box(char x, char y) { printf("Step %d:monkey把箱子从%c运到%c\n", ++i, x, y);//x表示箱子的位置,y为香蕉的位置 } void Monkey_On_Box() { printf("Step %d:monkey爬上箱子\n", ++i); } void Monkey_Get_Banana() { printf("Step %d:monkey摘到香蕉\n", ++i); } void main() { unsigned char Monkey, Box, Banana; printf("********智能1501班**********\n"); printf("********06153034************\n"); printf("********刘少鹏**************\n"); printf("请用a b c来表示猴子箱子香蕉的位置\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)

浙江大学人工智能研究所(以下简称AI)创建于1981年,是专概要

浙江大学人工智能研究所(以下简称AI)创建于1981年,是专门从事科学研究与培养高层次计算机专业人才的科研机构。全所现有各类研究人员46名,其中教授15名(含中国工程院院士1名,长江计划特聘教授1名,博士生导师10名),副教授22名,讲师10名。同时设有计算机应用技术博士点、硕士点和计算机科学与技术博士后流动站。现任研究所所长为浙江大学校长、中国工程院院士潘云鹤教授,副所长为董金祥教授、朱淼良教授和周昌乐教授,学术委员会主任为何志均教授。 研究所下设: 知识工程研究室、智能CAD研究室、CAD&CG研究室、计算机视觉与智能机器人研究室、智能信息管理与决策研究室等5个研究室、实验室,以及资料室、办公室等机构。 主要研究方向: 人工智能理论,形象思维,计算机图形学(CG)与计算机辅助设计(CAD),计算机集成制造(CIMS)及其它先进制造技术,智能CAD,信息智能和决策支持,计算机视觉与智能机器人,多媒体技术,工程数据库,智能控制,计算机网络和信息通讯,科学可视化,分布式知识库,操作系统,数据库,管理信息系统,计算机辅助工业设计等。 学术带头人: Founded in 1981, the Artificial Intelligence Research Institute (AIRI) is an institution specializing in scientific research and high-level computer talent cultivating. Presently it has a staff of 46. Among them, there are 15 professors ( including one member of Chinese Engineering Academy, one member of China Education Ministry’s Cheung Kong (Chiang Jiang) Scholar,ten doctoral supervisors), 22 associate professors and 10 lecturers. In addition to the Ph.D and Master degree programs, it also offers post doctoral program in computer science and technology. Chief of Institution is Prof. Pan Y unhe, who is also president of Zhejiang University and a member of Chinese Engineering Academy. Prof. Dong Jinxiang and Prof. Zhu Miaoliang and Prof. Zhou Changle are vice chiefs of the Institution. Prof. He Zhijun is chairman of academia committee of AIRI. The AIRI consists of one reference room, one administrative office and five research labs, including Knowledge Engineering Lab, Intelligence CAD Lab, CAD&CG Lab, Computer vision & Robotics Labs, Intelligence Information Management and Decision Lab. The main research scope is as follows: Artificial Intelligence theory Imagery thinking Computer Graphics and Computer Aided Design Computer Integrated Manufacture system (CIMS) and other Advanced Manufacturing Technologies Intelligence CAD Information Intelligence and policy support Computer Vision and Robotics Multimedia Technology Engineering Database Intelligent Control Computer Network and Communication Scientific Visualization Distributed Knowledge Database

人工智能经典考试题目,例题

基于规则的专家系统 1.基于规则的专家系统有 5 个部分组成:知识库、数据库、推理引擎、和用户界面 A. 解释设备 B.外部接口 C.开发者接口 D.调试工具 2.前向(正向)推理是数据驱动的。推理从已知的数据开始,依次执行每条可执行的规则,规则所产生的新的事实被加入到数据库中,直到没有规则可以被执行为止。请根据以下的数据库和知识库推出有哪些元素被加入到数据库中 A.N X Y Z B.L X Y Z C.N L X Z D.L N X Y 3.关于专家系统,以下说法错误的是 A.允许不精确的推理,但不能处理不完整、不确定和模糊的数据 B.当数据不完账或模糊时,有可能会出错 C.当需要新知识时,很容易实现调整。 D.提供知识与处理过程明确分离的机制 4.对于规则的专家系统的缺点,下列说法错误的是

A.规则之间的关系不明确 B.低效的搜索策略 C.没有学习能力 D.没有统一的结构 5.对于规则的专家系统的优点,下列说法正确的是 A.规则之间的关系透明 B.高效的搜索策略 C.处理不完整、不确定的知识 D.具备学习能力 基于规则的专家系统中的不确定性管理 6.专家系统中不确定性知识的来源一般分为 4 种:弱暗示、、未知数据,以及合并不 同专家观点时的困难 A.不完整的信息 B.不一致的信息 C.不确定的信息 D.不精确的语言 7.有一同学,考试成绩数学不及格的概率是 0.15,语文不及格的概率是0.05,两者都不及 格的概率为 0.03,在一次考试中,已知他数学不及格,那么他语文不及格的概率是多少? A.0.2 B.0.25 C.0.4 D.0.6

8.掷三枚骰子,事件 A为出现的点数之和等于 5 的概率为 A.1/18 B.1/36 C.1/72 D.1/108 9.下列哪个符合著名的贝叶斯公式 A.P(Ai/B) = P(Ai) x P(B/Ai) /Σ(P(Aj) x P(B/Aj)) B.P(Ai/B) = P(Ai) x P(Ai/B) / Σ(P(Aj) x P(B/Aj)) C.P(Ai/B) = P(B) x P(B/Ai) /Σ (P(Aj) x P(B/Aj)) D.P(Ai/B) = P(Ai) x P(B/Ai) /Σ(P(Bj) x P(B/Bj)) 10.以下说法错误的是 A.要想使用贝叶斯方法,论据间不一定满足条件独立 B.确信因子理论是贝叶斯方法的常用替代方法 C.当概率未知或不易获得时,会使用确信因子 D.确信因子理论为专家系统中的不确定性管理提供了一个判断方法 模糊专家系统 11.模糊或多值逻辑是波兰的逻辑学家和哲学家引入的 A.Lotfi Zadeh B.Max Black C.Jan Lukasiewicz D.Max Vagueness 12.关于模糊专家系统,下列说法错误的 A.模糊逻辑能反应人类是怎么样思考的,它尝试模拟人类的预感、决策制定和常识 B.模糊依赖模糊集理论,模糊逻辑只是该理论的一小部分 C.模糊集可以简单地定义为具有明确边界的集合

昆明理工大学人工智能第二次实验报告

理工大学信息工程与自动化学院学生实验报告 ( 2013 — 2014 学年第 1 学期) 课程名称:人工智能开课实验室:信自楼445 2013 年12月 20日 一、上机目的及容 1.上机容 用确定性推理算法求解教材65-66页介绍的八数码难题。 2.上机目的 (1)复习程序设计和数据结构课程的相关知识,实现课程间的平滑过渡; (2)掌握并实现在小规模状态空间中进行图搜索的方法; (3)理解并掌握图搜索的技术要点。 二、实验原理及基本技术路线图(方框原理图或程序流程图) (1)设计并实现程序,求解出正确的解答路径; (2)对所设计的算法采用大O符号进行时间复杂性和空间复杂性分析; (3)对一般图搜索的技术要点和技术难点进行评述性分析。 三、所用仪器、材料(设备名称、型号、规格等或使用软件) 1台PC及VISUAL C++6.0软件 四、实验方法、步骤(或:程序代码或操作过程)

建立工程后建立5个source Files文件分别为 1.AttributeValue.cpp #include "AttributeValue.h" #include "base.h" AttributeValue::AttributeValue(std::string const& instring) : m_value(instring) { } bool AttributeValue::GetType() { if (m_value == "P") { return true; } else if (m_value == "N") { return false; } else { throw DataErrException(); } } 2.basefun.cpp #include float log2 (float x) { return 1.0 / log10(2) * log10(x); } float calEntropy(float prob) { float sum=0; if (prob == 0 || prob == 1) { return 0; } sum -= prob * log2(prob); sum -= (1 - prob) * log2 ( 1 - prob ); return sum;

人工智能实验报告

实验报告 1.对CLIPS和其运行及推理机制进行介绍 CLIPS是一个基于前向推理语言,用标准C语言编写。它具有高移植性、高扩展性、 强大的知识表达能力和编程方式以及低成本等特点。 CLIPS由两部分组成:知识库、推理机。它的基本语法是: (defmodule< module-n ame >[< comme nt >]) CLIPS的基本结构: (1).知识库由事实库(初始事实+初始对象实例)和规则库组成。 事实库: 表示已知的数据或信息,用deftemplat,deffact定义初始事实表FACTLIS,由关系名、后跟 零个或多个槽以及它们的相关值组成,其格式如下: 模板: (deftemplate [] *) :: = | 事实: (deffacts [] *) 当CLIPS系统启动推理时,会把所有用deffact定义的事实自动添加到工作存储器中。常用命令如下:asser:把事实添加到事实库(工作存储器)中retract:删除指定事实 modify :修改自定义模板事实的槽值duplicate :复制事实 clear:删除所有事实 规则库 表示系统推理的有关知识,用defrule命令来定义,由规则头、后跟零个或多个条件元素以 及行为列表组成,其格式如下: (defrule [] * ; =>

人工智能实验题目

人工智能实验题目 1、基于A*算法求解八数码问题 (1)至少定义3种不同的启发式函数,编程实现求解八数码问题的A*算法; (2)要求用可视化界面演示算法执行过程,应能选择预定义的启发式函数,能随机初始化初始状态,能单步执行,也能连续执行,能画出搜索树,同时标出估价函数在每个节点的各项函数值,能展示OPEN表和CLOSED表的动态变化过程; (3)能统计出扩展节点数和算法执行时间,以便对采用不同启发式函数的A*算法的性能做对比研究。 2、基于A*算法的最优路径规划系统 (1)基于真实地图实现,可以是位图背景加栅格坐标数据,也可以直接使用某种格式的GIS (地理信息系统)矢量地图,地图规模不能太小; (2)用户可以设置起点和终点; (3)要求用可视化界面演示算法执行过程,能单步执行,也能连续执行,画出扩展过的所有路径,画出最优路径,能展示OPEN表和CLOSED表的动态变化过程; (4)可考虑路况信息,改进启发式函数,以求更实用。 3、A*算法的改进研究 (1)给出改进思路并编程实现改进的算法; (2)结合一个具体问题实验对比改进前后的算法性能。 4、图搜索算法对比研究 (1)编程实现广度优先、等待价、深度优先、深度受限、迭代加深、最佳优先搜索算法;(2)要求用可视化界面演示算法执行过程,能单步执行,也能连续执行,能画出搜索树,能展示OPEN表和CLOSED表的动态变化过程; (3)用户可以自定义搜索图,通过实验研究各种图搜索算法的性能。 5、基于α-β剪枝算法的五子棋游戏 (1)编写五子棋游戏程序,支持人机对战; (2)编程实现α-β剪枝算法,作为机器方的下棋算法。 6、五子棋机器博弈系统 (1)编程实现一个五子棋主控程序,要求有可视化棋盘,有裁判功能,支持通过Socket接口连接选手,有清晰简洁的通信协议,支持循环赛赛程管理; (2)每个同学编写一个五子棋下棋算法,通过Socket接口接入主控程序,与其他机器选手对战。 7、基于回溯搜索的地图着色方法 (1)对中国地图中的省级行政区进行着色,最多使用四种颜色; (2)编程实现回溯算法用于地图自动着色; (3)研究回溯的改进算法,并编程实现。

人工智能-图像识别与人工智能研究所XXXX年研究生招生简章考研专业目录 精品

图像识别与人工智能研究所 图像识别与人工智能研究所(以下简称图像所)于1978年由教育部和航天部共同批准建立、直属于华中科技大学的一所融研究、教学为一体,以图像识别和人工智能为研究方向的研究机构。建所30余年来,图像所始终瞄准航天、航空和信息技术领域的国家目标,进行应用基础和应用技术的研究,在国内的模式识别与智能系统学科具有明显的研究特色和学科优势,在航天航空的智能信息处理领域具有较高的知名度。图像所分别于1984年、1990年获得硕士和博士学位授予权,20XX年被批准为湖北省重点学科,20XX年被批准为国家重点二级学科“模式识别与智能控制”,是该二级学科全国5个重点学科单位之一。1993年获批“图像信息处理与智能控制”国家教委开发实验室,1999年升格为教育部重点实验室。1998年3月由中国航天工业总公司和国家教委共同批准命名为“中国航天图像识别技术研究所”,与航天工业总公司共建。20XX年12月获批成立“多谱信息处理技术”国家级重点实验室。 图像所经过多年的建设已形成先进、配套的科研、教学、开发环境和雄厚的技术储备,有一支层次高,年龄、专业结构合理的科研教学梯队。该所现有科研、教学人员40余人,其中双聘院士1人,“长江学者”讲座教授1名,教授10名、副教授13名,入选“新世纪优秀人才支持计划”1人。87%的教师拥有博士学位,76%为45岁以下青年教师。20XX年被命名为国家级科技创新团队。除了本所的教师队伍外,图像所还聘请了航天科技集团的科学院院士沈绪榜教授、美国西北大学终生教授、计算机视觉领域的世界知名学者吴郢教授等作为图像所兼职博导培养博士生。目前本专业在读硕士生、博士生350余人。 图像所在“模式识别与智能系统”学科点上现有的研究方向是:计算机视觉与应用、模式识别与图像分析、图像处理系统及应用、医学成像与处理、人工智能与认知科学、集成电路及系统芯片的研究与设计以及微纳光电技术。在“导航制导与控制”学科点上现有的研究方向是:多谱寻的制导、多谱匹配制导、多谱目标探测以及制导信息处理芯片设计。在“信息安全”学科点上现有的研究方向是:混沌密码理论与技术(包括密码算法的IC设计),无线移动网络的安全技术,网络主动防御技术以及城市交通智能管理与安全信息服务技术。2001年以来,图像所培养博士135名、硕士540名,6人获得湖北省优秀博士论文,5人获得湖北省优秀硕士论文。图像所现有在读硕士研究生235人,博士研究生118人。 图像所在培养研究生的同时,承担了大量的国家级科研项目,取得了一大批科研成果。20XX年至今,图像所已经承担了包含国家自然科学基金、973、863、国家级预研计划等在

昆明理工大学 人工智能 大作业

课程名称:人工智能 论文题目:中文语音识别技术的最新研究进展学院:信息工程与自动化学院 专业:计算机科学与技术 年级: 09级 学生姓名:孙浩川(200910405310) 指导教师:王剑 教务处制

摘要 本文简要介绍了语音识别技术的发展历史,所采用的关键技术以及所面临的困难与挑战,最后讨论了语音识别在通信等领域中的应用。机器能听懂人类的语言吗?我们能扔掉键盘、鼠标用自然语言操纵计算机吗?随着语音识别技术的发展,梦想正在变为现实。语音识别以语音为研究对象,它是语音信号处理的一个重要研究方向,是模式识别的一个分支,涉及到生理学、心理学、语言学、计算机科学以及信号处理等诸多领域,甚至还涉及到人的体态语言(如人在说话时的表情、手势等行为动作可帮助对方理解),其最终目标是实现人与机器进行自然语言通信。简要介绍语音识别的发展历史,采用的关键技术,面临的困难与挑战以及广阔的应用前景。 关键字:中文、语音识别、技术、发展

目录 一、语音识别技术的发展历史 (3) 1、国外的发展形势 (3) 2、国内的发展 (3) 二、语音识别技术发展所面临的困难 (4) 1、认识语音识别系统 (4) 2、面临的困难 (4) 3、解决困难的方法 (5) 三、语音识别技术的应用以及发展前景 (5) 1、目前语音识别技术在许多领域的应用 (5) 2、对语音识别技术的发展前景 (6) 四、结束语(结论) (6) 谢辞 (7) 参考文献 (8)

一、语音识别技术的发展历史 1、国外的发展形势 首先,从国外的形势看来。语音识别的研究工作可以追溯到20世纪50年代AT&T 贝尔实验室的Audry系统,它是第一个可以识别十个英文数字的语音识别系统。但真正取得实质性进展,并将其作为一个重要的课题开展研究则是在60年代末70年代初。实验室语音识别研究的巨大突破产生于20世纪80年代末:人们终于在实验室突破了大词汇量、连续语音和非特定人这三大障碍,他们把原本艰涩的HMM纯数学模型工程化,从而使统计方法成为了语音识别技术的主流,更多地从整体平均的角度来建立最佳的语音识别系统。人工神经网络方法、基于文法规则的语言处理机制等也在语音识别中得到了应用。20世纪90年代前期,许多著名的大公司如IBM、苹果、AT&T和NTT 都对语音识别系统的实用化研究投以巨资。语音识别技术有一个很好的评估机制,那就是识别的准确率,而这项指标在20世纪90年代中后期实验室研究中得到了不断的提高。其中IBM公司于1997年开发出汉语ViaVoice语音识别系统,其平均识别率可以达到95%。该系统对新闻语音识别具有较高的精度,是目前具有代表性的汉语连续语音识别系统。 2、国内的发展 看了国际的情况,现在看看我们国家的语音识别技术的发展情况。我国语音识别研究工作起步于五十年代,但近年来发展很快。研究水平也从实验室逐步走向实用。我国的语音识别研究起始于1958年,由中国科学院声学所利用电子管电路识别10 个元音。直至1973年才由中国科学院声学所开始计算机语音识别。由于当时条件的限制,我国的语音识别研究工作一直处于缓慢发展的阶段。进入80年代以后,随着计算机应用技术在我国逐渐普及和应用以及数字信号技术的进一步发展,国内许多单位具备了研究语音技术的基本条件。1986年3月我国高科技发展863计划启动,语音识别作为智能计算机系统研究的一个重要组成部分而被专门列为研究课题。从此我国的语音识别技术进入了一个前所未有的发展阶段。在非特定人语音识别方面:清华大学计算机科学与技术系在87年研制的声控电话查号系统并投入实际使用。在连续语音识别方面:91年12月四川大学计算机中心在微机上实现了一个主题受限的特定

人工智能实验报告

人工智能课程项目报告 姓名: 班级:二班

一、实验背景 在新的时代背景下,人工智能这一重要的计算机学科分支,焕发出了他强大的生命力。不仅仅为了完成课程设计,作为计算机专业的学生, 了解他,学习他我认为都是很有必要的。 二、实验目的 识别手写字体0~9 三、实验原理 用K-最近邻算法对数据进行分类。逻辑回归算法(仅分类0和1)四、实验内容 使用knn算法: 1.创建一个1024列矩阵载入训练集每一行存一个训练集 2. 把测试集中的一个文件转化为一个1024列的矩阵。 3.使用knnClassify()进行测试 4.依据k的值,得出结果 使用逻辑回归: 1.创建一个1024列矩阵载入训练集每一行存一个训练集 2. 把测试集中的一个文件转化为一个1024列的矩阵。 3. 使用上式求参数。步长0.07,迭代10次 4.使用参数以及逻辑回归函数对测试数据处理,根据结果判断测试数 据类型。 五、实验结果与分析 5.1 实验环境与工具 Window7旗舰版+ python2.7.10 + numpy(库)+ notepad++(编辑)

Python这一语言的发展是非常迅速的,既然他支持在window下运行就不必去搞虚拟机。 5.2 实验数据集与参数设置 Knn算法: 训练数据1934个,测试数据有946个。

数据包括数字0-9的手写体。每个数字大约有200个样本。 每个样本保持在一个txt文件中。手写体图像本身的大小是32x32的二值图,转换到txt文件保存后,内容也是32x32个数字,0或者1,如下图所 示 建立一个kNN.py脚本文件,文件里面包含三个函数,一个用来生成将每个样本的txt文件转换为对应的一个向量:img2vector(filename):,一个用 来加载整个数据库loadDataSet():,最后就是实现测试。

盘点:从斯坦福人工智能实验室走出的人物及创举

盘点:从斯坦福人工智能实验室走出的人物及创举 来源:宇辰网 成立至今,斯坦福人工智能实验室的历史已逾50年,在人工智能漫长的发展岁月里,从这座实验室走出了许多杰出人物和作品。 1.图像识别 李飞飞/图来源网络 斯坦福大学人工智能实验室和视觉实验室(Stanford Artificial Intelligence Laboratory,SAIL)华裔教授李飞飞,多年来致力于解决图像识别、机器学习和语言处理等人工智能领域的棘手难题。 2007-2009年,李飞飞及其团队通过网络众包技术,建立起了含有1500万张照片、涵盖22000种物品的全球最大图像识别数据库Imagenet。

“这些物品是根据日常英语单词进行分类组织的。无论是在质量上还是数量上,这都是一个规模空前的数据库。在"猫"这个对象中,我们有超过62000只猫,长相各异,姿势五花八门,而且涵盖了各种品种的家猫和野猫。我们对ImageNet收集到的图片感到异常兴奋,而且我们希望整个研究界能从中受益,所以以一种和TED一样的方式,我们公开了整个数据库,免费提供给全世界的研究团体。”Li Feifei在TED演讲上说:“事后我们再来看,这个利用大数据来训练计算机算法的思路,也许现在看起来很普通,但回到2007年时,它就不那么寻常了。我们在这段旅程上孤独地前行了很久。” 图像识别之后,李飞飞又开启了Visual Genome(视觉基因组)计划,要把语义和图像结合起来,推动人工智能的进一步发展。 2.人工神经网络 吴恩达/图来源网络

机器学习领域专家,斯坦福人工智能实验室教授,在线教育平台Coursera 的联合创始人吴恩达,曾于2011年创建并领导了谷歌的深度学习团队,打造出大规模人工神经网络。该神经网路总共由16000 个处理器连接而成,内部共有10 亿个节点,能够在没有任何先验知识的情况下自主学习。这个项目的技术已经被应用到了安卓操作系统的语音识别系统上。 人工神经网络是20世纪80年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象,建立某种简单模型,按不同的连接方式组成不同的网络。近十多年来,随着研究工作的不断深入,人工神经网络取得了显著进展,现已应用于模式识别、智能机器人、生物、医学、经济等领域,成功地解决了很多现代计算机难以解决的实际问题。 3.开源机器人技术软件平台 ROS/图来源网络

人工智能考试模拟试题

西安电子科技大学 人工智能考试模拟试题一 一、选择题(10 小题,共10 分) 1、97 年5月,著名的“人机大战” ,最终计算机以3.5 比2.5 的总比分将世界国际象棋棋王卡斯帕罗夫击败,这台计算机被称为(C ) A)深思B)IBM C)深蓝D)蓝天 2、谓词逻辑下,子句, C1=L∨C1‘, C2= ~ L∨C2‘,?若σ是互补文字的(最一般)合一置换,则其归结式C=(D ) A)C1’∨C2’ B) C1’ ∧C2’ C)C1’σ∧C2’σ D) C1’σ∨C2’σ 3、不属于人工智能的学派是(B )。 A)符号主义B)机会主义C)行为主义D)连接主义。 4、要想让机器具有智能,必须让机器具有知识。因此,在人工智能中有一个研究领域,主要研究计算机如何自动获取知识和技能,实现自我完善,这门研究分支学科叫(B )。 A)专家系统B)机器学习C)神经网络D)模式识别 5、下列哪部分不是专家系统的组成部分(D ) A.)知识库B)综合数据库C)推理机D) 用户 6、产生式系统的推理不包括(D ) A)正向推理B)逆向推理C)双向推理D)简单推理 7、AI 这个英文缩写的全称是(B) A)Automatic Intelligence C)Automatice Information B)Artifical Intelligence D)Artifical Information 8、在公式中 ) , (y x xp y? ?,存在量词是在全称量词的辖域内,我们允许所存在的x 可能依 赖于y 值。令这种依赖关系明显地由函数所定义,它把每个y 值映射到存在的那个x。这种函数叫做(B ) A)依赖函数B) Skolem 函数C) 决定函数D) 多元函数 9、子句~P∨Q 和P 经过消解以后,得到(C ) A)P B) ~P C) Q D) P∨Q 10、如果问题存在最优解,则下面几种搜索算法中,(A )必然可以得到该最优解。 A) 宽度(广度)优先搜索B) 深度优先搜索 C) 有界深度优先搜索D) 启发式搜索 二、填空题(10 个空,共10 分) 1 、 )) , ( ) , ( )( )( (y x Above y x On y x→ ? ?化成子句形式为:~On(x,y) ∨ ) , (y x Above 2、假言推理 B A B A? ∧ →) (,假言三段论(A→B)∧(B→C)) (C A→ ?

人工智能实验报告

《一人工智能方向实习一》 实习报告 专业:计算机科学与技术 班级:12419013 学号: 姓名: 江苏科技大学计算机学院 2016年3月

实验一数据聚类分析 一、实验目的 编程实现数据聚类的算法。 二、实验内容 k-means聚类算法。 三、实验原理方法和手段 k-means算法接受参数k ;然后将事先输入的 n个数据对象划分为 k个聚类以便使得 所获得的聚类满足:同一聚类中的对象相似度较高 四、实验条件 Matlab2014b 五、实验步骤 (1)初始化k个聚类中心。 (2)计算数据集各数据到中心的距离,选取到中心距离最短的为该数据所属类别。 (3)计算(2)分类后,k个类别的中心(即求聚类平均距离) (4)继续执行(2)(3)直到k个聚类中心不再变化(或者数据集所属类别不再变化) 六、实验代码 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % mai n.m % k-mea ns algorithm % @author matcloud %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear; close all ; load fisheriris ; X = [meas(:,3) meas(:,4)]; figure; plot(X(:,1),X(:,2), 'ko' ,'MarkerSize' ,4); title( 'fisheriris dataset' , 'FontSize' ,18, 'Color' , 'red'); [idx,ctrs] = kmea ns(X,3); figure; subplot(1,2,1); plot(X(idx==1,1),X(idx==1,2), 'ro' , 'MarkerSize' ,4); hold on;

stem课程实验室建设方案(20200515164750)

stem课程实验室建设方案 一、政策背景 国务院颁布的《新一代人工智能发展规划》中指出:“人工智能成为国际竞争的新焦点,应逐步开展全民智能教育项目,在中小学阶段设置人工智能相关课程、逐步推广编程教育、建设人工智能学科,培养复合型人才,形成我国人工智能人才高地。” 战略目标: 第一步 ----- 2020年 ----- 人工智能产业成为新的重要经济增长点。技术应用成为改善民生的新途径。 第二步 ----- 2025年 ----- 人工智能成为带动我国产业升级和经济转型的主要动力。 第三步 ----- 2030年 ----- 我国将成为世界主要人工智能创新中心,为跻身创新型国家前列和经济强国奠定重要基础。 二、如何建设stem课程实验室

如何搭stem课程实验室,STEAM实验室正在全国各地的学校涌现。Stem课程创客实验室为教育实践提供新的创新方法,鼓励 学生设计、实验、建设和发明。 创客实验室不仅仅是科学实验室,木工作坊,计算机实验室或艺术室,而是可能包含所有这些空间中的元素。因此,它的设计必 须适应各种活动需求以及活动的多样性和趣味性,这个在制作和探索过程非常重要,这就是STEM实验室与一次性空间的区别。 三、中小学stem课程包含有哪些内容,以智库教育为例: 四、备注 由于每个学校的stem课程实验室及其适应的活动可能会有所不同,也要看学校的具体的需求和要求。建设创客实验室功能和使用最为关键的步骤之一,学校可以与创客企业合作,阐明满足这些需求。或者,访问其他创客空间或实验室可以得到一些宝贵的 意见。作为创客教育设备提供商,会有很多合作的创客空间与

steam实验室可供参观。

2016人工智能复习题目

2016人工智能复习重点 题型:选择、填空、简答、推理、计算。各20分主要内容: AI三大学派、 AI应用领域、图灵测试、谓词逻辑表示法语义网络表示法产生式表示法 与或树,解树,可解节点的含义及解释、归结子句、置换、合一 状态空间产生式系统 盲目搜索、启发式搜索(求解城市最短路径相关例题要着重看) 演绎推理和归结推理 可信度算法和bayse算法 ID3算法 【第一章绪论】 1、三大学派及其对人工智能发展历史的不同看法 符号主义:认为人工智能源于数理逻辑。符号主义仍然是人工智能的主流派。这个学派的代 表有纽厄尔、肖、西蒙和尼尔逊(Nilsson)等。 联结主义:认为人工智能源于仿生学,特别是人脑模型的研究。 行为主义:认为人工智能源于控制论。这一学派的代表作首推布鲁克斯(Brooks)的六足行走机器人,它被看做新一代的“控制论动物”,是一个基于感知-动作模式的模拟昆虫行为的 控制系统。 2. 人工智能的研究及应用领域 人工智能研究及应用领域很多,主要研究领域包括问题求解、机器学习、专家系统、模式识 别、自动定理证明、自然语言理解等。 问题求解:人工智能的第一个大成就是发展了能够求解难题的下棋(如国际象棋)程序,它包含问题的表示、分解、搜索与归约等。 机器学习:学习是人类智能的主要标志和获得知识的基本手段;机器学习(自动获取新的事实及新的推理算法)是使计算机具有智能的根本途径;机器学习还有助于发现人类学习的机理和揭示人脑的奥秘。学习是一个有特定目的的知识获取过程,其内部表现为新知识结构的 不断建立和修改,而外部表现为性能的改善。 专家系统:一般地说,专家系统是一个智能计算机程序系统,其内部具有大量专家水平的某 个领域知识与经验,能够利用人类专家的知识和解决问题的方法来解决该领域的问题。发展

昆工智能控制试题及答案

一、填空题 1.智能控制是一门新兴的学科,它具有非常广泛的应用领域,例 如、、和。 1、交叉学科在机器人控制中的应用在过程控制中的应用飞行器控制 2.传统控制包括和。2、经典反馈控制现代理论控制 3.一个理想的智能控制系统应具备的基本功能是、、和。 3 、学习功能适应功能自组织功能优化能力 4.智能控制中的三元论指的是:、和。 4、运筹学,人工智能,自动控制 5.近年来,进化论、、和等各门学科的发展给智能控制注入了巨大的活力,并由此产生了各种智能控制方法。 5、神经网络模糊数学专家系统 6.智能控制方法比传统的控制方法更能适应对象的、和 。6、时变性非线性不确定性 7.傅京逊首次提出智能控制的概念,并归纳出的3种类型智能控制系统是 、和。 7、人作为控制器的控制系统、人机结合作为控制器的控制系统、无人参与的自主控 制系统 8、智能控制主要解决传统控制难以解决的复杂系统的控制问题,其研究的对象具备的3个特点为、和。 8、不确定性、高度的非线性、复杂的任务要求 9.智能控制系统的主要类型有、、、 、和。 9、分级递阶控制系统,专家控制系统,神经控制系统,模糊控制系统,学习控制系统,集成或者(复合)混合控制系统 10.智能控制的不确定性的模型包括两类:(1) ; (2) 。 10、(1)模型未知或知之甚少;(2)模型的结构和参数可能在很大范围内变化。11.控制论的三要素是:信息、反馈和控制。 12.建立一个实用的专家系统的步骤包括三个方面的设计,它们分别是、和。知识库的设计推理机的设计人机接口的设计13.专家系统的核心组成部分为和。知识库、推理机 14.专家系统中的知识库包括了3类知识,它们分别为、、和。判断性规则控制性规则数据 15.专家系统的推理机可采用的3种推理方式为推理、和推理。 15、正向推理、反向推理和双向推理 16.根据专家控制器在控制系统中的功能,其可分为和。

人工智能实训室建设方案

人工智能实验室 2021年1月 武汉唯众智创科技有限公司

人工智能实验室建设方案 一、专业背景 人工智能(Artificial Intelligence),它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。 人工智能的实际应用有:机器视觉,指纹识别,人脸识别,视网膜识别,虹膜识别,掌纹识别,专家系统,自动规划,智能搜索,定理证明,博弈,自动程序设计,智能控制,机器人学,语言和图像理解,遗传编程等。 如今处于风口上的人工智能产业界,受到了众多企业的追捧。截至2019年6月,中国人工智能企业超过1200家,位居全球第二。但我国人工智能行业并未摆脱人才稀缺的发展短板,专业人才稀缺严重。根据猎聘发布的《猎聘2019年中国AI&大数据人才就业趋势报告》,中国人工智能人才缺口超过500万。为了满足人工智能产业界对人才的迫切需求,国家相继出台了多项政策方针,引导高校尽快设置人工智能相关专业,加大人工智能人才培养力度。2019年3月,35所高校获批建设人工智能本科专业。2019年10月18日在教育部发布的《普通高等学校高等职业教育(专科)专业目录》2019年增补专业中,增补了人工智能技术服务专科专业。 根据教育部《普通高等学校高等职业教育(专科)专业设置管理办法》,在相关学校和行业提交增补专业建议的基础上,教育部组织研究确定了2019年度增补专业共9个,自2020年起执行。在高等职业教育行业目录中,正式宣布人工智能技术服务专业诞生,专业代码610217。 该专业建设以人工智能技术与应用素质培养为基础,以人工智能技术与应用能力为培养主线,将人工智能技术服务专业技能知识和职业资格认证相结合,构建专业的理论教学体系和实践能力培养体系。采取多种形式,通过实施“双证书”和“多证书”制,培养社会所需的实用型人才。2018年4月2日,教育部印发了《高等学校人工智能创新行动计划》,行动计划中要求各大高校加快人工智能科技创新基地。因此,在高职院校设立人工智能专业迫在眉睫。

人工智能实验一

人工智能技术基础 PROLOG语言编程练习 实验报告

一、实验目的: 加强对逻辑程序运行机能的理解,更好地掌握PROLOG语言的特点、熟悉其编程环境,同时为后面的人工智能程序设计做好准备。 二、实验要求: (1)程序自选,但必须是描述某种逻辑关系的小程序。 (2)跟踪程序的运行过程,理解逻辑程序的特点。 (3)对原程序可作适当修改,以便熟悉程序的编辑、编译和调试过程。 三、实验内容: 在Turbo PROLOG或Visual Prolog集成环境下调试运行简单的PROLOG程序,如描述亲属关系的PROLOG程序或其他小型演绎数据库程序等。 四、实验结果: (1)验证题1源程序 domains d=integer predicates not_(D,D) and_(D,D,D) or_(D,D,D) xor(D,D,D) clauses not_(1,0). not_(0,1). and_(0,0,0). and_(0,1,0). and_(1,0,0). and_(1,1,1). or_(0,0,0). or_(0,1,1). or_(1,0,1). or_(1,1,1). xor(Input1,Input2,Output):- not_(Input1,N1),/*(1,0)*/ not_(Input2,N2),/*(0,1)*/ and_(Input1,N2,N3), and_(Input2,N1,N4), or_(N3,N4,Output).

(2)验证题2源程序 predicates student(integer,string,real) grade goal grade. clauses student(1,"zhang",90.2). student(2,"li",95.5). student(3,"wang",96.4). grade:-write("Please input name:"),readln(Name), student(_,Name,Score), nl,write(Name,"grade is",Score). grade:-write("Sorry,the student cannot find!").

相关文档
最新文档