一种分布式装配流水车间调度优化方法

文档序号:32253363发布日期:2022-11-19 02:46阅读:39来源:国知局

1.本技术涉及生产调度的技术领域,尤其是涉及一种分布式装配流水车间调度优化方法。


背景技术:

2.随着经济全球化和5g工业化的发展,分布式制造开始取代传统制造业集中式制造,逐渐成为当前主要的生产模式。同时为了满足大规模定制化需求,分布式制造下的mto(make-to-order)模式已成为主流的生产模式。然而,mto模式要求所有的产品在规定期限内完成不同工件或产品的生产订单,同时准时的运送至相应的客户。这种情况不可避免地会导致两个问题:

按照订单交付产品时,不可避免地产生库存成本;

当不同订单的到期日重叠或产品序列不合适时,会产生延迟交货成本。两者的冲突极大地影响了管理者的实际决策。
3.现有技术以完工时间和生产效率为主要优化目标,考虑了制造阶段不同布局模式的分布式车间调度模型,如分布式作业车间调度优化问题、分布式流水车间调度优化问题和分布式两阶段装配流水车间调度优化问题。
4.然而,他们忽略了大规模定制需求下订单导向的生产方式。在许多实际生产场景中,传统的大规模流水生产方法已经无法适应于当前个性化和定制化客户需求,极易造成因工件生产过多而带来的库存成本和不可用的风险损失。


技术实现要素:

5.为了解决以上问题,本技术提供一种分布式装配流水车间调度优化方法。
6.本技术提供的一种分布式装配流水车间调度优化方法,采用如下的技术方案:
7.一种分布式装配流水车间调度优化方法,包括:
8.确定制造工厂各工件的完工时间;
9.根据所述制造工厂各工件的完工时间,确定装配工厂的产品完工时间。
10.根据所述装配工厂的产品完工时间,计算最终的库存成本和延迟成本。
11.通过采用上述技术方案,综合考虑不同客户的订单需求和批次配送,优化库存成本和订单延迟成本。
12.可选的,所述确定制造工厂各工件的完工时间步骤,包括:
13.确定第一个工件在第一台机器上的完工时间,所述第一个工件在第一台机器上的完工时间为第一工件在该机器上的加工时间;
14.确定第一台机器上其他工件的完工时间,所述第一台机器上其他工件的完工时间等于前一个工件的完工时间加上其他工件在该机器上的加工时间;
15.确定第一个工件在其他机器上的完工时间,所述第一个工件在其他机器上的完工时间等于第一个工件在前一台机器的完工时间加上当前加工时间;
16.确定其他机器上其他工件的完工时间,所述其他机器上其他工件的完工时间取当
前机器上前一个工件的完工时间与当前工件在前一台机器的完工时间的最大值,并加上当前的加工时间。
17.可选的,所述根据所述制造工厂各工件的完工时间,确定装配工厂的产品完工时间步骤,包括:
18.计算同一产品下所有工件的完工时间,取最大值作为当前的完工时间。
19.根据所有产品的完工时间,确定每一个客户的完工时间的下界。该下界需综合考虑该客户所有产品的完工时间以及前一个客户的完工时间,取累计相加后最大的值作为当前客户的完工时间的下界。
20.针对每一个客户的最后一个产品,取当前客户的下界和交货时间的最大值,作为该产品装配的最终完工时间。
21.采用完工时间的倒推方式,依次重新确定其他产品的装配完工时间,得到装配工厂的产品完工时间。
22.可选的,还包括:
23.确定任意产品的工件序列;
24.确定任意客户的产品序列;
25.确定客户序列;
26.根据所述工件序列、产品序列以及客户序列,调整工件和产品的完工时间。
27.可选的,所述确定任意产品的工件序列步骤,包括:
28.计算属于当前产品的每一个工件在制造工厂的完工时间,依据完工时间的降序,对工件进行排序,获取当前产品下初始工件序列。
29.将初始工件序列的第一个工件放到一个空序列中,然后将第二个工件插入该序列的任意位置,获取多个新序列,选择完工时间最小的序列作为当前工件序列。
30.依据初始工件序列,依次将后续的工件插入到当前工件序列的任意位置,获取多个新序列,选择完工时间最小的序列作为当前工件序列。
31.在当前工件序列上,采用成对交换的方式,将所有的工件进行交换,获取多个新的序列,最后完工时间最小的序列作为当前产品的最终工件序列。
32.重复以上步骤,直到确定所有产品的最终序列。
33.可选的,所述确定任意客户的产品序列步骤,包括:
34.采用nr3启发式计算当前客户下所有产品的装配完工时间;依据装配完工时间的降序,对产品进行排序,获取当前客户下初始产品序列。
35.将初始产品序列的第一个产品放到一个空的序列中,获取一个当前产品序列。
36.依据初始产品序列,依次将后续的产品插入到当前产品序列的所有位置,获取多个新序列;并采用nr3启发式将工件分配到各个制造工厂中,并通过所提出的目标计算方法计算目标值;选择目标值最小的序列作为当前产品序列。
37.重复以上步骤,直到所有客户的产品序列确定为止。
38.可选的,所述确定客户序列步骤,包括:
39.按照交货期降序的方式,对所有的客户进行排序,获取一个初始客户序列。
40.将初始客户序列的第一个客户放入到一个空的序列中,获取一个当前客户序列。
41.依据初始客户序列,依次将后续的客户插入到当前客户序列的所有位置,从而获
取多个新的客户序列;并采用nr3启发式将工件分配到各个制造工厂中,通过所提出的目标计算方法计算目标值;选择目标值最小的序列作为当前的客户序列。
42.重复以上步骤,直至所有的客户序列确定为止。
43.综上所述,本技术包括以下至少一种有益技术效果:
44.1.以jit和mto模式为主,综合考虑不同客户的订单需求和批次配送,优化库存成本、订单延迟成本和运输成本。
45.2.基于问题的特定属性,挖掘特定的知识结构,提出了知识驱动的两阶段优化目标计算方法,从解的表征形式上控制订单延迟交货成本。并通过前向和倒推的方式,合理的调整工件和产品的完工时间,再次降低库存成本和订单延迟成本,增加调度方案的有效性。
46.3.在算法设计方面,将特定的知识结构融合到启发式中,设计知识驱动下neh导向的初始化方法,充分发挥知识结构的特定导向能力和启发式的高效探索能力,生成高质量的初始解;提出高效的自适应算子调控策略,有效地将多种算子协同在一起,提高算法地探索和勘探能力。
具体实施方式
47.以下对本技术作进一步详细说明。
48.本技术实施例公开一种分布式装配流水车间调度优化方法,订单需求和批次配送为导向,重点研究多重成本下分布式装配流水车间调度优化问题。由于管理者既想要以jit的生产方式来降低零件和产品的库存成本,也想要通过批次配送的方式满足客户的订单交货期,避免预期交货带来的延迟惩罚成本。因此,本技术基于知识驱动和自适应算子调控的智能优化方法,快速高效地获取零件加工分配-排序和产品装配排序方案。
49.基于问题的特定属性,挖掘了成本导向下分布式装配流水车间调度优化问题的特定知识结构:

