本发明涉及一种基于工业大数据的柔性作业车间动态调度方法
背景技术:
调度在制造系统中具有重要的作用,调度质量将会影响制造企业自身的竞争力。为车间制定科学合理的调度方案可以提高生产效率、降低过程成本、缩短产品生命周期,同时能够保证按时保质地交货。柔性作业车间由于其具有灵活的工艺路线与对市场需求的快速应变能力,可以很好的满足多品种、小批量的生产需求,因此成为了一种被广泛使用的生产模式。柔性作业车间动态调度是在静态调度的基础上考虑实际生产环境的扰动,更加符合实际生产环境,所以更加具有研究意义。
随着产品需求不断向个性化转变,制造工艺更加多样,实际调度问题也变得更加复杂,制造企业对车间调度问题的解决方法在实际可操作性、计算效率以及对车间扰动的实时响应能力等方面都提出了更高的要求。优先调度规则是一种简单的启发式规则,它的计算效率高、实际可操作性强且可用于实时调度,适用于复杂动态的调度环境。但优先调度规则的性能受到实际环境变化的影响,单一的调度规则不能在所有的扰动环境中都有较好的调度性能。为了满足实际作业车间调度的需求,一种可行的思路是从调度相关历史数据中挖掘关于调度规则的调度知识来指导实际车间调度活动。通过数据挖掘来解决调度问题的研究主要分为结合已有优先调度规则的方法与从调度相关历史数据中挖掘调度规则的方法。
在结合已有的优先调度规则方面,wangshuang-xi等在(ahybridknowledgediscoverymodelusingdecisiontreeandneuralnetworkforselectingdispatchingrulesofasemiconductorfinaltestingfactory,2005)针对半导体行业,提出了一种结合决策树与神经网络从调度相关历史数据中挖掘优先调度规则选择机制的方法,该选择机制可以得到当前环境下最适合的优先调度规则。shiuey.r.等在(data-mining-baseddynamicdispatchingruleselectionmechanismforshopfloorcontrolsystemsusingasupportvectormachineapproach,2009)提出一种利用支持向量机(supportvectormachine,svm)从调度相关历史数据中挖掘优先调度规则选择机制的方法,并以此来做出实时调度决策。mouelhi在(traininganeuralnetworktoselectdispatchingrulesinrealtime,2009)等提出了一种结合神经网络的调度规则选择方法,该方法通过神经网络从仿真产生的调度相关历史数据中挖掘调度规则实时选择方法。
优先调度规则仅通过少量信息来做出调度决策,这可能导致调度结果不尽如人意,因此从调度相关历史数据中提取新的调度规则是另一种思路。lix等在(discoveringdispatchingrulesusingdatamining,2005)提出一种利用决策树从调度相关历史数据中得到全新调度规则的方法,并通过实验证明了提取的调度规则能很好地拟合原调度方案。sigurdurolafsson等在(learningeffectivenewsinglemachinedispatchingrulesfromoptimalschedulingdata,2010)提出了一种两阶段的调度知识学习方法,首先学习如何从调度过程数据中得到适合挖掘的训练实例,再对这些训练实例进行调度规则的挖掘。王成龙等在(作业车间调度规则的挖掘方法研究,2015)提出了一种结合petri网建模的分支定界算法与决策树算法的调度规则挖掘方法,提取的调度规则可用于指导静态作业车间调度。
综上所述,目前关于从调度相关历史数据中挖掘调度规则的方法主要针对的是车间静态调度问题上,将其运用于柔性作业车间动态调度问题的较少。此外,上述方法所使用的调度相关历史数据偏向于理论数据,然而随着智能感知设备在车间层的大量使用,车间开始向智能化发展,车间调度相关历史数据呈现出规模大、价值低、连续采样、高维等工业大数据的特点。
技术实现要素:
为了克服已有柔性作业车间动态调度方法实际可操作性不高、计算效率满与对车间扰动的实时响应能力不足的问题,本发明提供一种实际可操作性强、计算效率高、可以对车间扰动做出实时响应的柔性作业车间动态调度方法。
本发明解决其技术问题所采用的技术方案是:
一种基于工业大数据的柔性作业车间动态调度方法,所述柔性作业车间动态调度方法包括以下步骤:
步骤一,数据采集:使用hadoop生态体系下的数据采集工具从现有的信息系统中采集与调度相关的历史数据,并将其存于hdfs文件系统中。
步骤二,数据整合:通过数据仓库工具hive使用sql语句对hdfs文件系统中的调度数据集合dh以调度方案为单元进行划分,即将一次调度方案在执行中产生的调度相关历史数据划分到一起。
步骤三,数据转化:使用spark将整合的数据中转化为训练实例的形式,便于数据挖掘算法进行调度规则挖掘。
步骤四,数据筛选:从最大完工时间、总拖期时间、机器总负荷三个指标对历史调度方案进行考量,筛选得到表现良好的调度方案在执行中产生的调度相关历史数据集合。具体包括:
步骤4.1:在最大完工时间指标上,以同种情况下只使用spt规则生成的的调度方案的最大完工时间作为筛选标准。
步骤4.2:在总拖期时间指标上,以同种情况下使用edd规则结合spt规则完成相同情况下的调度任务的总延期时间作为筛选标准。
步骤4.3:在机器总负荷指标上,以同种情况下结合lmwt与spt规则完成调度任务的机器总负荷作为筛选标准,能同时满足这三个指标的调度方案在执行中产生的调度数据集合,将会作为调度规则挖掘算法的输入。
步骤五;基于扰动属性的聚类:采用dbscan聚类方法,对筛选后的调度相关历史数据,以调度方案为单元(即一个调度方案产生的数据作为一个对象),进行基于扰动属性的聚类。具体包括:
步骤5.1:对方案执行时的扰动数据进行数据标准化处理,如某扰动属性在各个方案中的数据为x1,x2,x3...,xn,则它们需要经过如公式(1)变换。
式(1)中
步骤5.2:确定dbscan算法的参数领域半径eps,与核心对象领域半径内至少包含的对象个数minpts。
步骤5.3:随机找出一个核心对象p,创建一个p作为核心对象的新簇。复地寻找从p直接密度可达的对象,将其归入簇中。
步骤5.4:重复步骤5.3,直到没有新的点可以被添加到任何簇时,该过程结束。
步骤六,随机森林调度规则挖掘:采用改进的随机森林算法,从聚类后每个簇中分别挖掘得到解决工件选择机器问题的森林调度调度规则1与解决空闲机器选择加工工件问题的随机森林调度2。具体包括:
步骤6.1:对于每个聚类后的簇,从簇中的中有放回地抽取训练实例,形成k个新训练实例集合,用于构建决策树。
步骤6.2:随机选择m个特征属性,并计算最佳分裂方式,分别训练得到k棵决策树。
步骤6.3:使用簇中未被选择的训练实例,测试决策树的分类表现。
步骤6.4:判断是否存在相似的决策树,若存在相似决策树,则保留表在测试中现好的决策树,形成了随机森林。
步骤6.5:通根据贝叶斯投票机制,计算每棵决策树的权值w,h,得到森林调度调度规则1与随机森林调度2。
步骤七,调度规则使用:通过所挖掘随机森林调度规则指导柔性作业车间动态调度。具体包括:
步骤7.1根据解决的问题为工件机器选择问题,还是空闲机器选择加工工件问题,找到与当前柔性作业车间的扰动环境所属的簇所对应的随机森林调度规则1或随机森林调度规则2。
步骤7.2,根据所选随机森林调度规则,通过两两比较选出最优的方法,在候选机器集合m或候选工件集合j中选出最合适的工件或机器。
本发明的技术构思为:车间调度相关历史数据呈现出规模大、价值低、连续采样、高维等工业大数据的特点,故首先结合大数据据完成调度相关历史数据的预处理。图2给出了结合大数据技术的数据预处理模型。数据预处理柔性作业车间动态调度问题是在有扰动的环境下解决工件的机器选择问题和空闲机器的工件选择问题,因此采集的数据集合dh分为三部分:d1为调度方案制定时与扰动相关的系统扰动信息;d2为工件的某道工序选择加工机器时,当前可以加工这道工序的机器集合中的每台机器的状态信息;d3为空闲机器需要在等待队列中选择工件进行加工时,当前队列中的每个工件的状态信息。调度数据集合dh中的数据形式混乱,无法直接用于接下来的数据筛选、聚类以及调度规则挖掘工作,需要通过数据整合和转化来整理调度数据集合dh中的数据。在调度数据集合dh中隐含了反映实际调度环境特点及调度知识的大量有效信息,同时也伴随着许多无用的或是错误的规律或模式。故采用图3的多指标数据筛选机制,从最大完工时间、总拖期时间、机器总负荷三个角度对历史调度方案进行考量,保留满足三个指标的调度历史方案执行中所产生的数据。
以随机森林算法作为调度规则的挖掘算法,最终得到的调度规则为此算法构建的随机森林,本质上为多棵经过训练的c4.5决策树,调度规则的调度性能取决于决策树的分类性能,调度规则的计算效率与复杂程度取决于决策树的分支数量。通过dbscan聚类对较优调度数据db进行合理的划分,区分出在不同扰动环境下做出的调度决策所产生的数据,再从划分的每个区域中分别得到针对不同扰动环境的调度规则,可以增强所得随机森林调度规则中决策树的分类性能并减少分支数量,从而使得调度规则复杂程度更低,计算效率更高,调度性能更好。
通过随机森林算法从调度历史相关数据中学习调度规则f,f其实是对真实调度规则y的一种估计
本发明的有益效果主要表现在:从具有工业大数据特点的调度相关历史数据中挖掘调度规则来指导调度的方法作为主体框架,建立结合大数据技术的数据预处理模型,提高了数据预处理的速度与准确性,建立了基于扰动属性的聚类机制,减小了调度规则复杂程度,提高了调度规则的计算效率更高与调度性能,建立了基于改进随机森林算法的调度挖掘模型,提高了调度规则的泛化能力与调度性能。
附图说明
图1是本发明的调度规则挖掘整体架构。
图2是本发明的结合大数据技术的调度数据预处理模型。
图3是本发明的多指标数据筛选机制。
图4是本发明的改进的随机森林算法挖掘调度规则的流程图。
图5是本发明的使用基于工业大数据的柔性作业车间动态调度方法所得的调度方案。
具体实施方式
参照图1-图5,一种基于工业大数据的柔性作业车间动态调度方法,总体框架参照图1,具体分为三部分:第一部分,结合大数据技术的调度数据预处理模型,参照图2,其具体分为数据采集、数据整合、数据转化与数据筛选;第一部分,基于扰动属性聚类策略;第三部分,基于改进随机森林算法的调度规则挖掘模型。其总体上的技术步骤如下:步骤一,数据采集:使用hadoop生态体系下的数据采集工具sqoop与flume,从mes、erp、scada等现有的信息系统中采集与调度相关的历史数据,并将其存于hdfs文件系统中。采集数据包括三部分dh={d1,d2,d3}:d1为调度方案制定时与扰动相关的系统扰动信息;d2为工件的某道工序选择加工机器时,当前可以加工这道工序的机器集合中的每台机器的状态信息;d3为空闲机器需要在等待队列中选择工件进行加工时,当前队列中的每个工件的状态信息。
步骤二,数据整合:通过数据仓库工具hive使用sql语句对hdfs文件系统中的调度数据集合dh以调度方案为单元进行划分,即将一次调度方案在执行中产生的调度相关历史数据划分到一起。
步骤三,数据转化:使用spark将整合后数据中的d2与d3部分转化为训练实例的形式,便于数据挖掘算法进行调度规则挖掘。具体包括:
步骤3.1:对于采集的调度数据集合dh的d2部分,将某历史调度方案中实际选择的机器m1视为最合适的机器,将其与其他可加工此工序的备选机器集合{m2,m3...}中的机器一一比较形成训练实例。
步骤3.2:对于采集的调度数据集合dh的d3部分,将某历史调度方案中实际选择的工件j1视为最合适的机器,将其与其他等待加工的工件集合{j2,j3...}中的工件一一比较形成训练实例。
步骤四,数据筛选:从最大完工时间、总拖期时间、机器总负荷三个指标对历史调度方案进行考量,筛选得到表现良好的调度方案在执行中产生的调度相关历史数据集合db。具体包括:
步骤4.1:在最大完工时间指标上,以同种情况下只使用spt规则生成的的调度方案的最大完工时间作为筛选标准。只使用spt规则是指工件选择加工最快的机器与空闲机器选择加工时间最短的工件。最大完工时间满足此指标的调度方案进入步骤4.2,不满足则淘汰。
步骤4.2:在总拖期时间指标上,以同种情况下使用edd规则结合spt规则完成相同情况下的调度任务的总延期时间作为筛选标准。spt+edd规则是指是指工件选择加工最快的机器与空闲机器选择交货期最早的工件。总拖期时间满足此指标的调度方案进入步骤4.3,不满足则淘汰。
步骤4.3:在机器总负荷指标上,以同种情况下结合lmwt与spt规则完成调度任务的机器总负荷作为筛选标准,lmwt+spt规则是指是指工件选择空闲时间最长的机器与空闲机器选择加工时间最短的工件。能同时满足这三个指标的调度方案在执行中产生的调度数据集合,将会作为调度规则挖掘算法的输入。
步骤五;基于扰动属性的聚类:采用dbscan对db以调度方案为单元(即一个调度方案产生的数据作为一个对象),根据db中的方案制定时的系统扰动属性(d1部分)进行基于扰动属性的聚类。具体包括:
步骤5.1:对d1部分数据标准化处理,如某扰动属性在各个方案中的数据为x1,x2,x3...,xn,则它们需要经过如公式(1)变换。
式(1)中
步骤5.2:确定dbscan算法的参数领域半径eps,与核心对象领域半径内至少包含的对象个数minpts。
步骤5.3:随机找出一个未被处理(没有归为某个簇或者标记为噪声)的核心对象p(领域半径内包含的对象个数不小于minpts),建立新簇c,将p邻域半径eps内的所有对象加入候选集n。
步骤5.4:随机找出一个候选集n中尚未被处理的对象q。若q为核心对象,则将q邻域半径eps内未被处理的且未加入到n的对象加入到n中。如果q未归入任何一个簇,则将q加入c。
步骤5.5:重复步骤5.4,直到n为空。
步骤5.6:重复步骤5.3、5.4、5.5,直到没有新的对象可以被添加到任何簇时,该过程结束
步骤六,随机森林调度规则挖掘:采用改进的随机森林算法,从聚类后每个簇中分别挖掘得到解决工件选择机器问题的森林调度规则1与解决空闲机器选择加工工件问题的随机森林调度2。具体包括:
步骤6.1:对于每个聚类后的簇,从簇中的d2(挖掘随机森林调度规则1)与d3(挖掘随机森林调度规则2)中有放回地抽取训练实例,分别形成k个新训练实例集合p1与p2,用于构建决策树。
步骤6.2:p1与p2分别从d2与d3中随机选择m个特征属性,并计算最佳分裂方式,分别训练得到k棵决策树t1与t2。
其中决策树构建过程为:
步骤6.2.1:创建根节点n。
步骤6.2.2:判断训练实例集合是否还有剩余训练实例,若没有则返回节点n,若有则下一步。
步骤6.2.3:判断训练实例集合剩余训练实例的调度决策是否都为c,若是则返回节点n,并标记为类c,若有则下一步。
步骤6.2.4:判断生产属性列表是否为空,空则标记为样本中出现最多的类,否则下一步。
步骤6.2.5:检查属性类表中的属性是否为连续性,连续属性将通过二分法,得到属性增益g(d,a)最大的属性分离方式。(通过二分法可以将属性的所有属性值分为两部分,这一共有n-1种划分方法,二分法的划分阈值为选择二分处相邻两点的平均值。信息增益计算方式如公式(2)、(3)、(4))。
g(d,a)=h(d)-h(d|a)(2)
式(2)中g(d,a)表示属性a的信息增益;式(3)中h(d,a)类别信息熵;式(4)中h(d|a)表示条件熵;此外,d表示训练实例数据集,|d|表示d的训练实例数量,而d具有k个类别ck,k=1,2;|ck|表示在类别ck中的训练实例个数。d可以通过属性a将其划分为n个子集d1,d2,…,dn,|di|为di的训练实例个数。di中属于类ck的训练实例的集合为dik,|dik|为dik的训练实例个数。
步骤6.2.6:选择信息增益率最大的属性标记节点n,信息增益率计算公式如式(5)、(6),返回步骤6.2.2。
gr(d,a)=g(d,a)/h(a)(5)
式(5)中gr(d,a)表示信息增益率;h(a)表示分裂信息;其他符号含义同上。
步骤6.3:使用d2和d3中未被选择的训练实例,分别测试t1与t2中决策树的分类表现。
步骤6.4:计算t1或t2中决策树之间的相似度s,其计算公式如式(7),若决策树之间的相似度大于60%,则比较步骤6.3中的测试表现,保留表现好的决策树,形成了随机森林。
式(7)中dt1与dt2表示进行相似度计算的两棵决策树;k表示dt1与dt2对测试实例分类结果相同的次数;r1n与r2n表示第n次分类结果相同时,dt1与dt2用到的特征属性,c表示分类结果;当r1n=r2n时,即dt1与dt2用相同的特征属性得到相同的分类结果时,i(r1n.c,r2n.c)=1,否则为0,nt为测试实例的个数。
步骤6.5:通过贝叶斯投票机制,分别计算t1与t2中每棵决策树的权值w,h,计算公式如式(8)、(9),得到森林调度调度规则1与随机森林调度规则2。
式(8)、(9)中v代表此决策树对测试实例正确分类的次数;m表示对测试实例错误分类次数;
步骤七,调度规则使用:通过所挖掘随机森林调度规则指导柔性作业车间动态调度。具体包括:
步骤7.1根据解决的问题为工件机器选择问题,还是空闲机器选择加工工件问题,找到与当前柔性作业车间的扰动环境所属的簇所对应的随机森林调度规则1或随机森林调度规则2。
步骤7.2,根据所选随机森林调度规则,通过两两比较选出最优的方法,在候选机器集合m或候选工件集合j中选出最合适的工件或机器。
步骤7.2.1,对于工件机器选择问题,若m1,m2是m中两台机器,根据步骤7.1所选的随机森林调度规则1,计算得到随机森林调度规则中每棵决策树的选择结果,这些结果中包含了选择1和选择2(选择1代表前者m1合适,选择2代表后者m2合适)。对于空闲机器选择工件问题,若j1,j2是j中的两个工件,根据步骤7.1所选的随机森林调度规则2,计算得到随机森林调度规则中每棵决策树的选择结果,这些结果中包含了决策1和决策2(决策1代表前者j1合适,决策2代表后者j2合适)。
步骤7.2.2:通过贝叶斯投票机制得到每棵决策树加权后的选择结果wr,wr计算公式如式(10),并求得加权结果的平均值awr,若awr小于1.5表示前者m1或j1合适,若awr大于1.5表示后者m2或j2合适。
wr=wc+hr(10)
式(10)中c代表此决策树给出的分类结果;r代表所有决策树给出的分类结果的均值,w,h计算公式见式(8)、(9)。
实例:在某次调度任务中,需要加工工件jt1,jt2,...,jt8各100件,即10批,它们的交货期分别为20.0、22.0、14.0、21.0、19.0、22.0、18.0、23.0加工单位时间,工件的每道工序在各机器上的加工时间如表一。并且在时间为4时发生了机器故障,在jt1的第一道工序完成后发现它的第二道工序发生缺料,在时间为10时,工件的加工时间全部增加10%。
表一各工件加工时间表
通过基于工业大数据的柔性作业车间动态调度方法得到的调度方案如图5所示,图中横坐标表示时间,纵坐标表示机器,甘特图中的百分位数字表示工件类型,个位数字表示工序号。最终方案的最大完工时间为21.8加工单位时间,总拖期5.3加工单位时间,机器总负荷96.4加工单位时间。
采用专利方法可以顺利解决柔性作业车间动态调度问题,并且使用该方法挖掘的调度规则来指导柔性作业车间调度具有实际可作性强、计算效率高,无需对调度问题进行建模,能实时响应车间的扰动等特点。