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

一种基于细胞型膜计算模型求解混合流水车间调度的方法与流程

2022-02-25 23:41:22 来源:中国专利 TAG:


1.本发明涉及钢材加工生产调度技术优化领域,具体涉及一种基于细胞型膜计算模型求解混合流水车间调度的方法。


背景技术:

2.钢材是钢锭、钢坯等通过压力加工制成所需要的各种形状尺寸和性能的材料,其应用广泛、品种繁多。随着我国钢铁工业的持续发展,钢铁产品逐渐个性化、多样化。而在当前这种离散的生产方式下,产品生产工序多,每道生产工序可采用多台机器进行加工,加工过程中的信息复杂且不易控制,很容易造成经济效益低等问题。如何在生产约束条件下安排大量的钢材加工任务是企业提高生产效率,生产利润的重要手段。现目前,生产调度问题的研究较多,而针对钢材加工生产调度问题的研究相对较少。
3.许多钢铁行业研究机构、学者与工程师都致力于钢铁生产调度问题的优化。针对钢铁行业的混合流水车间问题,当前主要应用的算法包括动态规划、改进候鸟优化算法、遗传算法、分布式车间流水方法、改进粒子群优化算法等,这些算法存在复杂度高、控制参数过多且复杂、可移植性低、目标优化函数收敛慢等问题。对于由不同钢材生产场景的差异导致的算法参数微调代价过大,不能满足实际生产运用中的各种不确定性的因素。
4.现在的遗传算法是解决混合流水车间问题的一大重要方法,是一种模拟自然选择和生物进化过程的智能优化算法,算法的主要步骤是求出个体适应度,按照一定的规则进行选择、交叉、变异的过程,最终选择符合要求的的种群,即获得解决问题的较优解,但此算法目前存在着不能及时利用网络的反馈信息,获得目标方案训练需较多时间、算法并行机制能力不做,搜索速度慢、不能很好的解决大规模的计算问题。


技术实现要素:

