改进蚁群算法在旅行商问题中的应用

合集下载

改进的蚁群算法在VRP中的应用研究

改进的蚁群算法在VRP中的应用研究
关 键词 : 群算 法 ; 辆路径 问题 ; 蚁 车 物流 配送
中 图分 类号 : P 9 T 31
文献标 识码 : B
文章 编 号 :0 9 2 7 ( 0 6)1 0 5 — 4 10 —2 720 0— 0 60
1引言 、
指通过经验法则来求取运输过程满意解的数学
方法 。启发式方 法能同时满足详细描绘问题和求解的 需 要 , 精确 优化 方法 更 为简 单 实用 , 点 是难 于知 较 缺 道 什么时候好 的启 发式解 已经被求得 。启发式方法 中 最具 代表性 的就是 由 Cac lrk和 Wr h提 出 的节 约法 it g
(aig to )许多成功 的车辆调度 软件就是根据该 Svn h d。 Me
车辆 路 径问 题 (R V P问题 ) 合 优化 领 域 中著 是组
名的 N P难题 。近二 十年来 , 论在 国内外 , R 无 V P问 题都 是一 个非常 活跃 的研究 领域 。 目前 用 于解 决该
问题 的现代 数学方 法 主要分 为 以下几类 :
11 确 优 化 方 法 .精 .
包 括 制 定下 界 及 相关 分 枝 定 界算 法 、 K度 中心 树 及 相关 算 法 、 动态 规 划 、 集合 划 分 和列 产 生 、 索 三 引车辆 流方式 、 索引 车辆流 方式 等 。 精确 算法 的 二 但
方法或其改进方法 开发的 。 西南 交大的李军针对有时
计算复杂度很高,随着运输系统 的复杂化和对调度
的多 目标 要求 ,获得整个 系统 的精 确优 化解 越来越 困难 , 费 的时间 和费用 太大 , 花 因此精 确解 法 不能应 用 于规模较 大 的物 流配送 车路 由问题 的求 解 ,仅用

蚁群算法(ACO)解决TSP问题

蚁群算法(ACO)解决TSP问题

蚁群算法(ACO)解决TSP问题⼀、蚁群算法1.基本原理蚁群算法(Ant Colony Optimization,ACO)是⼀种基于种群寻优的启发式搜索算法,有意⼤利学者M.Dorigo等⼈于1991年⾸先提出。

该算法受到⾃然界真实蚁群集体在觅⾷过程中⾏为的启发,利⽤真实蚁群通过个体间的信息传递、搜索从蚁⽳到⾷物间的最短路径等集体寻优特征,来解决⼀些离散系统优化中的困难问题。

经过观察发现,蚂蚁在寻找⾷物的过程中,会在它所经过的路径上留下⼀种被称为信息素的化学物质,信息素能够沉积在路径上,并且随着时间逐步挥发。

在蚂蚁的觅⾷过程中,同⼀蚁群中的其他蚂蚁能够感知到这种物质的存在及其强度,后续的蚂蚁会根据信息素浓度的⾼低来选择⾃⼰的⾏动⽅向,蚂蚁总会倾向于向信息素浓度⾼的⽅向⾏进,⽽蚂蚁在⾏进过程中留下的信息素⼜会对原有的信息素浓度予以加强,因此,经过蚂蚁越多的路径上的信息素浓度会越强,⽽后续的蚂蚁选择该路径的可能性就越⼤。

通常在单位时间内,越短的路径会被越多的蚂蚁所访问,该路径上的信息素强度也越来越强,因此,后续的蚂蚁选择该短路径的概率也就越⼤。

经过⼀段时间的搜索后,所有的蚂蚁都将选择这条最短的路径,也就是说,当蚁巢与⾷物之间存在多条路径时,整个蚁群能够通过搜索蚂蚁个体留下的信息素痕迹,寻找到蚁巢和⾷物之间的最短路径。

蚁群算法中,蚂蚁个体作为每⼀个优化问题的可⾏解。

⾸先随机⽣成初始种群,包括确定解的个数、信息素挥发系数、构造解的结构等。

然后构造蚁群算法所特有的信息素矩阵每只妈蚁执⾏蚂蚊移动算⼦后,对整个群体的蚂蚁做⼀评价,记录最优的蚂蚁。

之后算法根据信息素更新算⼦更新信息素矩阵,⾄此种群的⼀次选代过程完成。

