人工智能实验指导书作业展示.docx

上传人:b****2 文档编号:943566 上传时间:2022-10-14 格式:DOCX 页数:49 大小:910.78KB
下载 相关 举报
人工智能实验指导书作业展示.docx_第1页
第1页 / 共49页
人工智能实验指导书作业展示.docx_第2页
第2页 / 共49页
人工智能实验指导书作业展示.docx_第3页
第3页 / 共49页
人工智能实验指导书作业展示.docx_第4页
第4页 / 共49页
人工智能实验指导书作业展示.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

人工智能实验指导书作业展示.docx

《人工智能实验指导书作业展示.docx》由会员分享,可在线阅读,更多相关《人工智能实验指导书作业展示.docx(49页珍藏版)》请在冰豆网上搜索。

人工智能实验指导书作业展示.docx

人工智能实验指导书作业展示

《人工智能技术导论》

实验指导书

 

西北工业大学计算机学院

 

一实验纲要

一实验教学的目的、任务与要求

将人工智能基础理论应用于实际问题的解决当中,加深学生对所学知识的理解,提高学生的实际动手能力。

二实验项目内容

1图搜索策略实验

用启发式搜索方法/A*算法求解重排九宫问题/八数码问题。

2产生式系统的推理

以动物识别系统为例,实现基于产生式规则的推理系统。

3TSP问题的遗传算法实现

以N个结点的TSP问题为例,用遗传算法加以求解。

三参考教材

人工智能技术导论-第3版,廉师友编著,西安电子科技大学出版社,2007。

四使用主要仪器设备说明

在Windows2000/XP上,选用Java/C/C++/Matlab等语言进行实现。

五实验考核

实验为12学时,分4次课完成。

每个实验题目在课堂上分别按百分制给出。

其中包括课堂纪律、程序运行结果、课堂回答问题及实验报告成绩等。

实验课总成绩为3个实验题目的平均成绩。

实验课要求学生提前预习,上课时需向辅导老师提交预习报告,报告格式和内容不作过多要求,只需简要说明自己本次实验的大体思想。

预习报告形式不限,电子版或手写版均可。

1考核方法

由各班辅导老师当堂检查源程序和运行结果,并提问相关问题,课堂上给出成绩并记录。

每个题目完成后把源代码和实验报告提交,由辅导老师检查实验报告并给出报告成绩。

2评分标准

每个实验题目根据以下标准进行考核:

1)考勤分20分。

按时到课,无违纪现象20分;迟到或事假扣5分;无故缺勤,0分; 

2)预习情况10分。

认真完成课前预习者10分;不预习,0分;其他情况酌情给分。

  

3)程序内容成绩30分。

程序运行正确,达到规定要求,20分;能在规定的要求上完成更完善的功能,或具有一定的界面效果,25分;特别优秀者,30。

具体在此基础上酌情给分。

4)实验报告成绩30分。

实验报告达到要求,最高分为30分。

互相抄袭,记0分;其他情况酌情给分。

5)回答问题成绩10分。

回答问题正确最高分为10分;回答问题均不正确,0分;其他情况酌情给分。

6)第一次实验课只记考勤,无故缺勤者总成绩中扣5分。

3实验报告

在每个实验完成后,在规定时间内提交实验报告。

实验报告格式,参见实验报告模板。

提交内容:

1)实验报告2)源代码

提交形式:

将实验报告和源代码压缩成zip文件,命名为AI-班号-学号-姓名.zip

二上机要求

1上机之前

上机之前做好相关知识复习,上课时捎带课本或参考书。

提前了解实验内容,并准备好自己的算法。

 

2上机过程

1.根据提前设计的算法,进行上机验证并调试,遇到问题及时解决;

2.上机时间,遵守实验室纪律;

3.在规定的时间内向指导教师提交作业。

各自保存好每次实验的源代码,并在规定时间内将源代码和实验报告压缩后提交。

三实验内容

实验一图搜索与问题求解

本次实验主要用来熟悉图搜索技术在具体问题中的求解过程,下面主要以八数码问题展开,也可以以其它题目展开实验。

实验1.1启发式搜索

一实验目的

1熟悉和掌握启发式搜索的定义、估价函数和算法过程;

2理解和掌握启发式搜索过程,能够用选定的编程语言求解八数码问题,理解求解流程和搜索顺序;

