基于最优路线选址的遗传算法程序设计与实现
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
收稿日期: 2009-03-05 作者简介: 封 军(1985-),男,铜陵学院数学与计算机科学系计算机专业学生。
-125-
《
》2009 年第 2 期
其中:
为虚拟结点数, 为增广距离
矩阵,即原有的 增加 m-1 行和 m-1 列,每一新的行或列都
是原 第一行和第一列的复制,增广矩阵的其它原素为无穷
大学生文萃
《
》2009 年第 2 期
基于最优路线选址的遗传算法程序设计与实现
封军
(铜陵学院, 安徽 铜陵 244000)
一、基于最优路线的配送中心选址模型 1. 建立最优路线选址模型的条件假设 (1)仅在一定被选范围内考虑新的配送中心设置; (2)配送 区域内各需求点数量已知,地点确定; (3)该配送区域内只允许 设一个配送中心,负责对所有需求点提供配送服务; (4)连接各 需求点之间道路长度和通行方向已知,由于假定运输费用与道
中有且仅有一辆车为需求点 i 提供服务,其数学表达式为:
(i=1,2,3…,n),m 为车辆总数
(2)在车辆 k 访问区域内,由其它任意点(i)进入某点(j)的 行程有且仅有一次,数学表达式为:
(i=1,2,…,n) k=1,2,…,m
(3)在车辆 k 的访问区域内,从某点( j)出发进入其他任意 点(i)的行程有且仅有一次,数学表达式为:
路长度成正比,所以道路的长度可直接看成经过该道路的运输
费用; (5) 每条配送路径上各需求点的需求量之和不超过汽车 的载重量; (6) 每条配送路径的长度不超过汽车一次配送的最 大行驶距离。
2. 最优路线选址问题的数学模型 设配送中心有 m 辆车参与配送服务,每辆车只为各自配 送区域内的需求点提供服务,且在各自配送区域内有且只有一
三、结论
本文在物流配送中心选址优化问题的数学模型的基础上,
构造了求解配送中心选址优化的遗传算法,模拟实例的计算机
结果表明,遗传算法是一种性能优良的启发式搜索方法,利用
该方法可以方便有效地求得物流配送中心选址优化的最优解。
用遗传算法进行配送中心选址优化,比一般的数学规划方法简
单,并且运算速度快,特别是当问题比较复杂时,其特点更明
为了便于模型求解可以采用下述的方法将 m 辆车参与配
送的选址数学模型转化成单一车辆参与配送的数学模型,其转
化方法如下:对于 m 辆车参与配送,配送系统有 n 个需求点的
选址问题,假设配送中心在网络图中的编号为 1,其它需求点
的编号依次为 2,3,4,…,n。首先将配送中心的编号复制 m-1
个,形成另外的 m-1 虚拟需求点,每一个虚拟点同其它需求点
一样与另外的需求点相连,但 m-1 个虚拟需求点之间互不相
连,这样就形成了结点集(1,2,3,…,n,n+1,n+m-1),对模型求
解后可得到一个闭合回路即配送路线,然后将每个虚拟需求点
合并成一个点,这样一个回路就分解成 m 个分线路,即形成 m
辆车各自的配送线路。举例来说,对于 7 个需求点,用 3 辆车参
数是求最小值,因此必须做一下转换令适应度函数为 ,并使
。
(4)选择操作算法设计 本文采用轮转法作为选择方法,它是一种正比选择策略, 能够根据与适值成正比的概率选出新的种群。轮转法由以下四 步构成。 1)对各个染色体 计算适值
2)计算种群中所有染色体适值的和
3)对各染色体 计算选择概率 4)对各个染色体计算累积概率
对车辆 1:1-2-3-10(1); 对车辆 2:10(( 1)-7-4-9(1); 对车辆 3:9(1)-6-5-8-1; (2)确定初始种群的算法设计 初始种群,即进化开始的群体,本文有采用邻近启发式方 法来产生初始群体,具体操作如下:以配送中心 1 作为出发点, 在未访问过的需求点 2,3,…n,n+1,…,n+m-1 中选择与其邻近 的一个需求点作为后继,如此操作直到所有需求点均被访问 过,这样就构成了一条初始线路,即生成了一条初始染色体。若 种群规模为 N,则上述操作进行 N 次生成 N 条染色体,从而形 成了一个规模为 N 的初始种群,生成初始种群的算法过程如图 2-1 和 2-2 所示。
对车辆 1:1-2-3-10(1);
对车辆 2:10(1)-7-4-9(1);
对车辆 3:9(1)-6-5-8-1;
通过上述方法可将数学模型转化为如下的数学模型:
ቤተ መጻሕፍቲ ባይዱ
令
!0, 表示弧(i,j)不在线路上 1, 表示弧(i,j)在线路上
目标函数:
S.T:
" $ $ $ # $ $ $ %
j=1,2,…,R i=1,2,…,R
( j=1,2,…,n) k=1,2,…,m
(4)仅满足上述两个约束条件 并不能保证形成一条回路配送路线
如图 1-1 所示的支路 1-2-3-1 与支 路 6-4-5-6 就不构成一条配送回 路,为避免出现这种现象还需增加
一个约束条件,使任意两点之间都
有线路将它们连起来,即当 n 点被 任意分割成两个非空集合 Q 和Q后, 图 1-1 支路示意图 要求在回路中至少存在一个以 Q 中 某点 i 为起点,并以Q中某点 j 为终 点的行程,若以 Q 表示集合(1,2,3,…,n)的任一非空真子集, 则上述要求的约束条件数学表达式为:
定的要求,针对本问题遗传算子必须满足的要求是:对任意两
条配送路线进行交叉操作之后,都能够得到另外两条新的并
且有实际意义的配送路线。常规的单点交叉和多点交叉因可
能产生不合法的子代而变得不可使用。因此本文采用由
Goldberg 和 Lingle 提出的 PMX (Partially Mapped Crossover)
参考文献: [1]李 军,郭耀煌. 车辆调度理论与方法[M]. 北京:中国物资出版
社,2001. [2]陈国良,王煦法,庄镇泉 等. 遗传算法及其应用[M]. 北京:人民
邮电出版社,1996. [3]Z.米凯利维茨. 演化程序— ——遗传算法和数据编码的结合[M].
北京:科学出版社,2000.
-126-
次经过各需求点,然后返回配送中心,求 m 辆车各自的最短路 径,可以建立在以下的数学模型之上。
假设:
(1) 为从 i 点到 j 点的实际路程,其中
为一
充分大的正数。
(2)
!1 车辆 k 通过弧(i,j) 0 否则
(3)
!1 车辆 k 为 i 点提供服务 0 否则
根据问题要求,有如下约束:
(1)对于 m 辆车,有且仅有一辆访问需求点 i,即在 m 辆车
显。本文所构造的配送中心选址问题的遗传算法,包括巧妙设
计的编码方法、个体适应值的计算方法以及选择、交叉和变异
算子,对解决类似的组合优化问题如车间布局优化、车辆调度
优化等均具有一定的参考价值。
图 2-1 生成初始种群算法框图
图 2-2 生成初始种群算法过程
(3)确定适应度函数 适应度函数一般要求为求解最大值,而选址模型的目标函
选择过程就是旋转转轮 N 次,N 为种群规模,每次按如下
方式选出一个染色体来构造新的种群:
选择过程:1、在区间[0,1]内产生一个均匀分布的伪随机
数 r;2、若 r≤q1,则选择第一个染色体 v1,否则,选择第 K 个染
色体 vk 使得
成立。
(5)交叉算子的设计
交叉运算是遗传操作的主要运算之一,其设计要满足一
根据上述条件,可以写出该问题的数学模型如下:
目标函数:
S.T:
" $ $$ # $ $$ %
,
(i=1,2,3…,n) m 为车辆总数 (i=1,2,…,n) k=1,2,…,m ( j=1,2,…,n) k=1,2,…,m
,
0 或 1, (i=1,2,…,n), ( j=1,2,…,n)
0 或 1, ( j=1,2,…,n)
交叉,即部分映射交叉,它应用修复程序来解决简单两点交叉
引起的非法性。
(6)变异算子设计
针对本问题的特点,及编码方式,对遗传算法的变异算子
设计有如下要求:对任意一个个体编码串进行变异操作后,所
产生的新的个体子代应该能够对应于一条具有实际意义的巡
回线路。本文采用的遗传变异算子有:反转变异、移位变异、互
换变异、三点互换变异以及邻近互换变异 5 种变异算子。
大或一个充分大的正数。 二、模型求解的遗传算法设计 1. 基于最优路线选址模型的遗传算法构造 针对最优路线选址问题的特点,结合遗传算法的 6 个基本
要素,构造了该问题的遗传算法。 (1)编码方法的设计 根据最优路线选址问题的特点,本文采用了简单的自然数
编码方法,即用 1 表示配送中心,用 2,3,…,n 表示需求点,由 于在配送系统中有 m 辆车参与配送服务,则最多存在 m 条配 送路线,每条路线都始于配送中心,也终于配送中心。为了在编 码中反映车辆的配送路线,本文采用了增加 m-1 个虚拟需求 点的方法将 m 辆车参与配送的选址问题转化为单一车辆配送 的选址问题。m-1 个虚拟需求点分别用 n+1,n+2,…,n+m-1 表 示,这样 1,2,…,n,n+1,…,n+m-1 这 n+m-1 个互不重复的自然 数的随机排列就构成了一个个体,并对应着一种配送方案。例 如对于 7 个需求点,用 3 辆车参与配送的选址问题,其中编号 1 表示配送中心,将配送中心复制 2 个做为虚拟需求点,这样 形成的点集为(1,2,3,…,9,10),其中 9,10 为虚拟需求点,这样 就将问题转化为 9 个需求点,采用一辆车参与配送的选址问 题。假设求得最优的配送路线为 1-2-3-10-7-4-9-6-5-8-1,则 实际的配送线路为:
与配送的选址问题,其中编号 1 表示配送中心,将配送中心复
制 2 个做为虚拟需求点,这样形成的点集为(1,2,3,…,9,10),
其中 9,10 为虚拟需求点,这样就将问题转化为 9 个需求点,采
用一辆车参与配送的选址问题。假设求得最优的配送路线为
1-2-3-10-7-4-9-6-5-8-1,则实际的配送线路为: