基于Matlab物流配送路径优化问题遗传算法的实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
部和尾部, 并且在排列中不能出现连续的 2 个 0。
2.2 计算适应度函数
本文将运输成本变体 , 将容量约束式 ( 2) 转为运输成本的一部分, 运输成本变为[1]:
""" " %" & k k m
m
k
Z=
cij xijs +M max
gi yis - q,0
( 8)
i = 0j = 0s = 0
x=1
遗传算法程序总体框架图
·104·
! 物流商坛 !
物流科技
本运算单元, 它的每一出口参数和入口参数均为矩阵。主程序 ga.m 的出、入参数组成是: ( 1) 出口 参数 : Bestpop: 迭 代 N 步
后 的 最 终 群 体 ; Best: 最 优 适 应 度 值 ; Minz: 记 录 每 一 代 最 小 适 应 度 值 ; Meanz: 记 录 每 一 代 平 均 适 应 度 值 。 ( 2) 入 口 参 数 :
弓晋丽, 程志敏 ( 长安大学, 陕西 西安 710064)
GONG Jin- li, CHENG Zhi- min (Chang'an University, Xi'an 710064, China)
摘 要: 在物流管理学中, 研究物流配送路径优化问题 并选取恰当的配送路径, 可以加快对客户需求的响应速度, 提高服务质量, 增强客户对物流环节的满意度, 降低服务商 运 作 成 本 。 但 由 于 物 流 配 送 路 径 优 化 问 题 是 一 个 NP- hard 问 题, 使用传统优化方法很难得到最优解或满意解。本文基于 Matlab 进 行 了 物 流 配 送 路 径 优 化 问 题 遗 传 算 法 的 编 码 , 利 用 Matlab 强 大 的 数 值 计 算 能 力 较 好 地 解 决 了 这 个 难 题 并 进 行 了 实例验证, 对物流企业实现科学快捷的配送调度和路径的优 化有实际意义。
汽车有且仅有 1 辆。式 ( 6) 和式 ( 7) 分别限制了 xijs 和 yis 的取值。
2 物流配送优化问题的遗传算法
2.1 构造染色体, 产生初始种群
解向 量 可编 成 一 条长 度 为 k+m+1 的 染 色 体 #0,i1 ,i2 ,…is ,0,ij ,…ik ,0,…,0,ip ,…,iq ,0 $。 在 整 条 染 色 体 中 , 自 然 数 ij 表 示 第 j 个 分
自然选择函数 selection
基因互换, 形成新的基因串。
2.6 结束条件
交叉函数 crossover
当算法的当前进化代数小于预先设定的 N 时 , 返 回 2.2 节 , 算 法 继 续。
变异函数 mutation
3 用 Matlab 编程实现遗传算法
3.1 Matlab 函数模块构成
本 文 在 Matlab 环 境 下 编 写 的 遗 传 算 法 程 序 由 一 系 列 完 成 特 定 功 能 的函数组成, 程序的总体框架结构, 即各函数 ( 模块) 的从属调用关 系如图。根据这个图我们依次介绍各个函数。 3.2 函数介绍
i=0
M 为一 巨 大正 数 , 表 示当 一 辆 车的 货 运 量超 过 其 最大 承 载 量时 的 惩 罚系 数 , 在 进行 软 件 设 计 时 M 取 值 为 1 000 000。 将 运
输成本转换至适应度函数: fi =minz/zi , 其中 fi 为第 i 条染色体的适应度, minz 为当前群体中最优 染 色体 的 目 标值 , zi 为 第 i 条染
( 4)
i=0
收稿日期: 2005- 12- 22 作者简介: 弓晋丽( 1983- ) , 女, 山西文水人, 长安大学汽车学院硕士研究生, 研究方向: 物流系统, 道路运输与枢纽规划。
·103·
物流科技
! 物流商坛 !
k
"xijs =yis i=0,1,…,k;
( 5)
j=0
xijs =0 或 1 i,j=0,1,…,k; s=1,2,…,m
物流配送路径优 化问 题 , 即 所谓 的 车 辆路 径 问 题 ( Vehicle Routing Problem) , 一 般 定 义为 : 对 一 系列 发 货 点和 收 货 点, 组
织适当的车辆行使路线, 在满足货物需求量、发送量、交发货时间、车辆容量限制、行驶里程限制和时间限制等的约束条件
(k+m+1) 维矩阵。矩阵每一行都代表一 个路 径 。计 算适 应 度 函数 由 三 步组 成 : 第 一步 , 先 将 已知 给 出 的种 群 与 距离 矩 阵 c 使用
fun 函数一一对应变为成本矩阵 L, 它的最后一列 sum 为前几项总和。其中的函数结 构为 L=fun (c,pop); c 为 距 离矩 阵 , pop 为
主 函 数 ga, 其 函 数 结 构 为 : function [Bestpop, best, trace, MInz,
染色体交叉函数 intercross
删除函数 del 调整函数 adjust
Meanz]=g(num, k, m, N, c, g, q, pmutation, pcross)。Matlab 以 矩 阵 为 基
( 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 的 运输 成 本 ; xijs : 决 策 变 量 , 表 示 车 s 是 否 由 i 驶 向 j, 如 果 是 , xijs 值 为 1, 否
仓库, 代表总仓库的 0 的数目为 m+1 个, 把自然数编码分 为 m 段, 形 成 m 个 子路 径 , 表 示由 m 辆 车 完成 所 有 运输 任 务 。初始
化 染 色体 时 , 先 生成 k 个 分 仓库 的 一 个全 排 列 , 再 将 m+1 个 0 随 机 插 入 排 列 中 。 注 意 必 须 要 有 2 个 0 被 分 别 安 排 在 排 列 的 头
第 29 卷总第 131 期
·物流商坛·
物流科技
基于 M/,a0t1la,2b
物流配送路径优化问题遗传算法的实现
The Realization of Genetic Algor ithm of VRP Based on the Matlab
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
num: 种群规模; k: 分仓库数; m: 车辆数; N: 迭代次数; c: 距离矩阵; g: 各客户点需求矩阵; q: 最 大 载重 量 ; pmuta-
tion: 变异概率; pcross: 交叉概率。
初始化函数 intialise, 函数结构为: function [pop]=intialise (num,k,m)。入口参数 num, k, m 与主函数保持一 致 , pop 为 num*
一种群。第二步, 由上步得到的 L 矩阵 根 据 式 ( 8) 使 用 函 数 countz 计 算 得 到目 标 值 。目标 值 计 算函 数 countz 函 数结 构 为 func-
2.4 交叉算子
本文构造交叉算子为: 如果染色体交叉点处的两个基因都为 0, 则
将每一个染色体的交叉段移到对方染色体的首部得到新的染色体; 如 果染色体交叉点处的基因不全为 0, 则将交叉点左移 ( 右移) , 直到左
初始化函数 intialise
右两个交叉点处的基因都为 0来自百度文库 再进行以上运算, 削去相同的元素, 再 调整形成两个合法的个体基因串。对交叉成功所获得的子代应用 ( 7)
关键词: 物流配送; 路径优化; 遗传算法; Matlab
中图分类号: U116.2 文献标识码: A
文章编号: 1002- 3100 (2006) 07- 0103- 03
Abstr act: In logistics management research, studying the vehi- cle routing problem can accelerate the response speed of the customer's demand, improve the service quality, enhance cus- tomer's satisfaction index, and reduce the business service op- eration cost. However, as a NP- hard problem, VRP is hard to draw as satisfactory conclusion by using traditional optimal al- gorithm. This paper makes the genetic algorithm programme for the VRP based on the matlab. The problem is preferably settled and it is proved that this arithmetic is more efficient by an example. It may be useful for the company to manage the physical distribution scientifically and to optimize the dis- tribution routing successfully. Key wor ds: physical distribution; routing optimizing; genetic algorithm; Matlab
则为 0; yis : 决策变量, 表示客户点 i 的任务是否由车 s 完成, 如果是, yis 值为 1, 否则为 0。
目标函数式 ( 1) 要求合理安排车辆路径, 使运输总成本最小。约束条件式 ( 2) 为汽车容量约束; 式 ( 3) 保证了每个客
户点的运输任务仅由 1 辆车来完成, 而所有运输任务则由 m 辆车协同完成; 式 ( 4) 和式 ( 5) 限制了到达和离开某一客户点的
色体的目标值。最后 计 算 染色 体 适 应度 的 概 率分 布 : Pi =f/∑f 其中 Pi 表 示 第 i 条 染 色 体的 适 应 度概 率 分 布, fi 表 示 第 i 条染 色 体
的适应度。
2.3 自然选择
计算父代和子代的适应度, 选择父代和子代中性能最优的染色体进入种群, 其它的染色体采用轮盘赌选择方法来确定。
计算成本函数 fun
式求得其对应的适应值, 并与其父代进行比较, 选择四者中性能最好 的 2 个进入种群。
计算目标值函数 countz
2.5 变异算子 同现实情形相同, 以一定的变异率随机选取发生变异的个体染色
主函数 ga
适应度值计算函数 fit
体, 然后在该染色体上随机选取两个非零基因位, 把这两个位置上的
问 题 时有 约 束 条件 的 限 制, 很 难 用 一 般 的 Matlab 遗 传 算 法 工 具 箱 实 现 。 本 文 基 于 车 辆 路 径 问 题 约 束 条 件 的 特 殊 性 , 采 用 改 进
的遗传算法设计了 Matlab 编码, 并通过实例验证了其有效性和优越性。
1 车辆路径问题的数学模型
下, 达到使路程最短、费用最少、时间尽量短, 使用车辆尽量少等目标。VRP 问题被证明为是一个 NP- hard 问 题。国 内 外 不少
学者已经证明使用遗传算法在求解 VRP 问题时, 具有巨大的优越性[1]。
Matlab 功能强大, 利用 Matlab 矩阵运算的强大功能来编写遗传算法程序有着巨大的优势, 但由于用遗传算法求解 车 辆 路径
数学 模 型表 示 如 下[1]:
k km
""" 目标函数: minZ=
cij xijs
( 1)
i = 0j = 0s = 0
约束条件:
k
"gi yis ≤q s=1,2,…,m
( 2)
i=0
m
" $ yis =
i=1
1 m
i=1,2,…,k i=0
( 3)
k
"xijs =yjs j=1,…,k; s=1,2,…,m