收藏 分享(赏)

基于Matlab物流配送路径优化问题遗传算法的实现.pdf

上传人:精品资料 文档编号:11112037 上传时间:2020-02-07 格式:PDF 页数:3 大小:116.01KB
下载 相关 举报
基于Matlab物流配送路径优化问题遗传算法的实现.pdf_第1页
第1页 / 共3页
基于Matlab物流配送路径优化问题遗传算法的实现.pdf_第2页
第2页 / 共3页
基于Matlab物流配送路径优化问题遗传算法的实现.pdf_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、第 29 卷总第 131 期 物流商坛 收稿日期 : 2005- 12- 22作者简介 : 弓晋丽 ( 1983- ) , 女 , 山西文水人 , 长安大学汽车学院硕士研究生 , 研究方向 : 物流系统 , 道路运输与枢纽规划。摘 要 : 在物流管理学中 , 研究物流配送路径优化问题并选取恰当的配送路径 , 可以加快对客户需求的响应速度 ,提高服务质量 , 增强客户对物流环节的满意度 , 降低服务商运作成本。但由于物流配送路径优化问题是一个 NP- hard 问题 , 使用传统优化方法很难得到最优解或满意解。本文基于Matlab 进行了物流配送路径优化问题遗传算法的编码 , 利用Matlab

2、强大的数值计算能力较好地解决了这个难题并进行了实例验证 , 对物流企业实现科学快捷的配送调度和路径的优化有实际意义。关键词 : 物流配送 ; 路径优化 ; 遗传算法 ; Matlab中图分类号 : U116.2 文献标识码 : A文章编号 : 1002- 3100 (2006) 07- 0103- 03Abstract: In logistics management research, studying the vehi-cle routing problem can accelerate the response speed of thecustomers demand, improve

3、the service quality, enhance cus-tomers satisfaction index, and reduce the business service op-eration cost. However, as a NP- hard problem, VRP is hard todraw as satisfactory conclusion by using traditional optimal al-gorithm. This paper makes the genetic algorithm programmefor the VRP based on the

4、 matlab. The problem is preferablysettled and it is proved that this arithmetic is more efficientby an example. It may be useful for the company to managethe physical distribution scientifically and to optimize the dis-tribution routing successfully.Key words: physical distribution; routing optimizi

5、ng; geneticalgorithm; Matlab物流配送路径优化问题遗传算法的实现The Realization of Genetic Algorithm of VRP Based on the Matlab基于 Matlab基于 /,01,2!弓晋丽 , 程志敏 ( 长安大学 , 陕西 西安 710064 )GONG Jin- li, CHENG Zhi- min (Changan University, Xian 710064, China)物流配送路径优化问题 , 即所谓的车辆路径问题 ( Vehicle Routing Problem ) , 一般定义为 : 对一系列发货点和收

6、货点 , 组织适当的车辆行使路线 , 在满足货物需求量、发送量、交发货时间、车辆容量限制、行驶里程限制和时间限制等的约束条件下 , 达到使路程最短、费用最少、时间尽量短 , 使用车辆尽量少等目标。 VRP 问题被证明为是一个 NP- hard 问题。国内外不少学者已经证明使用遗传算法在求解 VRP 问题时 , 具有巨大的优越性1。Matlab 功能强大 , 利用 Matlab 矩阵运算的强大功能来编写遗传算法程序有着巨大的优势 , 但由于用遗传算法求解车辆路径问题时有约束条件的限制 , 很难用一般的 Matlab 遗传算法工具箱实现。本文基于车辆路径问题约束条件的特殊性 , 采用改进的遗传算法

7、设计了 Matlab 编码 , 并通过实例验证了其有效性和优越性。1 车辆路径问题的数学模型数学模型表示如下1:目标函数 : minZ=ki = 0“kj = 0“ms = 0“cijxijs( 1 )约束条件 :ki = 0“giyis q s=1,2, ,m ( 2 )mi = 1“yis=1 i=1,2, ,km i=0$ ( 3 )ki = 0“xijs=yjsj=1, ,k; s=1,2, ,m ( 4 )103 物流科技!物流商坛 !主函数 ga计算目标值函数 countz初始化函数 intialise计算成本函数 fun适应度值计算函数 fit自然选择函数 selection交叉

8、函数 crossover变异函数 mutation染色体交叉函数intercross删除函数 del调整函数 adjust遗传算法程序总体框架图kj = 0“xijs=yisi=0,1, ,k; ( 5 )xijs=0 或 1 i,j=0,1, ,k; s=1,2, ,m ( 6 )yis=0 或 1 i,j=0,1, ,k; s=1,2, ,m ( 7 )上述模型中 , 配送中心编号为 0 , 客户点编号为 1,2, ,k ; i,j 为客户点序号 , s 为车辆序号 , gi为客户点 i 的货运量 , m 为车辆总数 , q 为车辆载重量 , cij表示点 i 到点 j 的运输成本 ; x

