当前位置:
文档之家› 基于Matlab物流配送路径优化问题遗传算法的实现
基于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, 否
自然选择函数 selection
基因互换, 形成新的基因串。
2.6 结束条件
交叉函数 crossover
当算法的当前进化代数小于预先设定的 N 时 , 返 回 2.2 节 , 算 法 继 续。
变异函数 mutation
3 用 Matlab 编程实现遗传算法
3.1 Matlab 函数模块构成
本 文 在 Matlab 环 境 下 编 写 的 遗 传 算 法 程 序 由 一 系 列 完 成 特 定 功 能 的函数组成, 程序的总体框架结构, 即各函数 ( 模块) 的从属调用关 系如图。根据这个图我们依次介绍各个函数。 3.2 函数介绍
(k+m+1) 维矩阵。矩阵每一行都代表一 个路 径 。计 算适 应 度 函数 由 三 步组 成 : 第 一步 , 先 将 已知 给 出 的种 群 与 距离 矩 阵 c 使用
fun 函数一一对应变为成本矩阵 L, 它的最后一列 sum 为前几项总和。其中的函数结 构为 L=fun (c,pop); c 为 距 离矩 阵 , pop 为
第 29 卷总第 131 期
·物流商坛·
物流科技
基于 M/,a0t1la,2b
物流配送路径优化问题遗传算法的实现
The Realization of Genetic Algor ithm of VRP Based on the 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
仓库, 代表总仓库的 0 的数目为 m+1 个, 把自然数编码分 为 m 段, 形 成 m 个 子路 径 , 表 示由 m 辆 车 完成 所 有 运输 任 务 。初始
化 染 色体 时 , 先 生成 k 个 分 仓库 的 一 个全 排 列 , 再 将 m+1 个 0 随 机 插 入 排 列 中 。 注 意 必 须 要 有 2 个 0 被 分 别 安 排 在 排 列 的 头
弓晋丽, 程志敏 ( 长安大学, 陕西 西安 710064)
GONG Jin- li, CHENG Zhi- min (Chang'an University, Xi'an 710064, China)
摘 要: 在物流管理学中, 研究物流配送路径优化问题 并选取恰当的配送路径, 可以加快对客户需求的响应速度, 提高服务质量, 增强客户对物流环节的满意度, 降低服务商 运 作 成 本 。 但 由 于 物 流 配 送 路 径 优 化 问 题 是 一 个 NP- hard 问 题, 使用传统优化方法很难得到最优解或满意解。本文基于 Matlab 进 行 了 物 流 配 送 路 径 优 化 问 题 遗 传 算 法 的 编 码 , 利 用 Matlab 强 大 的 数 值 计 算 能 力 较 好 地 解 决 了 这 个 难 题 并 进 行 了 实例验证, 对物流企业实现科学快捷的配送调度和路径的优 化有实际意义。
关键词: 物流配送; 路径优化; 遗传算法; 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
主 函 数 ga, 其 函 数 结 构 为 : function [Bestpop, best, trace, MInz,
染色体交叉函数 intercross
删除函数 del 调整函数 adjust
Meanz]=g(num, k, m, N, c, g, q, pmutation, pcross)。Matlab 以 矩 阵 为 基
下, 达到使路程最短、费用最少、时间尽量短, 使用车辆尽量少等目标。VRP 问题被证明为是一个 NP- hard 问 题。国 内 外 不少
学者已经证明使用遗传算法在求解 VRP 问题时, 具有巨大的优越性[1]。
Matlab 功能强大, 利用 Matlab 矩阵运算的强大功能来编写遗传算法程序有着巨大的优势, 但由于用遗传算法求解 车 辆 路径
物流配送路径优 化问 题 , 即 所谓 的 车 辆路 径 问 题 ( Vehicle Routing Problem) , 一 般 定 义为 : 对 一 系列 发 货 点和 收 货 点, 组
织适当的车辆行使路线, 在满足货物需求量、发送量、交发货时间、车辆容量限制、行驶里程限制和时间限制等的约束条件
( 4)
i=0Biblioteka 收稿日期: 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
2.4 交叉算子
本文构造交叉算子为: 如果染色体交叉点处的两个基因都为 0, 则
将每一个染色体的交叉段移到对方染色体的首部得到新的染色体; 如 果染色体交叉点处的基因不全为 0, 则将交叉点左移 ( 右移) , 直到左
初始化函数 intialise
右两个交叉点处的基因都为 0, 再进行以上运算, 削去相同的元素, 再 调整形成两个合法的个体基因串。对交叉成功所获得的子代应用 ( 7)
色体的目标值。最后 计 算 染色 体 适 应度 的 概 率分 布 : Pi =f/∑f 其中 Pi 表 示 第 i 条 染 色 体的 适 应 度概 率 分 布, fi 表 示 第 i 条染 色 体
的适应度。
2.3 自然选择
计算父代和子代的适应度, 选择父代和子代中性能最优的染色体进入种群, 其它的染色体采用轮盘赌选择方法来确定。
num: 种群规模; k: 分仓库数; m: 车辆数; N: 迭代次数; c: 距离矩阵; g: 各客户点需求矩阵; q: 最 大 载重 量 ; pmuta-
tion: 变异概率; pcross: 交叉概率。
初始化函数 intialise, 函数结构为: function [pop]=intialise (num,k,m)。入口参数 num, k, m 与主函数保持一 致 , pop 为 num*
计算成本函数 fun
式求得其对应的适应值, 并与其父代进行比较, 选择四者中性能最好 的 2 个进入种群。
计算目标值函数 countz
2.5 变异算子 同现实情形相同, 以一定的变异率随机选取发生变异的个体染色
主函数 ga
适应度值计算函数 fit
体, 然后在该染色体上随机选取两个非零基因位, 把这两个位置上的
一种群。第二步, 由上步得到的 L 矩阵 根 据 式 ( 8) 使 用 函 数 countz 计 算 得 到目 标 值 。目标 值 计 算函 数 countz 函 数结 构 为 func-
问 题 时有 约 束 条件 的 限 制, 很 难 用 一 般 的 Matlab 遗 传 算 法 工 具 箱 实 现 。 本 文 基 于 车 辆 路 径 问 题 约 束 条 件 的 特 殊 性 , 采 用 改 进