【车间调度】基于遗传算法实现柔性车间调度问题附Matlab代码(遗传算法解决车间调度问题)

网友投稿 278 2022-09-05


【车间调度】基于遗传算法实现柔性车间调度问题附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); for j = 1:N Y1{j} = zeros(m,n); Y2{j} = zeros(m,n); Y3{j} = zeros(m,n); endfor w = 1:N X = p{w}; %变量初始化 T = TN{w}; [m,n] = size(X); Y1p = zeros(m,n); Y2p = zeros(m,n); Y3p = zeros(m,n); Q1 = zeros(m,1); %计算第一道工序的安排 Q2 = zeros(m,1); R = X(:,1); %取出第一道工序的机器号 Q3 = floor(R); %向下取整得到各工件在第一道工序使用的机器号 for k =1:P(1) %第一道工序的时间安排,k为机器号 pos = find(Q3 == k); %在Q3中取出用机器k加工的工件编号 lenpos = length(pos); %使用机器k的工件数量 if lenpos == 0 end if lenpos >= 1 Q1(pos(1)) = 0; Q2(pos(1)) = Q1(pos(1)) + T(pos(1),1); if lenpos >= 2 for j = 2:lenpos Q1(pos(j)) = Q2(pos(j-1)); Q2(pos(j)) = Q1(pos(j)) + T(pos(j),1); end end end end Y1p(:,1) = Q1; Y2p(:,1) = Q2; Y3p(:,1) = Q3; for k = 2:n %计算第2到n道工序的安排 Q1 = zeros(m,1); Q2 = zeros(m,1); R = X(:,k); %取出第k道工序的机器号 Q3 = floor(R); %向下取整得到各工件在第k道工序使用的机器号 R1 = X(:,k-1); %取出前一道工序的机器号 Q31 = floor(R1); %向下取整得到各工件在前一道工序使用的机器号 for i = 1:P(k) %第i道工序的时间安排,k为机器号 pos = find(Q3 == i); lenpos = length(pos); pos1 = find(Q31 == i); lenpos1 = length(pos1); if lenpos == 0 end if lenpos >= 1 EndTime = Y2p(pos(1),k-1); POS = zeros(1,lenpos1); for j = 1:lenpos1 POS(j) = Y2p(pos1(j),k-1); end EndTime1 = max(POS); if EndTime1 > EndTime EndTime = EndTime1; else EndTime = EndTime; end Q1(pos(1)) = EndTime; Q2(pos(1)) = Q1(pos(1)) + T(pos(1),k-1); if lenpos >= 2 for j = 2:lenpos Q1(pos(j)) = Y2p(pos(j),k-1); %前一道工序的结束时间 if Q1(pos(j)) < Q2(pos(j-1)) Q1(pos(j)) = Q2(pos(j-1)); else Q1(pos(j)) = Q1(pos(j)); end Q2(pos(j)) = Q1(pos(j)) + T(pos(j),k); end end end end Y1p(:,k) = Q1; Y2p(:,k) = Q2; Y3p(:,k) = Q3; end Y2m = Y2p(:,n); Y2m1 = Y2p(:,n-1); Zx = max(Y2m1); Zp = max(Y2m); if Zx >Zp Zp = Zx; end fit(w) = Zp; Y1{w} = Y1p; Y2{w} = Y2p; Y3{w} = Y3p;end

3 仿真结果

4 参考文献

[1]郭庆、张明路、孙立新、刘轩. 基于遗传算法的柔性车间调度优化[J]. 科学技术与工程, 2020, 20(29):6.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【滤波器】基于 FIR实现高通+低通+带通+带阻滤波器设计含Matlab源码(滤波器概念)
下一篇:Java实战花店商城系统的实现流程
相关文章

 发表评论

暂时没有评论,来抢沙发吧~