登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 理工学类 > 轮机工程 > 正文

基于MATLAB的蚁群算法实现及其工程应用毕业论文

 2020-04-09 03:04  

摘 要

Abstract 6

第1章 绪论 7

1.1 本文的目的及意义 7

1.2 国内外研究现状分析 8

1.3 本文的主要研究内容 8

第2章 蚁群算法简介 10

2.1 蚁群算法基本原理 10

2.2 人工蚁群的特点 10

2.3 蚁群算法模型的建立 11

2.3.1对蚂蚁个体的抽象 11

2.3.2问题空间的描述 11

2.3.3寻找路径的抽象 12

2.3.4信息素挥发的抽象 12

2.3.5启发因子的引入 12

2.4 基本蚁群算法的实现步骤 13

2.5 基本蚁群算法的程序流程结构 14

2.6 蚁群算法的特点 15

第3章 用蚁群算法解决TSP问题并实现 16

3.1 MATLAB软件的介绍与优点 16

3.2 TSP问题描述 16

3.3基于粒子蚁群算法的TSP问题求解方法 17

3.4 MATLAB主要代码…………………………………………………………………………19

3.5 结论 20

第4章 蚁群算法的工程应用 21

4.1 问题描述 21

4.2 蚁群算法的机器人路径规划数学模型建立 21

4.3 用蚁群算法解决机器人路径规划的主要步骤 22

4.4 MATLAB主要代码 24

4.5 结论…………………………………………………………………………………………25

第5章 总结与展望 27

5.1总结 27

5.2 展望 27

致 谢 28

参考文献 29

附录A(用蚁群算法解决TSP问题的MATLAB程序) 30

附录B(用蚁群算法解决机器人路径规划问题的MATLAB程序) 35

摘 要

如今,智能算法可以说是在人工智能领域有着十分核心的地位。现在,智能算法正在快速成长和改进,全世界各个国家也都正在加大对人工智能的研究投入,我国也不例外。虽然目前的智能算法研究水平很难让人感觉到人工智能能够代替人类的效果,但其未来是美好的。此中蚁群算法便是仿真优化算法中具有代表性的一类优秀算法。它是模仿蚂蚁寻找生存用品的过程中所运用的方法来策划的。在找寻食品的过程当中,一种被叫做信息素的化学物质会残留在蚂蚁所走过得路上。在觅食过程中它们能时刻清楚地感受到信息素的浓度,从而指引它们走向下一个行动方向。它们的器官总能感受到高强度信息素的地方。所以后来的蚂蚁就有很大概率选择之前蚂蚁走过的路。整个过程是一种关于信息素的正反馈活动。假设一条路上蚂蚁走过的路程越短,有很多的蚂蚁选择过该路径,就会有越多的信息素残留下来。从而导致信息素在这条路径上逐渐积累,从而会使蚂蚁有更高概率选择该路径。这就是蚁群算法的正反馈原理的由来,从而可以逐渐接近最优路径。

蚁群算法在解决很多工程问题上发挥着重要作用。因为它的原理是利用蚂蚁如何发现找寻食物的最短路径这一个过程来设计编程的。因此,关于蚁群算法的应用,最经典的案例莫过于TSP问题。目前,蚁群算法也逐渐地应用到各个工程问题中去。例如在本篇中的第五章里,即将介绍的机器人路径规划选择问题。就可以很好的应用到港口装卸载货物后,如何让机器人自动的装卸货且不会相互碰撞的问题。本文的主要内容就是学习蚁群算法的基本知识,通过数学建模,学习编写MATLAB程序来验证蚁群算法在TSP问题和机器人路径规划上的有效性。通过查阅资料,研究蚁群算法的特点和相关参数的设定。对用MATLAB模拟蚁群算法,以及工程应用上的实现提供很大的便利,具有良好的实用价值。

关键词:蚁群算法;MATLAB;工程应用;路径规划;

Abstract

