蚂蚁算法演示系统设计与开发毕业论文
2020-03-24 15:24:40
摘 要
目前人工智能发展迅速,模拟自然界中的生物或人的智能的算法越来越能够引起大家的兴趣,其中之一就是蚁群算法。
本论文主要研究了蚂蚁算法演示系统的设计与开发,即包括实现基本蚂蚁算法的演示程序,实现内容包括基本蚂蚁算法的动态演示,能够动态演示蚂蚁从巢穴出发到找到食物的最短路径,并能够显示信息素的挥发过程和跨越障碍;以及利用基本蚂蚁算法求解演示TSP问题,其中城市不少于20个,并可随机生成和指定生成,能够提供GUI界面,输出最优解。
研究结果表明:蚁群算法能够帮助解决TSP之类的组合优化问题,它具有较好的搜索能力,并采用信息素机制,能够最大概率地寻找到算法的最优解,使得这类无有效算法求解的问题得到了最好的解决。它采用了分布式的计算方式,大大提高了算法的计算能力和运行效率;采用正反馈机制,即目前得到的较优路径由于具有较高的信息素可以吸引更多的蚂蚁由此使得算法搜索的过程不断收敛,最终可以逼近最优解。
本文的特色:利用蚁群算法模拟蚁群觅食的过程,并解决TSP问题。
关键词:蚁群算法;蚂蚁觅食;TSP问题
Abstract
At present, artificial intelligence develops rapidly, and the algorithm that simulates the biological or human intelligence in the natural world can attract more and more people’s interests. One of them is the ant colony algorithm.
This dissertation mainly studies the design and development of the ant algorithm demonstration system, which includes the demonstration program to implement the basic ant algorithm. The implementation content includes the dynamic demonstration of the basic ant algorithm, which can dynamically demonstrate the shortest path from the nest to find food, and can display the pheromone volatilization process and overcome obstacles; and use the basic ant algorithm to solve the demonstration TSP problem, in which no less than 20 cities, and can randomly generate and specify the generation, can provide a GUI interface, and output the optimal solution.
The research results show that the ant colony algorithm can help solve the problem of combinatorial optimization such as TSP. It has good search ability and adopts the pheromone mechanism. It can find the optimal solution of the algorithm with the utmost probability. The problem was best solved. it adopts a distributed computing method, which greatly improves the computational power and operational efficiency of the algorithm. Adopting the positive feedback mechanism, the current optimal path can attract more ants due to the higher pheromone, thus making the algorithm search process continuous. Convergence can eventually approach the optimal solution.
The characteristics of this paper: Using ant colony algorithm to simulate the process of ant colony foraging, and to solve the TSP problem.
Key Words:ant colony algorithm; ant foraging; TSP problem
目录
摘 要 I
Abstract II
第1章 绪论 1
1.1 研究背景与意义 1
1.2 国内外研究现状 2
1.3 本文研究内容 2
1.4 本文组织结构 3
第2章 蚁群算法的基本原理 4
2.1 蚁群算法简介 4
2.1.1 蚁群算法的提出 4
2.1.2 概念原型 4
2.2 算法的基本原理 5
2.2.1 算法特点 5
2.2.2 算法流程 5
2.3 算法建模 6
2.4 本章小结 6
第3章 蚁群算法解决TSP问题 7
3.1 蚁群算法解决TSP问题算法简介 7
3.1.1 TSP问题简介 7
3.1.2 蚁群算法解决的问题 7
3.2 算法建模 7
3.2.1 蚂蚁移动规则 7
3.2.2 信息素更新策略 8
3.3 算法分析 9
3.4 本章小结 9
第4章 系统分析与实现 10
4.1 系统分析 10
4.2 系统实现 11
4.2.1 EasyX图形库 11
4.2.2 蚂蚁算法基本原理演示 12
4.2.3 蚂蚁算法解决TSP演示 14
4.3 本章小结 15
第5章 总结与展望 16
5.1 总结 16
5.2 展望 17
参考文献 18
致 谢 19
第1章 绪论
1.1 研究背景与意义
蚁群系统(Ant System或Ant Colony System)是由意大利学者Dorigo、Maniezzo等人于20世纪90年代首先提出来的。他们发现若有食物出现,经过一定的时间后整个蚁群可以在食物与巢穴之间寻找到一条最短的路径,且几乎所有的蚂蚁都聚集在这条路径之上。这是因为当有一只蚂蚁在找到食物之后,会通过散发信息素这种物质来告知其他的蚂蚁,从而更多的蚂蚁会在接收到信号后赶过来,它们都会在其运动路径上留下这种物质,这样就会引来越来越多的蚂蚁,经过一定的时间之后就可以形成一条从巢穴到食物的路径,这条路径经发现就是最优路径。这种算法是群智能算法中的一种,它的适用性较强,能够稍加更改来解决更多的问题,可以进行并行计算,是采用启发式搜索的算法之一,是一种可以被用来寻找最优路径的概率性算法。
TSP(Traveling Salesman Problem)问题也叫旅行商问题,又名货郎担当问题,是数学领域中的著名问题之一[1]。在利用蚁群算法解决TSP问题时,假设有n个城市,让每只蚂蚁从其中一个节点出发,再进行路径选择,最终需要走过剩下的所有的城市并且走过的城市不能再次经过,并最终回到出发点。每只蚂蚁在进行路径选择时存在多种选择,但并不代表每一条路径的选择都是较好的选择,需要在这些路径之中选择一条最短的路径代表最终较优的路径结果。到目前为止,未能够找到解决这类组合优化问题的具体算法,经过学者们的研究,提出了这类问题可能并不存在有效算法的猜想 [1]。
在本次的蚂蚁算法系统演示与开发中,需要演示TSP问题的基本蚂蚁算法求解以及基本蚂蚁算法的动态演示。
作为群优化算法之一的蚁群算法,与其他算法的区别之一是采用了信息素机制[2],利用信息素浓度的大小来表示距离,信息素的浓度越高,蚂蚁被吸引而来的机率越大,从而算法收敛出的在巢穴到食物之间的距离越短。其次,采取了积极的反馈调节机制[2],具有正反馈效应,这使得这条路径上的信息素浓度更高。另外,蚁群算法的搜索方式采用分布式计算[2],多只蚂蚁可以同时进行搜索,使得算法的搜索速率更高,还采用启发式搜索[2],蚂蚁可以根据路程的远近,来选择释放信息素的多少,使得整个算法更加可靠,达到全局搜索的效果。
蚁群算法是一种采用信息素机制的仿生学算法,利用自然现象,最终蚁群选择的路径有一种众人拾柴火焰高的效果正如鲁迅先生所说的世上本没有路走的人多了便有了路,利用这种仿生学算法可以解决许多的实际问题,蚁群算法的适用性较高,能够在一定程度上稍加修改解决许多的实际问题。因此蚁群算法的应用前景还是很好的,值得我们学习研究。
研究证明蚁群算法在解决一系列组合优化问题上已经取得了一定的成效,蚁群算法通过其自身的特性有利于解决此类问题,其中经典的即为利用蚁群算法解决TSP问题。蚁群算法在具有上述这些优点的同时也具有一些缺点,例如由于蚂蚁在运动时具有一定的随机性使得蚁群搜索出最优路径的时间较长,另外就是一些对应参数的设置会影响算法的搜索能力以及算法的收敛效果,比如信息素的挥发速率等等,因此需要进一步研究,但蚁群算法对于解决此类实际问题具有重要的社会经济价值。
1.2 国内外研究现状
通过查阅文献资料,我基本了解了蚂蚁算法的相关应用情况,该算法多应用于其他组合优化问题,如旅行商问题、指派问题、图着色问题和网络路由问题等[3]。近来,该算法在网络路由方面的运用引起了更多的研究学者的关注,并根据蚁群算法又提出了更多与之相关的新算法,这些新算法在蚁群算法的基础上增加了更多的与网络路由相关的特性,对解决这类问题更加有效。
随着人工智能的发展,越来越多的学者对于仿生智能算法感兴趣。群智能算法是一种仿造自然界中已存在的生物的行为的一种新兴进化计算技术。蚁群算法是又一在模拟退火算法、遗传算法、禁忌搜索算法、人工神经网络算法等之后出现启发式搜索算法,这种启发式搜索算法是群智能算法中的一种且可应用于组合优化问题[4]。蚂蚁算法广泛应用于人工智能、信息与控制、物流配送、自动化、计算机科学等学科,并在旅行商问题这类典型的组合优化问题、二次分配问题、系统辨别、数据挖掘、集成电路设计、车辆调度等问题中取得了很好的成果[5]。
现阶段,利用蚁群算法解决的问题大多并不具有普遍的实际意义,改进的蚁群算法也同样面临着这样的问题。尽管我们使用蚁群算法创建的人工蚂蚁本质上是模仿蚂蚁,但它们大多比自然界中的蚂蚁更加聪明,目前蚁群算法中的信息素机制既有优点也有缺点,在想要让人工蚂蚁能够具有更加智能的行为上还有许多的空间等待我们研究发现。
1.3 本文研究内容
本文研究的主要内容为设计与开发蚂蚁算法演示系统。
其中包括实现基本蚂蚁算法的演示程序,可以动态演示蚂蚁从巢穴出发到找到食物的最短路径,显示信息素挥发的过程,并可以跨越障碍。在进行动态演示的过程中,也可改变相应的参数来观察蚂蚁的运动,分析蚂蚁的觅食特点
实现TSP问题的基本蚂蚁算法求解演示,可以随机生成和指定生成不少于20个的城市,并提供GUI界面输出最优解。由于旅行商问题是一个典型的NP难题,更多地偏向于不存在实际具体算法解决这一问题的假设,对于此类大型问题不能够利用精确算法进行求解,因此可以利用近似算法如蚁群算法来解决旅行商问题。并可更改相关参数分析蚁群算法在TSP问题中的应用。
本文研究了蚂蚁算法的基本演示程序以及TSP问题的基本蚂蚁算法求解。深入了解了蚁群在觅食过程中采用的各种机制,从一点出发寻找出到达目的地的最优路径后并能够返回出发地,更改相关的参数,使得算法具有较好的收敛性并增加全局搜索能力使得算法可以趋近于最优解。蚁群算法虽无法得到最优解但与传统的算法相比当城市数量较多时蚁群算法能够大大节省求解最优路径的时间与空间,减少迭代次数,并能够取得较好的收敛结果。
1.4 本文组织结构
该论文共分为5章,具体地论述了蚁群算法的基本原理和相关应用即利用蚁群算法解决TSP问题。
第1章为绪论,该部分主要分为蚁群算法的研究背景与意义、现阶段国内外研究现状、本文研究内容以及本文的组织结构几个方面。
第2章为蚁群算法的基本原理。该部分主要阐述了蚁群算法的相关实现内容包括蚁群算法的简介,算法的基本原理以及算法建模。
第3章为蚁群算法解决TSP问题。该部分主要阐述了利用蚁群算法解决TSP问题的相关内容包括TSP问题简介、算法的建模以及对于算法的分析。
第4章为系统分析与实现,该部分主要阐述了蚂蚁算法演示系统设计与开发的系统分析与实现,在系统实现中主要介绍了使用的图形库、蚂蚁算法基本原理演示和蚂蚁算法解决TSP演示。
第5章为总结与展望。该部分主要阐述了对于此次系统开发的个人工作总结与展望包括总结所学到的知识以及对此次系统实现效果的分析与展望。
第2章 蚁群算法的基本原理
2.1 蚁群算法简介
2.1.1 蚁群算法的提出
1992年, Marco Dorigo在其博士论文中首次提出蚁群算法[6]。他们在研究新型算法时,灵感来源于蚂蚁觅食的过程[6]。昆虫学家发现自然界中的蚂蚁大多视觉器官并不发达,有的甚至并不拥有视觉,那么它们又是如何生存呢?经过观察我们可以发现,蚂蚁可以在自然界中顺利的寻找到食物并返回巢穴,且经过一段时间之后整个蚁群几乎可以找到一条从巢穴到食物的最短路径,当我们人为地在巢穴到食物的路途中进行干涉时,可以发现整个蚁群可以在新的环境中重新找到一条最短的路径。整个蚁群具有较强的环境适应能力,可以根据现有的情况做出实时的判断,并在经过一定的时间后可以得到一个最优解,由此提出了蚁群算法。
2.1.2 概念原型
由于蚂蚁的视觉不发达,因此蚂蚁在寻找食物的过程中大多依靠其触觉以及一种化学物质进行交流。蚁群每天会出动大量的工蚁漫无目的的四处游走,当一只蚂蚁找到食物时如果无法独自搬走,就会在食物周围释放出一种叫做信息素的物质,这样就会通知到周围更多的蚂蚁。当越来越多的蚂蚁被吸引过来时,这条路径上的蚂蚁们留下的信息素的浓度就会越来越高,从而再引来更多的蚂蚁,这样就会产生一种正反馈的效果,蚂蚁在寻找最短路径的过程中虽然依靠信息素,但也会有一定的概率去探索新的路径,避免陷入局部最优,在周围环境发生变化后,蚁群可以根据新环境的情况适时调整自己运动的路线,探寻新的合适路径,由此蚂蚁在经过一段时间的运动之后就会在巢穴与食物之间找的一条合适的最短路径。如果只看一只蚂蚁或许感觉它的运动没有什么规律性可言,但若观察整个蚂蚁群体我们就可以发现它的规律性,这就是群体智能。群体智能在自然界中非常常见,蚁群寻找食物这一现象只是其中之一。
蚁群算法是一种以自然界中的蚁群运动为原型的群体智能算法[8],它具有较强的并行计算能力,较强的适应性,稍加修改就可以用来解决各类问题,启发式搜索的方式让整个算法的特点更加明显,蚁群算法最早的一个应用就是用来解决TSP问题,本文的第3章将会具体进行阐述。
总体而言,蚁群算法就是以自然界中蚂蚁寻找食物这一自然现象为基础,从而提出的算法。虽然它以自然现象为基础,但它也会在一定程度上比自然界中的蚂蚁更加智能,例如我们在场景中设置的信息素规则、以及蚂蚁的移动规则等,若人工蚂蚁按照这些规则进行移动以及判断方向,会更加快速地找到食物。
2.2 算法的基本原理
2.2.1 算法特点
在实现蚁群算法的基本原理时主要需要了解蚁群算法的几个特性,包括蚁群算法的正反馈机制、信息素机制、启发式搜索机制以及搜索方式。蚁群算法采用正反馈,使得算法最终可以收敛到一个较优解;采用自适应调节机制,根据周围环境的变化,更改路线选取新的最优路径;并且采用了分布式计算,多个个体同时并行计算,节省算法运行的时间;利用信息素,实现不同个体之间的间接通信。把握住蚁群算法的基本特点就能够更加准确的进行实现。
蚁群算法中每只蚂蚁还需要遵循以下的规则,包括感知规则、场景中周围环境的信息、蚂蚁的觅食规则以及移动规则,蚂蚁的避障规则以及每只蚂蚁散发信息素规则。
算法的具体实现过程如下,让每只蚂蚁可以感知到周围3*3的范围,即蚂蚁可以根据此方格内的信息素浓度等因素选择下一步的移动方向。场景中的会有各种来源的信息素以及其他障碍物等,其中信息素包括食物信息素即找到食物的蚂蚁遗留的信息素、窝信息素找到窝的蚂蚁遗留的信息素,并且这些信息素会以一定的速度进行挥发。蚂蚁会根据感知范围内的信息素浓度来进行相关的移动,但如果在其中直接感知到了食物会直接朝着食物方向移动。每只蚂蚁会有大概率朝着信息素浓度更高的方向移动,也会有一定的小概率去探索新的路径即不受信息素的影响,这样有利于全局性的搜索。蚂蚁在进行移动时,如果场景中没有信息素,蚂蚁会随机运动,基本会按照原定的方向继续移动,并会记住之前走过的路径防止原地转圈的情况。在蚂蚁找到食物或巢穴时蚂蚁会遗留下更多的信息素,而且会随着距离的远近来调节信息素的释放情况,距离二者越远释放的信息素就越少,这样就能够保证食物和巢穴周围的信息素浓度最高,使得蚂蚁可以准确找到它们的位置。
根据以上描述的蚁群算法的特点以及实现,可以很容易的看出,蚁群算法中有很多不确定的因素,如场景中信息素挥发速率的设置,蚂蚁小概率不朝着信息素浓度更高的方向移动的设置,以及蚂蚁遗留信息素距离食物或巢穴远近的设置等等,我们可以发现这些不确定的因素都会影响整个算法的精确度以及收敛速度等,算法最终的运行效果与这些参数之间有着密切的关系。
2.2.2 算法流程
1.算法初始状态为:场景中信息素浓度为0,蚂蚁在场景中随机运动。
2.下一个状态为:蚂蚁在寻找食物的途中释放出信息素,当有一只蚂蚁找到食物后会释放出大量的信息素,通知周围更多的蚂蚁,找到食物的蚂蚁开始将食物运回巢穴,周围更多的蚂蚁在找到食物后也开始返回巢穴。
课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。