蚁群算法在车辆路径问题中地应用.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
蚁群算法在车辆路径问题中的应用 摘 要 蚁群算法(Ant Colony Optimization, ACO)是意大利学者M.Dorigo等人通过模拟蚁群觅食行为提出的一种基于种群的模拟进化算法。通过介绍蚁群觅食过程中基于信息素(pheromone)的最短路径的搜索策略,给出了基于MATLAB的蚁群算法在车辆路径问题(Vehicle Routing Problem, VRP)中的应用。蚁群算法采用分布式并行计算机制,易于其他方法结合,而且具有较强的鲁棒性,但搜索时间长,容易陷入局部最优解。针对蚁群算法存在的过早收敛问题,加入2—opt方法对问题求解进行了局部优化,计算机仿真结果表明,这种混合型蚁群算法对求解车辆路径问题有较好的改进效果。 关键词:蚁群算法、 组合优化、车辆路径问题、2-opt方法 车辆路径问题 车辆路径问题(VRP)来源于交通运输,1959年由Dantzig提出,它是组合优化问题中一个典型的NP-hard问题。最初用于研究亚特兰大炼油厂向各个加油站投送汽油的运输路径优化问题,并迅速成为运筹学和组合优化领域的前沿和研究热点。 车路优化问题如下: 已知有一批客户,各客户点的位置坐标和货物需求已知,供应商具有若干可供派送的车辆,运载能力给定,每辆车都是从起点出发,完成若干客户点的运送任务后再回到起点。现要求以最少的车辆数和最少的车辆总行程来完成货物的派送任务。 2、蚁群系统基本原理 在蚂蚁群找到食物时,它们总能找到一条从食物到蚁穴之间的最短路径。因为蚂蚁在寻找食物时会在路途上释放一种特殊的信息素。当它们碰到一个还没有走过的路口时,会随机地挑选一条路径前行。与此同时释放出与路径长度有关的信息素。路径越长,释放的激素浓度越低。当后面的蚂蚁再次碰到这个路口时,会选择激素浓度较高的路径走。这样形成了一个正反馈,最优路径上的激素浓度越来越高,而其他的路径上激素浓度却会随时间的流逝而消减。最终整个蚁群会找出最优路径。在整个寻找过程中,整个蚁群通过相互留下的信息素作用交换着路径信息,最终找到最优路径。 基本蚁群算法求解车辆路径问题 求解VRP问题的蚂蚁算法中,每只蚂蚁是一个独立的用 于构造路线的过程,若干蚂蚁过程之间通过信息素值来交换信 息,合作求解,并不断优化。这里的信息素值分布式存储在图 中,与各弧相关联。蚂蚁算法求解VRP问题的过程如下: 参数初始化。 令t=0和循环次数也NC=0,设置最大循环次数NCmax。,将m只蚂蚁随机地放到n个城市,将每条边(i,j)上的信息素设为一个常数,且=0(表示循环中路径(i,j)上的信息素增量),将出发点城市设置到禁忌表中; 选择城市。 每个蚂蚁按照状态变化规则逐步地构造一个解,即生成一条路。蚂蚁任务是在约束条件下,访问客户后回到仓库,生成一条回路。设蚂蚁k当前所在的顶点为i ,则蚂蚁k由点i 向点j 移动要遵循一下公式(1)的状态变化规则而不断迁徙,按不同概率来选择下一个。 (,) Exploitation () Exploration (1) (其中 表示蚂蚁k当前选择的城市集合,为禁忌表,它记录蚂蚁k已经路过的城市,用来说明人工蚂蚁的记忆性。用于评价蚂蚁由点i 向点j 移动的启发函数,其值通常用距离的倒数求得,即。体现了信息素和启发信息对蚂蚁决策的影响。取值为1;参数描述启发函数的重要性;参数()决定利用和开发的相对重要性,利用(Exploitation)指走最好的路,开发(Exploration)指按信息素浓度高概率高的原则选择V, q是在[0,1]上任取的随机数) 当时,按公式(2)的概率进行选择: (3)修改禁忌表,即选择好之后将蚂蚁移动到下一个城市,并把该城市移动到蚂蚁个体的禁忌表中; (4)循环执行第2步和第3步,直到每只蚂蚁都生成一条路径; (5)计算第k只蚂蚁所走路径的总长度; (6)根据公式(3)(4)更新所有路径上的信息量; (3) (4) (7)若循环次数NCNCmax,则循环结束并输出计算结果,否则清空禁忌表并转到第2步。 相应的MATLAB程序如下: %%第一步:变量初始化 [L_nn,P_nn]=NearestNeighborTSP(d);%是最近邻域启发算法产生的路线长度 L_best=inf; T_best=0; tau0=1/(n* L_nn);%n为客户以及仓库数 tau=ones(n,n)*tan0; ant_path=zeros(m,n+1); %%第二步:将将m个蚂蚁置于仓库中 ant_path(:,1)=randint(m,1,[1,1]); %%第三步:选择城市 current_node=ant_path(k,s-1);%k

文档评论(0)

dmz158 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档