💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
📚2 运行结果
🎉3 参考文献
🌈4 Matlab代码实现
💥1 概述
摘要:针对传统作业车间调度存在加工设备功能单一、加工工序对应设备固定的问题,提出一种新型混合改进的遗传算法进行求解优化。首先,采用一种新的编码思想构建双层染色体编码结构,强化初始种群质量,提高种群的多样性;并给出相应的选择操作设计,交叉操作采用单段交叉、两段交叉和三段交叉机制,改善算法全局搜索能力,变异操作引入种群分割的思想,按照适应度将种群分割成两部分,并赋予不同的变异概率,实行两种变异机制,以提高算法的局部搜索能力;添加新的检查操作以增强优化过程的可行性。最后采用MATLAB编程,通过一个6个工件、每工件6道工序的应用实例进行测试,验证了该方法切实可行有效。
关键词:
遗传算法;柔性车间调度;优化;检查;
📚2 运行结果
部分代码:
%输入机器开始时间,结束时间,最大完工时间
%画出一个甘特图
function draw_gantt(code)
global mac_num;
global job;
[max_mac_time,mac_serial,mac_start,mac_end]=decode(code);
nb_mac=sum(mac_num);
axis([0,max_mac_time+5,0,nb_mac+0.5]);%x轴 y轴的范围
set(gca,'xtick',0:2:max_mac_time+5) ;%x轴的增长幅度
set(gca,'ytick',0:1:nb_mac+0.5) ;%y轴的增长幅度
xlabel('加工时间','FontName','微软雅黑','Color','b','FontSize',10)
ylabel('机器号','FontName','微软雅黑','Color','b','FontSize',10,'Rotation',90)
title('解码甘特图','fontname','微软雅黑','Color','b','FontSize',16);%图形的标题
color=rand(length(job),3);%生成随机的颜色,并使其方差和大于0.3,防止出现多个相似颜色
while sum(var(color))<0.26
color=rand(length(job),3);
end
for i=1:nb_mac
for j=1:length(mac_start{i})
rec=[mac_start{i}(j),i-0.3,mac_end{i}(j)-mac_start{i}(j),0.6];%设置矩形的位置,[矩形左下顶点的x坐标,y坐标,长度,高度]
txt=sprintf('p(%d,%d)=%3.1f',mac_serial{i}(j,1),mac_serial{i}(j,2),mac_end{i}(j)-mac_start{i}(j));%将工序号,加工时间连城字符串
rectangle('Position',rec,'LineWidth',0.5,'LineStyle','-','FaceColor',color(mac_serial{i}(j,1),:));%画每个矩形
text(mac_start{i}(j)+0.2,i,txt,'FontWeight','Bold','FontSize',10);%在矩形上标注工序号,加工时间
end
end
🎉3 参考文献
部分理论来源于网络,如有侵权请联系删除。
[1]郭庆,张明路,孙立新等.基于遗传算法的柔性车间调度优化[J].科学技术与工程,2020,20(29):11931-11936.