整个蚂蚁群体执⾏⼀定次数的选代后退出循环、输出最优解。

2.术语介绍(1)蚂蚁个体。

每只蚂蚁称为⼀个单独的个体,在算法中作为⼀个问题的解。

(2)蚂蚁群体。

⼀定数量的蚂蚁个体组合在⼀起构成⼀个群体,蚂蚁是群体的基本单位。

基于MATLAB的蚁群算法求解旅行商问题

基于MATLAB的蚁群算法求解旅行商问题

好行程 的选择机会。 这种改进型算法 能够以更快的速度获得更
好 的解 , 是该算法 会较早的收敛于局 部次优 解, 但 导致搜 索的
过 早停 滞 。 针对 A 中暴 露 出 的问题 , a b r e l L M D r g M S G m a d la , o io ”
提 出了蚁群系统 (n oo y s s e ,A S 。 A t c ln y tm C ) 该文作者较早提
w 啦
( 4 )
r =l 其 中, o e {,, n 1_a u 表 示 蚂 蚁 k a lw d =O1…,一 }t b 下一 步允 许 式中的排 序加 权处 理确 定, 其中 =i, ( - m 每 次 选 择 的城 市 , 实 际 蚁 群 不 同 , 工 蚁 群 系 统 具 有 记 忆 功 能 , l n 为 e : 与 人
op mi ati i bui t f s vi t t ti z on s l or ol ng he rav i s e ma p el ng al s n rob e l m bas on ed MAT AB a fi L , nd nal thr gh t y ou he si mul i n at o to bt n he o ai t bes s ut o whi h s he t ol i n c i t be t s on c e urr t y en l .
K wor ey ds: n o o y O t m z t o A t C l n p i i a i n;T a e i g S l s a r b e r v l n a e m n P o l m;M T A ALB
1 意 义和 目标
息素被表 达为一个函数 , 该函数反映了相应 的行程 质量 。 过 通

基于互信息的混合蚁群算法及其在旅行商问题上的应用

基于互信息的混合蚁群算法及其在旅行商问题上的应用

a d is a p ia i n t r v l g s l s a r b e n t p l to o t a ei a e m n p o lm c n
DuZ a w i Y n o gi S nYo g in Z a gC i n‘ hn e a gY nj n a u n xo g hn h u j
l 提出将互信 息用于 图像 配准 后 , a 互信 息在 遥感 和 医学等领域 开始得到广泛 应用. 蚁群 算法最 早 由 C lri oon 等 提 出 , 于解 决 用

大类 复杂 的组 合 优 化 问题 . o ri 由蚂 蚁 在 C ln 等 o
觅食时 的现象受到 启发 , 抽象 出基 于路径概率 性选
p sda o tm ni rv o xe th o t npr r a c dtecp cyo mp got oe l rh c gi a mpo e osmeetn tesl i e o nea a ai fu i u t uo f m n h t j n
o o a ni u . flc lmi m m
引 文 格 式 :杜 占玮 , 永 健 , 永 雄 , . 杨 孙 等 基于 互 信息 的混 合 蚁 群剪 法 及 其 在 旅 行 商 问 题 上 的 应 用 [ ] 东 南 大 学 学 报 : J. 自然 科 学 版 ,0 14 2 1 ,1 ( )4 8— 8 .[ o:0 3 6 /.sn 10 00 .0 10 .0 ] 3 :7 4 1 d i1 .99 ji .0 1— 5 52 1 .30 9 s
配准算 法产 生 . 了使 该 算 法 更 加 适 用 于 T P问 为 S 题 , 据 问题领域 的具 体 环境 , 混 合 算法 中 的算 根 对 式 进行 了一 定 的化 简 , 其在 计 算 上更 加 简 单 、 使 易 操作. 通过使 用标 准测试 集 O ie3 l r0对算 法进行 测 v 试 , 明本 文提 出的算法 在求 解性 能和跳 出局部 最 表 小 解方 面较 原算法 均有 一定 的提高 .

用蚁群算法求解旅行商问题

用蚁群算法求解旅行商问题

第25卷第4期2009年8月 哈尔滨商业大学学报(自然科学版)Journa l of Harb i n Un i versity of Co mm erce (Na tura l Sc i ences Ed iti on)Vol .25No .4Aug .2009收稿日期:2009-02-251作者简介:高春涛(1973-),女,硕士,研究方向:运筹学与控制论1用蚁群算法求解旅行商问题高春涛(哈尔滨商业大学基础科学学院,哈尔滨150076)摘 要:介绍了一种用于解决复杂优化问题的新的启发式算法———蚁群算法.阐述了该算法的基本原理、算法模型和在旅行商问题中的具体应用过程.研究表明该算法具有并行性,鲁棒性等优良性质.关键词:蚁群算法;算法模型;旅行商问题中图分类号:TP18 文献标识码:A 文章编号:1672-0946(2009)04-0493-03Study on solv i n g traveli n g sa lesman problem byusi n g an t colony a lgor ith mG AO Chun 2tao(School of Basic Science,Harbin University of Commerce,Harbin 150028,China )Abstract:I ntr oduces a s oluti on t o the comp lex op ti m izati on p r oble m s f or the ne w heuristic al 2gorith m ant col ony algorithm.The algorith m describes the basic p rinci p les of the model and algorith m in the traveling sales man p r oble m in the s pecific app licati on p r ocess .The results show that the parallel alg orithm ,r obustness,such as the nature of the fine.Key words:ant col ony algorith m;algorith m model;traveling sales man p r oble m 蚁群算法(Ant Col ony A lgorithm ,简称ACA )是由意大利学者Dorig o ・M 等人首先提出来的一种新型的模拟进化算法[1-3].其主要特点就是:通过正反馈、分布式协作来寻找最优路径.这是一种基于种群寻优的启发式搜索算法.它充分利用了生物蚁群能通过个体间简单的信息传递,搜索从蚁穴至食物间最短路径的集体寻优特征,以及该过程与旅行商问题求解之间的相似性,得到了具有NP 难度的旅行商问题的最优解答.同时,该算法还被用于求解Job -Shop [1-3]调度问题、二次指派问题[1]以及背包问题等,显示了其适用于组合优化类问题求解的优越特征.旅行商问题(Traveling Sales man Pr oble m ),又称旅行推销员问题,是指给定n 个城市,任何两城市之间皆有路连通,其距离为已知,某旅行商从其中某城市出发,要经过每城市一次,且只能一次,最后又必须返回出发城市,要求找出最短的巡回路径.旅行商问题是运筹学中有代表性的组合优化问题,也是典型的NP 完全问题.虽然陈述起来很简单,但求解却很困难,对于具有n 个城市的TSP 问题,其可能的路径数目为(n -1)!/2,至今尚未找到有效的求解方法,在理论上枚举法可以解决这一问题,但是当n 较大时,解题的时间消耗会使枚举法显得没有任何实际价值.因此寻求一种求解时间短,能满足实际问题精度要求的解,成为解决该问题的主要途径.1 基本蚁群算法1.1 基本蚁群算法的原理根据仿生学家的长期研究发现:蚂蚁虽然没有视觉,但运动时会通过在路径上释放出一种特殊的分泌物———信息素来寻找路径.当它们碰到一个还没有走过的路口时,就随机地挑选一条路径前行,同时释放出与路径长度有关的信息素.蚂蚁走的路径越长,则释放的信息量越小.当后来的蚂蚁再次碰到这条路口的时候,选择信息量较大路径的概率相对较大,这样便形成了一个正反馈机制.最优路径上的信息量越来越大,而其他路径上的信息量却会随着时间的流逝而逐渐消减,最终整个蚁群会找到最优路径.同时蚁群还能够适应环境的变化,当蚁群的运动路径上突然出现障碍物时,蚂蚁也能很快地重新找到最优路径.可见,在整个寻优过程中,虽然单只蚂蚁的选择能力有限,但是通过信息素的作用使整个蚁群行为具有非常高的自组织性,蚂蚁之间交换路径信息,最终通过蚁群的集体自催化行为找出最优路径.1.2 基本蚁群算法解决旅行商问题的数学模型在TSP求解中,参与路径搜寻的每只蚂蚁都具有下列特征[4]:1)其选择城市的概率是城市之间的距离和连接支路上所包含的当前信息素余量的函数;2)为了强制蚂蚁进行合法的周游,直到一次周游完成时,才允许蚂蚁游走已访问的城市;3)当完成一次周游,每只蚂蚁在每条访问过的支路上留下信息素.我们以求解平面上n个城市的TSP问题(1, 2,…,n表示城市序号)为例说明ACA的模型.n个城市的TSP问题就是寻找通过n个城市各一次且最后回到出发点的最短路径.为模拟实际蚂蚁的行为,首先引入如下记号[5]:设bi(t)表示t时刻i城市的蚂蚁数目,则m =6ni=1b i(t)为蚁群中蚂蚁的总数目,令τij(t)为t时刻路径(i,j)上的信息素强度.在初始时刻各条路径上的信息量相等,设τij(0)=c.蚂蚁k(k=1,2…,m)在运动过程中,根据各条路径上的信息量决定其转移方向,这里用禁忌表tabuk(k=1,2,…, m)来记录蚂蚁k当前所走过的城市.在搜索过程中,蚂蚁根据各条路径上的信息量及路径的启发信息来计算状态转移概率.p kij(t)表示在t时刻蚂蚁k由城市i转移到城市j的状态转移概率:p k ij(t)=[τij(t)]α・[ηij(t)β]6s∈all owed k[τis(t)]α・[ηis(t)]β,若j∈allowed k0,否则(1)其中,all owedk ={C-tabuk}表示蚂蚁k下一步允许选择的城市;α为信息启发式因子,表示轨迹的相对重要性;β为期望启发式因子,表示能见度相对重要性;ηij(t)为启发函数,其表达式如下:ηij (t)=1d ij(2)其中:dij表示相邻两个城市之间的距离.随着时间的推移,以前留在各路径上的信息量逐渐消逝,经过n个时刻,蚂蚁完成一次循环,各路径上信息量要根据下式作调整:τij(t+n)=ρ・τij(t)+Δτij1(3)Δτij(t)=6m k=1Δτk ij(t)(4)其中:ρ表示了t时刻和t+n时刻之间信息素的挥发程度,Δτij (t)表示本次循环中路径(i,j)上的信息素的变化量,Δτkij(t)表示第k只蚂蚁在本次循环中留在路径(i,j)上的信息量,其计算方法根据计算模型而定.1.3 基本蚁群算法求解旅行商问题的算法流程基本蚁群算法的具体实现步骤如下:1)初始化:令时间t=0和循环次数N c=0,将m只蚂蚁置于n个城市上,令每条路径(i,j)的初始化信息量τij(t)=c,且初始时刻Δτij(0)=0.2)设置蚂蚁的禁忌表索引号s=1,对k=1,2,…,m,将k只蚂蚁的起始城市的编号放入禁忌表中.3)循环执行以下步骤,直至禁忌表全满:①s=s+1②对k=1,2,…,m,以概率p kij(t)选择下一个城市j,其概率具体由式(1)给出,把蚂蚁k移到城市j,将其编号放入禁忌表中.4)对k=1,2,…,m,计算蚂蚁k所走周游的长度,记录当前找到的最短路径,按式(3)计算每只蚂蚁的信息素增量.・494・哈尔滨商业大学学报(自然科学版) 第25卷5)对每条路径(i,j )根据公式(2)更新路径上的信息素,设置t =t +n,N c =N c +1,对于每条路径(i,j )设τij =06)若循环次数N c ≥N c max ,则循环结束并输出程序结束结果,否则清空禁忌表并转到第(2)步.2 实验结果与应用为说明蚁群算法的优点,本文以文献[6]为例给出该算法求解TSP (oliver 30)问题的典型实验结果(十次实验取平均值),实验结果见图1~3.从该曲线上可以发现,蚁群算法具有快速发现较好解的特点.3 结 语蚁群算法是一种新型的模拟进化算法,尽管人们对蚁群算法的研究时间不长,在这一领域还有一些问题需要进一步研究和解决,但是理论研究和实际应用表明它是一种很有前途的仿生优化算法.通过对国内外的研究回顾,不难发现蚁群算法的主要优点在于:它是一种自适应、自组织、本质上并行的方法,而且是一种正向反馈的方法,可以促使整个系统向最优解进化,具有较强的鲁棒性,对蚁群算法模型稍加修改,就可以应用于其他问题,同时它可以与多种启发式算法结合,以改善算法的性能.但是该算法也具有收敛速度慢、易陷入局部最优等缺点.此外,算法中的参数设定目前尚无理论的依据,要靠实验来调整和确定.因此,关于蚁群算法理论及其应用的研究必将是一个长期的研究课题.相信随着人们对仿生智能系统理论及应用研究的不断深入,蚁群算法这一新型的仿生优化算法必将展现出更加广阔的发展前景.参考文献:[1] COLOM IA,DOR I G O M,MAN I EZZ O V.D istributed op ti m iza 2ti on by ant Col onies[C ]//Pr oc .1st Eur opean Coof .A rtificial,Pans,France:Elsevier,1991:134-142.[2] COLOM I A.DOR I G O M,MAN I EZZ O V.An investigati on ofs ome p r operties of an ant algorithm [C ]//Pr oceeding of parallel Pr oble m Solving fr om Nature (PPS N ),France:Elsevier,1992:509-520.[3] COLOM IA.DOR I G O M,MAN I EZZ O V,et al .Ant system f orj ob -shop scheduling [J ].Belgian Journal of Operati ons Statis 2tics and Computer Science,1994,34(1):39-53.[4] 汪 镭,吴启迪.蚁群算法在连续空间寻优问题求解中的应用[J ].控制与决策,2003,18(1):45-48.[5] DOR I G O M,CARO G D,G AMBARDELLA L M.Ant algo 2rithm s f or discrete op ti m izati on [J ].A rtificial L ife,1999,5(2):137-172.[6] 张纪会,徐心和.一种新的进化算法———蚁群算法[J ].系统工程理论与实践,1999,19(3):84-87,109.・594・第4期 高春涛:用蚁群算法求解旅行商问题。

蚁群算法在求解车辆路径安排问题中的应用

蚁群算法在求解车辆路径安排问题中的应用

蚁群算法在求解车辆路径安排问题中的应用蚁群算法(Ant Colony Optimization,ACO)是一种启发式算法,受到蚂蚁觅食行为的启发,可以用于求解许多组合优化问题,如旅行商问题(TSP),车辆路径安排问题等。

本文将重点讨论蚁群算法在车辆路径安排问题中的应用。

车辆路径安排问题是指在给定一组顾客需求和一部分可用车辆的情况下,如何最优地分配车辆并安排它们的路线,以最小化总成本(如总行驶距离、总行驶时间等)。

这个问题可以建模为一个组合优化问题,其中顾客需求可看作任务,车辆可看作资源。

蚁群算法通过模拟蚂蚁的觅食行为,寻求全局最优解。

蚁群算法的基本原理是通过模拟多个蚂蚁的觅食行为,逐步寻找更优解。

具体来说,每个蚂蚁在选择下一个顾客需求时,会根据当前信息素浓度和启发式信息做出决策。

信息素是一种蚂蚁在路径选择时释放的化学物质,用于传递蚂蚁对路径的偏好程度。

启发式信息是一种指导蚂蚁决策的启发式规则,如距离、需求等。

