基于改进MOPSO算法的生产调度优化方法及系统

文档序号:25306091发布日期:2021-06-04 14:30阅读:274来源:国知局
基于改进MOPSO算法的生产调度优化方法及系统
基于改进mopso算法的生产调度优化方法及系统
技术领域
1.本发明涉及mes系统生产调度优化技术领域,特别是涉及一种基于改进mopso算法的生产调度优化方法及系统。


背景技术:

2.mes(manufacturing execution system,mes,制造执行系统)的核心功能之一是车间详细生产计划的制定和生产调度。mes接收上层生产计划系统发送的较粗整体生产计划目标,依据mes中的工艺信息、车间资源和现有工作执行的具体情况和各项约束,生成具体到最小加工单元上的各项详细的生产作业计划,而产生的生产作业计划的质量将直接关系到车间现场各项工作的效率。要生成符合车间实际生产情况的生产作业计划,生产调度系统及其优化方法就必须与mes紧密地集成,同时在生产调度过程中要考虑车间实际工况对车间任务的约束和影响,并且要有效地利用mes采集到的任务执行情况数据。另一方面,在离散制造的情景下,生产计划的优化需考虑多种优化指标,如加工时间、加工成本、瓶颈设备负荷等等,而且不同类型的企业对于优化目标的选择和侧重各有不同,因此对于考虑多目标函数的生产调度优化方法是值得研究的。
3.粒子群算法(pso)本身具有概念简单、生物机制清晰、编程实现容易、运行效率较高等优点,已经有着广发的应用。而由算法原理可知,参数的选取是影响该算法效率和性能的决定因素,如何设定参数使算法性能达到最优是一个很重要且很复杂的问题。由于初始粒子群是随机产生的,粒子群分布较广,没有规律可循,因此通过迭代寻求最优值,会导致该算法在前期迭代中搜索效率很低。并且,当粒子的当前位置与全局最优位置重合时,而该粒子的前一刻的速度和惯性因子又不为零,则该粒子就会偏离之前的位置飞行,从而错过了最优解。同样,如果该类粒子的前一刻速度都为零,则这些粒子一旦到达当前的全局最优粒子的位置就会停止飞行,从而导致该算法陷入局部最优。在迭代后期,由于粒子群已接近全局最优,将导致更新速度变化很小,甚至为零,使得该算法陷入局部最优。


技术实现要素:

4.本发明的目的是提供一种基于改进mopso算法的生产调度优化方法及系统,以提高搜索能力,从而实现生产调度优化。
5.为实现上述目的,本发明提供了如下方案:
6.一种基于改进mopso算法的生产调度优化方法,包括:
7.获取当前生产调度计划信息;所述当前生产调度计划信息包括当前加工任务的工件数量,每个工件所需要进行加工的工序数量,每个工件每道工序的加工时间,可用于执行当前加工任务的设备数量,以及每个工件在每道工序加工时所需的设备;
8.基于所述当前生产调度计划信息,采用设备编码方式,确定初始粒子群;所述初始粒子群包括多个粒子;每个所述粒子均代表当前加工任务中所有工件的加工工序的设备编号的组合;一个所述粒子表示为{o
11
、o
12


、o
1k


,o
i1
、o
i2


、o
ij
、...、o
1k
,...,o
n1

o
n2


、o
nk
},其中,1≤o
ij
≤m,o
ij
表示加工第i个工件在第j道工序上所需的设备的编号;m表示用于执行当前加工任务的设备数量,k表示当前加工任务中所有工件所含工序数中的最大值,n表示当前加工任务的工件数量;
9.判断当前迭代次数是否到达设定迭代次数,得到第一判断结果;
10.若所述第一判断结果表示所述当前迭代次数到达所述设定迭代次数,则输出所述当前迭代次数对应的帕累托最优解集;所述帕累托最优解集包括当前迭代次数时每个粒子的最优位置以及所有粒子中的最优位置;
11.若所述第一判断结果表示所述当前迭代次数未到达所述设定迭代次数,则根据所述当前迭代次数对应的帕累托最优解集和转化后的目标函数,采用mopso算法,计算每个粒子的多目标函数值,并根据每个所述粒子的多目标函数值,确定下一迭代次数对应的初始帕累托最优解集;所述转化后的目标函数包括加工时间目标函数、加工成本目标函数、瓶颈设备负荷目标函数以及违反约束总量目标函数;所述违反约束总量目标函数为采用多目标约束处理算法计算每个粒子违反约束总量的目标函数;
12.采用考虑超体积和空间间距的混合指标策略,对下一迭代次数对应的初始帕累托最优解集进行更新,以得到下一迭代次数对应的最终的帕累托最优解集,并将当前迭代次数更新为下一迭代次数,将当前迭代次数对应的帕累托最优解集更新为下一迭代次数对应的最终的帕累托最优解集,返回判断当前迭代次数是否到达设定迭代次数,得到第一判断结果步骤。
13.可选的,所述基于所述当前生产调度计划信息,采用设备编码方式,确定初始粒子群,具体包括:
14.按照每个工件的加工顺序,采用设备编码方式,确定第一初始粒子群;
15.按照粒子群生成约束条件,对所述第一初始粒子群进行调整,以得到最终的初始粒子群;
16.所述粒子群生成约束条件包括:(1)将每个工件的工序数设置为所有工件所含工序数中的最大值k,其中,k为正整数;(2)对工序数为l(l≤k)的工件,将第l+1道工序,

