《人工智能实验》课程实验教学大纲

ExperimentsofArtificialIntelligence

开课单位

计算机科学与工程学院

课程性质

必修课

课程类别

实践环节

课程代码

210731102301

学分

1

学时

22

适用专业

计算机科学与技术

先修课程

人工智能、程序设计基础

支撑课程

人工智能

授课语言

中文

一、课程简介

(一)课程中文简介

人工智能实验课程的目标要求学生在掌握人工智能的基本概念、基本原理和基本方法的基础上,能应用人工智能理论与技术解决实际问题的范例。课程围绕人工智能技术的主要教学内容,设置了11个典型实验,让学生编程实现,深入理解人工智能的原理与技术算法。主要实验内容包括产生式系统实验、模糊推理系统实验、启发式算法应用实验、智能计算应用实验、基于神经网络模型的实验等实验项目。通过实验,能够发挥学生的主动性,研究探讨人工智能系统的运行和实现过程,提出并积极验证和探索自己的思路,从而更好地掌握知识,培养学生的理论联系实际能力和创新能力,最终提高他们发现问题、分析问题和解决问题的能力。

(二)课程英文简介

ThegoaloftheExperimentsofArtificialIntelligencerequiresstudentstomasterthebasicconcepts,principles,andmethodsofartificialintelligence,basedonwhichsolvepracticalproblemsandcases.Thecoursefocusesonartificialintelligencetechnologiesandsetsup11typicalexperimentstoenablestudentstohaveanin-depthunderstandingofthealgorithmofartificialintelligencethroughprogramming.Themainexperimentsaretherealizationofprojectsincludingproductionsystems,fuzzyinferencesystems,heuristicalgorithms,intelligentcomputing,neuralnetwork-basedexperiments.Throughtheseexperiments,studentscaninitiativelystudytheimplementationoftheartificialintelligencesystems,activelyproposeandverifytheirideastobettergraspknowledge,andcultivatetheirpracticalandinnovationabilitytofind,analyzeandsolvereal-lifeproblems.

二、实验课程目标

CO1:掌握人工智能的基本概念、基本原理、基本模型和基本方法,应用知识表示与推理、启发式搜索、智能计算、神经网络等人工智能技术进行问题求解。

CO2:综合运用人工智能模型和方法,设计算法并编程实现,能够应用人工智能技术解决复杂工程问题。

CO3:掌握人工智能技术和智能系统的评价方法,分析、评估实验结果,完善智能系统的性能。

课程目标与所支撑的毕业要求指标点的对应关系如表1所示。

表1课程目标与所支撑的毕业要求内涵观测点的对应关系

毕业要求内涵观测点

课程目标

GR4.2:能够针对计算机技术与应用领域的复杂工程问题设计系统解决方案、构建实验系统和测试平台、获取实验数据。

CO1CO2

GR5.1:掌握现代信息技术的使用原理和方法,并理解其局限性,能够选择与使用恰当的软硬件开发环境与工具,对计算机技术与应用领域的复杂工程问题进行模拟与仿真。

CO3

三、实验内容与要求

(一)实验设计(实验类型及内容)

包含11个实验:(1)产生式系统实验、(2)洗衣机模糊推理系统实验、(3)汽车控制模糊推理系统实验、(4)A*算法求解八数码问题实验、(5)A*算法求解迷宫寻路问题实验、(6)遗传算法求解函数最大值实验、(7)遗传算法求TSP问题实验、(8)蚁群算法求TSP问题实验、(9)人工神经网络模型原理实验、(10)神经网络的优化计算实验、(11)基于神经网络的模式识别实验。其中(2)和(3)选做一个,(4)和(5)选做一个,(6)-(8)选做一个,(10)和(11)选做一个。演示性实验占9.1%,验证性实验占27.3%,综合性实验占18.2%,设计研究性实验占45.5%。具体实验内容如下:

实验1产生式系统实验(演示性)

熟悉一阶谓词逻辑和产生式表示法,掌握产生式系统的运行机理,以及基于规则推理的基本方法。并设计并编程演示一个小型产生式系统。

实验2洗衣机模糊推理系统实验(设计研究性)