每个蚂蚁完成一次路径选择后,会更新路径上的信息素浓度,并根据选择的路径更新信息素。

蚂蚁的路径选择决策是一个随机的过程,但信息素浓度和启发式信息会对蚂蚁的选择起到指导作用。

信息素浓度高的路径会被更多的蚂蚁选择,这种选择行为会进一步增加路径上的信息素浓度。

而启发式信息则会影响蚂蚁的偏好,使其更倾向于选择比较优的路径。

在求解车辆路径安排问题中,蚁群算法可以按以下步骤进行:1.初始化信息素:将所有路径上的信息素浓度初始化为一个较小的值。

初始化启发式信息。

2.模拟蚂蚁觅食行为:多个蚂蚁同时进行路径选择,每个蚂蚁根据当前信息素浓度和启发式信息,选择下一个最优的顾客需求。

模拟蚂蚁的移动过程,直到所有蚂蚁完成路径选择。

3.更新信息素:每个蚂蚁完成路径选择后,更新路径上的信息素浓度。

信息素的更新可以采用一种蒸发和增加的策略,即每轮迭代后,信息素会以一定的速率蒸发,并根据蚂蚁选择的路径增加信息素。

4.判断终止条件:当达到迭代次数或满足特定的停止条件时,终止算法。

利用旅行商问题阐述蚁群算法的基本流程