9、ijs: 决策变量 , 表示车 s 是否由 i 驶向 j , 如果是 , xijs值为 1 , 否则为 0 ; yis: 决策变量 , 表示客户点 i 的任务是否由车 s 完成 , 如果是 , yis值为 1 , 否则为 0 。目标函数式 ( 1 ) 要求合理安排车辆路径 , 使运输总成本最小。约束条件式 ( 2 ) 为汽车容量约束 ; 式 ( 3 ) 保证了每个客户点的运输任务仅由 1 辆车来完成 , 而所有运输任务则由 m 辆车协同完成 ; 式 ( 4 ) 和式 ( 5 ) 限制了到达和离开某一客户点的汽车有且仅有 1 辆。式 ( 6 ) 和式 ( 7 ) 分别限制了 xijs和 yis的

10、取值。2 物流配送优化问题的遗传算法2.1 构造染色体 , 产生初始种群解向量可编成一条长度为 k+m+1 的染色体 0,i1,i2, is,0,ij, ik,0, ,0,ip, ,iq,# $0 。在整条染色体中 , 自然数 ij表示第 j 个分仓库 , 代表总仓库的 0 的数目为 m+1 个 , 把自然数编码分为 m 段 , 形成 m 个子路径 , 表示由 m 辆车完成所有运输任务。初始化染色体时 , 先生成 k 个分仓库的一个全排列 , 再将 m+1 个 0 随机插入排列中。注意必须要有 2 个 0 被分别安排在排列的头部和尾部 , 并且在排列中不能出现连续的 2 个 0 。2.2 计算

11、适应度函数本文将运输成本变体 , 将容量约束式 ( 2 ) 转为运输成本的一部分 , 运输成本变为1:Z=ki = 0“kj = 0“ms = 0“cijxijs+Mmx = 1“maxki = 0“giyis- q,% 如果染色体交叉点处的基因不全为 0 , 则将交叉点左移 ( 右移 ) , 直到左右两个交叉点处的基因都为 0 , 再进行以上运算 , 削去相同的元素 , 再调整形成两个合法的个体基因串。对交叉成功所获得的子代应用 ( 7 )式求得其对应的适应值 , 并与其父代进行比较 , 选择四者中性能最好的 2 个进入种群。2.5 变异算子同现实情形相同 , 以一定的变异率随机选取发生变异

12、的个体染色体 , 然后在该染色体上随机选取两个非零基因位 , 把这两个位置上的基因互换 , 形成新的基因串。2.6 结束条件当算法的当前进化代数小于预先设定的 N 时 , 返回 2.2 节 , 算法继续。3 用 Matlab 编程实现遗传算法3.1 Matlab 函数模块构成本文在 Matlab 环境下编写的遗传算法程序由一系列完成特定功能的函数组成 , 程序的总体框架结构 , 即各函数 ( 模块 ) 的从属调用关系如图。根据这个图我们依次介绍各个函数。3.2 函数介绍主 函 数 ga , 其 函 数 结 构 为 : function Bestpop, best, trace, MInz,Me

13、anz=g(num, k, m, N, c, g, q, pmutation, pcross) 。 Matlab 以矩阵为基104 物流科技!物流商坛 !表 2 计算结果计算次序 1 2 3 4配送总距离 Z/km 73.0 77.8 73.5 67.5576.5671.0770.5876.0968.01071.5本运算单元 , 它的每一出口参数和入口参数均为矩阵。主程序 ga.m 的出、入参数组成是 : ( 1 ) 出口参数 : Bestpop : 迭代 N 步后的最终群体 ; Best : 最优适应度值 ; Minz : 记录每一代最小适应度值 ; Meanz : 记录每一代平均适应度值。

14、 ( 2 ) 入口参数 :num : 种群规模 ; k : 分仓库数 ; m : 车辆数 ; N : 迭代次数 ; c : 距离矩阵 ; g : 各客户点需求矩阵 ; q : 最大载重量 ; pmuta-tion : 变异概率 ; pcross : 交叉概率。初始化函数 intialise , 函数结构为 : function pop=intialise (num,k,m) 。入口参数 num, k, m 与主函数保持一致 , pop 为 num*(k+m+1) 维矩阵。矩阵每一行都代表一个路径。计算适应度函数由三步组成 : 第一步 , 先将已知给出的种群与距离矩阵 c 使用fun 函数一一对