Nowadays,intelligent algorithm play a significant role in the research field of artificial intelligence.Intelligent algorithm is developing so fast. The future is bright although the level of artificial intelligence cannot be equaled to the mankind. One of the most important branch of artificial intelligence is ant colony optimization which simulate how ants find food. When ants is finding food, they will leave one thing called pheromone which can lead ants to the destination. Ants always head to high level of pheromone, which can creative positive feed back. Finally they can find the best route.

Ant colony optimization can easily solve lots of engineering problems. Because it is inspired by how ants find shortest way to food, ant colony optimization succeed in solving TSP problem. So far, ant colony optimization gradually apply to other field. For exemple,in this paper,I bring up a question of how robots find their way without collision. The main content of this paper is introduce the basic knowledge of ant colony optimization and test its effectiveness. By referring to the data,studying the feature of ant colony optimization, I can easily program it in engineering application with good practical value.

Key words: ant colony optimization;MATLAB;engineering application;path planning;

第1章 绪论

1.1 本文的目的及意义

在如今的社会,随着人工智能的不断发展,不同类别的学科也在相互学习,相互交流,相互成长。人工智能不只是让我们的生活愈加方便,人类的生活习惯也深受其影响。同时,随着社会水平的提高,人们对于自身生活质量有更高要求,这就需要科学技术的持续发展。希望科学技术能够有更大的改进和成果。于是目前迫切需要进一步提升高效优化技术和智能优化算法的水平。最近几十年来,许多生物学和计算机科学的专家联合起来,对地球上各式各样生物的习惯和规律进行了大量的试验,为了推进智能优化算法的发展,他们努力提出了不少新的算法。它们是利用生物的生活习惯和规律从而总结出的的智能仿生算法。科学家从生物进化和仿生学的角度,对社会昆虫的合作进行研究。我们都知道,蚂蚁,蜜蜂这些昆虫,单独一个是很弱小的,行为方式也是简单的,找不到规律的,但是一旦它们聚在一起,就能通过一些复杂的社会活动,做到单个个体做不到的事情。而那些活动是个体很难独自完成的,例如找寻食物,建造巢穴,抵御天敌等。这个群体所显示的“智力”可以称为群体智能(SI)。群体智能是指“一组可以通过某种手段相互间接交流的群体,有着能够分开来一个个解决小的问题,从而解决最终的大问题的能力。群体智能的具体含义就是指单个没有智慧的生物通过互相间的沟通合作从而表现出智慧的现象。这种群体智能能够给我们解决一些分布式问题时提供启发。在科学家的不懈努力下,他们提出了各式各样的算法,并且有不少已经在实际问题上发挥着优秀的效果。但是路漫漫其修远兮,虽然有很多智能优化算法的理论已经发展成熟,但是离他们能够不出错的运用到工程应用上还有一定的距离,革命尚未成功,我们还要继续努力。

蚁群算法作为智能仿真算法的一种发挥着重要作用,科学家在经过了一系列观察和研究后,发现了一类特殊的生物,如蚂蚁。在觅食中,从巢到食物来源的最短路径可以通过群体的力量找到。为了进一步证实自己的研究结果,科学家们做了大量类似于给蚂蚁在寻找食物的道路上设置障碍的实验。在一段时间以后,科学家惊讶地发现蚂蚁还是能自动的寻找到从蚁穴到食物的最佳路径。通过各种实验,生物学家的进一步研究表明蚂蚁会在寻找食物的途径中释放一种会挥发的称作信息素的化学物质。随着时间的流逝,遗留在该路径上的信息素会逐渐蒸发。当蚂蚁选择路径时,高浓度的信息素会指引它们选择该条道路。因此,信息素可以更快地引导蚂蚁,更可能找到最接近巢穴的食物。经过了大量的实验证明后,科学家们得出,无论蚁穴和食物间有多少条路可以选择,蚂蚁都能通过信息素来找到从它们的巢穴到食物的最短路径。

蚁群算法最先由Marco Dorigo等人提出。在研究新算法的过程中,他们发现蚂蚁可以通过分泌一种叫做信息素的信息素来寻找食物信息,以寻找食物信息来寻找食物。于是他们就根据这个正反馈特点提出了一种新的智能算法。