3比较并分析图搜索策略的实质,通过实验理解启发式搜索的意义。

二实验内容

以重排九宫问题/八数码问题为例,以启发式搜索方法求解给定初始状态和目标状态的最优搜索路径。

1重排九宫问题

在一个3*3的方格棋盘上放置8个标有1、2、3、4、5、6、7、8数字的将牌,留下一个空格(一般用0表示),规定与空格上下左右相邻的将牌可以移入空格。

问题的解是要求寻找一条从某初始状态S0到目标状态Sg的将牌移动路线。

下面给出初始状态和目标状态,如:

2

8

3

1

6

4

7

5

1

2

3

8

4

7

6

5

初始棋局目标棋局

图1八数码问题示例

2问题描述

要求用某种启发式搜索方法求解从给定的初始状态到目标状态的移动路线。

三实验要求

1自己定义启发式函数,能正确求解出从初始状态到目标状态的移动路线;

2要求界面显示初始状态、目标状态和中间搜索步骤;

3对不可达状态能进行正确识别;

4对所采用的启发式函数做出性能分析。

四实验背景知识

1图搜索技术

图搜索技术是人工智能中的一个核心技术之一,人工智能的许多分支领域都涉及到图搜索,在状态图中寻找目标或路径的基本方法就是搜索。

由于搜索具有探索性,所以要提高搜索效率(尽快地找到目标节点),或要找最佳路径(最佳解)就必须注意搜索策略。

对于状态图搜索,已经提出了许多策略,它们大体可分为盲目搜索和启发式搜索两大类。

用计算机来实现状态图的搜索,有两种最基本的方式:

树式搜索和线式搜索。

树式盲目搜索就是穷举式搜索,而线式盲目搜索,对于不回溯的就是随机碰撞式搜索,对于回溯的则也是穷举式的搜索。

树式穷举式搜索主要有广度优先搜索和深度优先搜索。

实践表明,穷举搜索只能解决一些状态空间很小的简单问题,而对于那些大状态空间问题,穷举搜索就不能胜任了。

因为大空间问题,往往会导致“组合爆炸”。

所以必须探索更有效的搜索方法,如启发式搜索策略。

2启发式搜索

启发式搜索就是利用知识来引导搜索,达到减少搜索范围,降低问题复杂度的目的。

一般来说,启发信息强,可以降低搜索的工作量,但可能导致找不到最优解;而启发信息弱,一般会导致搜索的工作量加大,极端情况下演变为盲目搜索,但有可能找到最优解。

我们希望,通过引入启发知识,在保证找到最佳解的情况下,尽可能减少搜索范围,提高搜索效率。

按其用途划分,启发性信息可分为以下三类:

(1)用于扩展节点的选择,即用于决定应先扩展哪一个节点,以免盲目扩展。

(2)用于生成节点的选择,即用于决定应生成哪些后续节点,以免盲目地生成过多无用节点。

(3)用于删除节点的选择,即用于决定应删除哪些无用节点,以免造成进一步的时空浪费。

  在启发式搜索中,通常用所谓启发函数来表示启发性信息。

启发函数是用来估计搜索树上节点x与目标节点Sg接近程度的一种函数,通常记为h(x)。

启发函数并无固定的模式,需要具体问题具体分析。

通常可以参考的思路有:

一个节点到目标节点的某种距离或差异的度量;一个节点处在最佳路径上的概率;或者根据经验的主观打分等等。

在八数码问题种,启发函数h(x)可定义为目标状态与当前状态相同的节点个数,或者当前状态每个节点到目标状态相应节点所需步数的总和(水平的距离与竖直的距离和,也称为曼哈顿路径)。

3八数码问题的有解和无解判定

将九宫格中数字顺序排列后,形成一个包含0在内的9位数字序列,该字串可用来表示九宫格的当前状态,其中0表示空格所在位置。

当空格上下、左右移动时,易知序列的逆序值奇偶性不会发生改变。

由此可知,九宫问题的362,880种状态被分成逆序值为奇数和逆序值为偶数两部分,每一部分内任意两种状态相互可达。

在八数码问题中,有些状态之间是不可达的。

如果我们能在一开始先判断初始状态和目标状态之间是否可达,这样可以避免不可达状态之间的盲目求解。

两个状态之间是否可达可以通过两个状态逆序值的奇偶性进行判断。