,第k道工序设置为虚工序,并将虚工序对应设备的加工时间设为0;(3)对于不能在设定设备上加工的工序设为空工序,并将空工序在空工序对应设备上的加工时间设为∞。
17.可选的,所述采用考虑超体积和空间间距的混合指标策略,对下一迭代次数对应的初始帕累托最优解集进行更新,以得到下一迭代次数对应的最终的帕累托最优解集,具体包括:
18.计算下一迭代次数对应的超体积值和空间间距值;
19.根据所述超体积值和所述空间间距值,计算下一迭代次数对应的惯性系数、个体学习系数和社会学习系数;
20.根据所述下一迭代次数对应的惯性系数、个体学习系数和社会学习系数,更新粒子的速度向量和位置向量,以得到下一迭代次数对应的最终的帕累托最优解集。
21.可选的,所述根据所述下一迭代次数对应的惯性系数、个体学习系数和社会学习系数,更新粒子的速度向量和位置向量,以得到下一迭代次数对应的最终的帕累托最优解集,具体包括:
22.根据所述下一迭代次数对应的惯性系数、个体学习系数和社会学习系数,更新粒
子的速度向量和位置向量,以得到更新后的粒子的速度向量和初始位置向量;
23.采用多目标梯度运算算法,对更新后的粒子的初始位置向量进行更新,以得到最终的粒子的位置向量;
24.根据更新后的粒子的速度向量和最终的粒子的位置向量,确定下一迭代次数对应的最终的帕累托最优解集。
25.一种基于改进mopso算法的生产调度优化系统,包括:
26.当前生产调度计划信息获取模块,用于获取当前生产调度计划信息;所述当前生产调度计划信息包括当前加工任务的工件数量,每个工件所需要进行加工的工序数量,每个工件每道工序的加工时间,可用于执行当前加工任务的设备数量,以及每个工件在每道工序加工时所需的设备;
27.初始粒子群确定模块,用于基于所述当前生产调度计划信息,采用设备编码方式,确定初始粒子群;所述初始粒子群包括多个粒子;每个所述粒子均代表当前加工任务中所有工件的加工工序的设备编号的组合;一个所述粒子表示为{o
11
、o
12


、o
1k


,o
i1
、o
i2


、o
ij
、...、o
1k
,...,o
n1
、o
n2


、o
nk
},其中,1≤o
ij
≤m,o
ij
表示加工第i个工件在第j道工序上所需的设备的编号;m表示用于执行当前加工任务的设备数量,k表示当前加工任务中所有工件所含工序数中的最大值,n表示当前加工任务的工件数量;
28.判断模块,用于判断当前迭代次数是否到达设定迭代次数,得到第一判断结果;
29.输出模块,用于当所述第一判断结果表示所述当前迭代次数到达所述设定迭代次数时,输出所述当前迭代次数对应的帕累托最优解集;所述帕累托最优解集包括当前迭代次数时每个粒子的最优位置以及所有粒子中的最优位置;所述违反约束总量目标函数为采用多目标约束处理算法计算每个粒子违反约束总量的目标函数;
30.初始帕累托最优解集确定模块,用于所述第一判断结果表示所述当前迭代次数未到达所述设定迭代次数时,根据所述当前迭代次数对应的帕累托最优解集和转化后的目标函数,采用mopso算法,计算每个粒子的多目标函数值,并根据每个所述粒子的多目标函数值,确定下一迭代次数对应的初始帕累托最优解集;所述转化后的目标函数包括加工时间目标函数、加工成本目标函数、瓶颈设备负荷目标函数以及违反约束总量目标函数;
31.更新返回模块,用于采用考虑超体积和空间间距的混合指标策略,对下一迭代次数对应的初始帕累托最优解集进行更新,以得到下一迭代次数对应的最终的帕累托最优解集,并将当前迭代次数更新为下一迭代次数,将当前迭代次数对应的帕累托最优解集更新为下一迭代次数对应的最终的帕累托最优解集,返回判断模块。
32.可选的,所述初始粒子群确定模块,具体包括:
33.第一初始粒子群确定单元,用于按照每个工件的加工顺序,采用设备编码方式,确定第一初始粒子群;
34.初始粒子群确定单元,用于按照粒子群生成约束条件,对所述第一初始粒子群进行调整,以得到最终的初始粒子群;
35.所述粒子群生成约束条件包括:(1)将每个工件的工序数设置为所有工件所含工序数中的最大值k,其中,k为正整数;(2)对工序数为l(l≤k)的工件,将第l+1道工序,

