[发明专利]一种自由单循环结构的过程挖掘方法在审
申请号: | 201710635987.8 | 申请日: | 2017-07-31 |
公开(公告)号: | CN107391715A | 公开(公告)日: | 2017-11-24 |
发明(设计)人: | 杜玉越;贺朝阳;王路;张福新;李鹏;刘伟 | 申请(专利权)人: | 山东科技大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06Q10/06;G06Q10/00 |
代理公司: | 青岛智地领创专利代理有限公司37252 | 代理人: | 陈海滨 |
地址: | 266590 山东省青*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种自由单循环结构的过程挖掘方法。该过程挖掘方法为解决平行结构中的短循环的挖掘的问题,在α算法的基础上,针对自由单循环的结构提出了αfsl算法。该算法重新定义了包含循环结构的日志的完备性,并在基本活动次序关系的基础上添加了新的循环次序关系。通过预处理日志,提取日志中重复出现的活动,列出重复活动的相邻关系,从中发现日志中存在的循环结构,以后期添加循环结构的方式来挖掘工作流过程模型。最后,本发明通过对某电脑维修公司的实例分析验证αfsl算法挖掘的有效性与正确性。 | ||
搜索关键词: | 一种 自由 单循环 结构 过程 挖掘 方法 | ||
【主权项】:
一种自由单循环结构的过程挖掘方法,其特征在于,包括如下步骤:s1基本概念的定义定义多重集合:设S是一个集合,一个S上的多重集合定义为一个函数Z:B(S)表示S上的所有多重集合组成的集合,一个多重集合由一个向量表示,代表一个自然数集合;定义序列:设S是一个集合,S*是S上所有有限序列组成的集合;定义迹:设A是活动集合,一条迹σ∈A*是一个活动的队列;定义事件日志:事件日志L是迹σ的多重集合,记为L∈B(A*);定义Petri网:四元组PN=(P,T;F,M)称为一个Petri网,当且仅当:(1)N=(P,T;F)为一个网;其中:P是一个有限库所集,T是一个对应事件日志中活动集合的有限变迁集,是一个有限弧集;(2)M:P→N称为网PN的一个标识,其中,mi为初始标识,mf为终止标识;(3)PN具有下面的变迁发生规则:(a)对于变迁t∈T,如果则称变迁t在标识M下使能,记为M[t>;(b)若M[t>,则在标识M下,变迁t能够发生,从标识M引发变迁t得到一个新的标识M′,记为M[t>M′,且对其中,M(p)表示在库所p处的标识,M′(p)表示引发变迁t后在库所p处的标识,·t表示t的输入集,t·表示t的输出集;定义工作流网:六元组WFN=(P,T;F,M,in,on)称为一个工作流网当且仅当:(1)Σ=(P,T;F,M)为一个Petri网;(2)存在一个初始库所in∈P,有(3)存在一个终止库所on∈P,有(4)对于y在一条从in到on的路径上;其中,·in表示in的输入集,·on表示on的输出集;定义挖掘算法α:令W代表覆盖有限变迁集T的工作流日志;α(W)定义如下:(1)(2)(3)(4)(5)(6)PW={p(AW,BW)|(AW,BW)∈YW}∪{iW,oW};(7)FW={(aW,p(AW,BW))|(AW,BW)∈YW∧aW∈AW}∪{(p(AW,BW),bW)|(AW,BW)∈YW∧bW∈BW}∪{(iW,t)|t∈TI}∪{(t,oW)|t∈TO};(8)α(W)=(PW,TW,FW);其中,TW是日志中出现的活动对应的工作流网中的变迁;TI是开始活动的集合,即在迹中出现在第一个位置的所有活动的集合;TO是结束活动的集合,即在迹中出现在最后一个位置的所有活动的集合;p(AW,BW)是一个库所,其中,AW是p(AW,BW)的输入变迁集合,·p(AW,BW)=AW;BW是p(AW,BW)的输出变迁集合,p(AW,BW)·=BW,所有满足第(4)步要求的AW,BW对构成的集合为XW;对于XW的每一对(AW,BW)、非空集合和非空集合都有(AW′,BW′)∈XW,在算法第(4)步中,所有不是最大的集合都被移除,得到的集合为YW;PW包含一个唯一的源库所iW和一个唯一的终止库所oW;第(7)步生成工作流网的弧的集合FW,TI中的所有变迁都以iW作为输入库所,TO中的所有变迁都以OW作为输出库所;所有库所p(AW,BW)都以AW作为输入节点,以BW作为输出节点;最终得到的结果是一个Petri网α(W)=(PW,TW,FW),它描述了日志W所反映的行为;first(σ)表示迹σ中的第一个活动,last(σ)表示迹σ中的最后一个活动;s2定义自由单循环结构定义自由单循环结构:WFN的一个自由单循环结构由三元组表示为FSL=<Tstart,Tend,Tset>;其中:Tstart、Tend∈T并且Tset∈T*,T*表示有限变迁集T中所有活动组成的序列;使得Tstart∈p0·并且Tend∈·p0;存在序列SE=<p0,Tstart,p1,…,pn,Tend,p0>,有Tset=<Tstart,…,Tend>;对于一个自由单循环结构而言:Tstart表示结构中的第一个变迁,即该结构在日志中的起始活动对应的变迁;Tend表示结构中的最后一个变迁,即该结构在日志中的终止活动对应的变迁;Tset表示该结构中所有的变迁对应的日志中的活动按顺序组成的序列,即自由单循环序列;该序列的顺序为该循环结构在日志的迹中出现第一遍时各活动的顺序;对于含有自由单循环结构的日志的完备性进行定义:定义自由单循环完备日志:令Wfsl是一个自由单循环完备的工作流日志,A是活动集合,当且仅当并且σ1、σ2∈Wfsl,使得a∈σ1,σ1(a)≥2并且对于该日志中的每一条迹都不存在连续重复出现的活动,但存在出现次数大于1的活动;对于日志中的活动之间的关系,引入自由单循环关系来表示处于同一自由单循环结构中的前后相邻的活动之间的关系;定义包含自由单循环关系的活动次序关系:令Wfsl是一个自由单循环完备的工作流日志,A是活动集合,T是A对应的有限变迁集,Wfsl∈P(T*);令a,b∈T:—a>W b:当且仅当存在一条迹σ=<a1,a 2,a 3,…,a n>,i∈{1,…,n‑1}使得σ∈Wfsl,a i=a并且a i+1=b;—a→W b:当且仅当a>W b并且b≯W a;—a#W b:当且仅当a≯W b并且b≯W a;—a||W b:当且仅当a>W b并且b>W a;—aa:当且仅当a存在于长度为1的自由单循环结构中;—ab:当且仅当存在一个长度为n的自由单循环序列Tset=<t1,t2,t3,…,tn>,满足Tset∈T*,ti=a并且ti+1=b;t1,t2,t3,…,tn表示Tset中的活动;日志Wfsl是变迁组成的迹的多重集合,是满足自由单循环完备的;a,b是有限变迁集合中的两个变迁对应的活动;>W表示跟随关系,→W表示因果关系,#W表示排他关系,||W表示平行关系,表示自由单循环关系;在挖掘自由单循环结构之前,根据算法1得到日志中活动的初始次序关系,其中不包含自由单循环关系;R表示基于日志得到的活动的初始次序关系集合;算法1列出日志中活动的初始次序关系,其具体步骤如下:步骤1:活动次序关系集合R初始化为空集;步骤2:对于所有属于自由单循环完备的工作流日志Wfsl的迹σ,执行以下操作:步骤3:对于一条n个活动的迹σ中的活动ai,i取值从1到n,执行以下操作:步骤4:将ai>W ai+1加入活动次序关系集合R;重复步骤4,直到i等于n;重复步骤3,直到遍历完所有的迹σ;步骤5:对于活动次序关系集合R中的每一个元素,执行以下操作:其中R中的每一个元素为一组由两个参数组成的关系,活动a是关系的前一个参数,活动b是关系的后一个参数;步骤6:1)若存在关系a>W b和b≯W a,则将关系a→W b加入活动次序关系集合R;2)若存在关系a>W b和b>W a,则将关系a||W b加入活动次序关系集合R;3)若存在关系a≯W b和b≯W a,则将关系a#W b加入活动次序关系集合R;重复步骤6,直到对R中所有元素执行操作完毕;步骤7:输出活动次序关系集合R;s3自由单循环结构挖掘算法s3.1寻找重复活动根据自由单循环结构的定义,在日志的一条迹中所有出现次数大于1的活动,都属于自由单循环结构中包含的活动;定义重复活动集合来存放这些活动:定义重复活动集合RepetitiveActivitySet:设A为活动集合,Wfsl为自由单循环完备的工作流日志,重复活动集合A当且仅当∈重复活动集合,使得ar∈σ,且σ(ar)≥2;算法2寻找重复活动并将所有的重复活动加入重复活动集合中,其具体步骤如下:步骤1:重复活动集合RepetitiveActivitySet初始化为空集;步骤2:对于所有属于自由单循环完备的工作流日志Wfsl的迹σ,执行以下操作:步骤3:对于一条包含n个活动的迹σ中的活动ai,aj,i取值从1到j,j取值从i到n‑1,执行以下操作:步骤4:若ai与aj相等并且ai不属于重复活动集合RepetitiveActivitySet,则将ai加入重复活动集合RepetitiveActivitySet;重复步骤4,直到i等于n‑1;重复步骤3,直到遍历完所有的迹σ;步骤5:输出重复活动集合RepetitiveActivitySet;s3.2发现重复活动的前驱活动和后继活动重复活动集合中的活动没有明确划分到每一个自由单循环结构当中;下面通过定义迹重复活动前驱活动和后继活动来对已经得到的重复活动存在于哪一个自由单循环结构进行区分提供支持;定义迹重复活动前驱活动和后继活动:设A为活动集合,Wfsl是自由单循环完备的工作流日志,RepetitiveActivitySet是Wfsl的重复活动集合;对于使得ar∈σ,有ai=ar,1<i<n,则称ai‑1为ar的前驱活动,ai+1为ar的后继活动;a1,a2,…,an表示迹σ中的活动;对于重复活动集合中的任一活动,日志的每一条迹中所有该活动的前驱活动组成该活动的迹重复活动前集,所有出现在该活动的后继活动组成该活动的迹重复活动后集;算法3对于每一个重复的活动,得到该活动的迹重复活动前集和迹重复活动后集,具体步骤如下:步骤1:对于重复活动集合RepetitiveActivitySet中的每个活动ar,执行以下操作:步骤2:对于日志自由单循环完备的工作流日志Wfsl中的每一条迹σ,执行以下操作:步骤3:对于包含n个活动的迹σ中的活动ai,i取值从2到n‑1,执行以下操作:步骤4:1)若ai与ar相等,并且ai‑1不属于ar的迹重复活动前集,则将ai‑1加入ar的迹重复活动前集ar.TracePreSet;2)若ai与ar相等,并且ai+1不属于ar的迹重复活动后集,则将ai+1加入ar的迹重复活动后集ar.TracePostSet;重复步骤4,直到i等于n‑1;重复步骤3,直到遍历完所有的迹σ;重复步骤2,直到对RepetitiveActivitySet中的所有活动ar执行操作完毕;步骤5:输出每个活动ar的迹重复活动前集ar.TracePreSet和迹重复活动后集ar.TracePostSet;通过得到每一个重复的活动的迹重复活动前集和迹重复活动后集,为区分它存在于哪一个自由单循环结构做准备;s3.3挖掘自由单循环结构算法4对所有的自由单循环结构进行挖掘,其具体步骤如下:步骤1:自由单循环结构集合FreeSingleLoopSet初始化为空集,长度为2的初始活动集合Length2TstartSet初始化为空集,长度为2的终止活动集合Length2TendSet初始化为空集,长度不为2的重复活动集合NoLength2ActivitySet初始化为空集,其他长度循环集合OtherLoopSet初始化为空集;步骤2:对于重复活动集合RepetitiveActivitySet中的每个活动ar,执行以下操作:步骤3:1)若活动ar的迹重复活动后集ar.TracePostSet是其迹重复活动前集ar.TracePreSet的真子集,则将ar加入长度为2的初始活动集合Length2TstartSet;2)若活动ar的迹重复活动前集ar.TracePreSet是其迹重复活动后集ar.TracePostSet的真子集,则将ar加入长度为2的终止活动集合Length2TendSet;3)若活动ar的迹重复活动前集ar.TracePreSet与其迹重复活动后集ar.TracePostSet不互为真子集,则将ar加入长度不为2的重复活动集合NoLength2ActivitySet;重复步骤3,直到对RepetitiveActivitySet中的所有活动ar执行操作完毕;步骤4:对于长度为2的初始活动集合Length2TstartSet中的每一个活动as执行以下操作:步骤5:一个自由单循环序列Tset初始化为空;步骤6:若存在一个活动bs属于长度为2的终止活动集合Length2TendSet,对于自由单循环完备的工作流日志Wfsl中的每一条迹σ,活动as与活动bs在当前迹σ中的出现次数相同,则存在一个自由单循环序列Tset为<as,bs>;步骤7:将自由单循环序列Tset=<as,bs>加入自由单循环结构集合FreeSingleLoopSet;步骤8:对于长度不为2的重复活动集合NoLength2ActivitySet中的每一个活动at,执行以下操作:步骤9:无序集合Set初始化为{at},一个自由单循环序列Tset初始化为空;步骤10:对于每一个活动bt属于长度不为2的重复活动集合NoLength2ActivitySet并且bt不等于at,执行以下操作:步骤11:若活动at的迹重复活动前集at.TracePreSet与活动bt的迹重复活动前集bt.TracePreSet的交集等于活动at的迹重复活动后集at.TracePostSet与活动bt的迹重复活动后集bt.TracePostSet的交集,则将bt加入无序集合Set;重复步骤11,直到对NoLength2ActivitySet中所有不同于活动at的活动执行操作完毕;步骤12:将无序集合Set中的每一个活动按照日志中一条存在这些活动的迹σ中这些活动首次出现的顺序排序,得到一个自由单循环序列Tset;步骤13:将自由单循环序列Tset加入自由单循环结构集合FreeSingleLoopSet;重复步骤9到步骤13,直到对NoLength2ActivitySet中所有活动执行操作完毕;步骤14:输出自由单循环结构集合FreeSingleLoopSet;s4建立日志活动的次序关系对于自由单循环结构集合中每一个自由单循环结构,其中的活动之间的次序关系根据自由单循环关系的定义需要重新定义;算法5重新定义自由单循环结构内部活动之间的次序关系,其具体步骤如下:步骤1:活动次序关系集合R初始化为算法1中输出的活动次序关系集合R;步骤2:对于所有属于自由单循环结构集合FreeSingleLoopSet中的自由单循环序列Tset=<t1,t2,t3,…,tn>,对于Tset中的每一个活动ti,i取值从1到n‑1,执行以下操作:步骤3:1)若n等于1,则将关系t1t1加入活动次序关系集合R;步骤4:2)若n不等于1,则执行以下操作:步骤5:将关系titi+1加入活动次序关系集合R;重复步骤5,直到i等于n‑1,并将关系tkt1加入活动次序关系集合R;步骤6:输出活动次序关系集合R。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东科技大学,未经山东科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710635987.8/,转载请声明来源钻瓜专利网。