得出蚁群算法的基础思路是因为蚂蚁能够在最短的路径下找到食物。根据昆虫科学家的观察,发现虽然自然界中的蚂蚁是不发达的,但它们可以从食物源到巢的最短路径无任何暗示,并且在环境改变之后,它们是自适应的。寻找通往地面的最佳新路。

1.2 国内外研究现状分析

1991年时,意大利科学家Marco Dorigo首先提出了蚁群算法这一概念。当时蚁群算法并不火,科学界基本没有关注这个算法。在之后的5年内,它的理论和应用也没有取得实质性的突破。1996年Marco Dorigo出了一篇新的文章。在这篇文章里,他重新并且完整的讲述了蚁群算法的一切,包括原理和数学模型。在此基础上,他还把蚁群算法和其他的智能优化算法进行了比较。并提出了一些可以应用蚁群算法的工程案例。还有改动一些参数会发生怎么样的变化等。从1996年开始,许多国家的科学技术人员都被其吸引。研究热情空前提高。

由于有许多研究爱好者的加入,第一届蚁群算法国际研讨会在布鲁塞尔拉开了帷幕。国际顶级期刊《nature》也对此高度重视,这意味着蚁群算法正式迈入国际学术的顶层。一直到现在,蚁群算法也是十分重要的一个研究项目,与此相关的课题层出不穷。

在蚁群算法领域的研究起步较晚,中国。在中国第一个蚁群算法是张继慧博士和许昕,谁是为东北大学控制仿真研究中心。段海滨博士多年来一直从事蚁群算法方面的研究工作,在该领域也有丰富的研究积累。同时,他提出了蚁群算法和其他仿生优化算法的模型。其前所未有的活力和活力,已经成为一种完全可以与遗传算法相媲美的仿真算法。

1.3 本文的主要研究内容

本文主要内容如下:

第1章:绪论。讲述了本文的目的及意义,蚁群算法的一些研究成果,以及本文的主要内容。

第2章:蚁群算法的工作原理及特性。叙述了蚁群算法的模型,人工蚁群相比一般蚂蚁的不同和蚁群算法的实现步骤还有蚁群算法的特点。

第3章:TSP问题。主要是介绍了MATLAB这个软件,基于TSP问题的蚁群算法的数学模型,以及算法的程序设计。

第4章:蚁群算法的工程应用。以机器人路径规划为例,介绍了其设计思路以及求解步骤。

第5章:结论与展望。论述本论文完成的主要工作,对还存在的缺陷和不足做出说明,希望日后技术知识成熟时再完善

第2章 蚁群算法简介

2.1 蚁群算法基本原理

蚁群优化算法是一种特殊的智能算法。它利用了蚂蚁寻找食物的过程中能发现最短路径的这一原理。在从起点到食物的这条路径上,蚂蚁会不断的留下一种独特的化学物质。我们称其为信息素。每个个体能感知到其他个体留下的信息素,并以此为依据指导他们的下一步行动方向。蚂蚁总是会向高浓度信息素方向移动,由于信息素是可以累加的,所以大量蚂蚁一起找寻食物的过程可以被看做一种正反馈活动。

假设一条道路上蚂蚁越多,这条道路的距离越短,那么这条路上的信息素浓度九月越高。浓度越高,蚂蚁就会有更大的概率选择这条道路。就会有更多的蚂蚁走上去,形成一个正反馈流程。从而找到最优的路径。

蚂蚁觅食的运动轨迹模式如图所示。蚂蚁以信息素作为媒介而间接进行信息交流,判

断洞穴到食物地点的最佳路径。

图表 2.1蚂蚁觅食的运动轨迹模式

当蚂蚁从食物来源走到巢穴,或者从蚂蚁走到食物的源头时,信息素被释放在信息素形成的路径上。蚂蚁可以感知信息素在路径上的浓度,并选择更高概率的信息素路径。

2.2 人工蚁群的特点