实验3汽车控制模糊推理系统实验(设计研究性)

理解模糊推理的原理及特点,熟练应用模糊推理。采用Matlab7.0的FuzzyLogicTool设置汽车控制模糊推理系统。

实验4A*算法求解八数码问题实验(验证性)

熟悉和掌握启发式搜索的定义、估价函数和算法过程,并利用A*算法求解N数码难题,理解求解流程和搜索顺序。以八数码问题为例验证A*算法的求解程序(编程语言不限),要求应用两种不同的估价格函数。

实验5A*算法求解迷宫寻路问题实验(验证性)

熟悉和掌握A*算法实现迷宫寻路功能,掌握启发式函数的编写以及各类启发式函数效果的比较。以迷宫寻路问题为例实现A*算法的求解程序(编程语言不限),要求设计两种不同的估价格函数。

实验6遗传算法求解函数最大值实验(设计研究性)

熟悉和掌握遗传算法的原理、流程和编码策略,并利用遗传算法求解函数优化问题,理解求解流程并测试主要参数对结果的影响。采用Matlab7.X的遗传算法工具箱验证求解函数最大值。

实验7遗传算法求TSP问题实验(设计研究性)

熟悉和掌握遗传算法的原理、流程和编码策略,理解求解TSP问题的流程并测试主要参数对结果的影响,掌握遗传算法的基本实现方法。用遗传算法验证求解不同规模(如10、20、100个城市)的TSP无问题。

实验8蚁群算法求TSP问题实验(设计研究性)

熟悉和掌握蚁群算法的原理、流程和编码策略,理解求解TSP问题的流程并测试主要参数对结果的影响,掌握蚁群算法的基本实现方法。用蚁群算法验证求解不同规模(如10、20、100个城市)的TSP无问题。

实验9人工神经网络模型原理实验(验证性)

通过本实验掌握人工神经网络的原理,理解深度学习的基础知识,为其他高级深度学习算法的学习做准备。本实验首先对人工神经网络的原理做介绍并配合一系列小的实验加深理解,之后通过简单的人工神经网络实验实现手写数字识别。

实验10神经网络的优化计算实验(综合性)

掌握连续Hopfield神经网络的结构和运行机制,理解连续Hopfield神经网络用于优化计算的基本原理,掌握连续Hopfield神经网络用于优化计算的一般步骤。采用VC++6.0编写基于连续Hopfield神经网络求解TSP问题的程序。

实验11基于神经网络的模式识别实验(综合性)

理解BP神经网络和离散Hopfield神经网络的结构和原理,掌握反向传播学习算法对神经元的训练过程,了解反向传播公式。通过构建BP神经网络和离散Hopfield神经网络模式识别实例,熟悉前馈网络和反馈网络的原理及结构。Matlab7.X的神经网络工具箱:在Matlab7.X的命令窗口输入nntool,然后在键盘上输入Enter键,即可打开神经网络工具箱。

表2实验内容与课程目标对应关系

实验课程目标

实验模块(可选)

对应实验

CO1

实验1-9

CO2

实验4-11

(二)实验内容及要求

表3实验内容与要求

编号

实验项目

学时数

实验内容

实验类型

实验要求

产生式系统实验

4

设计并编程实现一个小型产生式系统(如分类、诊断等类型)

设计研究性

必做

2

洗衣机模糊推理系统实验

选做其中一个

3

汽车控制模糊推理系统实验

采用Matlab7.0的FuzzyLogicTool设置汽车控制模糊推理系统

A*算法求解八数码问题实验

以八数码问题为例实现A*算法的求解程序(编程语言不限),要求设计两种不同的估价格函数

验证性

5

A*算法求解迷宫寻路问题实验

以迷宫寻路问题为例实现A*算法的求解程序(编程语言不限),要求设计两种不同的估价格函数

6

遗传算法求解函数最大值实验

采用Matlab7.X的遗传算法工具箱求解函数最大值

7

遗传算法求TSP问题实验

用遗传算法求解不同规模(如10、20、100个城市)的TSP无问题

8

蚁群算法求TSP问题实验

