• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-23
  • 语言: Matlab
  • 标签: VRP  

资源简介

车辆路径问题代码!主要包括了初始种群的生成,种群的选择,迭代,绘图等。

资源截图

代码片段和文件信息

clear
clc
tic
%加载配送网络相关数据
load A32_data

%计算距离矩阵
D=Distanse(Clist);

%% 初始化
%初始化遗传算法各参数
ind_N=200;          %种群中个体数
Max_gen=400;       %最大迭代次数

%记录最好解、平均解
global_best=inf*ones(1Max_gen+1);%记录全局最好解的值
local_best=inf*ones(1Max_gen+1);%记录局部最好解的值

%初始化种群(产生初始解)
Chrom=zeros(ind_NN);
for i=1:ind_N
    Chrom(i:)=randperm(N);     %随机初始化路径
end

%计算初始种群中各个体的适应度
Ind_V=zeros(ind_N1);
for i=1:ind_N
    Ind_V(i)=fit(Chrom(i:)DemandDQN);
end

%选择操作
[~idx]=sort(Ind_V‘descend‘);              %对种群中个体按适应度从高到低排序
for a=1:ind_N/4
    Chrom(a:)=Chrom(idx(1):);
end
Chrom(ind_N/4+1:ind_N/2:)=Chrom(idx(1:ind_N/4):);
Chrom(ind_N/2+1:3*ind_N/4:)=Chrom(idx(1:ind_N/4):);
Chrom(3*ind_N/4+1:end:)=Chrom(idx(1:ind_N/4):);

local_best(1)=1/Ind_V(idx(1));                  %记录局部最好解的值
global_best(1)=local_best(1);                   %记录全局最好解的值
global_ind=Chrom(idx(1));                       %记录全局最好解
local_ind=Chrom(idx(1));                        %记录局部最好解

%% 开始迭代
wb=waitbar(0‘正在搜索......请等待‘);
for gen=1:Max_gen
    
    %交叉/变异(由于交叉变异的目的是获得新个体,此处简单化处理)
    tmp_Chrom=zeros(ind_NN);
    for i=1:ind_N
        tmp_ind=Chrom(i:);
        M=randi(N[12]);I=min(M);J=max(M);
        tmp_ind(I:J)=fliplr(tmp_ind(I:J));
        tmp_Chrom(

评论

共有 条评论