基于云计算环境的蚁群优化计算资源分配算法

基于云计算环境的蚁群优化计算资源分配算法
基于云计算环境的蚁群优化计算资源分配算法

基于云计算环境的蚁群优化计算资源分配算法

华夏渝,郑骏,胡文心

(华东师范大学计算中心,上海200241)

摘要:针对云计算的性质,提出一种基于蚁群优化(Ant Colony Optimization )的计算资源分配算法。分配计算资源时,首先预测潜在可用节点的计算质量,然后根据云计算环境的特点,通过分析诸如带宽占用、线路质量、响应时间等因素对分配的影响,利用蚁群优化得到一组最优的计算资源。通过在Gridsim环境下的仿真分析和比较,这种算法能够在满足云计算环境要求的前提下,获得比其他一些针对网格的分配算法更短的响应时间和更好地运行质量,因而更加适合于云环境。

关键词:云计算;网格;蚁群;资源分配

中图分类号:TP316 文献标识码:A

Ant Colony Optimization Algorithm for Computing Resource Allocation Based On

Cloud Computing Environment

Hua xia-yu, Zheng jun, Hu wen-xin

(Computer Center Institute, East China Normal University Shanghai, 200241) Abstract:A new allocation algorithm based on Ant Colony Optimization (ACO) was established to satisfy the property of Cloud Computing. When start, this algorithm first prognosticated the capability of the potential available resource node, and then analyzed some factors such as network qualities or response times to acquire a set of optimal compute resources. This algorithm met the needs of cloud computing more than others for Grid environment with shorter response time and better performance, which were proved by the simulation results in the Gridsim environment.

Key words: Cloud Computing; Grid; Ant Colony Optimization; resource allocation

0引言

云计算(Cloud Computing),是指通过互联网连接的超级计算模式,包含了分布式处理(Distributed Computing)、并行处理(Parallel Computing)和网格计算(Grid Computing)的相关技术,或者说是这些计算机科学概念的商业实现。

云计算一种新型的共享基础架构,可以将巨大的系统池连接在一起,以运营商和客户的方式,通过互联网为用户提供各种存储和计算资源。在云计算环境中,用户将自己的个人电脑,PDA或移动电话等其他设备上的大量信息和处理器资源集中在一起,协同工作。这是一个大规模的分布式计算模式,该模式由运营商的经济规模决定,并且是抽象的,虚拟化的以及规模动态可变的。其主要内容为受管理的计算能力,存储,平台和服务。这些内容通过互联网,按需分配给外部用户,其重要意义在于将计算能力作为一种商品在互联网上进行流通。

云计算的主要优势:快速地降低硬件成本和提升计算能力以及存储容量,用户可以以极低的成本投入获得极高的计算能力,而不用再投资购买昂贵的硬件设备,负担频繁的保养与升级

计算资源分配是云计算技术的一个重要组成部分,其效率直接影响整个云计算环境的工作性能。由于云计算有很多独特的特性,使得原有的针对网格计算的资源分配和调度算法已无法在该环境中有效的工作。本文提出的蚁群优化分配算法,综合考虑了云计算的一系列特点,以期在这种环境中能够高效地为用户作业分配合适的计算资源。

1 问题描述

云计算由网格计算演变而成,并将网格计算作为其骨干和基本结构。可以说,云计算是网格计算的一种更高级的形式。但是,这两者之间在现实中存在着巨大的区别,具体可以参见文献[1]。

云计算提供了更多抽象的资源和服务。这些资源和服务可划分为三个类别,分别是软件即服务(Software as a Service),平台即服务(Platform as a Service)和设备即服务(Infrastructure as a Service) [2,3]。

在软件即服务(SaaS)中,用户会得到一个特殊用途的客户端,该客户端允许用户通过互联网进行远程访问,并且基于使用情况来收取费用。

在平台即服务(PaaS)中,运营商提供一个高等级的综合环境来生成,测试以及部署用户定义的应用。这种综合环境是一种对开发环境抽象地封装和对有效服务负载地封装。

在设备即服务(IaaS)中,运营商参照和用户达成的服务品质协议(Service-Level Agreement),通过提供硬件,软件和设备(主要是在统一资源层,不过同样也能在组织层),来提供一个完整的软件应用环境,并以资源使用量来收费。在该级别的服务上,根据云计算环境的弹性特点,提供设备的规模会根据用户应用对资源的需求量来动态地增大或者缩小,比如用户需要用T 个进程,云计算环境就分配给该用户R 的计算资源,如果用户将进程数增加到2T ,则用户的计算资源占有量将动态地扩展到2R 。本文论述的计算资源分配策略,也充分考虑了云计算的这一特性。

在设备即服务这一级别中,用户的所有数据和配置被封装成为用户镜像[2]

,分散存储在云环境的各个存储节点上。由于可运营性的约束,云计算环境的网络可用带宽远比网格环境小得多。比如,一个传统的企业级计算设施一般都拥有10G 的超高速以太网,高性能计算资源将通过该网络直接和存储区域网络(Storage Area Network )相连。而在云

计算环境中,比如Amazon 公司的EC2(Elastic Compute Cloud)[4]

系统只提供了250MB 的可用带宽,并且所有的虚拟服

务器都通过单一的一条250MB 连接来访问其存储系统S3(Simple Storage Service)[5]

。所以,在云计算环境中,局域的带宽需要被充分地利用,一个行之有效的方法便是尽量为存储节点资源分配本地的计算资源。对于本文论述的算法来说,就是尽量为存有用户镜像的本地存储节点分配本地或邻近带宽需求少的计算节点。

云计算环境的运营目标之一是将计算能力作为服务来供用户购买。企业与个人用户无需再投入昂贵的硬件购置成本,只需要通过互联网来购买租赁计算力,把自己的个人计算机当做接入口,一切都通过互联网连接到云计算环境中,完成对计算能力的获取。但是,这也预示着云计算的规模会非常巨大。同时,区别于网格的独占式的资源分配模式,整个云域中的资源将会被所有的用户同时共享,以保证对延迟敏感的作业在云上能够很好的运行。这意味着在云计算中用户的作业将被划分为进程甚至是线程的粒度级别。所以,云计算对计算资源分配算法有着苛刻的要求。本文重点论述的计算资源分配算法,就是要通过对存储节点分配最合适的计算资源,来最大程度的提高云计算环境在提高计算资源上/方面的有效利用率。

