资源预览内容
第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
第9页 / 共11页
第10页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
S . . . . . . 资 料. . 蚁群算法在车辆路径问题中的应用 摘 要 蚁群算法(Ant Colony Optimization, ACO )是意大利学者M.Dorigo等人通过模拟蚁群觅食行为提出的一种基于种群的模拟进化算法。 通过介绍蚁群觅食过程中基于信息素 (pheromone )的最短路径的搜索策略, 给出了基于 MATLAB的蚁群算法在车辆路径问题(Vehicle Routing Problem, VRP )中的应用。蚁群算法采用分布式并行计算机制,易于其他方法结合,而且具有较强的鲁棒性,但搜索时间长,容易陷入局部最优解。针对蚁群算法存在的过早收敛问题,加入 2opt 方法对问题求解进行了局部优化,计算机仿真结果表明,这种混合型蚁群算法对求解车辆路径问题有较好的改进效果。 关键词:蚁群算法、 组合优化、车辆路径问题、2-opt 方法 1. 车辆路径问题 车辆路径问题(VRP)来源于交通运输,1959 年由 Dantzig提出,它是组合优化问题中一个典型的 NP-hard 问题。最初用于研究亚特兰大炼油厂向各个加油站投送汽油的运输路径优化问题,并迅速成为运筹学和组合优化领域的前沿和研究热点。 车路优化问题如下: S . . . . . . 资 料. . 已知有一批客户,各客户点的位置坐标和货物需求已知,供应商具有若干可供派送的车辆,运载能力给定,每辆车都是从起点出发,完成若干客户点的运送任务后再回到起点。现要求以最少的车辆数和最少的车辆总行程来完成货物的派送任务。 2、蚁群系统基本原理 在蚂蚁群找到食物时,它们总能找到一条从食物到蚁穴之间的最短路径。 因为蚂蚁在寻找食物时会在路途上释放一种特殊的信息素。当它们碰到一个还没有走过的路口时, 会随机地挑选一条路径前行。与此同时释放出与路径长度有关的信息素。 路径越长,释放的激素浓度越低。当后面的蚂蚁再次碰到这个路口时,会选择激素浓度较高的路径走。 这样形成了一个正反馈, 最优路径上的激素浓度越来越高, 而其他的路径上激素浓度却会随时间的流逝而消减。 最终整个蚁群会找出最优路径。 在整个寻找过程中,整个蚁群通过相互留下的信息素作用交换着路径信息, 最终找到最优路径。 3、基本蚁群算法求解车辆路径问题 求解 VRP问题的蚂蚁算法中,每只蚂蚁是一个独立的用 于构造路线的过程,若干蚂蚁过程之间通过信息素值来交换信 息,合作求解,并不断优化。这里的信息素值分布式存储在图 模拟进化算法通过介绍蚁群觅食过程中基于信息素的最短路径的搜索策略给出了基于的蚁群算法在车辆路径问题中的应用蚁群算法采用分布式并行计算机制易于其他方法结合而且具有较强的鲁棒性但搜索时间长容易陷入局部最优解对求解车辆路径问题有较好的改进效果关键词蚁群算法组合优化车辆路径问题方法车辆路径问题车辆路径问题来源于交通运输年提出它是组合优化问题中一个典型的问题最初用于研究亚特兰大炼油厂向各个加油站投送汽油的运输路的位置坐标和货物需求已知供应商具有若干可供派送的车辆运载能力给定每辆车都是从起点出发完成若干客户点的运送任务后再回到起点现要求以最少的车辆数和最少的车辆总行程来完成货物的派送任务蚁群系统基本原理在蚂蚁群S . . . . . . 资 料. . 中,与各弧相关联。蚂蚁算法求解VRP问题的过程如下: (1) 参数初始化。 令 t=0 和循环次数也 NC=0 ,设置最大循环次数 NCmax 。 ,将 m 只蚂蚁随机地放到 n 个城市, 将每条边(i,j)上的信息素设为一个常数, 且ij=0(ij表示循环中路径(i,j)上的信息素增量) ,将出发点城市设置到禁忌表中; (2) 选择城市。 每个蚂蚁按照状态变化规则逐步地构造一个解,即生成一条路。蚂蚁任务是在约束条件下,访问客户后回到仓库,生成一条回路。 设蚂蚁 k 当前所在的顶点为 i , 则蚂蚁 k 由点 i 向点 j 移动要遵循一下公式(1)的状态变化规则而不断迁徙,按不同概率来选择下一个。 arg maxijijv (0qq,kkallowed) Exploitation vV (0qq) Exploration (1) (其中0,1,1kkallowedntabu 表示蚂蚁 k 当前选择的城市集合,ktabu为禁忌表,它记录蚂蚁 k 已经路过的城市,用来说明人工蚂蚁的记忆性。ij用于评价蚂蚁由点i 向点j 移动的启发函数,其值通常用距离的倒数求得,即 1,ijijd c c。,体现了信息素和启发信息对蚂蚁决策的影响。取值为 1;参数0描述启发函数的重要性;参数0q(001q)决定利用和开发的相对重要性,利用(Exploitation )指走最好的路,开发(Exploration )指按信息素浓度高概率高的原则选择 V, q 是在0,1上任取的随机数) 模拟进化算法通过介绍蚁群觅食过程中基于信息素的最短路径的搜索策略给出了基于的蚁群算法在车辆路径问题中的应用蚁群算法采用分布式并行计算机制易于其他方法结合而且具有较强的鲁棒性但搜索时间长容易陷入局部最优解对求解车辆路径问题有较好的改进效果关键词蚁群算法组合优化车辆路径问题方法车辆路径问题车辆路径问题来源于交通运输年提出它是组合优化问题中一个典型的问题最初用于研究亚特兰大炼油厂向各个加油站投送汽油的运输路的位置坐标和货物需求已知供应商具有若干可供派送的车辆运载能力给定每辆车都是从起点出发完成若干客户点的运送任务后再回到起点现要求以最少的车辆数和最少的车辆总行程来完成货物的派送任务蚁群系统基本原理在蚂蚁群S . . . . . . 资 料. . 当0qq时,按公式(2)的概率进行选择: 0ijijkijijk allowedktj allowedtkijpt (3)修改禁忌表,即选择好之后将蚂蚁移动到下一个城市,并把该城市移动到蚂蚁个体的禁忌表中; (4) 循环执行第 2 步和第 3 步, 直到每只蚂蚁都生成一条路径; (5)计算第 k 只蚂蚁所走路径的总长度kL; (6)根据公式(3) (4)更新所有路径上的信息量; 1(t)ijijijtnp (3) 1mkijijk (4) (7)若循环次数 NCNCmax, 则循环结束并输出计算结果,否则清空禁忌表并转到第 2 步。 相应的 MATLAB程序如下: % 第一步:变量初始化 L_nn,P_nn=NearestNeighborTSP(d);%nnL是最近邻域启发算法产生的路线长度 L_best=inf; T_best=0; 模拟进化算法通过介绍蚁群觅食过程中基于信息素的最短路径的搜索策略给出了基于的蚁群算法在车辆路径问题中的应用蚁群算法采用分布式并行计算机制易于其他方法结合而且具有较强的鲁棒性但搜索时间长容易陷入局部最优解对求解车辆路径问题有较好的改进效果关键词蚁群算法组合优化车辆路径问题方法车辆路径问题车辆路径问题来源于交通运输年提出它是组合优化问题中一个典型的问题最初用于研究亚特兰大炼油厂向各个加油站投送汽油的运输路的位置坐标和货物需求已知供应商具有若干可供派送的车辆运载能力给定每辆车都是从起点出发完成若干客户点的运送任务后再回到起点现要求以最少的车辆数和最少的车辆总行程来完成货物的派送任务蚁群系统基本原理在蚂蚁群S . . . . . . 资 料. . 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 为蚂蚁数目,取值 1m, s 为问题规模,取 2n visited=ant_path(k,:); to_visit=setdiff(1:n,visited); c_temp=length(to_visit); if c_temp=0 p=zeros(1,c_temp); for i=1:c_temp p(i)=(tau(current_node,to_visit(i)alpha*(1/d(current_node, to_visit(i)beta:% 计算 ijij end sun_p=sum(p); q0=rand; select=to_visit(c_temp); if q0capacity_limit % 不满足约束条件则回到仓库 select=1; end total_load=0; city_to_visit=select; ant_path(k,s)=city_to_visit; end 模拟进化算法通过介绍蚁群觅食过程中基于信息素的最短路径的搜索策略给出了基于的蚁群算法在车辆路径问题中的应用蚁群算法采用分布式并行计算机制易于其他方法结合而且具有较强的鲁棒性但搜索时间长容易陷入局部最优解对求解车辆路径问题有较好的改进效果关键词蚁群算法组合优化车辆路径问题方法车辆路径问题车辆路径问题来源于交通运输年提出它是组合优化问题中一个典型的问题最初用于研究亚特兰大炼油厂向各个加油站投送汽油的运输路的位置坐标和货物需求已知供应商具有若干可供派送的车辆运载能力给定每辆车都是从起点出发完成若干客户点的运送任务后再回到起点现要求以最少的车辆数和最少的车辆总行程来完成货物的派送任务蚁群系统基本原理在蚂蚁群S . . . . . . 资 料. . % 第四步:更新信息素值 tau(current_node,city_to_visit)=(1-rho)*tau(current_node, city_to_visit)+tan0; tau(Tour_min(i),Tour_min(i+1)=(1-rho)*tau(Tour_min(i), Tour_min(i+1)+rho/L_gb; % 第五步:禁忌表清零 ant_path=zeros(m,n+1); end % 第六步:输出结果 Pos=find(L_best=min(L_best); Shortest_Route=T_best(Pos(1),:) Shortest_Length=L_best(Pos(1) 4、基本蚁群算法的优缺点 基本蚁群算法具有很强的发现解的能力,这是因为该算法不仅利用了正反馈原理,在一定程度上可以加快进化过程,而且是一种本质上并行的算法, 不同个体之间不断进行信息交流和传递,从而能够相互协作,有利于发现较好解。 具有如下的优点: (1)分布式本质并行算法, 它是一种基于种群的进化算法, 本质上具有并行性,易于并行实现; (2)具有较强的鲁棒性, 对其模型稍加修改, 便可以应用于其他模拟进化算法通过介绍蚁群觅食过程中基于信息素的最短路径的搜索策略给出了基于的蚁群算法在车辆路径问题中的应用蚁群算法采用分布式并行计算机制易于其他方法结合而且具有较强的鲁棒性但搜索时间长容易陷入局部最优解对求解车辆路径问题有较好的改进效果关键词蚁群算法组合优化车辆路径问题方法车辆路径问题车辆路径问题来源于交通运输年提出它是组合优化问题中一个典型的问题最初用于研究亚特兰大炼油厂向各个加油站投送汽油的运输路的位置坐标和货物需求已知供应商具有若干可供派送的车辆运载能力给定每辆车都是从起点出发完成若干客户点的运送任务后再回到起点现要求以最少的车辆数和最少的车辆总行程来完成货物的派送任务蚁群系统基本原理在蚂蚁群S . . . . . . 资 料. . 问题; (3)易于与其他方法结合, 基本蚁群算法很容易与多种启发式算法结合,以改善算法的性能; (4)其优化过程不依赖于优化问题本身的严格数学性质, 如连续性,可导性及目标函数和约束函数的精确数学描述; (5)是一类概率型的全局搜索方法, 这种非确定性使算法能够有更多的机会求得全局最优解; 基本蚁群算法是一种有效的随机搜索算法,但也存在一些缺陷: (1)与其他方法相比,该算法一般需要较长的时间; (2)该算法易出现停滞现象, 即搜索进行到一定程度后, 所有个体所发现的解完全一致,不能对解空间进一步搜索,不利于发现更好的解。 5、一种新的改进蚁群算法 用2-opt 方法局部优化用蚁群算法构造的VRP解 不同的智能算法出现停滞现象的原因各不相同,但结果是相同的,即所求的解越来越相似,避免这种现象的方法也是一致的,那就是增加解的多样性。蚂蚁算法尽管能够分布式并行搜索,但在限定的时间或代数内找到最优解仍是困难的, 可能找到的只是可行的近优解,这一点与遗传算法相似。 用于启发式局部优化的方法很多!,主要包括2-opt,3-opt, 顶点重定位(relocate ),交换(exchange )和交叉(cross) 等,其中最实用有效 的是2-opt 和3-opt 算法。 模拟进化算法通过介绍蚁群觅食过程中基于信息素的最短路径的搜索策略给出了基于的蚁群算法在车辆路径问题中的应用蚁群算法采用分布式并行计算机制易于其他方法结合而且具有较强的鲁棒性但搜索时间长容易陷入局部最优解对求解车辆路径问题有较好的改进效果关键词蚁群算法组合优化车辆路径问题方法车辆路径问题车辆路径问题来源于交通运输年提出它是组合优化问题中一个典型的问题最初用于研究亚特兰大炼油厂向各个加油站投送汽油的运输路的位置坐标和货物需求已知供应商具有若干可供派送的车辆运载能力给定每辆车都是从起点出发完成若干客户点的运送任务后再回到起点现要求以最少的车辆数和最少的车辆总行程来完成货物的派送任务蚁群系统基本原理在蚂蚁群S . . . . . . 资 料. . 因此,我们在蚂蚁算法中混入局部优化算法,对每代构造 的解进行改进,从而进一步缩短解路线的长度,以加快蚂蚁算 法的收敛速度。 将2-opt 方法混入蚂蚁算法求解过程中,对每 代迭代产生的最优解的相邻边进行交换。 将2-opt 方法混入蚂蚁算法求解过程中: repeat modified_tour:=apply_2-opt_move(current_tour) if length(modified_tour)0) r= All_line(1,1); 模拟进化算法通过介绍蚁群觅食过程中基于信息素的最短路径的搜索策略给出了基于的蚁群算法在车辆路径问题中的应用蚁群算法采用分布式并行计算机制易于其他方法结合而且具有较强的鲁棒性但搜索时间长容易陷入局部最优解对求解车辆路径问题有较好的改进效果关键词蚁群算法组合优化车辆路径问题方法车辆路径问题车辆路径问题来源于交通运输年提出它是组合优化问题中一个典型的问题最初用于研究亚特兰大炼油厂向各个加油站投送汽油的运输路的位置坐标和货物需求已知供应商具有若干可供派送的车辆运载能力给定每辆车都是从起点出发完成若干客户点的运送任务后再回到起点现要求以最少的车辆数和最少的车辆总行程来完成货物的派送任务蚁群系统基本原理在蚂蚁群S . . . . . . 资 料. . s= All_line(1,2); All_line=setdiff(All_line,r s, rows );% 排除已经处理过的边 ctemp=T(r+1:s-1); n_ctemp=length(ctemp); temp=zeros(1,n_ctemp); for i=0: n_ctemp-1 temp(i+1)= ctemp(n_ctemp-i); end current_T=T(1 :r-1)T(s) temp T(r) T(s+1:n);% 进行边交换 current_T=current_T current_T(1);% 形成回路 current_L=0; for i=1:n current_L= current_L+d(current_T(i), current_T(i+1); end if(current_LL) T= current_T; L= current_L; All_line=N; end end % 此时的T为经过2-opt 后的最短路劲 6、 改进蚁群算法和基本蚁群算法实验对比 选用VRPLIB 中列出的Christofides 实例。对问题C1分别用基模拟进化算法通过介绍蚁群觅食过程中基于信息素的最短路径的搜索策略给出了基于的蚁群算法在车辆路径问题中的应用蚁群算法采用分布式并行计算机制易于其他方法结合而且具有较强的鲁棒性但搜索时间长容易陷入局部最优解对求解车辆路径问题有较好的改进效果关键词蚁群算法组合优化车辆路径问题方法车辆路径问题车辆路径问题来源于交通运输年提出它是组合优化问题中一个典型的问题最初用于研究亚特兰大炼油厂向各个加油站投送汽油的运输路的位置坐标和货物需求已知供应商具有若干可供派送的车辆运载能力给定每辆车都是从起点出发完成若干客户点的运送任务后再回到起点现要求以最少的车辆数和最少的车辆总行程来完成货物的派送任务蚁群系统基本原理在蚂蚁群S . . . . . . 资 料. . 本蚁群算法和加入2-opt 方法的蚁群算法进行求解, 每个程序各运行30次, m、 n取客户和仓库数目之和, 计算如下表: 两种算法结果比较 1,5,0.75,max30rhoNC 平均值偏差最优解偏差614.6717.16%588.6912.21%585.2311.55%558.216.41%算法基本蚁群算法2-opt混合算法 计算结果如上表所示, 可以看出基本蚁群算法和加入2-opt的混合算法相比,后者的解得到明显改善。 综上所述,混合算法改进了蚂蚁算法的局部搜索能力,因 而提高了算法的求解能力,可得到更短的路线长度,明显优于 基本蚁群算法,验证了改进措施的有效性。 参考文献 模拟进化算法通过介绍蚁群觅食过程中基于信息素的最短路径的搜索策略给出了基于的蚁群算法在车辆路径问题中的应用蚁群算法采用分布式并行计算机制易于其他方法结合而且具有较强的鲁棒性但搜索时间长容易陷入局部最优解对求解车辆路径问题有较好的改进效果关键词蚁群算法组合优化车辆路径问题方法车辆路径问题车辆路径问题来源于交通运输年提出它是组合优化问题中一个典型的问题最初用于研究亚特兰大炼油厂向各个加油站投送汽油的运输路的位置坐标和货物需求已知供应商具有若干可供派送的车辆运载能力给定每辆车都是从起点出发完成若干客户点的运送任务后再回到起点现要求以最少的车辆数和最少的车辆总行程来完成货物的派送任务蚁群系统基本原理在蚂蚁群
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号