人工智能课程实验教学大纲课程编号:课程名称:智能系统课程总学时:32 课程总学分:2.5实验总学时:8适用专业:计算机专业本科第5学期课程类型:√必修□选修先修课程:离散数学、数据结构一、实验教学的目的、任务与要求共分2个实验,8学时内完成。
每次2学时,共4次上机。
每个实验相当于一个大作业,锻炼学生运用知识解决实际问题的能力,从而对所学知识有更深刻的理解。
要求提交源代码,运行结果和相关文档(包括核心算法)。
由实验老师逐一检查考核,占考试成绩的20%。
二、实验项目内容及学时分配:序号实验项目学时实验内容实验类型备注1 图搜索策略实验 4 用八数码难题演示各种搜索策略验证型2 回溯策略与博弈树搜索4 八皇后问题或一字棋游戏的实现基础型可选3 Chp5产生式系统的推理4用动物识别系统实现基于规则的系统构造设计型可选4 用遗传算法实现TSP问题求解410节点以内TSP问题的遗传算法实现设计型5 神经网络实验 4 用神经网络实现一个简单分类器设计型可选三、主要教材(讲义、实验指导书):廉师友编人工智能技术导论(第三版),西安电子科技大学出版社参考书:1.《人工智能及其应用》、蔡自兴,徐光佑编著、清华大学出版社、20032.人工智能原理与方法、王永庆编、西安交通大学出版社、19973. 人工智能原理与应用、何华灿主编、西北工业大学出版社,19884. 人工智能(上下册)、陆汝钤、科学出版社、19965. Artificial Intelligence: A New Synthesis. Morgan Kaufman、N. J. Nilsson.、机械工业出社、19986.人工智能:复杂问题求解的结构和策略、(美)George F. Luger著, 史忠植等译、机械工业出版社、2003四、考核方式:闭卷考试(70%)+平时作业和上课签到(10%)+上机作业(20%)五、使用主要仪器设备说明:在Windows2000/XP环境下,语言可以采用C/C++/JA V A/Matlab等。
实验室提供相关软件可由学生根据需要安装。
制订人:艾丽蓉课程负责人:实验中心审核人:学院审核人:大纲制订时间: 2015年6月9日填表说明:实验类型:基础型、验证型、综合型、设计型、创新研究型。
实验一图搜索策略1.实验目的(说明本次实验应对那些知识达到何种认知程度,如了解/掌握)(1) 加深对各种图搜索策略概念的理解;(2) 进一步了解启发式搜索、α-β剪枝等概念;(3) 比较并分析各种图搜索策略的异同。
2. 实验预习内容(1) 了解重排九宫问题、一字棋游戏、八皇后问题;(2) 各种图搜索算法及剪枝技术等。
3. 实验内容和步骤结合第二章内容,以一字棋游戏、八皇后问题、或重排九宫/八数码问题为例,分组(1人或2人一组)编程演示其搜索过程。
1. 搜索策略根据自己能力选择:(1)任意一种搜索策略;(2)采用全局择优搜索,其中的启发式函数自己设计。
要求程序具有一定的普适性,重点是要把算法描述清楚。
2. 对博弈感兴趣的同学可选做一字棋游戏的实现,并演示剪枝后的效率变化。
4.实验总结及思考总结出各种搜索策略的特点和区别。
5. 实验一检查的指标:1.界面显示要求:(1)包含初始状态和目标状态的显示;其中初始状态的显示包含两类选择:一个是标准的范例,一个是随机的状态;(2)在界面上说明你所采用的搜索策略;(简单说明即可)(3)每次搜索过程的步骤,不要求树型结构,只要求(动画)表现,每走一步的状态变化;(4)每走一次搜索步,需要有步数的累积显示;(5)最后有完成一次搜索完毕的结果显示。
2.代码要求:搜索过程或算法的控制策略的核心代码3.要求学生讲解自己设计代码的构架,如何实现的。
(包含使用了哪些类,类中的方法主要来实现什么)4.回答辅导老师提出一些问题。
5.提交实验报告(代码和实验完成后的设计框架说明)。
附:实验报告模板:1.实验目的:2.实验要求:3.实验算法:1)有解和无解如何判定?2)启发式函数如何设定?3)open表和close表如何实现?4)关键的函数有哪些?4. 实验总结及体会补充:八数码问题的有解和无解判定将九宫格中数字顺序排列后,形成一个包含0在内的9位数字序列,该字串可用来表示九宫格的当前状态,其中0表示空格所在位置。
当空格上下、左右移动时,易知序列的逆序值奇偶性不会发生改变。
由此可知,九宫问题的362,880种状态被分成逆序值为奇数和逆序值为偶数两部分,每一部分内任意两种状态相互可达。
在八数码问题中,有些状态之间是不可达的。
如果我们能在一开始先判断初始状态和目标状态之间是否可达,这样可以避免不可达状态之间的盲目求解。
两个状态之间是否可达可以通过两个状态逆序值的奇偶性进行判断。
我们把每个状态看作一个数列,然后计算数列的逆序值,若两个数列逆序值的奇偶性相同,则对应的两个状态是可达的,否则不可达。
(注:求逆序值不把空格算在内)。
如图2所示状态:2 3 15 8 46 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。
实验二产生式系统的推理1. 实验目的(说明本次实验应对那些知识达到何种认知程度,如了解、掌握等)理解并掌握基于规则系统的表示与推理。
2. 实验预习内容(1) 了解动物识别系统问题;(2) 产生式系统的组成部分,正向推理,逆向推理和产生式系统的类型。
3. 实验内容和步骤结合第五章内容,以动物识别系统(或货物袋装系统)为例,实现基于规则的系统构造实验4学时。
要求能根据输入的规则,正确地识别所能识别的动物。
能完成正向和/或反向推理我们假设计算机的视觉系统可以识别毛发、羽毛、奶、犬齿、爪、蹄、颜色等等基本的事实。
一个动物识别专家系统的产生式如下:R1:若某动物有奶,则它是哺乳动物。
R2:若动物有毛发,则它是哺乳动物。
R3:若动物有羽毛且卵生,则它是鸟类。
R4:若动物是哺乳动物,唇裂,善跳跃,则它是兔子。
R5:若动物是哺乳动物,食肉,褐色,有黑条纹,则它是老虎。
R6:若动物是哺乳动物,有蹄,脖子长,有黑条纹,则它是长颈鹿。
R7:若动物是鸟类,上嘴鹰钩,会模仿人说话,则它是鹦鹉。
R8:若动物是鸟类,黑色,不能飞,善游泳潜水,则它是企鹅。
R9:若动物是鸟类,腿短,嘴扁平,善潜水游泳,则它是鸭子。
R10:若动物是鸟类,上嘴鹰钩,有爪,吃肉,则它是鹰。
在上述规则下要识别以下22种动物:兔子:有毛发,善跳跃,唇裂;有奶,善跳跃,唇裂;有毛发,有奶,善跳跃,唇裂;猫:有毛发,善捕鼠,脚有肉垫;有奶,善捕鼠,脚有肉垫;有毛发,有奶,善捕鼠,脚有肉垫;犀牛:有毛发,鼻子上有角,褐色,皮糙肉后,有蹄;有奶,鼻子上有角,褐色,皮糙肉后,有蹄;有毛发,有奶,鼻子上有角,褐色,皮糙肉后,有蹄;熊猫:有毛发,黑眼圈,四肢短小;有奶,黑眼圈,四肢短小;有毛发,有奶,黑眼圈,四肢短小;金钱豹:有毛发,褐色,吃肉,有斑点;有奶,褐色,吃肉,有斑点;有毛发,有奶,褐色,吃肉,有斑点;老虎:有毛发,褐色,吃肉,有黑条纹;有奶,褐色,吃肉,有黑条纹;有毛发,有奶,褐色,吃肉,有黑条纹;长颈鹿:有毛发,有蹄,长脖子,黑条纹;有奶,有蹄,长脖子,黑条纹;有毛发,有奶,有蹄,长脖子,黑条纹;鸭子:有羽毛,卵生,善游泳,嘴扁平,腿短;企鹅:有羽毛,卵生,不会飞,善游泳,黑色;鹅:有羽毛,卵生,善潜水游泳,白色或黑色,颈长,嘴大,腿长,颈部有肉只凸起;鸦:有羽毛,卵生,黑色,嘴大;鹰:有羽毛,卵生,有爪,吃肉,上嘴鹰钩;鹦鹉:有羽毛,卵生,上嘴鹰钩,能模仿人说话;青蛙:卵生,生活在水中,生活在陆地,有皮肤呼吸,用肺呼吸,皮肤光滑,吃昆虫,会变色;蝾螈:卵生,生活在水中,生活在陆地,有皮肤呼吸,用肺呼吸,吃昆虫,皮肤粗糙,四肢扁,背部黑色;蟾蜍:卵生,生活在水中,生活在陆地,有皮肤呼吸,用肺呼吸,吃昆虫,皮肤粗糙;比目鱼:用鳃呼吸,身体有鳍,生活在海洋中,身体扁平,两眼在头部同侧;鲫鱼:用鳃呼吸,身体有鳍,生活在淡水中,身体扁平,头高尾部窄;蛇:生活在陆地,用肺呼吸,胎生,身体有鳞或甲,身体圆而细长,吃小动物;壁虎:生活在陆地,用肺呼吸,胎生,身体有鳞或甲,有四肢,尾巴细长易断,吃昆虫;乌龟:生活在陆地,用肺呼吸,胎生,身体有鳞或甲,身体圆而扁,有坚硬的壳;玳瑁:生活在陆地,用肺呼吸,胎生,身体有鳞或甲,壳为黄褐色,皮肤光滑,有黑斑;鳄鱼:生活在陆地,用肺呼吸,胎生,身体有鳞或甲,有四肢,善游泳,皮硬黑褐色;4.实验总结及思考通过实例产生式系统规则集与推理机的实现,体会正向和反向推理模式5. 实验二检查的指标:1.界面显示要求(1)有若干选择动物特征的选择列表;(2)表现判断动物时,使用了哪些规则;(3)表现数据库的变化;(正向推理中表现每使用一次规则后,产生新事实。
反向推理中表现新的目标事实有哪些需要证明,哪些已经得到证实);(4)显示规则的调用次序;(5)显示最后的结果,包含动物能识别出来和动物不能识别出来两种情况。
(6)至少检查两个例子实现正向推理和反向推理的区别2.代码要求:如何添加事实和特征的知识;所有规则的代码;控制策略的代码(采用何种控制策略)。
3.要求学生讲解自己设计代码的构架,如何实现的。
4.回答辅导老师提出一些问题。
5.提交实验报告(代码和实验完成后的设计框架说明)。
1)指出综合数据库和规则库分别使用哪些函数实现的?2)规则库的匹配算法是什么?3)如何选用可用规则集中的规则?怎么用函数实现的?实验三TSP问题的遗传算法实现1. 实验目的(说明本次实验应对那些知识达到何种认知程度,如了解、掌握等)理解并掌握遗传算法的基本原理和求解问题的实现方法。
2. 实验预习内容(1) 了解TSP问题;(2) 遗传算法的基本原理、各个遗传操作和算法步骤。
3. 实验内容和步骤1. 内容: 以TSP问题为应用实例,应用遗传算法求解个节点的TSP问题。
2. 要求: 能求出问题最优解。
4.实验总结及思考(1)总结遗传算法的特点以及如何在具体实例中进行应用。
(2)填写实验报告。
5. 实验三检查的指标:1.界面显示要求(1)显示求出的最优解;(2)显示迭代次数及每次迭代求出的局部最优值。
2.代码要求:复制、交叉和变异算子的核心代码。
3.要求学生讲解自己设计代码的构架,如何实现的。
4.回答辅导老师提出一些问题。