基于NSGAII的的柔性作业调度优化算法MATLAB仿真,仿真输出甘特图

目录

1.程序功能描述

2.测试软件版本以及运行结果展示

3.核心程序

4.本算法原理

5.完整程序


1.程序功能描述

        基于NSGAII的的柔性作业调度优化算法MATLAB仿真,仿真输出甘特图,完工时间:,延期,机器负载,机器能耗。

2.测试软件版本以及运行结果展示

MATLAB2022A版本运行

(完整程序运行后无水印)

3.核心程序

.....................................................................................
for i=1:JQ(1).num_mac
    m_index=find(Mmc==i);
    if size(m_index,1)>=1 && size(m_index,2)>=1
        for j=1:size(m_index,2)
            m_var=m_index(j);
            m_info(m_var)=j;
        end
    end
end
% 绘制Gantt图
figure;
Njq         = JQ(1).num_mac;%total bays  //机器数目
Ntask       = length(P);
Work_Time_  = Pgood(size(P,2)+1);%所需的消耗时间
Delay_Time_ = Pgood(size(P,2)+2);%延期时间
All_Load_   = Pgood(size(P,2)+3);%设备负荷
All_power_  = Pgood(size(P,2)+4);%能量消耗
axis([0,Pgood(size(P,2)+1)+2,0,Njq+0.5]);%x轴 y轴的范围
 
xlabel('加工时间')
ylabel('机器号');
WW=sprintf('完工时间:%d  延期:%d 机器负载:%d 机器能耗:%.2fKw/h',Work_Time_,Delay_Time_,All_Load_,All_power_)
title(WW);%图形的标题
rec=[0,0,0,0];
for i =1:Ntask  
    rec(1) = Tmach{Mmc(i)}(m_info(i),1);%矩形的横坐标
    rec(2) = Mmc(i)-0.3;%矩形的纵坐标
    rec(3) = Tmach{Mmc(i)}(m_info(i),2)-Tmach{Mmc(i)}(m_info(i),1);%矩形的x轴方向的长度
    rec(4) = 0.6; 
    txt=sprintf('p(%d,%d)=%d',P(i),p_text(i),Tmach{Mmc(i)}(m_info(i),2)-Tmach{Mmc(i)}(m_info(i),1));%将机器号,工序号,加工时间连城字符串
    rectangle('Position',rec,'LineWidth',0.5,'LineStyle','-','FaceColor',color(p_color(i)));%draw every rectangle  
    text(Tmach{Mmc(i)}(m_info(i),1)+0.2,Mmc(i),txt,'FontSize',12);
end
74

4.本算法原理

       基于NSGA-II(Non-dominated Sorting Genetic Algorithm II)的柔性作业调度优化算法通常用于解决多目标优化问题,特别是在制造业中,为了优化生产计划和调度。在这样的场景下,你可能需要考虑多个目标,比如最小化完工时间(makespan)、减少任务延期、均衡机器负载以及降低机器能耗等。

       在制造系统中,柔性作业调度是指在一个可以由多种机器加工同一工件的环境中,决定每个工件应该在哪些机器上加工,以及每个工件何时开始加工的过程。这种类型的调度问题通常涉及多个目标函数,如最小化总完工时间、最小化总延期时间、最大化机器利用率等。以下是实现基于NSGA-II的柔性作业调度优化算法的大致步骤:

  1. 定义问题:明确决策变量(如每个任务的开始时间和分配的机器),并定义目标函数(如上述提到的完工时间、延期、机器负载和能耗)。

  2. 编码:为每个个体选择合适的编码方式,比如使用列表来表示每个任务的开始时间和机器编号。

  3. 初始化种群:随机生成一个种群,每个个体代表一个潜在的调度方案。

  4. 评估函数:编写评估函数来计算每个个体的目标函数值。

  5. 遗传操作:实现交叉和变异操作,以便在种群中引入新的个体。

  6. 选择操作:利用NSGA-II的选择策略来选择下一代种群。

  7. 终止条件:设置终止条件,比如达到一定的迭代次数或种群收敛。

  8. 仿真输出:通过仿真工具来生成甘特图和其他输出结果。

5.完整程序

VVV

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软件算法开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值