【VRP】基于matlab改进的模拟退火和遗传算法求解VRP问题【含Matlab源码 343期】

一、简介

1 模拟退火算法的应用背景
模拟退火算法提出于1982年。Kirkpatrick等人首先意识到固体退火过程与优化问题之间存在着类似性;Metropolis等人对固体在恒定温度下达到热平衡过程的模拟也给他们以启迪。通过把Metropolis 算法引入到优化过程中,最终得到一种对 Metropolis 算法进行迭代的优化算法,这种算法类似固体退火过程,称之为“模拟退火算法”。
模拟退火算法是一种适合求解大规模组合优化问题的随机搜索算法。目前,模拟退火算法在求解 TSP,VLSI 电路设计等组合优化问题上取得了令人满意的结果。将模拟退火算法同其它的计算智能方法相结合,应用到各类复杂系统的建模和优化问题中也得到了越来越多的重视,已经逐渐成为一种重要的发展方向。
2 模拟退火算法介绍
在这里插入图片描述
3
在这里插入图片描述
在这里插入图片描述
3 模拟退火算法的参数
模拟退火是一种优化算法,它本身是不能独立存在的,需要有一个应用场合,其中温度就是模拟退火需要优化的参数,如果它应用到了聚类分析中,那么就是说聚类分析中有某个或者某几个参数需要优化,而这个参数,或者参数集就是温度所代表的。它可以是某项指标,某项关联度,某个距离等等。

二、源代码

clear
clc
filename='input.txt';
[bestRoute,bestL]=SAGA_TSP(filename);
toc
%输入input:               文本文件[序号,x坐标,y坐标]
%输出bestRoute:           全局最优路线
%输出bestL:               全局最优路线对应的路径长度
function [bestRoute,bestL]=SAGA_TSP(filename)
%% 输入数据
input=importdata(filename);
n=size(input,1);                        %n-城市数目
vertexs=input(:,2:3);                   %城市xy坐标
x=vertexs(:,1);                         %x坐标
y=vertexs(:,2);                         %y坐标
h=pdist(vertexs);
dist=squareform(h);                     %距离矩阵
%% 遗传算法参数设置
NIND=50;                                %种群大小
MAXGEN=10;                             %迭代次数
GGAP=0.9;                               %代沟
Pc=0.8;                                 %交叉概率
Pm=0.2;                                 %变异概率
pSwap=0.2;                              %选择交换结构的概率
pReversion=0.5;                         %选择逆转结构的概率
pInsertion=1-pSwap-pReversion;          %选择插入结构的概率
N=n;                                    %染色体长度=城市数目
%% 模拟退火算法参数
MaxOutIter=300;                         %外层循环最大迭代次数
MaxInIter=15;                           %里层循环最大迭代次数
T0=0.025;                               %初始温度
alpha=0.99;                             %冷却因子
%% 种群初始化
Chrom=InitPop(NIND,N);
%% 优化
gen=1;                                  %计数器
bestChrom=Chrom(1,:);                   %初始全局最优个体
bestL=RouteLength(bestChrom,dist);      %初始全局最优个体的总距离
BestChrom=zeros(MAXGEN,N);              %记录每次迭代过程中全局最优个体
BestL=zeros(MAXGEN,1);                  %记录每次迭代过程中全局最优个体的总距离
while gen<=MAXGEN
    %% 计算目标函数值
    ObjV=ObjFunction(Chrom,dist);
    %% 二元锦标赛选择
    SelCh=BinaryTourment_Select(Chrom,GGAP,ObjV);
    %% OX交叉
    SelCh=Recombin(SelCh,Pc);
    %% 变异
    SelCh=Mutate(SelCh,Pm,pSwap,pReversion,pInsertion);
    %% 对种群中前30%的个体都进行模拟退火操作
    SelCh=SA_Chrom(SelCh,dist,MaxOutIter,MaxInIter,T0,alpha,pSwap,pReversion,pInsertion);
    %% 重插入子代的新种群
    Chrom=Reins(Chrom,SelCh,ObjV);
    %% 计算当前代所有个体总距离
    Obj=ObjFunction(Chrom,dist);
    %% 找出当前代中最优个体
    [minObj,minIndex]=min(Obj);
    %% 将当前代中最优个体与全局最优个体进行比较,如果当前代最优个体更好,则将全局最优个体进行替换
    if minObj<=bestL
        bestChrom=Chrom(minIndex,:);
        bestL=minObj;
    end
    %% 记录每一代全局最优个体,及其总距离
    BestChrom(gen,:)=bestChrom;
    BestL(gen,:)=bestL;
    %% 显示外层循环每次迭代的信全局最优路线的总距离
    disp(['第' num2str(gen) '次迭代:全局最优路线总距离 = ' num2str(bestL)]);
    %% 画出每次迭代的全局最优路线图
    figure(1);
    PlotRoute(bestChrom,x,y)
    pause(0.01);
    %% 计数器加1
    gen=gen+1;