蚁群算法中的蚂蚁不是真实的蚂蚁,它是我们根据真实蚂蚁一些特殊行为进行的抽象,被称为人工蚂蚁。人工蚂蚁有许多特点和真实蚂蚁一样,比如说他们会相互交流通讯,也会合作解决问题。但如果完全把真实蚂蚁的所有特征照搬到人工蚂蚁上,会造成解决问题的困难。比如说可能会陷入局部最优解等。所以人工蚂蚁必然会与真实蚂蚁有一定的差距。

  1. 人工蚂蚁的运动不是连续的,是一种状态变化。
  2. 人工蚂蚁拥有记忆能力。它可以记住已经走过的路。
  3. 人工蚂蚁依据两种方法判断接下来选择哪条道路,一个是信息素的浓度,一个是启发因子的大小。这两点是人工蚂蚁选择道路的最大助手。

综上,人工蚂蚁的搜索主要包括三种智能行为:

  1. 蚂蚁利用信息素相互交流。每个人工蚁走过的路上都会留下它释放的信息素,其他蚂蚁要选择下一步的路时,这些残留的信息素会成为它们选择道路的重要依据。所以我们说信息素是蚂蚁之间的通讯媒介。
  2. 人工蚂蚁的记忆能力。人工蚂蚁是不会选择之前走过的道路的,所以我们会设置一个禁忌表来专门记住蚂蚁之前走过的路。
  3. 蚂蚁的集群活动。蚂蚁要独自完成找寻食物的目的是很困难的,所以蚁群才会集体活动,共同找寻食物。而且一只蚂蚁留下的信息素很少,而且容易挥发掉。而随着道路上的蚂蚁增多,该道路上的信息素就会增多。虽然也会挥发一部分,但相比走过蚂蚁较少的路径,该路径上的信息素仍然很多。而走的少的路,信息素则会挥发至零。

2.3 蚁群算法模型的建立

2.3.1对蚂蚁个体的抽象

蚁群算法是从大自然中蚂蚁找寻食物这一机制中提炼出来的。因此我们不可能,也不必要使用蚂蚁所有的属性进行模拟。我们所要做的是抽象出一部分蚂蚁必要的属性,摒弃另外一部分没有必要的属性。从而提炼出一种人工蚂蚁作为我们实验的简单代理,它能够满足我们的实验要求如互相通信,释放信息素即可。

2.3.2问题空间的描述

现实生活中的蚂蚁活动是立体的,三维的。但实验所要求的求解环境一般是平面的,二维的。所以将三维环境抽象为二维是有必要的。另一个问题计算机无法处理蚂蚁连续的行动,计算机只能处理离散问题。因此二维连续平面必须抽象为一组点组成的离散平面。并且我们的实验个体--人工蚂蚁能够在上面自由活动。这些抽象过程的能够实现的原因是:我们可以把蚂蚁在连续平面上的活动分解成一步步行走的小活动。虽然整个过程是连续的,但每个时间所经过的却是一个个离散点。所以整个抽象的过程只是降低了蚂蚁的活动密度,但不违背其自身的觅食原理。

2.3.3寻找路径的抽象

现实中,蚂蚁选择下一步行动方向的依据就是所在环境中的信息量。如何把现实中蚂蚁选择路径这一过程抽象出来就成了问题。我们的做法是根据人工蚂蚁的特点(人工蚂蚁是在平面上的各个节点上来回移动的),将信息素抽象的结果赋予各个节点之间的路径。开始时各个路径上的信息素的值是相等的。随着过程的进行,有的路径上信息素浓度高,有的路径上信息素浓度低。且随着蚂蚁的移动,信息素的浓度是动态变化的。在各个节点上人工蚂蚁都能感受到当前前往各个不同节点的道路上,信息素浓度的大小。并根据这个重要依据来决定前往各个不同节点道路的概率。每次蚂蚁的移动都会改变当前环境的信息素浓度。所有的人工蚂蚁就根据这一点,从起点逐渐走向终点,从而能够得到一个问题的可能解。

2.3.4信息素挥发的抽象

