基于遗传算法的柔性车间调度优化(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
目录
💥1 概述
车间生产调度作为关键技术和核心内容在离散柔性制造生产计划中起主要作用1,因为每个企业车间的生产资源是有限的,并且工件的加工也会受到设备工艺的限制,如何合理安排每个工件的每个生产步骤在哪台设备上加工,以确保所选定的目标的最佳性能,这就是调度的目的。该问题的特征在于显著的离散性、复杂性、多重约束和不确定性。传统作业车间生产调度很难达到最佳的排产效果,这样就会造成生产效率低下,浪费生产资源,增加企业生产成本。因此,用来实现柔性车间调度的智能算法亟需设计,进而可以提高生产效率,提高企业的市场竞争力。
柔性车间生产排产调度问题(flexible job shop scheduling problem,FJSP)是传统作业车间生产调度问题(job shop scheduling problem,JSP)的扩展。FJSP这个问题在1990年由Bruker等[2l提出
,在JSP中,每道工序是预先确定的,并且其生产设备和生产时间也是
预先确定的。而在FJSP中,每道工序的生产设备是不确定的。每道工序都有加工设备集,可在其中挑选任一设备进行加工;并且不同生产设备生产同道工序所花费时间不同,这增加了该类调度问题的灵活性,且在实际生产中为常见情况.所以解决该问题势在必行。
文献来源:
📚2 运行结果
部分代码:
function [Z,machine_weight,pvals] = fitness(chroms,num_machine,e,num_job,num_op)
sizepop=size(chroms,1);
pvals=cell(1,sizepop);
Z1=zeros(1,sizepop);
Z2=Z1;
total_op_num=sum(num_op); % 总工序数
for k=1:sizepop
chrom=chroms(k,:);
machine=zeros(1,num_machine); % 记录各机器变化时间
job=zeros(1,num_job); % 记录各工件变化时间
machine_time=zeros(1,num_machine); % 计算各机器的实际加工时间
pval=zeros(2,total_op_num); % 记录各工序开始和结束时间
for i=1:total_op_num
% 机器时间大于工件时间
if machine(chrom(total_op_num+i))>=job(chrom(i))
pval(1,i)=machine(chrom(total_op_num+i)); % 记录工件开始时间
machine(chrom(total_op_num+i))=machine(chrom(total_op_num+i))+chrom(total_op_num*2+i);
job(chrom(i))=machine(chrom(total_op_num+i));
pval(2,i)=machine(chrom(total_op_num+i)); % 记录工件结束时间
% 机器时间小于工件时间
else
pval(1,i)=job(chrom(i));
job(chrom(i))=job(chrom(i))+chrom(total_op_num*2+i);
machine(chrom(total_op_num+i))=job(chrom(i));
pval(2,i)=job(chrom(i));
end
machine_time(chrom(total_op_num+i))=machine_time(chrom(total_op_num+i))+chrom(total_op_num*2+i);
end
Z1(k)=max(machine); % 最大机器时间值,对应makespan
% machine_weight=machine_time/sum(machine_time); % 计算各机器的负荷
machine_weight=machine_time;
Z2(k)=max(machine_weight)-min(machine_weight);
pvals{k}=pval;
end
% min_makespan=min(Z1);%所有染色体的makespan最优值
% max_makespan=max(Z1);
% min_weight=min(Z2);%负载最优值
% max_weight=max(Z2);
% Z=e*((Z1-min_makespan)./(max_makespan-min_makespan))+(1-e)*((Z2-min_weight)./(max_weight-min_weight));%计算适应度
Z=e*Z1+(1-e)*Z2;
🎉3 参考文献
[1]郭庆,张明路,孙立新,刘轩.基于遗传算法的柔性车间调度优化[J].科学技术与工程,2020,20(29):11931-11936.
[2]张仕坤,朱卫勇,谢钧.基于遗传算法的柔性车间作业调度研究[J].机电信息,2013(18):170-171.DOI:10.19514/j.cnki.cn32-1628/tm.2013.18.110.
🌈4 Matlab代码实现
相关文章
- 基于粒子群优化算法的分布式电源选址与定容【多目标优化】【IEEE33节点】(Matlab代码实现)
- 【光热电站CSP】含光热电站的热—电综合能源系统优化调度(Matlab代码实现)
- 基于纳什谈判理论的风–光–氢多主体能源系统合作运行方法(Matlab代码实现)
- 微电网两阶段鲁棒优化经济调度方法[2](Matlab代码实现)
- 电池电动汽车 (BEV) 优化调度(Matlab代码实现)
- 【无人机】基于灰狼优化算法的无人机路径规划问题研究(Matlab代码实现)
- 短时内穿过矢量风场的路径规划研究(Matlab代码实现)
- 基于改进蛙跳优化算法( SFLA) 训练神经网络研究(Matlab代码实现)
- 基于动态自适应加权极限RUL 预测(Matlab代码实现)
- 【回归预测-BP预测】基于思维进化算法优化BP神经网络在非线性函数拟合中的应用(Matlab代码实现)
- 基于ALOHA MAC方法的蒙特卡罗模拟(Matlab代码实现)
- 【数据分析】大型ADCP数据集的处理和分析(Matlab代码实现)
- 多目标跟踪方法评估的风模拟场景研究(Matlab代码实现)
- 使用机器学习代码的光热发电和风力涡轮机人工智能系统研究(Matlab代码实现)
- 【智能电网随机调度】智能电网的双层模型时间尺度随机优化调度(Matlab代码实现)
- 【无人机群】用于控制具有污染物云跟踪的模拟无人机群研究(Matlab代码实现)
- 多旋翼无人机组合导航系统-多源信息融合算法(Matlab代码实现)
- 【雷达通信】滤波及数据融合【滤波包括了常增益滤波、卡尔曼(Kalman)滤波和扩展卡尔曼滤波(EKF) 数据融合采用BC和CC两种,基于KF和EKF实现】(Matlab代码实现)
- 无信息变量消除法研究及实现(Matlab代码实现)
- 【图像处理】图像的边缘检测(Matlab代码实现)
- 粒子滤波算法(Matlab代码实现)
- 基于广义互相关的声源定位研究(Matlab代码实现)
- 基于低能耗自适应聚类层次结构(LEACH)(Matlab代码实现)