ImageVerifierCode 换一换
格式:PDF , 页数:3 ,大小:116.01KB ,
资源ID:11112037      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-11112037.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于Matlab物流配送路径优化问题遗传算法的实现.pdf)为本站会员(精品资料)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

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

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营业执照举报