一种具有循环返回结构的过程模型构建和修复方法与流程

文档序号:17423580发布日期:2019-04-17 02:34阅读:252来源:国知局
一种具有循环返回结构的过程模型构建和修复方法与流程

本发明涉及一种具有循环返回结构的过程模型构建和修复方法。



背景技术:

在当今的大型信息系统中,随着业务流程的复杂和频繁变化,可靠的过程模型变得越来越重要。这样的模型可以记录业务流程。然而,模型偏离现实的现象经常出现,这在许多研究中都得到了证实。因此,研究人员提出了许多过程挖掘技术。流程模型有几种类型,例如petri网或bpmn模型,这些模型是通过使用过程发现技术从事件日志中构建的。流程模型可以描述发生或假设发生的系统。它们的好坏取决于模型是否有适当的正式解释,即没有死锁、定义良好的行为语义和其他异常。相反,通过一致性检验技术,找出了过程模型与实际过程之间的差异。这里有两种类型的一致性检测技术。一个是日志一致性检测(使用事件日志与过程模型进行比较),另一个是模型一致性检测(使用从系统派生的模型与过程模型进行比较)。首先,强调哪些迹偏离了过程模型,以及在基于这种日志一致性检查的过程模型中出现了哪些偏差。在此基础上,进一步了解了组织的真实行为。其次,基于这种模型一致性检测,突出了流程的不同快照之间的差异。因此,一个已知的过程模型可以被用来与基于一致性检测技术的模型生成的事件日志进行比较。还可以验证过程模型是否可以重演每个迹。

模型通常通过基于现有技术挖掘现有组织的业务流程来获得。但是随着业务的快速发展,业务流程很难满足组织和企业的需求。使用基于事件日志的模型修复算法获得一个过程模型。如今,学者们已经提出了很多的过程挖掘算法,α算法则是其中的一种,它可以被用于发现工作流网。根据这些一致性检查技术,可以检测模型的观察行为和建模行为之间的差异。根据这些技术,观察到的和建模的行为之间的一致性程度可以被确定。此外,它使用两个操作来量化基于似然成本函数的偏差,即,插入活动和跳过活动。正确的模型中不存在没有重复/不可见的变迁。因此,为了满足实际流程的要求,这里出现了很多不同的α算法的扩展。α#算法就是其中的一种,可以有效的删除不可见变迁。然而,现有的方法不能很好地修复过程模型。dirkfahland的想法是使用校准方法来获得偏差。根据现有的过程挖掘算法,收集子日志,挖掘子过程。原始模型需要添加一个自环结构去修复子日志。knapsack方法的思想是使用较准方法去找出模型移动和日志移动之间的偏差。在现有方法的基础上挖掘子过程,根据这些偏差收集子日志。原始模型需要添加一个自环结构去修复子日志。另外,knapsack方法中需要较准的代价。通过分别设置模型移动和日志移动的成本,多种不同的修复方案被比较。knapsack方法可以通过计算模型移动和日志移动的最小总成本获得“最佳”模型修复方法,然而该方法修复后的模型不包含不可见变迁。此外,在两种方法的基础上,模型的精确度都会大大降低。因此,对于模型的修复,基于这些方法并不能取得很好的效果。

现有的医院胸外科就诊业务流程中存在诸多弊端,下面对主要的活动过程进行描述:首先,医生将通过门诊检查来检查病人的需要。ct检查分为常规ct和pet-ct两种。临床检查分四种:血气分析、血常规、esr和生化全套。另一种方法是:造影检查。检查结果作为诊断患者病情的标准,诊断结果将得到确认。最后,病人将根据诊断结果开始进行治病。然而在实际的就诊过程中,可能存在更多的情况。患者在做完生化全套后,可以选择去做血常规或血气分析。患者在做完生化全套后,他们也可以只选择血气分析而不是血常规。患者在完成血气分析后,可以选择去做血沉。而且,根据患者病情的需要,可能需要进行重复检查,重复确认疾病治疗情况。然而,这些情况不可以通过原来的胸外科就诊流程所得到。因此,需要修理这一部分。由于这些流程的发生,说明原来的胸外科就诊流程不再符合现实的需求。还有由于流程不够优化,现有方法修复的流程模型不是时间最优的,造成患者在某些活动上的拥堵情况,而同时有些本应进行的活动却处于空闲状态,造成了医疗资源的极大浪费,患者的就医体验不好。由此可见,现有的医院胸外科就诊业务流程需要进一步改进。



技术实现要素:

本发明的目的在于提出一种具有循环返回结构的过程模型构建和修复方法,以提高模型的精度和拟合度,从而缩短患者去医院排队等待的时间。

本发明为了实现上述目的,采用如下技术方案:

一种具有循环返回结构的过程模型构建和修复方法,包括如下步骤:

定义1s是一个集合,集合s上的多重集d是一个映射d:

其中,用来表示一个正整数集合,b(s)表示集合s上所有多重集的集合;

对于m1∈b(s),m1(z)表示第z个多重集,m1表示集合s上一个多重集的集合;

定义2设是就诊流程所有活动的集合,

其中,c表示一个就诊流程活动的集合,c*表示集合c上的有限序列集合;

若一个活动序列σ∈c*,则称σ是一条迹;若存在l∈b(c*)是迹的一个多重集,则称l为一个事件日志;用φ(σ)表示迹σ中所有活动所构成的集合;

定义3设n=(p,t;f)为一个petri网;

二元组(c,t)∈{c>>×t>>}\{(>>,>>)}是一个移动,>>代表在就诊模型或者日志中没有移动;

c>>表示日志中所有的活动加上>>,t>>表示就诊模型中所有的变迁加上>>,其中:

(1)若c∈c且t=>>,则(c,t)是一个日志动作,代表以下含义:

在真实就诊过程中有些就诊活动发生了,而未按照医院流程图发生,表示现有的医院流程图并未随着患者的需求改变而改变,现有的医院流程图没有满足患者的真实要求;

(2)若t∈t且c=>>,则(c,t)是一个模型动作,代表以下含义:

在真实就诊过程中有些就诊活动没有发生,是按照医院流程图发生的;

(3)若t∈t且c∈c,则(c,t)是一个同步动作,代表以下含义:

医院流程图与真实就诊过程相符合;

(4)否则(c,t)是一个非法动作;

定义4设pn=(p,t;f,m0),m0表示网pn的一个初始标识;

校准γ∈(c>>×t>>)*是迹σ与模型pn之间的移动序列(c,t)*,且满足:

(1)π1(γ)↓c=σ,即就诊模型的移动序列产生该就诊活动的轨迹;

(2)即模型的移动序列产生一个完整的引发序列;

其中,mi0表示模型移动序列的输入,mf0表示模型移动序列的输出;

π2(γ)↓t表示医院就诊流程模型中经过的活动,>>代表在流程中的活动没有发生;

γσ,pn是迹σ和模型pn之间所有校准的集合;

定义5设表示一个操作符集合,τ表示不可见变迁;

则一个过程树pt通过以下条件进行构建:

(1)c∈c∪{τ}表示一个节点;

(2)若存在过程树1和过程树2,则(过程树1,过程树2)也表示一个过程树;

定义6设六元组lpn=(p,t;f,i,o,m)为一个逻辑petri网,当且仅当:

(1)p是一个有限库所集;

(2)t=ti∪to∪td是一个有限变迁集,而且

若t∈ti∩to,则其中:

a)ti表示逻辑输入变迁集;

对于t的输入库所·t会受到逻辑输入表达式fi(t)的限制;

b)to表示逻辑输出变迁集;

对于t的输出库所t·会受到逻辑输出表达式fo(t)的限制;

c)td表示经典petri网中的变迁集;

(3)是一个有限弧集;

(4)i是由逻辑输入变迁到逻辑输入函数的映射,对于

(5)o是由逻辑输出变迁到逻辑输出函数的映射,对于

(6)m:p→{0,1}是petri网的标识函数,对于m(p)表示的是p中的托肯个数;

(7)变迁引发规则:

a)对表示i(t)=fi(t);若fi(t)|m=.t.,即在标识为m时,逻辑输入变迁t的逻辑输入表达式fi(t)为真,则逻辑输入变迁t能够引发,记做m[t>m′,且对m′(p)表示引发之后的库所数;

b)对表示o(t)=fo(t);若则逻辑输出变迁t能够引发,且对需满足fo(t)|m′=.t.,即在标识为m′时,逻辑输出变迁t的逻辑输出表达式fo(t)为真;.t.表示逻辑表达式为真;

c)对变迁引发规则与经典petri网一致;

定义7对于日志l∈b(c*),若活动a∈&(σ),将日志迹中的活动a投影到模型中的相对应的位置变迁t,则称η(a,t)是一个日志活动到模型变迁的投影;

定义8给定一个工作流网wfn=(p,t;f,m,ip,op);

日志l∈b(c*)是wfn的一个完全事件日志,当且仅当迹σ中总存在一条从初始库所ip到终止库所op的完全变迁触发序列;

定义9如果一个活动a∈σ且称该活动为新活动;引入这一概念,是为了通过日志活动到模型中变迁的投影得到日志中的新活动,将日志中的活动和模型中的变迁标记相同;

步骤1.发现在就诊中新活动的集合

(1)初始化新活动集合anew和变迁集合tr;

(2)遍历就诊过程模型中的所有变迁;

(3)将变迁ti1添加到变迁集合tr中;

(4)遍历日志中的每一条迹;

(5)循环查看每一条迹中的每一个活动bj1;

(6)将日志中的活动bj1投影到就诊过程模型中的变迁tk1;

(7)如果该变迁tk1不存在于变迁集合tr中,执行下一步;

(8)将日志中的该活动bj1添加到新活动集合anew中;

(9)将得到的新活动集合anew返回;

其中,length表示变迁集合的长度,1<=i1<=length;

bj1表示日志中的活动,tk1表示就诊模型中的变迁,tr表示变迁集合;

定义10设pt是pn的过程树,如果存在n∈pt且n=∧,一个二元组(tci,tcf)介意称为一个并发起止对;如果tci=·(·(ns)),tcf=((ns)·)·,ns则是n的子节点;

其中,n表示节点,∧表示并发关系操作符;

tci和tcf分别表示并行结构的初始变迁和终止变迁;

并发起止对集scifp为包含所有并发起止对的集合,即:

定义11设m2和n2是两个变迁,σ,σ’∈l是两个迹;

如果n2,m2∈φ(σ):n2>m2且n2,m2∈&(σ’):n2>m2,那么m2和n2是并发变迁;

步骤2.搜集在就诊过程模型中并发结构的并发变迁集合sc和并发起止对集scifp

(1)初始化并发起止对集scifp和并发变迁集合sc;

(2)如果非叶子节点nnl属于操作符集合并且不为空,执行下一步;

(3)如果非叶子节点nnl为“∧”,执行下一步;

(4)得到并发结构的初始变迁·(·(ns))和终止变迁((ns)·)·,将并发起止对添加到并发起止对集scifp中;

(5)否则进行下一步;

(6)遍历该非叶子节点的所有子节点;

(7)收集代表并发结构中的变迁的子节点ns;

(8)将该子节点添加到并发变迁集合sc中;

(9)将得到的就诊过程模型中并发结构的并发变迁集合sc和并发起止对集scifp返回;

搜集到并发变迁集之后,随后通过日志中的迹到并发变迁集投射得到只含有并发变迁的子迹,然后将子迹组成子迹日志;下面给出迹到变迁集合的投射的定义:

定义12设st是一个变迁集合,是集合st的一个子集;

σi∈d*,σi|d={t|t∈t∧t∈st}表示σi到d的投射;

定义13设lpn=(p,t;f,i,o,m);

逻辑校准γ∈(c>>×t>>)*是迹σ与模型pn之间的移动序列(c,t)*,且满足:

(1)π1(γl)↓c=σ,即迹的移动序列产生该迹;

(2)即校准中模型的引发序列根据lpn定义中的变迁引发规则,产生一个完整的引发序列;

γσ,lpn是迹σ和模型lpn之间所有校准的集合;

定义14设lc:(c∪{>>})×(t∪{>>})→ir为对于日志移动和模型移动的可能成本函数;