end

三、运行结果

【VRP】基于matlab改进的模拟退火和遗传算法求解VRP问题【含Matlab源码 343期】_第1张图片
【VRP】基于matlab改进的模拟退火和遗传算法求解VRP问题【含Matlab源码 343期】_第2张图片

四、备注

完整代码或者代写添加QQ2449341593。
往期回顾>>>>>>
【预测模型】基于matlab粒子群的lssvm预测【含Matlab源码 103期】
【lSSVM预测】基于matlab鲸鱼优化算法之lSSVM数据预测【含Matlab源码 104期】
【lstm预测】基于matlab鲸鱼优化算法之改进的lstm预测【含Matlab源码 105期】
【SVM预测】基于matlab蝙蝠算法改进的SVM预测(一)【含Matlab源码 106期】
【SVM预测】基于matlab灰狼算法优化svm支持向量机预测【含Matlab源码 107期】
【预测模型】基于matlab BP神经网络的预测【含Matlab源码 108期】
【lssvm预测模型】基于蝙蝠算法改进的最小二乘支持向量机lssvm预测【Matlab 109期】
【lssvm预测】基于飞蛾扑火算法改进的最小二乘支持向量机lssvm预测【Matlab 110期】
【SVM预测】基于matlab蝙蝠算法之改进的SVM预测(二)【含Matlab源码 141期】
【lssvm预测】基于matlab飞蛾扑火算法之改进的最小二乘支持向量机lssvm预测【含Matlab源码 142期】
【ANN预测模型】基于matlab差分算法改进ANN网络预测【含Matlab源码 151期】
【预测模型】基于matlab RBF神经网络预测模型【含Matlab源码 177期】
【预测模型】基于matlab SVM回归预测算法来预测股票趋势【含Matlab源码 180期】
【预测模型】基于matlab BP神经网络之模型优化预测【含Matlab源码 221期】
【预测模型】基于matlab RLS算法的数据预测【含Matlab源码 222期】
【预测模型】基于matlab碳排放约束下的煤炭消费量优化预测【含Matlab源码 223期】
【路径规划】基于matlab A星和改进A星的路径规划【含Matlab源码 225期】
【TSP】基于matlab 改进的禁忌搜索算法之求解旅行商问题【含Matlab源码 241期】
【TSP】基于matlab 改进的蚁群算法之求解旅行商问题【含Matlab源码 242期】
【路径规划】基于matlab模拟退火算法之求解火灾巡逻最短路径【含Matlab源码 252期】
【三维路径规划】基于matlab 无人机三维空间的航迹规划【含Matlab源码 270期】
【路径规划】基于matlab分布式目标检测和跟踪的多无人机【含Matlab源码 289期】
【路径规划】基于matlab粒子群算法求解无人机最短路径【含Matlab源码 300期】
【无人机】多无人协同任务分配程序平台【含Matlab源码 301期】
【路径规划】基于matlab任意架次植保无人机作业路径规划【含Matlab源码 322期】
【路径规划】基于matlab粒子群遗传求解多无人机三维路径规划【含Matlab源码 333期】
【VRP问题】基于matlab粒子群求解VRPTW模型【含Matlab源码 334期】
【路径规划】基于matlab改进蚁群算法的路径规划【含Matlab源码 335期】

你可能感兴趣的:(matlab,路径规划)