智能搜索算法教学软件的设计与开发教育文档.docx
- 文档编号:23552220
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:11
- 大小:235.18KB
智能搜索算法教学软件的设计与开发教育文档.docx
《智能搜索算法教学软件的设计与开发教育文档.docx》由会员分享,可在线阅读,更多相关《智能搜索算法教学软件的设计与开发教育文档.docx(11页珍藏版)》请在冰豆网上搜索。
智能搜索算法教学软件的设计与开发教育文档
智能搜索算法教学软件的设计与开发
为了适应人工智能技术发展的需要,国内外高校普遍开设了人工智能方面的课程,而且已经成为计算机相关专业的核心课程之一。
我校自从1996年开始为计算机科学与技术、自动化、机械自动化等专业本科生开设了人工智能导论课程。
我校王万良教授也在2005年编著了《人工智能及其应用》教材,2008年又出版了该教材第2版,并制作了完整的电子教案和教学录像。
由于人工智能是交叉学科,涉及面广,在教学过程中又会涉
及到很多抽象理论和复杂的算法,而教材上的内容过于理论化,
教材上的应用实例又只是停留在书本文字上的纸上谈兵,所以学生在学习人工智能导论这门课程的过程中都感觉好像在学数学和算法,往往有望而生畏的感觉。
为了解决以上问题,如果单纯依
靠老师在课堂上讲解和用PPT做课件进行演示,是很难达到启发
和指导学生的要求。
为了更好地实现教学目标,提高人工智能导论课程的教学质量,协调好教与学的双边关系,使学生由望而生畏的感觉,变为有用有趣的感觉,根据已有人工智能课程在教学与实践方面的经验和方法[1-2],在人工智能课程网站
(ai.zjut.edu)的基础上,以高等教育出版社出版的《人工智能及其应用(第2版)》[3]教材第5章和第9章内容为例,设计开发了
智能搜索算法教学软件。
1教学软件的总体结构
智能搜索教学实验系统是《人工智能及其应用(第2版)》教
材配套的实验CAI系统,系统设计目的是提供一个简洁、友好的用户界面,使学生通过使用该系统,可以实现不同智能搜索算法的过程演示和对比,提供自主设计实验的功能。
为了能够让学生更好地学习并熟练一些智能搜索算法,所设计的智能搜索教学实验系统结构如图1所示,包括A*算法、模拟
退火算法、遗传算法、作业管理和系统帮助5大模块。
图1教学实验系统的总体结构图
法介绍,以及各算法的演示程序、验证程序和自主实验等子模块。
算法、模拟退火算法、遗传算法等智能搜索算法的特点、流程及
参数设置问题等。
2)演示程序。
演示程序子模块的主要功能是展示各算法求
解八数码问题、TSP问题等的搜索过程、运算结果等;同时可以
中临时变量的状态。
3)验证程序。
验证程序子模块的主要功能是通过设定给定
问题的规模,以及算法的一些参数设置,测试智能搜索算法对于
不同规模问题的解决效果,以及参数设置对算法性能的影响;同
时展示不同算法对同一问题的求解性能,以作对比。
4)自主实验。
自主实验子模块的主要功能是根据系统所提供的一些算法核心代码,开展各算法的自主实验设计,解决最短路径问题、TSP问题和Flowshop调度问题等一些难题。
作业管理模块主要是便于学生上传实验报告和程序源代码以及教师批改作业。
另外,系统帮助模块包括系统概述、系统安装与卸载说明、服务器配置说明、系统使用说明和技术支持。
2智能搜索算法实验设计与实现
2.1A*算法
A*算法是一种启发式搜索方法,目前在网络路由算法、机器
人探路、人工智能、游戏设计等方面有着普遍的应用。
启发式搜索是利用与问题有关的启发信息进行搜索,达到减
少搜索范围,提高搜索效率的目的。
这种利用启发信息的搜索过
序,这就需要一种方法来计算待扩展节点有希望通向目标节点的
不同程度,人们总是希望能找到最有希望通向目标节点的待扩展
(1)
节点的最佳路径的估计代价,且,为节点到目的结点的最优路径的代价。
1)演示程序。
针对A*算法求解问题时启发信息不直观、难
理解,Open表和Closed表变化的可视化程度差,问题状态演变复
杂等问题,设计了求解自动寻路和八数码问题的A*算法演示程
序。
演示程序具备了显示Open表和Closed表的功能,并且能将
每一个状态的变化都直观地显示出来。
图2是自动寻路问题的A*算法演示程序。
寻路问题常见于各类游戏中角色寻路、三维虚拟场景中运动目标的路径规划、机器人寻路等多个应用领域。
自动寻路问题是在以方格表示的地图场景中,对于给定的起点、终点和障碍物(墙),如何找到一条从起点开始避开障碍物到达终点的最短路径。
如图2所示,程序运行时,可以通过选择“起点”、“终点”和“墙”,在方格场景中设置起点、终点和墙的任意位置,其中墙
可以设置多个方格,另外分别以红、绿和黑三色来区分起点、终点和墙。
通过单击“开始”按钮,可以看到起点位置的、和值。
然后连续单击“下一步”按钮,可以进行连续手动单步运行,从而可以直观地看到自动寻路过程中每一状态的变化,以及任一状态的、和值;若单击“继续/暂停”按钮,可以从当前结点开始进行自动连续运行,从而可以看到从当前结点到终点的自动寻
路的连续过程,以及寻路过程中每一状态的变化,任一状态的、
和值;同时也可从连续运行状态转为暂停状态。
在“运行状态”提示框上方可以看到“自动运行”、“暂停”等程序运行状态而下方可以看到“Open表”、“扩展结点”、“停止”等信息
其中
“Open表”表示在地图场景中以淡蓝色显示Open表中的各
结点(状态);“扩展结点”表示选中当前被扩展结点,并在地图
场景中用蓝色框显示当前被扩展结点。
与此同时,在地图场景中
图2自动寻路问题的演示程序
图3是八数码问题的A*算法演示程序。
八数码问题是在3X3
的九宫格棋盘上,摆有8个刻有1〜8数码的将牌。
棋盘中有一个
将牌可以将某一将牌布局变换为另一布局。
针对给定的一种初始布局或结构(目标状态),问如何移动将牌,实现从初始状态到目标状态的转变。
图3八数码问题的演示程序
如图3所示,可以手动设置八数码问题的初始状态和目标状态,也可以通过单击“随机产生”按钮,随机生成其初始状态,然后单击“开始/停止”按钮,可以由停止状态转为运行状态,也可
由运行状态转为停止状态。
在运行状态下,首先针对所产生的初始状态和给定的目标状态,判断八数码问题是否有解,若无解,则
停止运行。
然后在问题有解的情况下,根据一般的估价函数,通过
整个搜索过程,与此同时,在“OPEN表”和“CLOSED表"
别显示整个过程的Open表和Closed表的变化,包括各状态及其
估计代价值h和估计函数值f,以及当前步数。
若单击“手动/自动”按钮,可以由手动转入自动,即从当前结点开始进行自动连续运行,从而可以看到从当前结点到终点的自动搜索的连续过程
同时也可从自动运行状态转为手动状态。
2)验证程序。
A*算法实现时有两个关键问题需要解决
一个是如何寻找并设计一个与问题有关的启发函数及构造出估价函数,另一个是在Open表中如何排列待扩展状态的次序。
为
了比较不同估价函数以及不同Open表排序对A*算法求解问题的
影响,在如图4所示的A*算法验证程序中,给出了两种不同的估价函数以及两种不同的排序方法,通过选择相应的估价函数及排
序方法,可以比较不同估价函数、不同排序方法的A*算法在求解
同一问题时的“搜索结果”、“访问结点数”和“耗时”的差异。
图4八数码问题的验证程序
考虑到盲目搜索和启发式搜索之间的区别在普遍的教材上解析得不够详细,使得学生对算法的理解往往不够清晰。
为此
设计了宽度优先搜索、广度优先搜索和A*算法来求解八数码问
题的验证程序。
在验证程序中,通过单击两个“随机产生”按钮不仅可以随机生成问题的初始状态,而且也可以随机生成目标状态;当单击“计算”按钮时,同样首先判断问题是否有解,最后在
验证程序下方显示不同算法的“搜索结果/步”、“访问结点数/
个”和“耗时/毫秒”内容,从而了解各算法的差异以及各自的优缺点。
3)自主实验。
为了让学生能够自己动手用A*算法来解决一
些实际问题,如图5所示,设计了一些求解传教士和野人问题、迷
中也
宫问题、最短路径问题等一些作业题目。
同时“实验帮助”提供了A*算法中的一些核心代码,使学生可以下载这些核心代码
并在这些代码的基础上,通过修改代码的过程中学会并掌握A*算
法。
由于智能搜索教学软件是在MicrosoftVisualStudio2005
环境中用C++吾言开发的,所以通过设计型实验,可以让学生在学习人工智能导论课程的基础上,更好地熟悉MicrosoftVisual
Studio2005环境以及C++吾言的应用实现。
图5A*算法设计型实验界面
2.2模拟退火算法
模拟退火算法最早由Metropolis在1953年提
出KirkPatrick等人在1983年成功地将模拟退火算法用于组合优化问题求解。
作为求解复杂组合优化问题的一种有效方法,模
拟退火算法已经在许多工程和科学领域得到广泛的应用。
中的热平衡问题进行对比,通过模拟高温物体退火过程的方法来找到优化问题的全局最优或近似全局最优解[4]。
模拟退火算法以概率1找到全局最优解的基本条件是初始温度必须足够高
在每个温度下状态的交换必须足够充分,温度t的下降必须足够
动画的固有限制,无法把模拟退火算法求解问题的整个过程做一个完整的展示,同时针对具体的问题,如何设置合适的参数以及
参数设置对算法优化性能的影响也无法做一个完整的描述和解析,所以学生在学习这部分的内容时较难理解。
针对以上所述模拟退火算法的教学问题,设计了模拟退火算法求解TSP问题的演示程序(如图6所示)和验证程序(如图7所示),还给出了模拟退火算法的介绍界面(如图8所示),以及应用
模拟退火算法求解其他问题的一些自主设计实验题目。
TSP问题,
即旅行商问题是,有个城市,城市间的距离用矩阵表示,表示城市与城市之间的距离。
有一个旅行商从一个城市出发,每个城市访问一次,并且只能访问一次,最后回到出发城市。
问如何行走才能使得行走的路径长度最短。
图6TSP问题演示程序
图7TSP问题验证程序
进入模拟退火算法模块,首先可以通过模拟退火算法的算法
相应
介绍界面,如图8所示,了解模拟退火算法的有关演算步骤、的伪代码和应用模拟退火算法时的一些参数设置问题。
图8模拟退火算法介绍界面
解产生演示”模块,如图9所示,以8个城市(城市0〜7)的TSP问题为例,了解“两点互换”、“相邻互换”、“区间逆转”、
单点移动”这四种新解产生函数的差异,其中8个城市的任何
四种产生函数的整个变化过程。
另外通过演示程序的“TSP问题
演示”模块,如图6所示,针对8个城市的TSP问题(城市位置见
地图”方框),可以选择不同的新解产生函数,在给定初始温度、降温率、最低温度的情况下,连续单击“运行/下一步”可以进行手动的单步运行,并在“地图”方框显示8个城市
的旅行路线变化情况,与此同时,“搜索过程”框显示模拟
量”、“新能量”、“替换概率”等变化情况。
若单击“连续运
行”可以连续显示模拟退火算法求解8个城市TSP问题的整个搜
索过程和“地图”路线变化情况。
图9TSP问题新解的产生函数演示
通过单击“随机添加”按钮和设置城市数,可以在“地图”方框中随机产生个城市的坐标位置,从而实现模拟退火算法对不同规模的TSP问题的求解,同时也可以通过“重置”按钮清空“地图”方框显示。
单击“开始”按钮后,可以在“地图”方框得到模拟退火算法的最后求解结果,即个城市的旅行路线,同时在
地图”上方显示最好解、最差解和平均解质量。
而通过选择不同的新解产生函数,设置不同的初始温度、降温率、最低温度和迭代步数这四个参数,比较不同的产生函数、不同的参数设置对模拟退火算法性能的影响。
另外验证程序左侧下方“状态”提示显示“停止”和“计算中”这两种程序执行信息。
在模拟退火算法的自主设计实验中,给出了学生自主应用模
拟退火算法解决TSP问题、车辆路径问题和FlowShop问题等一
些设计型作业题目,使学生可以在系统所提供的模拟退火算法核心代码的基础上,自己动手修改代码,从而更好地掌握模拟退火算法的精髓。
2.3遗传算法
遗传算法(GeneticAlgorithms,GA)是基于生物界自然选择和基因遗传学原理的一种广为应用的、高效的随机搜索算法,20
世纪60年代由美国的密执根大学的Holland教授首先提出。
该算法将优化问题看作是自然界中生物的进化过程,通过模拟大自然中生物进化过程中的遗传规律,来达到寻优的目的。
近年来,
遗传算法已广泛地应用于作业调度与排序、可靠性设计、车辆路径选择与调度、成组技术、设备布置与分配、交通问题等等。
用遗传算法求解优化问题,首先对优化问题的解进行编码编码后的一个解称为一个染色体,组成染色体的元素称为基因。
一个群体由若干个染色体组成,染色体的个数称为群体的规模。
在遗传算法中用适应度函数表示环境,它是已编码的解的函数,
是一个解适应环境程度的评价。
当适应度函数确定后,自然选择规律以适应度函数值的大小来决定一个染色体是否继续生存下去的概率。
生存下来的染色体成为种群,它们中的部分或全部以一定的概率进行交叉、变异,从而得到下一代群体。
在遗传算法的教学过程中,也存在和模拟退火算法一样的问题,为了增加学生在教学活动中的参与感,激发起他们的学习热
情,同样也设计开发了遗传算法的介绍模块,求解TSP问题的演
示程序和验证程序,以及自主实验模块。
遗传算法的介绍模块提
所示)。
图10遗传算法介绍界面
作演示”和“变异操作演示”模块,了解“部分匹配交叉”和
顺序交叉”这两种交叉操作(如图11所示),以及“两点互换”、“相邻互换”、“区间逆转”、“单点移动”这四种变异操作(同模拟退火算法的新解产生)的差异。
在演示程序的“TSP
问题演示”中
如图12所示,针对10个城市的TSP问题,通过选
择不同的交叉和变异操作,在给定种群规模、交叉概率、变异概
行手动的单步运行,并在程序右侧显示城市旅行路线的变化,与此同时,程序下方显示遗传算法求解过程中当前迭代次数、当前步骤、当前最优个体、当前最优个体的适应度、当前种群的平均适应度等变化。
若单击“自动/手动”可由“手动”运行转为
“自动”运行,从而可以连续显示遗传算法求解10个城市TSP问
题的整个搜索过程和“地图”路线变化情况;反之也可由“自动”运行转为“手动”运行。
图11交叉操作演示
图12遗传算法演示程序
在遗传算法(GA)求解TSP问题的验证程序中
GA、“
自适应GA、“双倍体GA、“双种群GA和“多种
拟退火算法求解TSP问题的验证程序类似,同样单击“随机添
个城市的
加”按钮和设置城市数,可在“地图”框中随机产生坐标位置;单击“开始”按钮后,可在“地图”框中得到遗传算法的最后求解结果,并显示最好解、最差解和平均解情况;也可比
较不同的交叉和变异操作算子,以及不同的参数设置(种群规模、交叉概率、变异概率和迭代步数)对遗传算法性能的影响。
在验
证程序中,除了参数设置外,“自适应GA、“双倍体GA、“双
GA、“双倍体GA、“双种群GA和
TSP问题的结果比较。
传算法和改进遗传算法解决函数优化问题、TSP问题和FlowShop
问题等一些设计型作业题目,同样也提供了遗传算法的核心代码方便学生在此基础上真正达到学以致用。
图13基本遗传算法验证程序
3结语
本文是笔者以精品课程培育为目标,对人工智能导论课程教学软件的设计和开发进行了探讨。
该教学实验系统符合21世纪
高校教学的要求,不仅可以支持教师提高教学手段现代化的水平同时更贴合学生的学习需求。
通过使用该教学实验系统,使学生
环境以及C++语言
更好地掌握人工智能中智能搜索算法的基本概念、基本理论和基本技术,熟悉MicrosoftVisualStudio2005的应用实现,提高实践动手能力,达到本课程预期的教学效果。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 搜索 算法 教学 软件 设计 开发 教育 文档