drop.asv

来自「TSP问题,即旅行商问题,matlab环境下可以运行」· ASV 代码 · 共 40 行

ASV
40
字号
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路线上的重心
 
      xcenter=(sum(demand(x0(a,2:l0(a)+1),1)*demand(x0(a,2:l0(a)+1),3)))/(sum(demand(x0(a,2:l0(a)+1);
      ycenter=(sum(demand(x0(a,2:l0(a)+1),1)*demand(x0(a,2:l0(a)+1),3)))/(sum(demand(x0(a,2:l0(a)+1);
  for j=1:depot
      if j==nowdepot
          alldis(j)=100000;
      else
            alldis(j)=distance(demand,nowdepot+customer,j+customer);
      end
  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

x0(a,1)=n;%用选的
l1=l0;
x1=x0;
changex=[1  a n];
    

⌨️ 快捷键说明

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