如果逻辑petri网lpn和迹σ之间的逻辑校准γ∈(c>>×t>>)*是逻辑最优校准;其中,γ’表示最优校准以外的其他校准;φσ,lpn表示迹σ和模型pn之间所有校准的集合;∑(c,t)∈γlc((c,t))表示最优校准的可能性代价函数最小的集合;∑(c’,t’)∈γ’lc((c’,t’)表示非最优校准的可能性代价函数最小的集合;

定义15设成本函数δ∈c→n为合法移动分配成本,n表示正整数;

δ(γ)=σ(c,t)∈γδ((c,t))表示一个校准γ∈(c>>×t>>)*的成本;

定义16给定一个事件日志l∈b(c*),并且σ∈l:o,u∈φ(σ),o和u是两个变迁;

φ(σ)表示迹σ中所有活动所构成的集合;

得到o和u的关系如下:

(1)直接依赖关系>:

如果σ=<a1,a2,a3,...,anl>,i∈{1,...,nl-1}:σ∈l,ai=o且ai+1=u,那么o>u;

(2)间接依赖关系>>r:

如果存在a1,a2,a3,...,anl∈φ(σ):a1>a2>…>anl,那么a1>>ranl;

(3)选择关系#:

如果σ∈l:o∈φ(σ)且或者o∈φ(σ)且那么o#u;

(4)直接因果关系→:

如果σ∈l,o,u∈φ(σ):o>u并且u≯o,那么o→u;

(5)间接因果关系

如果存在a1,a2,a3,...,anl∈φ(σ):a1→a2→…→anl,那么

(6)并行关系||:

给定两条迹σ,σ’∈l,如果存在o,u∈σ:o>u且存在o,u∈σ’:u>o,那么o||u;

步骤3.收集基于事件日志的依赖关系的集合rl

(1)初始化跟随关系集合r和基于事件日志的依赖关系的集合rl;

(2)对于日志中的每一条迹,判断该迹中的活动之间的跟随关系;

(3)将所有的直接跟随关系和间接跟随关系添加到跟随关系集合r中;

(4)如果两个活动v和w不存在于同一条迹中,执行下一步;

(5)将v#w添加到基于事件日志的依赖关系的集合rl中;

(6)如果w不直接跟随v,而v直接跟随w,执行下一步;

(7)将v→w添加到基于事件日志的依赖关系的集合rl中;

(8)如果w→q且v→w,其中q表示一个活动,执行下一步;

(9)将添加到基于事件日志的依赖关系的集合rl中;

(10)如果v→w且其中d表示一个活动,执行下一步;

(11)将添加到基于事件日志的依赖关系的集合rl中;

(12)如果其中e表示一个活动,执行下一步;

(13)将添加到基于事件日志的依赖关系的集合rl中;

(14)如果w直接跟随v,且v直接跟随w,执行下一步;

(15)将v||w添加到基于事件日志的依赖关系的集合rl中;

(16)将得到的基于事件日志的依赖关系的集合rl返回;

定义17

设一个循环子迹lst是校准γ上的一个连续的日志动作(ai,>>),...,(aj,>>)的最大序列,lst=<ai...,aj>,且满足初始活动为模型中不存在的活动即且ai+1,...,aj均已重演过;

若存在lsl∈b(c*)是循环子迹的一个多重集,称lsl为一个循环子日志;

循环子日志中包括循环体的开始和终止活动;

步骤4.发现循环子日志lsl

(1)初始化循环子日志lsl;

(2)遍历最优校准γ,若ai∈c,ti=>>,且存在连续的日志动作{(ai,>>),...,(aj,>>)};

(3)循环遍历日志中的每一条迹;

(4)如果且ai+1,...,aj∈σe1,执行下一步,1<=e1<=count;

(5)将ai,...,aj添加到循环子日志lsl中;

(6)否则,如果两个活动ai+k,bi+k存在于两个不同的迹中,执行下一步;

(7)如果bi+k#ai+k或者bi+k||ai+k,执行下一步;

(8)将活动ai+k添加到循环子日志lsl中;

(9)将得到的循环子日志lsl返回;

其中,count表示日志中迹的个数,i、j、k均为自然数;

下面给出步骤5来定位偏差位置,首先,先介绍以下定义:

定义18设lst是一个循环子迹,lsl是一个循环子日志;p∈p,将pbef|p={p|p∈·ti∧ti∈lsl}定义为p的前序库所集,|pbef|p|表示集合pbef|p中所有元素的个数;

前序库所集主要针对存在并行关系的循环结构如何寻找循环变迁的后集库所的情况;

pbef|p包含循环子日志中的所有前集库所;

步骤5.确定就诊流程偏差位置dl(pi,po),其中pi为偏差开始位置,po为偏差结束位置;

(1)初始化偏差位置dl(pi,po);

(2)调用步骤4收集循环子日志lsl,遍历最优校准γ,对于ai∈a,ti=>>;

(3)如果存在{ai,...,aj}∈lsl且

其中,pl表示所有前序变迁的后集库所,执行下一步;

(4)如果所有前序变迁的后集库所的个数个数大于1,执行下一步;

(5)偏差位置的起始位置为偏差位置的结束位置为pl;

(6)否则执行下一步;

(7)偏差位置的起始位置为偏差位置的结束位置为·ai+1;

(8)如果变迁且ai-1的后集库所与ai+1的前集库所相同,执行下一步;

(9)偏差位置的起始位置为p,偏差位置的结束位置为·ai-1;

(10)否则执行下一步;

(11)偏差位置的起始位置为偏差位置的结束位置为·ai+1;

(12)如果变迁ai∈t,执行下一步;

(13)偏差位置的起始位置为偏差位置的结束位置为·ai;

(14)对于日志移动ai=>>,ti∈t;

(15)偏差位置的起始位置为·ai,偏差位置的结束位置为

(16)将得到的就诊流程偏差位置dl(pi,po)返回;

通过调用步骤5,得到循环变迁ai的所有后集库所;

若循环结构中存在并行结构,则首先收集循环子日志中活动的前序库所集,然后找到所有前序变迁的后集库所的个数,若大于1,则变迁对应的后集库所为并行结构的前集库所,由此找到所有的并行结构的前集库所,然后定位偏差;

定义19给定一个petri网pn=(p,t;f,m),对于tp∈t,若p∈·tandtp∈·p,则tp是t的前序变迁;tbef|t={tp|p∈·tandtp∈·p}表示所有的逻辑前序变迁的集合;

定义20给定一个petri网pn=(p,t;f,m),对于t∈t,tbef|t表示所有逻辑前序变迁的集合;(ai|t)[m3][m3](m3=|tbef|t|)表示逻辑前序矩阵;

其中,m3表示所有逻辑前序变迁的集合中逻辑前序变迁的个数;

对于o,p∈[0,m3],若o≠p,则(ai|t)[o][p]=lr(o,p);否则

基于以上定义的逻辑关系lr(r,c)被定义如下:

(1)若t被触发,tbef|t允许r或者c其中一个触发;

(2)r||c:若t被触发,tbef|t允许r和c触发,但不能同时触发;

(3)r∨c:若t被触发,tbef|t允许r和c触发;

(4)r∧c:若t被触发,r和c将同时触发;

将变迁的逻辑关系转化为逻辑前序矩阵(ai|t)[m3][m3](m3=|tbef|t|),得到逻辑前序变迁表达式λ(t′,ai|t),继而得到逻辑输入函数i(t)=pl(λ);

步骤6.修正就诊模型,得到修正后的逻辑petri网模型lpn″′=(p″′,t″′;f″′,i″′,o″′,m″′)

(1)初始化原始模型、就诊流程偏差位置dl(pi,po)和循环子日志lsl;

(2)调用步骤1得到新活动,调用步骤3得到循环子日志中变迁之间的关系,调用步骤4收集循环子日志lsl,遍历最优校准γ,调用步骤5定位偏差;

(3)如果ai=>>,ti∈t且(4)将不可见变迁τ添加到变迁集t″′中,将流关系(·ai→τ)和添加到流关系集合f″′中;

(5)否则如果ai∈a,ti=>>,执行下一步;

(6)如果存在偏差位置执行下一步;

(7)将变迁ai添加到变迁集t″′中,将库所p添加到库所集p″′中,将流关系(ai-1→p)、(p→ai)和添加到流关系集合f″′中;

(8)如果存在偏差位置执行下一步;

(9)将不可见变迁τ添加到变迁集t″′中,将流关系和(τ→·ai)添加到流关系集合f″′中;

(10)如果存在偏差位置执行下一步;

(11)将变迁ai添加到变迁集t″′中,将流关系和(ai→·ai+1)添加到流关系集合f″′中;

(12)调用步骤2得到并发起止对集scifp和并发变迁集sct;

(13)如果(tci,tcf)存在于并发起止对集scifp中,两个变迁tj,tk属于并发变迁集sct,而且tci的后集库所与tj和tk的前集库所都相同,执行下一步;

(14)将逻辑输入表达式添加到逻辑输入表达式集合i″′中;

(15)将逻辑输出表达式o(ai)=·tj∧·tk和添加到逻辑输出表达式集合o″′中;

(16)将得到的修正后的逻辑petri网模型lpn″′=(p″′,t″′;f″′,i″′,o″′,m″′)返回;

通过步骤6确定现实情况与给定业务流程之间的偏差位置,然后在偏差位置修复原就诊模型,添加流关系,通过lpn挖掘算法挖掘逻辑输入输出函数得到最终修正的就诊模型;

修正后的就诊模型是一个时间最优化的业务流程模型,表示就诊过程与模型的完全拟合,优化了循环返回结构的活动,缩短了患者在就诊时的等待时间。

本发明具有如下优点:

本发明中的过程模型构建和修复方法,为了定位就诊过程中的偏差,给出了循环子迹、循环子日志和前序变迁集的概念,根据前序变迁与后集库所之间的关系,确定就诊过程中的偏差位置。挖掘变迁的触发条件,得到逻辑变迁和逻辑输入输出函数,对就诊模型进行修正。修正得到的就诊模型能够正确反映现实行为,解决了在就诊模型里修复含有循环子日志的问题,由于加入了逻辑关系,相较普通的petri网能更为简洁的表达活动之间的关系。基于逻辑petri网修正的就诊模型大大降低了原模型的复杂性,从而拟合度和精确度更高。此模型是一个时间最优化的业务流程模型,能做到就诊过程与模型的完全拟合,整个修复模型结构与原就诊模型非常相似,而且结构清晰,描述的模型更加准确,优化了循环返回结构的活动,缩短了患者在就诊时的等待时间,让整个就诊过程更加有效率,提高了患者的就医体验。

附图说明

图1为一个简单的逻辑petri网模型ln1示意图;

图2为一个简单的petri网模型n1示意图;

图3为迹σ1和模型n1的最优校准γ1示意图;

图4为一个含有并行结构的petri网模型n2示意图;

图5为petri网模型n2对应的过程树pt1示意图;

图6为迹σ1与模型n2的最优校准示意图;

图7为迹σ2与模型n2的最优校准示意图;

图8为一个逻辑petri网模型nl1示意图;

图9为迹σ1与模型nl1的最优校准示意图;

图10为迹σ2与模型nl1的最优校准示意图;

图11为一个petri网模型n3示意图;

图12为迹σ1与模型n3的最优校准示意图;

图13为迹σ2与模型n3的最优校准示意图;

图14为迹σ3与模型n3的最优校准示意图;

图15为迹σ4与模型n3的最优校准示意图;

图16为基于本发明方法得到的修复模型示意图;

图17为基于fahland方法得到的修复模型示意图

图18为基于knapsack方法得到的修复模型示意图;

图19为本发明实施例的实验中医院门诊病人就诊流程模型示意图;

图20为本发明实施例的实验中基于fahland方法得到的修复模型示意图;

图21为本发明实施例的实验中基于knapsack方法得到的修复模型示意图;

图22为本发明实施例的实验中基于lpn修正得到的修复模型示意图;

图23为fahland方法和knapsack方法以及本发明的修正方法拟合度的变化示意图;

图24为fahland方法和knapsack方法以及本发明的修正方法精确度的变化示意图。

具体实施方式

下面结合附图以及具体实施方式对本发明作进一步详细说明:

本发明的基本思想为:

通过lpns对过程模型进行修复以获得循环返回结构,提出了一种定位偏差的算法,找出所有偏差,得到循环子日志,然后构造循环返回结构。根据日志中的活动与观察模型中的变迁之间的关系构造新活动的逻辑表达式,有效地修复含有循环返回结构的过程模型。

一种具有循环返回结构的就诊过程模型构建和修复方法,包括如下步骤:

定义1s是一个集合,集合s上的多重集d是一个映射d:

其中,用来表示一个正整数集合。b(s)表示集合s上所有多重集的集合。

对于m1∈b(s),m1(z)表示第z个多重集,m1表示集合s上一个多重集的集合。

例如,基于活动集合a={r,o,p2},其中r,o,p2均表示活动。

n1=[],n2=[o,p2],n3=[o,q],n4=[o,p2,o,p2,q,r],n5=[r3,o2,p2]都是多重集。

n1是一个空多重集,n2和n3中都含有两个元素,n4和n5是相同的。

即元素的顺序是无关的。

定义2设是就诊流程所有活动的集合,

其中,c表示一个就诊流程活动的集合,c*表示集合c上的有限序列集合。

若一个活动序列σ∈c*,则称σ是一条迹。若存在l∈b(c*)是迹的一个多重集,则称l为一个事件日志。用φ(σ)表示迹σ中所有活动所构成的集合。

例如:给定一个事件日志l={<h,g,f,o,p2>6,<f,g,h,o>4,<e,h,d,g,f,p2,o>3},σ=<h,g,f,o,p2>是一个迹,而且φ(σ)={h,g,f,o,p2}。

事件日志l中包含13个迹,有6个迹是<h,g,f,o,p2>,4个迹是<f,g,h,o>和3个迹是<e,h,d,g,f,p2,o>。该事件日志中有6×5+4×4+3×7=67个事件。

定义3设n=(p,t;f)为一个petri网,σ∈c*

二元组(c,t)∈{c>>×t>>}\{(>>,>>)}是一个移动,>>代表在就诊模型或者日志中没有移动。

c>>表示日志中所有的活动加上>>,t>>表示就诊模型中所有的变迁加上>>,其中:

(1)若c∈c且t=>>,则(c,t)是一个日志动作,代表在真实就诊过程中有些就诊活动发生了,而未按照医院流程图发生,表示现有的医院流程图并未随着患者的需求改变而改变,现有的医院流程图没有满足患者的真实要求;

(2)若t∈t且c=>>,则(c,t)是一个模型动作,代表在真实就诊过程中有些就诊活动没有发生,是按照医院流程图发生的;

(3)若t∈t且c∈c,则(c,t)是一个同步动作,代表医院流程图与真实就诊过程相符合;

(4)否则(c,t)是一个非法动作。

定义4设pn=(p,t;f,m0),m0表示网pn的一个初始标识,σ∈c*

校准γ∈(c>>×t>>)*是迹σ与模型pn之间的移动序列(c,t)*,且满足:

(1)π1(γ)↓c=σ,即迹的移动序列产生该迹;

(2)即模型的移动序列产生一个完整的引发序列;

其中,mi0表示模型移动序列的输入,mf0表示模型移动序列的输出;

π2(γ)↓t表示医院就诊流程模型中经过的活动,>>代表在流程中的活动没有发生;mi表示就诊模型移动序列的输入,mf表示就诊模型移动序列的输出。

γσ,pn是迹σ和模型pn之间所有校准的集合。

定义5设表示活动的所有集合,σ∈c*表示一个操作符集合,τ表示不可见变迁。一个过程树pt可以通过以下条件进行构建:

(1)c∈c∪{τ}表示一个节点;

(2)若这里有两个过程树d和e,则(d,e)也表示一个过程树,其中:

a)∧(d,e)表示d和e的并行结构;b)表示循环体为d和e的循环结构;c)→(d,e)表示d和e的顺序关系;d)×(d,e)表示d和e的选择关系。

