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

📄 drop.m

📁 TSP问题,即旅行商问题,matlab环境下可以运行
💻 M
字号:
function [x1,changex,l1]=drop(x0,l0)

global customer;
global depot;
global demand;    

NumberRoute=length(l0);
  a=ceil(NumberRoute*rand);
  %先计算DD数组
  %nowdepot为选择的配送中心
  nowdepot=x0(a,1);
  %计算a路线上的重心
  sum1=0;sum2=0;sum3=0;
    for j=2:l0(a)+1
        sum1=demand(x0(a,j),1)*demand(x0(a,j),3)+sum1;
        sum2=demand(x0(a,j),3)+sum2;
         sum3=demand(x0(a,j),2)*demand(x0(a,j),3)+sum3;
    end
      xcenter=sum1/sum2;
      ycenter=sum3/sum2;
  for j=1:depot
            alldis(j)=distan(demand,xcenter,ycenter,j+customer);
  end
   [dis,n]=min(alldis);
%if  find(x0(:,1)==n)
 % frag=1;
  %else frag=0;
    %end
 %while  frag==0 %看这个最小距离对应的配送中心是否开放,如不开放,则将该值删,从新开始找下一个最小值
    % alldis(n)=100000;
    % [dis,n]=min(alldis);
   %if  find(x0(:,1)==n)
     %  frag=1;
       %else frag=0;
       % end
   %end
while n==x0(a,1)
    alldis(n)=100000;
     [dis,n]=min(alldis);
 end
    
    
x0(a,1)=n;%用选的
l1=l0;
x1=x0;
changex=[1  a n];
    

⌨️ 快捷键说明

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