2算法描述

基于上述云计算环境的特点,我们提出以下资源分配算法。 2.1计算资源的分配流程

参照Map/Reduce 提出的云计算框架[6,7]

,云环境中的每个单元由一个单独的主作业调度节点(master JobTracker)和每个节点集群中的一个从任务分配节点(slave TaskTracker)共同组成。主节点负责调度构成一个作业的所有任务,这些任务的数据资源分布在不同从节点的存储资源上的用户镜像分片中,主节点监控它们的执行,以及重新执行已经失败的任务。而从节点仅负责执行由主节点指派的任务。在接到主节点指派的任务之后,从节点开始为其下属的存储节点寻找合适的计算节点。首先,该从节点开始检测自身的计算资源余量,如果其剩余计算资源足以满足用户提交作业的用量,则优先分配自身的计算资源,如果资源已经耗尽或者已不足以满足承诺给用户的最小计算资源量,则开始搜寻云环境中合适的其他计算资源。本文介绍的蚁群分配算法将在这一环节中实现。搜索在一定范围内进行,目的是为了减小所带来的网络开销。如果仍然没有合适资源,则从节点报请主作业调度节点移走该节点集群中的用户数据镜像分片。

2.2计算资源优劣度评判条件

将slave 节点域看作是一个无向图G(V,E),其中V 是区域Area 中所有slave 节点的集合,E 是连接各slave 节点的网路集合。寻找合适的计算节点,也就是在E 中寻找一条最优的路径e ∈Area ,其度量标准可以考虑如下几个因素:

①预计执行时间:time_cost(e), 指路径e 尽头的计算资源处理该作业预计的耗费时间. ②网路带宽:bandwidth(e),指路径e 所提供的网络最大带宽。 ③网络延迟:delay(e),指路径e 产生的最大网络延迟。 设资源选择的约束函数为:

Atime_cost(e)+Cdelay(e)

res(e)=

Bbandwith(e)

(1)

time_cost(e)EL delay(e)

??????

(2)

则选择资源和路径的过程就是寻找满足限制条件(2)的尽量小的res(e)的路径和资源的过程,其中A ,B ,C 为三个约束条件的权重;TL ,EL 和DL 为其边界限制条件。不同的云计算环境可能会有不同的取值。

2.3对各个计算资源完成本次作业执行速度的预测

由于在整个云环境中,异构是其非常重要的一个特点。也就是说,每个节点的结构,软硬件环境,容量,吞吐量等性能都会不同。同时,网络的情况也比较复杂,任意线路在任意时候的负载将不可预知。由于云计算环境中的网络带宽远比传统的网格环境带宽低,网络的情况也会有不可预期的大幅度变化。因此,对节点完成工作所执行速度的计算将会非常困难。

但是,在云计算中,把任务分配给效率最高,开销最少的计算资源将会极大地提高整体的性能。所以,在分配中需要对潜在的可分配节点进行执行速度预估。

针对云计算异构和变化的特点,我们通过参考文献[8]

中的预测算法,设计了一个通过积累历史值来推算下一任务执行速度的预测模型。该模型对每一个节点完成下一个工作的效率时间进行单独的预测,希望无论计算资源处在怎样的负载程度,都能凭借这个模型得到相对精确的预测。由于每个计算节点当前的负载程度已知,并且上一次完成作业时的平均负载程度也能够查阅,所以,我们用如下模型来预测执行速度:

()k+1

k k

a a a k+1m m m k

a EV (k+1)=

(1-ρ)EV (k)+ρRV (k)a (3) 其中k a

m EV (k)是指第m 号计算资源第k 次预测执行速度,单位可以为MIPS ,k a 为第k 次预测时的系统负载程度,

k

a m RV (k)指第m 号计算第k 次实际的执行速度,ρ是一个调节参数,用来在不同云环境中调节经验值和预测值的比重,

以使该模型的预测达到最优。在每一个计算节点上,每完成一个作业,该节点自身将会记录本次作业完成的实际速度,并结合上次的预测结果来推算下次作业可能的执行速度。同时,系统负载a 被一并记录,这是一个重要的参数,一般可以有几个量化指标,比如CPU 的实际使用率,作业数或者线程数等。

2.4使用蚁群算法寻找最合适的计算资源

由于在云计算环境中,资源的具体情况不可知,且没有一个固定的拓扑结构,所以整个云环境的结构和资源分布及其实际情况不可预知。在这种情况下,计算资源的位置和质量对数据节点来说是不可知的。

利用蚁群算法,能够在未知的网络拓扑中查找出计算资源,并选择最合适的一个或者几个资源分配给用户作业,直到满足用户需求。当查找开始时,由slave 节点发出查询消息,这些消息扮演着蚁群算法中蚂蚁的角色,所有的蚂蚁都遵从信息素多的节点概率大,信息素少的节点概率少的原则选择下一跳的节点,并在经过的路径节点上留下信息素。

2.4.1对下一跳选择的设定

在初始状态下,网格结构中的每一条链路信息素含量相同。

设:d 时时刻,在i 节点的蚂蚁k 遵循下式计算下一跳各个节点的可能性:

()()d a

a γin n 0n avids(k)βin τd (EV (d))if q

??????????????????由式计算相邻节点中选概率并选择 (4)

()()()()d d a a γij j β

ij k

a a γij in n n avid(k)in (τd )(EV (d))(Lq d )if j avid(k),p =(τd )(EV (d))(Lq d )else,0

?????????????????????????????

??∑ (5)

其中,()ij τd 为d 时刻,前向蚂蚁在i 节点上观察到j 节点的信息素强度,k

