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

📄 energy.m

📁 GA3 for single machin problem
💻 M
字号:
function [eng]=energy(j,s,A,sj,pop)
t=size(pop);
eng=[0,0,0];
for ii=1:t(1)
  
k=1;	
b=0;
Q=0;
fit=[0,0,0];
B=[];
B=pop(ii,:);
while Q<=s&k<=j
Q=Q+sj(B(k));
k=k+1;
b=b+1;
if Q>s|k==j+1
   d=k-b;
   if k==j+1
      b=b+1;
   end; % if
   for f=d:b+d-2
      C(f)=A(1,1,B(f))+2*A(1,2,B(f))+A(1,3,B(f));
      D(f)=A(1,2,B(f));
      E(f)=A(1,3,B(f))-A(1,1,B(f));
      if f==d
         Pb=A(:,:,B(f));
      else
         if C(f)>C(f-1)
            Pb=A(:,:,B(f));
         elseif C(f)<C(f-1)
            Pb=A(:,:,B(f-1));
            C(f)=C(f-1);D(f)=D(f-1);E(f)=E(f-1);
         elseif C(f)==C(f-1)
            if D(f)>D(f-1)
               Pb=A(:,:,B(f));
            elseif D(f)<D(f-1)
               Pb=A(:,:,B(f-1));
               C(f)=C(f-1);D(f)=D(f-1);E(f)=E(f-1);
            elseif D(f)==D(f-1)
               if E(f)>E(f-1)
                  Pb=A(:,:,B(f));
               elseif E(f)<E(f-1)
                  Pb=A(:,:,B(f-1));
                  C(f)=C(f-1);D(f)=D(f-1);E(f)=E(f-1);
               end % for if E(f)>E(f-1)
            end % for if D(f)>D(f-1)
         end % for if C(f)>C(f-1)
      end %for if f==d
   end % for for 
   fit=fit+Pb;
   Pb=0;
   b=0;
   Q=0;
   if k~=j+1
      k=k-1;
   end % if
end % for if Q>s|k==j+1
end % for while


eng=[eng;fit];
end
eng(1,:)=[];



⌨️ 快捷键说明

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