利用旅行商问题阐述蚁群算法的基本流程

蚁群算法(Ant Colony Algorithm,简称ACA)是一种基于自然界蚁群搜索行为的近似算法,它是一种模拟进化算法,通过模拟蚂蚁在自然界中穿越路径搜索食物的行为来解决各种复杂的旅行商问题。

蚁群算法可以用来解决多种复杂的优化问题,其中旅行商问题是其中最经典的一种,给出一组城市和每对城市间的距离,要求从某一城市出发,经过每个城市恰好一次,最后回到出发城市,使得所有城市间的距离的总和最短,这就是旅行商问题。

解决旅行商问题的蚁群算法包括以下几个步骤:
(1)初始化:首先,设置蚂蚁的数量、初始位置、参数和信息素矩阵,以及其他必要的参数。

(2)选择:每只蚂蚁根据它们的本能和信息素的分布来选择下一步的行动,具体的算法是通过一个概率公式完成的。

(3)移动:每只蚂蚁根据它们的选择移动到下一个城市,并记录它们的路径。

(4)更新:每只蚂蚁移动到新的城市后,都会在该城市留下一点信息素,用以指示其他蚂蚁此处是一个可行的路径。

(5)重复:重复上述步骤直到设定的迭代次数,即每只蚂蚁完成一次完整的旅行。