ij p 为k 号蚂蚁在i 点选择j 点的概率,

avid(k)为蚂蚁k 的回避列表, ij ij ij Cdelay(e )Lq Bbandwith(e )

=

为从i 节点到j 节点的线路质量, α、β和γ为信息素、线路

质量和计算能力预测值的相对权重。为防止结果过快的收敛在局部最优解,设定随机系数q ∈[0,1],常数

0q ∈[0,1],

这两个值用来控制蚂蚁直接选择信息素-线路质量比最大邻节点的概率。

2.4.2信息素的更新

为了及时反映出信息素的变化,我们使用局部更新策略来修改节点上的信息素强度。所有信息素不为零的slave 节点随时间更新如下:

ij ij τ(t+1)=ρ×τ(t) (6)

如果该节点在本次更新等待的时间段内产生或收到后向蚂蚁,则依据以下公式更新:

ij ij ij

1

τ(t+1)=ρ×

τ(t)+(1-ρ)D res(e )

∑ (7)

其中,常量ρ为信息素的残留系数,ij τ(t+1)指在t+1时刻从i 节点上看到j 节点上的信息素强度,当该值小于一个小数值m 时,ij τ归零。为使蚂蚁能较快收敛到有合适资源的路径上去,对含有合适资源的路径上的节点,根据其资源约束函数res(e)对其奖励性的扩大其信息素强度,D 为效果扩大系数。

2.4.3两种蚂蚁的数据结构

参考文献[9]

中对蚂蚁数据结构的设置,设计前向蚂蚁的结构如表1 表1前向蚂蚁数据结构

Tab.1 forward ant structure

蚂蚁标识

限制条件

带宽集合

抖动集合

延迟集合

路径节点集合

回避节点集合

作业大小

源节点

跳数(跳)

生命值(点)

AntI D

res(e ) s.t

Bs

Ss

Ds

Ns

Avid

I

D N

Hops

Hp

后向蚂蚁结构如表2

表2后向蚂蚁数据结构

Tab.2 backward ant structure

标识 实际带宽

实际抖动

实际延迟 路径节点集合 预计计算能力 源节点

A ntID

B S

Ds

Ns

EV

F

N

2.5算法流程

(1) 在存储资源所在从节点产生一个前向蚂蚁。 (2) 该前向蚂蚁通过公式(4)(5)选择下一跳的节点。

(3) 每当一个前向蚂蚁

f

A 进入一个slave 节点

j

N 时,

j

N 将自己设置进入该蚂蚁的回避节点集,并通过前向蚂蚁

中的限制条件方程和公式(3),计算自己是否为有效节点。如果该slave 节点满足限制条件,则标记为有效节点,修改相

应的信息素强度,并产生一个后向蚂蚁

b A 。b A 携带前向蚂蚁f A 所搜集的线路和该计算资源的信息延原路返回,其路

径节点集的最后一个节点即为本次搜寻找到的有效接点。如果该slave 节点不是有效节点,则该前向蚂蚁继续步骤2。为了防止算法过快收敛,节点j

N 可以设置一个频率阀值f,如果某条路径上的前向蚂蚁访问频率超过该阀值,将以一定

概率p 来产生后向蚂蚁。

(4) 节点

j

N 将修订

f

A 中限制条件这一项,将带宽等网络因素减去此次预分配占用的量。如果剩余的网络情况已不足以满足作业条件,则让

f A 在本节点内终止,否则让

f

A 继续前进和搜寻。

(5) 每一个信息素不为零的节点,根据公式(6),(7)按统一时间间隔更新自己的信息素强度。

(6) 当前向蚂蚁生命值Hp<跳数值Hops 或者已无法继续走的时候(比如邻节点全在回避节点集或者slave 节点未与第二个节点相连时),该蚂蚁自动消亡。其中,蚂蚁的生命值Hp 其实控制着搜寻区域。

(7) 后向节点在回传时沿途搜集带宽情况。源节点通过后向蚂蚁传递的信息制作有效资源集,并按有效度排序。 (8) 当找到的计算资源还不足以满足用户作业的需求时,转到第一步。否则停止算法,按有效资源集将作业分配到相关计算资源节点,并尽量为高有效度的节点分配多的作业,以减低网络的负载。

(9) 如果算法停止时,所有计算资源不足以满足约定的服务等级协议(SLA)中的用户要求,则考虑转移该存储节点的用户镜像分片至其他存储节点。

图1.算法流程图

Fig. 1 Flow chat of this algorithm

图1描述了本算法的主要流程。由于第九步是在主要算法流程结束后开始,所以图1未给出具体的描述。

3.算法仿真

由于云环境的一个局部可以被看作是一个特殊的网格,所以我们用Gridsim 来模拟在一个云计算的局部域,以检查本算法在这种特殊的网格环境中的运行情况。其中,我们采用退火算法和遗传算法作为比较。通过Gridsim 中的GridResource 类和一系列的辅助类,我们模拟了云计算的计算和网络资源,以期构建比较拟真的云环境局部。通过设

定GridInformationServices类来管理资源。在外部环境相同,运用(1)(2)两式来判断资源质量的情况下,我们通过在GridBroker中构造不同的调度方法,来比较这几种算法的性能,并将每种情况运行10次取平均值来减低外部因素的影响。其中,对算法的设定如表3。

表3 几种算法的主要参数

基于表3的设定,三种算法搜寻20%可用节点的仿真结果如图2,搜寻5%可用节点的仿真结果如图3:图2 仿真结果1 图3 仿真结果2

Fig. 2 Simulation result 1

Fig.3 Simulation result 2

现改变三种算法的参数,再次执行搜寻5%可用节点的仿真。三种算法的参数设定如表4。由于缩小了搜寻规模和搜索步长,将不再设定停止限制,三种算法只在找到所有的资源后才停止。比如,蚁群算法将不再设定产生蚂蚁数上限。

表4 几种算法的主要参数(2)

基于表4的设定,模拟搜索5%可用节点的仿真结果如图4

