【SDPTWVRP】头脑风暴算法求解带时间窗和同时取送货车辆路径问题【含Matlab源码 1990期】

⛄一、头脑风暴优化算法(BSO)简介

头脑风暴(BSO)是一种将搜索空间不断缩减的算法。此算法通过不断迭代,最终将局部最优解慢慢精确至全局最优解。其基本过程如图1所示。
在这里插入图片描述
图1 头脑风暴算法流程

1 种群初始化
随机产生n个个体,每个个体代表一种配送方案。这里应用Matlab仿真软件进行仿真,故个体采用二维编码的方式进行表示。例如,若用数字0表示配送中心,数字1-10表示顾客,数字11-13表示充电站,则个体随机产生的过程可表示如下:首先,得到顾客经过顺序,如[1 2 3 4 5 6 7 8 9 10];其次,鉴于顾客货物需求以及电动货车容量进行分组,若顾客需求皆为3,电动货车容量为10,则上述顺序可更新为[0 1 2 3 0 4 5 6 0 7 8 9 0 10 0],每两个数字0之间的数字即为一辆电动货车的配送路线,此顺序即采用了4辆电动货车;再次,根据上述顺序中每辆电动货车的配送顺序求解耗电量、剩余电量,根据剩余电量是否能支撑电动货车到达下一个顾客点最近充电站为判定依据进行充电行为,充电量约束满足式(11),最高电量为充满,最低电量为刚好到达下一充电站或配送中心。例如[0 1 2 11 3 0 4 5 6 0 7 12 8 9 0 10 0],此顺序中就表示第一辆与第三辆电动货车需要在配送过程中充电,而此顺序即为个体表示。最后,将个体存放至二维数组中,每一行代表一个个体。

2 聚 类
将n个个体进行分类,聚成m个类,分别计算每个个体的适应度值并选出每一类的最优个体作为聚类中心。此适应度值为耗电量与顾客满意度倒数之和,适应度值最小者即为最优个体。耗电量与顾客满意度的求解方式见2.1节、2.2节。

3 产生新个体
如公式所示:XNEW=XSELECT

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab领域

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值