5.本发明的目的在于:为了解决上述传统调度算法并行能力不足、算法收敛速度慢、可移植性低、不可用于大规模计算等技术问题,本发明提供了一种基于细胞型膜计算模型求解混合流水车间调度的方法。
6.本发明采用的技术方案如下:
7.一种基于细胞型膜计算模型求解混合流水车间调度的方法,包括以下步骤,
8.步骤1:从车间生产任务表中获取待加工工件的数量n和加工工序c、以及各工件工序的具体加工时间p;
9.步骤2:获取车间生产线的相关信息,设置生产信息表,包括生产线适应的工序、每工序对应的并行机器数量、生产线的任务序列、已加工的统计时间;
10.步骤3:设置细胞型膜计算优化算法的相关参数,定义适应度函数;
11.步骤4:编码操作,即产生各膜的初始对象;已知目前有n个工件待加工,将工件按照1到n顺序编号,编码方式采用工件编号随机全排列,编码代表工件被处理的优先级,当有空闲机器时且满足加工条件时,优先考虑加工编码位置考前的工件;即将随机编码产生的
这个序列作为一个向量,为各膜的初始化对象,可以根据模型设定的膜对象数量多次随机编码;
12.步骤5:解码操作,用于求解初始化编码序列、各膜应用进化规则后的编码序列、各膜应用交流规则编码序列,按照先完工先加工的规则,求出最后一个工件最后一道工序的加工时间,再求出每个膜对象的适应度,最后通过解码求出每个膜对象完成工件的最大加工时间,从而求出每层膜的适应度函数值,用于后续规则;
13.步骤6:各膜应用进化规则;所有膜都单独应用进化规则,此进化规则包括选择规则、交叉变异规则,达到指定的代数;
14.步骤7:各膜应用交流规则;所有膜都应用于进化规则后,各膜应用交流规则将膜内最好或者较好的对象送入包含该膜的外层膜,直到达到指定的交流代数;
15.步骤8:表层输出最好的对象,得到调度顺序,调度结束。
16.进一步地,所述步骤3具体包括,
17.步骤3.1:随机指定细胞型膜计算每层膜中包含的膜对象个数,最大进化的代数,最大交流的代数,最大以及最小的变异概率;
18.步骤3.2:适应度函数定义为fit=1/makespan,makespan为加工最后一个工序完工时间的最小值,即适应度函数为最大完工时间的倒数值,从定义可以看出,完工时间越少,适应度值越高,该膜对象选为下一代的概率越大。
19.进一步地,所述步骤5具体包括,
20.步骤5.1:定义存储该膜对象最大完工时间的变量,即将一个编码序列作为所有待加工工件的加工优先级别,按照先加工先完工规则加工所需最大加工时间totaltime,定义三个与加工工件数量相等的一维数组temp1,temp2,temp3,定义二维数组machine,用于存储第几道工序第几台并行机的统计时间;
21.数组temp1用于暂时存储当前编码序列,即存储当前的所有待加工工件的加工优先级别,数组temp2用于存储所有工件加工一道工序后的完工时间,temp3用于存储将temp2中各工件加工时间按照从小到大排序的数组;
22.步骤5.2:循环遍历工序,利用三个数组的依次更新,更新规则为:当要进行下一道加工工序时,temp2中存储的即相当于上一道工序所有工件的完工时间,按照先完工先加工规则,将temp2中完工时间从小到大排序,利用中间数组使得temp1存储的加工顺序进行相应的变化,将完工时间小的工件编码存在前面,同时将排序完后的temp2值赋值给temp3,从而模拟工件的依次加工过程,temp2继续用于存储下一道工序所有工件完工时间,使用二维数组machine记录执行所有工序对应的并行器的加工时间,按照机器开始时间加上加工该工件工序的时间规则累加;
23.步骤5.3:定义totaltime,赋值为0,用于存储按照该序列加工完成需要的最大完工时间;
24.步骤5.4:循环遍历所有并行机器,比较最后一道工序机器的累计时间,最大时间就是该流程的加工时间;
25.步骤5.5:将记录工件和机器加工时间的开始时间、结束时间、机器统计时间的三个数组进行清零,用于记录下一次的膜对象的加工时间统计;
26.步骤5.6:将总时间赋值给makespan变量,利用makespan取倒数,求得该膜对象得
适应度值;存储在fit数组的相应位置。
27.进一步地,所述步骤5.2具体包括,
28.步骤5.2.1:循环遍历所有工件,比较所有机器的当前工作时间,找出最空闲的机器,便于进行新的工件生产,获得每个工件该工序的完工时间,存储在temp2中;
29.步骤5.2.2利用中间数组,将temp1数组的内容赋值到中间数组;
30.步骤5.2.3根据temp2存储的工件完工的时间从小到大进行排序,同时同步变换中间数组的序列;
31.步骤5.2.4利用中间数组更新temp1的值,将temp2的数据按照从小到大复制到temp3中;
32.步骤5.2.5继续循环,进行下一道工序。
33.进一步地,所述步骤5.2.1具体包括,
34.步骤5.2.1.1记录工序1的第一台并行机器的当前工作时间,与其他执行工序1的机器相互比较,找出时间最小的可执行工序1的并行机器,通过两层循环,也将找出可执行工序1到i的最小时间的并行机器;
35.步骤5.2.1.2按照顺序提取temp1中的工件号,对工件进行加工;
36.步骤5.2.1.3定义当前待加工工件的当前工序的开始加工的时间为可执行该工序的并行机器的当前时间值和该工件的上一道工序完工时间的最大值;
37.步骤5.2.1.4累计开始时间和该工件该道工序所需要花费的时间,将该值赋值给存储工件完工的数组;
38.步骤5.2.1.5将每个工件的完工时间赋值给数组temp2;
39.步骤5.2.1.6继续循环,找出用于加工该工序空闲的机器,加工下一个工件。
40.本发明的有益效果如下:
41.1.膜计算系统是从类似生物组织、器官或神经网络等细胞群的结构、功能和协作中抽象出来的优化理论计算模型,是一类具有分布式数据处理能力的动态并行计算系统。随着膜计算的逐步发展,越来越多的成熟的算法与之结合,大幅度提高原有算法的性能,应用于更多的生活场景。将其中经典的细胞型膜计算优化算法用于钢铁行业的混合流水车间作业调度问题,控制简单,节约人力物力,能够帮助车间在一定时间范围内确定工件加工顺序的较好安排,获得局部最优解。
42.2.本调度方法是基于细胞型膜计算,主要的算法流程除应用选择、交叉、变异规则之外,在各层膜之间应用交流规则,大大提高算法的并行性,搜索可行方案速度更快,同时算法收敛速度提高,可以应用于较大规模的计算。
附图说明
43.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,本说明书附图中的各个部件的比例关系不代表实际选材设计时的比例关系,其仅仅为结构或者位置的示意图,其中:
44.图1是本发明的流程示意图;
45.图2是本发明中cmcoa的结构示意图。
具体实施方式
46.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,即所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
47.下面结合图1、图2,对本发明作详细说明。
48.实施例1
49.一种基于细胞型膜计算模型求解混合流水车间调度的方法,步骤1:从车间生产任务表中获取待加工工件的数量n和加工工序c、以及各工件工序的具体加工时间p;步骤2:获取车间生产线的相关信息,设置生产信息表,包括生产线适应的工序、每工序对应的并行机器数量、生产线的任务序列、已加工的统计时间;步骤3:设置细胞型膜计算优化算法的相关参数,定义适应度函数;步骤4:编码操作,即产生各膜的初始对象;已知目前有n个工件待加工,将工件按照1到n顺序编号,编码方式采用工件编号随机全排列,编码代表工件被处理的优先级,当有空闲机器时且满足加工条件时,优先考虑加工编码位置考前的工件;即将随机编码产生的这个序列作为一个向量,为各膜的初始化对象,可以根据模型设定的膜对象数量多次随机编码;步骤5:解码操作,用于求解初始化编码序列、各膜应用进化规则后的编码序列、各膜应用交流规则编码序列,按照先完工先加工的规则,求出最后一个工件最后一道工序的加工时间,再求出每个膜对象的适应度,最后通过解码求出每个膜对象完成工件的最大加工时间,从而求出每层膜的适应度函数值,用于后续规则;步骤6:各膜应用进化规则;所有膜都单独应用进化规则,此进化规则包括选择规则、交叉变异规则,达到指定的代数;步骤7:各膜应用交流规则;所有膜都应用于进化规则后,各膜应用交流规则将膜内最好或者较好的对象送入包含该膜的外层膜,直到达到指定的交流代数;步骤8:表层输出最好的对象,得到调度顺序,调度结束。
50.本发明的工作原理/工作过程为:考虑在一条流水线上进行生产。n个工件包含c个工序的流水线上进行加工,各工件不同工序的加工时间已知。每个工件按约定的生产工艺逻辑(工序顺序)进行加工。对于每个工序至少存在一台具备执行该工序能力的机器,并且至少有一个工序包含多台并行机器(能够同时执行某一相同工序任务的多台机器)。基于细胞型膜计算优化算法的车间调度方法思想包括:随机产生工件加工顺序的组合,通过该算法先产生对象(即产生工件的加工顺序序列);根据该算法的选择规则、交叉变异规则以及交流规则共三个顺序计算过程,对工件的加工顺序以及工件工序在机器上的分配情况进行优化确定,使得最大完工时间极小化。
51.实施例2
52.进一步地,本发明模型前提需按照一定的规则给所有待加工工件产生多种编码序列,根据编码序列确定工件加工优先级别,设按照级别加工的当前工件有c道工序(工序依次从小到大按数字进行编号),首先加工工序1,在空闲机器上按照编码中工件优先级别依次加工相应的工件;加工工序2时,按照先完工先加工的原则,在空闲机器上优先加工当前可用工件(已知该工件在上一工序完成加工)。依次类推直到最后一个工件在最后一个工序结束。以上流程将以下列递推过程和目标函数进行详细描述。
53.本发明的工作原理/工作过程为:符号释义如下:
[0054][0055][0056]
递推过程如下:
[0057]
c(i1,1)=p(1,1)
ꢀꢀ
(式1)
[0058]
c(ik,1)=c(i
k-1
,1) p(k,1)
ꢀꢀ
(式2)
[0059]
c(i1,j)=c(i1,j-1) p(1,j)
ꢀꢀ
(式3)
[0060]
c(ik,j)=max{c(i
k-1
,j),c(ik,j-1)} p(k,j)
ꢀꢀ
(式4)
[0061]
式1表示工件1的工序1的加工时间等于该工件在可执行工序1的并行机器i上的完工时间(工件1代表是第一个被加工的工件)。
[0062]
式2表示工件1的工序k完工的时间等于该工件前一工序(工序k-1)完工时间加上当前工序的加工时间;
[0063]
式3表示工件j的工序1的完工时间等于同一机器上的前一已加工工件(工件j-1)的工序1的完工时间加上工件j的工序1的加工时间;
[0064]
式4表示工件j在工序k的完工时间等于工件j的前一工序(工序k-1)的完工时间或同一机器上的前一已加工工件j-1的完工时间中的最大值加上工件j在工序k的加工时间。
[0065]
目标函数为:makespan=min{c(mc,n)}
ꢀꢀ
(式5)
[0066]
式5表示求最后一个工件最后一个工序完工时间的最小值。
[0067]
1.本发明算法-细胞型膜计算优化算法(cmcoa)
[0068]
细胞型膜计算优化算法是一种人工智能方法,主要构建类似生物体细胞膜的结构并抽象其内部物质交换等行为模型,最终选出膜内最优的对象。首先说明算法依赖的模型结构及规则。
[0069]
(1)cmcoa的结构
[0070]
cmcoa的结构是由各种膜相互嵌套组成类似于生物体中的细胞结构。此结构主要包括表层膜、中间膜和基本膜。表层膜主要与外界环境接触,同时将最优的对象输出到外部
环境中;基本膜内部没有任何膜,基本膜之间是相互独立的;中间膜在结构上是位于表层膜和基本膜之间,其内部可由中间膜本身嵌套或者只有基本膜。各层膜可以包含不同的对象数目,同时不同类型膜之间可以通过交流规则交换对象,同类型膜可以通过进化规则选出该膜较优的对象。
[0071]
cmcoa的结构可以用“[]”嵌套表示,每个“[]”代表一个膜,其具体表示如下:
[0072]
μ=[1[2[4]4[5]5[6]6]2[3[7]7[8]8]3]1ꢀꢀ
(式6)
[0073]
式6中μ为cmcoa的结构,数字代表膜的编号。此cmcoa的结构μ可以如图2表示:
[0074]
膜1为表层膜,膜2、3都是中间膜,膜4、5、6、7、8都是基本膜,表层膜1之外为环境,每个膜内部为区域。
[0075]
(2)cmcoa的对象
[0076]
已知目前有n个工件待加工,将工件按照1到n顺序编号,编码方式采用工件编号随机全排列,编码代表工件被处理的优先级,当有空闲机器时且满足加工条件时,优先考虑加工编码位置靠前的工件。即将随机编码产生的这个序列作为一个向量,为各膜的初始化对象,可以根据模型设定的膜对象数量多次随机编码。
[0077]
编码方式注解:例如目前有7个工件,采用随机全排列的方式,可以产生的组合有7!=20160个,若现在产生的一个序列为1465273,将该序列看作一个向量[1465273]进行后面的运算,那么当有空闲机器且满足加工条件时,优先考虑加工1号工件。根据细胞型膜计算设置的初始化膜对象个数产生相等的全排列序列。
[0078]
(3)适应度函数
[0079]
适应度函数为fit函数,fit函数表达式为:
[0080]
fit=1/makespan
ꢀꢀ
(式7)
[0081]
makespan为加工最后一个工序完工时间的最小值,即适应度函数为最大完工时间的倒数值,从定义可以看出,完工时间越少,适应度值越高,该膜对象选为下一代的概率越大。
[0082]
(4)cmcoa的进化规则
[0083]
cmcoa的进化规则包括选择规则、交叉变异规则。选择规则主要是从膜内对象集中选择适应度值较高的对象作为下一代,其主要目的是增强收敛性以及提高计算效率,而交叉变异规则主要在膜内产生新的对象,以提高膜内对象的多样性,避免出现过早收敛的现象。
[0084]
1)选择规则
[0085]
该项规则指下一代的个体(对象)按照一定机制从其父代种群(对象集)选取,在父代种群中每个个体(对象)选取的概率与该个体的适应度值有关,即若个体的适应度越大,则此个体被选为下一代种群的概率就越大,反之概率越小。选择规则能够避免遗传基因信息的丢失,并增强全局收敛性以及提高计算效率。cmcoa的选择规则具体表示如下:
[0086]
fathergeneration:
[0087]
f:p
rand
≤p
sj
,
[0088]
式8中o
kj
为膜k中的对象j,f为对象o
kj
被选入下一代的条件,p
rand
为一个[0,1]的随机值,p
sj
为对象o
sj
被选取的概率值,fitr、fiti(1≤r≤j,1≤i≤nk)分别为对象o
kr
、对象o
ki
的适应度值,nk为膜k中对象总数。
[0089]
2)交叉变异规则
[0090]
在cmcoa中,交叉变异规则主要是在膜内产生新的个体(对象)。交叉指两个对象对应的向量进行算术交叉,是产生新个体的主要方法,即两个个体通过交叉规则后将产生两个新个体,其主要目的是提高cmcoa中所有膜内种群的多样性。变异指单个对象对应的向量发生数值变化,其主要目的是提高局部搜索最优解的能力,同时避免cmcoa过早陷入局部最优解。由于每个对象都对应一个n(n代表工件总数)维的实数向量,同时为了方便计算,利用线性变换的方法实现cmcoa的交叉变异规则。cmcoa的交叉和变异具体表示如下:
[0091]
fc:f
mi
:p
mrand
≤p
mh
[0092]
o'
ki
=αo
ki
(1-α)o
kj
o'
kj
=αo
kj
(1-α)o
ki
o'
kh
=o
kh
β(1,1,1,1,

,

)
ꢀꢀ
(式9)
[0093]
式9中o
ki
、o
kj
、o
kj
分别为膜k中已有的对象i、对象j、对象h,o