(6)评估:最后,比较每只蚂蚁所得到的路径,找出最优解,即旅行距离最短的路径。

最后,蚁群算法可以求解旅行商问题,从而求得最优解,即最短的路径,以此解决复杂的优化问题。

蚁群算法的优势在于其简单、快速,而且能够很好地模拟自然界的行为,以求解复杂的优化问题。

蚁群算法的缺点在于它没有全局最优解的概念,因此可能会收敛到局部最优解,而无法得到全局最优解。

虽然蚁群算法存在一定的局限性,但它仍然是一种非常有效的优化算法,广泛应用于现实世界的复杂问题的求解中。

用于解决多目标旅行商问题的算法

用于解决多目标旅行商问题的算法

多目标旅行商问题(MO-TSP)是指在多个目标地点之间找到最优路径,使得旅行商能够同时满足多个旅行目标的问题。

这是一个复杂的组合优化问题,涉及到时间、成本、距离等多个目标的平衡。

针对这一问题,已经有许多算法被提出,比如遗传算法、模拟退火算法、蚁群算法等。

在本文中,我将针对用于解决多目标旅行商问题的算法进行深入剖析和讨论。

1. 遗传算法遗传算法是一种模仿自然选择和遗传机制的优化方法,通过种群的进化来寻找问题的最优解。

在解决MO-TSP问题时,遗传算法可以通过不断进化种群中的路径来寻找最佳的解决方案。

在每一代进化中,选择、交叉和变异等操作都会对种群进行改进,直到找到最优的解。

2. 模拟退火算法模拟退火算法是一种启发式算法,模拟金属退火过程中的晶粒结构变化来寻找问题的最优解。

在解决MO-TSP问题时,模拟退火算法可以通过接受较差解的概率来跳出局部最优解,并在搜索空间中进行全局搜索,以找到更好的解。

3. 蚁群算法蚁群算法是一种基于蚁群寻食行为的启发式算法,模拟蚂蚁在搜索食物时释放信息素的过程。

在解决MO-TSP问题时,蚁群算法可以通过蚂蚁在路径上释放信息素的方式来寻找最优路径,蚁群不断更新信息素浓度,并通过信息素浓度来选择下一步的移动方向。

在实际应用中,这几种算法都有其优缺点,如何选择最合适的算法取决于实际问题的复杂度、目标要求和算法的性能。

在我看来,遗传算法在求解MO-TSP问题时具有良好的全局搜索能力,但对于大规模问题的收敛速度可能较慢;模拟退火算法适用于局部搜索和全局搜索的结合,但在处理多目标问题时需要合理设定参数;蚁群算法在求解路径优化问题时具有较好的鲁棒性和稳健性,但对于问题解空间的探索可能会存在过早收敛的问题。

MO-TSP问题是一个复杂的组合优化问题,需要综合运用各种启发式算法和元启发式算法,以及结合实际问题的特点和要求,才能找到最佳的解决方案。

