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 运行结果
4 参考文献
[1]陈智慧. 基于JADE平台的粒子群算法在经济调度中的应用[J]. 电气技术, 2015, 16(001):32-35.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。



