1.本发明属于柔性车间调度技术领域,尤其涉及一种基于双层多智能体系统的柔性作业车 间调度优化方法。
背景技术:2.随着市场需求的变化,不断缩短产品的生产周期,制造业正向着小批量、多品种的方向 转变,快速地响应变化的市场需求和生产环境已成为生产制造过程所追求的重要特性之一。 柔性作业车间调度问题突破了传统作业车间调度中各工序仅在唯一的机床上加工的限制,通 常工序可在多台可选的机床上加工,更符合实际的生产环境和要求,也因此更适用于小批量 多品种的生产模式。同时在实际生产环境中,很多不确定的干扰事件时常发生,如工件随机 到达、机器故障、订单取消、交付期提前、加工时间延迟等动态干扰事件,不仅导致计划生 产和实际生产会产生较大偏差,而且极有可能会打乱物料配送等相关生产环节,对生产管控 产生重大影响,严重干扰企业正常的生产调度,为此提高实时响应车间生产扰动的能力逐步 成为当今企业亟待解决的问题。显然在柔性作业车间调度问题和动态作业车间调度问题上发 展起来的柔性作业车间动态调度问题,一方面延伸了传统作业车间调度问题的范畴,而另外 一个方面快速敏捷地应对各种突发的车间干扰,是一种更广泛、更契合实际生产情况的便于 工程化的调度问题,已成为调度研究领域的热点之一。
技术实现要素:3.为克服现有技术在解决柔性作业车间调度问题存在的不足,本发明提供一种基于双层多 智能体系统的柔性作业车间调度优化方法,
4.本发明的一种基于双层多智能体系统的柔性作业车间调度优化方法,包括以下步骤:
5.步骤1:建立柔性作业车间调度的数学模型,确定目标函数及约束条件。
6.目标函数:最小化最大完工时间:
[0007][0008]
约束条件:
[0009]
工件的每道工序加工的顺序约束;
[0010]
ost
l,i,j
+x
l,i,j
×
t
l,i,j
≤oct
l,i,j
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0011]
oct
l,i,j
≤ost
l,i,j+1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0012]
工件某道工序一旦开始加工,直到本工序加工完成不可中断;
[0013]
ost
l,i,j
+t
l,i,j
=oct
l,i,j
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0014]
机器的加工约束,表示工件同一时刻只能在一台机器上加工;
[0015]
[0016]
数学模型中各个参数的定义如下:
[0017]
n为工件总数;n
i
为工件i所包含的工序总数;u为服务单元总数;m为服务单元内的机 器总数;u={1,2,...,l,...,u},l∈{1,2,...,u}为服务单元集合;j={j1,j2,...,j
i
,...,j
n
},i∈{1,2,...,n}为 工件集合,j
i
表示第i个工件;o={o
1,1,1
,o
1,1,2
,...,o
l,i,j
,...,o
u,n,lni
},j∈{1,2,...,l
ni
}为第l服务单元 内工件i的工序集合,o
l,i,j
表示第l服务单元内工件i的第j道工序;m
l
={m
l,1
,m
l,2
,...,m
l,k
,...,m
l,m
}, k∈{1,2,...,m}为第l服务单元的机器集合;t
i,j,l,k
为第l服务单元内工件i的第j道工序在机器k 上的加工时间;x
i,j,l,k
为决策变量,取值0或1,若值为1,则表示工序o
l,i,j
选择了机器m
lk
; 若值为0,则表示工序o
l,i,j
选择不在机器m
lk
上加工;ost
l,i,j
为第l服务单元内工件i的第j 道工序加工开始时间;oct
l,i,j
为第l服务单元内工件i的第j道工序加工结束时间;c
i
为工件 i的完工时间;c
max
为最大完工时间。
[0018]
步骤2:基于双层多智能体系统的柔性作业车间调度求解;包括基于规则的顶层调度机 制和基于协商机制的底层调度机制;多智能体系统的上层是通过车间智能体与服务单元智能 体利用调度规则进行通信协商,由车间智能体将作业任务分配到各服务单元构成系统的顶层 调度,多智能体系统的下层由单元智能体利用协商机制与机器智能体和工件智能体进行协商, 将作业任务分配到各机器完成系统的底层调度。
[0019]
步骤2.1:基于规则的顶层调度。
[0020]
当动态事件e触发作业调度时,给定一组服务单元u及其当前效用状态作为资源约束, 以及一组待调度为任务的新作业n
e
,其目标是通过将整体作业分解为子作业,并将适当的新 子作业分配给相应的服务单元,从而实现最小完工时间;具体调度过程为:首先在车间智能 体sa中存储有spt、fifo、ninq、lil四种调度规则,再将sa按照经验选择调度规则对 任务进行排序,并选择负荷最小的服务单元将工序分配到各服务单元中,从而平衡各个服务 单元的复合,形成顶层调度结果。
[0021]
步骤2.2:基于体液免疫协商机制的底层调度。
[0022]
在底层调度中包括了服务单元智能体、机器智能体、工件智能体三类智能体。
[0023]
服务单元智能体ua:采用模拟体液免疫的协商机制进行处理;外周淋巴组织是体液免 疫应答启动的场所,巨噬细胞、t细胞、b细胞和抗原在此交互产生特异性抗体;ua的任务 包括初始抗原的分配,单元内调度结果的组合和存储。
[0024]
机器智能体ma:用于存储所有在该机器加工的工序信息,模拟体液免疫应答中的巨噬 细胞进行处理;在体液免疫应答中,巨噬细胞识别特异性抗原,提呈抗原肤
‑
mhc分子复合 物,活化th细胞,并在特异性抗体辅助下消灭特异性抗原;借鉴巨噬细胞的特点,ma的主 要任务包括机器最早开工时间的提呈以及要消灭的抗原的选择;通过上述处理,ma实现合 理确定加工序列,优化调度结果的功能。
[0025]
工件智能体ja:用于存储某一工件的所有信息,并模拟体液免疫应答中的t细胞和b 细胞进行处理;在体液免疫应答中,巨噬细胞活化th细胞,b细胞识别特异性抗原,并在识 别同一抗原表位的th细胞辅助下分化成浆细胞,进而产生特异性抗体;在体液免疫应答的后 期,亲和力成熟的b细胞可以分化成能够产生更高亲和力抗体的浆细胞;借鉴t细胞和b细 胞的特点,ja的主要任务包括抗原浓度的计算th细胞活化时间的计算b细胞活化值的计算, 最早活化b细胞的选择以及突变b细胞的亲和力成熟;通过上述处理,ja实现确定加工
工 件,按约束释放工序,合理分配工序,辅助优化调度结果的功能;当ja对应的工件已经完成 加工时,由sa注销该agent。
[0026]
通过智能体之间的通信协商构成系统的底层调度,由服务单元智能体ua将作业任务分 配到各机器完成系统的底层调度。
[0027]
抗原浓度是工件剩余工序的最短加工时间,计算公式如下:
[0028][0029]
t细胞活化时间代表工序o
l,i,j
的实际完工时间,计算公式如下:
[0030]
th
i,j,l,k
=max(jst
i,j,l,k
,mst
i,j,l,k
)+t
i,j,l,k
=ost
i,j,l,k
+t
i,j,l,k
=oct
i,j,l,k
ꢀꢀꢀ
(7)
[0031]
b细胞活化值计算公式为:
[0032][0033]
其中,c
i,j,l,k
为服务单元l中o
l,i,j
的抗原浓度值;th
i,j,l,k
为服务单元l中o
l,i,j
在机器k上的 t细胞活化时间;b
i,j,l,k
为服务单元l中o
l,i,j
在机器k上的b细胞活化值;t
i,j,l,k
为服务单元l 中o
l,i,j
在机器k上的加工时间;jst
l,i,j
为o
l,i,j
在机器k上的最早开工时间,即o
l,i,j
‑1的完工时 间;mst
l,k
为机器k的最早开工时间,即服务单元l中机器k加工列表中最后一道工序的完工 时间;ost
i,j,l,k
为服务单元l中o
i,j
在机器k上的实际开工时间;oct
i,j,l,k
为服务单元l中o
i,j
在机器k上的实际完工时间。
[0034]
进一步的,基于体液免疫协商机制的底层调度具体过程为:
[0035]
第一步:输入所有待加工工件的全部工序后,对所有的ja、ma和ua向sa注册和组 网。
[0036]
第二步:ua
l
接收sa发送的顶层调度结果表,向每个ja
li
发送抗原列表,ja
li
按照工序 的加工顺序逐一释放抗原,即当被释放抗原完成分配后,ja才释放抗原列表中的下一个抗原, 并且计算该抗原的浓度c
l,i,j
。
[0037]
第三步:ja
li
中的t细胞开始计算各自的活化时间th
i,j,l,k
和b细胞活化值b
i,j,l,k
,并向对 应的ma
lk
都发送最大b
i,j,l,k
和ost
i,j,l,k
。
[0038]
第四步:ma
lk
利用贪婪机制对呈递的b
i,j,l,k
进行比较,选取最大b
i,j,l,k
的抗原作为其要加 工的工序,并从其中提取th
i,j,l,k
信息,th
i,j,l,k
为工序o
l,i,j
的实际完工时间oct
i,j,l,k
,并根据 oct
i,j,l,k
更新mst
l,k
,将ost
i,j,l,k
和oct
i,j,l,k
一起存储到ma
lk
的待加工列表中,然后向ja
li
发 送选中信息。
[0039]
第五步:ja
li
接收存储选择工序的ost
i,j,l,k
和oct
i,j,l,k
,更新jst
l,i,j+1
。
[0040]
第六步:判断抗原列表是否为空,工序是否全部分配完成,是则向ua1发送所有抗原的 ost
i,j,l,k
和oct
i,j,l,k
,否则返回第二步。
[0041]
第七步:ua
l
根据工序序列依次综合服务单元l内的所有ost
i,j,l,k
和oct
i,j,l,k
并储存。
[0042]
第八步:ua
l
判断是否有机器故障,有则取出故障时间后的该机器上所有工序返回第二步, 并删除该ma
i
,否则继续判断是否有新工件到达,有则取出到达时间后的所有未开工工序返 回第一步。
[0043]
第九步:ua
l
将待加工列表发送给sa,将各ua的待加工列表依序组合到调度结果表中, 输出调度结果。
[0044]
本发明的有益技术效果为:
[0045]
(1)本发明考虑了柔性作业车间在加工过程中,车间不确定因素等强扰动会影响车间正 常生产进度这一实际情况。在柔性作业车间工作过程中,经常会遇到机器故障,急件到达等 强干扰情况,导致时间工期延误等问题无法解决,而在现有的车间调度过程中,对干扰问题 通常需要进行重调度,调度系统鲁棒性差。本发明则充分考虑车间中强扰动的实际影响,建 立一种基于双层mas的柔性作业车间动态调度优化方法,从而使得调度系统的鲁棒性和靠 扰动能力显著提高。
[0046]
(2)采用基于服务单元分层的方法,系统的整个调度结构划分为双层,形成了一个双层 架构多智能体调度系统。在顶层,通过车间智能体与服务单元智能体之间的通信协商,sa向 ua分配资源和子任务/作业,将大而复杂问题分解到不同的服务单元,在系统受到机器故障 等扰动时,避免了重调度的需要,从而极大的提高了信息处理能力和问题求解速度。在底层, 通过服务单元智能体与机器智能体和工件智能体之间的通信协商,ua将子任务/作业分配到 各ma,并且采用了一种免疫调节协商机制,各智能体不断地进行协商和决策的信息交流, 为实时调度提供了可能。
附图说明
[0047]
图1为本发明基于双层多智能体系统的柔性作业车间调度优化方法流程图。
[0048]
图2为基于规则的顶层调度流程图。
[0049]
图3为基于体液免疫协商机制下的底层调度流程图。
具体实施方式
[0050]
下面结合附图和具体实施例对本发明做进一步详细说明。
[0051]
本发明的一种基于双层多智能体系统的柔性作业车间调度优化方法,具体为: 1、柔性作业车间调度问题描述与假设:
[0052]
基于服务单元的柔性作业车间调度问题可描述为把n个工件分配到u个服务单元中的m 台机器上进行加工,每个工件从加工到完成需要经历若干道工序,工序之间的顺序是预先确 定,并且每道工序存在一种或多种机器选择,分别对应不同的完成时间,通过确定各工序的 机器选择、工序在机器上的加工顺序以及开始加工时间,来达到一个或多个性能优化的目的。 而在实际生产制造过程中,尤其是在如今全球敏捷化制造推行的新形势下,车间的动态性日 益增强,有许多干扰因素,例如新工件到达、撤单、机床故障等,会导致原调度方案变差甚 至无法执行,因此处理动态事件在调度中至关重要,动态事件分成以下2类:
[0053]
(1)与工件相关的事件:包括工件随机到达、订单变化、交货期变化、紧急件和工件加 工时间不确定等;
[0054]
(2)与资源相关的事件:包括机器故障、原材料有缺失或延期到达、负载有限和生产能 力冲突等。
[0055]
其中,在柔性作业车间中最常发生且对车间调度影响很大的动态事件,主要是新
工件到 达和机床故障事件,因此本发明针对此两大动态情况进行深入研究。为了对基于服务单元柔 性作业车间调度问题进行简化,作出以下几点假设:
[0056]
1)每台设备在任一时刻只能加工一道工序。
[0057]
2)每个工件在任一时刻只能有一道正被加工的工序,且工序加工过程中不得中止。
[0058]
3)不同工件间的加工互不影响,工件与工件之间没有顺序约束,不同工件间的工序之间 也不存在顺序约束。
[0059]
4)初始时刻各设备为空闲状态,均可投入生产。
[0060]
5)忽略工件在服务单元内的转移时间。
[0061]
2、建立柔性作业车间调度的数学模型,确定目标函数及约束条件。
[0062]
目标函数:最小化最大完工时间:
[0063][0064]
约束条件:
[0065]
工件的每道工序加工的顺序约束;
[0066]
ost
l,i,j
+x
l,i,j
×
t
l,i,j
≤oct
l,i,j
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0067]
oct
l,i,j
≤ost
l,i,j+1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0068]
工件某道工序一旦开始加工,直到本工序加工完成不可中断;
[0069]
ost
l,i,j
+t
l,i,j
=oct
l,i,j
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0070]
机器的加工约束,表示工件同一时刻只能在一台机器上加工;
[0071][0072]
数学模型中各个参数的定义如下:
[0073]
n为工件总数;n
i
为工件i所包含的工序总数;u为服务单元总数;m为服务单元内的机 器总数;u={1,2,...,l,...,u},l∈{1,2,...,u}为服务单元集合;j={j1,j2,...,j
i
,...,j
n
},i∈{1,2,...,n}为 工件集合,j
i
表示第i个工件;o={o
1,1,1
,o
1,1,2
,...,o
l,i,j
,...,o
u,n,lni
},j∈{1,2,...,l
ni
}为第l服务单元 内工件i的工序集合,o
l,i,j
表示第l服务单元内工件i的第j道工序;m
l
={m
l,1
,m
l,2
,...,m
l,k
,...,m
l,m
}, k∈{1,2,...,m}为第l服务单元的机器集合;t
i,j,l,k
为第l服务单元内工件i的第j道工序在机器k 上的加工时间;x
i,j,l,k
为决策变量,取值0或1,若值为1,则表示工序o
l,i,j
选择了机器m
lk
; 若值为0,则表示工序o
l,i,j
选择不在机器m
lk
上加工;ost
l,i,j
为第l服务单元内工件i的第j 道工序加工开始时间;oct
l,i,j
为第l服务单元内工件i的第j道工序加工结束时间;c
i
为工件 i的完工时间;c
max
为最大完工时间。
[0074]
3、基于双层多智能体系统的柔性作业车间调度求解。
[0075]
在车间生产过程中,生产活动可以视为一系列有序组织的服务,所有生产相关的活动, 例如加工、装配、检测、仓储等都可以抽象为一项服务。因此,将一组与一项特定服务内容 相关的元素组合成一个单元称之为服务单元,简单来说,将一组由工件、输入缓冲站、输出 缓冲站、机械手、控制系统和机床组合成一个单元共同完成一项工件加工任务,这个单元则 为一个服务单元,其中输入缓冲站、输出缓冲站、机械手、控制系统和多台机床是基
础组成 元素,它们为服务单元提供工件处理服务,如工件的加工、拆卸和缓存等服务。本发明研究 的基于服务单元的柔性作业车间调度问题,通常服务单元的组成根据工艺相似性和布局情况 而定,服务单元内部的距离一般比较近,单元内部搬运、装卸工件到机床上的时间相对较短, 所以不考虑这些时间,即不考虑服务单元内部物流问题,只考虑服务单元之间的物流问题。 车间通常由几个服务单元组成,因此工作车间调度问题可分为两个层次:车间层和服务单位 层。所有服务单位都以相同的方式并行工作,因此这种双层调度系统可以同时容纳多个服务 单位调度代理,以支持多代理灵活的工作车间调度。
[0076]
本发明的双层多智能体系统架构包括基于规则的顶层调度机制和基于协商机制的底层调 度机制;多智能体系统的上层是通过车间智能体与服务单元智能体利用调度规则进行通信协 商,由车间智能体将作业任务分配到各服务单元构成系统的顶层调度,多智能体系统的下层 由单元智能体利用协商机制与机器智能体和工件智能体进行协商,将作业任务分配到各机器 完成系统的底层调度。具体基于服务单元双层架构的柔性作业车间调度协商过程如图1所示, 各agent通过相互协商共同求解基于服务单元的柔性作业车间调度问题。
[0077]
3.1基于规则的顶层调度。
[0078]
在车间级别的顶层调度层,问题的定义如下。当动态事件(e)触发作业调度时,给定一组 服务单元u(u={1,2,...,l,...,u},l∈{1,2,...,u})及其当前效用状态作为资源约束,以及一组待调度 为任务的新作业(n
e
),其目标是通过将整体作业分解为子作业,并将适当的新子作业分配给相 应的服务单元,从而实现最佳的生产性能,如最小完工时间。
[0079]
在基于服务单元的柔性作业车间调度中多智能体系统的顶层中包括了车间智能体和服务 单元智能体,通过车间智能体和服务单元智能体之间的通信协商,由车间智能体将作业任务 分配到各服务单元构成系统的顶层调度。具体调度过程为首先在车间智能体sa中存储有spt、 fifo、ninq、lil四种调度规则,再将sa按照经验选择调度规则对任务进行排序,并选择 负荷最小的服务单元将工序分配到各服务单元中,从而平衡各个服务单元的复合,形成顶层 调度结果,顶层调度具体流程如附图2所示。
[0080]
3.2基于体液免疫协商机制的底层调度。
[0081]
在服务单元级,定义了服务单元作业调度问题,以响应车间级调度。资源约束包括机器/ 存储设备/物流设备的数量,分配给该单元的新子任务是在该单元中按时完成的任务。目标是 实现最佳的单位生产性能,如最小的完工时间。本发明采用模拟免疫调节的协商机制进行处 理。
[0082]
在底层调度中包括了服务单元智能体、机器智能体、工件智能体三类智能体。
[0083]
服务单元智能体ua:采用模拟体液免疫的协商机制进行处理;外周淋巴组织是体液免 疫应答启动的场所,巨噬细胞、t细胞、b细胞和抗原在此交互产生特异性抗体;ua的任务 包括初始抗原的分配,单元内调度结果的组合和存储。
[0084]
机器智能体ma:用于存储所有在该机器加工的工序信息,模拟体液免疫应答中的巨噬 细胞进行处理;在体液免疫应答中,巨噬细胞识别特异性抗原,提呈抗原肤
‑
mhc分子复合 物,活化th细胞,并在特异性抗体辅助下消灭特异性抗原;借鉴巨噬细胞的特点,ma的主 要任务包括机器最早开工时间的提呈以及要消灭的抗原的选择;通过上述处理,ma实现合 理确定加工序列,优化调度结果的功能。
[0085]
工件智能体ja:用于存储某一工件的所有信息,并模拟体液免疫应答中的t细胞和b 细胞进行处理;在体液免疫应答中,巨噬细胞活化th细胞,b细胞识别特异性抗原,并在识 别同一抗原表位的th细胞辅助下分化成浆细胞,进而产生特异性抗体;在体液免疫应答的后 期,亲和力成熟的b细胞可以分化成能够产生更高亲和力抗体的浆细胞;借鉴t细胞和b细 胞的特点,ja的主要任务包括抗原浓度的计算th细胞活化时间的计算b细胞活化值的计算, 最早活化b细胞的选择以及突变b细胞的亲和力成熟;通过上述处理,ja实现确定加工工 件,按约束释放工序,合理分配工序,辅助优化调度结果的功能;当ja对应的工件己经完成 加工时,由sa注销该agent。
[0086]
通过智能体之间的通信协商构成系统的底层调度,由服务单元智能体ua将作业任务分 配到各机器完成系统的底层调度。本发明采用了基于体液免疫协商机制的多智能体系统方法 对服务单元层进行分布式调度。该方法在模拟体液免疫应答机制进行协商时,服务单元内根 据工艺相似性原则,分配到服务单元内的工序可有一台或多台机器可以选择,底层调度相当 于是fjsp,基于fjsp与体液免疫的相似性,在服务单元内部,其对应关系为服务单元智能 体对应于外周淋巴组织,分解到工序级别的任务对应于抗原,机器对应于巨噬细胞,利用基 于体液免疫的多agent调度应答协商机制快速得到所有工序的调度方案。
[0087]
抗原浓度是工件剩余工序的最短加工时间,计算公式如下:
[0088][0089]
t细胞活化时间代表工序o
l,i,j
的实际完工时间,计算公式如下:
[0090]
th
i,j,l,k
=max(jst
i,j,l,k
,mst
i,j,l,k
)+t
i,j,l,k
=ost
i,j,l,k
+t
i,j,l,k
=oct
i,j,l,k
ꢀꢀ
(7)
[0091]
b细胞活化值计算公式为:
[0092][0093]
其中,c
i,j,l,k
为服务单元l中o
l,i,j
的抗原浓度值;th
i,j,l,k
为服务单元l中o
l,i,j
在机器k上的 t细胞活化时间;b
i,j,l,k
为服务单元l中o
l,i,j
在机器k上的b细胞活化值;t
i,j,l,k
为服务单元l 中o
l,i,j
在机器k上的加工时间;jst
l,i,j
为o
l,i,j
在机器k上的最早开工时间,即o
l,i,j
‑1的完工时 间;mst
l,k
为机器k的最早开工时间,即服务单元冲机器k加工列表中最后一道工序的完工 时间;ost
i,j,l,k
为服务单元l中o
i,j
在机器k上的实际开工时间;oct
i,j,l,k
为服务单元l中o
i,j
在机器k上的实际完工时间。
[0094]
进一步的,基于体液免疫协商机制的底层调度具体过程如图3所示,具体为:
[0095]
第一步:输入所有待加工工件的全部工序后,对所有的ja、ma和ua向sa注册和组 网。
[0096]
第二步:ua
l
接收sa发送的顶层调度结果表,向每个ja
li
发送抗原列表,ja
li
按照工序 的加工顺序逐一释放抗原,即当被释放抗原完成分配后,ja才释放抗原列表中的下一个抗原, 并且计算该抗原的浓度c
l,i,j
。
[0097]
第三步:ja
li
中的t细胞开始计算各自的活化时间th
i,j,l,k
和b细胞活化值b
i,j,l,k
,并向对 应的ma
lk
都发送最大b
i,j,l,k
和ost
i,j,l,k
。
[0098]
第四步:ma
lk
利用贪婪机制对呈递的b
i,j,l,k
进行比较,选取最大b
i,j,l,k
的抗原作为
其要加 工的工序,并从其中提取th
i,j,l,k
信息,th
i,j,l,k
为工序o
l,i,j
的实际完工时间oct
i,j,l,k
,并根据 oct
i,j,l,k
更新mst
l,k
,将ost
i,j,l,k
和oct
i,j,l,k
一起存储到ma
lk
的待加工列表中,然后向ja
li
发 送选中信息。
[0099]
第五步:ja
li
接收存储选择工序的ost
i,j,l,k
和oct
i,j,l,k
,更新jst
l,i,j+1
。
[0100]
第六步:判断抗原列表是否为空,工序是否全部分配完成,是则向ua1发送所有抗原的 ost
i,j,l,k
和oct
i,j,l,k
,否则返回第二步。
[0101]
第七步:ua
l
根据工序序列依次综合服务单元l内的所有ost
i,j,l,k
和oct
i,j,l,k
并储存。
[0102]
第八步:ua
l
判断是否有机器故障,有则取出故障时间后的该机器上所有工序返回第二步, 并删除该ma
i
,否则继续判断是否有新工件到达,有则取出到达时间后的所有未开工工序返 回第一步。
[0103]
第九步:ua
l
将待加工列表发送给sa,将各ua的待加工列表依序组合到调度结果表中, 输出调度结果。
[0104]
实施例:
[0105]
为了验证基于双层多智能体系统的柔性作业车间调度方法的实用性,实验以jade作为 多agent系统的开发环境,采用java语言进行开发,运用多线程技术编写,每个线程代表一 个agent,实现了多智能体系统的开发,整个系统在一台拥有2.8ghz cpu和8gb内存的计 算机上进行运行。测试本文方法的基准实例采用kacem data,采用该标准算例库已经被许多 研究者用于柔性作业车间调度的算法验证中,为了体现服务单元划分后的实验效果,主要采 用了算例中kacem8x8、kacem10x10和kacem15x10的较大规模算例进行验证。为了体现双 层分布式调度的优点,对于kacem算例在双层架构下的服务单元分别以随机均分组合,其中 8x8(即,其中n代表工件数,m代表机器数)、10x10和15x10分别以4/4和4/3/3将机器组 合成服务单元进行实验。
[0106]
为了对比验证双层架构多智能体系统方法在求解上的优越性和普适性,本文对双层架构 多智能体系统和单层规则调度在各算例下做对比实验,计算结果对比表见表1。
[0107]
表1单层规则调度与双层多智能体调度结果对比表
[0108][0109]
从表1中可见,双层架构多智能体系统方法得到的结果虽然在计算时间上要长于一般的 规则调度,但在求解质量方面,双层架构多智能体系统的方法明显优于一般规则调度方法, 平均解的质量提高了23.8%,主要得益于第二层采用了免疫协商机制对顶层规则调度结果进 行优化,提高了系统的求解质量。由此证明了双层多智能体系统方法在求解柔性作业车间调 度问题的可行性,同时也可以发现在表中所有的算例中,双层多智能体系统方法在顶层为spt 规则下得到的结果要比顶层为其它规则得到的结果更优。
[0110]
为了验证双层架构多智能体系统方法在动态处理新作业到达和机器故障的可行性和有效 性,下面以不同的规则作为顶层调度策略的双层架构多智能体系统同规则调度进行实验,分 别将系统以0时刻新工件到达、2时刻新工件到达和6时刻3号机床故障三种情况进行调度, 其中0时刻新工件到达为算例中所有工件到达的工序,作为2时刻两个新工件到达的工序表 见下表2所示。
[0111]
表2新工件工序表
[0112][0113]
将双层多智能体系架构(上层采用spt规则)和单层多智能体系架构(免疫协商机
制)的 调度计算结果进行了比较,如表3所示。表中新工件到达1代表新到达在0时刻到达,新工 件到达2代表2时刻又有新工件在到达的情况,机器故障代表在两次新工件到达后机器3在 6时刻发生机床故障的情况。
[0114]
表3不同mas架构下动态调度结果对比表
[0115][0116]
说明:
[0117]
其中鲁棒性计算公式为:
[0118]
式中:rm越小代表鲁棒性越好,s
r
表示实际方案;s
p
表示初始调度方案;c
max
表示调度 方案的最大完工时间。
[0119]
从表3中可见,双层架构多智能体系统得到的结果随着规模的增大,系统计算运行时间 会逐渐减少,说明了分层后的双层架构系统计算复杂度更小,以使系统运行计算时间更短, 在鲁棒性方面,双层架构的多智能体系统比单层架构多智能体系统的性能鲁棒性指标更小, 说明了双层架构的多智能体系统具有更好的鲁棒性,尤其机器故障情况下,双层架构多智能 体系统只需要将该机器上的工序释放再所在服务单元内进行调整即可,不会影响其它服务单 元的调度结果,提高了系统的稳定性和鲁棒性,但在求解精度上比不上单层多智能体系统, 其原因是为了快速响应动态环境,在双层多智能体系统中进行了基于服务的单元的划分,调 度过程中仅仅协调单元内部,求解速度快,保证生产的实时运行。由于仅考虑局部信息,求 解质量会受到一定的影响,但是仍在可接受范围,鲁棒性却提高21.8%。
[0120]
本章首先采用了本文提出的双层mas的柔性作业车间调度方法同单层规则调度方法在 kacem8x8、kacem10x10和kacem15x10算例下分别进行计算,对解的质量进行了分析,采 用双层多智能体系统得到的结果比规则调度得到的结果更优;其次为了验证动态调度下,本 文提出的方法与目前常用的规则动态调度方法在三个不同规模的经典标准算例上进行了对比, 实验结果说明双层多智能体系统在求解质量和鲁棒性上都要好于规则调度得到的结果;最后 将双层架构下的多智能体系统调度方法与单层架构下的多智能体系统进行对比,结果说明双 层多智能体系统比单层架构下的多智能体系统具有更好的鲁棒性
和实时性。