本发明属于车间生产调度领域,具体涉及动态柔性作业车间调度算法,用于车间生产计划的调度与管理。
背景技术:
1、随着制造技术的不断发展与完善,传统车间调度问题中工序在确定设备上作业的生产模式无法满足目前多品种个性化的生产需求,而柔性作业车间调度问题因其具有加工路径的柔性和机器设备柔性,从而更符合制造业的需求。柔性车间调度是一种基于柔性制造系统的生产调度方法,它通过灵活配置生产设备和资源,实现生产过程的高度自适应和灵活性。柔性车间调度技术允许生产线的快速调整和重组,以适应不同产品类型和生产需求的变化,从而提高生产效率和资源利用率。
2、进化算法是一类模拟自然界生物进化过程的优化算法,主要包括遗传算法、进化策略、遗传编程等,它们通过选择、交叉、变异等操作在解空间中搜索最优解。群智能算法是一种基于自然界生物群体行为的优化算法,主要包括蚁群算法、粒子群算法、遗传算法等,近年来在求解复杂优化问题方面取得了显著进展。在柔性车间作业调度领域,进化算法和群智能算法都通过模拟自然界的智能行为来优化工件在多台机器上的调度,进而提升生产效率和降低成本。
3、动态调度技术一直是车间调度领域研究的热点问题。在对该技术的研究过程中,研究者们使用了多种优化算法,包括进化算法、群智能算法、模拟退火算法、禁忌搜索算法和神经网络算法等。动态调度将车间生产视为一个动态过程,考虑到生产中可能发生的各种突发事件,如新工件订单随机产生、设备故障等,要求调度方案能够及时应对这些事件。传统的算法在对动态车间调度这一问题时会因为搜索速度不够快而导致排产效率低下,从而无法高效的得到比较好的调度方案。
技术实现思路
1、本发明为了克服现有技术的不足之处,提出一种基于开普勒优化算法的动态柔性作业车间调度方法,以期能得到高质量的生产调度计划,从而能提高车间设备利用率与抵抗风险的能力。
2、本发明为达到上述发明目的,采用如下技术方案:
3、本发明一种基于开普勒优化算法的动态柔性作业车间调度方法的特点在于,包括如下进行:
4、步骤1:获取原始数据,包括:
5、工件数量n、第i个工件ji,i∈n、机器数量m、第k台机器mk,k∈m、第i个工件ji的工序集为ni,ni的数量为ai、所有工序的总数量为an,第i个工件ji的第g道工序oig,g∈ai、布尔变量oigk,当oigk=1,表示第g道工序oig在第k台设备mk上加工,否则,oigk=0、工序oigk加工用时tigk、oigk的开工时间stigk、工序oigk的完工时间etigk、最大完工时间cmax,重调度周期为tre;
6、步骤2:构建基于目标函数和约束条件的车间调度模型;
7、步骤3:定义并初始化初代调度方案集;
8、步骤3.1:定义总迭代次数为s,当前迭代次数为s,并初始化s=1;
9、令第s代行星群记为sps={|w=1,2,…,nsp},为第s代第w颗行星,表示一个调度方案,nsp表示行星群的规模;
10、根据原始数据,定义第s代调度方案集sps中的每个调度方案由工序编码和机器编码组成,其中,所述工序编码由所有工件的所有工序序号依次排列组成,且同一工件的工序序号相同,对工序编码中每个工序位置依次进行编号,形成工序序号向量;
11、根据所述工序编码,依次选择对应工件的加工工序所用的机器序号组成机器编码,并对机器编码中的每个机器位置依次进行编号,形成机器序号向量;
12、步骤3.2:对第s代调度方案集sps中每个调度方案的工序编码进行随机初始化,并根据初始化后的工序编码确定每个工序对应的加工机器的序号以初始化机器编码;
13、步骤4:初始化每颗行星的参数:
14、步骤4.1:利用式(6)初始化第w颗行星的轨道离心率ew:
15、<mstyle displaystyle="true" mathcolor="#000000"><mi>e</mi><msub><mrow /><mi>w</mi></msub><mi>=</mi><mi>r</mi><mi>a</mi><mi>n</mi><mi>d</mi><mi>[</mi><mi>0</mi><mi>,</mi><mi>1</mi><mi>]</mi><mi>,</mi><mi>w</mi><mi>∈</mi><mi>n</mi><msub><mrow /><mrow><mi>s</mi><mi>p</mi></mrow></msub></mstyle> (6)
16、式(6)中,<mstyle displaystyle="true" mathcolor="#000000"><mi>r</mi><mi>a</mi><mi>n</mi><mi>d</mi><mi>[</mi><mi>0</mi><mi>,</mi><mi>1</mi><mi>]</mi></mstyle>表示均匀分布[0,1]之间的随机数;
17、步骤4.2:利用式(7)初始化第w颗行星的行星环绕周期tw:
18、<mstyle displaystyle="true" mathcolor="#000000"><mi>t</mi><msub><mrow /><mi>w</mi></msub><mi>=</mi><mrow><mo>|</mo><mrow><mi>r</mi><mi>a</mi><mi>n</mi><mi>d</mi><mi>n</mi><mrow><mo>[</mo><mrow><mi>0</mi><mi>,</mi><mi>1</mi></mrow><mo>]</mo></mrow></mrow><mo>|</mo></mrow><mi>,</mi><mi>w</mi><mi>∈</mi><mi>n</mi><msub><mrow /><mrow><mi>s</mi><mi>p</mi></mrow></msub></mstyle> (7)
19、式(7)中,<mstyle displaystyle="true" mathcolor="#000000"><mi>r</mi><mi>a</mi><mi>n</mi><mi>d</mi><mi>n</mi><mrow><mo>[</mo><mrow><mi>0</mi><mi>,</mi><mi>1</mi></mrow><mo>]</mo></mrow></mstyle>表示标准正态分布中的随机数,表示取绝对值;
20、步骤5:使用开普勒优化算法对第s代行星群sps进行变异操作后,得到第s+1代调度方案集sps+1;
21、步骤6:将s+1赋值给s后,判断s≤s是否成立,若成立,返回步骤5顺序执行,否则,表示得到第s代调度方案集,并计算第s代调度方案集中的所有调度方案的适应度,从而保留最大适应度个体作为最终的作业车间调度方案。
22、本发明所述的基于开普勒优化算法的动态柔性作业车间调度方法的特点也在于,所述步骤2包括:
23、步骤2.1、利用式(1)构建目标函数f:
24、 (1)
25、步骤2.2、利用式(3)-式(6)构建约束条件:
26、 (2)
27、 (3)
28、 (4)
29、 (5)
30、式(4)中,eti(g-1)k表示第i个工件ji在第k台设备mk上加工第g-1道工序oi(g-1)k的完工时间。
31、所述步骤5包括:
32、步骤5.1:利用式(8)计算第s代第w颗行星的适应度,并挑选出第s代行星群sps中最大适应度所对应的行星作为第s代太阳,其他行星围绕太阳运动:
33、 (8)
34、式(8)中,表示sps中第w颗行星的最大完工时间;
35、步骤5.2:初始化w=1;
36、步骤5.3:利用式(9)计算sps中太阳对第w颗行星的吸引力:
37、 (9)
38、式(9)中,μs表示第s次迭代时的万有引力常数,表示太阳的重量,表示第s代第w颗行星的重量,表示第s代第w颗行星与太阳间的欧式距离,ε表示一个常数,表示第s代第w颗行星对应的[0,1]之间的第一随机数,并有:
39、 (10)
40、 (11)
41、 (12)
42、 (13)
43、式(10)-式(13)中,表示太阳的工序序号向量,表示第s代第w颗行星的工序序号向量,表示第二范数,表示sps中太阳的工序序号向量中第q个位置的值,表示第s代第w颗行星的工序序号向量中第q个位置的值;表示第s代第w颗行星对应的[0,1]之间的第二随机数,表示第s次迭代时的最小适应度;表示初始万有引力常数,γ表示一个常数;
44、步骤5.4:生成一个随机数r,若r<0.5,则执行步骤5.5,否则,跳转至步骤5.7执行;
45、步骤5.5:使用式(14)得到第s代第w颗行星的速度:
46、 (14)
47、式(14)中,,表示sps中的第a颗行星的工序序号向量和第b颗行星的工序序号向量,x表示所有工序的初始排序向量;表示根据和的随机距离确定速度的速度参数,表示根据和的随机距离确定速度的速度参数,表示根据和x确定的最小步长方向的参数,表示根据开普勒第二定律计算的速度参数;表示的最小步长位置的布尔参数向量,表示运动时是否采用最小步长的布尔参数,,表示的第三、第四随机数,表示运动时确定随机最小步长的随机向量,表示对进行标准化后的欧式距离,并有:
48、 (15)
49、 (16)
50、 (17)
51、 (18)
52、 (19)
53、(20)
54、 (21)
55、 (22)
56、 (23)
57、<mstyle displaystyle="true" mathcolor="#000000"><mi>a</mi><munderover><mi /><mi>w</mi><mi>s</mi></munderover><mi>=</mi><mi>r</mi><mi>a</mi><mi>n</mi><mi>d</mi><munderover><mi /><mrow><mi>w</mi><mi>,</mi><mi>3</mi></mrow><mi>s</mi></munderover><mi>×</mi><mrow><mo>[</mo><mrow><mi>t</mi><munderover><mi /><mi>w</mi><mi>2</mi></munderover><mi>×</mi><mfrac><mrow><mi>μ</mi><mrow><mo>(</mo><mi>s</mi><mo>)</mo></mrow><mi>×</mi><mrow><mo>(</mo><mrow><mi>m</mi><munderover><mi /><mrow><mi>s</mi><mi>u</mi><mi>n</mi></mrow><mi>s</mi></munderover><mi>+</mi><mi>m</mi><munderover><mi /><mi>w</mi><mi>s</mi></munderover></mrow><mo>)</mo></mrow></mrow><mrow><mi>4</mi><mi>π</mi><msup><mrow /><mi>2</mi></msup></mrow></mfrac></mrow><mo>]</mo></mrow><msup><mrow /><mfrac><mi>1</mi><mi>3</mi></mfrac></msup></mstyle> (24)
58、 (25)
59、式(15)-式(25)中,表示的随机参数,表示的随机参数,表示确定速度的布尔参数向量,表示确定的随机向量,表示的椭圆轨道半长轴,表示第s次迭代时所有行星和太阳距离的最小值,表示第s次迭代时所有行星和太阳距离的最大值;
60、步骤5.6:使用式(26)得到第s代第w颗行星的更新后工序序号向量,并跳转至步骤5.8执行:
61、 (26)
62、式(26)中,表示的标准正态分布中的第一随机数;
63、步骤5.7:使用式(27)得到第s代第w颗行星的更新后工序序号向量:
64、 (27)
65、式(27)中,表示控制第s代太阳与之间距离的自适应因子,并有:
66、 (28)
67、 (29)
68、 (30)
69、式(28)-式(30)中,表示的线性递减因子,a2表示循环控制参数,%表示整除,表示所有周期的均值,表示的正态分布中的第二随机数;
70、步骤5.8:更新的工序编码和机器编码:
71、将第s代第w颗行星的工序编码按的升序进行重排序后,得到的重排序后的工序编码,然后根据重排序后的工序编码,利用极限完工时间最少策略更新的机器编码,从而得到更新后的第s代第w颗行星;
72、步骤5.9:利用式(8)计算行星和的适应度,并保留适应度较大的行星作为第s+1代第w颗行星,并根据的工序编码,计算的工序序号向量;
73、步骤5.10:将w+1赋值给w后,判断w≤nsp是否成立,若成立,返回步骤5.3顺序执行,否则,表示第s代所有行星完成一次位置更新,并执行步骤6。
74、若任意一台机器发生故障,则按照如下过程进行重调度:
75、确定故障机器的复工时间,从而将最终的作业车间调度方案中受影响工件的加工工序顺延至复工时间后,并将最后一台机器的完工时间作为新的完工时间;
76、判断是否成立,若成立,则根据顺延后的调度方案继续生产调度,否则,将剩余未加工工件的工序作为待加工工序,并按照步骤3-步骤5的过程得到新的调度方案。
77、若产生一批新的待加工工件,则按照如下过程进行重调度:
78、将新的待加工工件的工序排在所述最终的作业车间调度方案之后,并根据新的待加工工件的工序,依次选择当前完工时间最短的机器进行加工,并将最后一台机器的完工时间作为新工件的完工时间,判断是否成立,若成立,则直接将新的待加工工件的工序拼接到最终的作业车间调度方案后形成新的调度方案;否则,等待到达重调度周期tre,将新的待加工工件的工序与未加工工件的工序合并作为待加工工序,并按照步骤3-步骤5的过程得到新的调度方案。
79、与现有技术相比,本发明的有益效果在于:
80、1、本发明根据车间实际生产情况,设立了多个约束条件,对车间的完工时间建立了优化模型,并将开普勒优化算法首次引入到车间调度问题中对该模型进行求解,得出一种耗时最短的最优生产方案,进而提高了车间生产的效率。
81、2、本发明使用的开普勒优化算法,将方案优化过程模拟成行星运行轨迹,增加了全局搜索能力和跳出局部最优的能力,能够在车间调度方案优化过程中更快的找到最优调度方案,从而减少了排产的时间,提高了车间效率。
82、3、本发明提出了基于开普勒优化算法的动态车间重调度策略,根据车间真实动态事件例如机器损坏或新订单发生进行重调度,减少了车间生产过程中因动态事件导致的效率的影响,增强了车间生产过程中的抗干扰能力,提高了设备的利用率,提高了车间生产的效率。
1.一种基于开普勒优化算法的动态柔性作业车间调度方法,其特征在于,包括如下进行:
2.根据权利要求1所述的基于开普勒优化算法的动态柔性作业车间调度方法,其特征在于,所述步骤2包括:
3.根据权利要求2所述的基于开普勒优化算法的动态柔性作业车间调度方法,其特征在于,所述步骤5包括:
4.根据权利要求3所述的基于开普勒优化算法的动态柔性作业车间调度方法,其特征在于,若任意一台机器发生故障,则按照如下过程进行重调度:
5.根据权利要求3所述的基于开普勒优化算法的动态柔性作业车间调度方法,其特征在于:若产生一批新的待加工工件,则按照如下过程进行重调度: