VRP问题基于matlab遗传算法结合贪婪规则求解多级仓储车辆运输问题含Matlab源码 2352期
Posted 海神之光
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VRP问题基于matlab遗传算法结合贪婪规则求解多级仓储车辆运输问题含Matlab源码 2352期相关的知识,希望对你有一定的参考价值。
⛄一、遗传算法结合贪婪规则
贪婪算法属于启发式算法的一种,每次使用贪婪规则进行决策,其结果都是不可撤销的。贪婪算法没有很多可行解的同步选择,最终只能得到一个最优的可行解。使用贪婪算法进行遗传算法求解,其所获得的解精确度更高,更接近最优解。
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 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除
以上是关于VRP问题基于matlab遗传算法结合贪婪规则求解多级仓储车辆运输问题含Matlab源码 2352期的主要内容,如果未能解决你的问题,请参考以下文章
背包问题基于matlab遗传算法结合贪婪算法求解背包问题含Matlab源码 791期
VRP基于matlab遗传算法求解多中心车辆路径规划问题含Matlab源码 1965期
VRP问题基于matlab遗传算法求解受灾期间的多中心车辆路径规划问题含Matlab源码 2353期
VRP基于matlab遗传算法求解多车辆路径规划问题含Matlab源码 1249期