,第k道工序设置为虚工序,并将虚工序对应设备的加工时间设为0;(3)对于不能在设定设备上加工的工序设为空工序,并将空工序在空工序对应设备上的加工时间设为∞。
36.可选的,所述更新返回模块,具体包括:
37.超体积值和空间间距值计算单元,用于计算下一迭代次数对应的超体积值和空间间距值;
38.惯性系数、个体学习系数和社会学习系数计算单元,用于根据所述超体积值和所述空间间距值,计算下一迭代次数对应的惯性系数、个体学习系数和社会学习系数;
39.更新单元,用于根据所述下一迭代次数对应的惯性系数、个体学习系数和社会学习系数,更新粒子的速度向量和位置向量,以得到下一迭代次数对应的最终的帕累托最优解集;
40.返回单元,用于将当前迭代次数更新为下一迭代次数,将当前迭代次数对应的帕累托最优解集更新为下一迭代次数对应的最终的帕累托最优解集,返回判断模块。
41.可选的,所述更新单元,具体包括:
42.第一更新子单元,用于根据所述下一迭代次数对应的惯性系数、个体学习系数和社会学习系数,更新粒子的速度向量和位置向量,以得到更新后的粒子的速度向量和初始位置向量;
43.第二更新子单元,用于采用多目标梯度运算算法,对更新后的粒子的初始位置向量进行更新,以得到最终的粒子的位置向量;
44.帕累托最优解集确定子单元,用于根据更新后的粒子的速度向量和最终的粒子的位置向量,确定下一迭代次数对应的最终的帕累托最优解集。
45.根据本发明提供的具体实施例,本发明公开了以下技术效果:
46.本发明通过设置多目标函数以及引入帕累托最优解集的概念,将问题的解由单个解调整为一组解,更好地满足多种评价指标协同考虑的需求;本发明采用超体积和空间间距的混合指标策略,平衡在整个迭代过程中算法的全局和局部搜索能力。因此,本发明能够提高搜索能力,从而实现生产调度优化。
附图说明
47.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
48.图1为本发明基于改进mopso算法的生产调度优化方法的流程示意图;
49.图2为本发明基于改进mopso算法的生产调度优化系统的结构示意图。
具体实施方式
50.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
51.本发明的目的是提供一种基于改进mopso算法的生产调度优化方法及系统,以提高搜索能力,从而实现生产调度优化。
52.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
53.实施例一
54.如图1所示,本实施例提供了一种基于改进mopso算法的生产调度优化方法,包括:
55.步骤101:获取当前生产调度计划信息;所述当前生产调度计划信息包括当前加工任务的工件数量,每个工件所需要进行加工的工序数量,每个工件每道工序的加工时间,可用于执行当前加工任务的设备数量,以及每个工件在每道工序加工时所需的设备。
56.步骤102:基于所述当前生产调度计划信息,采用设备编码方式,确定初始粒子群;所述初始粒子群包括多个粒子;每个所述粒子均代表当前加工任务中所有工件的加工工序的设备编号的组合;一个所述粒子表示为{o
11
、o
12


、o
1k


,o
i1
、o
i2


、o
ij
、...、o
1k
,...,o
n1
、o
n2


、o
nk
},其中,1≤o
ij
≤m,o
ij
表示加工第i个工件在第j道工序上所需的设备的编号;m表示用于执行当前加工任务的设备数量,k表示当前加工任务中所有工件所含工序数中的最大值,n表示当前加工任务的工件数量。
57.步骤103:判断当前迭代次数是否到达设定迭代次数,得到第一判断结果;若所述第一判断结果表示所述当前迭代次数到达所述设定迭代次数,则执行步骤104;若所述第一判断结果表示所述当前迭代次数未到达所述设定迭代次数,则执行步骤105。
58.步骤104:输出所述当前迭代次数对应的帕累托最优解集;所述帕累托最优解集包括当前迭代次数时每个粒子的最优位置以及所有粒子中的最优位置。
59.步骤105:根据所述当前迭代次数对应的帕累托最优解集和转化后的目标函数,采用mopso算法,计算每个粒子的多目标函数值,并根据每个所述粒子的多目标函数值,确定下一迭代次数对应的初始帕累托最优解集;所述转化后的目标函数包括加工时间目标函数、加工成本目标函数、瓶颈设备负荷目标函数以及违反约束总量目标函数;所述违反约束总量目标函数为采用多目标约束处理算法计算每个粒子违反约束总量的目标函数。
60.步骤106:采用考虑超体积和空间间距的混合指标策略,对下一迭代次数对应的初始帕累托最优解集进行更新,以得到下一迭代次数对应的最终的帕累托最优解集,并将当前迭代次数更新为下一迭代次数,将当前迭代次数对应的帕累托最优解集更新为下一迭代次数对应的最终的帕累托最优解集,返回步骤103。
61.其中,步骤102具体包括:
62.按照每个工件的加工顺序,采用设备编码方式,确定第一初始粒子群。
63.按照粒子群生成约束条件,对所述第一初始粒子群进行调整,以得到最终的初始粒子群。
64.所述粒子群生成约束条件包括:(1)将每个工件的工序数设置为所有工件所含工序数中的最大值k,其中,k为正整数;(2)对工序数为l(l≤k)的工件,将第l+1道工序,

