1.一种基于工业大数据的柔性作业车间动态调度方法,包括以下步骤:
步骤一,数据采集:使用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)中 表示属性的均值;s表示为标准差;Y1,Y2,Y3...,Yn为标准化后的数据;
步骤5.2:确定DBSCAN算法的参数领域半径Eps,与核心对象领域半径内至少包含的对象个数MinPts;
步骤5.3:随机找出一个未被处理(没有归为某个簇或者标记为噪声)的核心对象p,核心对象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)。