
欢迎来到海神之光博客之家✅博主简介热爱科研的Matlab仿真开发者修心和技术同步精进个人主页海神之光代码获取方式海神之光Matlab王者学习之路—代码获取方式⛳️座右铭行百里者半于九十。更多Matlab车间调度仿真内容点击①付费专栏Matlab车间调度初级版②Matlab车间调度 进阶版⛳️关注CSDN海神之光更多资源等你来⛄一、简介⛄二、部分源代码clear;clc;dbstop if error;M7;RouN[4 3 3 2 5 4];Jm{[2 4 6],[1 2 4 7],[1 3 5 6],[1 3 5 7],0;[2 4 6],[1 3 5],[1 2 4 5 6 7],0,0;[1 4],[1 3 4 6],[2 3 7],0,0;[5 7],[4 5 6],0,0,0;[1 3 5],[2 3 6],[4 5 7],[1 2 5 7],[1 4 6];[1 2 3 4 6 7],[3 5],[1 4 6],[2 3 7],0};T {[16 16 15],[17 18 14 16],[20 20 18 13],[20 17 13 19],0;[17 18 14],[17 18 22],[19 17 21 19 17 19],0,0;[18 20],[18 17 23 19],[22 20 17],0,0;[16 18],[25 20 21],0,0,0;[19 18 16],[12 9 10],[10 13 8],[13 16 14 12],[20 19 22];[10 9 11 9 9 10],[17 11],[14 10 9],[13 11 10],0};function [PVal,Cost]caltime(P,M1,T,Jm,M,CO,s,l,dj,RouN)PNumbersize(Jm,1);WNumbersize(P,2);MTcell(M,1);TPEzeros(1,PNumber);PValzeros(2,WNumber);Cost0;for i1:MMT{i,1}[0;1000000000];endfor i1:WNumbervalP(1,i);amod(val,100);b(val-a)/100;csum(RouN(1:b-1))a;m_numberM1(1,c);mJm{b,a}(m_number);tT{b,a}(m_number);coCO{b,a}(m_number);Costcotlt*s;%如果是这样算根本没有贪婪解码的必要可以加上待机成本ksize(MT{m,1},2); for j1:k t1MT{m,1}(2,j)-MT{m,1}(1,j);%t1的数值计算表示MT的第m个cell单元中的j列的第二行减去第一行的值 %其含义表示机器的空闲时间。上一行的值表示上一道工序的完成时间下一行的值表示下一道工序的开始时间 t2MT{m,1}(2,j)-TPE(1,b); %t2数值计算含义是表示MT的第m个cell单元中的j列的第二行减去某工件上一道工序的完成时间 %其含义表示机器进行下一道工序的开始时间和b工件上一道工序的完成时间的差值用于判断是否在机器m上加工b工件下一道工序的时间 if tmin(t1,t2) %两者综合判断取最小值用于判断某工序加工时间是否能插入先加工如果进入if表示可以插入 %在可以插入的情况下 PVal(1,i)max(TPE(1,b),MT{m,1}(1,j));%PVal第一行放的是工序的开始加工时间取的是某工件上一道工序的完成时间 %和机器上一道工序的完成时间中的最大值 PVal(2,i)PVal(1,i)t;%PVal第二行放的是工序的加工完成时间等于上一道重新插入工序的开始加工时间加上机器加工时间 TPE(1,b)PVal(2,i);%将工序的加工完成时间存放入相对应工件的工序完成时间中 if jk %可以插入的话就将插入的值放在第m个cell单元的第二行中表示工序开始加工的时间之前的值就相应变成后面的 MTtempMT{m,1}(:,j1:k); MT{m,1}(2,j1)MT{m,1}(2,j); MT{m,1}(2,j)PVal(1,i); MT{m,1}(1,j1)PVal(2,i); MT{m,1}MT{m,1}(:,1:j1); MT{m,1}[MT{m,1} MTtemp]; else MT{m,1}(2,j1)MT{m,1}(2,j);%补充MTcell数组中的列数并赋值。这个表达式含义就是把第j列的第2行赋值给第j1列的第二行就是1000000 MT{m,1}(2,j)PVal(1,i);%把刚刚在这个机器上完成的工序开始时间赋给第j列的第2行 MT{m,1}(1,j1)PVal(2,i);%把刚刚在这个机器上完成的工序结束时间赋给第j1列的第1行 MT{m,1}MT{m,1}(:,1:j1);%这个就是将拓宽后的MT的第m个单元重新赋给原来的单元 end break; end endenddjcost0;for q_11:MmtMT{q_1,1};for q_21:size(mt,2)-1djtimeMT{m,1}(2,j)-MT{m,1}(1,j);djcostdjcostdjtime*dj;endendCostCostdjcost;function [MinVal,P,PVal,MVal]IWOA(M,Jm,T,CO,RouN)WNumbersum(RouN);NIND50;b1;Ps0.5;Wmax0.9;Wmin0.2;gen1;MAXGEN50;r10.3;r20.7;tracezeros(2,MAXGEN);%混合种群初始化%Chromzeros(NIND,2WNumber);MSinitial(NIND,Jm,T,RouN,M);OSCSH(MS,M,Jm,T,CO,RouN);%Chrom(:,1:WNumber)MS(:;%Chrom(:,WNumber1,2WNumber)OS(:;while genMAXGEN[PVal1,ObjVCh,P1,MVal1]cal(OS,MS,M,Jm,T,CO,RouN); trace(1,gen)min(ObjVCh); trace(2,gen)mean(ObjVCh); Positiontransback(MS,Jm,M,RouN); PXROV(Position,OS,RouN); [~,Best]min(ObjVCh); XbestPosition(Best(1),:); for i1:NIND a(2-(2*gen/MAXGEN))*(1-(gen^3)/(MAXGEN^3)); A2*a*r1-a; C2*r2; L2*rand-1; XPosition(i,:); WWmax-(Wmax-Wmin)*log(1gen*1.7183/MAXGEN); if randPs if abs(A)1 Dabs(C*Xbest-X); XtXbest-W*A*D; Position(i,:)Xt; else q0.3*(1-gen/MAXGEN); if randq [Xmin,~]min(X); [Xmax,~]max(X); XjXminrand(Xmax-Xmin); Position(i,unidrnd(WNumber))Xj; end end else DD1abs(Xbest-X); XtDD1*exp(b*L)*cos(2*pi*L)*WXbest; Position(i,:)Xt; end end PositionYH(Position,M); [MS,OS]trans(Position,PX,RouN,Jm,M); [PVal2,ObjV,P2,MVal2]cal(OS,MS,M,Jm,T,CO,RouN); if gen1 if min(ObjVCh)min(ObjV) Val1PVal1; Val2P1; Val3MVal1; MinValmin(ObjVCh); else Val1PVal2; Val2P2; Val3MVal2; MinValmin(ObjV); end end if MinValtrace(1,gen) Val1PVal2; Val2P2; Val3MVal2; MinValtrace(1,gen); end gengen1;endPValVal1;PVal2;MValVal3;clf;figure(1);for i1:WNumbervalP(1,i);amod(val,100);b(val-a)/100;csum(RouN(1:b-1))a;m_numberMVal(1,c);mJm{b,a}(m_number);MaHaom;plotRec(PVal(1,i),PVal(2,i),MaHao);mPoint1PVal(1,i);mPoint2PVal(2,i);x1mPoint1;y1MaHao-0.5;x2mPoint2;y2MaHao-0.5;x3mPoint2;y3MaHao;⛄三、运行结果⛄四、matlab版本及参考文献1 matlab版本2014a2 参考文献[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例第2版[M].电子工业出版社2016.[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社2017.3 备注简介此部分摘自互联网仅供参考若侵权联系删除 仿真咨询1 各类智能优化算法改进及应用生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化2 机器学习和深度学习方面卷积神经网络CNN、LSTM、支持向量机SVM、最小二乘支持向量机LSSVM、极限学习机ELM、核极限学习机KELM、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断3 图像处理方面图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知4 路径规划方面旅行商问题TSP、车辆路径问题VRP、MVRP、CVRP、VRPTW等、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化5 无人机应用方面无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配6 无线传感器定位及布局方面传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化7 信号处理方面信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化8 电力系统方面微电网优化、无功优化、配电网重构、储能配置9 元胞自动机方面交通流 人群疏散 病毒扩散 晶体生长10 雷达方面卡尔曼滤波跟踪、航迹关联、航迹融合