ki
、o

kj
、o

kh
分别为膜k中新生成的对象,fc,fm分别为膜k内个体进行交叉、变异的条件,p
ci
、p
cj
分别为膜k中对象o
ki
、o
kj
对象进行交叉的概率,p
mh
为膜k中对象o
kh
进行变异的概率,p
crand
、p
mrand
分别为随机生成数并且取值范围为[0,1],α、β都是给定常数并且取值范围也在[0,1]内。个体的交叉概率和变异概率直接影响到cmcoa的收敛速度,这些概率值可以依据种群(对象集)的多样性和进化代数进行自适应调整,这种调整策略能够避免cmcoa的过早地达到局部最优解,而且改善了cmcoa的后期收敛速度。式9中交叉概率p
ci
、p
cj
以及变异概率p
mh
具体计算表达式如下:
[0094]
(g=i,j)
[0095]
a=9.903438
[0096][0097]
式中p
cg
为膜k中对象o
ki
的交叉概率p
ci
或者对象o
kj
的交叉概率p
cj
,p
mh
膜k内对象o
kh
的变异概率,rc为计算膜k内所有对象的交叉概率的参数并且参数rc的取值范围在[p
cmin
,p
cmax
],p
cmax
、p
cmin
分别为膜k内对象进行交叉的最大、最小概率并且此两个概率值为给定常数,rm为计算膜k内所有对象的变异概率的参数并且参数rm的取值范围在[p
mmin
,p
mmax
],p
mmax
、p
mmin
分别为膜k内对象进行变异的最大、最小概率并且此两个概率值也为给定常数,fit
max
为膜k内所有对象的适应度值的最大值,fit
avg
为膜k内所有对象的适应度值的平均值,fitg为膜k内对象o
ki
或对象o
kj
的适应度值,fith为膜k内对象o
kh
的适应度值,h为膜k内种群(对象集)的信息熵并且其取值范围在[0,log2nk],m为在进化代数t时膜k内对象的类别数,相同的对象都归为同一类,t为膜k内当前进化的代数,nd为类别d中对象总数,nk为膜k内所有对象的总数,pd为类别d出现的概率并且此概率由类别d的频率值估算,fit
l
1≤l≤nk为膜k内对象o
kl
的适应度值。
[0098]
(5)cmcoa的交流规则
[0099]
区别于遗传思想,cmcoa除选择、交叉、变异以外,另具备交流规则,具体指将膜内较好的对象送到包含其的外层膜。在cmcoa中,所有膜先各自利用进化规则选出较好对象,然后基本膜将其膜内较好对象送入中间膜(基本膜的外层膜),接着中间膜将其膜内较好的对象送入表层膜(中间膜的外层膜),最终表层膜将其膜内最优的对象送到外部环境。特别地,基本膜和外层膜是模拟生物细胞总是选择能量最高的微粒进出细胞膜的过程,而中间膜的规则是根据能量分布函数原理选择较好对象进出此中间膜。交流规则具体表示如下:
[0100]
i=1,4,5,6,7,8f1:fitj≥fiti(1≤i≤nk)
[0101]
i=2,3f2:orfitj≥fiti(1≤i≤nk)
ꢀꢀ
(式11)
[0102]
式中o
kj
为膜k中的对象j,f1为表层膜和基本膜内的对象进行交流的条件,fitj、fiti分别为对象o
kj
、对象o
ki
的适应度值,nk为膜k内所有对象的总数,此条件说明表层膜和基本膜只将最好的对象(对应的适应度值最大)送入包含其的外部环境或者外层膜,f2为中间膜内的对象进行交流的条件,p
rand
为随机生成数并且范围在[0,1]内,p
rj
为在中间膜k中对象o
rj
的交流概率,即对象o
rj
被送出的概率值,此概率值参照物理学中能量分布函数进行计算,fit
old
为上一代膜k内所有对象中最大的适应度值,此条件表明中间膜不仅将最好的对象送入表层膜,同时将该膜内较好的对象也送入表层膜。
[0103]
在cmcoa的交流规则中,表层膜、基本膜的交流规则比较简单,只需将膜内最大适应度值所对应的对象送出膜外。但是,中间膜的交流规则比较复杂,除了将此膜内最优对象(对应的适应度值最大)送出膜外,还要将较好的对象也送出膜外。这些较好对象主要由三个值来判定,这些值分别为此对象自身的适应度值、上一代该膜内最大的适应度值以及此对象被送出的概率值。在式11中,上述三个值分别对应fitj、fit
old
、p
rj
,前两个适应度值可以根据式5计算获得,而p
rj
主要参照物理学中能量分布函数进行计算。此能量分布函数具体表示如下:
[0104]
pr=exp((e
f-e)/(kbt))
ꢀꢀ
(式12)
[0105]
式12中pr为电子占有能量e的概率,ef为费米能级,kb为boltzmann常数,t为热力学温度。此外,式12左边能量分布概率当作对象不被送出的概率,同时利用对象的适应度值替换能量值并且适应度越大,能量值就越大,利用当前进化代数替换热力学温度,从而可以得出中间膜k中对象o
kj
的交流概率p
rj
,具体表达式如下:
[0106]
p
rj
=1-exp((fit
j-fit
old
)/g)
ꢀꢀ
(式13)
[0107]
式13中fitj为中间膜k中对象o
kj
的当前适应度值,fit
old
为上一代膜k内所有对象中最大的适应度值,g为当前的交流代数。在式11中,交流条件f2表明不仅将膜k内最好的对象送出膜外,而且若对象的适应度值大于上一代中最大适应度值,则此对象将被送出膜外,
或者若随机概率值p
rand
小于或等于对象的交流概率,则此对象也将被送到膜外,反之此对象将被束缚在膜内。此交流规则提高了膜内对象的多样性,同时避免cmcoa过早陷入局部最优解。
[0108]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

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

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

相关文献