蚁群算法简述及实现

蚁群算法简述及实现
蚁群算法简述及实现

蚁群算法简述及实现

1 蚁群算法的原理分析

蚁群算法是受自然界中真实蚁群算法的集体觅食行为的启发而发展起来的一种基于群体的模拟进化算法,属于随机搜索算法,所以它更恰当的名字应该叫“人工蚁群算法”,我们一般简称为蚁群算法。M.Dorigo等人充分的利用了蚁群搜索食物的过程与著名的TSP问题的相似性,通过人工模拟蚁群搜索食物的行为来求解TSP问题。

蚂蚁这种社会性动物,虽然个体行为及其简单,但是由这些简单个体所组成的群体却表现出及其复杂的行为特征。这是因为蚂蚁在寻找食物时,能在其经过的路径上释放一种叫做信息素的物质,使得一定范围内的其他蚂蚁能够感觉到这种物质,且倾向于朝着该物质强度高的方向移动。蚁群的集体行为表现为一种正反馈现象,蚁群这种选择路径的行为过程称之为自催化行为。由于其原理是一种正反馈机制,因此也可以把蚁群的行为理解成所谓的增强型学习系统(Reinforcement Learning System)。

引用M.Dorigo所举的例子来说明蚁群发现最短路径的原理和机制,见图1所示。假设D 和H之间、B和H之间以及B和D之间(通过C)的距离为1,C位于D和B的中央(见图1(a))。现在我们考虑在等间隔等离散世界时间点(t=0,1,2……)的蚁群系统情况。假设每单位时间有30只蚂蚁从A到B,另三十只蚂蚁从E到D,其行走速度都为1(一个单位时间所走距离为1),在行走时,一只蚂蚁可在时刻t留下浓度为1的信息素。为简单起见,设信息素在时间区间(t+1,t+2)的中点(t+1.5)时刻瞬时完全挥发。在t=0时刻无任何信息素,但分别有30只蚂蚁在B、30只蚂蚁在D等待出发。它们选择走哪一条路径是完全随机的,因此在两个节点上蚁群可各自一分为二,走两个方向。但在t=1时刻,从A到B的30只蚂蚁在通向H的路径上(见图1(b))发现一条浓度为15的信息素,这是由15只从B走向H的先行蚂蚁留下来的;而在通向C的路径上它们可以发现一条浓度为30的信息素路径,这是由15只走向BC的路径的蚂蚁所留下的气息与15只从D经C到达B留下的气息之和(图1(c))。这时,选择路径的概率就有了偏差,向C走的蚂蚁数将是向H走的蚂蚁数的2倍。对于从E到D来的蚂蚁也是如此。

(a)(b)(c)

图1 蚁群路径搜索实例

这个过程一直会持续到所有的蚂蚁最终都选择了最短的路径为止。

这样,我们就可以理解蚁群算法的基本思想:如果在给定点,一只蚂蚁要在不同的路径中选择,那么,那些被先行蚂蚁大量选择的路径(也就是信息素留存较浓的路径)被选中的概率就更大,较多的信息素意味着较短的路径,也就意味着较好的问题回答。

2人工蚁群算法描述

蚁群算法可以看作为一种基于解空间参数化概率分布模型(Parameterized Probabilistic Model)的搜索算法框架(Model-based search algorithms)。在蚁群算法中,解空间参数化概率,模型的参数就是信息素,因而这种参数化概率分布模型就是信息素模型。在基于模型的搜索算法框架中,可行解通过在一个解空间参数化概率分布模型上的搜索产生,此模型的参数用以前产生的解来更新,使得在新模型上的搜索能够集中在高质量的解搜索空间内。这种方法的有效性建立在高质量的解总是包含好的解构成元素的假设前提下。通过学习这种解构成元素对解的质量的影响有助于找到一种机制,并通过解构成元素的最佳组合来构造出高质量的解。一般来说,一个记忆模型的搜索算法通常使用以下两步迭代来解决优化问题:

1)可行解通过在解空间参数化概率分布模型上的搜索产生。

2)用搜索产生的解来更新参数化概率模型,即更新解空间参数化概率分布的参数,使得在新模型上的参数搜索能够集中在高质量的解搜索空间内。

在蚁群算法中,基于信息素的解空间参数化概率模型(信息素模型)以解构造图的形式给出。在解构造图上,定义了一种作为随机搜索机制的人工蚁群,蚂蚁通过一种分布在解构造图上被称为信息素的局部信息的指引,在解构造图上移动,从而逐步的构造出问题的可行。信息素与解构造图上的节点或弧相关联,作为解空间参数化概率分布模型的参数。

由于TSP问题可以直接的映射为解构造图(城市为节点,城市间的路径为弧,信息素分布在弧上),加之TSP问题也是个NP难题,所以,蚁群算法的大部分应用都集中在TSP问题上。一般而言,用于求解TSP问题、生产调度问题等优化问题的蚁群算法都遵循下面的统一算法框架。

算法1:求解组合优化问题的蚁群算法

设置参数,初始化信息素踪迹

While(不满足条件时)do

for蚁群中的每只蚂蚁

for每个解构造步(直到构造出完整的可行解)

1)蚂蚁按照信息素及启发式信息的指引构造一步问题的解;

2)进行信息素局部更新。(可选)

endfor

endfor

1)以某些已获得的解为起点进行邻域(局部)搜索;(可选)

2)根据某些已获得的解的质量进行全局信息素更新。

endwhile

end

在算法1中,蚂蚁逐步的构造问题的可行解,在一步解的构造过程中,蚂蚁以概率方式选择信息素强且启发式因子高的弧到达下一个节点,直到不能继续移动为止。此时蚂蚁所走过的路径对应求解问题的一个可行解。局部信息素更新针对蚂蚁当前走过的一步路径上的信息素进行,全局信息素更新是在所有蚂蚁找到可行解之后,根据发现解的质量或当前算法找到的最好解对路径上的信息素进行更新。

3 蚁群算法与其他搜索算法比较

3.1 蚁群算法与进化算法比较

近年来,遗传算法(GA)、进化规划(Evolutionary Planning)、进化策略(Evolutionary Strategies)在理论和应用上发展迅速、效果显著并逐渐走向了融合,形成了一种新颖的模拟进

化的计算理论,统称为进化计算(Evolutionary Computation)。因此我们可以用进化计算作为代表与蚁群算法进行比较,从另一个角度来认识蚁群算法,加深对蚁群算法的理解。

蚁群算法与进化计算的相似之处有两点:首先,两种算法均采用群体表示问题的解;其次,新群体通过包含在群体中与问题相关的知识来生成。两者的主要区别在于进化计算中所有问题的的知识都包含在当前群体中,而蚁群算法中代表过去所学的知识保存在信息素的踪迹中。

3.2 蚁群算法与模拟退火算法比较

从模拟退火算法的搜索策略可以看出蚁群算法和模拟退火算法(SA)从本质上来讲是一致的。

SA对某个“固体的”一个微观状态i计算其能量E i的过程与蚂蚁的一次“周游”一样,都是对解空间的一次采样;“退火”与“分泌信息素”都是利用积累信息来增强对子空间的搜索;而“Metropolis准则”和“随机状态转移规则”类似,都是使算法能够跳出局部最优,在一定范围内接受恶化解,搜索新的子空间。

因此,SA已经非常成熟的收敛性研究对分析设置蚂蚁规模参数和信息素分布策略对最终解质量的影响有很大的借鉴意义。对于SA的收敛性分析一般分两种情况,齐次Markov链和非齐次Markov链。齐次Markov链的分析结果告诉我们,在任意温度t,SA都达到平衡分布的情况下,当t→0时,SA将收敛于全局最优。也就是说,在任意温度t,SA都要遍历整个解空间。那么,如果我们保留sA采样后的当前全局最优解,则即使在任何温度t,SA都会收敛于全局最优。换句话说,对于蚁群算法,如果蚂蚁数量(规模)足够多,能够保证对解空间的遍历,那么即使不用信息素,也能保证全局收敛。不过这种方法显然就是一种盲目随机搜索,没有任何实际的应用价值。