和上面所说的有点类似,现实生活中,随着时间的流逝,信息素是会不断挥发的。而这个挥发活动不是一个离散的过程。但计算机只能处理离散事件,所以信息素的挥发必须被抽象成离散化。于是,我们的做法是将上面所说的蚂蚁移动的过程和信息素的挥发捆绑在一起同时进行。即蚂蚁每走一步,信息素就挥发一次。信息素的挥发和蚂蚁的移动完全同步。并且两种过程的机制也是完全一致。

2.3.5启发因子的引入

所有上面所讲的是对现实中蚂蚁找寻食物行为的抽象。这个抽象过程体现了蚁群算法的特点,但这同时也有一个问题,就是模拟的时候所需要的时间太长。实际应用不可能给它太多的时间来运行,所以我们要限制算法的运行时间。为了加快整个算法的过程,我们给出了一个启发式因子。它能更快的帮助人工蚂蚁选择下一步的方向。通过提前给出一个大致的前进方向,能减少大部分前期所做的无谓的尝试,减少了整体所花费的时间,提高了算法的效率。使得蚁群算法能有效地应用到工程环境当中来。

蚁群算法是蚁群算法的基本单元。蚂蚁个体的知识来源于与其他蚂蚁的交流以及周围环境的感知。因此,蚂蚁做出的选择不是一成不变的,而是根据当前环境的变化而发生变化。蚂蚁个体可以通过随机决策机制和相互协调机制来适应自身的评价。蚂蚁之间的分布和协作是蚁群算法的核心内容。

蚁群算法具有很强的自学习能力,可以根据环境的变化和过去行为的结果进行重新组织,从而实现算法求解能力的演化。环境的变化和算法不断学习的能力两者叠加的结果是导致蚁群算法变化的原因,算法的机理是复杂的。但我们需要的就是这种根据环境变化所造成的不确定性和复杂性使得蚁群算法的结果变得无法预测。

2.4 基本蚁群算法的实现步骤

  1. 初始化参数:开始时每条边的信息素量都相等。τij(0)= C,△τij(0)= 0
  2. 每个蚂蚁被放置在每个顶点上,禁忌列表的首项对应其顶点。
  3. 取一个蚂蚁,计算转移概率pkij(t),用一种特殊的叫做轮盘赌的方法选择下一个顶点,更新禁忌表,然后计算概率,然后选择顶点,然后更新禁忌表,直到遍历所有顶点。
  4. 计算该蚂蚁留在各边的信息素量τkij
  5. 重复直至蚂蚁都周游完毕。
  6. 计算各边信息素增量△τij和信息素量△τij(t n)。
  7. 记录此迭代的路径,更新当前最佳路径,以及空禁忌表。
  8. 确定是否达到预定的迭代要求,或者是否存在停顿。如果算法结束,输出当前最优路径;如果不是,步骤2,继续进行下一次迭代。

图2.2 算法的程序流程结构

2.5 基本蚁群算法的程序流程结构

2.6 蚁群算法的特点

  • 正反馈的机制会使得搜索结果得以收敛,并最终逼近最优解。
  • 所有蚂蚁都会释放信息素,它们释放的信息素会不断改变周围信息素的浓度,从而其他个体因为信息素不断变化的影响改变其行进路线
  • 在搜索过程中采用分布式计算,并行计算由多个个体同时进行,极大地提高了算法的运算能力和运算效率。
  • 可以使用轮盘赌等概率搜索方法,避免陷入局部最优,从而较为容易地找到全局最优解。

第3章 用蚁群算法解决TSP问题并实现

3.1 MATLAB软件的介绍与优点

MATLAB 软件最开始是由 Math Works 公司所开发出来的一种主要用于数值计算及可视化图形处理的高科技计算语言。其最初只是一个用 FORTRAN 语言编写的适用于矩阵运用算的程序。之后其用C语言重新编写,并且不断地发展进步,功能变得越来越完善,其推广性也变得也变得越来越广,现在的MATLAB更是变成了一种高度集成的计算机语言,MATLAB汇聚了很多强大的功能比如图形图象的处理以及仿真、矩阵计算、数值分析等。其作为一种高效率的编程工具已经广泛应用于科学研究还有需要进行有效数值计算的众多学科中。

以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图