图4 仿真结果3

Fig.4 Simulation result 3

三组结果表明,尽管三种算法的设置变化了,但是在可用节点比率减小或者搜寻规模扩大的情况下,本算法将更具优势。

在1000个节点中模拟在一定比例的有效节点中搜寻50%个节点分配给用户作业。比如有效节点比例为20%,则其数量200个,只要搜寻到100个有效节点即认为分配成功。图5为模拟结果的基于表3设定的三种算法模拟结果的连续曲线图。

图5 仿真结果曲线图

Fig.5 Graph of simulation result

在图5中,横坐标为有效节点的比率,纵坐标为三种算法为有效节点成功分配作业的耗时。从结果来看,本算法在节点较多,有效资源较少的情况下工作效率明显比另外两种算法高,而这种情况正是云环境所具有的特点。所以本算法在云计算环境中更有优势。

4 结论

由于可运营性对成本的要求,云计算对网络环境的要求要低于网格环境,而其提供的诸如Saas,Paas等服务内容却比网格对基础设施的要求更高,所以一个好的资源调度算法尤为重要。文中介绍的蚁群资源分配算法能够针对云环

境大规模性、共享性和动态性等特点,动态地为用户的作业分片搜寻并分配计算资源。从仿真结果可以看出,该算法能够有效地在云计算环境中完成计算资源搜索与分配的工作。

参考文献

[1] Giacomo V. Mc Evoy and Bruno https://www.360docs.net/doc/3313875534.html,ing Clouds to address Grid Limitations[C]//MGC’08. Belgium:Leuven

Press. Dec 1-5,2008

[2] Ian Foster, Yong Zhao, Ioan Raicu and Shiyong Lu: Cloud Computing and Grid Computing 360-Degree

Compared[C]//Grid Computing Environments Workshop.IEEE.12-16 Nov. 2008

[3] Huan Liu and Dan Orban, Accenture Technology Labs .GridBatch: Cloud Computing for Large-Scale Data-Intensive

Batch[C].//CCGRID,2008.308th IEEE International Symposium on (2008). Shanghai:[s.n.], 2008.

[4] Amazon Elastic Compute Cloud (Amazon EC2), https://www.360docs.net/doc/3313875534.html,/ec2, 2008.

[5] Amazon Simple Storage Service (Amazon S3). 2008 Sep. https://www.360docs.net/doc/3313875534.html,/s3.

[6] Chin.H Yang, A. Dasdan, R. -L. Hsiao, and D. S. Parker. Map-reduce-merge.Simplified relational data processing on

large clusters[C]//International conference on management of data.CA, USA: ACM SIGMOD, 2007.

[7] S.Ghemawat, H.Gobloff, and S.-T. Leung. The Google file system[C]. //19th ACM Symposiun on Operating System

2003.New York: Association for Computing Machinery.2009, ISBN:978-1-60558-522-2

[8]张晓杰,孟庆春,曲卫芬。基于蚁群优化算法的服务网格的作业调度[J]。计算机工程,2006 /32 /08 。

Zhang Xiaojie, Meng Qingchun, Qu weifen. A Job Scheduling for Service Grid Using Ant Colony Algorithm .

COMPUTER ENGINEERING, 2006 /32 /08 .

[9] 潘达儒,袁艳波。一种基于AntNet改进的QoS路由算法。小型微型计算机系统,2006 /27 /07。

Pan Daru, Yuan yanbo. Improved QoS Routing Algorithm Based on the AntNet . MINI-MICRO SYSTEMS .

2006 /27 /07

matlab 蚁群算法 机器人路径优化问题

用ACO 算法求解机器人路径优化问题 4.1 问题描述 移动机器人路径规划是机器人学的一个重要研究领域。它要求机器人依据某个或某些优化原则(如最小能量消耗,最短行走路线,最短行走时间等),在其工作空间中找到一条从起始状态到目标状态的能避开障碍物的最优路径。机器人路径规划问题可以建模为一个有约束的优化问题,都要完成路径规划、定位和避障等任务。 4.2 算法理论 蚁群算法(Ant Colony Algorithm,ACA),最初是由意大利学者Dorigo M. 博士于1991 年首次提出,其本质是一个复杂的智能系统,且具有较强的鲁棒性,优良的分布式计算机制等优点。该算法经过十多年的发展,已被广大的科学研究人员应用于各种问题的研究,如旅行商问题,二次规划问题,生产调度问题等。但是算法本身性能的评价等算法理论研究方面进展较慢。 Dorigo 提出了精英蚁群模型(EAS),在这一模型中信息素更新按照得到当前最优解的蚂蚁所构造的解来进行,但这样的策略往往使进化变得缓慢,并不能取得较好的效果。次年Dorigo 博士在文献[30]中给出改进模型(ACS),文中 改进了转移概率模型,并且应用了全局搜索与局部搜索策略,来得进行深度搜索。 Stützle 与Hoos给出了最大-最小蚂蚁系统(MAX-MINAS),所谓最大-最小即是为信息素设定上限与下限,设定上限避免搜索陷入局部最优,设定下限鼓励深度搜索。 蚂蚁作为一个生物个体其自身的能力是十分有限的,比如蚂蚁个体是没有视觉的,蚂蚁自身体积又是那么渺小,但是由这些能力有限的蚂蚁组成的蚁群却可以做出超越个体蚂蚁能力的超常行为。蚂蚁没有视觉却可以寻觅食物,蚂蚁体积渺小而蚁群却可以搬运比它们个体大十倍甚至百倍的昆虫。这些都说明蚂蚁群体内部的某种机制使得它们具有了群体智能,可以做到蚂蚁个体无法实现的事情。经过生物学家的长时间观察发现,蚂蚁是通过分泌于空间中的信息素进行信息交流,进而实现群体行为的。 下面简要介绍蚁群通过信息素的交流找到最短路径的简化实例。如图 2-1 所示,AE 之间有

基于蚁群算法的路径规划

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)自组织性:系统学中自组织性就是系统的组织指令是来自系统的内部。同样的蚁

