网站导航网学 原创论文 网站设计 最新系统 最新研究 原创论文 获取论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计下载 > VC与C++类别 > 正文

基于VC研究物流配送车辆优化调度问题

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/05/14

鉴于大家对VC与C++类别十分关注,我们编辑小组在此为大家搜集整理了“基于VC研究物流配送车辆优化调度问题”一文,供大家参考学习

QQ交谈客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn

4.3  算法设计

4.3.1  算法流程图

     算法流程图如图4-1示。

4.3.2  染色体结构

为提高效率,对VSP采用自然数编码方式,即序数编码。

单车场车辆优化调度问题的一条可行线路可编成长度为 的染色体 ,其中 用自然数表示,代表编号为 的需求点。这样的染色体结构可通俗地理解为第一辆车从配送中心0出发,经过需求点 后,回到配送中心0,形成子路径1;第二辆车也从配送中心0出发,经过以前未访问的需求点 后,返回配送中心0,形成子路径2;依次类推,直到所有的n个需求点全部被遍历,形成子路径m。如染色体021304605870表示的行车线路为:

子路径1: 配送中心0 →需求点2 →需求点1→需求点3→配送中心0

子路径2: 配送中心0 →需求点4 →需求点6→配送中心0

子路径3: 配送中心0 →需求点5→需求点8→需求点7→配送中心0

这种染色体结构子路径内部是有序的,若子路径1中点1 3相互交换位置,会使目标函数值改变;而子路径之间是无序的,若子路径12相互交换位置,却不会改变目标函数的值;若子路径倒转,如0460倒转为0640,也不会改变目标函数的值。

4.3.3  约束处理

对于VSP这类约束较复杂的优化问题,用遗传算法求解时,需要对约束进行处理。一般有下面几种方法:

1、问题的约束在染色体中表现出来,设计专门的遗传算子,使染色体所表示的解在遗传算法的求解过程中始终保持为可行解。

2、在编码的过程中不考虑约束,而在遗传算法的计算过程中检测得到的染色体相应的解是否可行,若可行,则放入下一代群体中,否则将其舍弃。

3、采用惩罚的方法来处理约束。如果一个染色体对应的解违反了某个约束,试其违反程度给予一定惩罚,使其具有较小的适应度。这样,一些不可行解也有可能进入群体,以保证群体中染色体的数目,使遗传算法得以继续运行。若干代后,不可行解在群体中所占的比例应越来越小,可行解逐渐占据主导地位,并逐渐趋于最优解[5][6]

1、       载重量的约束处理

上述第一种方法是直接的处理约束的方法,但适用领域有限,而且设计专门的染色体和遗传算子较为困难,能否采用这一方法与问题的特征关系很大;第二种方法只适用于约束简单、可行解易于得到的优化问题,使用价值不高。在此采用罚函数的方法处理约束。

对于一般VSP,使用如下变换将承载量约束式变为目标函数式的一部分:

           (4-8)

其中 表示若解违反载重量约束处以的惩罚值。 为第k辆车的超载量;maxpath是所有两点间运距中最大的运距;M为超载时施以的惩罚系数,即目标函数所加的最大的运距的倍数。

2、时间窗的约束处理

本文采用软时间窗约束处理,以d表示车辆在任务点处等待损失的单位时间机会成本,e表示车辆在要求时间之后到达单位时间所处以的罚值。

若车辆在之前 到达需求点j则产生成本 ;若车辆在 之后到达需求点j则处以罚款 。用罚函数法处理时间窗约束,得到软时间窗VSP的目标函数:

    (4-9)

4.3.4  适应度函数

在有时间窗的车辆优化调度问题中,目标函数值越小越好(即在满足载重量和时间约束的基础上,行车线路的总运距越小越好),而在遗传算法中,个体适应度越大,表示个体的性能越好,因此需要将目标函数转化为适应度函数。本算法采用了如式4-10所示的变换将目标函数转化为适应度函数。

                        (4-10)

4-10 为群体中第k条染色体对应的目标函数值,反映了第k条染色体所对应解的运输费用; 为最大运距; 为第k条染色体的适应度,其值决定了该染色体产生后代的概率。

4.3.5  初始种群

本算法采用随机生成的方法产生初试种群。

4.3.6  遗传算子

本算法采用了最佳保留的轮盘赌复制法进行染色体的复制。

本算法采用最优保留顺序交叉算子行染色体的交叉。

本算法采用改进的反转变异算子进行变异操作。按照概率 进行反转变异,第3章介绍的反转变异算子是在染色体中随机选取两个不同位置,将两位置间的子串进行反转。如直接在本算法的染色体结构中采用会产生如下两种问题:

1、当随机选取的两点均为0点时,反转变异操作无效,因为此时只是将子路径倒转。

2、当随机选取的两点中有一点是0,而另一点的邻位是0时进行反转操作会产生非法的染色体,在染色体中出现两个0相邻的情况,如图4-2示。

 

因此在变异操作前先进行判断,以杜绝以上两种情况的发生,改进的反转变异算子执行流程如图4-3示。

4.3.7  控制参数和终止条件

1、 群体规模popsize、交叉率 和变异率

控制参数(包括群体规模popsize、交叉率 、变异率 )的选取对遗传算法的影响很大,要想得到遗传算法执行的最优性能,必须确定最优参数的设置。一般控制参数的选取要根据问题的属性确定。

2、       终止条件

由于遗传算法具有较大的随机性,这里根据几条启发式的终止条件,给定参数AXY,只要有一条满足就认为算法收敛了。

  其中popsize为种群规模。

1)计算每代群体适应度均值,当均值与最佳染色体适应度的比值大于 时,可认为算法收敛;

2)记录每代最佳染色体,若染色体连续最佳保持到X代,可终止算法;

3)由于计算时间和机器容量都是有限的,代数不能无限长,故迭代达到规定Y时,可停止计算。

4.4  算法实现

VC环境下采用c++语言依据算法编写了程序,并调试通过

本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT

本文选自计算机毕业设计http://myeducs.cn
论文文章部分只是部分简介,如需了解更多详情请咨询本站客服!QQ交谈QQ3710167

原创论文

设为首页 | 加入收藏 | 论文首页 |原创论文 |
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师