首页 > 行业资讯 > 【优化调度】基于粒子群算法解决企业生产调度问题附matlab代码

【优化调度】基于粒子群算法解决企业生产调度问题附matlab代码

时间:2022-07-29 来源: 浏览:

【优化调度】基于粒子群算法解决企业生产调度问题附matlab代码

天天Matlab 天天Matlab
天天Matlab

TT_Matlab

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。

收录于合集 #智能优化算法及应用 500个

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代码问题可私信交流。

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

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