用蚁群算法求解不同规模(如10、20、100个城市)的TSP无问题

9

人工神经网络模型原理实验

首先对人工神经网络的原理做介绍并配合一系列小的实验加深理解,之后通过简单的人工神经网络实验实现手写数字识别。

10

基于神经网络的模式识别实验

Matlab7.X的神经网络工具箱:在Matlab7.X的命令窗口输入nntool,然后在键盘上输入Enter键,即可打开神经网络工具箱

综合性

11

基于神经网络的优化计算实验

采用VC++6.0编写基于连续Hopfield神经网络求解TSP问题的程序

四、实验设备与环境配置

1.计算机:IntelCore2DuoE43001.8GHZ、内存512MB、硬盘15GB以上。

2.编译器:支持VC++2013以上。

3.开发环境:Matlab7.X,Codeblocks10.05以上,或VisualStudio2008以上,或Xcode4.1以上,或Jupyter工作台

4.实验题目及结果:学生在程序在线评测系统进行实验,通过撰写的实验报告进行实验成绩评定,或使用系统题库的由系统判定实验结果。

五、课程思政、创新创业元素(1学分课程要求至少确定5处“课程思政”融入点和2个“创新创业教育”案例;2学分及以上课程要求至少确定10处“课程思政”融入点和3个“创新创业教育”案例。)

教学章节

知识点

思政元素案例

培养目标

备注

实验1

介绍麦卡锡在“知识表示”上的贡献

培养学生对人工智能的兴趣

课程思政

引入推理的方式及分类

锻炼学生的逻辑思维,培养学生思路严谨、考虑周全的思考方式

实验2

培养学生能够围绕现实事物具有提出问题、分析问题、解决问题的能力

实验4

选取人工智能领域杰出科学家的事迹,如国家最高科学技术奖得主吴文俊院士的成长案例

鼓励学生坚定信念,追求理想,对学生进行理想信念教育

实验5

选取互联网行业创业成功的案例,如张旭豪在大学时代创办的“饿了么”等,学生身边的案例更能激发学生创新创业的动力

鼓舞学生创新创业的勇气

创新创业案例

实验6

介绍深度学习教父杰夫·欣顿的故事

培养学生终身学习的理念

实验8

介绍当前80%的人工智能公司用神经网络做图像识别

培养学生坚持创新的精神,鼓励学生做时代精神的弘扬者和改革创新的实践者

六、主要参考资料

[1]王万良.人工智能及其应用(第3版).北京:高等教育出版社,2017.

[2]王万良.人工智能导论(第4版)[M].北京:高等教育出版社,2017.7.

[3]张仰森.黄改娟.人工智能教程(第2版).北京:高等教育出版社,2016.

[4]张仰森.人工智能教程学习指导与习题解析.北京:高等教育出版社,2009.

[5]史忠植.人工智能.北京:机械工业出版社,2016.

[6]StuartJ.Russell,PeterNorvig著,殷建平,祝恩,刘越,陈跃新,王挺译.人工智能:一种现代的方法(第3版).北京:清华大学出版社,2013.

七、考核方式、方法及实验成绩评定方法

考核成绩可以采用五级制或百分制。课程成绩考核主要由平时成绩组成,可以进行期末考核。平时考核包括出勤、展示、各次实验考核等形式。

(一)评分标准

表4实验评分标准

考核

环节

<60

(不及格)

60-69

(及格)

70-79

(中等)

80-89

(良好)

90-100

(优秀)

平时

①不能够完成课内实验内容,程序调试及运行结果基本不正确,不能够解决报错问题;

②按时完成实验项目数低于50%;

③不能准确描述问题,不参与交流讨论;

④报告或程序组织结构不合理,内容不规范或不完整性,逻辑性差。作品表述能力差,实验结果错误或没有。

①能够完成课内实验内容,程序调试及运行结果基本正确,基本能够解决报错问题;

②按时完成实验项目占比为

50%-69%

③基本能够提出问题,较少参与交流讨论;

④报告或程序组织结构合理性尚可,内容规范完整性尚可,逻辑性尚可。作品表述能力尚可,实验结果分析较少。

