⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 newroute.m

📁 TSP问题,即旅行商问题,matlab环境下可以运行
💻 M
字号:
function [x,changex,l]=newroute(x0,l0)
global customer;
global depot;
global demand;
NumberRoute=length(l0);  
a=ceil(NumberRoute*rand);  
  %从a上选择顾客  
c1_index=ceil(l0(a)*rand);
c1=x0(a,c1_index+1);
%将c1路线a删除
if l0(a)==1
    x1(a,1)=x0(a,1);
    x1(a,2)=0;
else
   x1(a,1:c1_index)=x0(a,1:c1_index);
   x1(a,c1_index+1:l0(a))=x0(a,c1_index+2:l0(a)+1);
end
l1(a)=l0(a)-1;
for j=1:depot
    alldis(j)=distance(demand,c1,depot+customer);
end
[dis,n]=min(alldis);

%增一新路

for v=1:NumberRoute
    if v~=a 
        x1(v,1:l0(v)+1)=x0(v,1:l0(v)+1);
        l1(v)=l0(v);
    end
end


x1(NumberRoute+1,1:2)=[n c1];
l1(NumberRoute+1)=1;
NumberRoute=NumberRoute+1;
if l1(a)==0
    x(1:a-1,:)=x1(1:a-1,:);
    x(a:NumberRoute-1,:)=x1(a+1:NumberRoute,:);
    l(1:a-1)=l1(1:a-1);
    l(a:NumberRoute-1)=l1(a+1:NumberRoute);
else
    x=x1;
    l=l1;
end

changex=[5 c1 0];

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -