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

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

ID:35689367

大小:131.50 KB

页数:11页

时间:2019-04-12

蚁群算法在车辆路径问题中地应用_第1页
蚁群算法在车辆路径问题中地应用_第2页
蚁群算法在车辆路径问题中地应用_第3页
蚁群算法在车辆路径问题中地应用_第4页
蚁群算法在车辆路径问题中地应用_第5页
资源描述:

《蚁群算法在车辆路径问题中地应用》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、蚁群算法在车辆路径问题中的应用摘要蚁群算法(AntColonyOptimization,ACO)是意大利学者M.Dorigo等人通过模拟蚁群觅食行为提出的一种基于种群的模拟进化算法。通过介绍蚁群觅食过程中基于信息素(pheromone)的最短路径的搜索策略,给出了基于MATLAB的蚁群算法在车辆路径问题(VehicleRoutingProblem,VRP)中的应用。蚁群算法采用分布式并行计算机制,易于其他方法结合,而且具有较强的鲁棒性,但搜索时间长,容易陷入局部最优解。针对蚁群算法存在的过早收敛问题,加入2—opt方法对问题求解进行了局

2、部优化,计算机仿真结果表明,这种混合型蚁群算法对求解车辆路径问题有较好的改进效果。关键词:蚁群算法、组合优化、车辆路径问题、2-opt方法1.车辆路径问题车辆路径问题(VRP)来源于交通运输,1959年由Dantzig提出,它是组合优化问题中一个典型的NP-hard问题。最初用于研究亚特兰大炼油厂向各个加油站投送汽油的运输路径优化问题,并迅速成为运筹学和组合优化领域的前沿和研究热点。车路优化问题如下:已知有一批客户,各客户点的位置坐标和货物需求已知,供应商具有若干可供派送的车辆,运载能力给定,每辆车都是从起点出发,完成若干客户点的运送任

3、务后再回到起点。现要求以最少的车辆数和最少的车辆总行程来完成货物的派送任务。2、蚁群系统基本原理在蚂蚁群找到食物时,它们总能找到一条从食物到蚁穴之间的最短路径。因为蚂蚁在寻找食物时会在路途上释放一种特殊的信息素。当它们碰到一个还没有走过的路口时,会随机地挑选一条路径前行。与此同时释放出与路径长度有关的信息素。路径越长,释放的激素浓度越低。当后面的蚂蚁再次碰到这个路口时,会选择激素浓度较高的路径走。这样形成了一个正反馈,最优路径上的激素浓度越来越高,而其他的路径上激素浓度却会随时间的流逝而消减。最终整个蚁群会找出最优路径。在整个寻找过程中

4、,整个蚁群通过相互留下的信息素作用交换着路径信息,最终找到最优路径。3、基本蚁群算法求解车辆路径问题求解VRP问题的蚂蚁算法中,每只蚂蚁是一个独立的用于构造路线的过程,若干蚂蚁过程之间通过信息素值来交换信息,合作求解,并不断优化。这里的信息素值分布式存储在图中,与各弧相关联。蚂蚁算法求解VRP问题的过程如下:(1)参数初始化。令t=0和循环次数也NC=0,设置最大循环次数NCmax。,将m只蚂蚁随机地放到n个城市,将每条边(i,j)上的信息素设为一个常数,且=0(表示循环中路径(i,j)上的信息素增量),将出发点城市设置到禁忌表中;(2

5、)选择城市。每个蚂蚁按照状态变化规则逐步地构造一个解,即生成一条路。蚂蚁任务是在约束条件下,访问客户后回到仓库,生成一条回路。设蚂蚁k当前所在的顶点为i,则蚂蚁k由点i向点j移动要遵循一下公式(1)的状态变化规则而不断迁徙,按不同概率来选择下一个。(,)Exploitation()Exploration(1)(其中表示蚂蚁k当前选择的城市集合,为禁忌表,它记录蚂蚁k已经路过的城市,用来说明人工蚂蚁的记忆性。用于评价蚂蚁由点i向点j移动的启发函数,其值通常用距离的倒数求得,即。体现了信息素和启发信息对蚂蚁决策的影响。取值为1;参数描述启发

6、函数的重要性;参数()决定利用和开发的相对重要性,利用(Exploitation)指走最好的路,开发(Exploration)指按信息素浓度高概率高的原则选择V,q是在[0,1]上任取的随机数)当时,按公式(2)的概率进行选择:(3)修改禁忌表,即选择好之后将蚂蚁移动到下一个城市,并把该城市移动到蚂蚁个体的禁忌表中;(4)循环执行第2步和第3步,直到每只蚂蚁都生成一条路径;(5)计算第k只蚂蚁所走路径的总长度;(6)根据公式(3)(4)更新所有路径上的信息量;(3)(4)(7)若循环次数NCNCmax,则循环结束并输出计算结果,否则清空

7、禁忌表并转到第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为蚂蚁数目,取

8、值1…m,s为问题规模,取2…nvisited=ant_path(k,:);to_visit=setdiff([1:n],visited);c_temp=length(to_visit);ifc_temp~

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。