①能够完成课内实验内容,程序调试及运行结果正确,基本能够解决报错问题;

70%-89%

③能够提出问题,参与交流讨论;

④报告或程序组织结构基本合理,内容基本规范完整,基本符合逻辑性。作品表述能力一般,实验结果分析一般。

①能够较好完成课内实验内容,程序调试及运行结果正确,方法较好,能够解决报错问题;

②按时完成实验项目占比为90%以上;③能够较准确地提出问题,交流讨论较积极;

④报告或程序组织结构较合理,内容比较规范完整,符合逻辑性。作品表述能力较好,实验结果较好。

①能够出色完成课内实验内容,程序调试及运行结果稳定,能够独立解决报错问题;

②所有实验项目均按时完成;

③能够准确提出问题,积极交流讨论;

④报告或程序组织结构合理,内容规范完整,符合逻辑性。作品表述能力出色,实验结果分析准确,并有独到见解。

THE END
1.三大迷宫生成算法(Mazegenerationalgorithm)通俗的说,就是从起点开始随机走,走不通了就返回上一步,从下一个能走的地方再开始随机走。一般来说,深度优先法生成的迷宫极度扭曲,有着一条明显的主路。我们使用python语言+matplotlib生成的20*30的迷宫如图所示: 我们参考维基百科,使用python语言,深度优先迷宫算法如下,代码中都已经加了注释,需要注意的是生成迷宫https://blog.csdn.net/juzihongle1/article/details/73135920
2.迷宫生成算法DouO'sBlog我用html5实现一个迷宫生成算法的演示,分别针对DFS,Kruskal,Prim和最后的分治法.可以去玩一下. 抱怨一下javascript,绘画速度还是不够快,对于大一点的迷宫必须用脏矩形重绘,才能保证速度.不够画出来的效果却不咋地. 至于这种迷宫的走法,一个DFS就可以很好地解决了. https://dourok.info/2011/07/14/maze-generation-algorithm/
3.迷宫生成算法迷宫生成算法是创建迷宫的自动方法。 迷宫可以从预先确定的细胞排列(最常见的是矩形网格,但也可能有其他排列)开始生成,细胞之间有壁垒。这种预定的安排可以被看作是一个连接图,边代表可能的墙址,节点代表单元。然后,迷宫生成算法的目的可以被认为是制作一个子图,在https://vibaike.com/163530/
4.三种迷宫生成算法概述属于构造墙壁生成迷宫的算法。 在空白空间随机生成十字墙壁,将空间分割为四个子空间,然后在三面墙上各自选择一个随机点挖洞,保证四个子空间的连通。之后继续对子空间做分割,直至空间不足以继续分割为止。 引用一下别人的总结:这三种算法分别适合不同的迷宫情况,递归回溯适合于那种主线支线明显的游戏(如RPG),而递归分割https://www.jianshu.com/p/f643b0a0b887
5.java迷宫算法的理解(递归分割,递归回溯,深搜,广搜)java本文主要使用的算法(自动生成地图:递归分割法、递归回溯法;寻找路径:深度优先、广度优先算法),非常具有实用价值,需要的朋友可以参考下+ 目录 最近这学期做了一个java迷宫的课程设计,这里代码及其算法逻辑就分享出来。 首先简单的说一下其中我使用的算法(自动生成地图:递归分割法、递归回溯法;寻找路径:深度优先、广度https://www.jb51.net/article/214795.htm
6.A*算法求解迷宫寻路问题(启发式算法)51CTO博客在一个n×m的迷宫里,入口坐标和出口坐标分别为(startx,starty)和(endx,eny),每一个坐标点有两种可能:0或1,其中0表示该位置允许通过,1表示该位置不允许通过。以寻路问题为例实现A*算法的求解程序,设计两种不同的估价函数。 设置相关数据 设置两种地图 https://blog.51cto.com/lazyn/6290747
7.随机迷宫生成算法浅析软件开发资料库本文对随机迷宫生成进行了初步的研究和分析,并给出了两种不同的生成算法。最终的算法结合了图的深度优先遍历。通过对比两种算法之间,可发现,在实际问题中,结合了离散数学的方法往往非更有效率且效果更佳。 关键词:随机地图生成(random maze generating)、深度优先遍历(depth-first search) https://www.iteye.com/blog/xiaoruanjian-879887
8.手撕算法opencv实现走迷宫算法本文利用opencv实现了深度优先搜索DFS和广度优先搜索BFS两个算法来走迷宫,迷宫也是用opencv+鼠标画的。 1,绘制迷宫 首先是绘制一个迷宫了,直接网上找一个迷宫图然后opencv二值化处理一下也可以。 我是利用鼠标回调函数自己画的,更简洁明了一些。在画迷宫时,我们鼠标点击左键,则在点击位置放置一块墙(白色),点击右键https://zhuanlan.zhihu.com/p/349259822
9.迷宫问题的回溯算法迷宫问题是一种常见的求解路径问题,其中给定一个迷宫地图和起点、终点,要求找出从起点到终点的一条可行路径。回溯算法是迷宫问题的一种解决方法,这里给出一种 Python 语言的实现。 代码如下: # 定义迷宫地图 maze = [[0, 1, 0, 0, 0], [0, 1, 0, 1, 0], https://www.volcengine.com/theme/6657427-M-7-1
10.迷宫生成与解算算法硬声是电子发烧友旗下广受电子工程师喜爱的短视频平台,推荐 迷宫生成与解算算法 视频给您,在硬声你可以学习知识技能、随时展示自己的作品和产品、分享自己的经验或方案、与同行畅快交流,无论你是学生、工程师、原厂、方案商、代理商、终端商上硬声APP就够了!https://www.elecfans.com/v/9111
11.数据网渗透攻击中的拓展的迷宫路径算法AET摘要:为了解决传统网络渗透方法在异构网络上适应性较差的问题,采用计算机算法与设计中的迷宫路径算法、图论中的相关理论,将传统的迷宫路径算法进行了拓展。在此基础上,利用拓展的迷宫路径算法对网络渗透进行了全新探索,提高了异构网络下的网络渗透适应能力与速度,为开展有目标性的网络攻击打下了坚实的基础。利用上述研究确http://m.chinaaet.com/article/209940
12.迷宫问题A*算法求最短路径迷宫问题-A*算法求最短路径 A*算法求解最短路径 -个人觉得是BFS的优化版本,在效率和空间上要比BFS高效很多,尤其是点很多的时候 参考链接https://blog.csdn.net/qq_36946274/article/details/81982691 求解主要公式 F=G+H 其中,F:为当前点总的移动耗费;https://blog.nowcoder.net/n/8007c948d8ec40169cc6187f5e6690c7
13.迷宫寻路系列常用算法逻辑探究同样的场景,如果迷宫很大,那使用BFS的话,效果就不是很高。那是否存在更高效的算法呢? 有两种成熟而常规的实现思路: A*算法和双向宽度优先搜索。 1)A*算法: 该算法引入启发式评估函数,用以加速最短路径求解过程。 核心概念: 历史代价g(n): 从初始节点到n节点的实际代价,代表过去和现在 https://www.gameres.com/487228.html
14.迷宫问题算法其中一个有意思的问题就是迷宫问题,也就是如何从一个迷宫的入口走到出口。本文将向大家介绍迷宫问题的算法及其实现。 一、迷宫问题的形式化定义 一个迷宫可以被看做是一个有向图,其中每个节点表示一个房间,边表示房间之间的通路。我们假设每个房间有四个方向,上下左右,故有向图的每个节点最多有四个邻居节点。 https://wenku.baidu.com/view/2eb90658084c2e3f5727a5e9856a561253d32144.html
15.算法:堆栈与深度优先搜索(迷宫问题)腾讯云开发者社区算法:堆栈与深度优先搜索(迷宫问题) 堆栈的访问规则被限制为Push和Pop两种操作,Push(入栈或压栈)向栈顶添加元素,Pop(出栈或弹出)则取出当前栈顶的元素,也就是说,只能访问栈顶元素而不能访问栈中其它元素。 现在我们用堆栈解决一个有意思的问题,定义一个二维数组:https://cloud.tencent.com/developer/article/1012328