我们把每个状态看作一个数列,然后计算数列的逆序值,若两个数列逆序值的奇偶性相同,则对应的两个状态是可达的,否则不可达。

(注:

求逆序值不把空格算在内)。

如图2所示状态:

2

3

1

5

8

4

6

7

图2棋局示例

它对应的数列是:

23158467(不包括空格)。

对于一个数列,数列中每个数的逆序值是指位于这个数前面的比这个数大的数的个数。

数列的逆序值就是数列中每个数的逆序值之和。

逆序值求法:

例:

23158467的逆序值为6,求解过程为:

0+0+2(1<2,1<3)+0+0+2(4<5,4<8)+1(6<8)+1(7<8)=6

而状态12345678的逆序值自然就是0。

4曼哈顿路径

曼哈顿距离(ManhattanDistance),又称为出租车距离,是由十九世纪的赫尔曼·闵

可夫斯基所创词汇,是种使用在几何度量空间的几何学用语,用以标明两个点上在标准坐标系上的绝对轴距总和。

图3曼哈顿距离示意图

我们可以定义曼哈顿距离的正式意义为L1-距离或城市区块距离,也就是在欧几里德空间的固定直角坐标系上两点所形成的线段对轴产生的投影的距离总和。

  例如在平面上,坐标(x1,y1)的点P1与坐标(x2,y2)的点P2的曼哈顿距离为:

  |x1-x2|+|y1-y2|.

要注意的是,曼哈顿距离依赖坐标系统的转度,而非系统在坐标轴上的平移或映射。

5康托展开

(1)康托展开的公式:

把一个整数X展开成如下形式:

  X=a[n]*(n-1)!

+a[n-1]*(n-2)!

+...+a[i]*(i-1)!

+...+a[2]*1!

+a[1]*0!

其中,a为整数,并且0<=a[i]

(2)康托展开的应用实例

{1,2,3,4,...,n}表示1,2,3,...,n的排列如{1,2,3}按从小到大排列一共6个。

123132213231312321。

代表的数字123456也就是把10进制数与一个排列对应起来。

他们间的对应关系可由康托展开来找到,如想知道321是{1,2,3}中第几个大的数可以这样考虑:

  第一位是3,当第一位的数小于3时,那排列数小于321如123、213,小于3的数有1、2。

所以有2*2!

个。

再看小于第二位2的:

小于2的数只有一个就是1,所以有1*1!

=1所以小于321的{1,2,3}排列数有2*2!

+1*1!

=5个。

所以321是第6个大的数。

2*2!

+1*1!

是康托展开。

再举个例子:

1324是{1,2,3,4}排列数中第几个大的数:

第一位是1小于1的数没有,是0个0*3!

第二位是3小于3的数有1和2,但1已经在第一位了,所以只有一个数21*2!

第三位是2小于2的数是1,但1在第一位,所以有0个数0*1!

,所以比1324小的排列有0*3!

+1*2!

+0*1!

=2个,1324是第三个大数。

(3)康托展开的启示

图搜索求解中,对于频繁访问的OPEN表和CLOSE表,有时需要判断两个节点是否相同,求节点序列的康托展开是个不错的方法。

五实验关键技术

1全局择优启发式算法

步1把初始节点S0放入OPEN表中,计算h(S0);

步2若OPEN表为空,则搜索失败,退出。

步3移出OPEN表中第一个节点N放入CLOSED表中,并冠以序号n;

步4若目标节点Sg=N,则搜索成功,结束。

步5若N不可扩展,则转步2;

步6扩展N,计算每个子节点x的函数值h(x),并将所有子节点配以指向N的返回指针后放入OPEN表中,再对OPEN表中的所有子节点按其函数值大小以升序排序,转步2。

2CLOSED表和OPEN表的设计

CLOSED表和OPEN表的设计是图搜索程序实现中一个关键问题。

我们用一个称为CLOSED表的动态数据结构来专门记录考查过的节点。

对于树式搜索来说,CLOSED表中存储的正是一棵不断成长的搜索树;采用一个称为OPEN表的动态数据结构,来专门登记当前待考查的节点。

CLOSED表和OPEN表的数据结构设计比较灵活,和具体采用的算法密切相关,这里列举两个示例:

(1)采用结构体数组示例

typedefstruct

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

当前位置:首页 > 解决方案 > 学习计划

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

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