传统柔性作业车间
一般,传统(经典)柔性作业车间调度问题中通常:
(1)会假设加工时间包括工件装夹、工件卸载的时间,或者不考虑工件在机器上的装夹、卸载步骤;
(2)不考虑工件在不同机器间、机器与仓库间的转移时间;
传统FJSP问题,大家可翻阅我以前的一篇博客:麻雀算法SSA解决柔性作业车间调度问题FJSP
考虑工件装夹与卸载、工件转移的柔性作业车间调度问题
在该文章中,我们将以上忽略的因素考虑进来。
算例
我们将设计的算例写在excel中,方便任意修改:
GA求解
我们使用(带精英保留)的遗传算法求解
部分代码
%% 生成并加载数据
clc;
clear all;
dataRead();
Info = load('Info.mat');
%% GA 优化
GAResult = GA(Info);
%% 甘特图
figure(1)
gantt_chart(GAResult.machineTable, Info)
%% 迭代曲线
figure(2)
plot(GAResult.minRec, 'r-', 'LineWidth', 1.5);
hold on
plot(GAResult.avgRec, 'b-.', 'LineWidth', 1.5);
title('迭代曲线');
xlabel('迭代次数');
ylabel('最大完工时间');
legend('最小值','平均值');
box on; grid on;
迭代曲线
甘特图
注:L — 装夹 Load; U — 卸载 Unload;
工件每一道工序都是先从上一道工序的加工机器卸载,然后转移,然后装夹到本道工序的加工机器上,才能开始加工;工件的首道工序需要从仓库转移到机器。
写在最后
本文系本人原创,未经本人允许,严禁搬运、盗图、盗文!!如需完整MATLAB代码,私戳博主~ ~ 亦或咨询本人3249992049(白嫖勿扰 ~ ~)