三维货架空间布局的优化算法——简化版

三维货架空间布局的优化算法的详细版欢迎订阅本博:https://blog.csdn.net/ccsss22/article/details/115290774

1.问题描述:
 
优化目标

要求对出库频率越高的货物,出库时间越短,也就是货位安排在距离出库台越近的位置,对于出入库频率较低的货物,则可以有相对较长的出入库时间。
物料分散存放避免因集中存放造成货格受力不均匀的问题。重物在下、轻物在上,使货架更加稳定(重心最小)。
以分类存放的货品相关性原则为目标,并先入库的同种货品,在出库时具有优先权,
优化目标函数构建如下所示:

第一个目标函数,f1是出入库效率函数

第二个函数f2,含义是货架的稳定性目标,稳定性。

mk为货物重量。可以设置为0到30之间的随机数。但是是已知的。该公式的含义就是重量越大的货品,放的位置越低,则该函数取值越小。

第三个函数是你所要求的货品种类的目标优化函数。

以分类存放的货品相关性原则为目标,并先入库的同种货品,在出库时具有优先权,这个含义就是使得同类货物之间的距离最短,即,同类货物尽可能的摆放在一起。通过这三个函数,实现最后的优化,最后通过遗传优化算法,进行优化。

2.部分程序:
 

while gen < MAXGEN;   
      gen
      
      if gen <= 1
         Pe0 = 0.7;
         pe1 = 0.05; 
      else
         Pe0 = 0.7*1/(1+exp(-5*df));
         pe1 =0.75-Pe0;  
      end
      
      FitnV=ranking(Objv);    
      Selch=select('sus',Chrom,FitnV);    
      Selch=recombin('xovsp', Selch,Pe0);   
      Selch=mut( Selch,pe1);   
      phen1=bs2rv(Selch,FieldD);   
      
      for a=1:1:NIND  
          if gen == 1
             tmps       = POS_index;
             Data1(a,:) = tmps(1:sum(Num_lb));              
          else
             Data1(a,:) = floor(phen1(a,:))+1;      
          end
          %计算对应的目标值
          [epls,f1,f2,f3] = func_obj2(Data1(a,:));
          E       = epls;
          JJ(a,1) = E;
      end 
      
      Objvsel=(JJ);    
      [Chrom,Objv]=reins(Chrom,Selch,1,1,Objv,Objvsel);   
      gen=gen+1; 

      %保存参数收敛过程和误差收敛过程以及函数值拟合结论
      Error1(gen)            = mean(JJ);
      Error2(gen)            = min(JJ);
      
      fmax = max(JJ);
      fmean= mean(JJ); 
      df   = fmax-fmean;
      
      if gen == 1
         [f1,f2,f3] 
      end
      if gen == MAXGEN-1
         [f1,f2,f3]  
      end     
      
end 

3.仿真结论:


A-011-046
 

猜你喜欢

转载自blog.csdn.net/ccsss22/article/details/115290914
今日推荐