通过对算法的深入理解和灵活运用,我们可以在实际问题中取得较好的优化效果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 基本蚁群算法
以求解平面n 个城市的旅行商问题(Traveling Sal- esman Problem,TSP)说明基本蚁群算法。 引入以下
记号:设 m 为蚁群中蚂蚁数量; di( j i,j =0,1,…,n - 1)为城市i 到城市 j 的距离;τi(j t)为时刻 t 路径(i,j) 上的信息素量。 初始时刻各条路径上的信息素量相
Abstract: The paper introduces the ant algorithm and its principles, algorithm model and how to realize it, analyzes the reasons of the premature stagnation phe- nomenon of the algorithm. The paper then presents a modified version of the algorithm by introducing principles of update of pheromones with the best and the worst routes as well as optimized local searching, so as to ex- pand the scope of feasible solution for the purpose of preventing premature stagnation and accelerating con- vergence speed of the algorithm. The example of TSP sh- ows the advantages of the improved ant colony algorithm. Key words: ant colony algorithm; TSP; route; pheromone
铁道运输与经济 RAILWAY TRANSPORT AND ECONOMY 文章编号:1003-1421(2009)02-0083-03 中图分类号:O29:U492.2+2 文献标识码:A
研究与建议
改进蚁群算法在 旅行商问题中的应用
Application of Improved Ant- Algorithm in TSP
80




10 J
B I
L 12


13
14



G D
F 11 K

-2 -5 0 5 10 15
图 4 改进蚁群算法的最优路径图
次就基本趋于稳定,收敛速度加快,而未改进的基本 蚁群算法迭代14 次才趋于稳定,收敛速度较前者慢。
合;tabuk 为禁忌表,记录蚂蚁 k 已经走过的城市。
[τi(j t)]α[ηi(j t)]β Pik(j t)= [ τi(s t)]α[ηi(s t)]β


allowed k

0s∈ a l lo w e d k 否则
图 2 基本蚁群算法的平均节点分支与迭代次数的进化曲线
改进后蚁群算法的目标函数随迭代次数的进化 曲线如图 3(其中横坐标表示迭代次数,纵坐标表示目 标函数)所示,最优路径如图 4 所示。 其最优路径为: A →K →F →E →G →D →J →C →B →I →L →H →M →N →A。最优路径的距离为 45.818 4。
很显然,改进蚁群算法的结果(最短路径长度为 45.818 4)比未改进的基本蚁群算法的结果(最短路径 长度为46.334 9)要好。而且蚁群算法改进后,迭代10
参考文献: [1] 刘志硕,申金升,柴跃廷.基于自适应蚁群算法的车辆路径问
题研究[J].控制与决策,2005,20(5): 562-566. [2] 郭倩倩,黄天民,施继忠.一种改进的蚁群算法及其在旅行商

式中:ξ ∈ [0,1] 是一个参数,τ0 = 1 / n Lbest,Lbest 为该
次循环中最短路径长度。
2.3 信息素量限定规则
49
48
47
46 0 5 10 15 20 25

式中:ηi( j t)为 t 时刻的能见度,反映由城市i 转移到 城市 j 的启发程度; β 为启发信息的重要程度;q 是在
[0,1]区间均匀分布的随机数; q0为一个参数(0 ≤q0≤
1 );s 为由公式⑵决定的随机变量;a l l o w e d k ={ 0 ,
1,…,n -1}-tabuk 表示蚂蚁 k 当前能选择的城市集
着算法的重复执行,信息素都积累在这条局部最优路
(7) 对最长路径和最短路径按公式⑸和公式⑹进
径上,使该条路径上的信息素量远大于其他路径的信 行全局更新。
息素量,导致所有的蚂蚁都集中到cmax,则循环结束并输出计
上,出现停滞现象[1]。为此,对基本蚁群算法的信息素 算结果,否则转到第(2)步。
[τmin,τmax] 之间,这样可以有效抑制由于最短路径和最 长路径信息素量差距加大而引起的停滞现象。 2.4 算法步骤
2 改进的蚁群算法
在基本蚁群算法中,蚁群的转移是由路径上留下 的信息素量和城市间的距离来引导的。 蚁群的运动
(1) 参数初始化。令 t =0 和循环次数Nc =0,设 置最大循环次数 N cmax,将 m 只蚂蚁随机地放到 n 个城 市,设每条边(i,j)上的信息素量为常数,且 ∆τij = 0, 将出发点城市设置到禁忌表中。
每只蚂蚁选择一个城市(走完一个边)以后,按公
式⑶更新该边上的信息素量。
τi(j t+1)=(1-ξ)τi(j t)+ξ τ0

