1 简介

提供一种基于模拟退火算法的多车型多车次路径规划方法,属于路径规划技术.该方法包括如下步骤:(1)导入数据,初始化参数;(2)生成初始种群,计算个体的目标函数值;(3)选择最优个体进行模拟退火操作;(4)降温;(5)产生新解;(6)比较新解与当前解的适应值,判断是否接受新解为当前解;(7)内循环次数满足,返回(4);(8)满足终止条件时,输出当前解为最优解,输出规划路线.优点是:能够考虑车辆的载重限制,计算出要到达多个目的地的路径规划算法,且方法不只是规划一辆车的一趟路径,而是能规划多辆车的多次路径.

【路径规划】基于模拟退火算法求解多车型车辆路径规划问题(CVRP)matlab代码_最优解

【路径规划】基于模拟退火算法求解多车型车辆路径规划问题(CVRP)matlab代码_迭代_02

2 部分代码


tic

clear

clc

%% 用importdata这个函数来读取文件 

data=importdata('rc208.txt');

cap=[1000 800 1000 1000 1000 1000 1000 800 1000 800 1000 800 1000 1000 800];

%% 提取数据信息

vertexs=data(:,2:3);                %所有点的坐标x和y

customer=vertexs(2:end,:);          %顾客坐标

cusnum=size(customer,1);            %顾客数

v_num=15;                           %初始车辆使用数目

demands=data(2:end,4);              %需求量

h=pdist(vertexs);

dist=squareform(h);                 %成本矩阵

%% 模拟退火参数

belta=10;                           %违反的容量约束的惩罚函数系数

MaxOutIter=2000;                    %外层循环最大迭代次数

MaxInIter=200;                      %里层循环最大迭代次数

T0=100;                             %初始温度

alpha=0.99;                         %冷却因子

pSwap=0.2;                          %选择交换结构的概率

pReversion=0.5;                     %选择逆转结构的概率

pInsertion=1-pSwap-pReversion;      %选择插入结构的概率

N=cusnum+v_num-1;                   %解长度=顾客数目+车辆最多使用数目-1

%% 随机构造初始解

currS=randperm(N);                  %随机构造初始解


%% 打印外层循环每次迭代的全局最优解的总成本变化趋势图

figure;

plot(BestCost,'LineWidth',1);

title('全局最优解的总成本变化趋势图')

xlabel('迭代次数');

ylabel('总成本');

%% 打印全局最优解路线图

draw_Best(bestVC,vertexs,cap);

toc

3 仿真结果

【路径规划】基于模拟退火算法求解多车型车辆路径规划问题(CVRP)matlab代码_路径规划_03

【路径规划】基于模拟退火算法求解多车型车辆路径规划问题(CVRP)matlab代码_路径规划_04

4 参考文献

[1]吴秀丽, 肖晓. 基于模拟退火算法的有时限的多车型多车次路径规划方法:. 

部分理论引用网络文献,若有侵权联系博主删除。

【路径规划】基于模拟退火算法求解多车型车辆路径规划问题(CVRP)matlab代码_最优解_05