function [T,M,trace1,trace2,trace3,fitness]=FJSP_ADV_fitness4(P,M,W)
SubtaskAmo=numel(P);
countP=zeros(1,max(P));
countM=zeros(1,max(M));
T(M(1),1)=0;
E(M(1),1)=W(1);
BS(M(1),1)=0;
BE(M(1),1)=0;
TS(P(1),1)=T(M(1),1);
TE(P(1),1)=TS(P(1),1)+W(1);
maxspan=W(1);
trace1(M(1),1)=W(1);
trace2(M(1),1)=P(1);
trace3(M(1),1)=1;
countP(P(1))=countP(P(1))+1;
countM(M(1))=countM(M(1))+1;
for i=2:SubtaskAmo
if countP(P(i))==0 && countM(M(i))==0
countP(P(i))=countP(P(i))+1;
countM(M(i))=countM(M(i))+1;
T(M(i),1)=0;
E(M(i),1)=W(i);
BS(M(i),1)=0;
BE(M(i),1)=0;
TS(P(i),1)=0;
TE(P(i),1)=TS(P(i),1)+W(i);
maxspan=max(maxspan,E(M(i),1));
trace1(M(i),1)=W(i);
trace2(M(i),1)=P(i);
trace3(M(i),1)=1;
elseif countP(P(i))>0 && countM(M(i))==0
countP(P(i))=countP(P(i))+1;
countM(M(i))=countM(M(i))+1;
T(M(i),1)=TE(P(i),countP(P(i))-1);
E(M(i),1)=T(M(i),1)+W(i);
BS(M(i),1)=0;
BE(M(i),1)=T(M(i),1);
TS(P(i),countP(P(i)))=T(M(i),1);
TE(P(i),countP(P(i)))=TS(P(i),countP(P(i)))+W(i);
maxspan=max(maxspan,E(M(i),1));
trace1(M(i),1)=W(i);
trace2(M(i),1)=P(i);
trace3(M(i),1)=countP(P(i));
elseif countP(P(i))==0 && countM(M(i))>0
countP(P(i))=countP(P(i))+1;
countM(M(i))=countM(M(i))+1;
flag1=0;
for j=1:countM(M(i))-1
if BE(M(i),j)-BS(M(i),j)>=W(i);
flag1=1;
temp=BE(M(i),j);
BE(M(i),j)=BS(M(i),j);
BS(M(i),j+1)=BE(M(i),j)+W(i);
BE(M(i),j+1)=temp;
for k1=countM(M(i)):-1:j+1
T(M(i),k1)=T(M(i),k1-1);
E(M(i),k1)=E(M(i),k1-1);
trace1(M(i),k1)=trace1(M(i),k1-1);
trace2(M(i),k1)=trace2(M(i),k1-1);
trace3(M(i),k1)=trace3(M(i),k1-1);
end
if j==1
T(M(i),j)=0;
E(M(i),j)=T(M(i),j)+W(i);
else
T(M(i),j)=E(M(i),j-1);
E(M(i),j)=T(M(i),j)+W(i);
end
TS(P(i),countP(P(i)))=T(M(i),j);
TE(P(i),countP(P(i)))=TS(P(i),countP(P(i)))+W(i);
trace1(M(i),j)=W(i);
trace2(M(i),j)=P(i);
trace3(M(i),j)=1;
if countM(M(i))-j>=2
for k2=countM(M(i)):-1:j+2
BS(M(i),k2)=BS(M(i),k2-1);
BE(M(i),k2)=BE(M(i),k2-1);
end
end
break;
end
end
if ~flag1
T(M(i),countM(M(i)))=E(M(i),countM(M(i))-1);
E(M(i),countM(M(i)))=T(M(i),countM(M(i)))+W(i);
BS(M(i),countM(M(i)))=E(M(i),countM(M(i))-1);
BE(M(i),countM(M(i)))=E(M(i),countM(M(i))-1);
TS(P(i),countP(P(i)))=T(M(i),countM(M(i)));
TE(P(i),countP(P(i)))=TS(P(i),countP(P(i)))+W(i);
maxspan=max(maxspan,TE(P(i),countP(P(i))));
trace1(M(i),countM(M(i)))=W(i);
trace2(M(i),countM(M(i)))=P(i);
trace3(M(i),countM(M(i)))=countP(P(i));
end
else
countP(P(i))=countP(P(i))+1;
countM(M(i))=countM(M(i))+1;
flag2=0;
for j=1:countM(M(i))-1
if BE(M(i),j)-BS(M(i),j)>=W(i) && BE(M(i),j)-TE(P(i),countP(P(i))-1)>=W(i)
flag2=1;
for k1=countM(M(i)):-1:j+1
T(M(i),k1)=T(M(i),k1-1);
E(M(i),k1)=E(M(i),k1-1);
trace1(M(i),k1)=trace1(M(i),k1-1);
trace2(M(i),k1)=trace2(M(i),k1-1);
trace3(M(i),k1)=trace3(M(i),k1-1);
end
if BS(M(i),j)<=TE(P(i),countP(P(i))-1)
temp=BE(M(i),j);
BE(M(i),j)=TE(P(i),countP(P(i))-1);
BS(M(i),j+1)=BE(M(i),j)+W(i);
BE(M(i),j+1)=temp;
T(M(i),j)=TE(P(i),countP(P(i))-1);
E(M(i),j)=T(M(i),j)+W(i);
else
temp=BE(M(i),j);
BE(M(i),j)=BS(M(i),j);
BS(M(i),j+1)=BE(M(i),j)+W(i);
BE(M(i),j+1)=temp;
T(M(i),j)=E(M(i),j-1);
E(M(i),j)=T(M(i),j)+W(i);
end
TS(P(i),countP(P(i)))=T(M(i),j);
TE(P(i),countP(P(i)))=TS(P(i),countP(P(i)))+W(i);
trace1(M(i),j)=W(i);
trace2(M(i),j)=P(i);
trace3(M(i),j)=countP(P(i));
if countM(M(i))-j>=2
for k2=countM(M(i))
BS(M(i),k2)=BS(M(i),k2-1);
BE(M(i),k2)=BE(M(i),k2-1);
end
end
break;
end
end
if ~flag2
T(M(i),countM(M(i)))=max(E(M(i),countM(M(i))-1),TE(P(i),countP(P(i))-1));
E(M(i),countM(M(i)))=T(M(i),countM(M(i)))+W(i);
BS(M(i),countM(M(i)))=E(M(i),countM(M(i))-1);
BE(M(i),countM(M(i)))=T(M(i),countM(M(i)));
TS(P(i),countP(P(i)))=T(M(i),countM(M(i)));
TE(P(i),countP(P(i)))=TS(P(i),countP(P(i)))+W(i);
maxspan=max(maxspan,E(M(i),countM(M(i))));
trace1(M(i),countM(M(i)))=W(i);
trace2(M(i),countM(M(i)))=P(i);
trace3(M(i),countM(M(i)))=countP(P(i));
end
end
fitness=maxspan;
end
end
没有合适的资源?快使用搜索试试~ 我知道了~
【车间调度】基于matlab粒子群算法求解车间调度问题【含Matlab源码 013期】.zip
共19个文件
xls:10个
m:6个
xlsx:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 199 浏览量
2023-11-07
16:37:33
上传
评论
收藏 893KB ZIP 举报
温馨提示
CSDN海神之光上传的全部代码均可运行,亲测可用,尽我所能,为你服务; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,可私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开除main.m的其他m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博主博客文章底部QQ名片; 4.1 CSDN博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作 智能优化算法车间调度问题JSP系列程序定制或科研合作方向: 4.4.1 遗传算法GA/蚁群算法ACO车间调度问题JSP 4.4.2 粒子群算法PSO/蛙跳算法SFLA车间调度问题JSP 4.4.3 灰狼算法GWO/狼群算法WPA车间调度问题JSP 4.4.4 鲸鱼算法WOA/麻雀算法SSA车间调度问题JSP 4.4.5 萤火虫算法FA/差分算法DE车间调度问题JSP 4.4.6 其他优化算法车间调度问题JSP
资源推荐
资源详情
资源评论
收起资源包目录
【车间调度】基于matlab粒子群算法求解车间调度问题【含Matlab源码 013期】.zip (19个子文件)
【车间调度】基于matlab粒子群算法求解车间调度问题【含Matlab源码 013期】
mk
Mk09!299.xls 146KB
Mk02!24.xls 118KB
Mk06!33.xls 56KB
Mk04!48.xls 119KB
Mk01!36.xls 382KB
Mk08!523.xls 135KB
Mk07!133.xls 43KB
data.xlsx 778KB
Mk10MM165.xls 510KB
Mk05!168.xls 177KB
M_generate3.m 678B
运行结果.jpg 46KB
W_generate2.m 564B
FJSP_objv3.m 683B
data1.xls 33KB
FJSP_ADV_fitness4.m 6KB
FJSP_PSO.m 3KB
distribute_pos.m 272B
data2.xlsx 17KB
共 19 条
- 1
资源评论
海神之光
- 粉丝: 5w+
- 资源: 6110
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于C语言和汇编语言的简单操作系统内核.zip
- (源码)基于Spring Boot框架的AntOA后台管理系统.zip
- (源码)基于Arduino的红外遥控和灯光控制系统.zip
- (源码)基于STM32的简易音乐键盘系统.zip
- (源码)基于Spring Boot和Vue的管理系统.zip
- (源码)基于Spring Boot框架的报表管理系统.zip
- (源码)基于树莓派和TensorFlow Lite的智能厨具环境监测系统.zip
- (源码)基于OpenCV和Arduino的面部追踪系统.zip
- (源码)基于C++和ZeroMQ的分布式系统中间件.zip
- (源码)基于SSM框架的学生信息管理系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功