main.m
来自「采用遗传算法对于加工问题的排序,使其最快.」· M 代码 · 共 47 行
M
47 行
clear all
%machine_total=input('machine_total:');
%job_total=input('job_total:');
%pop_size=input('pop_size:');
%max_generation=input('max_generation:');
%pc=input('pc:');
%pm=input('pm:');
%T=input('T:');
machine_total=4;
job_total=5;
pop_size=10;
max_generation=100;
pc=0.8;
pm=0.4;
T=[31 19 23 13 33; 41 55 42 22 5; 25 3 27 14 57; 30 34 6 13 19 ];
for k=1:pop_size
seq_init(k,:)=randperm(job_total);
end
for i=1:max_generation
[st,c]=matrix(machine_total,job_total,T,pop_size,seq_init);
[C,time]=fitness(c);
[mintime(i,:),x]=min(time(:));
y(i,:)=seq_init(x,:);
st_better(:,:,i)=st(:,:,x);
c_better(:,:,i)=c(:,:,x);
seq_copy=choose(C,pop_size,seq_init);
seq_crossover=crossover(pc,seq_copy,job_total,pop_size);
seq_mutation=mutation(pm,seq_crossover,job_total,pop_size);
if i>1
if mintime(i,:)==mintime(i-1,:)
for k=1:pop_size-1
seq_init(k,:)=randperm(job_total);
end
seq_init(pop_size,:)=y(i,:);
else
seq_init=seq_mutation;
end
else
seq_init=seq_mutation;
end
end
[total_mintime,generation]=min(mintime(:))
best=y(generation,:)
st_best=st_better(:,:,generation)
c_best=c_better(:,:,generation)
picturegantchart(machine_total,job_total,total_mintime,best,st_best,c_best)
picture(mintime,max_generation,generation)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?