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

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;%惯性权重最小值rrrChannel=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;endstep=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;%初始化速度enddisp(['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);    endenddisp(['本次加工总逾期利润:',num2str(overdueTime)]);plot(gb,'-*b');xlabel('迭代次数');ylabel('总利润(元)');title('适应度进化曲线');        

3 运行结果

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

4 参考文献

[1]陈智慧. 基于JADE平台的粒子群算法在经济调度中的应用[J]. 电气技术, 2015, 16(001):32-35.

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

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

你可能感兴趣的:(优化求解,matlab,算法,java)