,第k道工序设置为虚工序,并将虚工序对应设备的加工时间设为0;(3)对于不能在设定设备上加工的工序设为空工序,并将空工序在空工序对应设备上的加工时间设为∞。
65.步骤106具体包括:
66.计算下一迭代次数对应的超体积值和空间间距值。
67.根据所述超体积值和所述空间间距值,计算下一迭代次数对应的惯性系数、个体学习系数和社会学习系数。
68.根据所述下一迭代次数对应的惯性系数、个体学习系数和社会学习系数,更新粒子的速度向量和位置向量,以得到下一迭代次数对应的最终的帕累托最优解集。
69.所述根据所述下一迭代次数对应的惯性系数、个体学习系数和社会学习系数,更新粒子的速度向量和位置向量,以得到下一迭代次数对应的最终的帕累托最优解集,具体包括:
70.根据所述下一迭代次数对应的惯性系数、个体学习系数和社会学习系数,更新粒子的速度向量和位置向量,以得到更新后的粒子的速度向量和初始位置向量;采用多目标梯度运算算法,对更新后的粒子的初始位置向量进行更新,以得到最终的粒子的位置向量;根据更新后的粒子的速度向量和最终的粒子的位置向量,确定下一迭代次数对应的最终的帕累托最优解集。
71.实施例二
72.如图2所示,本实施例提供了一种基于改进mopso算法的生产调度优化系统,包括:
73.当前生产调度计划信息获取模块201,用于获取当前生产调度计划信息;所述当前生产调度计划信息包括当前加工任务的工件数量,每个工件所需要进行加工的工序数量,每个工件每道工序的加工时间,可用于执行当前加工任务的设备数量,以及每个工件在每道工序加工时所需的设备。
74.初始粒子群确定模块202,用于基于所述当前生产调度计划信息,采用设备编码方式,确定初始粒子群;所述初始粒子群包括多个粒子;每个所述粒子均代表当前加工任务中所有工件的加工工序的设备编号的组合;一个所述粒子表示为{o
11
、o
12


、o
1k


,o
i1
、o
i2


、o
ij
、...、o
1k
,...,o
n1
、o
n2


、o
nk
},其中,1≤o
ij
≤m,o
ij
表示加工第i个工件在第j道工序上所需的设备的编号;m表示用于执行当前加工任务的设备数量,k表示当前加工任务中所有工件所含工序数中的最大值,n表示当前加工任务的工件数量。
75.判断模块203,用于判断当前迭代次数是否到达设定迭代次数,得到第一判断结果。
76.输出模块204用于当所述第一判断结果表示所述当前迭代次数到达所述设定迭代次数时,输出所述当前迭代次数对应的帕累托最优解集;所述帕累托最优解集包括当前迭代次数时每个粒子的最优位置以及所有粒子中的最优位置;所述违反约束总量目标函数为采用多目标约束处理算法计算每个粒子违反约束总量的目标函数。
77.初始帕累托最优解集确定模块205,用于所述第一判断结果表示所述当前迭代次数未到达所述设定迭代次数时,根据所述当前迭代次数对应的帕累托最优解集和转化后的目标函数,采用mopso算法,计算每个粒子的多目标函数值,并根据每个所述粒子的多目标函数值,确定下一迭代次数对应的初始帕累托最优解集;所述转化后的目标函数包括加工时间目标函数、加工成本目标函数、瓶颈设备负荷目标函数以及违反约束总量目标函数。
78.更新返回模块206,用于采用考虑超体积和空间间距的混合指标策略,对下一迭代次数对应的初始帕累托最优解集进行更新,以得到下一迭代次数对应的最终的帕累托最优解集,并将当前迭代次数更新为下一迭代次数,将当前迭代次数对应的帕累托最优解集更新为下一迭代次数对应的最终的帕累托最优解集,返回判断模块。
79.所述初始粒子群确定模块202,具体包括:
80.第一初始粒子群确定单元,用于按照每个工件的加工顺序,采用设备编码方式,确
定第一初始粒子群。
81.初始粒子群确定单元,用于按照粒子群生成约束条件,对所述第一初始粒子群进行调整,以得到最终的初始粒子群。
82.所述粒子群生成约束条件包括:(1)将每个工件的工序数设置为所有工件所含工序数中的最大值k,其中,k为正整数;(2)对工序数为l(l≤k)的工件,将第l+1道工序,

,第k道工序设置为虚工序,并将虚工序对应设备的加工时间设为0;(3)对于不能在设定设备上加工的工序设为空工序,并将空工序在空工序对应设备上的加工时间设为∞。
83.所述更新返回模块206,具体包括:
84.超体积值和空间间距值计算单元,用于计算下一迭代次数对应的超体积值和空间间距值。
85.惯性系数、个体学习系数和社会学习系数计算单元,用于根据所述超体积值和所述空间间距值,计算下一迭代次数对应的惯性系数、个体学习系数和社会学习系数。
86.更新单元,用于根据所述下一迭代次数对应的惯性系数、个体学习系数和社会学习系数,更新粒子的速度向量和位置向量,以得到下一迭代次数对应的最终的帕累托最优解集。
87.返回单元,用于将当前迭代次数更新为下一迭代次数,将当前迭代次数对应的帕累托最优解集更新为下一迭代次数对应的最终的帕累托最优解集,返回判断模块。
88.所述更新单元,具体包括:
89.第一更新子单元,用于根据所述下一迭代次数对应的惯性系数、个体学习系数和社会学习系数,更新粒子的速度向量和位置向量,以得到更新后的粒子的速度向量和初始位置向量。
90.第二更新子单元,用于采用多目标梯度运算算法,对更新后的粒子的初始位置向量进行更新,以得到最终的粒子的位置向量。
91.帕累托最优解集确定子单元,用于根据更新后的粒子的速度向量和最终的粒子的位置向量,确定下一迭代次数对应的最终的帕累托最优解集。
92.实施例三
93.在mes(manufacturing execution system,制造执行系统)系统中,柔性作业车间调度问题是作业车间调度问题的一种。其中,“柔性”是指生产周期较短,产品质量较高,生产成本较低的加工模式。
94.其具体的问题描述如下:存在n个等待加工的工件(n1,n2,

,n
n
),分别在m台设备(m1,m2,

,m
m
)上进行加工,每一个工件包含k道工序,每一个工件在各道工序的加工顺序是一定的,每一道工序可在其可加工的任何一个设备上进行加工;工件的工序所选择的加工设备不同,其所需要的加工时间、加工成本也会产生变化。
95.目前急需解决的技术问题是:对每道工序进行最优设备的选择,使各设备上的加工工序顺序最优,并确定其开始时间与完工时间,以使所设目标函数的值达到最优。总而言之,对柔性作业车间调度问题的求解,在本质上是完成工序加工设备的选择和设备上待加工工序的排序。
96.对于加工工序的分配和加工过程中的约束,有如下原则与假设:
97.(1)工件的每个待加工工序只能被分配到一台设备上。
98.(2)一台设备上不能同时加工处理多道工序。
99.(3)同一个工序不能同时被多台设备加工。
100.(4)设备在开始加工工序后除非发生扰动否则加工不能中断。
101.(5)加工时调整时间等额外时间包含在加工时间内,并假定具有无限的缓冲区容量。
102.(6)工件之间相互独立,不存在加工的先后顺序。
103.(7)从属同一工件的工序之间存在既定的加工先后顺序。
104.(8)在零时刻可以选择任意一个工件进行加工。
105.本实施例提供了一种基于改进mopso算法的生产调度优化方法。该方法首先在mes系统中获取当前生产调度问题的目标信息、约束信息等。其次建立加工时间、加工成本、瓶颈设备负荷等的目标函数,以及考虑加工顺序、设备可用状态、参数物理意义等的多约束条件,建立mes系统生产调度优化问题数学模型。然后使用多目标约束处理方法,计算每个粒子违反约束的总量,重新构造多约束问题,将其转化为无约束的等价形式。计算每个粒子多目标函数的值。之后使用多目标梯度运算方法,更新粒子的状态,以增强其局部搜寻能力。此外,使用考虑超体积和空间间距混合指标策略对粒子群算法中的参数进行更新,包括惯性因子、个体学习因子和社会学习因子。最后将所得到的帕累托最优解集输出至mes系统并存储至数据库。
106.本实施例提供的一种基于改进mopso算法的生产调度优化方法,包括如下步骤。
107.步骤1:在mes系统中获取当前生产调度问题的目标、约束等信息,即在mes系统中获取当前生产调度计划信息。
108.mes系统从erp系统中获取当前生产调度计划信息,即从当前设备状态、生产状态和历史数据库等中获取当前生产调度计划信息,包括当前加工任务的工件数量n,每个工件所需要进行加工的工序数量,每个工件每道工序的加工时间t,可用于执行当前加工任务的设备数量m,及相应设备对于不同工件的不同工序是否可以进行加工等信息。
109.步骤2:对于粒子群算法中的每个粒子进行基于设备的编码。
110.每个加工任务中工件的加工可行顺序都可以通过编码形式表示成一个粒子群算法中的粒子,求解所得的每个不同的粒子均对应着一个可行的该生产调度问题具体的执行工序,即可行解。在不同的编码方式下,对应着同一个确定的执行工序的粒子是不同的,本实施例采用基于设备的编码方式,每个粒子代表加工工序的设备号的组合。对于n个工件m台设备的生产调度问题,假设每个工件的工序数相同,都为k,且每个工序可以在任何设备上加工,其编码可表示为{o
11
,o
12


,o
1k


,o
n1
,o
n2


,o
nk
},其,中1≤o
ij
≤m;o
ij
表示加工第i个工件的第j道工序的设备号。
111.例如,3个工件3台设备的生产调度问题,每个工件包含2道工序,其一种生产调度方式的编码为{1,2,2,3,3,1},表示第1个工件的2个工序先后在设备1,2上加工,第2个工件的2个工序先后在设备2,3上加工,第3个工件的2个工序先后在设备3,1上加工。
112.然而,在实际的生产调度问题中,不同工件所含的工序数往往不同,并且不同工序只能在某一台或某几台设备上加工,为了用上面介绍的编码方式编码,则需要对生产调度问题进行调整:(1)将每个工件的工序数设置为所有工件所含工序数中的最大值k,其中,k为正整数;(2)对工序数为l(l≤k)的工件,将其l+1,

,k道工序设置为虚工序,并将虚工序
对应设备的加工时间设为0;(3)对于不能在某个设备上加工的工序,将其在该设备上加工的时间设为∞。
113.例如,3个工件3台设备的生产调度问题,其中工件n1含1道工序,并且该工序只能在设备m1上加工;工件n2含2道工序,其中第1道工序只能在设备m2上加工,第2道工序可以在设备m1和设备m2上加工;工件n3含3道工序,其中第1道工序只能在设备m3上加工,第2道工序可以在设备m1和设备m3上加工,第3道工序可以在设备m1、设备m2和设备m3上加工。建立工序、设备与其对应加工时间的对应表,其结果如表1所示。
114.表1调整后的加工时间表
[0115][0116]
举例说明,该生产调度问题的一种可行解的编码可表示为{1,2,3,2,1,3,3,3,1},表示第1个工件的1个工序在设备1加工(其第2、3道工序为虚工序),第2个工件的2个工序先后在设备2,1上加工(其第3道工序为虚工序),第3个工件的3个工序先后在设备3,3,1上加工。
[0117]
步骤3:建立目标函数,考虑约束条件,建立mes系统生产调度优化问题数学模型。
[0118]
(1)考虑加工时间的目标函数:指所有工件都加工完毕以后,最后一个工件的结束时间。考虑该指标作为目标函数,可以提升生产效率,降低时间成本。
[0119]
对所求得的可行解进行反编码,获得一个具体的执行工序。根据该加工工序对加工时间进行计算。其计算方法如下:
[0120]
记第i个工件的第j道工序的开始时间为ts
ij
,记第i个工件的第j道工序的结束时间为te
ij
,记第i个工件的加工总时间为t
i
。对每一个工件i,其加工总时间t
i
可由下式计算:
[0121]
记某可行解的总加工时间为t,可公式计算。
[0122]
(2)考虑加工成本的目标函数:指加工所有工件的成本总和(如能量消耗、机器损耗、原料成本等)。考虑该指标作为目标函数,可以降低加工成本,提高收益。其计算方法为:
[0123]
其中,j2表示加工成本,i=1,2,

,n表示工件索引,j=1,2,

,k表示调整后的工序索引,o
ij
表示加工第i个工件的第j道工序的设备号,c
ij
o
ij
表示使用设备o
ij
加工第i个工件的第j道工序的成本。
[0124]
同样考虑不同工件所含的工序数不同,并且不同工序只能在某一台或某几台设备上加工的情况,对加工成本相应设置进行调整:(1)将每个工件的工序数设置为所有工件所含工序数中的最大值k,其中k为正整数;(2)对工序数为l(l≤k)的工件,将其l+1,

,k道工序设置为虚工序,并将虚工序对应设备的加工成本设为0;(3)对于不能在某个设备上加工的工序,将其在该设备上加工的成本设为∞。
[0125]
例如,3个工件3台设备的生产调度问题,其中工件n1含1道工序,并且该工序只能在设备m1上加工;工件n2含2道工序,其中第1道工序只能在设备m2上加工,第2道工序可以在设备m1和m2上加工;工件n3含3道工序,其中第1道工序只能在设备m3上加工,第2道工序可以在设备m1和m3上加工,第3道工序可以在设备m1、m2和m3上加工。建立工序、设备与其对应加工成本的对应表,其结果如表2所示。
[0126]
表2调整后的加工成本表
[0127][0128]
(3)考虑瓶颈设备负荷的目标函数:瓶颈设备是指在所有加工设备中负载最高的那一台设备的加工负荷。为使整个生产调度方案更为平衡,加工设备的利用率趋于平均,因
此希望各个设备的负荷尽可能小且平均。考虑该指标作为目标函数,可以降低设备消耗,延长设备使用寿命。其计算方法如下:
[0129][0130]
其中,j3表示加工成本,i=1,2,

