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

📄 cal.m

📁 用遗传算法解决车间生产调度。Matlab下实现。
💻 M
字号:
function [PVal ObjV P]=cal(Chrom,NIND,T,M,PNumber,MNumber,WPNumber)

% Chrom=[1 2 3 4 6 7 8 9 5; 
%     3 4 5 6 2 1 8 7 9;
%     3 4 5 6 2 1 8 7 9;
%     1 2 3 4 5 6 8 7 9;
%     3 4 2 6 1 8 5 7 9;
%     8 9 5 4 6 3 2 1 7 ;
%     7 4 5 6 2 3 1 8  9;
%     3 4 5 8 2 1 7 9 6;
%     3 4 1 5 6 9 2 8 7 ;
%     9 4 5 3 6 1 2 8 7 ;
%     ];
%  NIND=10;
% 
%  T=[4 6 7 0 ;8 7 9 1; 1 2 4 0];
%  M=[1 2 3 0; 3 2 1 3; 2 1 3 0];

 
% PNumber=3; %零件 个数 3
% MNumber=3; %机器个数 3
% WPNumber=[3 3 3];

WNumber=0;
for i=1:PNumber
 WNumber=WNumber+WPNumber(1,i); 
end

 ObjV=zeros(NIND,1);

 for i=1:NIND  
    %取S
  S=Chrom(i,:);
      
   %计算工序,计算时间
   P= calP(S,PNumber,WPNumber);
   PVal=caltime(P,T,M,PNumber,MNumber,WPNumber);
    
   %取完成时间
   MT=max(PVal);
   TVal=max(MT);
    
   %保存时间
   ObjV(i,1)=TVal;

   %I==1 初始化
   if i==1
      Val1=PVal;
      Val2=P;
      MinVal=ObjV(i,1);
   end
   
   %记录 最小的工序
    if MinVal> ObjV(i,1)
      Val1=PVal;
      Val2=P;
      MinVal=ObjV(i,1);
    end
    
 end 
 
 PVal=Val1;
 P=Val2;
 
 
 
 

⌨️ 快捷键说明

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