蚁群算法的基本原理

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 = ,按照随机比例规则选择下一步要转

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

蚁群算法在车辆路径问题中的应用 摘要 蚁群算法(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问题的蚂蚁算法中,每只蚂蚁是一个独立的用 于构造路线的过程,若干蚂蚁过程之间通过信息素值来交换信

基本蚁群优化算法及其改进毕业设计

摘要 自意大利学者M. Dorigo于1991年提出蚁群算法后,该算法引起了学者们的极大关注,在短短十多年的时间里,已在组合优化、网络路由、函数优化、数据挖掘、机器人路径规划等领域获得了广泛应用,并取得了较好的效果。本文首先讨论了该算法的基本原理,接着介绍了旅行商问题,然后对蚁群算法及其二种改进算法进行了分析,并通过计算机仿真来说明蚁群算法基本原理,然后分析了聚类算法原理和蚁群聚类算法的数学模型,通过调整传统的蚁群算法构建了求解聚类问题的蚁群聚类算法。最后,本文还研究了一种依赖信息素解决聚类问题的蚁群聚类算法,并把此蚁群聚类算法应用到对人工数据进行分类,还利用该算法对2005年中国24所高校综合实力进行分类,得到的分类结果与实际情况相符,说明了蚁群算法在聚类分析中能够收到较为理想的结果。 【关键词】蚁群算法;计算机仿真;聚类;蚁群聚类

Study on Ant Colony Algorithm and its Application in Clustering Abstract: As the ant colony algorithm was proposed by M. Dorigo in 1991,it bringed a extremely large attention of scholars, in past short more than ten years, optimized, the network route, the function in the combination optimizes, domains and so on data mining, robot way plan has obtained the widespread application, and has obtained the good effect.This acticle discussed the basic principle of it at first, then introduced the TSP,this acticle also analysed the ant colony algorithm and its improved algorithm, and explanated it by the computer simulates, then it analysed the clustering algorithm and the ant clustering algorithm, builded the ant clustering algorith to solution the clustering by the traditioned ant algorithm. At last, this article also proposed the ant clustering algorith to soluted the clustering dependent on pheromon. Carry on the classification to the artificial data using this ant clustering algorithm; Use this algorithm to carry on the classification of the synthesize strength of the 2005 Chinese 24 universities; we can obtain the classified result which matches to the actual situation case. In the next work, we also should do the different cluster algorithm respective good and bad points as well as the classified performance aspect the comparison research; distinguish the different performance of different algorithm in the analysis when the dates are different. Key words: Ant colony algorithm; Computer simulation; clustering; Ant clustering 目录

蚁群算法最优路径

机器人的路径规划---蚁群算法 1.蚁群算法 众所周知,蚁群算法是优化领域中新出现并逐渐引起重视的一种仿生进化算法它是群体智能的典型实现,是一种基于种群寻优的启发式搜索算法。自从M.Dorigo等意大利学者在1991年首先提出蚁群算法(Ant Colony System,ACS)以来,这种新型的分布式智能模拟算法已逐渐引起人们的注意并得到广泛的使用。 蚁群算法的特点主要表现在以下五个方面: (1)蚂蚁群体行为表现出正反馈过程。蚁群在寻优的过程中会释放一定量的信息素,蚁群的规模越大,释放的信息素的量也就越大,而寻优路径上存在的信息素浓度越高,就会吸引更多的蚂蚁,形成一种正反馈机制,然后通过反馈机制的调整,可对系统中的较优解起到一个自增强的作用,从而使问题的解向着全局最优的方向演变,最终能有效地获得全局相对较优解。 (2)蚁群算法是一种本质并行的算法。个体之间不断进行信息交流和传递.有利于最优解的发现,并在很大程度上减少了陷于局部最优的可能。 (3)蚁群算法易于和其他方法结合。蚁族算法通过和其他算法的结合,能够扬长避短,提高算法的性能。 (4) 蚁群算法提供的解具有全局性的特点。一群算法是一种群只能算法,每只蚂蚁巡游的过程相对独立,他们会在自己的活动空间进行搜索,蚂蚁在寻优过程中通过释放信息素,相互影响,互相通信,保证了解的全局性。 (5) 蚁群算法具有鲁棒性。蚁族算法的数学模型易于理解,可以广泛使用在很多复杂的优化问题中,蚁族算法区别于传统优化算法的一个特点在于该算法不依赖于初始点的选择,受初始点的影响相对较小,并且在整个算法过程中会自适应的调整寻优路径。 由此可见,在机器人寻找最优路径的过程中,采用蚁群算法实现路径的规划问题,可以高效,准确的找到最优的路径。 2.移动机器人的路径规划 2.1环境信息处理 假设机器人运行环境为边长分别为x和Y的矩形区域,在矩形区域内分布有n

采用序优化的改进蚁群算法

第44卷 第2期2010年2月 西 安 交 通 大 学 学 报 J OU RNAL O F XI ′AN J IAO TON G UN IV ERSIT Y Vol.44 №2Feb.2010 收稿日期:2009Ο06Ο20. 作者简介:张兆军(1981-),男,博士生;冯祖仁(联系人),男,教授,博士生导师. 基金项目:国家自然科学基金资助项目(60875043);国家重点基础研究发展规划资助项目(2007CB311006). 采用序优化的改进蚁群算法 张兆军1,2,冯祖仁1,2,任志刚1,2 (1.西安交通大学系统工程研究所,710049,西安;2.西安交通大学机械制造 系统工程国家重点实验室,710049,西安) 摘要:为了评价蚁群算法在有限时间内所得优解的质量,基于序优化方法提出了一种改进的蚁群算法:使用盲目挑选规则选择初始解,并对信息素进行相应的初始化;确定得到满足要求的优解所需要的迭代次数,将其作为算法的终止条件;为了更好地利用每次迭代中的优解,在算法开始阶段使用前l 个迭代优解更新信息素,以增强探索能力;在算法结束阶段采用当前迭代最优解更新信息素,以加快收敛速度.改进算法在保证收敛的前提下,并没有增加算法的时间复杂度.对旅行商问题进行的仿真实验表明,改进算法在解的质量和收敛速度方面优于最大Ο最小蚂蚁系统.关键词:蚁群算法;序优化;盲目挑选;旅行商问题中图分类号:TP18 文献标志码:A 文章编号:0253Ο987X (2010)02Ο0015Ο05 Novel Ant Colony Optimization Algorithm B ased on Order Optimization ZHAN G Zhaojun 1,2,FEN G Zuren 1,2,REN Zhigang 1,2 (1.Systems Engineering Institute ,Xi ′an Jiaotong University ,Xi ′an 710049,China ;2.State Key Laboratory for Manufacturing Systems Engineering ,Xi ′an Jiaotong University ,Xi ′an 710049,China ) Abstract :To evaluate t he quality of optimal solutions obtained by t he ant colony optimization (ACO )algorit hm in limited time ,an imp roved ACO algorit hm is presented on t he basis of t he or 2dinal optimization.An initial solution is selected using t he blind picking rule ,and t he p heromone is initialized correspondingly.The number of iterations to achieve t he optimal solution meeting t he demand is t hen determined and is used as t he termination condition of t he algorit hm.To make better use of t he solutions obtained at each iteration ,t he first l solutions are employed to enhance search capability at t he beginning p hase of t he algorit hm.While t he current optimal solution is used at t he end p hase of t he algorit hm to accelerate t he convergence.The time complexity of t he novel algorit hm is not increased under t he condition t hat ensures t he convergence.Simulation re 2sult s on t he traveling salesman p roblem show t hat t he p roposed algorit hm is superior to t he max 2min ant system in bot h t he quality of solutions and t he speed of convergence. K eyw ords :ant colony optimization ;ordinal optimization ;blind picking ;traveling salesman problem 蚁群算法[1]是一种仿生随机优化算法,已被成功应用于旅行商问题(TSP )、二次分配、网络路由、属性约简[2]等问题的求解,具有鲁棒性、正反馈、分布式计算和易与其他算法结合等优点.然而,现有方法也存在一些不足,如初期搜索时间偏长,容易陷入局部最优解等.为此,学者们提出了很多改进算 法,例如使用局部更新策略和全局更新策略的蚁群系统[3],限制信息素的上、下界并使用最优解更新策略的最大2最小蚂蚁系统(max 2min ant system ,MMAS )[4]等.此外,文献[5]受神经网络和遗传算法的启发,提出了一种二进制蚁群进化算法;文献[6]将分散搜索的思想融入蚁群算法,提高了算法的

matlab_蚁群算法_机器人路径优化问题

用ACO算法求解机器人路径优化问题 4.1问题描述 移动机器人路径规划是机器人学的一个重要研究领域。它要求机器人依据某个或某些优化原则(如最小能量消耗,最短行走路线,最短行走时间等),在其工作空间中找到一条从起始状态到目标状态的能避开障碍物的最优路径。机器人路径规划问题可以建模为一个有约束的优化问题,都要完成路径规划、定位和避障等任务。 4.2算法理论 蚁群算法(Ant ColonyAlgorithm,ACA),最初是由意大利学者Dorigo M. 博士于1991 年首次提出,其本质是一个复杂的智能系统,且具有较强的鲁棒性,优良的分布式计算机制等优点。该算法经过十多年的发展,已被广大的科学研究人员应用于各种问题的研究,如旅行商问题,二次规划问题,生产调度问题等。但是算法本身性能的评价等算法理论研究方面进展较慢。 Dorigo提出了精英蚁群模型(EAS),在这一模型中信息素更新按照得到当前最优解的蚂蚁所构造的解来进行,但这样的策略往往使进化变得缓慢,并不能取得较好的效果。次年Dorigo博士在文献[30]中给出改进模型(ACS),文中 改进了转移概率模型,并且应用了全局搜索与局部搜索策略,来得进行深度搜索。 Stützle 与Hoos给出了最大-最小蚂蚁系统(MAX-MINAS),所谓最大-最小即是为信息素设定上限与下限,设定上限避免搜索陷入局部最优,设定下限鼓励深度搜索。 蚂蚁作为一个生物个体其自身的能力是十分有限的,比如蚂蚁个体是没有视觉的,蚂蚁自身体积又是那么渺小,但是由这些能力有限的蚂蚁组成的蚁群却可以做出超越个体蚂蚁能力的超常行为。蚂蚁没有视觉却可以寻觅食物,蚂蚁体积渺小而蚁群却可以搬运比它们个体大十倍甚至百倍的昆虫。这些都说明蚂蚁群体内部的某种机制使得它们具有了群体智能,可以做到蚂蚁个体无法实现的事情。经过生物学家的长时间观察发现,蚂蚁是通过分泌于空间中的信息素进行信息交流,进而实现群体行为的。 下面简要介绍蚁群通过信息素的交流找到最短路径的简化实例。如图 2-1 所示,AE 之间有

蚁群算法在路径优化中的应用3改

蚁群算法在路径优化中的应用 作者:孙阳阳指导老师:刘冲 摘要针对蚁群算法在路径中的优化问题,本文首先介绍了蚁群算法的概念及其原理,利用数学 形式建立算法模型.根据蚁群算法计算的基本步骤来分析蚁群算法在交通路径优化、TSP问题等3 个方面的应用,由实验结果可知蚁群算法在路径优化中具有很好的可行性和优越性,能起到很 好的效果. 关键词蚁群算法算法模型算法步骤分析应用 1 引言 路径规划是指在具有障碍物的环境下,在符合某种评价条件中,寻找到一条从起始地点到目标地点最优的路径.蚁群算法是近几年优化领域中新出现的一种启发式仿生类并行智能进化系统,计算法采用分布式并行计算和正反馈机制,且易于其它算法结合,目前已有许多关于其在路径规划方面的文献. 建立蚁群算法模型]2][1[,解决城市交通路径优化问题,实验结果表面在搜索效率和搜索最优解的能力两方面都有很大的提高.但是传统蚁群算法易陷入局部最优解和收敛速度较 4[ ,将传统蚁群算法进行改进,例如与栅格法相结合、慢,为此在机器人路径规划的应用中]7 在几何模型下建立模型等.提高了算法的有效性和鲁棒性,解决了蚁群过早陷入局部最优解的问题,扩大了蚂蚁的搜索空间,增强了蚁群算法在机器人路径规划中的适应能力. 本文通过对蚁群算法的研究以及解决几实际路径规划问题,得出了蚁群算法是有其可行性和优越性的,说明了该算法可以在众多优化领域中得到广泛的应用. 2 蚁群算法 蚁群算法(ant colony optimization),又称蚂蚁算法,简称ACO.是由Dorigom、Maniezzov、Colorni等人在1992年所发表的论文提出的,其灵感来源于蚂蚁在寻找食物中发现路径的行为.它是一种模拟进化算法,通过人工模拟蚂蚁觅食过程,即个体间的信息交流与合作不断排除不适合的路途,最终寻找到从蚁穴到食物源的最短路径. 2.1 蚁群算法的基本原理 蚂蚁在搜寻食物过程中总能找到一条从蚁穴到到食物的最优路径,这是因为蚂蚁在搜寻路径上释放一种特殊的信息素.当它们遇到一个还没有被走过的路口时,会随机的选择一条路径,而选择的路径与信息素的浓度有关,同时在该路径上它们也会释放自己的信息素.路径越短,信息素浓度越大;反正路径越长信息素堆积的越少.则过一段时间蚂蚁选择信息素浓度高的路径的概率越来越大,而其它路径随着蚂蚁越来越少的选择信息素浓度逐渐减小,这一就形成了一个正反馈现象,最终指导整个蚁群找到从蚁穴到食物源的最短路径. 2.2 蚁群算法的数学模型 2.2.1 问题的描述

蚁群优化算法

蚁群优化算法
目录 [隐藏]
? ?
比较
1 2
蚁群算法的提出: 人工蚂蚁与真实蚂蚁的异同
o o ? ? ? ? ?
3 4 5 6 7
2.1 2.2
相同点比较 不同点比较
蚁群算法的流程图 基本蚁群算法的实现步骤 蚁群算法的 matlab 源程序 蚁群算法仿真结果 版权声明
[编辑]蚁群算法的提出:
人类认识事物的能力来源于与自然界的相互作用,自然界一直是人类创造力 的源泉。 自然界有许多自适应的优化现象不断地给人以启示,生物和自然中的生 态系 统可以利用自身的演化来让许多在人类看来高度复杂的优化问题得到几乎完美 的解决。近些年来,一些与经典的数学问题思想不同的,试图通过模拟自然生态 系统 来求解复杂优化问题的仿生学算法相继出现,如蚁群算法、遗传算法、粒子群算 法等。 这些算法大大丰富了现在优化技术,也为那些传统最优化技术难以处理的 组 合优化问题提供了切实可行的解决方案。 生物学家通过对蚂蚁的长期的观察发现,每只蚂蚁的智能并不高,看起来没 有集中的指挥,但它们却能协同工作,集中事物,建起坚固漂亮的蚁穴并抚养后 代, 依靠群体能力发挥出超出个体的智能。 蚁群算法是最新发展的一种模拟昆虫王国 中蚂蚁群体智能行为的仿生优化算法,它具有较强的鲁棒性、优良的分布式计算 机 制、易于与其他方法相结合等优点。尽管蚁群算法的严格理论基础尚未奠定,国 内外的相关研究还处于实验阶段, 但是目前人们对蚁群算法的研究已经由当初单 一 的旅行商问题(TSP)领域渗透到了多个应用领域,由解决一维静态优化问题发展 到解决多维动态组合优化问题, 由离散域范围内的研究逐渐扩展到了连续域范围 内的

蚁群算法路径优化算法

其中,表示在t时刻蚂蚁k由元素(城市)i转移到元素(城市)j的状态转移概率。allowedk = C ? tabuk表示蚂蚁k下一步允许选择的城市。α为启发式因子,表示轨迹的相对重要性,反映了蚂蚁在运动过程中所积累的信息在蚂蚁运动时所起的作用,其值越大,则该蚂蚁越倾向于选择其他蚂蚁经过的路径,蚂蚁之间的协作性越强。β为期望启发式因子,表示能见度的相对重要性,反映了蚂蚁在运动过程中启发信息在蚂蚁选择路径中的受重视程度,其值越 大,则该状态转移概率越接近于贪心规则;ηij(t) 为启发函数,表达式为。式中,dij表示相邻两个城市之间的距离。(6)修改禁忌表指针,即选择好之后将蚂蚁移动到新的元素(城市),并把该元素(城市)移动到该蚂蚁个体的禁忌表中。(7)若集合C中元素(城市)未遍历完,即k

for i=1:NC % 计算各城市间的距离 for j=1:NC distance(i,j)=sqrt((CooCity(i,2)-CooCity(j,2))^2+(CooCity(i,3)-CooCity(j,3))^2); end end MAXIT=10;%最大循环次数 Citystart=[]; % 起点城市编号 tau=ones(NC,NC); % 初始时刻各边上的信息痕迹为1 rho=0.5; % 挥发系数 alpha=1; % 残留信息相对重要度 beta=5; % 预见值的相对重要度 Q=10; % 蚁环常数 NumAnt=20; % 蚂蚁数量 routelength=inf; % 用来记录当前找到的最优路径长度 for n=1:MAXIT for k=1:NumAnt %考查第K只蚂蚁 deltatau=zeros(NC,NC); % 第K只蚂蚁移动前各边上的信息增量为零 %[routek,lengthk]=path(distance,tau,alpha,beta,[]); % 不靠率起始点[routek,lengthk]=path(distance,tau,alpha,beta,Citystart); % 指定起始点if lengthk

蚁群算法的改进神经网络程序

%蚁群算法的改进神经网络程序 %这是某个硕士论文中附带的程序,经过试用,完全不能用。 %蚁群算法优化神经网络 %参数值 %ant_amount,蚂蚁总数 %quanzhi_amount,权值总数 %xuanzhi_amount,可选值总数 %k,蚂蚁k %i,权值j %j,选值j %tao,信息素矩阵 %zeng_tao,信息素增量 %NC,最大迭代 %rou,信息挥发度; %Q,信息总量:为蚂蚁循环一周时释放在所经过的路径上的信息素总量%zuixiaowucha,最小误差 %shijiwucha实际误差 %conter迭代次数 %sum_tao,tao和 %p,信息素概率 %4个矩阵: % iwb(i,j),权值矩阵(i*j) % tao(i,j),信息素矩阵(i*j) %mayi_xuanzhi(k,i),每只蚂蚁选的权值矩阵(k*i) %mayi_xuanwei(k*i),每只蚂蚁选的权值位置矩阵(k*i) %网络主程序 Clear; yangben_yuanshi=[ 7.8 111 701 129 2.8; 45 168 330 82 3.1; 58 103 251 51 6; 56 144 164 36 1.8; 82 161 406 79 8.9; 10 15 19.5 5 0; 18 135 208 59 0; 129 181 244 44 0; 12 23 98 9 0; 164 244 497 103 8.3; 16 237 470 92 0; 15 125 574 29 7;

49 41.6 124 25.1 15.7; 21 7.6 96.3 4.7 26.73; 65 26.1 41.6 10.1 57.8; 64 22 51.7 20.7 95.1; 29 7.52 14.8 5.5 5.4; 6.3 7.87 3.03 6.97 11.1; 413 6.8 4.6 40.4 8.15; 23.4 14.3 9.71 7.12 3.44; 15.2 2.4 4.5 4.8 27.2; 45 431 517 210 2; 65 150 54 45 0; 4 70.7 211 76 18.9; 22 12 6.3 4.6 7.4; 130.4 48.8 93.4 16.3 123.4; 198 54.3 107.1 6.4 148.8; 521.1 107 177.1 9.2 144.7; 217.5 40 51.8 4.9 67.5; 63 7.4 17 1.8 6.2; 54 7 8.6 7.4 5.4; 150 27 63 3.6 90; 162 109 201 11 183; 59 28 70 9 15; 201 36.1 32.3 6 47.2]; %训练样本初值 for i=1:35 % 训练样本归一化 yangben_guiyi(i,:)=0.1+0.8*(yangben_yuanshi(i,:)-min(yangben_yuanshi(i,:)))/(max(yangben_yuansh i(i,:))-min(yangben_yuanshi(i,:))); end yangben_shuchu=[ 1 0 0 0 0; 1 0 0 0 0; 1 0 0 0 0; 1 0 0 0 0; 1 0 0 0 0; 1 0 0 0 0; 1 0 0 0 0; 1 0 0 0 0; 1 0 0 0 0; 1 0 0 0 0; 1 0 0 0 0;

(完整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)正反馈机制与负反馈机制结合:若某部分空间上分布的信息素越多,那么在这个空间上走过的蚂蚁也就越多;走过的蚂蚁越多,在那个空间上留下的信息素也就越多,这就是存在的正反馈机制。但蚁群算法中解的构造是通过计算转移概率实现的,也就是说构造解的时候可以接受退化解,这限制了正反馈机制,

粒子群蚁群算法路径优化算法

粒子群算法(PSO)和遗传算法(GA)都是优化算法,都力图在自然特性的基础上模拟个体种群的适应性,它们都采用一定的变换规则通过搜索空间求解。 PSO和GA的相同点: (1)都属于仿生算法。PSO主要模拟鸟类觅食、人类认知等社会行为而提出;GA主要借用生物进化中“适者生存”的规律。 (2)都属于全局优化方法。两种算法都是在解空间随机产生初始种群,因而算法在全局的解空间进行搜索,且将搜索重点集中在性能高的部分。 (3)都属于随机搜索算法。都是通过随机优化方法更新种群和搜索最优点。PSO中认知项和社会项前都加有随机数;而GA的遗传操作均属随机操作。 (4)都隐含并行性。搜索过程是从问题解的一个集合开始的,而不是从单个个体开始,具有隐含并行搜索特性,从而减小了陷入局部极小的可能性。并且由于这种并行性,易在并行计算机上实现,以提高算法性能和效率。 (5)根据个体的适配信息进行搜索,因此不受函数约束条件的限制,如连续性、可导性等。 (6)对高维复杂问题,往往会遇到早熟收敛和收敛性能差的缺点,都无法保证收敛到最优点。PSO和GA不同点 (1)PSO有记忆,好的解的知识所有粒子都保存,而GA没有记忆,以前的知识随着种群的改变被破坏。 (2)在GA算法中,染色体之间相互共享信息,所以整个种群的移动是比较均匀地向最优区域移动。PSO中的粒子仅仅通过当前搜索到最优点进行共享信息,所以很大程度上这是一种单项信息共享机制,整个搜索更新过程是跟随当前最优解的过程。在大多数情况下,所有粒子可能比遗传算法中的进化个体以更快速度收敛于最优解。 (3)GA的编码技术和遗传操作比较简单,而PSO相对于GA,不需要编码,没有交叉和变异操作,粒子只是通过内部速度进行更新,因此原理更简单、参数更少、实现更容易。(4)在收敛性方面,GA己经有了较成熟的收敛性分析方法,并且可对收敛速度进行估计;而PSO这方面的研究还比较薄弱。尽管已经有简化确定性版本的收敛性分析,但将确定性向随机性的转化尚需进一步研究。 (5)在应用方面,PSO算法主要应用于连续问题,包括神经网络训练和函数优化等,而GA 除了连续问题之外,还可应用于离散问题,比如TSP问题、货郎担问题、工作车间调度等。

相关文档
最新文档