式中:ξ ∈ [0,1] 是一个参数;τ0 为常数。
当所有蚂蚁走完全部城市后,各路径上的信息素
量按公式⑷更新。
τi(j t+n)=(1-ρ)τi(j t)+∆τij

其中,∆τij=
更新方式及局部搜索策略进行改进。 2.1 全局更新规则
3 实例计算
计算该循环中所有蚂蚁经由的路径距离,找出最
以旅行商问题为例,对 1 4 个城市的 T S P 进行计
短路径和最长路径,对最短路径和最长路径上的信息 算,其各城市所在位置对应的平面图坐标分别为: A(8,
素量按公式⑸和公式⑹进行更新[2]。
信息素量更新后,将每条边上的信息素量限定在
图 1 基本蚁群算法的目标函数随迭代次数的进化曲线
84
第 31 卷 第 2 期
改进蚁群算法在旅行商问题中的应用 李成兵 等
研究与建议
铁道运输与经济

3.5

14
2.5
2 0 5 10 15 20 25
改进蚁群算法通过改变信息素量的更新方式,加 快了收敛速度,同时在搜索过程中引入局部最优搜索 策略,使改进蚁群算法解的性能得到较大提高,并应 用仿真手段证明了改进蚁群算法的实用性与高效性。
70
60
50
40 0 10 20 30 40 50 60 70 80 90 100 图 3 改进蚁群算法的目标函数随迭代次数的进化曲线
摘 要: 介绍蚁群算法及其原理,算法模型和实 现过程,分析基本蚁群算法易出现早熟停滞现象 的原因。 在原有算法基础上引入最优、最差信 息素更新策略和局部最优搜索策略,从而扩大可 行解的范围,避免算法过早停滞,同时加快算法 的收敛速度。以旅行商问题为例进行仿真计算, 说明改进蚁群算法的性能。 关键词:蚁群算法;旅行商问题;路径;信息素
素就不一定能反映最优路径的方向,不能保证蚁群创
(5) 计算每只蚂蚁找出的路径长度,保留最长和
建的第一条路径能引导蚁群走向全局最优路径。 而 最短路径。
在第一次循环中,蚁群留下的信息素会因正反馈作用
(6) 对最短路径采用2-opt策略,把得到的最短路
使这条路径可能不是最优,且得不到应有的增强。 随 径作为最优解。
1/Lgb ( i,j)∈全局最优路径 0 否则
式中: ρ 为信息素挥发系数,则 1 -ρ 为信息素残留因
83
第 31 卷 第 2 期
研究与建议
铁道运输与经济
改进蚁群算法在旅行商问题中的应用 李成兵 等
子,为防止信息素量的无限积累,通常设置 0 <ρ <1; ∆τij为本次循环中路径(i,j)上的信息素增量;Lgb为到 目前为止找出的全局最优路径。
总是趋向于信息素最强的路径,所以信息素最强的路
(2) 按公式⑴选择下一个城市。
径与最优路径比较接近。 由于各路径上的初始信息
(3) 按公式⑺进行局部信息素量更新。
素量相同,蚁群创建第一条路径的引导信息素主要是
(4) 循环执行第(2)步和第(3)步,直到每只蚂蚁
城市间的距离,这样蚁群在所经过的路径留下的信息 都生成一条路径。
等,设τi(j t)=C(C 为常数),则 t 时刻位于城市 i 的蚂 蚁k(k =1,2,…,m)按公式⑴选择下一个城市 j。
S = arg j ∈ amllaoxwe d k {[τi(j t)][ηi(j t)]β} q≤q0 s 否则
局部信息素量更新的作用是使已选的边对后来 示,得到最优路径的距离为 46.334 9。
的蚂蚁具有较小的吸引力,从而使蚂蚁对没有被选中 51
的边有更强的探索能力。当蚂蚁从城市 i 转移到城市 50
j 后,路径(i,j)上的信息素量按公式⑺进行更新[2]。
τi(j t+1)=(1-ξ)τi(j t)+ξ τ0
L(9,4),M(11,3),N(13,2)(单位略)。 以 MATLAB
∆τij= -Lworst/Lbest ( i,j)∈最长路径 0 否则
⑹ 7.0 编制程序,在 P 4 3.0 Ghz1 G 内存计算机中运行, 实验参数设置: m = 1 2 0,Ncmax = 1 0 0,α = 1,β = 5,
相关文档
最新文档