1 简介
提供一种基于模拟退火算法的多车型多车次路径规划方法,属于路径规划技术.该方法包括如下步骤:(1)导入数据,初始化参数;(2)生成初始种群,计算个体的目标函数值;(3)选择最优个体进行模拟退火操作;(4)降温;(5)产生新解;(6)比较新解与当前解的适应值,判断是否接受新解为当前解;(7)内循环次数满足,返回(4);(8)满足终止条件时,输出当前解为最优解,输出规划路线.优点是:能够考虑车辆的载重限制,计算出要到达多个目的地的路径规划算法,且方法不只是规划一辆车的一趟路径,而是能规划多辆车的多次路径.
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 仿真结果
4 参考文献
[1]吴秀丽, 肖晓. 基于模拟退火算法的有时限的多车型多车次路径规划方法:.
部分理论引用网络文献,若有侵权联系博主删除。