【优化调度】基于粒子群算法解决企业生产调度问题附matlab代码
【优化调度】基于粒子群算法解决企业生产调度问题附matlab代码
TT_Matlab
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。
1 内容介绍
某服装企业决定加工 9 批本企业品牌服装,因季节变化关系,每批产品都有一个交货期限,如果在此期限之前完成,则产品可以较高的价格出售,超过期限则将面临更激烈的价格竞争而减少生产效益。假设各批次服装的加工时间、交货期限和利润如表 1 所示,设每批产品的加工过程不允许中断,即一批产品加工过程中不能插入其他批次产品的加工,求总利润最大的加工顺序。
表 1 本企业品牌产品加工时间和交货期限表
产品批次 1 2 3 4 5 6 7 8 9
加工时间(天) 3 4 1 2 6 1 4 7 5
交货期限 5 9 3 12 10 24 5 6 6
按期产品利润(百元) 750 1200 800 900 2500 500 3000 5600 4500
逾期产品利润(百元) 500 900 400 750 1800 300 1500 4000 2000
问题 :选取适当的决策变量,建立总 利润最大化的服装加工顺序 模型,计算并列出生产进度表。
2 仿真代码
clear all;
close all;
clc;
N=
100
;%群体粒子个数
T=
20
;%最大迭代次数
c1=
2
;%个体最优学习因子
c2=
2
;%全局最优学习因子
Vmax=
4
;%速度最大值
Vmin=-
4
;%速度最小值
Wmax=
0
.
9
;%惯性权重最大值
Wmin=
0
.
4
;%惯性权重最小值rrr
Channel=
9
;%设置空闲信道数目
Counter=
0
;%更新次数
Flag=zeros(T,
1
);%标记更新
overMatrix=zeros(T,N);%逾期时间矩阵
minTbest=zeros(
20
,
1
);%逾期时间矩阵
results=zeros(
20
,
11
);%结果矩阵
for
i=
1
:
20
minTbest(i,
1
)=
1000
;
end
step=
4
;%设置step位二进制表示一个十进制数
D=step.*Channel;%粒子维数
rbest=ones(
20
,Channel);
% vacant_time=[
10
,
60
,
25
,
170
,
83
,
5
,
54
,
155
];%设置各个信道的平均空闲时间(求均值)
time=[
3
4
1
2
6
1
4
7
5
];%时间矩阵
deadline=[
5
9
3
12
10
24
5
6
6
];
profilein=[
750
1200
800
900
2500
500
3000
5600
4500
];
profileout=[
500
900
400
750
1800
300
1500
4000
2000
];
%time=[
0
3
6
5
1
3
1
5
6
3
2
];%时间矩阵
%deadline=[
2
4
5
5
5
15
15
20
24
35
35
];
%profilein=[
1250
1600
1800
2500
500
1700
650
1500
1800
1200
800
];
%profileout=[
1000
1280
1440
200
0
1190
450
1050
1260
660
500
];
%%%
%%%
%%%
%%%
%%%
初始化种群个体(限定速度和位置)
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%
x=randint(N,D); %
随机获得二进制编码的初始种群
v=rand(N,D)*(Vmax-Vmin)+Vmin;%初始化速度
end
disp([
’20次全局最优值(前9列为加工顺序,第10列为本次加工总逾期时间(其中1000表示没有更新,结果同上一次更新,第11列为总利润)):’
]);
sortrows(results,
11
)
g; %最优个体
g1=bin2decStep(g,step,Channel);
gb(T);
disp([
’利润最大化的服装加工顺序为:’
,num2str(g1+
1
)]);
disp([
’最大总利润为:’
,num2str(gb(T))]);
for
i=
1
:
20
if
Flag(i,
1
)==
1
overdueTime=minTbest(i);
end
end
disp([
’本次加工总逾期利润:’
,num2str(overdueTime)]);
plot(gb,
’-*b’
);
xlabel(
’迭代次数’
);
ylabel(
’总利润(元)’
);
title(
’适应度进化曲线’
);
3 运行结果
4 参考文献
[1]陈智慧. 基于JADE平台的粒子群算法在经济调度中的应用[J]. 电气技术, 2015, 16(001):32-35.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
-
2023年血糖新标准公布,不是3.9-6.1,快来看看你的血糖正常吗? 2023-02-07
-
2023年各省最新电价一览!8省中午执行谷段电价! 2023-01-03
-
GB 55009-2021《燃气工程项目规范》(含条文说明),2022年1月1日起实施 2021-11-07
-
PPT导出高分辨率图片的四种方法 2022-09-22
-
2023年最新!国家电网27家省级电力公司负责人大盘点 2023-03-14
-
全国消防救援总队主官及简历(2023.2) 2023-02-10
-
盘点 l 中国石油大庆油田现任领导班子 2023-02-28
-
我们的前辈!历届全国工程勘察设计大师完整名单! 2022-11-18
-
关于某送变电公司“4·22”人身死亡事故的快报 2022-04-26
