机械论文

发布时间:2026年01月29日  作者:aiycxz.cn

当前位置:首页 > 机械论文基于改进遗传算法的多目标柔性作业车间调度 来源:一起赢论文网 日期:2015-06-06 浏览数:3483 【 字体: 大 中 小 大 中 小 大 中 小 】 摘 要: 针对多目标柔性作业车间调度问题,以最大完工时间、机器总负载和关键机器负载为优化目标,建立多目标调度模型。提出一种改进的遗传算法进行求解,该算法采用基于工序和机器的双层编码方式,设计一种新的选择操作来保持种群多样性,并采用自适应交叉和变异概率。通过仿真实验,验证了该算法的可行性和有效性。关键词: 柔性作业车间调度; 多目标优化; 遗传算法; 自适应交叉和变异概率Multi-objective Flexible Job Shop Scheduling Based on Improved Genetic AlgorithmAbstract: Aiming at multi-objective flexible job shop scheduling problem,a multi-objective scheduling model is established with the optimization objectives of makespan,total machine load and critical machine load. An improved genetic algorithm is proposed to solve the problem. The algorithm adopts a double-layer coding method based on process and machine,designs a new selection operation to maintain the diversity of the population,and uses adaptive crossover and mutation probability. The simulation results show that the algorithm is feasible and effective.Key words: flexible job shop scheduling; multi-objective optimization; genetic algorithm; adaptive crossover and mutation probability1 引言柔性作业车间调度问题( flexible job shop scheduling problem,FJSP) 是经典作业车间调度问题( job shop scheduling problem,JSP) 的扩展,它允许一道工序可以在多台机器上加工,而且同一台机器可以加工不同的工序,因此 FJSP 比 JSP 更复杂,也更具有实际意义。FJSP 是典型的 NP-hard 问题,由于其在理论上和实际应用中的重要性,近年来受到国内外学者的广泛关注。目前,国内外学者对 FJSP 的研究主要集中于单目标优化,如最小化最大完工时间、机器总负载等。然而在实际生产中,往往需要考虑多个目标,如最大完工时间、机器总负载、关键机器负载等。因此,对多目标 FJSP 的研究具有重要的实际意义。目前,求解多目标 FJSP 的方法主要有两类: 一类是采用加权法将多目标转化为单目标进行求解,如文献[1]采用加权法将多目标转化为单目标,并采用遗传算法进行求解; 另一类是采用 Pareto 方法进行求解,如文献[2]提出一种基于 Pareto 的混合遗传算法求解多目标 FJSP。本文以最大完工时间、机器总负载和关键机器负载为优化目标,建立多目标 FJSP 模型,并提出一种改进的遗传算法进行求解。该算法采用基于工序和机器的双层编码方式,设计一种新的选择操作来保持种群多样性,并采用自适应交叉和变异概率。通过仿真实验,验证了该算法的可行性和有效性。2 问题描述FJSP 可描述为: 有 n 个工件在 m 台机器上加工,每个工件包含一道或多道工序,工序的加工顺序是预先确定的,每道工序可以在多台机器上加工,加工时间随机器的不同而不同。调度的目标是为每道工序选择合适的机器,并确定每台机器上工序的加工顺序,使得某些性能指标最优。本文以最大完工时间、机器总负载和关键机器负载为优化目标,建立多目标 FJSP 模型。假设:( 1) 所有工件在零时刻均可加工;( 2) 每台机器在同一时刻只能加工一道工序;( 3) 每道工序在同一时刻只能在一台机器上加工;( 4) 工序的加工过程是非抢占的;( 5) 不考虑机器的准备时间。符号说明:n: 工件数;m: 机器数;Ji: 工件 i,i = 1,2,…,n;Oij: 工件 i 的第 j 道工序;Mk: 机器 k,k = 1,2,…,m;Pijk: 工序 Oij在机器 Mk上的加工时间;Sijk: 工序 Oij在机器 Mk上的开始加工时间;Cijk: 工序 Oij在机器 Mk上的完工时间;xijk: 0-1 变量,若工序 Oij在机器 Mk上加工,则 xijk= 1,否则 xijk= 0。优化目标:( 1) 最大完工时间最小化:f1= min max { Cijk} ( 1)( 2) 机器总负载最小化:f2= min ∑ni = 1∑nj = 1∑mk = 1xijkPijk( 2)( 3) 关键机器负载最小化:f3=

相关文章