遗传算法柔性作业车间调度优势,matlab遗传算法车辆调度实例
【作业车间调度】基于遗传算法的柔性作业车间调度,带Matlab代码_ Matlab仿真技术博客_博客
1.针对传统作业车间调度中加工设备功能单一、加工工序对应设备固定的问题,采用遗传算法进行求解和优化。测试了一个8个作业、每个作业8个过程的应用实例,证明了该方法的可行性和有效性。
第2部分代码% -
Function [fit,y1,y2,y3]=object (p,tn,n,p,m,n)%计算每个染色体的适应度。
fit=zeros(N,1);
Y1=cell(N,1);
Y2=cell(N,1);
Y3=cell(N,1);
对于j=1:N
Y1{j}=零(m,n);
Y2{j}=零(m,n);
Y3{j}=零(m,n);
目标
对于w=1:N
x=p { w };%变量初始化
t=TN { w };
[m,n]=大小(X);
Y1p=零(m,n);
Y2p=零(m,n);
Y3p=零(m,n);
Q1=零(m,1);%计算第一道工序的安排。
Q2=零(m,1);
R=X(:1);%取出第一道工序的机器号。
Q3=楼层(R);%向下舍入,得到每个工件在第一道工序中使用的机器号。
对于k=1:第一道工序计划的P(1)%,k是机器号。
pos=find(Q3==k);%取出Q3中K机加工的工件号。
lenpos=长度(位置);使用机器K的工件数量百分比
如果lenpos==0
目标
如果lenpos=1
Q1(位置(1))=0;
Q2(位置(1))=Q1(位置(1)) T(位置(1),1);
如果lenpos=2
对于j=2:lenpos
Q1(职位(j))=Q2(职位(j-1));
Q2(pos(j))=Q1(pos(j)) T(pos(j),1);
目标
目标
目标
目标
Y1p(:1)=Q1;
Y2p(:1)=Q2;
Y3p(:1)=Q3;
对于k=2:n%,计算第2到第n个过程的安排。
Q1=零(m,1);
Q2=零(m,1);
R=X(:k);%取出K进程的机器号。
Q3=楼层(R);%向下舍入,得到第k个工序中每个工件使用的机器号。
R1=X(:k-1);%取出上一工序的机器号。
Q31=地板(R1);%向下舍入以获得每个工件在前一工序中使用的机器号。
对于i=1:P(k)%的第I个进程的调度,其中k是机器号。
pos=find(Q3==I);
lenpos=长度(位置);
pos 1=find(Q31==I);
lenpos1=长度(pos 1);
如果lenpos==0
目标
如果lenpos=1
EndTime=Y2p(pos(1),k-1);
POS=零(1,len POS 1);
对于j=1:lenpos1
POS(j)=Y2p(pos1(j),k-1);
目标
EndTime1=max(位置);
如果结束时间1结束时间
EndTime=EndTime1
其他
EndTime=结束时间;
目标
Q1(位置(1))=结束时间;
Q2(位置(1))=Q1(位置(1)) T(位置(1),k-1);
如果lenpos=2
对于j=2:lenpos
Q1(位置(j))=Y2p(位置(j),k-1);%上一个操作的结束时间
如果Q1(职位(j)) Q2(职位(j-1))
Q1(职位(j))=Q2(职位(j-1));
其他
Q1(职位(j))=Q1(职位(j));
目标
Q2(位置(j))=Q1(位置(j)) T(位置(j),k);
目标
目标
目标
目标
Y1p(:k)=Q1;
Y2p(:k)=Q2;
Y3p(:k)=Q3;
目标
Y2m=Y2p(:n);
Y2m1=Y2p(:n-1);
zx=max(y2 m1);
ZP=max(Y2m);
如果Zx Zp
Zp=Zx
目标
fit(w)=Zp;
Y1 { w }=Y1p
Y2 { w }=Y2p
Y3 { w }=Y3p
End3模拟结果
4参考文献[1]郭庆,张明璐,孙立新,刘璇。基于遗传算法的柔性作业车间调度优化[J].科学技术与工程,2020,20(29):6。
博主:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等领域的Matlab仿真。相关的matlab代码问题可以私信交流。有些理论引用自网络文献。如有侵权,联系博主删除。
原创作品来自matlab研究助手,
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。