对于非其次Markov链的SA,即在某个固定温度t,采样次数有限,而t将无限趋近于0的情况下,结论告诉我们当控制参数序列满足一定条件时,SA才收敛于整体最优解集。其更直接的表述方式是:控制参数t的衰减量与在温度t下的采样数之间存在一种均衡:t的衰减量越大,则在温度艺下的采样数就必须越多;反之,若t的衰减量缓慢,则在每个温度下SA只需进行少量采样。

那么。从蚁群算法的角度可以看到:因为蚂蚁的规模实际上影响的只是信息素更新的频率,所以当规模设置较大时,每次更新信息素时,可以以较快的速度拉大不同状态上的信息素差距;当规模较小时,每次只对信息素进行少量更新,以免算法早熟。

由此可见,对蚁群算法的参数设置可以直接利用SA中对“冷却进度表”的研究成果。

此外,既然两者在本质上一致,那么SA的一些改进和变异可以直接用在蚁群算法上以改进其性能。

3.3 蚁群算法与神经网络比较

由许多并发、局部交互的单元(人工蚂蚁)组成的蚁群,可以看成是一种“连接”系统。“连接”系统最具代表性的例子是神经网络(Neural Network,简称NN)。从结构上看,蚁群算法与通常的神经网络具有类似的并行机制。蚂蚁访问过的每一个状态i对应于神经网络中的神经元i,与问题相关的状态i的邻域结构与神经元i中的突触连接相对应。蚂蚁本身可以看成是通过神经网络的并发输入信号,以修改突触与神经元之间的连接强度。信号经过随机转换函数的局部反传,使用的突触越多,两个神经元之间的连接越强。蚁群算法中的学习规则可以解释为一种后天性的规则,即质量较好的解包含连接信号的强度高于质量较差的解。

4 基本蚁群算法及其实现

4.1 引言

蚁群在觅食过程中总能找到蚁巢和食物源之间的最短路径。受蚂蚁的这种行为启发,意

