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
海神之光
- 粉丝: 5w+
- 资源: 6477
最新资源
- 运输工具检测17-YOLO(v5至v9)、COCO、CreateML、Paligemma、TFRecord数据集合集.rar
- 西门子V90效率倍增-伺服驱动功能库详解-简易非循环功能库之绝对值编码器校准.mp4
- COMSOL 远场偏振通用计算方法,包含远场偏振图,能带,matlab 程序 展示包含仿真文件截图,所见即所得
- MATLAB基础知识到高级应用全面介绍
- 配电网有功电压控制的多智能体强化学习(代码) 针对电压主动控制问题的不同场景,采用7种最先进的MARL算法进行了大规模实验,将电压约束转化为势垒函数,并从实验结果中观察到设计合适的电压势垒函数的重要性
- PLC立体车库智能仿真 博途V15 3×2立体车库 西门子1200PLC 触摸屏仿真 不需要实物 自带人机界面 小车上下行有电梯效果 每一个程序段都有注释 FC块标准化编写 自带变频器输出也可以仿真
- 运输工具检测20-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord数据集合集.rar
- Fortran语言全面教程:从基础语法到高级特性
- comsol电树枝,电击穿
- 基于条件风险价值CVaR的微网 电厂多场景随机规划 摘要:构建了含风、光、燃、储的微网 电厂优化调度模型,在此基础上,考虑多个风光出力场景,构建了微网随机优化调度模型,并在此基础上,基于条件风险价值理
- agv 1221.fbx111
- Kotlin编程语言基础教程与高级特性实践
- 燃料电池功率跟随cruise仿真模型 此模型基于Cruise2019版及Matlab2018a搭建调试而成,跟随效果很好,任务仿真结束起始soc几乎相同 控制模型主要包括燃料堆控制、DCDC控制
- 飞机、桥、人、游泳池、车辆、风车检测13-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
- 基于LQR最优控制算法实现的轨迹跟踪控制,建立了基于车辆的质心侧偏角、横摆角速度,横向误差,航向误差四自由度动力学模型作为控制模型,通过最优化航向误差和横向误差,实时计算最优的K值,计算期望的前轮转角
- 北京大学 博士研究生申请汇报答辩.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