基于仿真方法的液体日用品生产线调度优化
2022-12-05马薇薇张艳霞郑小金程立强秦圣坤
马薇薇,张艳霞,郑小金,程立强,秦圣坤
(同济大学 经济与管理学院,上海 200092)
0 引言
混合流水车间(Hybrid Flow Shop,HFS)调度问题是由流水车间调度问题发展而来的,是流水车间调度问题和并行机调度问题的结合。混合流水车间广泛地存在于各种生产制造行业中,如化工、石油、钢铁、机械加工等行业。因此,在过去的几十年中,该问题备受学术界的关注。1988年JGUPTA[1]研究了以最小化最大完工时间为目标函数的两阶段混合流水车间调度问题,发现该问题是NP-hard问题。RIBAS等[2]从求解方法的角度回顾了近年的混合流水车间调度文献,系统地对该问题的不同求解方法进行了综述。混合流水车间调度问题的解法主要可以分为精确解法、启发式解法和混合方法。启发式方法又可以分为构造启发式(constructive)和优化启发式(improvement),基于规则的优先级调度就是一种常见的构造启发式方法。由于混合流水车间问题极高的复杂性,精确求解这类问题往往很困难。当面对大规模的现实问题时,启发式算法尤其是基于规则的优先级调度方法,成为了解决该问题的有力工具。
首先,规则调度相对简单,可以在短时间内生成可行的调度方案;其次,规则调度可以很方便地应用在实际的工业场景中。值得注意的是,在调度规则的研究中,使用仿真模型作为辅助工具是常用方法。在计算机建立的仿真程序中,研究者可以方便地测试各种规则,比较不同规则的性能。BRAH等[3]建立了一个流水车间的仿真模型,通过将不同调度规则应用于仿真模型,研究了规则对调度效果的影响。他们分别应用了9个规则,最终发现这些规则里只有最短作业优先规则在各种条件下都表现良好。PAUL[4]在一项更早的研究中,通过计算机模拟玻璃容器行业的简化两阶段混合流水车间调度问题,同样指出了基于最短处理时间的调度规则可能会得到较优的调度策略。NAWAZ等[5]基于已有的启发式算法(给总处理时间较短的作业赋予更高的优先级)提出一种新的NEH启发式算法(Nawaz, Enscore, Ham),得到了更优的工件排序序列。THORNTON等[6]提出利用Johnson规则和先到先服务(First In First Out,FIFO)的调度规则来解决调度问题。DESSOUKY等[7]基于Johnson规则提出一种改进的调度规则,并通过实验证明该规则是有效的。KURZ[8]针对安装时间依赖于顺序的混合流水车间问题,在Johnson规则上提出2种扩展规则。LOGENDRAN等[9]在Johnson规则基础上提出了LN规则,具有更好的求解性能。KURZ等[10]针对混合流水车间调度问题提出了4种启发式规则,其中一种就是与最短作业时间优先(Shortest Process Time, SPT)规则的改进,并获得了更好的表现。屈国强[11]提出一种将机器布局和工件加工时间特征紧密结合的新的调度规则,并将结果与NEH算法进行比较,两者各有所长。TAKAKU等[12]针对在线混合流水车间调度问题,提出一种新的调度规则,通过数值实验发现该规则比FIFO表现更好。JAYAMOHAN等[13]分析比较了在混合流水车间调度问题中,各个阶段采用相同的调度规则和在各个阶段采用不同的调度规则两种方法的不同表现。KIA等[14]建立了混合流水车间的仿真模型,比较了7种排序规则和一种启发式算法的效果。实验结果表明,最小剩余工时优先与Wilkerson和Irvin法则是几种规则中最好的。郑永前等[15]针对混合流水车间调度问题,利用禁忌搜索寻找最优加工顺序。
对于混合流水车间问题的研究方法大多都基于集中的模型,即利用一个集中的模型完成所有计算,所有工件和机器都是被动地接收计算结果,而不是真正参与到调度过程中来。但是实际的生产系统又是离散的、分布式的,更为复杂。并且生产环境随着加工过程也在实时发生变化,因而一些基于简单排序规则所得到的调度方案难以满足实际生产需要。目前,基于多Agent的仿真系统已经越来越受到关注。KOUIDER 等[16]设计了一种多Agent系统来求解车间调度问题。系统主要包含监管Agent和资源Agent,各Agent之间相互协作,利用局部空闲时间最短的分布式方法来求解调度方案,并与一些静态调度规则进行了对比,证明该系统具有更好的性能。MARTIN等[17]将启发式算法与多Agent系统相结合来求解置换流水车间调度问题和车辆路径问题。李应等[18]将模糊数学规划与多Agent系统相结合来求解作业车间调度问题。王芊博等[19]设计了一种多Agent系统,系统由管理Agent、策略Agent、工件Agent和机器Agent构成。并且设计了一种插值排序算法应用于策略Agent之中,来求解混合流水车间调度问题。
AnyLogic是一款功能强大的仿真软件,支持多种建模方法:离散、系统动力学、多智能体等[20],应用领域广泛,包括疾病传播[21-22]、供应链[23]、服务系统[24]、行人交通仿真[25]等。但目前借助AnyLogic中基于多Agent的建模方法解决混合流水车间调度问题的研究并不多,因此本文借助AnyLogic仿真软件,基于多Agent的建模方法来研究混合流水车间调度问题,根据实际生产流程搭建仿真模型,通过设计、对比不同的调度规则,获得高效的调度方案,帮助企业提高生产效率。
1 问题描述
混合流水车间调度问题通常可以描述为:N个 任务经过相同的加工流程,通过T道加工工序的加工,每道工序有mt台机器,从而完成特定的生产目标。主要特点包括:
(1)加工工序的数量至少为2。
(2)每道工序至少有一台并行机,并且至少有一道工序包含多个并行机。
(3)所有工件都遵循相同的加工流程。
1.1 参数设计与决策变量
为方便问题描述,引入以下符号:
N为生产任务集合;
j为生产任务索引;
t为生产阶段索引,t=1,2,…,T;
mt为第t阶段的机器数量;
决策变量包括:
1.2 问题建模
根据混合流水车间调度问题的特点,建立混合整数模型如下:
(1)
(2)
t=1,2,…,T,m=1,2,…,mt;
(3)
t=1,2,…,T,m=1,2,…,mt;
(4)
t=1,2,…,T,m=1,2,…,mt;
(5)
(6)
(7)
(8)
(9)
(10)
(11)
i,j∈N,t=1,2,…,T,m=1,2,…,mt。
(12)
其中:式(1)为目标函数,即最小化最大完工时间。式(2)~式(7)是对机器上加工任务顺序的约束。式(2)表示每个任务在任意加工阶段只能在一台机器上加工一次;式(3)~式(5)表示每个任务在机器上都有且仅有一个紧前任务和紧后任务,若任务在机器上第一个加工,则它没有紧前任务;同理,若任务在机器上最后一个加工,则它没有紧后任务。式(6)和式(7)表示机器上只有一个首位任务和一个末位任务。式(8)~式(11)是对机器上加工任务加工时间的约束。式(8)表示各机器上紧前任务完成加工之后,紧后任务才能开始加工;式(9)表示各机器上紧前任务进入下一阶段的机器,紧后任务才能在该机器上开始加工;式(10)表示任务需要完成上一阶段的加工才能开始下一阶段的加工;式(11)表示在第一个阶段,任务能从零时刻开始加工。式(12)是对决策变量取值范围的约束。
本文利用Cplex求解器求解模型。但是因为该问题是一个NP-hard问题,当问题规模较大时,难以求得最优解。因此,利用基于Agent的建模方法,通过调度规则的设计与应用,来求解混合流水车间调度问题。
2 仿真模型建立
本文的研究对象是某液体日用品生产企业。该企业的产品生产主要经过3个阶段(如图1):物料烧制、临时存储和产品灌装。其中物料烧制为第一生产阶段,产品灌装为第二生产阶段。该生产车间一共有8个锅炉,18个存储罐和10条灌装线。相邻两个阶段的机器用管道进行连接,机器间存在着连接限制,其中三号锅炉连通4个存储罐,剩余7台锅炉各自连通2个存储罐。各存储罐也连通着数量不等的灌装线。
生产任务是将不同的物料加工成对应的产品。若同一个锅炉内连续烧制的两个任务所属物料不同,则在烧制不同种类的物料前,首先需要对锅炉进行清洗;同理,若同一条灌装线上连续灌装的是两种不同种类的产品,则灌装线也需要一定时间切换灌装工具。
每个生产任务并非在所有锅炉或者生产线上都可以加工,能加工的机器也存在着限制。相同物料在不同锅炉上的烧制时间可能会不同,不同物料在相同锅炉上的烧制时间也会不同。相同产品在不同灌装线上的灌装时间可能会不同,不同产品在相同灌装线上的灌装时间也会不同。
本文借助AnyLogic软件,采用基于Agent的建模方法,将生产任务、锅炉、存储罐和灌装线均看作智能体,系统结构如图2表示。首先,当锅炉智能体处于空闲状态时,会根据一定的调度规则,从任务集合中寻找合适的任务进行加工。当该任务在锅炉上完成第一阶段的加工后,会将其转移至与该锅炉相连通的第一个可用存储罐。当存储罐中存储有物料时,会根据一定的调度规则,从灌装线智能体中寻找合适的灌装线进行任务的第二阶段加工。
2.1 数据输入
在建立仿真模型时,需要将真实车间的生产数据输入到仿真模型数据库中,主要包括生产任务数据和车间结构数据。
(1)生产任务数据包含所有待生产任务的相关信息,例如任务编号、物料编号、产品编号、在各锅炉上的加工时间、在各灌装线上的加工时间等。在仿真模型运行之前,将所有数据输入到数据库中。数据库中的一条数据就对应一个生产任务。在仿真模型运行时,系统会根据数据库中的生产任务数据,动态地生成任务智能体群。
(2)车间结构数据主要包括各机器的信息以及相邻生产阶段机器之间的连接关系。已知在物料烧制阶段有8台锅炉,则相应生成8个锅炉智能体;在临时存储阶段有18个存储罐,则相应生成18个存储罐智能体;在产品灌装阶段有10条灌装线,则相应生成10个灌装线智能体。由于生产的是液体日用品,相邻生产阶段的机器之间利用管道进行连接,但并不是全连通的。根据外部数据库中的相邻生产阶段机器间的连接关系,建立相应机器智能体之间的连接关系。
2.2 任务智能体
任务智能体代表待生产的任务,记录每个任务的生产过程与数据,包含数据模块和行为模块。
(1)数据模块包含静态属性和动态变量。静态属性即每个生产任务的基本信息,例如任务编号、物料编号、产品编号、在各机器上的加工时间等,这些属性通过外部数据库的数据为其赋值。动态变量主要包括:选择加工的锅炉、开始烧制物料的时间、物料烧制时长、锅炉清洗时长、结束烧制物料的时间、离开锅炉的时间、临时存储罐、进入存储罐的时间、离开存储罐的时间、选择加工的灌装线、开始灌装的时间、灌装时长、切换灌装工具的时长、结束灌装的时间等。这些变量根据各任务智能体在仿真运行过程中的实时生产信息获得相应变量值,而不是模型运行前就决定好的。
(2)行为模块主要通过状态图来展示任务智能体的状态变化过程以及与其他智能体之间的协调逻辑。如图3所示,当锅炉智能体处于空闲状态时,会根据一定的调度规则选取生产任务进行加工。当某个任务被锅炉智能体选取,会触发该任务智能体从初始状态进入加工状态。当该任务在灌装线上完成灌装操作后,会向该任务智能体发送特定消息,任务智能体接收到该消息后,会触发该任务智能体从加工状态进入最终状态,即该任务的加工已经全部完成。
2.3 锅炉智能体
物料首先在锅炉上进行烧制,将所有锅炉设置成锅炉智能体,每个锅炉智能体同样包含数据模块和行为模块。
(1)数据模块主要为静态属性和动态变量。静态属性主要包括:锅炉编号、与之相连通的存储罐集合等。动态变量主要包括:加工的生产任务、开始烧制的时间、物料编号、上一个任务的物料编号、锅炉清洗时间、开始烧制时间、物料烧制时长、烧制完成时间等。
(2)行为模块主要通过状态图来展示锅炉智能体的状态变化过程以及与其他智能体之间的协调逻辑。如图4所示。
1)初始化操作,因为任务只能在部分锅炉和部分生产线上加工,并且锅炉、存储罐和生产线之间存在着连接限制,所以当任务处于某个加工阶段时,需要对下一阶段可进行加工的机器动态更新。例如任务2可以在1号、2号、4号、6号、7号和8号锅炉上进行烧制,这些锅炉各自连通着2个存储罐;如果当任务2被安排在锅炉8上进行烧制时,那么下一阶段它只能在17号和18号存储罐进行临时存储;因为17号和18号存储罐连接着2号、8号和10号灌装线,尽管任务2能够在2号、3号、8号和10号灌装上进行灌装,但当它被安排在8号锅炉上烧制时,只能选择2号、8号和10号灌装线进行灌装。
2)锅炉选择未加工的任务进行加工,若所有可以在这台锅炉上进行加工的任务均已完成加工,则该锅炉进入最终状态(完成)。
3)当锅炉找到需要加工的任务后,若这个任务的物料种类与紧前任务的物料种类不同,则需要在加工前清洗锅炉。
4)锅炉对物料进行烧制。
5)物料烧制完成后,锅炉将烧制好的物料转移至可以连接的存储罐中进行临时存储,若不存在空置的存储罐,则等待存储罐空置;待物料转移完成,再次回到第2)步,选择可以加工的任务。
2.4 存储罐智能体
任务在锅炉上完成第一阶段物料的烧制后,锅炉将烧制好的物料转移至空置且可连通的存储罐中进行临时存储。每个存储罐智能体包含数据模块和行为模块。
(1)数据模块包含静态属性和动态变量。存储罐智能体的静态属性包括:存储罐编号、存储罐容量、与之相连通的灌装线集合等。动态变量包括:存储罐是否空置、物料进入存储罐的时间、物料离开存储罐的时间等。
(2)行为模块主要通过状态图来展示存储罐智能体的状态变化过程以及与其他智能体之间的协调逻辑。如图5所示,当锅炉将烧制完的物料转移至空置的存储罐,触发该存储罐智能体由“空闲”状态进入“忙碌”状态,锅炉智能体也会再次返回到空闲状态,寻找可以加工的任务。同时,该存储罐Agent会根据一定的调度规则寻找可以对该任务进行产品灌装的灌装线,并向该灌装线智能体发送特定消息,从而触发该灌装线离开空闲状态,进行加工。等到灌装完成之后,该存储罐智能体由“忙碌”状态再次回到“空闲”状态。
2.5 灌装线智能体
将每个灌装线也设置成智能体,同样包含数据模块和行为模块。
(1)数据模块主要为静态属性和动态变量。静态属性主要包括:灌装线编号、与之相连通的存储罐集合等。动态变量主要包括:加工的生产任务、开始灌装的时间、产品编号、上一个任务的产品编号、切换灌装工具时间、开始灌装时间、灌装时长、灌装完成时间等。
(2)行为模块主要通过状态图来展示灌装线智能体的状态变化过程以及与其他智能体之间的协调逻辑。如图6所示。
1)当灌装线智能体接收到存储罐向其发送的特定消息时,表示需要开始灌装任务,则离开闲置状态。
2)生产线得到需要进行灌装操作的任务。
3)若该任务的产品种类与紧前任务的产品种类不同,则需要在加工前切换灌装工具。
4)生产线对产品进行灌装。
5)灌装完成后,该灌装线智能体会向对应的任务智能体发送特定消息,表示该任务已经完成加工。任务智能体接收到灌装线智能体发送的消息后,触发该任务智能体从加工状态进入最终状态。同时灌装线智能体也会再次回到闲置状态。
2.6 智能体间的协调机制
图7展示了一个生产任务的加工过程中,4种智能体间的协调机制具体描述如下:
(1)外部数据输入。调度开始时,根据数据库中的生产任务数据,动态地生成相应任务智能体群,一条生产任务数据源对应一个任务智能体。根据数据库中车间结构数据,对相应的锅炉、存储罐、灌装线智能体的静态属性赋值。
(2)在调度开始后,各任务、锅炉、存储罐和灌装线智能体独立工作,但是相互之间又存在着协调机制,具体如下:①首先空闲的锅炉智能体会按照一定的调度规则选择可以加工的生产任务。当锅炉开始对该任务进行生产时,会触发该任务智能体从初始状态进行加工状态。②当任务在锅炉上完成生产之后,会进入与该锅炉相连通的空置的存储罐中。该锅炉智能体重新返回到空闲状态,再次寻找可以加工的任务。同时存储罐智能体由空闲状态进入忙碌状态。③此时,存储罐智能体会按照一定的调度规则寻找可以为任务进行第三阶段加工的灌装线,从而触发该灌装线智能体离开闲置状态,开始加工。④当灌装线上完成产品的灌装之后,该灌装线智能体会向该任务智能体发送特定消息,从而触发该任务智能体进入最终状态,即所有生产阶段都已完成。灌装线智能体也同时返回到闲置状态。
3 调度规则简介
由于实际生产环境中,受到各种加工条件的制约,伴随着复杂的资源约束、工艺约束等,数学建模方法较难解决这类实际生产问题,能够处理的问题规模也较小。而按照一定的调度规则将任务分配到各阶段的机器上进行加工,即使针对复杂的生产环境和较大规模的求解问题,也能够快速生成合理的调度方案。
在仿真模型中,两个生产阶段的生产安排需要使用到调度规则。第一生产阶段:将任务分配给锅炉进行物料的烧制;第二生产阶段:将烧制好的任务分配给灌装线进行产品的灌装。
SANTOS等[26]介绍了最短作业时间优先(Shortest Process Time, SPT)规则和最长作业时间优先(Longest Process Time, LPT)规则,SPT规则即作业时间最短的工件优先,LPT规则即作业时间最长的工件优先。这种基于优先度的调度规则具有较强的通用性,经常被用于求解大规模的现实调度问题,求解效率高且很容易实现,是混合流水车间调度问题的经典调度规则。
基于此,在SPT和LPT规则基础上,结合所研究工厂的现实约束,提出循环遍历最短作业时间(Circle for Shortest Process Time,CSPT)规则和循环遍历最长作业时间(Circle for Longest Process Time,CLPT)规则,应用于第一生产阶段;提出机器免切换且最短作业时间优先(Free change machine and Shortest Process Time first, FSPT)规则和机器免切换且最长作业时间优先(Free change machine and Longest Process Time first, FLPT)规则,应用于第二生产阶段。CSPT/CLPT和FSPT/FLPT在3.1和3.2节中进行具体说明。
3.1 第一生产阶段
第一生产阶段为将任务分配给锅炉进行物料的烧制。在这一阶段,提出了CSPT规则和CLPT规则;
(1)CSPT规则 当锅炉空闲时,会去寻找未加工且可以在这台锅炉上加工的任务,选择逻辑为:首先遍历任务列表,寻找在可加工的锅炉中,在该锅炉上加工时间最短的任务。若不存在这样的任务,则选择倒数第二短的,依次类推,直到不存在可以在该锅炉上加工的任务。
(2)CLPT规则 当锅炉空闲时,会去寻找未加工且可以在这台锅炉上加工的任务,选择逻辑为:首先遍历任务列表,寻找在可加工的锅炉中,在该锅炉上加工时间最长的任务。若不存在这样的任务,则选择倒数第二长的,依次类推,直到不存在可以在该锅炉上加工的任务。
3.2 第二生产阶段
第二生产阶段为将烧制好的任务分配给灌装线进行产品的灌装。由于灌装线上灌装不同种类的产品需要先切换灌装工具,而SPT和LPT规则都只是考虑了加工时间,没有考虑切换时间。将切换时间考虑在内,基于SPT、LPT规则提出了FSPT和FLPT规则:
(1)FSPT规则 在当时处于空闲状态的灌装线中首先选择不需要进行切换工具的灌装线,在其中选择加工时间最短的;若空闲的灌装线均需要切换工具,则选择加工时间和切换时间的和最短的灌装线。
(2)FLPT规则 在当时处于空闲状态的灌装线中首先选择不需要进行切换工具的灌装线,在其中选择加工时间最长的;若空闲的灌装线均需要切换工具,则选择加工时间和切换时间的和最长的灌装线。
4 仿真结果分析
采用AnyLogic 8.5 Professional作为多智体(multi-Agent)建模工具,根据某液体洗护用品生产厂商实际生产过程建立仿真模型,并选用了实际生产中的443个生产任务进行仿真分析。
在仿真模型中,两个生产阶段的生产安排需要使用到调度规则。在两个生产阶段分别应用SPT规则和LPT规则,得到4种调度方案:SPT-SPT,SPT-LPT,LPT-SPT和LPT-LPT。
在SPT和LPT规则基础上,结合所研究工厂的现实约束,针对第一生产阶段提出了CSPT和CLPT规则,针对第二生产阶段提出了FSPT和FLPT规则,从而得到了4种新的调度方案:“CSPT-FSPT”,“CSPT-FLPT”,“CLPT-FSPT”和“CLPT-FLPT”。将这4种新的调度方案与基于SPT和LPT规则得到的四种调度方案进行比较。
基于某液体洗护用品生产企业实际生产任务,随机抽取其中的100个、200个、300个和400个生产任务,进行仿真实验。实验结果主要以最大完工时间这一指标作为衡量标准,并结合相应的生产数据分析调度规则使用效果,生产数据包括:锅炉总闲置时间、灌装线总等待时间、灌装线总闲置时间。针对不同规模的实验各重复5次,并计算相应实验数据的平均值和标准差。实验结果如表1~表4所示。
表1 各组实验的最大完工时间的平均值和标准差
表2 各组实验的锅炉总闲置时间的平均值和标准差
表3 各组实验的灌装线总等待时间的平均值和标准差
表4 各组实验的灌装线总闲置时间的平均值和标准差
表1主要以最大完工时间为衡量标准,对比了不同调度规则的使用效果。从表1可以看出,在第一生产阶段采用新调度规则CSPT和CLPT规则,在第二生产阶段采用新调度规则FSPT和FLPT规则,所产生的4种新的调度方案“CSPT-FSPT”,“CSPT-FLPT”,“CLPT-FSPT”和“CLPT-FLPT”。相比于基于SPT和LPT规则产生的4种调度方案“SPT-SPT”,“SPT-LPT”,“LPT-SPT”和“LPT-LPT”,这4种调度方案的最大完工时间都大大降低。并且基于新规则所得到的“CSPT-FSPT”调度方案的最大完工时间最短,明显优于基于SPT和LPT规则所产生的4种调度方案的最大完成加工时间。这说明了基于SPT和LPT规则,结合所研究的实际生产调度问题的生产工艺和加工约束等条件,提出的CSPT/CLPT和FSPT/FLPT规则对于降低总生产时间是有效的。
由于当锅炉完成紧前任务的加工后,会立即进入紧后任务的加工,紧前任务与紧后任务之间不存在等待。只有当锅炉完成了安排在该锅炉上的所有加工任务,而其他锅炉仍处于加工状态时,该锅炉才会闲置。“锅炉总闲置时间”就是指锅炉处于闲置状态时,等待这一阶段的所有锅炉完成加工任务的时间之和。但是在灌装线上,任务的灌装并不一定是连续进行的。紧前任务完成灌装时,该灌装线上的紧后任务并不一定完成了上一阶段的加工,因而需要等待紧后任务在上一阶段的加工任务完成之后,才能在该灌装线上进行下一阶段的加工,从而产生了灌装线上的等待时间。因此“灌装线总等待时间”为10条灌装线上紧前任务与紧后任务之间的等待时间之和;“灌装线总闲置时间”是指灌装线处于闲置状态时,等待这一阶段的所有灌装线完成加工任务的时间之和。
从表2~表4可以看出,采用这4种新的调度方案“CSPT-FSPT”,“CSPT-FLPT”,“CLPT-FSPT”和“CLPT-FLPT”,锅炉上的总闲置时间降低了,灌装线上的总等待时间和总闲置时间也降低了。说明提出的CSPT/CLPT和FSPT/FLPT规则对于均衡各机器上的工作量也是有效的。
通过上述实验数据对比发现,无论是以最大完工时间作为衡量指标还是以各机器的利用率作为衡量指标,本文所提出的新的调度规则与SPT规则和LPT规则相比都具有更好的表现。这是因为基于SPT和LPT规则所制定的调度方案,是一种按照工件加工时长进行排序所形成的一种固定的、静态的方案。这种静态的分配法则,可能会出现一个任务完成了某一阶段的加工之后,由于在下一阶段机器上的排序靠后而需要等待的情况;也可能会出现一个机器上分配的任务较多,一个机器上分配任务较少,任务量的不均衡导致的机器产能浪费的情况等。而本文提出的调度规则利用多智能体建模的仿真技术,可以模拟现实中实时的生产情况,根据实时信息,在机器空闲时为其选择合适的生产任务,是一个动态选择的过程。这种动态选择过程能够规避基于SPT和LPT规则制定的静态排序方案所带来的弊端,更好地均衡机器上的任务量,能够更好地衔接任务在不同加工阶段上生产的连续性,因而表现出更好的性能。
5 结束语
本文利用仿真的方法来研究混合流水车间调度问题,研究对象是某液体洗护用品生产企业。利用AnyLogic中基于智能体的建模方法,将生产任务、锅炉、存储罐和灌装线均视为参与调度过程的Agent实体。根据生产流程建立了仿真模型,可以有效地模拟工厂的实际生产流程。
在仿真模型中,两个生产阶段的生产安排需要使用到调度规则。第一生产阶段:将任务分配给锅炉进行物料的烧制;第二生产阶段:将烧制好的任务分配给灌装线进行产品的灌装。
由于实际生产问题带有各种复杂的限制条件,一些传统的调度规则很难直接运用于该问题之中。本文基于SPT规则和LPT规则提出了新的调度规则,CSPT/CLPT规则(应用于第一生产阶段)和FSPT/FLPT规则(应用于第二生产阶段)。
通过实验发现,基于CSPT/CLPT规则和FSPT/FLPT规则的调度方案相比于基于SPT/LPT规则的调度方案,最大完工时间得到了大幅度减少,并且机器上的任务量也更为均匀。其中“CSPT-FSPT”调度方案,即第一生产阶段采用CSPT规则,第二生产阶段采用FSPT规则的调度方案的最大完工时间最短。
在未来的研究中,可以进一步将诸如机器损坏等的动态事件考虑到调度问题中,使得对该问题的研究更加贴合实际生产情况。