1 简介
柔性车间作业调度问题是一个复杂的NP问题,灰狼优化算法(GWO)是目前一种比较新颖的群智能优化算法,多用于解决连续函数优化问题.
2 部分代码
%该程序用于解决柔性作业车间调度,m个工件,n道工序,其中n为最大工序数,工件的工序
%数可以少于n,加工机器数为M,每个工件的每道工序具有多个机器可以选择,对应的时间
%不同,其中初始种群的储存方式采用cell数据类型
%Version:1.3
%fileDescription:调度机器可选的柔性作业车间问题,甘特图已完善,GWO,8*8实例
%last edit time:2019-6-7
function GWO_Model_FJSP_1_3_8_8()
count = 5000; %迭代次数
N = 100; %种群规模
m = 6; %工件数
n = 4; %工序数
M = 4; %机器数
a =2; %计算A/C协同系数的
plotif = 1; %控制程序是否进行绘图
s = input(m,n); %数据输入
[p,TN] = initial_p(m,n,N,s,M); %生成初始种群50,采用细胞结构,每个元素为8*4
P = machine(n,M);
FIT = zeros(count,1);
aveFIT = zeros(count,1);
X1=randperm(count); %收敛图形的横坐标X
X=sort(X1);
%------------------------输出最优解的时有用------------------------------
best_fit = 1000; %改变模型需要修改此参数
best_p = zeros(m,n);
best_TN = zeros(m,n);
Y1p = zeros(m,1);
Y2p = zeros(m,1);
Y3p = zeros(m,1);
minfit3 = 1000000000;
%-------------------------进行迭代--------------------------------------
end
%-----------------------------选择最优方案---------------------------
function [best_p,best_TN,best_fit,Y1p,Y2p,Y3p]=best(best_fit,best_p,fit,best_TN,Y1p,Y2p,Y3p,p,TN,Y1,Y2,Y3)
best_fit = min(fit);
pos = find(fit==best_fit);
best_p = p(pos(1));
best_TN = TN(pos(1));
best_p=cell2mat(best_p);
best_TN=cell2mat(best_TN);
Y1p=Y1(pos(1));
Y2p=Y2(pos(1));
Y3p=Y3(pos(1));
Y1p=cell2mat(Y1p);
Y2p=cell2mat(Y2p);
Y3p=cell2mat(Y3p);
3 仿真结果
4 参考文献
[1]姜天华. 基于灰狼优化算法的低碳车间调度问题[J]. 计算机集成制造系统, 2018, 24(10):8.