定义6设六元组lpn=(p,t;f,i,o,m)为一个逻辑petri网(lpn),当且仅当:(1)p是一个有限库所集;(2)t=ti∪to∪td是一个有限变迁集,而且

若t∈ti∩to,则其中:

a)ti表示逻辑输入变迁集;

对于t的输入库所·t会受到逻辑输入表达式fi(t)的限制;

b)to表示逻辑输出变迁集;

对于t的输出库所t·会受到逻辑输出表达式fo(t)的限制;

c)td表示经典petri网中的变迁集;

(3)是一个有限弧集;

(4)i是由逻辑输入变迁到逻辑输入函数的映射,对于

(5)o是由逻辑输出变迁到逻辑输出函数的映射,对于

(6)m:p→{0,1}是petri网的标识函数,对于m(p)表示的是p中的托肯个数。

(7)变迁引发规则:

a)对表示i(t)=fi(t)。若fi(t)|m=.t.,即在标识为m时,逻辑输入变迁t的逻辑输入表达式fi(t)为真,则逻辑输入变迁t可以引发,记做m[t>m′,且对

b)对表示o(t)=fo(t)。若则逻辑输出变迁t可以引发,且对需满足fo(t)|m′=.t.,即在标识为m′时,逻辑输出变迁t的逻辑输出表达式fo(t)为真;.t.表示逻辑表达式为真;

