✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

⛄ 内容介绍

随着现代经济的快速发展,网络应用的广泛普及,物流配送这个"第三利润源泉"产业在日常生活中发挥着越来越大的作用,受到国内外各大企业的极大重视,如家乐福,沃尔玛,卓越亚马逊这些国际化企业,它们之所以在市场上拥有具大的垄断优势,以很低的价格吸引了越来越多的国内人士消费,除了企业本身拥有雄厚的资金和强有力的品牌效应外,更是由于其现代化的物流配送方式,而车辆调度问题(Vehicle Routing Problem,简称VRP)是物流配送中的重中之重.解决了车辆调度问题,在一定程度上已经有效解决了物流配送问题,节省物流运输成本,从而提高企业的生产率,因此,此项研究在解决实际问题中具有非常重大的意义,如何有效的节省运输成本,降低企业成本,吸引更多的顾客,越来越受到人们的关注. 由于车辆调度问题是NP-hard问题,属于组合优化问题,该问题的复杂度与问题的规模成正比,至今没有找到精确的最有效解决方法,目前求解的算法有很多种,大致上可以分为精确算法和启发式算法两种,在本文中主要采用遗传算法这种特别适合于解决组合优化领域问题的全局搜索算法来求解车辆调度问题,遗传算法是一种基于达尔文"适者生存,优胜劣汰"进化原则的生物进化理论,通过模拟进化机制,具有较好的全局搜索能力,对于解决很多问题具有广泛的适用性. 

⛄ 部分代码

%% 算法主程序

% clear the record

close all;

clear all;

clc;

%% 1输入数据 及  数据 预处理 

run datain.m %输入数据

data=preset(data);% 预处理 

%% 2设置参数

%整体参数

para.popsize=300;% 种群大小  %大于2 整数

para.Generationnmax=2000;%最大迭代次数 %整数 大于0

para.pcrossover=0.6;% 进入交叉算子概率 % 0 到  1  取值范围 小数

para.pmutation=0.1;% 进入变异算子概率 % 0 到  1  取值范围 小数

para.timelimit=50;% 最长运行时间 单位为秒 

%算子参数

%选择算子

para.sel=2;% 选择算子 1轮盘赌  2  二元竞标赛制 3  四元竞标赛制

%交叉算子

para.pcr=[1 0.3

    2 0.9

    3 0.5];% 交叉算子 1为单点交叉 2 为双点交叉(交叉中间基因)3 为选取随机的位置 对应各自概率

% 变异算子-顺序

para.pmtseq=[1 2.2

    2 0.4

    3 0.1];%  变异若为顺序 1 为两点互换   2 选取1点进行前后互换  3 选取 n个位置 随机排序  对应各自概率

% 变异算子-数值-变化位置

para.pmtnum=[1 0.2

    2 0.3

    3 0.5];%  变异若为数值  1为单点 2为双点 3 为选取n个位置 对应各自概率

% 变异算子-数值-变化步长

para.step=[0.3 0.6

    0.6 0.3

    0.8 0.2];%%  变异若为数值 表示数值类型的在取值范围内的步长概率

%%  3 编码方式

% 编码层数

Encode.degree=1;%整数输入   --编码段数 

% 编码类型

Encode.style=2; %一维数组输入     --每段基因组的数据类型 0整数数值  1 为实数数值    数值要求取值范围  顺序要求具体集合 % 数组输入

% 每层基因数

Encode.dnum=data.site;%一维数组输入     -- 每段编码的基因位 

%每层取值范围

Encode.bounds{1}=[1:data.site]; % 胞体输入    --0 1.数值要求取值范围二维矩阵 2 数值要求一维矩阵

%% 4定义计算目标的函数

fsolver.fitness=@fit_all; %计算目标的函数 

fsolver.minmax=-1;% 1 为求最大    -1为求最小

%% 5运算算法

[result,paintd]=GAsolver(para,Encode,fsolver,data);

%% 6出图

figure

plot(paintd.f_best)

figure

detail=result.detail;

hold on

for i=1:size(detail,2)

    bug=detail{i};

    for j=1:size(bug,2)-1

        plot(data.coorall(bug(j:j+1),1)',data.coorall(bug(j:j+1),2)','ro-')

    end

end

⛄ 运行结果

【VRP问题】基于遗传算法求解车辆路径规划VRP问题附matlab代码_取值范围

【VRP问题】基于遗传算法求解车辆路径规划VRP问题附matlab代码_取值范围_02

⛄ 参考文献

[1] 严秀. 基于改进遗传算法的VRP问题研究[D]. 安徽大学.

[2] 张媛媛. 基于VRP问题的四种现代启发式算法比较研究[J]. 中国证券期货, 2013(3X):2.

[3] 李锋, 魏莹. 求解随机旅行时间的C-VRP问题的混合遗传算法[J]. 系统管理学报, 2014(06):819-825.

[4] 周和平, 陈亮. 改进遗传算法在求解随机需求VRP问题中的应用[C]// 中国运筹学会学术交流会. 2010.

⛳️ 完整代码

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料