同一产品下工件应该进行连续加工排序,从而降低库存成本;

统一零件加工工厂内零件的排序应该和产品装配顺序保持一致;

同一客户下的产品尽量的进行连续无等待加工,从而降低延迟交货成本。并基于上述知识结构,本技术进一步设计了知识驱动的两阶段优化目标的计算方法。具体如下:
50.100,确定制造工厂各工件的完工时间。
51.具体来说,针对不同制造工厂的工件加工顺序的不同,分别确定其在不同机器的完工时间。具体的确定规则如下:

针对每个制造工厂的第一个工件在第一台机器上的完工时间等于其在该机器上的加工时间;

针对每个制造工厂的第一台机器上的其他工件,其完工时间等于前一个工件的完工时间加上其在该机器上的加工时间;

针对每个制造工厂的第一个工件在其他机器上的完工时间,其等于第一个工件在前一台机器的完工时间加上当前加工时间;

针对每个制造工厂的其他机器上的其他工件,其完工时间首先取当前机器其前一个工件的完工时间与当前工件在前一台机器的完工时间的最大值,然后加上当前的加工时间。
52.200,根据所述制造工厂各工件的完工时间,确定装配工厂的产品完工时间。
53.其中,步骤200具体包括:
54.201,计算同一产品下所有工件的完工时间,取最大值作为当前的完工时间。
55.202,根据所有产品的完工时间,确定每一个客户的完工时间的下界。该下界需综
合考虑该客户所有产品的完工时间以及前一个客户的完工时间,取累计相加后最大的值作为当前客户的完工时间的下界。
56.203,针对每一个客户的最后一个产品,取当前客户的下界和交货时间的最大值,作为该产品装配的最终完工时间。
57.204,采用完工时间的倒推方式,依次重新确定其他产品的装配完工时间,得到装配工厂的产品完工时间。
58.300,根据所述装配工厂的产品完工时间,计算最终的库存成本和延迟成本。
59.另外,本技术为实现库存成本和延迟成本的最小化,借用迭代局部搜索算法的框架,融入特定知识结构和自适应算子调控策略,设计了一种全新的智能优化算法。
60.为了获取性能优越的初始解,本技术将四种特定的知识结构和fl、nr3 和neh三种启发式相结合,设计了一种全新的初始化方法;该方法主要包含三个阶段:(1)基于fl启发式确定每一个产品下工件序列;(2)依据 nr3启发式和插入操作,确定灭一个客户下产品序列;(3)采用neh启发式对客户序列进行优化,确定最终的客户序列。知识驱动下neh导向的初始化方法详细步骤如下:
61.400,确定任意产品的工件序列。
62.其中,步骤400具体包括:
63.401,计算属于当前产品的每一个工件在制造工厂的完工时间,依据完工时间的降序,对工件进行排序,获取当前产品下初始工件序列。
64.402,将初始工件序列的第一个工件放到一个空序列中,然后将第二个工件插入该序列的任意位置,获取多个新序列,选择完工时间最小的序列作为当前工件序列。
65.403,依据初始工件序列,依次将后续的工件(从第三个开始)插入到当前工件序列的任意位置,获取多个新序列,选择完工时间最小的序列作为当前工件序列。
66.404,在当前工件序列上,采用成对交换的方式,将所有的工件进行交换,获取多个新的序列,最后完工时间最小的序列作为当前产品的最终工件序列。
67.405,重复以上步骤,直到确定所有产品的最终序列。
68.500,确定任意客户的产品序列。
69.其中,步骤500具体包括:
70.501,采用nr3启发式计算当前客户下所有产品的装配完工时间;依据装配完工时间的降序,对产品进行排序,获取当前客户下初始产品序列。
71.502,将初始产品序列的第一个产品放到一个空的序列中,获取一个当前产品序列。
72.503,依据初始产品序列,依次将后续的产品(从第二个开始)插入到当前产品序列的所有位置,获取多个新序列;并采用nr3启发式将工件分配到各个制造工厂中,并通过所提出的目标计算方法计算目标值;选择目标值最小的序列作为当前产品序列。
73.504,重复以上步骤,直到所有客户的产品序列确定为止。
74.600,确定客户序列。
75.其中,步骤600包括:
76.601,按照交货期降序的方式,对所有的客户进行排序,获取一个初始客户序列。
77.602,将初始客户序列的第一个客户放入到一个空的序列中,获取一个当前客户序
列。
78.603,依据初始客户序列,依次将后续的客户(从第二开始)插入到当前客户序列的所有位置,从而获取多个新的客户序列;并采用nr3启发式将工件分配到各个制造工厂中,通过所提出的目标计算方法计算目标值;选择目标值最小的序列作为当前的客户序列。
79.604,重复以上步骤,直至所有的客户都进行了优化确认,从而确定最终的客户序列。
80.700,根据所述工件序列、产品序列以及客户序列,调整工件和产品的完工时间。
81.为了确保优化方法的多样性和扰动性,避免算法陷入局部优化。因此,本技术在该阶段中设计了6种基于特定知识结构的扰动操作。这些操作依据作用的序列范围,可细分为两大类。
82.第一类主要作用于工件序列,主要包含了关键工件交换和工件插入:
83.(1)关键工件交换:随机选择一个关键制造工厂,并从该关键工厂中随机选择一个关键工件;将该工件和其同属一个产品的其他工件进行位置交换;
84.(2)关键工件插入:随机选择一个关键制造工厂,并从该关键工厂中随机选择一个关键工件;将该工件插入到和其同属一个产品的其他工件集中的任意一个位置。
85.第二类主要作用于客户序列或者产品序列,旨在变动产品的排序方式。其主要包含了客户交换、客户插入、产品交换和产品插入等四个操作方式:
86.(1)客户交换:随机从客户序列中选择两个客户,并交换两者在序列中的位置。
87.(2)客户插入:从客户序列中随机提取一个客户,并将其插入到序列中的其他位置。
88.(3)产品交换:首先随机选择一个客户,然后从该客户的产品序列中随机选择两个产品,并交换两者的序列位置。
89.(4)产品插入:首先随机选择一个客户,然后从该客户的产品序列中随机提取一个产品,并将其插入到当前产品序列的其他任意位置。
90.针对上述两类操作,第二类操作的变动幅度要远远大于第一类操作。同时,通过初步实验,可以发现具有大的变动的操作(如第二类操作)在迭代开始阶段表现优异,但是随着迭代次数的增加,其优化的效果会逐渐的衰减;相反,变动小的操作(如第一类操作)具有相反的效果。因此,为了最大化上述两类操作的优化能力,本技术提出了一种基于时间和概率的自适应算子调控策略。该策略在一开始阶段假设第二类操作的选择概率是1.0,第一类操作的选择概率是0。然后随着迭代时间的不断推移,第二类操作的选择概率线性下降,第一类操作的选择概率则线性上升。在最后迭代的时候,第一类操作的选择概率变为0,第二类操作的选择概率则变为1.0。同时,在每一次迭代的时候,采用轮盘赌的方式,依据不同操作的选择概率来确定需执行的扰动操作。
91.另外,为了提高算法的局部搜索能力,本技术结合上述的特定知识结构,提出了6种知识驱动的局部搜索算子,具体为:
92.(1)关键工件交换导向的局部搜索:从所有的制造工厂中随机选择一个关键制造工厂;然后从所选择的工厂中随机选择一个关键工件,将其与同属于同一产品的其他所有的工件进行交换,获取多个分配方案;选择目标值最小的一个分配方案。
93.(2)关键工件插入导向的局部搜索:从所有的制造工厂中随机选择一个关键制造
工厂;然后从所选择的工厂中随机选择一个关键工件,将其插入到和其同属一个产品的其他工件集中的任意一个位置,获取多个分配方案;选择目标值最小的一个分配方案。
94.(3)产品交换导向的局部搜索:首先从客户序列中随机选择出一个客户;然后从该客户所属的产品序列中随机选择一个产品,将其与该产品序列中的其他所有的产品进行交换,生成当前客户下多个新的产品序列;目标值最小的一个产品序列为当前客户的最终产品序列。
95.(4)产品插入导向的局部搜索:首先从客户序列中随机提取一个客户;然后从该客户所属的产品序列中随机提取一个产品,将其插入到该产品序列中的所有位置,产生当前客户下多个新的产品序列;目标值最小的一个产品序列为当前客户的最终产品序列。
96.(5)客户交换导向的局部搜索:在客户序列中随机选择一个客户,并将与原序列中其他所有的客户进行交换,产生多个新的客户序列;目标值最小的一个客户序列为最终的客户序列。
97.(6)客户插入导向的局部搜索:在客户序列中随机提取一个客户,并将其插入到原序列中的所有位置,产生多个新的客户序列;目标值最小的一个客户序列为最终的客户序列。
98.为了更好的协同上述多个局部搜索方式,本技术提出了一种变领域下降的方式来组织上述6种操作。具体为:首先设置一个初始的操作序号x=1。依据操作序号,来采用对应的局部操作来对当前的解进行优化(如x=1表示采用关键工件交换导向的局部搜索的方式对当前解进行优化)。如果生成的新解改进的全局最优解,则将全局最优解替换为新解,同时设置x=1;反之,设置x=x+1。如果x小于等于6,则继续采用对应的局部搜索操作来对当前的解进行优化;反之,循环结束。
99.在每一次扰动和局部搜索后,需要对新产生的解进行判断是否继续采用新解来进行下一次的迭代操作。具体的判断标准为:如果新解的目标值小于当前解,则采用新解;反之,随机产生一个0到1的随机数,如果该随机数小于概率
[0100][0101]
则采用新解;反之,继续采用当前解来进行下一次的迭代。其中,上述概率表达式中,obj(x
current
)和obj(x
new
)分别表示当前解和新解的目标函数值;m和n分别表示工件和机器的数量;t
jk
表示工件j在机器k上的加工时间;it为算法的控制参数。
[0102]
另外,本技术将所提出的方法和6种当前最好的优化技术进行对比,来验证所提方法的高效性。对比技术主要包含:brils、giga、ils、hdiwo、 tdiwo和mceda。最终的对比实验结果为:brils的平均相对百分比为 0.127617;giga的平均相对百分比为0.046133;ils的平均相对百分比为1.671982;hdiwo的平均相对百分比为0.084996;tdiwo的平均相对百分比为0.085665;mceda的平均相对百分比为0.21325;kbils的平均相对百分比为0.005242。可以明显地发现,所提的方法kbils的相对百分比指标最小,说明所提的方法在求解批次配送下分布式装配流水车间调度优化问题上具有高效性。
[0103]
以上均为本技术的较佳实施例,并非依此限制本技术的保护范围,故:凡依本技术的结构、形状、原理所做的等效变化,均应涵盖于本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1