c)对变迁引发规则与经典petri网一致。

图1给出了一个简单的逻辑petri网模型ln1的例子。b是一个逻辑输出变迁,t1为逻辑输入变迁,是b的逻辑输出函数,是f的逻辑输入函数。

当b触发时,这里会出现两种情况:(1)p3和p4中都有一个托肯;(2)p5中有一个托肯。如果f想引发,必须满足一下两个条件:(1)p6和p7中都有一个托肯;(2)p8中有一个托肯。

这里可以发生两种情况:(1)如果想要c和d使能,逻辑输出函数需要去控制p3和p4,逻辑输入函数需要去控制p6和p7;(2)如果想要e使能,逻辑输出函数需要去控制p5,逻辑输入函数需要去控制p8。接下来,用一个例子去说明以上的定义。

图2给出了一个简单的petri网模型n1。若有一个迹σ1=<a,f,c,d,g>,图3则给出了迹σ1和模型n1的最优校准,即γ1=<(a,a),(f,f),(>>,b),(c,c),(d,>>),(g,g)>。

在最优校准中,(a,a),(f,f),(g,g)是同步动作,(d,>>)是日志动作,(>>,b)是模型动作。

有了上述基础定义,下面构建和修复含有循环返回结构的过程模型:

本实施例基于lpns的循环返回结构模型的构造和修复方法。下面首先介绍一些相关的定义,然后描述本实施例提出的方法和几种模型修复方法:

当事件日志中的迹包含模型中不存在的活动时,需要通过将事件日志中的活动映射到过程模型中的变迁来找到新的活动。首先,将给出以下定义:

定义7对于日志l∈b(c*),若活动a∈&(σ),将日志迹中的活动a投影到模型中的相对应的位置变迁t,则称η(a,t)是一个日志活动到模型变迁的投影。

定义8给定一个工作流网wfn=(p,t;f,m,ip,op);

日志l∈b(c*)是wfn的一个完全事件日志,当且仅当迹σ中总存在一条从初始库所ip到终止库所op的完全变迁触发序列。

定义9设pn=(p,t;f,m0),σ∈c*。如果一个活动a∈σ且称该活动为新活动。

引入这一概念,是为了通过日志活动到模型中变迁的投影得到日志中的新活动,将日志中的活动和模型中的变迁标记相同。接下来给出新活动集合的发现步骤1。

步骤1.发现在就诊中新活动的集合

(1)初始化新活动集合anew和变迁集合tr;

(2)遍历就诊过程模型中的所有变迁;

(3)将变迁ti1添加到变迁集合tr中;

(4)遍历日志中的每一条迹;

(5)循环查看每一条迹中的每一个活动bj1;

(6)将日志中的活动bj1投影到就诊过程模型中的变迁tk1;

(7)如果该变迁tk1不存在于变迁集合tr中,执行下一步;

(8)将日志中的该活动bj1添加到新活动集合anew中;

(9)将得到的新活动集合anew返回。

其中,length表示变迁集合的长度,1<=i1<=length,bj1表示日志中的活动,tk1表示就诊模型中的变迁,tr表示变迁集合。例1:图4给出了一个含有并行结构的petri网模型n2。

一个事件日志l1={<c,d,e,f,g,h,a,b>,<d,c,b,a,h,e>,<d,c,b,a,e,f,g,h>}。通过日志中每个迹的活动向模型中的变迁的投影,可以搜集到该日志中的新活动集合anew={h}。

petri网中含有四种主要的结构:并行结构,循环结构,顺序结构和选择结构。在一个petri网的每个分支上的初始变迁和终止变迁都是一样的。

为了方便,分别用tci和tcf表示并行结构的初始变迁和终止变迁。

图5给出了petri网模型n2对应的过程树pt1。

可以得到过程树pt1的正规表达式,即n2=→(a,b,∧(c,d,e),f,g)。

定义10设且pn=(p,t;f,m),pt是pn的过程树,如果存在n∈pt且n=∧,一个二元组(tci,tcf)介意称为一个并发起止对;如果tci=·(·(ns)),tcf=((ns)·)·,ns则是n的子节点。

其中n表示节点,∧表示并发关系操作符;tci和tcf分别表示并行结构的初始变迁和终止变迁。并发起止对集scifp为包含所有并发起止对的集合,即:

为了清楚便捷的识别petri网的基本结构,可以通过过程树来表示petri网,petri网都存在唯一的过程树与之对应,而且过程树还可以记录petri网结构和变迁的信息,因此通过结合petri网和对应的过程树,可以更加方便地确定petri网的结构。根据所有节点的信息,可以得到并行结构的所有变迁,然后得到所有并行结构的初始变迁和终止变迁。如果在一个过程树中有一个节点“∧”,在对应的过程模型中就存在一个并行结构。就可以得到节点“∧”的所有子节点,即在图5中,c,d和e都是节点“∧”的所有子节点。

定义11设m2和n2是两个变迁,σ,σ’∈l是两个迹;

如果n2,m2∈φ(σ):n2>m2且n2,m2∈&(σ’):n2>m2,那么m2和n2是并发变迁。