15、应变为成本矩阵 L , 它的最后一列 sum 为前几项总和。其中的函数结构为 L=fun (c,pop) ; c 为距离矩阵 , pop 为一种群。第二步 , 由上步得到的 L 矩阵根据式 ( 8 ) 使用函数 countz 计算得到目标值。目标值计算函数 countz 函数结构为 func-tion z=countz (g,L,pop,q) 其中 g,pop,q 意义同上。第三步 , 由目标值使用 fit 函数计算出适应度值 , fit 函数结构为 function f=fit(z) ;交叉函数 crossover 格式 function newpop=cross over (d,g,q,p

16、op,pcross) , 首先以 pcross 的交叉概率成对选择 pop 中交叉染色个体 , 再调用 intercross 函数实现交叉这些成对被选个体的功能并依次调用 fun , countz , fit 函数计算对应的适应值与其父代进行比较 , 选择四者中适应度值较高的 2 个进入种群。与这个过程有重要关系的函数还有 : ( 1 ) 删除函数 del : 函数格式为 function a=del (a) , 它实现删除染色体中相同基因的功能 , 避免重复。 ( 2 )调整函数 adjust 函数格式为 function a=adjust (a) , 它实现将交叉后不合法的染色体调整为合法

17、的染色体 , 具体过程是通过调整 0基因的位置来达到使其合法的目的。变 异 函 数 mutation : 函 数 格 式 为 function newpop=mutation(pop,pmutation) , 函数通过以 pmutation 概率交换染色体上任两个非零基因实现变异功能。选择函数 select : 函数格式为 function selectpop=select (pop,pop1,d,g,q) 。 pop1 为 pop 经过交叉、变异后的种群。通过调用适应度函数 , 直接复制最优的染色体进入新的种群 , 其它的采用轮盘赌选择方法来选择。4 实例分析实例描述 : 配送中心数为 1

18、, 客户数 k 为 8 , 车辆总数 m 为 2 ; 车辆载重量 q 皆为 8 吨 ; 各客户点需求量为 gii=1,2, ,“ #8( 单位为吨 ) , 已知客户点与配送中心间的距离如表 1 ( 其中 0 表示中心仓库 ) , 要求合理安排车辆的运输路线 , 使总运输里程最小。参数设置为 num=10 , N=200 , =0.2 , pmutation=0.9 和 pcross=0.02 , 使用第三节程序经过上机运算 10 次 , 得到的计算结果见表 2 。从表中数据可以看出 , 10 次运行得到的结果均优于节约法所得的结果 79.5km 。而且第 4 次还得到了最优解 67.5 km

19、,其对应的配送路径为 : 0 4 7 6 0 ; 0 1 3 5 8 2 0 。计算结果表明 , 用 Matlab 进行物流配送路径优化遗传算法编码 , 可以方便有效地求得问题的最优解或近似最优解。表 1 客户点间距离及客户需求量表cij0 1 2 3 4 5 6 7 80 0 4 6 7.5 9 20 10 16 81 4 0 6.5 4 10 5 7.5 11 102 6 6.5 0 7.5 10 10 7.5 7.5 7.53 7.5 4 7.5 0 10 5 9 9 154 9 10 10 10 0 10 7.5 7.5 105 20 5 10 5 10 0 7 9 7.56 10 7

20、.5 7.5 9 7.5 7 0 7 107 16 11 7.5 6 7.5 9 7 0 108 8 10 7.5 15 10 7.5 10 10 0gi1 2 1 2 1 4 2 25 结束语本文用在 Matlab 环境下编程 , 实现了物流配送路径优化问题的遗传算法 , 程序在 Matlab6.5 中调试通过。通过实例分析得出用 Matlab 实现遗传算法具有可行性和有效性。在 Matlab 环境下使用物流配送路径优化问题遗传算法程序 , 能够利用其强大的矩阵运算能力 , 并且易与其它工具包结合进行算法仿真实现对其中参数进行优化方面的研究。参考文献 :1 唐坤 . 车辆路径问题中的遗传算法设计 J. 东华大学学报 : 自然科学版 , 2002,28(1):66- 70.2 林方明 , 马建军 , 等 . 物流配送决策中的运输网络优化问题研究 J. 山西建筑 , 2004(4):84- 85.3 殷铭 , 张兴华 , 戴先中 . 基于 MATLAB 的遗传算法实现 J. 电子技术应用 , 2000(1):9- 11.4 张志涌 . 精通 MATLAB6.5M. 北京 : 北京航空航天大学出版社 , 2003.%105 物流科技

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报