【VRP问题】遗传算法结合贪婪规则求解多级仓储车辆运输问题【含Matlab源码 2352期】

本文介绍了如何在Matlab中结合遗传算法和贪婪规则解决实际问题,通过基因编码、贪婪初始修复、适应度函数选择和遗传操作等方式,提高求解精确度。作者还提供了部分源代码示例,涉及遗传算法在多层车辆路线问题上的应用。
摘要由CSDN通过智能技术生成

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、遗传算法结合贪婪规则

贪婪算法属于启发式算法的一种,每次使用贪婪规则进行决策,其结果都是不可撤销的。贪婪算法没有很多可行解的同步选择,最终只能得到一个最优的可行解。使用贪婪算法进行遗传算法求解,其所获得的解精确度更高,更接近最优解。

1 结合贪婪算法的遗传算法求解流程
本问题求解的流程如下:
(1)通过基因编码将问题空间变成遗传空间。基因编码可以将若干个基因码按照一定的顺序进行排列,其排列顺序就是遗传编码结构。
(2)使用贪婪算法对初始编码进行修复。基本的遗传算法虽然可以通过对编码串进行操作,从当前的群体中选择出具有优良基因的染色体使其延续下去,但它们并不一定是最满足限制条件的可行解。为了避免产生无效染色体,本文使用贪婪算法对初始形成的编码进行修正来获得合适的最优解。
(3)选择适应度函数。由于将贪婪算法和遗传算法进行结合,弥补了遗传算法中产生无效染色体的情形,故不必使用罚函数法,而是确定适应度函数对个体的适应度进行计算,并进行进化和淘汰。
(4)轮盘赌选择。
对于基因的选择方法有很多。本文采用轮盘赌方法进行选择。为了避免适应度函数为负值并防止有效信息的丢失,使用公式 fi(i) = fit(i) - min( fit) + 1 对适应值进行处理,以获得合适的信息。
(5)使用交叉概率参数进行交叉。本文采用交叉概率pc =0.5,并选择一点为交叉点,使用单点交叉方式,随机选取一点作为基因的交叉点,设交叉概率pc =0.5。
(6)使用变异概率参数进行变异。 本文采用变异函数pm=0.01。
(7)对形成的新种群使用迭代方法继续进化下去,直到获得最优组合。

⛄二、部分源代码

%% -----------------------------信息提取程序-----------------------------

clear all;
close all;
clc;
rand(‘state’, sum(100*clock));
format bank;

%----4个文件下的测试样本数目----
seq_dataset = [21,18,54,18]; %dataset文件下的4个文件Set2-Set5中测试样例数目

%----参数设置----
runs = 1; %重复实验次数
%max_iter = 500000; %每次实验最多迭代次数500k

%----输出记录----
record_totalcost = zeros(runs,1);

%??文件夹内数据总量分别为:21,18,54,18; %文件夹的序号:1-4->Set2-Set5;
%----Start----
for num_folder = 1:4 %1:4 %文件夹的序号:1-4分别对应文件夹Set2-Set5;
seq_data = seq_dataset(num_folder); %第num_folder个文件夹的测试样本总数
nn = 4; %set2中的第2个问题
for seq = nn:nn %1:seq_data
%----提取文件的仓库、卫星、客户坐标、车辆信息和客户需求----
%coord_dep:仓库的坐标
%coord_sat:卫星(中转站)坐标
%coord_cus:客户的坐标
%fleet:车辆信息,fleet(1,1)为第一层车辆的最大载重量 fleet(1,2)为第一层可使用的车辆数目 fleet(2,1)为第二层车辆的最大载重量 fleet(2,2)为第二层可使用的车辆数目
%demand:客户需求
[coord_dep,coord_sat,coord_cus,fleet,demand,name_data] = extractdata(num_folder,seq);
for i = 1:runs
[layer1,layer2,record_totalcost(i,1),best_route1,best_route2] = TwoLayerVRP(coord_dep, coord_sat, coord_cus, fleet, demand);
outputResult(layer1,layer2,record_totalcost(i,1));
i = i + 1;
end
%saveSpecialValue(record_totalcost,name_data);
disp(best_route1);
disp(best_route2);
figure
figureRoute(coord_dep,coord_sat,coord_cus,best_route1,best_route2,demand);

end

end

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]李霄鹏.贪婪算法与遗传算法结合的建设项目合同优化选择[J].统计与决策. 2019,35(06)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值