📄 cal.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 + -