📄 main.m
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -