基于遗传算法及改进的仓库拣货小车路径优化方法与实验(约束条件为载重时间窗等,目标为最低成本)

matlab语言编写flying-V型仓库布局的拣货路径优化方法,主要是遗传算法,模拟退火算法,蚁群算法等,本文主要讲述基于遗传算法结合模拟退火算法进行优化的仿真实验。
仓库布局为flying-V型宽道模式,即不考虑拣货小车本身大小,多辆小车可同时在路径上行走。如下图
在这里插入图片描述
两条主干道,4个区。零部件货物坐标表示为[A,x,y],例如[2,3,5]表示该零部件位于第二区第三排的第五列,存取点坐标例外为[0,0,0]。这样设货架长度为L,可计算出两个货物之间的距离。本文是基于Flying-V型仓库探讨拣货小车路径问题,对于多个分散在不同区域的零部件,调用一定数量的车辆,满足一定的约束条件达到路径较短,总成本最低等综合目标,属于经典车辆路径问题(VRP)。本次设计主要讨论在软时间窗条件(允许超出货物被拣规定的时间,根据超出的时间进行惩罚附加额外的成本,硬时间窗则不允许超出时间,需要重新规划路线),车辆数量,车辆装载率以及路线成本下设计各自的成本权重,得出总成本的单目标函数。因此总成本包括车辆的基本费用、路程油耗、时间惩罚成本和车辆载重附加油耗。K辆载重为W的同类型拣货小车,从一个存取点出发负责对N个零部件进行拣货工作,记为节点(i=0,1,2,…,n),每个零部件有各自对应的重量wi,有各自的被拣时间范围[ai,bi],在一定的假设条件下安排车辆数量和每辆车的行驶路线使总成本达到最小。
在这里插入图片描述
根据以上条件可列出各个货物的距离矩阵。此时若有一定的小车车队及对应路线则可以根据设定的单位成本计算出总成本。
在这里插入图片描述
计算总成本为在这里插入图片描述
有了总成本的计算方法那么如何得出小车路线是关键的,遗传算法则是根据已设定好的初始种群路线计算对应的成本适应度函数进行选择交叉变异等操作不断进化达到多约束条件下的最优解,即最优路线。
假设有9个零部件货物,举例如下:1 5 6 9 2 8 3 5 7 4 零部件1-9对应的重量分别为 1 3 5 8 2 2 11 4 9,小车的载重为13,由于w1+w5+w6=5,w1+w5+w6+w9=14>13,故派出第一辆小车负责零部件1 5 6的运送。同理第二辆车负责零部件9 2的运送,第三辆车负责8 3 5的运送,第四辆车只运送零部件7,第五辆车只负责零部件4,因此一共需要5辆小车。根据得到的车辆数目和每辆小车各自负责运送的零部件货物顺序进行下一步的操作。
每个货物有对应的重量和被拣的时间范围,小车为同种小车有载重重量,小车有行驶速度,本文是设定35个货物零部件,能派出的小车数量不限,初始种群大小为100,每个个体对应一段路线,为自然数编码即根据货物的编号来确定路线。根据载重条件后可得出小车数量和每辆小车各自对应的路线。
在每一代的更新后与上一代各个个体进行比较进行模拟退火的优化,以便得出最优解。
产生新的种群后将新种群的适应度与原种群作比较,加入Metropolis接受准则,即以一定概率接受新种群中的较差解,完全接受新种群的更优解。这样便大大的增加了跳出局部最优解的概率。如图当算法陷入局部最优解A时,加入该接受准则可有利于该算法跳出局部最优解,当得到下一个高峰点时,由于附近的解都劣于该解,故大大的增加了得到最优解C的概率。
在这里插入图片描述
在这里插入图片描述
遗传算法中选择采用的是轮盘赌,即个体被选择的概率正比于适应度在这里插入图片描述
仿真结果如下图:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
附上源程序,代码较多为rar,注释详细,有利于机器学习的学习,解压后matlab打开可直接浏览运行,如有不明白和意见建议请留言。
https://download.csdn.net/download/qq_38844099/11968754

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值