大利学者M.Dorigo 、V .Maniezzo 以及A.Colorni 首先提出了一种新型的随机搜索模拟进化算法—蚂蚁系统(Ant System,简称As)。AS 算法是第一个蚁群算法的模型,被称为基本蚁群算法。AS 算法首先被用来求解TSP 问题,并取得了巨大成功。实验结果显示AS 算法具有很强的发现较好解的能力,但同时也存在一些缺点,如收敛速度较慢、易出现停滞现象等等。针对AS 算法的不足之处,许多学者对其进行了深入的研究,提出了一些改进的蚁群算法,如带精英策略的蚂蚁系统(Ant System With elitist strategy,简称AS elitist 、蚁群系统(Ant Colorni System,简称ACS)、基于优化排序的蚂蚁系统(Rank-Based Version of Ant System,简称AS rank )、最大-最小蚂蚁系统(Max-MinAnt System,简称MMAS)以及最优-最差蚂蚁系统(Best-WorstAntSystem,简称BW AS)等等。

4.2 蚂蚁系统的模型描述

为了说明蚂蚁系统的模型,首先引入TSP 问题。

一般地来说,旅行商问题(Traveling Salesman Problem,简称TSP 问题)可以描述如下: 设C={c l ,c 2,…,c n }为n 个城市的集合,L= {L ij |c i 、c j ∈C }是c 中元素两两连接的集合,G=(C,L)是一个图,已知各城市之间的距离,TSP 问题的求解目的是从G 中找出长度最短的Hamiltonian 圈,即找出对C={c l ,c 2,…,c n }中n 个城市访问且只访问一次的最短的一条封闭曲线。TSP 问题分为对称型和非对称型。在对称型TSP 问题中,有d ij =d ji ,?c i ,c j ∈C{1,2,…,n},d ij 是l ij 的长度;在非对称型TSP 问题中,至少存在一对c i ,c j ∈C ,使d ij ≠d ji 。

为了模拟实际蚂蚁的行为,我们首先引入如下记号:

m —蚁群中蚂蚁的数量;

b i (t )—t 时刻位于城市i 的蚂蚁数,m= bi (t )n i =1;

d ij —两城市i 和j 之间的距离;

ηij —边(i,j)的能见度,反映由城市i 转移到城市j 的启发程度,这个量在蚂蚁的运行中不改变;

τij (t )—t 时刻边(i,j)上的信息素量;

Δτij —本次迭代中边ij 上的信息素增量;

P ij k (t )—在t 时刻蚂蚁k 从城市i 转移到城市j 的概率;

每只蚂蚁都具有以下特性:

(1)完成一次循环后,蚂蚁在其访问过的每条边上留下相应的信息素;

(2)蚂蚁依据概率选择下一个将要访问的城市,这个概率是两城市间距离及连接两个城市的边上信息量的函数;

(3)为了满足问题的约束条件,在完成一次循环之前,不允许蚂蚁选择己经访问过的城市,该过程由蚂蚁的禁忌表来控制。设tabuk 为蚂蚁k 的禁忌表,则蚂蚁在经过城市i 以后,就将城市i 加入到自己的禁忌表tabuk 、中,表示下次不能再选择城市i 。用tabu k (s)表示禁忌表中第s 个元素,也即蚂蚁走过的第s 个城市。

于是AS 算法可以表述如下:在算法的初始时刻,将m 只蚂蚁随机的放到n 座城市,同时,将每只蚂蚁的禁忌表的第一个元素设置为当前它所在的城市。初始时刻,各条路径上的信息素量相等,设τij (0)=C (C 为一较小的常数)。然后每只蚂蚁按照各条路径上的信息素量和启发式信息(两城市间的距离)独立的选择下一座城市,蚂蚁系统所用的状态转移规则称为随机

比例规则。在t 时刻,蚂蚁k 在城市i 选择城市j 的转移概率P ij k (t )为:

P ij k t = τij α t ηij β

(t ) τis α(t )ηis β(t )s∈allowedk ,j ∈allowed k 0,ot h erwise

(4.1)

其中,allowed k ={1,2,…,n}—tabu k 表示蚂蚁下一步允许选择的城市。列表tabu k 记录了蚂蚁k 当前走过的城市。当所有n 座城市都加入到tabuk 中时,蚂蚁k 便完成了一次周游,此时蚂蚁k

所走过的路径便是TSP 问题的一个可行解。式(4.1)中的ηij 通常取城市i 和城市j 之间距离的倒数。α和β分别表示信息素和启发式因子的相对重要程度。当所有蚂蚁完成一次周游以后,各路径上的信息素根据下式更新。

τij t +n =ρ?τij t +?τij (4.2)

?τij = ?τij k m k =1(4.3)

其中ρ(0< ρ

关于?τij k 的计算方法,M.Dorigo 曾给出三种不同的实现方法,分别对应三种不同的蚂蚁系

统模型ant-cycle system 、ant-density system 以及ant- quantity system 。它们的区别在于表达式?τij k 的不同。

在ant-cycle system 模型中:

?τij k = Q

L k ,若蚂蚁k 在本次循环中经过边ij

0,ot h erwise (

4.4) 在ant-density system 模型中:

?τij k = Q

d ij ,若蚂蚁k 在本次循环中经过边ij

0,ot h erwise (

4.5) 在ant- quantity system 模型中:

?τij k = Q ,若蚂蚁k 在本次循环中经过边ij 0,ot h erwise

(4.6) 上面公式中,Q 为一正常数,表示蚂蚁循环一周或者一个过程在经过的路径上所释放的信息素总量。L k 表示第k 只蚂蚁在本次循环中所经过的路径的长度。

以上三种模型的区别在于:第一种模型利用的是蚁群的整体信息,即走完一个循环以后才进行残留信息量的全局调整;而后两种模型中蚂蚁每走一步(即从时间t 到t+1)都要更新残留的信息量,而不是等到所有的蚂蚁完成对所有的城市访问以后。

4.3 蚂蚁系统模型的实现

从上面的蚂蚁系统模型来看,其寻找最优解的过程实际上是一个有限的递推过程,因而也适合在计算机上实现。AS 算法的实现可用以下的伪代码来描述:

算法2:AS 算法

1.初始化

设t=0; {t 为计时器}

N c =0; { N c 为迭代次数计算器}

τij (t )=C ;{τij (t )为每条路径(i ,j )设的信息素量的初值}

Δτij =0;{信息素增量的初值设为0}

ηij 由某种启发式算法确定;{在TSP 中,ηij =1/d ij }

tabu k =Φ;{在初始阶段,禁忌表为空}

将m 只蚂蚁随机地置于n 个节点上;

设置s=1;{s 为禁忌表索引,将各蚂蚁的初始城市置于当前禁忌表中}

for k=1 to n do

for k=1 to b i (t ) do

tabu k (s )=i ;

2.重复直至禁忌表满为止{这一步要重复(n-1)次}

设置s=s+1;

for i=1to n do

for k=1 to b i(t)do

以概率P ij k t选择城市j;

将蚂蚁k移动到城市j;

将刚刚选择到的城市j加入到禁忌表中

在ant-cycle system模型中:按照(4.4)式计算?τij k

在ant- density system模型中:按照(4.5)式计算?τij k

在ant- quantity system模型中:按照(4.6)式计算?τij k 3.记录到目前为止的最短路径

if N c

则清空所有禁忌表;

设置s=1;

for i=1to n do

for k=1 to b i(t)do

tabu k(s)=1;{一次循环后蚂蚁又重新回到初始位置}

设t=t+1

对于每一条路径(i,j),设置Δτij=0;

返回步骤2

否则

输出最短路径

算法停止

蚁群算法简述及实现

蚁群算法简述及实现 1 蚁群算法的原理分析 蚁群算法是受自然界中真实蚁群算法的集体觅食行为的启发而发展起来的一种基于群体的模拟进化算法,属于随机搜索算法,所以它更恰当的名字应该叫“人工蚁群算法”,我们一般简称为蚁群算法。M.Dorigo等人充分的利用了蚁群搜索食物的过程与著名的TSP问题的相似性,通过人工模拟蚁群搜索食物的行为来求解TSP问题。 蚂蚁这种社会性动物,虽然个体行为及其简单,但是由这些简单个体所组成的群体却表现出及其复杂的行为特征。这是因为蚂蚁在寻找食物时,能在其经过的路径上释放一种叫做信息素的物质,使得一定范围内的其他蚂蚁能够感觉到这种物质,且倾向于朝着该物质强度高的方向移动。蚁群的集体行为表现为一种正反馈现象,蚁群这种选择路径的行为过程称之为自催化行为。由于其原理是一种正反馈机制,因此也可以把蚁群的行为理解成所谓的增强型学习系统(Reinforcement Learning System)。 引用M.Dorigo所举的例子来说明蚁群发现最短路径的原理和机制,见图1所示。假设D 和H之间、B和H之间以及B和D之间(通过C)的距离为1,C位于D和B的中央(见图1(a))。现在我们考虑在等间隔等离散世界时间点(t=0,1,2……)的蚁群系统情况。假设每单位时间有30只蚂蚁从A到B,另三十只蚂蚁从E到D,其行走速度都为1(一个单位时间所走距离为1),在行走时,一只蚂蚁可在时刻t留下浓度为1的信息素。为简单起见,设信息素在时间区间(t+1,t+2)的中点(t+1.5)时刻瞬时完全挥发。在t=0时刻无任何信息素,但分别有30只蚂蚁在B、30只蚂蚁在D等待出发。它们选择走哪一条路径是完全随机的,因此在两个节点上蚁群可各自一分为二,走两个方向。但在t=1时刻,从A到B的30只蚂蚁在通向H的路径上(见图1(b))发现一条浓度为15的信息素,这是由15只从B走向H的先行蚂蚁留下来的;而在通向C的路径上它们可以发现一条浓度为30的信息素路径,这是由15只走向BC的路径的蚂蚁所留下的气息与15只从D经C到达B留下的气息之和(图1(c))。这时,选择路径的概率就有了偏差,向C走的蚂蚁数将是向H走的蚂蚁数的2倍。对于从E到D来的蚂蚁也是如此。 (a)(b)(c) 图1 蚁群路径搜索实例 这个过程一直会持续到所有的蚂蚁最终都选择了最短的路径为止。 这样,我们就可以理解蚁群算法的基本思想:如果在给定点,一只蚂蚁要在不同的路径中选择,那么,那些被先行蚂蚁大量选择的路径(也就是信息素留存较浓的路径)被选中的概率就更大,较多的信息素意味着较短的路径,也就意味着较好的问题回答。

基于蚁群算法的MATLAB实现

基于蚁群算法的机器人路径规划MATLAB源代码 基本思路是,使用离散化网格对带有障碍物的地图环境建模,将地图环境转化为邻接矩阵,最后使用蚁群算法寻找最短路径。 function [ROUTES,PL,Tau]=ACASPS(G,Tau,K,M,S,E,Alpha,Beta,Rho,Q) %% --------------------------------------------------------------- % ACASP.m % 基于蚁群算法的机器人路径规划 % GreenSim团队——专业级算法设计&代写程序 % 欢迎访问GreenSim团队主页→https://www.360docs.net/doc/0c3483909.html,/greensim %% --------------------------------------------------------------- % 输入参数列表 % G 地形图为01矩阵,如果为1表示障碍物 % Tau 初始信息素矩阵(认为前面的觅食活动中有残留的信息素) % K 迭代次数(指蚂蚁出动多少波) % M 蚂蚁个数(每一波蚂蚁有多少个) % S 起始点(最短路径的起始点) % E 终止点(最短路径的目的点) % Alpha 表征信息素重要程度的参数 % Beta 表征启发式因子重要程度的参数 % Rho 信息素蒸发系数 % Q 信息素增加强度系数 % % 输出参数列表 % ROUTES 每一代的每一只蚂蚁的爬行路线 % PL 每一代的每一只蚂蚁的爬行路线长度 % Tau 输出动态修正过的信息素 %% --------------------变量初始化---------------------------------- %load D=G2D(G); N=size(D,1);%N表示问题的规模(象素个数) MM=size(G,1); a=1;%小方格象素的边长 Ex=a*(mod(E,MM)-0.5);%终止点横坐标 if Ex==-0.5 Ex=MM-0.5; end Ey=a*(MM+0.5-ceil(E/MM));%终止点纵坐标 Eta=zeros(1,N);%启发式信息,取为至目标点的直线距离的倒数 %下面构造启发式信息矩阵 for i=1:N

蚁群算法应用

大连理工大学 研究生必修课 作业 课程名称:现代物流管理 研究生姓名:徐静学号:21511149 作业成绩: 任课教师(签名) 交作业日时间:2016 年6 月1日

蚁群算法在TSP问题上的应用 摘要蚁群算法是受现实蚂蚁群体行为启发而得出的一类仿生算法。本文以解决TSP问题为基础,系统地介绍了蚁群算法从诞生到成熟过程中几个代表性的算法。在阐述算法基本思想的前提下,着重论述算法的创新之处。 关键词蚁群算法,TSP问题,蚁群优化 1引言 蚁群算法也称作蚁群优化(Ant Colony Optimization,ACO),最早是由Dorigo及其研究同伴所提出,用于求解诸如旅行商问题之类的组合优化问题。自然界蚂蚁在其经过的路径上会留下某种生物信息物质(信息素),该物质会吸引蚁群中的其它成员再次选择该段路径;食物与巢穴之前较短的路径容易积累较多的信息素,因而使得更多的蚂蚁选择走该段路径,最终几乎所有的蚂蚁都集中在最短路径上完成食物的搬运。Dorigo等从此现象中抽象出路径选择和信息素积累的数学模型,作为蚁群算法的核心,并通过对蚂蚁寻找最短路径的计算机模拟,实现了对TSP问题的求解。自此,蚁群算法越来越多地被用于求解其它的组合优化问题,也被推广到工业工程上应用。 蚁群算法特点是并发性、鲁棒性、正反馈性等。在蚁群算法求解问题的过程中,利用蚁群在问题空间中同时构造问题的多个解体现了算法的并发性。蚁群不会因为单个蚂蚁寻找到较差的解或者因为问题空间发生改变而使得算法丧失作用,这体现了算法的鲁棒性。在蚂蚁构造问题解的过程中,以蚁群觅食行为为例,会在经过的解路径上释放信息素,而解空间中获得信息素越多的路径,对蚂蚁的吸引力就越大,使更多的蚂蚁经过该路径并进一步在上面释放信息素,这体现了算法的正反馈性。 TSP问题代表一类组合优化问题,在实际工程中有许多应用,如计算机联网、电子地图、交通诱导、电气布线、VLSI单元布局、ATM分组交换网等。鉴于其重要的工程与理论价值,TSP常作为算法性能研究的典型算例。求其最优解的代价是指数级的,因此对其近似解的研究一直是算法设计的一个重要课题。 TSP问题是典型的NP完全问题,许多算验证法及算法效率测试都以TSP问题为基础。在蚁群算法研究中,第一个蚁群算法,蚂蚁系统,就是在TSP问题的基础上提出来的。而后,依据TSP问题,又提出了蚁群算法系列中具有代表性的蚁群系统、最大——最小蚂蚁系统。 本文以TSP问题为基础,对蚁群算法的基本问题及典型的蚁群算法进行了综述。涉及到算法的基本问题、算法描述、算法改进及意义。通过研究总结了蚁群算法的发展历程和实现思想。

蚁群算法在车辆路径问题中的应用

蚁群算法在车辆路径问题中的应用 摘要 蚁群算法(Ant Colony Optimization, ACO)是意大利学者M.Dorigo等人通过模拟蚁群觅食行为提出的一种基于种群的模拟进化算法。通过介绍蚁群觅食过程中基于信息素(pheromone)的最短路径的搜索策略,给出了基于MATLAB的蚁群算法在车辆路径问题(Vehicle Routing Problem, VRP)中的应用。蚁群算法采用分布式并行计算机制,易于其他方法结合,而且具有较强的鲁棒性,但搜索时间长,容易陷入局部最优解。针对蚁群算法存在的过早收敛问题,加入2—opt方法对问题求解进行了局部优化,计算机仿真结果表明,这种混合型蚁群算法对求解车辆路径问题有较好的改进效果。 关键词:蚁群算法、组合优化、车辆路径问题、2-opt方法 1.车辆路径问题 车辆路径问题(VRP)来源于交通运输,1959年由Dantzig提出,它是组合优化问题中一个典型的NP-hard问题。最初用于研究亚特兰大炼油厂向各个加油站投送汽油的运输路径优化问题,并迅速成为运筹学和组合优化领域的前沿和研究热点。 车路优化问题如下: 已知有一批客户,各客户点的位置坐标和货物需求已知,

供应商具有若干可供派送的车辆,运载能力给定,每辆车都是从起点出发,完成若干客户点的运送任务后再回到起点。 现要求以最少的车辆数和最少的车辆总行程来完成货物的派送任务。 2、蚁群系统基本原理 在蚂蚁群找到食物时,它们总能找到一条从食物到蚁穴之间的最短路径。因为蚂蚁在寻找食物时会在路途上释放一种特殊的信息素。当它们碰到一个还没有走过的路口时,会随机地挑选一条路径前行。与此同时释放出与路径长度有关的信息素。路径越长,释放的激素浓度越低。当后面的蚂蚁再次碰到这个路口时,会选择激素浓度较高的路径走。这样形成了一个正反馈,最优路径上的激素浓度越来越高,而其他的路径上激素浓度却会随时间的流逝而消减。最终整个蚁群会找出最优路径。在整个寻找过程中,整个蚁群通过相互留下的信息素作用交换着路径信息,最终找到最优路径。 3、基本蚁群算法求解车辆路径问题 求解VRP问题的蚂蚁算法中,每只蚂蚁是一个独立的用 于构造路线的过程,若干蚂蚁过程之间通过信息素值来交换信息,合作求解,并不断优化。这里的信息素值分布式存储在图中,与各弧相关联。蚂蚁算法求解VRP问题的过程如下:

基于蚁群算法的路径规划

MATLAB实现基于蚁群算法的机器人路径规划 1、问题描述 移动机器人路径规划是机器人学的一个重要研究领域。它要求机器人依据某个或某些优化原则(如最小能量消耗,最短行走路线,最短行走时间等),在其工作空间中找到一条从起始状态到目标状态的能避开障碍物的最优路径。机器人路径规划问题可以建模为一个有约束的优化问题,都要完成路径规划、定位和避障等任务。 2 算法理论 蚁群算法(Ant Colony Algorithm,ACA),最初是由意大利学者Dorigo M. 博士于1991 年首次提出,其本质是一个复杂的智能系统,且具有较强的鲁棒性,优良的分布式计算机制等优点。该算法经过十多年的发展,已被广大的科学研究人员应用于各种问题的研究,如旅行商问题,二次规划问题,生产调度问题等。但是算法本身性能的评价等算法理论研究方面进展较慢。 Dorigo 提出了精英蚁群模型(EAS),在这一模型中信息素更新按照得到当前最优解的蚂蚁所构造的解来进行,但这样的策略往往使进化变得缓慢,并不能取得较好的效果。次年Dorigo 博士给出改进模型(ACS),文中改进了转移概率模型,并且应用了全局搜索与局部搜索策略,来得进行深度搜索。Stützle 与Hoos给出了最大-最小蚂蚁系统(MAX-MINAS),所谓最大-最小即是为信息素设定上限与下限,设定上限避免搜索陷入局部最优,设定下限鼓励深度搜索。蚂蚁作为一个生物个体其自身的能力是十分有限的,比如蚂蚁个体是没有视觉的,蚂蚁自身体积又是那么渺小,但是由这些能力有限的蚂蚁组成的蚁群却可以做出超越个体蚂蚁能力的超常行为。蚂蚁没有视觉却可以寻觅食物,蚂蚁体积渺小而蚁群却可以搬运比它们个体大十倍甚至百倍的昆虫。这些都说明蚂蚁群体内部的某种机制使得它们具有了群体智能,可以做到蚂蚁个体无法实现的事情。经过生物学家的长时间观察发现,蚂蚁是通过分泌于空间中的信息素进行信息交流,进而实现群体行为的。 下面简要介绍蚁群通过信息素的交流找到最短路径的简化实例。如图2-1 所示,AE 之间有两条路ABCDE 与ABHDE,其中AB,DE,HD,HB 的长度为1,BC,CD 长度为0.5,并且,假设路上信息素浓度为0,且各个蚂蚁行进速度相同,单位时间所走的长度为1,每个单位时间内在走过路径上留下的信息素的量也相同。当t=0时,从A 点,E 点同时各有30 只蚂蚁从该点出发。当t=1,从A 点出发的蚂蚁走到B 点时,由于两条路BH 与BC 上的信息素浓度相同,所以蚂蚁以相同的概率选择BH 与BC,这样就有15 只蚂蚁选择走BH,有15 只蚂蚁选择走BC。同样的从E 点出发的蚂蚁走到D 点,分别有15 只蚂蚁选择DH 和DC。当t=2 时,选择BC 与DC的蚂蚁分别走过了BCD 和DCB,而选择BH 与DH 的蚂蚁都走到了H 点。所有的蚂蚁都在所走过的路上留下了相同浓度的信息素,那么路径BCD 上的信息素的浓度是路径BHD 上信息素浓度的两倍,这样若再次有蚂蚁选择走BC 和BH 时,或选择走DC 与DH 时,都会以较大的概率选择信息素浓度高的一边。这样的过程反复进行下去,最短的路径上走过的蚂蚁较多,留下的信息素也越多,蚁群这样就可以找到一条较短的路。这就是它们群体智能的体现。 蚁群算法就是模拟蚂蚁觅食过程中可以找到最短的路的行为过程设计的一种仿生算法。在用蚁群算法求解组合优化问题时,首先要将组合优化问题表达成与信息素相关的规范形式,然后各个蚂蚁独立地根据局部的信息素进行决策构造解,并根据解的优劣更新周围的信息素,这样的过程反复的进行即可求出组合优化问题的优化解。 归结蚁群算法有如下特点: (1)分布式计算:各个蚂蚁独立地构造解,当有蚂蚁个体构造的解较差时,并不会影响整体的求解结果。这使得算法具有较强的适应性; (2)自组织性:系统学中自组织性就是系统的组织指令是来自系统的内部。同样的蚁

基本蚁群算法

蚁群算法浅析 摘要:介绍了什么是蚁群算法,蚁群算法的种类,对四种不同的蚁群算法进行了分析对比。详细阐述了蚁群算法的基本原理,将其应用于旅行商问题,有效地解决了问题。通过对旅行商问题C++模拟仿真程序的详细分析,更加深刻地理解与掌握了蚁群算法。 关键词:蚁群算法;旅行商问题;信息素;轮盘选择 一、引言 蚁群算法(Ant Colony Optimization, ACO),是一种用来在图中寻找优化路径的算法。它由Marco Dorigo于1992年在他的博士论文中提出,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。蚁群算法是一种模拟进化算法,初步的研究表明该算法具有许多优良的性质。 蚁群算法成功解决了旅行商问题(Traveling Salesman Problem, TSP):一个商人要到若干城市推销物品,从一个城市出发要到达其他各城市一次而且最多一次最后又回到第一个城市。寻找一条最短路径,使他从起点的城市到达所有城市一遍,最后回到起点的总路程最短。若把每个城市看成是图上的节点,那么旅行商问题就是在N个节点的完全图上寻找一条花费最少的回路。 最基本的蚁群算法见第二节。目前典型的蚁群算法有随机蚁群算法、排序蚁群算法和最大最小蚁群算法,其中后两种蚁群算法是对前一种的优化。本文将终点介绍随机蚁群算法。 二、基本蚁群算法 (一)算法思想 各个蚂蚁在没有事先告诉他们食物在什么地方的前提下开始寻找食物。当一只找到食物以后,它会向环境释放一种信息素,信息素多的地方显然经过这里的蚂蚁会多,因而会有更多的蚂蚁聚集过来。假设有两条路从窝通向食物,开始的时候,走这两条路的蚂蚁数量同样多(或者较长的路上蚂蚁多,这也无关紧要)。当蚂蚁沿着一条路到达终点以后会马上返回来,这样,短的路蚂蚁来回一次的时间就短,这也意味着重复的频率就快,因而在单位时间里走过的蚂蚁数目就多,洒下的信息素自然也会多,自然会有更多的蚂蚁被吸引过来,从而洒下更多的信息素。因此,越来越多地蚂蚁聚集到较短的路径上来,最短的路径就找到了。 蚁群算法的基本思想如下图表示:

基于蚁群算法的机器人路径规划Ant Colony Algorithm

基于蚁群算法的机器人路径规划 说明:基于蚁群算法的机器人路径规划,使用网格离散化的方法对带有障碍物的环境建模,使用邻接矩阵存储该环境,使得问题转化为蚁群算法寻找最短路径。 使用网格离散化的方法对带有障碍物的环境建模,使用邻接矩阵存储该环境,使得问题转化为蚁群算法寻找最短路径。 % ACASP.m % 蚁群算法动态寻路算法 % GreenSim团队原创作品,转载请注明 % Email:greensim@https://www.360docs.net/doc/0c3483909.html, %% --------------------------------------------------------------- % 输入参数列表 % G 地形图为01矩阵,如果为1表示障碍物 % Tau 初始信息素矩阵(认为前面的觅食活动中有残留的信息素) % K 迭代次数(指蚂蚁出动多少波) % M 蚂蚁个数(每一波蚂蚁有多少个) % S 起始点(最短路径的起始点) % E 终止点(最短路径的目的点) % Alpha 表征信息素重要程度的参数 % Beta 表征启发式因子重要程度的参数 % Rho 信息素蒸发系数 % Q 信息素增加强度系数 % % 输出参数列表 % ROUTES 每一代的每一只蚂蚁的爬行路线 % PL 每一代的每一只蚂蚁的爬行路线长度 % Tau 输出动态修正过的信息素 %% --------------------变量初始化---------------------------------- %load D=G2D(G); N=size(D,1);%N表示问题的规模(象素个数) MM=size(G,1); a=1;%小方格象素的边长 Ex=a*(mod(E,MM)-0.5);%终止点横坐标 if Ex==-0.5 Ex=MM-0.5; end Ey=a*(MM+0.5-ceil(E/MM));%终止点纵坐标 Eta=zeros(1,N);%启发式信息,取为至目标点的直线距离的倒数 %下面构造启发式信息矩阵

蚁群算法综述

智能控制之蚁群算法 1引言 进入21世纪以来,随着信息技术的发展,许多新方法和技术进入工程化、产品化阶段,这对自动控制技术提出新的挑战,促进了智能理论在控制技术中的应用,以解决用传统的方法难以解决的复杂系统的控制问题。随着计算机技术的飞速发展,智能计算方法的应用领域也越来越广泛。 智能控制技术的主要方法有模糊控制、基于知识的专家控制、神经网络控制和集成智能控制等,以及常用优化算法有:遗传算法、蚁群算法、免疫算法等。 蚁群算法是近些年来迅速发展起来的,并得到广泛应用的一种新型模拟进化优化算法。研究表明该算法具有并行性,鲁棒性等优良性质。它广泛应用于求解组合优化问题,所以本文着重介绍了这种智能计算方法,即蚁群算法,阐述了其工作原理和特点,同时对蚁群算法的前景进行了展望。 2 蚁群算法概述 1、起源 蚁群算法(ant colony optimization, ACO),又称蚂蚁算法,是一种用来在图中寻找优化路径的机率型技术。它由Marco Dorigo于1992年在他的博士论文中引入,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。 Deneubourg及其同事(Deneubourg et al.,1990; Goss et al.,1989)在可监控实验条件下研究了蚂蚁的觅食行为,实验结果显示这些蚂蚁可以通过使用一种称为信息素的化学物质来标记走过的路径,从而找出从蚁穴到食物源之间的最短路径。 在蚂蚁寻找食物的实验中发现,信息素的蒸发速度相对于蚁群收敛到最短路径所需的时间来说过于缓慢,因此在模型构建时,可以忽略信息素的蒸发。然而当考虑的对象是人工蚂蚁时,情况就不同了。实验结果显示,对于双桥模型和扩展双桥模型这些简单的连接图来说,同样不需要考虑信息素的蒸发。相反,在更复杂的连接图上,对于最小成本路径问题来说,信息素的蒸发可以提高算法找到好解的性能。 2、基于蚁群算法的机制原理 模拟蚂蚁群体觅食行为的蚁群算法是作为一种新的计算智能模式引入的,该算法基于如下假设: (1)蚂蚁之间通过信息素和环境进行通信。每只蚂蚁仅根据其周围的环境作出反应,也只对其周围的局部环境产生影响。 (2)蚂蚁对环境的反应由其内部模式决定。因为蚂蚁是基因生物,蚂蚁的行为实际上是其基因的自适应表现,即蚂蚁是反应型适应性主体。 (3)在个体水平上,每只蚂蚁仅根据环境作出独立选择;在群体水平上,单

人工蚁群算法的实现与性能分析

目录.................................................... 错误!未定义书签。摘要. (ii) Abstract (iii) 第一章引言 (1) 1.1 非对称TSP问题(ATSP)及其求解方法概述 (1) 1.2 人工蚁群算法的主要思想和特点 (1) 1.3 主要工作 (2) 第二章 ATSP问题分析 (3) 2.1 ATSP问题的数学模型 (3) 2.2 ATSP问题与TSP问题的比较 (3) 第三章求解ATSP问题的人工蚁群算法 (4) 3.1 ATSP问题的蚁群算法表示 (4) 3.2 人工蚁群算法的实现 (4) 3.2.1 人工蚁群算法的流程图 (5) 3.2.2 蚁群的规模、算法终止条件 (6) 3.2.3 路径选择方法和信息素的更新方法 (7) 第四章实验和分析 (10) 4.1 测试环境 (10) 4.2 测试用例 (10) 4.3 实验结果及参数分析 (10) 4.3.1 br17.atsp的测试结果 (10) 4.3.2 ft53.atsp的测试结果 (12) 4.3.3 ftv33.atsp的测试结果 (13) 4.3.4 ftv35.atsp的测试结果 (15) 4.3.5 br17.atsp相关参数修改后的测试结果 (16) 第五章总结 (19) 致谢 (20) 参考文献 (21)

摘要 旅行商问题(TSP问题)是组合优化的著名难题。它具有广泛的应用背景,如计算机、网络、电气布线、加工排序、通信调度等。已经证明TSP问题是NP难题,鉴于其重要的工程与理论价值,TSP常作为算法性能研究的典型算例。TSP的最简单形象描述是:给定n个城市,有一个旅行商从某一城市出发,访问各城市一次且仅有一次后再回到原出发城市,要求找出一条最短的巡回路径。TSP分为对称TSP和非对称TSP两大类,若两城市往返距离相同,则为对称TSP,否则为非对称TSP 。本文研究的是对称的ATSP。 实质上,ATSP问题是在TSP问题上发展而来的,它们的区别就在于两座城市之间的往返距离是否相同。例如,有A,B两个城市,在TSP问题中,从A到B的距离是等于从B到A得距离的,是一个单向选择的连通问题。而在ATSP问题中,从A到B的距离就不一定等于从B到A的距离,所以这是双向选择的联通问题。 本文主要阐述了用人工蚁群算法的原理和一些与其相关联的知识结构点。通过对算法原理的理解,及在函数优化问题上的应用,与优化组合问题的研究来了解ATSP问题以及人工蚁群算法解决实际问题上的应用与研究。 关键词:ATSP ;组合优化;人工蚁群算法;TSP

计算智能大作业--蚁群算法解决TSP问题

(计算智能大作业) 应用蚁群算法求解TSP问题

目录 蚁群算法求解TSP问题 (3) 摘要: (3) 关键词: (3) 一、引言 (3) 二、蚁群算法原理 (4) 三、蚁群算法解决TSP问题 (7) 四、解决n个城市的TSP问题的算法步骤 (9) 五、程序实现 (11) 六、蚁群算法优缺点分析及展望 (18) 七、总结 (18)

采用蚁群算法解决TSP问题 摘要:蚁群算法是通过蚂蚁觅食而发展出的一种新的启发算法,该算法已经成功的解决了诸如TSP问题。本文简要学习探讨了蚂蚁算法和TSP问题的基本内容,尝试通过matlab 仿真解决一个实例问题。 关键词:蚁群算法;TSP问题;matlab。 一、引言 TSP(Travelling Salesman Problem)又称货郎担或巡回售货员问题。TSP问题可以描述为:有N个城市,一售货员从起始城市出发,访问所有的城市一次,最后回到起始城市,求最短路径。TSP问题除了具有明显的实际意义外,有许多问题都可以归结为TSP问题。目前针对这一问题已有许多解法,如穷举搜索法(Exhaustive Search Method), 贪心法(Greedy Method), 动态规划法(Dynamic Programming Method)分支界定法(Branch-And-Bound),遗传算法(Genetic Agorithm)模拟退火法(simulated annealing),禁忌搜索。本文介绍了一种求解TSP问题的算法—蚁群算法,并通过matlab仿真求解50个城市之间的最短距离,经过仿真试验,证明是一种解决TSP问题有效的方法。

启发式优化算法综述

启发式优化算法综述 一、启发式算法简介 1、定义 由于传统的优化算法如最速下降法,线性规划,动态规划,分支定界法,单纯形法,共轭梯度法,拟牛顿法等在求解复杂的大规模优化问题中无法快速有效地寻找到一个合理可靠的解,使得学者们期望探索一种算法:它不依赖问题的数学性能,如连续可微,非凸等特性; 对初始值要求不严格、不敏感,并能够高效处理髙维数多模态的复杂优化问题,在合理时间内寻找到全局最优值或靠近全局最优的值。于是基于实际应用的需求,智能优化算法应运而生。智能优化算法借助自然现象的一些特点,抽象出数学规则来求解优化问题,受大自然的启发,人们从大自然的运行规律中找到了许多解决实际问题的方法。对于那些受大自然的运行规律或者面向具体问题的经验、规则启发出来的方法,人们常常称之为启发式算法(Heuristic Algorithm)。 为什么要引出启发式算法,因为NP问题,一般的经典算法是无法求解,或求解时间过长,我们无法接受。因此,采用一种相对好的求解算法,去尽可能逼近最优解,得到一个相对优解,在很多实际情况中也是可以接受的。启发式算法是一种技术,这种技术使得在可接受的计算成本内去搜寻最好的解,但不一定能保证所得的可行解和最优解,甚至在多数情况下,无法阐述所得解同最优解的近似程度。 启发式算法是和问题求解及搜索相关的,也就是说,启发式算法是为了提高搜索效率才提出的。人在解决问题时所采取的一种根据经验规则进行发现的方法。其特点是在解决问题

时,利用过去的经验,选择已经行之有效的方法,而不是系统地、以确定的步骤去寻求答案,以随机或近似随机方法搜索非线性复杂空间中全局最优解的寻取。启发式解决问题的方法是与算法相对立的。算法是把各种可能性都一一进行尝试,最终能找到问题的答案,但它是在很大的问题空间内,花费大量的时间和精力才能求得答案。启发式方法则是在有限的搜索空间内,大大减少尝试的数量,能迅速地达到问题的解决。 2、发展历史 启发式算法的计算量都比较大,所以启发式算法伴随着计算机技术的发展,才能取得了巨大的成就。纵观启发式算法的历史发展史: 40年代:由于实际需要,提出了启发式算法(快速有效)。 50年代:逐步繁荣,其中贪婪算法和局部搜索等到人们的关注。 60年代: 反思,发现以前提出的启发式算法速度很快,但是解得质量不能保证,而且对大规模的问题仍然无能为力(收敛速度慢)。 70年代:计算复杂性理论的提出,NP问题。许多实际问题不可能在合理的时间范围内找到全局最优解。发现贪婪算法和局部搜索算法速度快,但解不好的原因主要是他们只是在局部的区域内找解,等到的解没有全局最优性。由此必须引入新的搜索机制和策略。 Holland的遗传算法出现了(Genetic Algorithm)再次引发了人们研究启发式算法的兴趣。 80年代以后:模拟退火算法(Simulated Annealing Algorithm),人工神经网络(Artificial Neural Network),禁忌搜索(Tabu Search)相继出现。 最近比较火热的:演化算法(Evolutionary Algorithm), 蚁群算法(Ant Algorithms),拟人拟物算法,量子算法等。

用蚁群算法解决TSP问题

用蚁群算法解决TSP 问题 一、引言 蚁群算法是一种受自然界生物行为启发而产生的“自然”算法,产生于对蚂蚁行为的研究。蚁群中的蚂蚁以“信息素”为媒介,间接异步的相互联系。蚂蚁在行动中,会在他们经过的地方留下一些化学物质,称为“信息素”。这些物质能被同一种群众后来的蚂蚁感受到,并作为一种信号影响后者的行动,具体表现在后到的蚂蚁选择有这些物质的路径的可能性比选择没有这些物质的路径的可能性大的多。后者留下的信息素会对原有的信息素进行加强,并循环下去。这样,经过蚂蚁多的路径,后到蚂蚁选择这条路径的可能性就越来越大。由于在一定的时间内,越短的路径会被越多的蚂蚁访问,因而积累的信息素就越多,在下一个时间内被其他的蚂蚁选中的可能性也越大。这个过程会持续到所有的蚂蚁都走到最短的那一条路径为止。 二、关键技术 (1) 解的表达形式 在应用蚁群优化算法时,只需要建立一个虚拟的始终点,相当于蚁群的巢穴和食物所在地,这样一个所经过城市的路径的排列就构成了一个解; (2) 信息素的记忆和更新 在算法开始时,由于从来没有蚂蚁去寻找过路径,因此可以认为是没有任何先验信息,即每条路上的信息相等。客观地将,信息素应该都为0,但是由于在蚁群算法中,信息素决定了蚂蚁选择这条路径的概率,因此可以认 为初始信息素矩阵为:1/(*(1))0ij N N p -?=?? i j i j ≠=其中N 为城市数 当算法运行过程中,每次放出m 支蚂蚁,每只蚂蚁按照信息素选择路径,将其中路径最短的记录下来,对这条最短路进行信息素的加强;而对于其他路径,因为信息素的挥发,信息素浓度将会降低,更新后的信息素矩阵为: 11(1)//(1)/k ij k ij k ij p N p p ρρρ--?-+?=?-?? i j i j →→经过路径不经过路径其中N 为城市数,ρ为挥发系数 (3) 蚁群的规模 在一般应用中,蚁群中蚂蚁的个数m 是固定数,不超过TSP 图的节点数。

(完整版)蚁群算法matlab程序实例整理

function [y,val]=QACS tic load att48 att48; MAXIT=300; % 最大循环次数 NC=48; % 城市个数 tao=ones(48,48);% 初始时刻各边上的信息最为1 rho=0.2; % 挥发系数 alpha=1; beta=2; Q=100; mant=20; % 蚂蚁数量 iter=0; % 记录迭代次数 for i=1:NC % 计算各城市间的距离 for j=1:NC distance(i,j)=sqrt((att48(i,2)-att48(j,2))^2+(att48(i,3)-att48(j,3))^2); end end bestroute=zeros(1,48); % 用来记录最优路径 routelength=inf; % 用来记录当前找到的最优路径长度 % for i=1:mant % 确定各蚂蚁初始的位置 % end for ite=1:MAXIT for ka=1:mant %考查第K只蚂蚁 deltatao=zeros(48,48); % 第K只蚂蚁移动前各边上的信息增量为零 [routek,lengthk]=travel(distance,tao,alpha,beta); if lengthk

(完整word版)基于蚁群算法的路径规划

MATLAB 实现基于蚁群算法的机器人路径规划 1、问题描述 移动机器人路径规划是机器人学的一个重要研究领域。它要求机器人依据某个或某些优化原则(如最小能量消耗,最短行走路线,最短行走时间等),在其工作空间中找到一条从起 始状态到目标状态的能避开障碍物的最优路径。机器人路径规划问题可以建模为一个有约束的优化问题,都要完成路径规划、定位和避障等任务。 2 算法理论 蚁群算法(Ant Colony Algorithm ,ACA ),最初是由意大利学者Dorigo M. 博士于1991 年首次提出,其本质是一个复杂的智能系统,且具有较强的鲁棒性,优良的分布式计算机制等优点。该算法经过十多年的发展,已被广大的科学研究人员应用于各种问题的研究,如旅行商问题,二次规划问题,生产调度问题等。但是算法本身性能的评价等算法理论研究方面进展较慢。 Dorigo 提出了精英蚁群模型(EAS ),在这一模型中信息素更新按照得到当前最优解的蚂蚁所构造的解来进行,但这样的策略往往使进化变得缓慢,并不能取得较好的效果。次年Dorigo 博士给出改进模型(ACS ),文中改进了转移概率模型,并且应用了全局搜索与局部搜索策略,来得进行深度搜索。 Stützle 与Hoos 给出了最大-最小蚂蚁系统(MAX-MINAS ),所谓最大-最小即是为信息素设定上限与下限,设定上限避免搜索陷入局部最优,设定下限鼓励深度搜索。蚂蚁作为一个生物个体其自身的能力是十分有限的,比如蚂蚁个体是没有视觉的,蚂蚁自身体积又是那么渺小,但是由这些能力有限的蚂蚁组成的蚁群却可以做出超越个体蚂蚁能力的超常行为。蚂蚁没有视觉却可以寻觅食物,蚂蚁体积渺小而蚁群却可以搬运比它们个体大十倍甚至百倍的昆虫。这些都说明蚂蚁群体内部的某种机制使得它们具有了群体智能,可以做到蚂蚁个体无法实现的事情。经过生物学家的长时间观察发现,蚂蚁是通过分泌于空间中的信息素进行信息交流,进而实现群体行为的。 下面简要介绍蚁群通过信息素的交流找到最短路径的简化实例。如图2-1 所示,AE 之间有两条路ABCDE 与ABHDE ,其中AB ,DE,HD,HB 的长度为1,BC,CD 长度为0.5,并且,假设路上信息素浓度为0,且各个蚂蚁行进速度相同,单位时间所走的长度为1,每个单位时间内在走过路径上留下的信息素的量也相同。当t=0 时,从A 点,E 点同时各有30 只蚂蚁从该点出发。当t=1,从A 点出发的蚂蚁走到B 点时,由于两条路BH 与BC 上的信息素浓度相同,所以蚂蚁以相同的概率选择BH 与BC ,这样就有15 只蚂蚁选择走BH,有15 只蚂蚁选择走BC 。同样的从E 点出发的蚂蚁走到D 点,分别有15 只蚂蚁选择DH 和DC。当t=2 时,选择BC 与DC 的蚂蚁分别走过了BCD 和DCB ,而选择BH 与DH 的蚂蚁都走到了H 点。所有的蚂蚁都在所走过的路上留下了相同浓度的信息素,那么路径BCD 上的信息素的浓度是路径BHD 上信息素浓度的两倍,这样若再次有蚂蚁选择走BC 和BH 时,或选择走DC 与DH 时,都会以较大的概率选择信息素浓度高的一边。这样的过程反复进行下去,最短的路径上走过的蚂蚁较多,留下的信息素也越多,蚁群这样就可以找到一条较短的路。这就是它们群体智能的体现。 蚁群算法就是模拟蚂蚁觅食过程中可以找到最短的路的行为过程设计的一种仿生算法。在用蚁群算法求解组合优化问题时,首先要将组合优化问题表达成与信息素相关的规范形式,然后各个蚂蚁独立地根据局部的信息素进行决策构造解,并根据解的优劣更新周围的信息素,这样的过程反复的进行即可求出组合优化问题的优化解。 归结蚁群算法有如下特点: (1)分布式计算:各个蚂蚁独立地构造解,当有蚂蚁个体构造的解较差时,并不会影响整体的求解结果。这使得算法具有较强的适应性; (2)自组织性:系统学中自组织性就是系统的组织指令是来自系统的内部。同样的蚁群算法中的各个蚂蚁的决策是根据系统内部信息素的分布进行的。这使得算法具有较强的鲁棒性; (3)正反馈机制与负反馈机制结合:若某部分空间上分布的信息素越多,那么在这个空间上走过的蚂蚁也就越多;走过的蚂蚁越多,在那个空间上留下的信息素也就越多,这就是存在的正反馈机制。但蚁群算法中解的构造是通过计算转移概率实现的,也就是说构造解的时候可以接受退化解,这限制了正反馈机制,

matlab蚁群算法精讲及仿真图

蚁群算法matlab精讲及仿真 4.1基本蚁群算法 4.1.1基本蚁群算法的原理 蚁群算法是上世纪90年代意大利学者M.Dorigo,v.Maneizz。等人提出来的,在越来越多的领域里得到广泛应用。蚁群算法,是一种模拟生物活动的智能算法,蚁群算法的运作机理来源于现实世界中蚂蚁的真实行为,该算法是由Marco Dorigo 首先提出并进行相关研究的,蚂蚁这种小生物,个体能力非常有限,但实际的活动中却可以搬动自己大几十倍的物体,其有序的合作能力可以与人类的集体完成浩大的工程非常相似,它们之前可以进行信息的交流,各自负责自己的任务,整个运作过程统一有序,在一只蚂蚁找食物的过程中,在自己走过的足迹上洒下某种物质,以传达信息给伙伴,吸引同伴向自己走过的路径上靠拢,当有一只蚂蚁找到食物后,它还可以沿着自己走过的路径返回,这样一来找到食物的蚂蚁走过的路径上信息传递物质的量就比较大,更多的蚂蚁就可能以更大的机率来选择这条路径,越来越多的蚂蚁都集中在这条路径上,蚂蚁就会成群结队在蚁窝与食物间的路径上工作。当然,信息传递物质会随着时间的推移而消失掉一部分,留下一部分,其含量是处于动态变化之中,起初,在没有蚂蚁找到食物的时候,其实所有从蚁窝出发的蚂蚁是保持一种随机的运动状态而进行食物搜索的,因此,这时,各蚂蚁间信息传递物质的参考其实是没有价值的,当有一只蚂蚁找到食物后,该蚂蚁一般就会向着出发地返回,这样,该蚂蚁来回一趟在自己的路径上留下的信息传递物质就相对较多,蚂蚁向着信息传递物质比较高的路径上运动,更多的蚂蚁就会选择找到食物的路径,而蚂蚁有时不一定向着信

息传递物质量高的路径走,可能搜索其它的路径。这样如果搜索到更短的路径后,蚂蚁又会往更短的路径上靠拢,最终多数蚂蚁在最短路径上工作。【基于蚁群算法和遗传算法的机器人路径规划研究】 该算法的特点: (1)自我组织能力,蚂蚁不需要知道整体环境信息,只需要得到自己周围的信息,并且通过信息传递物质来作用于周围的环境,根据其他蚂蚁的信息素来判断自己的路径。 (2)正反馈机制,蚂蚁在运动的过程中,收到其他蚂蚁的信息素影响,对于某路径上信息素越强的路径,其转向该路径的概率就越大,从而更容易使得蚁群寻找到最短的避障路径。 (3)易于与其他算法结合,现实中蚂蚁的工作过程简单,单位蚂蚁的任务也比较单一,因而蚁群算法的规则也比较简单,稳定性好,易于和其他算法结合使得避障路径规划效果更好。 (4)具有并行搜索能力探索过程彼此独立又相互影响,具备并行搜索能力,这样既可以保持解的多样性,又能够加速最优解的发现。 4.1.2 基本蚁群算法的生物仿真模型 a为蚂蚁所在洞穴,food为食物所在区,假设abde为一条路径,eadf为另外一条路径,蚂蚁走过后会留下信息素,5分钟后蚂蚁在两条路径上留下的信息素的量都为3,概率可以认为相同,而30分钟后baed路径上的信息素的量为60,明显大于eadf路径上的信息素的量。最终蚂蚁会完全选择abed这条最短路径,由此可见,

蚁群算法解决旅游线路问题

2011年第八届苏北数学建模联赛 承诺书 我们仔细阅读了第八届苏北数学建模联赛的竞赛规则。 我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与本队以外的任何人(包括指导教师)研究、讨论与赛题有关的问题。 我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。 我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。如有违反竞赛规则的行为,我们愿意承担由此引起的一切后果。 我们的参赛报名号为: 参赛组别(研究生或本科或专科): 本科组 参赛队员(签名) : 队员1:唐文辉 队员2:徐玲 队员3:涂杰 获奖证书邮寄地址:

摘要 本文就旅游线路的优化设计问题,根据旅游者在旅行中的旅游时间,旅游费用,旅游地点,交通状况,住宿等因素的约束,借助图论,蚁群算法,建立最优化数学模型。在最短路路线的基础上,综合考虑交通,用费,时间对问题(2)、(3)、(4)、(5)的影响,给出旅游路线,并用lingo程序对结论进行检验,确保结论的全局最优性。 针对问题(1),首先,由城市经纬度建立城市和城市之间距离的有向图图论模型,在建立图论模型的基础上,建立在城市之间距离矩阵,采用蚁群算法,得到一条最短闭合路线。根据最短路线,查找合适时间的车次,距车站或景点一定范围内的最便宜的宾馆,达到费用最小。结合实际,得出最优路线:徐州->常州->舟山->黄山->庐山->武汉->洛阳->西安->祁县->北京->青岛->徐州,得到行程表和旅游最小费用3551元。 针对问题(2),采用衔接最得当,城市间交通时间和最少的交通方式,由此找出交通方式的时间最优化配置,进而得到最优路线:徐州->舟山->黄山->武汉->九江->常州->洛阳->西安->祁县->青岛->北京->徐州,并得到行程表和最短旅游时间9天。 针对问题(3)在问题(1)的基础上,对每个旅游景区最短停留时间,门票费用加权赋值建立权向量。运用层次分析法,分别求出权重。根据权重,分别求出每个景点综合花销。在2000元旅费的限制下,在最短路线上删除耗时长,费用高的城市。重新查找删去城市后城市间的交通费,得到旅游行程表和最多旅游景点7个,旅行线路:徐州->青岛->北京->祁县->西安->洛阳->武汉->九江。 针对问题(4),在基于问题(2)的结果下,首先,将问题(2)中停留时间(离开时刻与到达时刻之差)较长的城市从路线中删除,直到满足小于5天为止。重新查找删去城市后城市间的交通时间,对路线进行微调后,得到旅游行程表和最多旅游景点7个,分别是:徐州->北京->青岛->祁县->西安->洛阳->武汉->常州->徐州。 针对问题(5),对问题(3)和问题(4)综合考虑,找出其中时间相对长,旅游费用相对大的城市,进行排名并逐个剔除,并做适当调整。当满足条件时,得出行程表和费时5天、总费用1798元的结论,具体路线:徐州->北京->青岛->祁县->西安->洛阳->常州->徐州。 最后,对模型的优缺点进行了分析,提出改进方案。 关键字:TSP问题蚁群lingo 最优 1问题重述 江苏徐州有一位旅游爱好者打算现在的今年的五月一日早上8点之后出发,到全国一些著名景点旅游,最后回到徐州。他预选了十个省市旅游景点,如表1

蚁群算法的基本原理

2.1 蚁群算法的基本原理 蚁群优化算法是模拟蚂蚁觅食的原理,设计出的一种群集智能算法。蚂蚁在觅食过程中能够在其经过的路径上留下一种称之为信息素的物质,并在觅食过程中能够感知这种物质的强度,并指导自己行动方向,它们总是朝着该物质强度高的方向移动,因此大量蚂蚁组成的集体觅食就表现为一种对信息素的正反馈现象。某一条路径越短,路径上经过的蚂蚁越多,其信息素遗留的也就越多,信息素的浓度也就越高,蚂蚁选择这条路径的几率也就越高,由此构成的正反馈过程,从而逐渐的逼近最优路径,找到最优路径。 蚂蚁在觅食过程时,是以信息素作为媒介而间接进行信息交流,当蚂蚁从食物源走到蚁穴,或者从蚁穴走到食物源时,都会在经过的路径上释放信息素,从而形成了一条含有信息素的路径,蚂蚁可以感觉出路径上信息素浓度的大小,并且以较高的概率选择信息素浓度较高的路径。 (a) 蚁穴 1 2 食物源 A B (b) 人工蚂蚁的搜索主要包括三种智能行为: (1)蚂蚁的记忆行为。一只蚂蚁搜索过的路径在下次搜索时就不再被该蚂蚁选择,因此在蚁群算法中建立禁忌表进行模拟。 (2)蚂蚁利用信息素进行相互通信。蚂蚁在所选择的路径上会释放一种信息素的物质,当其他蚂蚁进行路径选择时,会根据路径上的信息素浓度进行选择,这样信息素就成为蚂蚁之间进行通信的媒介。 (3)蚂蚁的集群活动。通过一只蚂蚁的运动很难达到事物源,但整个蚁群进行搜索就完全不同。当某些路径上通过的蚂蚁越来越多时,路径上留下的信息素数量也就越多,导致信息素强度增大,蚂蚁选择该路径的概率随之增加,从而进一步增加该路径的信息素强度,而通过的蚂蚁比较少的路径上的信息素会随着时间的推移而挥发,从而变得越来越少。3.3.1蚂蚁系统 蚂蚁系统是最早的蚁群算法。其搜索过程大致如下: 在初始时刻,m 只蚂蚁随机放置于城市中, 各条路径上的信息素初始值相等,设为:0(0)ij ττ=为信息素初始值,可设0m m L τ=,m L 是由最近邻启发式方法构 造的路径长度。其次,蚂蚁(1,2,)k k m = ,按照随机比例规则选择下一步要转

相关文档
最新文档