当前位置 : 主页 > 编程语言 > python >

【生产调度】基于遗传算法求解柔性生产调度(FJSP)问题含Matlab源码

来源:互联网 收集:自由互联 发布时间:2022-06-18
1 简介 制造业同人们的生活密切联系,其发展走向可直接影响国家的综合实力。制造业企业不仅需要将制造技术走在科技前端,而且需要加强生产和经营管理技术,这样才能时刻保持其核心

1 简介

制造业同人们的生活密切联系,其发展走向可直接影响国家的综合实力。制造业企业不仅需要将制造技术走在科技前端,而且需要加强生产和经营管理技术,这样才能时刻保持其核心竞争力。而企业的调度是企业管理的核心和难点。生产调度的制定,作为制造业生产运作管理的最重要的任务,其结果强烈影响着企业的利润取得、资源的利用效率及产品能否准时交货等。在实际生产环境中,柔性作业车间调度问题(FJSP)允许所有工序可以在整个机器集中任意选择一台加工机器,这样的生产调度系统可以按照资源负荷情况灵活地分配资源,提高加工的灵活性,更接近实际生产环境,却因此加大了可行解的搜索范围,增加了问题复杂性。由于柔性作业车间调度研究的历史尚短,其发展还不够完善,在模型和求解策略上还存在一些亟待解决的难题。遗传算法作为一种群体智能算法,操作简便,在求解FJSP时具有较好的寻优能力和鲁棒性,但是仍然存在着收敛速度慢、极易早熟以及种群多样性不足的缺陷。

2 部分代码

clear
global mac_num;
global job;
global mac;
gnmax=50;%最大代数
pc=0.8; %交叉概率
pm=0.2; %变异概率
[job,mac_num]=read_data('data.xlsx');
mac=creat_machine(mac_num);
pop_size=10;
pop=inipop(pop_size);
best_time=[];
mean_time=[];
best_pop=[];
generation=1;
while generation<=gnmax
father_pool=choose_father(pop,pop_size);
child_cross=cross_pox(father_pool,pc);
child_mut=mutation_exchange(child_cross,pm);
[~,best_time(end+1),best_pop_n,f]=choose_prob(child_mut);
mean_time(end+1)=mean(f);
best_pop(end+1,:)=child_mut(best_pop_n,:);
generation=generation+1;
end
[minst_time,minst_n]=min(best_time);
draw_gantt(best_pop(minst_n,:));
figure(2);
plot(best_time,'r'); hold on;
plot(mean_time,'b');grid;
title('搜索过程');
legend('最优解','平均解');
fprintf('遗传算法得到的最短时间:%.2f\n',minst_time);

3 仿真结果

【生产调度】基于遗传算法求解柔性生产调度(FJSP)问题含Matlab源码_调度问题

4 参考文献

[1]王琴. 基于遗传算法求解柔性作业车间调度问题[D]. 北京化工大学, 2018.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

【生产调度】基于遗传算法求解柔性生产调度(FJSP)问题含Matlab源码_遗传算法_02




网友评论