CN117852840B - 一种基于多目标差分进化可变子批的柔性车间调度方法 - Google Patents

一种基于多目标差分进化可变子批的柔性车间调度方法 Download PDF

Info

Publication number
CN117852840B
CN117852840B CN202410257155.7A CN202410257155A CN117852840B CN 117852840 B CN117852840 B CN 117852840B CN 202410257155 A CN202410257155 A CN 202410257155A CN 117852840 B CN117852840 B CN 117852840B
Authority
CN
China
Prior art keywords
machine
sub
machines
time
batch
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202410257155.7A
Other languages
English (en)
Other versions
CN117852840A (zh
Inventor
金镇君
李佳星
王海东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Changchun University of Technology
Original Assignee
Changchun University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Changchun University of Technology filed Critical Changchun University of Technology
Priority to CN202410257155.7A priority Critical patent/CN117852840B/zh
Publication of CN117852840A publication Critical patent/CN117852840A/zh
Application granted granted Critical
Publication of CN117852840B publication Critical patent/CN117852840B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • General Factory Administration (AREA)

Abstract

本发明公开了一种基于多目标差分进化可变子批的柔性车间调度方法,包括:S1:建立目标函数,确定约束条件,对染色体进行编码并初始化相关参数;S2:对染色体做变异交叉选择,进行算法迭代;S3:采用两阶段解码方式进行解码并计算目标值;S4:判断是否达到结束条件,若是,输出最优调度方案对应的甘特图,否则返回S2继续执行。本发明采用可变子批进行工件的批量拆分,并设计了两阶段解码方式,将四维问题降到三维问题,缩小了解集空间,有效的提升了求解质量;同时结合企业实际生产,采用批次流设计,同时考虑了成本和完工时间,在成本计算中,同时考虑了不同机器空闲时长的代价和不同机器加工相同工件的成本,更贴合实际生产模型。

Description

一种基于多目标差分进化可变子批的柔性车间调度方法
技术领域
本发明属于车间只能生产调度技术领域,尤其是涉及一种基于多目标差分进化可变子批的柔性车间调度方法。
背景技术
随着经济的全球化,企业为提高自身竞争力,适应客户需求,由少品种大批量的生产模式向多品种小批量生产模式转变,在多品种小批量生产模式下,企业生产的产品具有短交货期、低库存的特点,因此企业需要选择合适的生产调度方案应对该生产模式,提升企业生产能力并降低企业运营成本。
传统车间调度问题多为柔性作业车间问题,但其将工件处理为整批进行生产,故很难适应当前生产模式。批量流技术(ls)可以将每个作业分成几个子批次,并且在不同的制造阶段执行重叠操作以加速生产并提高机器利用率。以电子产品加工厂生产为例,在柔性作业车间中,每个工件必须全部生产完成才会从一个工作台转移到另一个工作台,而结合了批量流技术后,生产过程中以工作台为单位,每一个人旁边都有一个托盘,用来存放在制品,当存放量装满一个托盘后,由传输带或者手工运往下一个工作台旁。批量流技术的结合增加了作业重叠时间,提升了生产效率。
批量流技术的关键为批量拆分技术,其中批量拆分技术可以分为4种:单子批、相等子批、一致子批和可变子批,虽然可变子批的批量分割需要额外的递归计算,增加了设置成本,且需要更长的计算时间来得到一个较为满意的解方案,但是其灵活的分批策略相比于其他两种方法在调度工件时有更大的改进空间。柔性作业车间调度问题(fjsp)仅包含机器分配和工序排序,fjsp-ls在此基础之上还增加了批量拆分和子批量化,将二维问题变为更加复杂的四维问题,因此合理的求解方法变得尤为重要。差分进化算法是一种高效的并行搜索技术,其具有控制参数少,收敛速度快的优点。其在连续型问题取得较好的结果,但fjsp-ls为离散型问题,无法将其直接应用,同时其变异策略使用的变异算子应用在fjsp-ls时,无法得到可行解。
发明内容
为此,本发明的一个目的在于提出一种基于多目标差分进化可变子批的柔性车间调度方法,以解决背景技术中所提到的问题,克服现有技术中存在的不足。
为了实现上述目的,本发明采用以下技术方案:
一种基于多目标差分进化可变子批的柔性车间调度方法,包括以下步骤:S1:建立目标函数,确定约束条件,对染色体进行编码并初始化相关参数;所述目标函数包括完成时间的目标函数和成本的目标函数;所述对染色体进行编码具体为基于可变子批的两部分编码,所述两部分编码分别为第一部分的基于工序的编码和第二部分的基于机器数量与机器号的编码;S2:对染色体做变异交叉选择,进行算法迭代;S3:采用两阶段解码方式进行解码并计算目标值;具体的,两阶段解码的第一阶段包括:首先确定机器的优先级,其次将步骤S2中得到的子批次任务按照顺序分配到所选的机器或缓存区中,然后将缓存区中部分的子批插入到机器中,最后向机器中补入一个子批或遍历完该机器所有加工子批,进入第二阶段;第二阶段包括:采用贪心策略选择加工机器,按缓存区中子批的存储顺序将缓存区中剩余的子批分配到机器上;S4:判断是否达到结束条件,若是,输出最优调度方案对应的甘特图,否则返回S2继续执行。
作为优选,所述完成时间的目标函数如下:
其中,表示当前调度方案的最大完成时间,表示机器的最终结束加工 时间,表示机器总数量。
作为优选,所述成本的目标函数如下:
其中,表示当前调度方案的总成本,表示机器的空闲加工成本,表示机器的空闲加工时间,表示工件在机器上的加工成本,表示工件在机 器上的加工时间,表示工件总数。
作为优选,所述S2包括:S21:通过POX交叉产生子代;S22:采用设计好的工序部分的变异算子、机器数量部分的变异算子和机器号部分的变异算子对产生的子代进行变异操作。
作为优选,所述变异算子如下:
工序部分的变异算子
其中,是变异因子,表示工件工序在染色体上的索引值, 为种群中最优染色体,为随机一条染色体,表示新计算出的索引值,表示 染色体包含的总工序数,函数是对索引值的插值取下界,为变异向量,函数是 对染色体两个工序索引值进行交换;
机器数量部分的变异算子
其中表示变异因子,表示染色体中待变异位置的机器数量,表示变 异后的机器数量,表示染色体中待变异位置的机器集,表示变异后的新机器 集,函数表示差值与变异因子的乘积取地板,表示待变异位置的机器数量最大值,表示在机器集中随机的机器号,表示在除去机器集中的机器号以外 的可用机器集随机的机器号,函数表示在机器集删除数量的机 器号,函数表示在机器集增加数量的机器号,函数表示 将机器集更新到染色体;
机器号部分的变异算子
其中表示染色体中待变异位置的机器集,函数表示在机器集中 随机一个机器号,表示在机器集的一个机器号,表示在机器集的一个 机器号,表示在机器集的一个机器号,表示机器号在待变异位置 所有可用机器中的索引,函数表示差值与变异因子的乘积取地板,表示变异因子,表示变异后的机器号,表示索引在待变异位置所有可用机器中的机器号,表 示变异位置可用机器数量最大值,函数表示在机器集中删除的机器号, 函数表示将机器集中的机器号替换成函数表示将机器集更新 到染色体。
作为优选,所述约束条件如下:
其中,表示工件总数量,表示工件包含的工序数量,表示机器数量,表示工序的操作员数量,表示工件工序工装数量,表示工件子批次 总数,表示工件的工序分配到机器上的子批数量,表示机器上工 件工序子批的结束时间,表示工件工序的结束时间,表示机器的结束 时间,表示机器上工件工序的设置时间,表示机器上工件工序 子批的加工时间,表示工件工序的操作员最早开始时间,表示机器上工件工序子批的开始时间,表示时间,表示时刻工序操作员工作的人数,均表示机器,二者表示前后使用的机器不同,表示当前机器,表示下一个机器; 为判断工件工序是否有设置时长,有为1,无为0,为判断机器上是否有工件工 序的产品,为判断工件工序是否需要操作员辅助,是为1,否为0,为判断机器上 一次生产与这次生产的工件型号是否相同,不相同为1,相同为0。
作为优选,所述S3具体包括以下步骤:
S31:确定机器优先级;
根据时间公式计算出每个机器的最早开始时间,根据每个机器的最早 开始时间确定所有机器的优先级;当有多个机器的最早开始时间相 同时,机器的结束时间越大,机器的优先级越高;
其中,时间公式如下:
其中,表示工件1子批在工序上的结束时间;
S32:第一次分配子批次生产任务;
选择优先级最高的机器,将步骤S22中得到的子批次任务按照结束时间递增的顺序排序,并按照排序后的顺序分配到所选的机器中;
具体的分配过程为:判断第一个子批在上一工序结束时间与下一工序选定机器的 结束时间是否满足,若是,则将第一个子批存储至缓存区,缓存区中的 所有子批按照结束时间递增排序,否则将第一个子批分配到所选机器中,并更新机器的,之后将第二个子批同样按照上述分配过程进行分配,直到每个子批均被遍历一次, 结束分配;
S33:第二次分配子批次生产任务;
将S32中分配给机器的子批次任务右移并将缓存区中的子批插入到机器中;
具体的,机器最右侧子批保持不动,动态的将缓存区中的子批插入导机器中;
所述动态的将缓存取中的子批插入导机器中具体过程如下:
设置右移检查时间为选择机器的最后子批开始时间,从后向前判断间隔时间,若,则遍历缓存区,找到满足同时具有 最大子批,将其插入机器的该子批后,并从缓存区删除,更新,将前一个子批向右移动,使其结束时间等于,并更新,重复上述过程直到前无加工子批;
S34:补入一子批;
设置左移检查时间,计算出第一个子批的移动距离并保存为,若,则执行S35,否则执行下述操 作:
更新,左移该子批,计算出子批移动最大位置,计算移动 距离,若,则遍历缓存区,寻找满足条件的并且具 有最大的子批,若找到,将该子批插入该机器,并向右移动时间后所有的子 批,移动距离为;若未找到,更新,向右移动时 间前的所有子批,移动的距离为;重复上述操作,左移子批,直到成功 补入一个子批或遍历完该机器所有加工子批,进入S35;
S35:确定加工机器;
采用贪心策略选择加工机器;
S36:分配单个子批次;
确定加工机器后,按缓存区中子批的存储顺序将缓存区中剩余的子批分配到机器上;
S37:在分配所有子批后,根据完成时间的目标函数和成本的目标函数计算目标值。
作为优选,所述S4的具体步骤如下,S41:根据改进的归一化目标公式对S3中得到的目标值进行归一化,求得归一化后的目标值;S42:根据二元锦标赛法选择新的种群;S43:判断迭代次数是否达到最大次数,若是输出最优甘特图,否则返回S2继续执行。
作为优选,所述S4中,归一化后的目标值计算公式如下:
使用索引计算目标为的染色体在帕累托解决方案集是目标 在解集中的最大值最小值。
因此,本发明具有以下有益效果:
本发明的一种基于多目标差分进化可变子批的柔性车间调度方法,采用可变子批进行工件的批量拆分,并设计了两阶段解码方式,将四维问题降到三维问题,缩小了解集空间,有效的提升了求解质量。
本发明方法结合企业实际生产,考虑了企业真实需求模型,采用批次流设计,同时考虑了成本和完工时间,在成本计算中,既考虑了不同机器空闲时长的代价不同,又考虑了不同机器加工相同工件的成本不同,更贴合实际生产模型。
另外,本发明对差分进化算法的变异算子进行改进,设计了3种变异算子,包括工序部分的变异算子、机器数量部分的变异算子和机器号部分的变异算子,对产生的子代进行变异操作,可以避免种群早熟,增加了种群多样性,避免种群过早地陷入局部最优解从而无法得到可行解的问题。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明的方法整体流程图;
图2是本发明的方法整体功能框架图;
图3是本发明实施例的编码实例图;
图4是本发明实施例的工序变异实例图;
图5是本发明实施例的机器数量变异实例图;
图6是本发明实施例的机器号变异实例图;
图7是本发明实施例的POX交叉实例图;
图8是本发明实施例的测试样例初始图;
图9是本发明实施例的第一阶段确定优先级示意图;
图10是本发明实施例的第一阶段第一次分配示意图一;
图11是本发明实施例的第一阶段第一次分配示意图二;
图12是本发明实施例的第一阶段第一次分配示意图三;
图13是本发明实施例的第一阶段第一次分配示意图四;
图14是本发明实施例的第一阶段第二次分配示意图一;
图15是本发明实施例的第一阶段第二次分配示意图二;
图16是本发明实施例的第一阶段第二次分配示意图三;
图17是本发明实施例的第一阶段补一子批示意图一;
图18是本发明实施例的第一阶段补一子批示意图二;
图19是本发明实施例的第二阶段确定机器优先级示意图;
图20是本发明实施例的第一阶段分配单个子批次示意图;
图21是本发明实施例的测试样例最终结果示意图;
图22是本发明实施例的甘特图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
如图1和图2所示,一种基于多目标差分进化可变子批的柔性车间调度方法,包括以下步骤S1-S4:
S1:建立目标函数,确定约束条件,对染色体进行编码并初始化相关参数。所述目标函数包括完成时间的目标函数和成本的目标函数;所述对染色体进行编码具体为基于可变子批的两部分编码,所述两部分编码分别为第一部分的基于工序的编码和第二部分的基于机器数量与机器号的编码。
传统的时间要素过多强调速度,造成机器时间碎片化,最短时间的方案不一定是最经济的解决方案,应在交货日期的约束下,得到一个低成本的生产方案,因现实接到的订单企业未必能如期交货,可能需要加班时间,因此本发明使用多目标对其进行优化。
具体的,完成时间的目标函数如下:
其中,表示当前调度方案的最大完成时间,表示机器的最终结束加工 时间,表示机器总数量。
具体的,成本的目标函数如下:
其中,表示当前调度方案的总成本,表示机器的空闲加工成本,表示机器的空闲加工时间,表示工件在机器上的加工成本,表示工件在机 器上的加工时间,表示工件总数。
具体的,约束条件如下:
控制每个工件占用机器数最少为1且不能超过工件在这一工序的工装数:
计算工件在某一工序拆分给不同机器的子批次之和应等于工件的总批次:
每个机器更换工件后,第一个子批次完成时间:
子批次仅在其前一批次完成之后才开始在其机器上处理:
保证进入下一个机器之前必须在当前机器上完成:
强制同一工件的工序必须遵守顺序约束:
指示出最早的机器开始时间:
保证同时工作在同一工序下的操作员不能超过该工序操作员的最大人数:
所有工件均能在零时刻被处理:
其中,表示工件总数量,表示工件包含的工序数量,表示机器数量,表示工序的操作员数量,表示工件工序工装数量,表示工件索引,表示 工序索引,表示机器索引,表示子批次在机器中的索引,表示工件子批次总数,表示工件的工序分配到机器上的子批数量,表示机器上工件工 序子批的结束时间,表示工件工序的结束时间,表示机器的结束时间,表示机器上工件工序的设置时间,表示机器上工件工序子批 的加工时间,表示工件工序的操作员最早开始时间,表示机器上工 件工序子批的开始时间,表示时间,表示时刻工序操作员工作的人数,在保证进 入下一个机器之前必须在当前机器上完成的约束中,均表示机器,二者表示前后使 用的机器不同,表示当前机器,表示下一个机器; 为判断工件工序是否有设置 时长,有为1,无为0,为判断机器上是否有工件工序的产品,为判断工件工 序是否需要操作员辅助,是为1,否为0,为判断机器上一次生产与这次生产的工件型 号是否相同,不相同为1,相同为0。
初始化参数主要是包括种群初始化,采用随机初始化的方式产生批量染色体和批次染色体。
根据本发明模型的特点,设计了一种改进的基于可变子批的两部分编码,前半部 分为基于工序的编码,根据工件的序号在染色体中出现的次序编译,第次出现的工件序号 表示该工件的第道工序。后半部分为机器数量选择与机器号的编码,编码中该位置列表的 长度为加工此操作所需的机器的数量,列表内的序号代表相应工序的加工机器集合中的序 号。该种编码方式操作简单,易生成可行解。
在一个编码实施例中,如图3,其中OS表示工序编码,MS表示机器编码。在染色体编 码中,MS字段中的操作顺序是按照工件自然顺序排序,与OS字段并不是一一对应的。如图对 于OS部分,‘2’出现的第3次表示工序。MS部分中‘5,7’表示使用机器,根据自然 排序得出工序为
S2:对染色体做变异交叉选择,进行算法迭代。
具体的,S2包括以下步骤:
S21:通过POX交叉产生子代。
通过POX交叉产生子代的过程如图7所示,通过POX交叉算子能够产生两个可行的子代C1和C2,POX交叉用于基因编码操作属于现有的成熟技术,在此不再进行赘述。
S22:采用设计好的工序部分的变异算子、机器数量部分的变异算子和机器号部分的变异算子对产生的子代进行变异操作。
其中,变异算子如下:
工序部分的变异算子
公式(1)
公式(2)
公式(3)
其中,是变异因子,表示工件工序在染色体上的索引值, 为种群中最优染色体,为随机一条染色体,表示新计算出的索引值,表示 染色体包含的总工序数,函数是对索引值的插值取下界,为变异向量,函数是 对染色体两个工序索引值进行交换。
在一个实施例中,如图4,变异前5工件的1工序索引值为8,索引值分 别为6和1,设定为1,则根据上述公式(1)计算得出未超出边界,所以根据公式 (3)交换中的8号索引与13号索引的内容,完成工序变异。
机器数量部分的变异算子
公式(4)
公式(5)
公式(6)
公式(7)
其中表示变异因子,表示染色体中待变异位置的机器数量,表示变 异后的机器数量,表示染色体中待变异位置的机器集,表示变异后的新机器 集,函数表示差值与变异因子的乘积取地板,表示待变异位置的机器数量最大值,表示在机器集中随机的机器号,表示在除去机器集中的机器号以外 的可用机器集随机的机器号,函数表示在机器集删除数量的机 器号,函数表示在机器集增加数量的机器号,函数表示 将机器集更新到染色体
在一个实施例中,如图5,染色体中待变异的机器数量为1,对应位置 的机器数量分别为2和1,设定F为1,通过公式(4)与公式(5)计算的出新的变异数量为2,得 出需要添加1个机器集中未使用的机器号,通过公式(6)将该变异号添加到染色体中,最 后使用公式(7)更新得到机器数量变异后的染色体。
机器号部分的变异算子
公式(8)
公式(9)
公式(10)
公式(11)
公式(12)
其中表示染色体中待变异位置的机器集,函数表示在机器集中 随机一个机器号,表示在机器集的一个机器号,表示在机器集的一个 机器号,表示在机器集的一个机器号,表示机器号在待变异位置 所有可用机器中的索引,函数表示差值与变异因子的乘积取地板,表示变异因子,表示变异后的机器号,表示索引在待变异位置所有可用机器中的机器号,表 示变异位置可用机器数量最大值,函数表示在机器集中删除的机器号, 函数表示将机器集中的机器号替换成函数表示将机器集更新 到染色体。
在一个实施例中,如图6,染色体待变异的机器集为2,对应位置的机 器集分别为3和4,根据公式(8)得到待变异机器号为2,对应的机器号分别为 3、4,设定为1,通过公式(9)、公式(10)得到变异的机器号为1,1不在原待变异的机器集中, 故使用公式(11)将变异后的机器号替换原机器号2,最后通过公式(12)将变异后的机器集 更新到染色体中完成机器号变异。
S3:采用两阶段解码方式进行解码并计算目标值。
其中,两阶段解码的第一阶段包括:首先确定机器的优先级,其次将步骤S2中得到的子批次任务按照顺序分配到所选的机器或缓存区中,然后将缓存区中部分的子批插入到机器中,最后向机器中补入一个子批或遍历完该机器所有加工子批,进入第二阶段;第二阶段包括:采用贪心策略选择加工机器,按缓存区中子批的存储顺序将缓存区中剩余的子批分配到机器上。
第一阶段需先确定机器的加工优先级,后按机器优先级为每个机器分配其最大加 工批数,如子批全部分配完成则跳过第二阶段,有剩余则开始第二阶段的分配。在一个实施 例中,第一阶段开始前如图8,测试数据忽略工序启动时的设置时长与操作员的约束,其中表示同一工件的两个工序,工序选择了机器工序选择了机器, 子批编号1,2,3等以其在工序的结束时间递增排序,各机器结束时间均在图中标注,工件 加工时间如表1。
S3具体包括以下步骤:
S31:确定机器优先级;
根据时间公式计算出每个机器的最早开始时间,根据每个机器的最早 开始时间确定所有机器的优先级;当有多个机器的最早开始时间相 同时,机器的结束时间越大,机器的优先级越高;
其中,时间公式如下:
其中,表示工件1子批在工序上的结束时间;染色体编码过程中包 含了一个可选机器集合,为保证机器空闲时间尽量短,并尽可能减少机器使用数量,在子批 次划分前需确定优先加工的机器,故设计了一个机器选择算法,来降低机器闲置时长。具体 实现过程如下,根据求出最早开始时间表示工件的子批在工序上的结束时间,表示依据子批下线在工序中递增排序 的子批索引。评判机器优先级参照以下两个原则,第一原则为小的机器优先级 高,目的为降低机器使用数量。第二原则为当相同时,大的机器优先级高, 其目的是减少机器空闲时长。
在一个实施例中,如图9,图中上半部分的三条短实线表示机器上一操作 的结束时间,长实线表示工件工序中第一子批结束时间, 分别比较,得出工件分别在。比较三台机器的,发现最大,故机 器优先级最低。相同。接着通过比较得出,因此机器 的优先级高于,故机器的优先级排序由高到低依次为
S32:第一次分配子批次生产任务;
选择优先级最高的机器,将步骤S22中得到的子批次任务按照结束时间递增的顺序排序,并按照排序后的顺序分配到所选的机器中。
具体的分配过程为:判断第一个子批在上一工序结束时间与下一工序选定机器的 结束时间是否满足,若是,则将第一个子批存储至缓存区,缓存区中的 所有子批按照结束时间递增排序,否则将第一个子批分配到所选机器中,并更新机器的,之后将第二个子批同样按照上述分配过程进行分配,直到每个子批均被遍历一次, 结束分配。
其中的缓存区定义为用于存储上一工序结束但下一工序还没有分配的子批任务的暂存区域,是抽象的或者存在于数据空间的区域,并不存在于现实三维空间中。
在确定了加工机器的优先级后,选出最高优先级的机器加工。首先将上一工序子 批次结束时间递增排序,并以排序后的顺序分配到选择的机器中。分配过程中若子批在上 一工序结束时间小于下一阶段选定机器的结束时间,即,则将其按结束 时间递增排序存储至缓存区。大于则将该子批分配到该机器中,并更新。当每个子批 均被遍历一次,结束分配。
在一个实施例中,如图10,相对在中间的长实线表示子批1下线时间,相对 靠左的短实线为机器结束时间,根据上述算法,发现,故将子批1 插入进机器中,并更新使其等于子批1在机器加工后的结束时间,即为图中相对 靠右的短实线。
如图11,将子批1插入后,按照顺序遍历子批2,根据上述算法,发现子批2的小于更新后的机器结束时间,故将子批2存入缓存区。
然后依次遍历剩余子批,最终结果如图12,其中子批1、5、9均被分配到机器中, 子批2、3、4、6、7、8、10均放入缓存区。
分配完成后,更新最后子批时间保证重叠时间最大,若最后子批未被分配,则与分 配后的最后子批交换。如图13,发现工件最后子批10不在中,则交换子批9与子批10,结束 第一次分配子批次。
S33:第二次分配子批次生产任务;
将S32中分配给机器的子批次任务右移并将缓存区中的子批插入到机器中。
具体的,机器最右侧子批保持不动,动态的将缓存区中的子批插入导机器中。
所述动态的将缓存取中的子批插入导机器中具体过程如下:
设置右移检查时间为选择机器的最后子批开始时间,从后向前判断间隔时间,若,则遍历缓存区,找到满足同时具有 最大子批,将其插入机器的该子批后,并从缓存区删除,更新,将前一个子批向右移动,使其结束时间等于,并更新,重复上述过程直到前无加工子批。
在第一次分配子批次后,为保证机器的连续生产,需将子批右移。在右移过程中, 最右侧子批保持不动,动态插入第一次分配过程缓存区中的子批。具体操作为,设置右移检 查时间为选择机器最后子批开始时间,从后向前判断间隔时间等于与该机 器中前一子批时间差值,即,若,则 遍历缓存区,找到满足同时具有最大子批,将其 插入该子批,并从缓存区删除,更新。将前一个子批向右移动,使 其结束时间等于,并更新,重复上述过程直到前无加工子 批。
在一个实施例中,如图14,图中右侧的实线表示机器的右移检查时间,左侧 的实线表示右移检查时间前一子批结束时间,计算出间隔时间,小于,移动子批5,并更新,结果如图15。
图15中纵坐标所对应的若干竖实线表示缓存区各子批结束时间, 计算出此时机器间隔时间,等于,遍历缓存区,找到并具有最大,故将子批4插入机器,得到图16。
其中右侧的实线表示插入4后更新的右移检查时间,左侧的实线表示移动完子 批1更新的。在之前,机器无加工子批,结束机器第二次子批分配。
S34:补入一子批;
设置左移检查时间,计算出第一个子批的移动距离并保存为,若,则执行S35,否则执行下述操 作。
更新,左移该子批,计算出子批移动最大位置,计算移动 距离,若,则遍历缓存区,寻找满足条件的并且具 有最大的子批,若找到,将该子批插入该机器,并向右移动时间后所有的子 批,移动距离为;若未找到,更新,向右移动时 间前的所有子批,移动的距离为;重复上述操作,左移子批,直到成功 补入一个子批或遍历完该机器所有加工子批,进入S35。
在第二次分配后,右移若产生不足一个的间隔时间,即,此时需找到合适的位置补充一个子批。具体操作为,设置左移检查时 间,计算出第一个子批的移动距离并保存为,若,则证明未产生滞后时长,跳过该阶段,否则执行下述操作。
更新,左移该子批。通过公式 求出子批移动最大位置,通过公式计算移动距离。若,则遍历缓存区,寻找满足条件的并且具有最大的子批。若找到,将其插入该机器,并向右移动时间后所有的子批,移动距离 为。若未找到,更新。向右移动时间前的所有 子批,移动的距离为。重复上述操作,左移子批,直到补入一拼或遍历 完该机器所有加工子批。
在一个实施例中,如图16所示,机器第一子批移动距离,证明未产生间隔时间,跳过该阶段。
如图17又一次经历确定机器优先级,第一次分配操作,第二次分配操作的结果,图 中左侧的长实线表示,右侧的短实线表示,机器第一子批移动距离为,则此时需要执行“补一拼”操作。
如图18所示,,左移子批2,求出。计算出间隔时间小于,在缓存区中找到子批3将其插入。然后将时间前的子批向右移动 0距离,将时间后的子批向右移动2距离。结束“补一拼”操作。最终结果如图19所示。
S35:确定加工机器;采用贪心策略选择加工机器。
第二阶段加工机器选择采用贪心策略,每次均选择机器结束时间最早的机器进行加工。
在一个实施例中,如图19,此时第一阶段已经结束,仍有剩余子批次未被分配,此 时开始第二阶段补入,此时机器最早结束时间为,所以选择机器进行加工。
S36:分配单个子批次;
确定加工机器后,按缓存区中子批的存储顺序将缓存区中剩余的子批分配到机器上。
在确定加工机器后,按缓存区顺序分配一个子批到该机器。在一个实施例中,如图 20,选择了机器后,分配子批7到机器上。每分配一个任务之后,重新计算机器结束时 间,并重复执行上述步骤直到缓存区无剩余子批次,若存在机器未加工任意子批次,则在染 色体中执行退化操作。最终结果如下图,机器未被使用,故退化,即在染色体中删除。最终 结果如图21。
S37:在分配所有子批后,根据完成时间的目标函数和成本的目标函数计算目标值。
S4:判断是否达到结束条件,若是,输出最优调度方案对应的甘特图,否则返回S2继续执行。
具体的,S4的具体步骤如下:
S41:根据改进的归一化目标公式对S3中得到的目标值进行归一化,求得归一化后的目标值;
归一化后的目标值计算公式如下:
使用索引计算目标为的染色体在帕累托解决方案集是目标 在解集中的最大值最小值。
S42:根据二元锦标赛法选择新的种群;
S43:判断迭代次数是否达到最大次数,若是输出最优甘特图,否则返回S2继续执行。
如图22为本发明实施例通过本发明方法得到的最优甘特图。
本发明的一种基于改进的多目标差分进化可变子批柔性车间作业调度方法,提出了最小化完成时间于成本的多目标模型,更贴合企业生产实际;本发明改进了差分进化算法,使其更贴合fjsp-ls模型;本发明设计了两阶段解码方式,降低了求解问题空间;本发明提高了生产效率,降低了生产成本。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
本领域技术人员不难理解,本发明包括上述说明书的发明内容和具体实施方式部分以及附图所示出的各部分的任意组合,限于篇幅并为使说明书简明而没有将这些组合构成的各方案一一描述。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围由所附权利要求及其等同限定。

Claims (4)

1.一种基于多目标差分进化可变子批的柔性车间调度方法,其特征在于,包括以下步骤:
S1:建立目标函数,确定约束条件,对染色体进行编码并初始化相关参数;
所述目标函数包括完成时间的目标函数和成本的目标函数;
所述对染色体进行编码具体为基于可变子批的两部分编码,所述两部分编码分别为第一部分的基于工序的编码和第二部分的基于机器数量与机器号的编码;
S2:对染色体做变异交叉选择,进行算法迭代;
S3:采用两阶段解码方式进行解码并计算目标值;
具体的,两阶段解码的第一阶段包括:首先确定机器的优先级,其次将步骤S2中得到的子批次任务按照顺序分配到所选的机器或缓存区中,然后将缓存区中部分的子批插入到机器中,最后向机器中补入一个子批或遍历完该机器所有加工子批,进入第二阶段;
第二阶段包括:采用贪心策略选择加工机器,按缓存区中子批的存储顺序将缓存区中剩余的子批分配到机器上;
S4:判断是否达到结束条件,若是,输出最优调度方案对应的甘特图,否则返回S2继续执行;
所述完成时间的目标函数F1如下:
F1=min(Cmax)
Cmax=max{MTm|m=1,2,…MC}
其中,Cmax表示当前调度方案的最大完成时间,MTm表示m机器的最终结束加工时间,MC表示机器总数量;
所述成本的目标函数F2如下:
F2=min(D)
其中,D表示当前调度方案的总成本,FCm表示m机器的空闲加工成本,FTm表示m机器的空闲加工时间,PCj,m表示j工件在m机器上的加工成本,PTj,m表示j工件在m机器上的加工时间,JC表示工件总数;
所述S2包括:
S21:通过POX交叉产生子代;
S22:采用设计好的工序部分的变异算子、机器数量部分的变异算子和机器号部分的变异算子对产生的子代进行变异操作;
所述变异算子如下:
工序部分的变异算子α:
α=index(Pi,j,o)+floor(F×(index(Pbest,j,o)-index(Prand,j,o)))
Mi=swap(indexnew,index(Pi,j,o))
其中,F是变异因子,index(P,j,o)表示j工件o工序在X染色体上的索引值,Pbest为种群中最优染色体,Prand为随机一条染色体,indexnew表示新计算出的索引值,Nj表示染色体包含的总工序数,floor函数是对索引值的插值取下界,Mi为变异向量,swap函数是对染色体两个工序索引值进行交换;
机器数量部分的变异算子β:
β=G(Pi)+floor(F×(G(Pbest)-G(Prand))
Mi=update(Pi,Anew)
其中F表示变异因子,G(Pi)表示Pi染色体中待变异位置的机器数量,Gnew表示变异后的机器数量,A(Pi)表示Pi染色体中待变异位置的机器集,Anew表示变异后的新机器集,floor函数表示差值与变异因子的乘积取地板,Nm表示待变异位置的机器数量最大值,irand表示在A(Pi)机器集中随机的机器号,orand表示在除去A(Pi)机器集中的机器号以外的可用机器集随机的机器号,del函数表示在A(Pi)机器集删除G(Pi)-Gnew数量的irand机器号,add函数表示在A(Pi)机器集增加Gnew-G(Pi)数量的orand机器号,update函数表示将Anew机器集更新到Pi染色体;
机器号部分的变异算子η:
η=index(Qi)+floor(F×(index(Qbest)-index(Qrand))
Qi=rand(A(Pi))
Mi=update(Pi,A(Pi))
其中A(Pi)表示Pi染色体中待变异位置的机器集,rand函数表示在A(Pi)机器集中随机一个机器号,Qi表示在A(Pi)机器集的一个机器号,Qbest表示在A(Pbest)机器集的一个机器号,Qrand表示在A(Prand)机器集的一个机器号,index(Qi)表示Qi机器号在待变异位置所有可用机器中的索引,floor函数表示差值与变异因子的乘积取地板,F表示变异因子,Qnew表示变异后的机器号,B(η)表示索引η在待变异位置所有可用机器中的机器号,Na表示变异位置可用机器数量最大值,del函数表示在A(Pi)机器集中删除Qi的机器号,instead函数表示将A(Pi)机器集中的Qi机器号替换成Qnew,update函数表示将A(Pi)机器集更新到Pi染色体;
所述约束条件如下:
s=1,2,…,SCj,o,m
MSSTj,o,m,1=min(ORTj,o*Fj,o,OETj,o-1,METm),o=2,...,ONCj
其中,JC表示工件总数量,ONCj表示j工件包含的工序数量,MC表示机器数量,ORCo表示o工序的操作员数量,TOOLj,o表示j工件o工序工装数量,STCj表示j工件子批次总数,SCj,o,m表示j工件的o工序分配到m机器上的子批数量,MESTj,o,m,s表示m机器上j工件o工序s子批的结束时间,OETj,o表示j工件o工序的结束时间,METm表示m机器的结束时间,STj,o,m表示m机器上j工件o工序的设置时间,MPSTj,o,m,s表示m机器上j工件o工序s子批的加工时间,ORTj,o表示j工件o工序的操作员最早开始时间,MSSTj,o,m,s表示m机器上j工件o工序s子批的开始时间,t表示时间,WPt,o表示t时刻o工序操作员工作的人数,m'和m均表示机器,二者表示前后使用的机器不同,m表示当前机器,m'表示下一个机器;Ej,o为判断j工件o工序是否有设置时长,有为1,无为0,Xj,o,m为判断m机器上是否有j工件o工序的产品,Fj,o为判断j工件o工序是否需要操作员辅助,是为1,否为0,Qm为判断m机器上一次生产与这次生产的工件型号是否相同,不相同为1,相同为0。
2.根据权利要求1所述的一种基于多目标差分进化可变子批的柔性车间调度方法,其特征在于,所述S3具体包括以下步骤:
S31:确定机器优先级;
根据时间公式计算出每个机器的最早开始时间MSSTj,o,m,1,根据每个机器的最早开始时间MSSTj,o,m,1确定所有机器的优先级;当有多个机器的最早开始时间MSSTj,o,m,1相同时,机器的结束时间METm越大,机器的优先级越高;
其中,时间公式如下:
MSSTj,o,m,1=max(METm,OESTj,o-1,1);其中,OESTj,o-1,1表示j工件1子批在o-1工序上的结束时间;
S32:第一次分配子批次生产任务;
选择优先级最高的机器,将步骤S22中得到的子批次任务按照结束时间递增的顺序排序,并按照排序后的顺序分配到所选的机器中;
具体的分配过程为:判断第一个子批在上一工序结束时间与下一工序选定机器的结束时间是否满足OESTj,o-1,1<METm,若是,则将第一个子批存储至缓存区,缓存区中的所有子批按照结束时间递增排序,否则将第一个子批分配到所选机器中,并更新机器的METm,之后将第二个子批同样按照上述分配过程进行分配,直到每个子批均被遍历一次,结束分配;
S33:第二次分配子批次生产任务;
将S32中分配给机器的子批次任务右移并将缓存区中的子批插入到机器中;
具体的,机器最右侧子批保持不动,动态的将缓存区中的子批插入导机器中;
所述动态的将缓存取中的子批插入导机器中具体过程如下:
设置右移检查时间RTm为选择机器的最后子批开始时间,从后向前判断间隔时间GT,若GT>MPSTj,o,m,s,则遍历缓存区,找到满足OESTj,o-1,l≤RTm-MPSTj,o,m,s同时具有最大OESTj,o-1,l子批,将其插入机器的该子批后,并从缓存区删除,更新RTm=RTm-MPSTj,o,m,s,将前一个子批向右移动,使其结束时间等于RTm,并更新RTm=RTm-MPSTj,o,m,s,重复上述过程直到RTm前无加工子批;
S34:补入一子批;
设置左移检查时间LTm=MSSTj,o,m,1,计算出第一个子批的移动距离MDj,o,m,1=LTm-OESTj,o-1,l并保存为RD,若MDj,o,m,s=0,则执行S35,否则执行下述操作:
更新LTm=MSSTj,o,m,s,左移该子批,计算出子批s移动最大位置Pj,m,s,计算移动距离MDj,o,m,s,若MDj,o,m,s<RD,则遍历缓存区,寻找满足OESTj,o-1,l<Pj,m,s条件的并且具有最大OESTj,o-1,l的子批,若找到,将该子批插入该机器,并向右移动LTm时间后所有的子批,移动距离为Pj,m,s+MPSTj,o,m,s-LTm;若未找到,更新RD=MDj,o,m,s,向右移动LTm时间前的所有子批,移动的距离为Pj,m,s-MESTj,o,m,s-1;重复上述操作,左移子批,直到成功补入一个子批或遍历完该机器所有加工子批,进入S35;
S35:确定加工机器;
采用贪心策略选择加工机器;
S36:分配单个子批次;
确定加工机器后,按缓存区中子批的存储顺序将缓存区中剩余的子批分配到机器上;
S37:在分配所有子批后,根据完成时间的目标函数和成本的目标函数计算目标值。
3.根据权利要求1所述的一种基于多目标差分进化可变子批的柔性车间调度方法,其特征在于,所述S4的具体步骤如下,
S41:根据改进的归一化目标公式对S3中得到的目标值进行归一化,求得归一化后的目标值;
S42:根据二元锦标赛法选择新的种群;
S43:判断迭代次数是否达到最大次数,若是输出最优甘特图,否则返回S2继续执行。
4.根据权利要求3所述的一种基于多目标差分进化可变子批的柔性车间调度方法,其特征在于,所述S4中,归一化后的目标值τi计算公式如下:
使用索引计算目标为j的染色体i在帕累托解决方案集Ω,/>和/>是目标j在解集Ω中的最大值最小值。
CN202410257155.7A 2024-03-07 2024-03-07 一种基于多目标差分进化可变子批的柔性车间调度方法 Active CN117852840B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410257155.7A CN117852840B (zh) 2024-03-07 2024-03-07 一种基于多目标差分进化可变子批的柔性车间调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410257155.7A CN117852840B (zh) 2024-03-07 2024-03-07 一种基于多目标差分进化可变子批的柔性车间调度方法

Publications (2)

Publication Number Publication Date
CN117852840A CN117852840A (zh) 2024-04-09
CN117852840B true CN117852840B (zh) 2024-05-03

Family

ID=90535005

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410257155.7A Active CN117852840B (zh) 2024-03-07 2024-03-07 一种基于多目标差分进化可变子批的柔性车间调度方法

Country Status (1)

Country Link
CN (1) CN117852840B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108279647A (zh) * 2017-12-06 2018-07-13 吉林大学 一种两阶段装配流水车间调度方法
CN108632167A (zh) * 2018-04-11 2018-10-09 长春工业大学 一种基于遗传算法的mvb周期信息实时调度优化算法
CN116540659A (zh) * 2023-07-04 2023-08-04 成都飞机工业(集团)有限责任公司 一种大型复杂产品车间调度方法、系统、设备及介质
CN116761245A (zh) * 2023-07-12 2023-09-15 长春工业大学 基于边界保护的认知无线电多目标功率分配方法
CN117555305A (zh) * 2024-01-11 2024-02-13 吉林大学 一种基于nsgaii的多目标可变子批柔性车间作业调度方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108279647A (zh) * 2017-12-06 2018-07-13 吉林大学 一种两阶段装配流水车间调度方法
CN108632167A (zh) * 2018-04-11 2018-10-09 长春工业大学 一种基于遗传算法的mvb周期信息实时调度优化算法
CN116540659A (zh) * 2023-07-04 2023-08-04 成都飞机工业(集团)有限责任公司 一种大型复杂产品车间调度方法、系统、设备及介质
CN116761245A (zh) * 2023-07-12 2023-09-15 长春工业大学 基于边界保护的认知无线电多目标功率分配方法
CN117555305A (zh) * 2024-01-11 2024-02-13 吉林大学 一种基于nsgaii的多目标可变子批柔性车间作业调度方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JDAN: Joint Detection and Association Network for Real-Time Online Multi-Object Tracking;HAIDONG WANG等;《ACM》;20230131;全文 *
两阶段重调度策略求解柔性作业车间动态调度问题;谭殷飞等;《工业控制计算机》;20231231;全文 *
考虑运输时间的多目标模糊柔性作业车间节能调度研究;唐浩等;《数学的实践与认识》;20230630;全文 *

Also Published As

Publication number Publication date
CN117852840A (zh) 2024-04-09

Similar Documents

Publication Publication Date Title
CN112561194B (zh) 一种混合流水车间生产与物流集成调度方法及系统
CN111382915B (zh) 一种共融agv的柔性作业车间调度方法
CN110554673B (zh) 智能rgv加工系统调度方法和装置
CN113159687B (zh) 一种车间agv-uav协同的物料配送路径规划方法和系统
CN114022028B (zh) 一种自动化混合流水线调度布局集成优化方法
CN113822525B (zh) 基于改进遗传算法的柔性作业车间多目标调度方法及系统
CN116523165B (zh) 柔性作业车间amr路径规划与生产调度的协同优化方法
CN114707294A (zh) 有限运输能力约束的作业车间多目标调度方法
CN116933939A (zh) 基于改进浣熊优化算法的柔性车间协同生产方法及系统
CN112699544A (zh) 一种多目标柔性作业车间调度方法
CN114610015A (zh) 一种带搬运机器人的柔性作业车间动态调度方法及装置
CN116258308A (zh) 一种基于混合遗传算法的动态柔性作业车间调度方法
CN115730799A (zh) 一种柔性装配作业车间生产任务调度方法、系统及设备
CN116820058B (zh) 考虑agv约束的液压缸工艺规划与调度集成优化方法
CN115730789A (zh) 分类存储下的asrs任务调度与货位分配方法及系统
CN117075545A (zh) 一种多目标柔性作业车间调度方法、电子设备、介质
CN117852840B (zh) 一种基于多目标差分进化可变子批的柔性车间调度方法
CN113139720B (zh) 一种具有学习效应的铸造车间生产调度优化方法
JP4135311B2 (ja) 生産計画作成方法およびそのシステム
CN116224946B (zh) 机械件加工车间生产与物流集成的优化调度方法与系统
CN117132181A (zh) 一种分布式柔性生产与运输协同调度方法
CN112632777B (zh) 面向家电产品装配线的ⅱ型双边装配线平衡方法及系统
CN114563994B (zh) 一种汽车零部件分布式生产和装配过程的优化调度方法
CN116430805A (zh) 车间调度控制方法及装置、生产线、作业机械
CN115907230A (zh) 用于家具生产运输过程协同调度的分布估计优化方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant