一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于NSGA-II算法的物联网车间调度方法与流程

2021-11-24 21:17:00 来源:中国专利 TAG:

一种基于nsga

ii算法的物联网车间调度方法
技术领域
1.本技术属于工业生产调度技术领域,具体涉及一种基于nsga

ii算法的物联网车间调度方法。


背景技术:

2.随着我国工业化进程的不断推进,工业生产的规模逐步扩大,车间生产调度愈加复杂,科学有效的车间调度方法对于我国制造业的高效可靠生产具有重要意义,也越来越受到人们的重视。
3.当前大多数制造业企业对车间进行联网改造,让机器接入网络统一管理,但目前物联网车间仍依赖于人工手段对订单进行分配生产,这种传统手段主要依赖于管理人员多年的经验,难免会出现订单疏漏,灵活性较差等问题。为了更好应对市场竞争,增强企业的竞争力,市场上逐渐出现依靠有效的生产调度算法来提高机器生产效率和操作管理水平的方法。
4.由于车间的生产调度问题是在等式或不等式约束下对于工序或者时间指标的优化,随着问题规模不断增大,优化目标的增多,对于求解优化方案的计算量呈指数增长,因而使得常规的数学规划方法往往无能为力。而nsga

ii算法作为一种快速非支配排序来求解多目标优化问题的算法,具有较快的收敛速度,避免了人为指定共享参数引起的误差。在针对多目标优化调度问题时,采用nsga

ii算法可以利用分级选择方法选出较好的个体,但是父代种群与子代种群合并后,将存在大量重复个体,影响种群进化速度。


技术实现要素:

5.本技术的目的在于提供一种基于nsga

ii算法的物联网车间调度方法,能够避免局部收敛,提高种群质量,获得较好的多目标优化解。
6.为实现上述目的,本技术所采取的技术方案为:
7.一种基于nsga

ii算法的物联网车间调度方法,所述基于nsga

ii算法的物联网车间调度方法,包括:
8.步骤s1、分别建立基于总加工时间、总生产成本和单台设备最长运行时间的三个目标函数;
9.步骤s2、取三个目标函数的倒数作为适应度函数;
10.步骤s3、根据目标函数和适应度函数建立车间调度模型;
11.步骤s4、基于nsga

ii算法求解所述车间调度模型,得到最优的车间调度方案,包括:
12.步骤s4.1、随机生成一个规模大小为n
p
的初代种群,初始化参数,确定染色体编码设计,确定选择、交叉和变异算子;
13.步骤s4.2、依照快速非支配排序对初代种群进行分层,通过选择、交叉和变异操作生成子代种群;
14.步骤s4.3、查找父代种群中目标函数的值存在重复的个体进行标记;
15.步骤s4.4、取标记个体中目标函数的值相同的多个个体中的一个取消标记,剩余标记个体再次进行变异操作得到新个体,然后将新个体和未标记个体合并重新生成父代种群;
16.步骤s4.5、将父代种群和子代种群合并生成新的种群;
17.步骤s4.6、对新的种群通过快速非支配排序,先找出群体中非支配对非支配层中每一个体进行拥挤度计算,依照非支配关系和拥挤度,依据精英保留策略选取n
p
个优秀个体进入下一代种群,生成新的父代种群;
18.步骤s4.7、基于父代种群通过选择、交叉、变异操作产生新的子代种群;
19.步骤s4.8、判断迭代次数是否达到设定的最大迭代次数,如果达到最大迭代次数则输出pareto最优解集作为最优的物联网车间调度方案;否则,迭代次数加1,并跳转至步骤s4.3继续执行。
20.以下还提供了若干可选方式,但并不作为对上述总体方案的额外限定,仅仅是进一步的增补或优选,在没有技术或逻辑矛盾的前提下,各可选方式可单独针对上述总体方案进行组合,还可以是多个可选方式之间进行组合。
21.作为优选,所述分别建立基于总加工时间、总生产成本和单台设备最长运行时间的三个目标函数,包括:
22.建立总加工时间目标函数f1如下:
23.f1=max{d
ijl
}=max{c
ijl
t
ijl
}
24.式中,f1为第一个工件开始加工到最后一个工件加工完成需要的总加工时间,d
ijl
为第i个工件的第j道工序在第l台设备上的结束加工时刻,c
ijl
为第i个工件的第j道工序在第l台设备上的开始加工时刻,t
ijl
为第i个工件的第j道工序在第l台设备上的需要加工时间;
25.建立单台设备最长运行时间目标函数f2:
[0026][0027]
式中,f2为所有设备中单台设备的最长运行时间,x
ijl
为决策变量,用来决定第i个工件的第j道工序是否在第l台设备上加工,t
ijl
为第i个工件的第j道工序在第l台设备上的需要加工时间;
[0028]
建立总生产成本目标函数f3如下:
[0029][0030]
式中,f3为所有工件完成各自工序加工的总生产成本,n为待加工的工件总数,n
i
为第i个工件需要加工的工序数量,m为加工设备的总数量,s
ijl
为第i个工件的第j道工序在第l台设备上加工的加工成本。
[0031]
作为优选,所述根据目标函数和适应度函数建立车间调度模型,包括:
[0032]
根据总加工时间目标函数f1、单台设备最长运行时间目标函数f2和总生产成本目
标函数f3建议约束条件如下:
[0033]
单台设备在一个时刻最多只能加工一个工件:
[0034]
每一时刻单个工件只能在一台设备上加工:
[0035]
第l台设备的最早开始加工时刻为t
l

[0036]
d
ijl
=c
ijl
t
ijl
[0037]
t
l
=d
ijl
[0038]
对于第i个工件只有前面的工序完成才可以加工后面的工序,且一台设备同一时间只能对一个工件进行加工,第i个工件的第j道工序在第l台设备上的开始加工时刻应迟于第l台设备的最早开始加工时刻:c
ijl
=max{t
l
,d
i(j

1)l

},d
i(j

1)l

为第i个工件的第j

1道工序在第l

台设备上的结束加工时刻,第l

台设备加工的工序是第l台设备加工的工序的前一道工序;
[0039]
基于适应度函数和约束条件建立车间调度模型如下:
[0040][0041]
式中,f为适应度函数。
[0042]
作为优选,所述染色体编码设计,包括:
[0043]
令n个工件中的第i个工件有n
i
道工序,并且在m台设备上加工,则共有n
×
n
i
道工序;
[0044]
染色体采用双层整数编码的方式将基于工序的编码和基于设备的编码结合,染色体里一行包含n
×
n
i
个基因,且第一层为基于工序的编码层,工件的加工顺序由基于工序的基因串决定,单个基因是由数字1到n组成,每个数字出现的次数由对应的工件工序数n
i
决定;第二层是工序对应的基于设备的编码层,基于加工设备的基因串决定对应工序的加工设备,单个基因由数字1到m构成。
[0045]
作为优选,所述选择操作,包括:
[0046]
按照快速非支配排序从低到高的顺序,将整层的个体放入种群,当整层放入超出种群整体规模时,依据当前层的拥挤度进行比较,由大到小的选择逐个放入种群,当种群数量为n
p
终止。
[0047]
作为优选,所述交叉操作,包括:
[0048]
对基于工序的基因串和基于加工设备的基因串分开独立进行交叉操作,对基于工
序的基因串采用pox交叉,对基于加工设备的基因串采用多点交叉。
[0049]
作为优选,所述变异操作,包括:
[0050]
对基于工序的基因串和基于加工设备的基因串分开独立进行变异操作;
[0051]
当对基于工序的基因串进行变异时,对两道工序随机进行交换,交换完成后进行检查,如果存在非法基因,对非法基因进行修改;
[0052]
当对基于加工设备的基因串进行变异时,从该工序可用的设备随机选择一台替代当前设备。
[0053]
作为优选,所述快速非支配排序,包括:
[0054]
首先找出种群中非支配解集,标记为第一非支配层f1,并将第一非支配层f1从整个种群中去除,将剩余种群再次进行搜索非支配解集,标记为第二非支配层f2,并将第一非支配层f2从整个种群中去除,重复执行直到整个种群分层完成。
[0055]
作为优选,所述拥挤度计算,包括:
[0056]
首先对同层个体初始化拥挤度距离,初始化个体的拥挤度距离n
d
为0,对于每一个目标函数,根据每个目标函数的值对个体从小到大进行排列,对于边界的拥挤度置为∞,记录同层个体针对每一目标函数值的最大值f
max
和最小值f
min
,并根据每个排列中相邻的三个个体计算中位于中间的个体的拥挤距离n
d
为:
[0057][0058]
式中,为第k个个体的拥挤度距离,f(k 1)为针对当前目标函数第k 1个个体的目标函数值,f(k

1)为当前目标函数第k

1个个体的目标函数值,1<k<k

1,k为当前层中个体的总数。
[0059]
本技术提供的基于nsga

ii算法的物联网车间调度方法,在满足工件加工和工艺约束等条件下,以最小总生产成本、最短总加工时间和单台设备最长运行时间最小为优化目标,采用快速非支配排序算子设计对于种群个体进行分层,指引搜索方向向pareto最优解集方向进行,对于标准的nsga

ii算法在求解规模较大的调度模型时容易产生较多的重复最优解的缺点,本技术提出了一种对于重复解的处理方法,改进了nsga

ii算法,避免了重复的个体在迭代中一直充斥种群,影响种群整体的进化速度,陷入局部收敛,也提高了种群质量,可以获得工件加工的最优调度方案,提高企业生产效率,降低了企业生产成本,也提高了企业的竞争能力。
附图说明
[0060]
图1为本技术的基于nsga

ii算法的物联网车间调度方法的流程图;
[0061]
图2为本技术的nsga

ii算法求解的流程图。
具体实施方式
[0062]
下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实
施例,都属于本技术保护的范围。
[0063]
除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中在本技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是在于限制本技术。
[0064]
在一个实施例中,提供一种基于nsga

ii算法的物联网车间调度方法,用于根据企业实际情况得到最优的排产方案。该方法为贴合企业使用,事先对于制造业企业进行调研分析,确定企业的优化目标,以及生产方式,以便于后期车间使用。
[0065]
为了便于理解,首先将以下变量给出如下定义:
[0066]
n为需要加工的工件数量,工件集合为n={i|i=1,2,

,n},m为加工设备的数量,加工设备集合为l={l|l=1,2,

,m},第i个工件需要经过n
i
道工序后才可以完成加工,并且同一加工批次中的n个工件的加工工序数量相同,t
ijl
为第i个工件的第j道工序在第l台设备上的需要加工时间,c
ijl
为第i个工件的第j道工序在第l台设备上的开始加工时刻,d
ijl
为第i个工件的第j道工序在第l台设备上的结束加工时刻,t
l
为第l台设备的最早开始加工时刻,s
ijl
为第i个工件的第j道工序在第l台设备上加工的加工成本,x
ijl
为决策变量,用来决定第i个工件的第j道工序是否在第l台设备上加工,且x
ijl
取值如下:
[0067][0068]
如图1所示,本实施例的基于nsga

ii算法的物联网车间调度方法,具体包括以下步骤:
[0069]
步骤s1、分别建立基于总加工时间、总生产成本和单台设备最长运行时间的三个目标函数。
[0070]
考虑到企业具体生产,本实施例以最小总加工时间,最低生产成本和单台设备最长运行时间最小为优化目标,分别建立对应的优化函数为:
[0071]
建立总加工时间目标函数f1如下:
[0072]
f1=max{d
ijl
}=max{c
ijl
t
ijl
}
[0073]
式中,f1为第一个工件开始加工到最后一个工件加工完成需要的总加工时间,d
ijl
为第i个工件的第j道工序在第l台设备上的结束加工时刻,c
ijl
为第i个工件的第j道工序在第l台设备上的开始加工时刻,t
ijl
为第i个工件的第j道工序在第l台设备上的需要加工时间。
[0074]
建立单台设备最长运行时间目标函数f2:
[0075][0076]
式中,f2为所有设备中单台设备的最长运行时间,x
ijl
为决策变量,用来决定第i个工件的第j道工序是否在第l台设备上加工,t
ijl
为第i个工件的第j道工序在第l台设备上的需要加工时间。
[0077]
建立总生产成本目标函数f3如下:
[0078][0079]
式中,f3为所有工件完成各自工序加工的总生产成本,n为待加工的工件总数,n
i
为第i个工件需要加工的工序数量,m为加工设备的总数量,s
ijl
为第i个工件的第j道工序在第l台设备上加工的加工成本。
[0080]
步骤s2、取三个目标函数的倒数作为适应度函数。
[0081]
确定适应度函数,考虑到三个目标函数的值都大于0而且希望取其最小值,所以采用每一个目标函数的倒数作为适应度函数f如下:
[0082]
步骤s3、根据目标函数和适应度函数建立车间调度模型。
[0083]
在得到目标函数和适应度函数后,首先需要确立优化过程中的约束条件,在一个实施例中,建立的约束条件如下:
[0084]
根据总加工时间目标函数f1、单台设备最长运行时间目标函数f2和总生产成本目标函数f3建议约束条件如下:
[0085]
单台设备在一个时刻最多只能加工一个工件:
[0086]
每一时间点单个工件只能在一台设备上加工:
[0087]
第l台设备的最早开始加工时刻为t
l

[0088]
d
ijl
=c
ijl
t
ijl
[0089]
t
l
=d
ijl
[0090]
对于第i个工件只有前面的工序完成才可以加工后面的工序,且一台设备同一时间只能对一个工件进行加工,第i个工件的第j道工序在第l台设备上的开始加工时刻应迟于第l台设备的最早开始加工时刻:c
ijl
=max{t
l
,d
i(j

1)l

},d
i(j

1)l

为第i个工件的第j

1道工序在第l

台设备上的结束加工时刻,第l

台设备加工的工序是第l台设备加工的工序的前一道工序,且在实际产生中第l

台设备和第l台设备可以是同一台设备,也可以是不同的设备。
[0091]
基于适应度函数和约束条件建立车间调度模型如下:
[0092][0093]
式中,f为适应度函数。
[0094]
步骤s4、基于nsga

ii算法求解所述车间调度模型,得到最优的车间调度方案,如图2所示,包括:
[0095]
步骤s4.1、随机生成一个规模大小为n
p
的初代种群,初始化参数,确定染色体编码设计,确定选择、交叉和变异算子。
[0096]
本实施例中的染色体编码设计,包括:令n个工件中的第i个工件有n
i
道工序,并且在m台设备上加工,则共有n
×
n
i
道工序。
[0097]
染色体采用双层整数编码的方式将基于工序的编码和基于设备的编码结合,染色体里一行包含n
×
n
i
个基因,且第一层为基于工序的编码层,工件的加工顺序由基于工序的基因串决定,单个基因是由数字1到n组成,每个数字出现的次数由对应的工件工序数n
i
决定;第二层是工序对应的基于设备的编码层,基于加工设备的基因串决定对应工序的加工设备,单个基因由数字1到m构成。
[0098]
例如,3个工件每个工件有3道工序,准备在5台设备上加工,染色体编码示例如下:工序编码(即得到基于工序的基因串):{1,3,2,2,1,3,2,3,1},对应的设备编码(即得到基于加工设备的基因串):{4,2,3,1,5,3,4,2,1}。
[0099]
步骤s4.2、依照快速非支配排序对初代种群进行分层,通过选择、交叉和变异操作生成子代种群。
[0100]
本实施例中的选择操作为基于精英选择策略选择,保留父代中的优良个体进入子代,防止获得的pareto最优解丢失。具体包括:按照快速非支配排序从低到高的顺序,将整层的个体放入种群,当整层放入超出种群整体规模时,依据当前层的拥挤度进行比较,由大到小的选择逐个放入种群,当种群数量为n
p
终止。
[0101]
本实施例中的交叉操作,包括:对基于工序的基因串和基于加工设备的基因串分开独立进行交叉,对基于工序的基因串采用pox交叉,对基于加工设备的基因串采用多点交叉。
[0102]
其中,pox交叉流程为:
[0103]
1)把所有工件集先随机划分为两个非空子集j1和j2;
[0104]
2)然后将两个父代染色体中包含j1中工件的工序保留不变并复制到子代c1和c2;
[0105]
3)将第一个父代染色体中包含j2中工件的工序复制到c2中,将第二个父代染色体
中包含j2中工件的工序复制到c1,顺序不改变;
[0106]
4)两个染色体完成交叉生成子代染色体c1和c2。
[0107]
其中,多点交叉流程为:先随机生成一个和加工设备部分基因串等长的由0和1组成的编码串,找出父代染色体中对应序列为1的,进行交换后复制到子代中,其余对应为0的机器基因串部分直接复制到子代中。
[0108]
本实施例中的变异操作,包括:
[0109]
1)对基于工序的基因串和基于加工设备的基因串分开独立进行变异;
[0110]
2)当对基于工序的基因串进行变异时,对两道工序随机进行交换,交换完成后进行检查,如果存在非法基因,对非法基因进行修改;
[0111]
3)当对基于加工设备的基因串进行变异时,从该工序可用的设备随机选择一台替代当前设备。
[0112]
步骤s4.3、查找父代种群中目标函数的值存在重复的个体进行标记。
[0113]
步骤s4.4、取标记个体中目标函数的值相同的多个个体中的一个取消标记,剩余标记个体再次进行变异操作得到新个体,然后将新个体和未标记个体合并重新生成父代种群。在取消标记的时候先将标记个体按照目标函数的值相同进行分类,对于每一类中目标函数的值相同的多个个体,取消其中一个个体的标记。
[0114]
步骤s4.5、将父代种群和子代种群合并生成新的种群。
[0115]
步骤s4.6、对新的种群通过快速非支配排序,先找出群体中非支配对非支配层中每一个体进行拥挤度计算,依照非支配关系和拥挤度,依据精英保留策略选取n
p
个优秀个体进入下一代种群,生成新的父代种群。
[0116]
本实施例中快速非支配排序依据个体的非劣解水平对于种群进行分层,目的是让搜索方向朝着pareto最优解集方向进行。快速非支配排序算子具体包括:首先找出种群中非支配解集,标记为第一非支配层f1,并将第一非支配层f1从整个种群中去除,将剩余种群再次进行搜索非支配解集,标记为第二非支配层f2,并将第一非支配层f2从整个种群中去除,重复执行搜索、标记和去除直到整个种群分层完成。
[0117]
其中拥挤度表示某单个解和周围解的密集程度。在经过快速非支配排序分层后的种群中,在同一支配层的个体内进行排序。本实施例中的拥挤度计算,包括:
[0118]
首先对同层个体初始化拥挤度距离,初始化个体的拥挤度距离n
d
为0,对于每一个目标函数,根据每个目标函数的值对个体从小到大进行排列,对于边界的拥挤度置为∞,记录同层个体针对每一目标函数值的最大值f
max
和最小值f
min
,并根据每个排列中相邻的三个个体计算中位于中间的个体的拥挤距离n
d
为:
[0119][0120]
式中,为第k个个体的拥挤度距离,f(k 1)为针对当前目标函数第k 1个个体的目标函数值,f(k

1)为当前目标函数第k

1个个体的目标函数值,1<k<k

1,k为当前层中个体的总数。其中n
d
与均表示个体的拥挤度距离,只是n
d
用于笼统描述个体的拥挤度距离,而用于针对性的描述第k个个体的拥挤度距离,以便于描述和公式表达。
[0121]
本实施例中的拥挤度计算为遗传算法中的常规计算手段,这里就不再进行过多描述。本实施例通过优先选择拥挤度较大的个体,在目标空间较为均匀分布,保证了种群的多样性。
[0122]
步骤s4.7、基于父代种群通过选择、交叉、变异操作产生新的子代种群;
[0123]
步骤s4.8、判断迭代次数是否达到设定的最大迭代次数,如果达到最大迭代次数则输出pareto最优解集作为最优的物联网车间调度方案;否则,迭代次数加1,并跳转至步骤s4.3继续执行。
[0124]
本实施例中所提出的改进的nsga

ii算法是在生成新种群步骤上进行优化,针对物联网车间调度问题设计了染色体编码,假设种群大小为n
p
,如果采用未改进的nsga

ii算法,父代和子代种群直接进行合并,种群规模一定大于n
p
,再通过精英选择的方式进行选择n
p
个个体,缺点在于合并后在种群中存在大量的重复个体,种群内充斥着重复个体会导致进化迭代陷入局部最优,很难全局最优。采用本实施例中的改进nsga

ii算法,对父代和子代合并后的重复的个体进行再变异,使得种群不包含重复个体,提升了种群的多样性,让每次更新朝着全局最优方向前进,使得更好的收敛到全局最优。
[0125]
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0126]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献