利用以上的定义去识别所有的并行结构。尽管并行结构的每个分支可能含有其他结构,认为每个分支是一个整体。下面给出搜集petri网的并发起止对集和并发变迁集合的步骤2。

步骤2.搜集在就诊过程模型中并发结构的并发变迁集合sc和并发起止对集scifp

(1)初始化并发起止对集scifp和并发变迁集合sc;

(2)如果非叶子节点nnl属于操作符集合并且不为空,执行下一步;

(3)如果非叶子节点nnl为“∧”,执行下一步;

(4)得到并发结构的初始变迁·(·(ns))和终止变迁((ns)·)·,将并发起止对添加到并发起止对集scifp中;

(5)否则进行下一步;

(6)遍历该非叶子节点的所有子节点;

(7)收集代表并发结构中的变迁的子节点ns;

(8)将该子节点添加到并发变迁集合sc中;

(9)将得到的就诊过程模型中并发结构的并发变迁集合sc和并发起止对集scifp返回。

搜集到并发变迁集之后,随后通过日志中的迹到并发变迁集投射得到只含有并发变迁的子迹,然后将子迹组成子迹日志。下面给出迹到变迁集合的投射的定义。

定义12设st是一个变迁集合,是集合st的一个子集。

σi∈d*,σi|d={t|t∈t∧t∈st}表示σi到d的投射。例如:bbaca|{a,b}=bbaa。

在多重集上同样也可以应用投射的概念,例如,[e4,f,g3]|{e,g}=[e4,g3]。

例2:图4给出了一个含有并行结构的petri网模型n2,l3={<a,b,c,f,g,h,d,e,f,g>,<a,m,b,d,f,g,h,d,e,f,g>}是一个事件日志。

图6和图7分别给出了存在偏差的日志l3的两条迹与模型n2的最优校准γ2和γ3。图6和图7校准中存在多个日志动作,可以看出在新的日志l3中增加了两个新的活动以及多个重复执行的活动。日志l3的两条迹都存在较多的偏差,并且发现在新的活动h之后都重复执行了选择结构的一个分支。也就是说,这两条迹都存在循环结构。而dirkfahland[14]基于子过程的修正方法并不能发现这一结构,也不能很好的处理重复行为。

下面基于传统校准,引入逻辑petri网的校准,用于后续模型评估与分析。

逻辑petri网的校准与传统校准相比,形式上相同,区别在于模型中的逻辑变迁的引发规则的改变,下面给出其形式化定义。

定义13设lpn=(p,t;f,i,o,m),σ∈c*,逻辑校准γ∈(c>>×t>>)*是迹σ与模型pn之间的移动序列(c,t)*,且满足:

(1)π1(γl)↓c=σ,即迹的移动序列产生该迹;

(2)即校准中模型的引发序列根据lpn定义中的变迁引发规则,产生一个完整的引发序列。γσ,lpn是迹σ和模型lpn之间所有校准的集合。

定义14设lpn=(p,t;f,i,o,m),σ∈c*,lc:(c∪{>>})×(t∪{>>})→ir表示对于日志移动和模型移动的可能成本函数。如果逻辑petri网lpn和迹σ之间的逻辑校准γ∈(c>>×t>>)*是逻辑最优校准。