,n表示工件索引,j=1,2,

,k表示调整后的工序索引,o
ij
表示加工第i个工件的第j道工序的设备号,t
ij
o
ij
表示使用设备o
ij
加工第i个工件的第j道工序的时间。
[0131]
基于以上内容,mes系统生产调度优化问题数学模型为:
[0132]
优化变量:生产调度问题的解编码成的粒子{o
11
,o
12


,o
1k


,o
n1
,o
n2


,o
nk
}
[0133]
目标函数:
[0134][0135][0136][0137]
约束条件:
[0138]
1≤i≤n
[0139]
1≤o
ij
≤m
[0140]
1≤j≤l≤k
[0141]
ts
ij
,te
ij
,t
i
,t均≥0
[0142]
ts
ij
=0。
[0143]
步骤4:初始化粒子群。
[0144]
在多目标粒子群优化算法(multi

objective optimization pso,mopso)中,粒子群中的每个粒子都可以视为在解空间上定义的备选解,并且它具有位置向量μ和速度向量v。这两个向量可以写为:
[0145]
μ
p,ij
(s)=[μ
p,11
(s),μ
p,12
(s),

,μ
p,1k
(s),

,μ
p,n1
(s),μ
p,n2
(s),

,μ
p,nk
(s)]
[0146]
v
p,ij
(s)=[v
p,11
(s),v
p,12
(s),

,v
p,1k
(s),

,v
p,n1
(s),v
p,n2
(s),

,v
p,nk
(s)]
[0147]
其中,s=1,2,

,s
max
表示迭代次数索引,p=1,2,

,n
max
表示粒子数索引,i=1,2,

,n表示工件索引,j=1,2,

,k表示调整后的工序索引。μ
p,ij
(s)对应上述粒子{o
11
,o
12


,o
1k


,o
n1
,o
n2


,o
nk
}。
[0148]
步骤5:使用多目标约束处理方法,将多约束问题重构转化为等价的无约束形式,计算每个粒子多目标函数值。
[0149]
计算每个粒子违反约束的总量,并利用该值作为额外的目标函数的值,即目标函数的维度增加1。例如,额外的目标函数j4可定义为:
[0150]
j4=minv
g
[0151]
其中,v
g
是不等式约束g
p
(
·
)>z
p
,p=1,...,n
max
的总违反度,其值可用公式
进行计算。
[0152]
其中,与其他目标约束处理方法相比,该方法不引入其他的参数,并且可以轻松实现。
[0153]
将每个粒子带入转化后的多目标函数中,得到多目标函数值。
[0154]
步骤6:根据各个粒子的多目标函数值,确定当前迭代次数s的帕累托最优解集a(s)。记录第p个粒子所经历过的最优位置为q
p
(s),记录第s代所有粒子中的最优位置为g(s)。
[0155]
对于求解多目标优化的问题,最优解不是唯一确定的,而是一个解集。由此引入帕累托(pareto)最优解集的概念。其中,涉及到的概念及关系如下所示:
[0156]
1.支配:解σ1支配解σ2的充分必要条件是:对于任意目标函数,解σ1的目标函数值均不大于解σ2的目标函数值,且至少存在一个解σ1的目标函数值小于解σ2的目标函数值,记为σ1>σ2。即满足:
[0157][0158][0159]
其中,r表示目标函数的索引,e表示目标函数的个数。
[0160]
2.帕累托最优:在可行解集中,不被任何其他的解所支配的解称为帕累托最优解。
[0161]
因此对于多目标优化问题,期望寻找一个帕累托最优解集,而非一个最优解。
[0162]
在求解过程中,将第p个粒子所经历过的最优位置记录为q
p
(s),将第s代所有粒子中的最优位置记录为g(s)。
[0163]
步骤7:使用考虑超体积和空间间距混合指标策略对mopso算法中的参数进行更新;参数包括惯性因子ω、个体学习因子c1和社会学习因子c2。
[0164]
在传统的mopso算法中,参数ω,c1,c2常被设计为固定常数,或单调递减的线性函数。根据经验可知,使用较小的ω,较小的c1,和较大的c2可以获得较好的局部搜索效果;而使用较大的ω,较大的c1,和较小的c2可以获得较好的全局搜索效果。因此考虑设计一种根据当前搜索效果自动调整参数变化的自适应控制器,以达到更优的搜索效果。
[0165]
一种常用评价帕累托解集的思路是,通过所使用的方法计算获得的近似解集与真正的帕累托最优解集之间的距离,但是本实施例帕累托最优解集是未知的,因此考虑采用基于超体积(hypervolume,hv)和空间间距(spacing,sp)的混合指标策略对所获得的帕累托解集进行评价。
[0166]
hv值可通过下式计算:
[0167]
[0168]
其中,此处的s+1表示第s+1代。leb(
·
)表示勒贝格测度(lebesgue measure),p为所得到的帕累托最优解集,d为其中的解,r=[r1,...,r
r
]为参考点。hv值可以被理解为是所有矩形区域的并集,反映了解的分布和收敛情况。
[0169]
sp值可通过下式计算:
[0170][0171]
其中,表示粒子的平均最小曼哈顿距离(manhattan distance,md),l
p
(
·
)表示第p个粒子的最小曼哈顿距离。根据曼哈顿距离的定义,解的散布越均匀,则其距离测度越小。因此希望找到具有较小sp值的一组帕累托最优解。
[0172]
在每一代粒子的计算过程中,将hv值和sp值作为自适应控制器设计的主要指标,根据下式对参数进行更新:
[0173][0174][0175][0176]
其中,其中,ω(s+1),c1(s+1),c2(s+1)分别是更新后的惯性因子、个体学习因子和社会学习因子。s、s+1等表示迭代次数。
[0177]
步骤8:更新粒子的速度向向量和位置向量。
[0178]
第一代中所有的粒子都是通过在前述给出的约束范围内随机初始化而获得的。
[0179]
从第二代开始,根据步骤6中获得的第p个粒子所经历过的最优位置q
p
(s),和第s代所有粒子中的最优位置g(s),将第p个粒子的速度向量按如下公式更新:
[0180]
v
p
(s+1)=ωv
p
(s)+ξ1c1[q
p
(s)

μ
p
(s)]+ξ2c2[g(s)

μ
p
(s)]
[0181]
其中,ω为惯性系数;ξ1和ξ2为随机常数,且ξ1,ξ2∈[0,1];c1为个体学习系数,c2为社会学习系数。使用该更新的速度向量,可以用下式更新第p个粒子的位置向量:
[0182]
[0183]
使用多目标梯度运算方法,再次更新粒子的位置向量,以增强其局部搜寻能力。
[0184]
首先计算目标函数j相对于粒子p的雅各比向量,记为:
[0185][0186]
其中,r=1,2,

