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

📄 update.m

📁 采用遗传算法对于加工问题的排序,使其最快.
💻 M
字号:
function [update_a,update_b]=update(pop_size,machine_total,job_total,T,best_bin,total_mintime,mutation_a,mutation_b)
update_a=mutation_a;
update_b=mutation_b;
for m=1:pop_size
    [init,cc]=decode(mutation_a,machine_total,job_total,pop_size);
    [st,t]=matrix1(machine_total,job_total,pop_size,T,init);
    [P,time]=fitness1(t);
    if time(m,:)>total_mintime
       for i=1:job_total*(ceil(log2(job_total))+1)
           if cc(m,i)==0 && best_bin(i)==1
              Q=0.05*pi;
              if mutation_a(m,i)*mutation_b(m,i)>0
                  s=-1;
              elseif mutation_a(m,i)*mutation_b(m,i)<0
                  s=1;
              elseif mutation_a(m,i)==0
                  s=1*sign(randn);
              else mutation_b(m,i)==0
                  s=0;
              end
           elseif cc(m,i)==1 && best_bin(i)==0
              Q=0.025*pi;
              if mutation_a(m,i)*mutation_b(m,i)>0
                  s=1;
              elseif mutation_a(m,i)*mutation_b(m,i)<0
                  s=-1;
              elseif mutation_b(m,i)==0
                  s=1*sign(randn);
              else mutation_a(m,i)==0
                  s=0;
              end
           elseif cc(m,i)==1 && best_bin(i)==1
              Q=0.025*pi;
              if mutation_a(m,i)*mutation_b(m,i)>0
                  s=1;
              elseif mutation_a(m,i)*mutation_b(m,i)<0
                  s=-1;
              elseif mutation_b(m,i)==0
                  s=1*sign(randn);
              else mutation_a(m,i)==0
                  s=0;
              end
           else
              Q=0;
              s=0;
           end
           update_a(m,i)=cos(s*Q)*mutation_a(m,i)-sin(s*Q)*mutation_b(m,i);
           update_b(m,i)=sin(s*Q)*mutation_a(m,i)+cos(s*Q)*mutation_b(m,i);
       end
    end
end

⌨️ 快捷键说明

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