其中,γ’表示最优校准以外的其他校准;φσ,lpn表示迹σ和模型pn之间所有校准的集合;∑(c,t)∈γlc((c,t))表示最优校准的可能性代价函数最小的集合;∑(c’,t’)∈γ’lc((c’,t’)表示非最优校准的可能性代价函数最小的集合。

定义15设成本函数δ∈c→n为合法移动分配成本,n表示正整数。

δ(γ)=∑(c,t)∈γδ((c,t))表示一个校准γ∈(c>>×t>>)*的成本。

在逻辑petri网的校准中也可能存在多个最优校准。同样的,日志动作和模型动作的可能性代价函数lc(a,>>)=lc(>>,t)=1,同步动作lc(a,t)=0。

例3:图8给出了一个逻辑petri网模型nl1,l4={<a,b,c,d,e>,<a,d,e,e>}是一个事件日志。图9和图19给出了存在偏差的日志l4与模型nl1的最优校准γl1和γl2。

如图9所示,日志l4中的第一个迹是完全拟合的,即在校准中不存在任何的日志动作或者模型动作。图10中第二条迹的最优校准存在多个,此处仅列出一个。

通过例3不难看出,逻辑petri网重演日志需要根据逻辑变迁的逻辑表达式来重演,较传统petri网复杂。图10中最优校准的可能性代价函数lc(γl2)=lc(a,>>)+lc(>>,t)=2。

针对更新的日志中存在循环的情况,为了更好的发现循环结构,首先需要收集循环子日志,然后根据不同的日志动作,定位偏差最终对模型进行修正。

为了收集循环子日志,日志中的活动之间的关系需要被得到。

下面的步骤3将会给出得到基于日志的顺序关系的方法和收集循环子日志的方法。首先,将给出两个活动之间的关系的定义。接下来会介绍循环子迹和循环子日志的正式定义。

定义16给定一个事件日志l∈b(c*),并且σ∈l:o,u∈φ(σ),o和u是两个变迁。φ(σ)表示迹σ中所有活动所构成的集合。得到o和u的关系如下:

(1)直接依赖关系>:如果σ=<a1,a2,a3,...,anl>,i∈{1,...,nl-1}:σ∈l,ai=o且ai+1=u,那么o>u;

(2)间接依赖关系>>r:如果存在a1,a2,a3,...,anl∈φ(σ):a1>a2>...>anl,那么a1>>ranl;

(3)选择关系#:如果σ∈l:o∈φ(σ)且或者o∈φ(σ)且那么o#u;

(4)直接因果关系→:如果σ∈l,o,u∈φ(σ):o>u并且那么o→u;

(5)间接因果关系:如果存在a1,a2,a3,...,anl∈φ(σ):a1→a2→...→anl,那么

(6)并行关系||:如果两条迹σ,σ’∈l,如果存在o,u∈σ:o>u且存在o,u∈φ(σ’):u>o,那么o||u。提出了一个基于日志关系的决定步骤3,rl表示所有基于日志的依赖关系的集合。

步骤3.收集基于事件日志(原始模型)的依赖关系的集合rl

(1)初始化跟随关系集合r和基于事件日志(原始模型)的依赖关系的集合rl;

(2)对于日志中的每一条迹,判断该迹中的活动之间的跟随关系;

(3)将所有的直接跟随关系(mi3>mi3+1,1<=i3<σm.length-1)和间接跟随关系(mi3>>rmi3+j3,j3=2,...,σm.length-i)添加到跟随关系集合r中;

(4)如果两个活动v和w不存在于同一条迹中,执行下一步;

(5)将v#w添加到基于事件日志(原始模型)的依赖关系的集合rl中;

(6)如果w不直接跟随v,而v直接跟随w,执行下一步;

(7)将v→w添加到基于事件日志(原始模型)的依赖关系的集合rl中;

(8)如果w→q且v→w,其中q表示一个活动,执行下一步;

(9)将添加到基于事件日志(原始模型)的依赖关系的集合rl中;

(10)如果v→w且其中d表示一个活动,执行下一步;

(11)将添加到基于事件日志(原始模型)的依赖关系的集合rl中;

(12)如果其中e表示一个活动,执行下一步;

(13)将添加到基于事件日志(原始模型)的依赖关系的集合rl中;

(14)如果w直接跟随v,且v直接跟随w,执行下一步;

(15)将v||w添加到基于事件日志(原始模型)的依赖关系的集合rl中;

(16)将得到的基于事件日志(原始模型)的依赖关系的集合rl返回。

在步骤3中,为了节省时间,第8步、第10步和第12步是同时执行的。

其中,σm.length表示第m条迹的长度。通过步骤3可以得到变迁之间的关系。

定义17设一个循环子迹lst是校准γ上的一个连续的日志动作(ai,>>),...,(aj,>>)的最大序列,lst=<ai...,aj>,且满足初始活动为模型中不存在的活动即且ai+1,...,aj均已重演过。若是循环子迹的一个多重集,称lsl为一个循环子日志。

循环子日志中包括循环体的开始和终止活动。

步骤4用来发现循环子日志lsl

(1)初始化循环子日志lsl;

(2)遍历最优校准γ,若ai∈c,ti=>>,且存在连续的日志动作{(ai,>>),...,(aj,>>)};

(3)循环遍历日志中的每一条迹;

(4)如果且ai+1,...,aj∈σe1,执行下一步,1<=el<=count;

(5)将ai,...,aj添加到循环子日志lsl中;

(6)否则,如果两个活动ai+k,bi+k存在于两个不同的迹中,执行下一步;

(7)如果bi+k#ai+k或者bi+k||ai+k,执行下一步;

(8)将活动ai+k添加到循环子日志lsl中;

(9)将得到的循环子日志lsl返回。

其中,count表示日志中迹的个数;i、j、k均为自然数;

对于例2中的日志l3,在两个迹中都存在连续的日志动作(h,>>),(d,>>),(e,>>),(f,>>),(g,>>)。在f和g重演之前,得到关系c||d,c||e。h将被作为一个新活动添加到模型中的自环结构中,因为它不存在于原始模型中。可以构造循环子日志为{<h,d,e,f,g>}。

收集到循环子日志后需要通过定位偏差来确定偏差位置,可以更有效的修复模型。下面给出步骤5来定位偏差位置。首先,先介绍以下定义。

定义18设lst是一个循环子迹,lsl是一个循环子日志。p∈p,将pbef|p={p|p∈·ti∧ti∈lsl}定义为p的前序库所集,|pbef|p|表示集合pbef|p中所有元素的个数。

前序库所集主要针对存在并行关系的循环结构如何寻找循环变迁的后集库所的情况。pbef|p包含循环子日志中的所有前集库所。接下来我们将给出一个步骤5去定位偏差。

步骤5确定就诊流程偏差位置dl(pi,po)

(1)初始化偏差位置dl(pi,po);

(2)调用步骤4收集循环子日志lsl,遍历最优校准γ,对于ai∈a,ti=>>;

(3)如果存在{ai,...,aj}∈lsl且其中pl表示所有前序变迁的后集库所,执行下一步;

(4)如果所有前序变迁的后集库所的个数个数大于1,执行下一步;

(5)偏差位置的起始位置为偏差位置的结束位置为pl;

(6)否则执行下一步;

(7)偏差位置的起始位置为偏差位置的结束位置为·ai+1;

(8)如果变迁且ai-1的后集库所与ai+1的前集库所相同,执行下一步;

(9)偏差位置的起始位置为p,偏差位置的结束位置为·ai-1;

(10)否则执行下一步;

(11)偏差位置的起始位置为偏差位置的结束位置为·ai+1;

(12)如果变迁ai∈t,执行下一步;

(13)偏差位置的起始位置为偏差位置的结束位置为·ai;

(14)对于日志移动ai=>>,ti∈t;

(15)偏差位置的起始位置为·ai,偏差位置的结束位置为

(16)将得到的就诊流程偏差位置dl(pi,po)返回。

通过调用步骤5,得到循环变迁ai的所有后集库所。

若循环结构中存在并行结构,则首先收集循环子日志中活动的前序库所集,然后找到所有前序变迁的后集库所的个数,若大于1,则变迁对应的后集库所为并行结构的前集库所,由此找到所有的并行结构的前集库所,然后定位偏差。

在例2中,图6给出了存在偏差的日志l3的第一条迹与模型n2的最优校准γ2。我们可以得到基于第一条迹的循环子日志是{<h,d,e,f,g>},(p10,(p4,p5))是偏差位置。

定义19给定一个petri网pn=(p,t;f,m),对于tp∈t,若p∈·tandtp∈·p,则tp是t的前序变迁。tbef|t={tp|p∈·tandtp∈·p}表示所有的逻辑前序变迁的集合。

定义20给定一个petri网pn=(p,t;f,m),对于t∈t,tbef|t表示所有逻辑前序变迁的集合。(ai|t)[m3][m3](m3=|tbef|t|)表示逻辑前序矩阵,其中m3表示所有逻辑前序变迁的集合中逻辑前序变迁的个数。对于o,p∈[0,m3],若o≠p,则(ai|t)[o][p]=lr(o,p);否则

基于以上定义的逻辑关系lr(r,c)被定义如下:

(1)若t被触发,tbef|t允许r或者c其中一个触发;

(2)r||c:若t被触发,tbef|t允许r和c触发,但不能同时触发;

(3)r∨c:若t被触发,tbef|t允许r和c触发;

(4)r∧c:若t被触发,r和c将同时触发。

将变迁的逻辑关系转化为逻辑前序矩阵(ai|t)[m3][m3](m3=|tbef|t|),得到逻辑前序变迁表达式λ(t′,ai|t),继而得到逻辑输入函数i(t)=pl(λ)。

接下来给出基于逻辑petri网的构建和修复含有循环返回结构的过程模型的步骤:

步骤6修正就诊模型,得到修正后的逻辑petri网模型lpn″′=(p″′,t″′;f″′,i″′,o″′,m″′)

(1)初始化原始模型、就诊流程偏差位置dl(pi,po)和循环子日志lsl;

(2)调用步骤1得到新活动,调用步骤3得到循环子日志中变迁之间的关系,调用步骤4收集循环子日志lsl,遍历最优校准γ,调用步骤5定位偏差;

(3)如果ai=>>,

(4)将不可见变迁τ添加到变迁集t″′中,将流关系(·ai→τ)和添加到流关系集合f″′中;

(5)否则如果ai∈a,ti=>>,执行下一步;

(6)如果存在偏差位置执行下一步;

(7)将变迁ai添加到变迁集t″′中,将库所p添加到库所集p″′中,将流关系(ai-1→p)、(p→ai)和添加到流关系集合f″′中;

(8)如果存在偏差位置执行下一步;

(9)将不可见变迁τ添加到变迁集t″′中,将流关系和(τ→·ai)添加到流关系集合f″′中;

(10)如果存在偏差位置执行下一步;

(11)将变迁ai添加到变迁集t″′中,将流关系和(ai→·ai+1)添加到流关系集合f″′中;

(12)调用步骤2得到并发起止对集scifp和并发变迁集sct;

(13)如果(tci,tcf)存在于并发起止对集scifp中,两个变迁tj,tk属于并发变迁集sct,而且tci的后集库所与tj和tk的前集库所都相同,执行下一步;

(14)将逻辑输入表达式添加到逻辑输入表达式集合i″′中;

(15)将逻辑输出表达式o(ai)=·tj∧·tk和添加到逻辑输出表达式集合o″′中;

(16)将得到的修正后的逻辑petri网模型lpn″′=(p″′,t″′;f″′,i″′,o″′,m″′)返回。

例4:图11给出了一个petri网模型n3,l5={<a,b,d,f,l,p1,d,f,l,m,o>,<a,b,d,f,l,m,p1,d,f,l,m,o>,<a,b,d,f,l,p1,e,g,l,n,o>,<a,b,d,f,l,m,p1,e,g,l,m,o>}是一个事件日志。

图12-15分别给出了带有偏差的日志l5的四条迹和模型n3的四个最优校准γ4-γ7。

可以得到新活动是p,并发起止对是(a,l),循环子日志lsl1={<p1,d,f,l>,<pi,d,f,l,m>,<p1,e,g,l>,<p1,e,g,l,m>。可以得到循环子日志中变迁之间的关系,即d#e,f#g。可以得到偏差位置dl(pi,po)=((p8,p9),(p3,p4))。图16给出了使用步骤6得到的修复模型。

图17-18分别给出了使用fahland方法和knapsack方法得到的修复模型。

表1给出例4中三种修正方法结果增加元素对比,包括增加的重复变迁数(adc)|t|,增加的变迁数增加的流关系数(afc)|f|和增加的库所数(apc)|p|。

表1修复结果增加元素对比

基于fahland方法得到的修复模型非常差,这种方法需要在原始模型中添加很多的重复变迁、变迁、流关系和库所。在图17中,修复的模型添加了很多的自环。在这种方法的基础上,模型的精确度会大大的降低。knapsack方法也需要在原始模型中添加很多的重复变迁、变迁和流关系。在图18中,修复的模型添加了很多的自环。在这种方法的基础上,模型的精确度也会大大的降低。步骤1-5的总复杂度可以决定步骤6的复杂度。在步骤6中,第2步的主要工作是:利用步骤1获得新的活动,时间复杂度为o(n),其中n为日志的长度;利用步骤3得到了选择结构中的变迁之间的关系,时间复杂度为o(n),采用步骤4采集循环子日志lsl,时间复杂度为o(n),利用步骤5定位误差,时间复杂度为o(n),第12步是使用步骤2得到并发变迁集sc和并发起止对集scifp,时间复杂度为o(n)。因此,步骤6的时间复杂度是o(n)。因此,利用基于逻辑petri网的构建和修复含有循环返回结构的过程模型的方法是一种有效的方法。下面对本发明提出逻辑修正方法与fahland方法和knapsack方法进行实验和比较分析,实验所使用的过程和事件日志来源于青岛某医院的胸外科手术。

下面以某医院胸外科就诊流程为例,在原有的事件日志的基础上进行过程挖掘建模,图19展示了医院病人就诊的部分流程。下面对主要的活动过程进行描述:首先,医生将通过门诊检查来检查病人的需要。ct检查分为常规ct和pet-ct两种。临床检查分四种:血气分析、血常规、esr和生化全套。另一种方法是:造影检查。检查结果作为诊断患者病情的标准,诊断结果将得到确认。最后,病人将根据诊断结果开始进行治病。

在实际的就诊过程中,可能存在更多的情况。患者在做完生化全套后,可以选择去做血常规或血气分析。患者在做完生化全套后,他们也可以只选择血气分析而不是血常规。患者在完成血气分析后,可以选择去做血沉。因此,需要修理这一部分。在了解了部分患者的就诊流程之后,获得相应的事件日志,首先需要过滤日志中明显偏离过程模型的日志,比如过程缺少开始活动或者明显没有完成的案例。表2给出了这些事件日志的主要属性,事件日志中迹的总数、迹的长度以及迹中出现的总偏差数。日志l1中包含2056条迹,偏差数4523个,迹的长度范围是7—10。l2中包含2263条迹,偏差数4807个,迹的长度范围是7—10。l3中包含2550条迹,偏差数5029个,迹的长度范围是7—10。

表2三组详细日志信息

通过对图19的模型和表2中的日志进行实验。图20-22分别给出了knapsack方法[13]、fahland方法和本发明提出的方法的修复模型。

从图20中的修正结果可以看出,修正模型与原模型相比增加了34条流关系,17个变迁,1个新变迁和16个重复变迁。从图21中的修正结果可以看出,修正模型与原模型相比增加了12个库所,60条流关系,6个不可见变迁,19个变迁,1个新变迁和12个重复变迁。这两种方法得到的修正模型中存在多个重复活动,极大地增加了模型的复杂度。修正后的模型较大的改变了原模型的结构,在模型后半部分存在较大的冗余。从图22中的修正结果可以看出,修正模型与原模型相比增加了3个不可见变迁,11条流关系,4个变迁,和1个新变迁,但是修复后的模型没有增加重复的活动。因此,本发明方法可以被认为是一种好的基于lpns的循环返回结构模型的构造和修复方法。

表3-5分别表示三种修正方法的修正效果,其中包括增加的库所数|p|、流关系|f|、总的变迁数|t+τ|、重复变迁数|t|,以及拟合度fit和精确度prec。

表3基于knapsack方法的修正结果

表4基于fahland方法的修正结果

表5基于本发明提出的方法的修正结果

将修复后的模型与原模型进行对比评价。本发明采用不同数量级的事件日志对fahland方法和knapsack方法以及本发明的修正方法进行比较,图23和图24分别是两种修正技术在不同数量级下修正结果拟合度和精确度的变化情况。将这三个日志的平均值作为参考,以说明适应度和精度的变化。图23显示了三种方法的拟合度。随着迹的数量增加,fahland方法和knapsack方法修复后的过程模型的拟合度不如本发明提出的方法好。图24是三种修正技术在不同数量级下修正结果精确度的变化情况。由图24可知,随着迹的数量增加,fahland方法和knapsack方法修复后的过程模型的精确度越来越低,并且修正效果明显低于基于本发明方法的修正效果,基于lpn的修正方法的精确度保持在一个相对来说更高的精确度。

当然,以上说明仅仅为本发明的较佳实施例,本发明并不限于列举上述实施例,应当说明的是,任何熟悉本领域的技术人员在本说明书的教导下,所做出的所有等同替代、明显变形形式,均落在本说明书的实质范围之内,理应受到本发明的保护。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1