,e,e表示目标函数的个数。基于该雅可比向量,可得到一个局部梯度方向:
[0187][0188]
其中,根据上式,e
p
可理解为所有目标函数的最陡下降方向的线性组合。随后,通过下式再次更新粒子的位置向量:
[0189][0190]
其中,δδ是沿方向e
p
的单位长度。每次得到新一代的粒子群之后,将该梯度运算方法应用于每一个粒子,并用更新后的粒子状态更新对应的粒子状态。
[0191]
步骤9:判断是否满足终止条件:若满足,则从所得到的帕累托解集中选择一个解输出至mes系统并存储至数据库;若不满足,则返回步骤5。
[0192]
终止条件设定为循环次数到达最大值n
max
时停止循环。设p为所得到的帕累托最优解集,d
p
为其中的解,d
p
*为其中的最优解。则d
p
*通过下式进行选择:
[0193][0194]
其中,和分别是j
r
的最小值和最大值。通过这种方法,可以选取到所得帕累托前沿中离由多目标函数构成的多维空间的原点距离最近的解,以此作为当前生产调度问题的最优解。
[0195]
在上述步骤3中,针对生产调度优化问题,相比一些只考虑单目标函数的优化方法,考虑了多目标函数的情况,所设计的多目标函数包括但不限于加工时间、加工成本、瓶颈设备负荷等指标。并针对多目标函数优化的问题,引入帕累托最优解集的概念,将问题的解由单个解调整为一组解,更好地满足多种评价指标协同考虑的需求。
[0196]
在上述步骤5中,使用多目标约束处理方法,计算每个粒子违反约束的总量,重新构造多约束问题,将其转化为无约束的等价形式。与其他约束处理方法相比,该方法并没有引入额外的参数,并且易于实施。
[0197]
在上述步骤7中,使用考虑超体积和空间间距混合指标策略,设计了自适应参数控制器,动态地对mopso算法中的参数进行更新,包括惯性因子、个体学习因子和社会学习因子,以平衡在整个迭代过程中算法的全局和局部搜索能力。
[0198]
在上述步骤8中,使用多目标梯度运算方法,更新粒子的位置向量,以增强算法的局部搜寻能力。传统方法中并没有对粒子状态进行沿梯度方向的更新,因此加入此步期望获得粒子更优的状态。
[0199]
在上述步骤9中,使用基于超距离的最优解选择方法,根据所得到帕累托前沿中的解距离超空间原点的距离对当前生产调度问题的最优解进行选择,考虑了在多目标函数中综合表现的最优值。
[0200]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0201]
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1