过程挖掘(Process Mining)3——控制流表示式的流程建模语言(7):流程树(Process Tree)以及建模语言的总结

流程树(Process Tree)

    流程模型具有与事件日志无关的不期望的属性都是不合理的(unsound),诸如Petri网、WF网、BPMN模型、EPCs、YAWL模型以及UML活动图等都有可能出现死锁(deadlocks)、活锁(livelocks)和其他缺陷等不合理的属性,而流程挖掘方法挖掘的这些基于图的流程模型有可能就是不合理的。而因果网C-nets通过更松的语义(more relaxed semantics)来解决会有不合理出现的问题。另一种解决方法就是使用块结构模型(block-structured models),这种模型从结构上就是合理的。流程树就是这样的一种块结构模型,它是一种分层流程模型(hierarchical process model),其内结点(inner nodes非叶子结点)是操作符(operators如序列符、选择符),叶子结点(leaves)是活动(activities)。
    同因果网一样,流程树也是为流程发现量身定做的流程建模语言,现已经产生了一系列归纳流程发现(inductive process discovery)技术可以挖掘流程树。
下图给出了一个流程树例子,以及流程树包含的操作符和特殊活动,该流程可以文本表示为→(a,↺(→(∧(×(b,c),d),e),f ),×(g,h))
在这里插入图片描述

图1 一个流程树例子

    图中显示了四种类型的操作符:→(序列组合,sequential composition),×(排他选择,exclusive choice),∧(并行组合,parallel composition)以及↺(重复循环,redo loop)。
    顺序操作符其孩子按顺序(从左到右)执行,如上图流程根是顺序操作符,叶子结点活动a是它的最左的结点,因此第一个发生,随后依次发生重复循环redo孩子结点和排他选择孩子结点。
    重复循环操作符首先执行其最左边的孩子,并且可以执行其它孩子结点到循环回到最左边的孩子(意味着最左边孩子必须首尾都出现),上图流程中的重复循环结构↺(→(∧(×(b,c),d),e),f ),其最左边孩子是→(∧(×(b,c),d),它将第一个发生,并在执行其他孩子结点后回到这个结点。
    排他选择和并行组合很容易理解。需要注意的是,有些结构表示虽然不同,但是产生的行为却是一致的,比如→(a,a,a)和∧(a,a,a)它们都产生行迹<a,a,a>。
沉默活动τ是不可观察的,由于重复循环操作符的语义的特殊要求,τ通常用在该操作符的最左边孩子,从而使该结构可能出现的行迹具有很大的自由性。
    有了上面的解释,下面给出流程树的定义:

定义1(流程树,Process tree) 令A⊆𝓐是一个有限的活动集,且τ ∉ A,⊕={→,×,∧,↺}是流程树操作符。
• 如果a∈A∪{τ},那么Q=a是一棵流程树,
• 如果Q1,Q2,…,Qn(n≥1)是流程树,且操作符⊕∈{→,×,∧},那么Q=⊕(Q1,Q2,…,Qn)是一棵流程树,
• 如果Q1,Q2,…,Qn(n≥2)是流程树,那么Q=↺(Q1,Q2,…,Qn)是一棵流程树。

    流程树的形式化定义很容易理解,这是常规树形数据结构的定义,对于四种操作符,redo比较特殊,再强调一下。redo至少需要两个孩子结点,是第一个孩子结点(最左边孩子结点)是“do” part,其他孩子结点称为“redo” part,对于redo得到的行迹,总是这样的结果<do,(redo),do,(redo),…,do>,所有redo的第一个孩子经常是沉默活动。
    流程树可以转换为工作流网,下图给出了流程树结构的转换规则,沉默活动τ的引入是为了保持WF-net的结构。同样下面的映射规则也可以很容易的迁移到其他建模语言上如BPMN、YAWL、EPCs等。
在这里插入图片描述

流程树到工作流网映射图

    将流程树转换为工作流网使我们可以使用现有的一致性检验和性能分析技术。但是流程树的语义也可以直接推导(而不需要引入WF-nets),为了定义流程树的语义,我们引入两个针对序列的操作:拼接(·)(concatenation)和打乱(◇)(shuffle)。
拼接操作将两个序列拼接起来,比如序列σ1,σ2 ∈ A∗ ,σ1·σ2=σ1σ2。拼接操作也可以应用到两个序列集合S1和S2,S1·S2表示两个集合的笛卡尔连接,并且S1的序列先于S2的序列。记⊙1≤i≤n Si = S1 · S2 ··· Sn表示n个序列集合的有序拼接序列集合。
    打乱操作将两个序列中的事件随机互相插入行成一个新序列,并且事件顺序保持原来序列的顺序,如<w,o>◇<r,d>={<w,o,r,d>,<w,r,o,d>,<r,w,o,d>,<w,r,d,o>,<r,w,d,o>,<r,d,w,o>}。同样打乱操作可以应用到两个序列集合中,S1◇S2 = {σ ∈ σ1 ◇ σ2 | σ1 ∈ S1 ∧ σ2 ∈ S2}。记1≤i≤n Si = S1◇S2 ◇···◇Sn表示n个序列集合的打乱交叠序列集合。
    现在可以定义流程树的语义了:

定义2(流程树的语义) 令Q∈𝒬A是定义在A上的流程树,𝓛(Q)是Q的语言(language),即可以由它生成的行迹的集合,𝓛(Q)递归定义为:
•𝓛(Q)={<a>},如果Q=a∈A,
•𝓛(Q)={<>} ,Q=τ(沉默活动) ,
•𝓛(Q)=⊙1≤i≤n 𝓛(Qi),如果 Q = →(Q1,Q2,…,Qn),
•𝓛(Q)=∪1≤i≤n 𝓛(Qi),如果 Q = ×(Q1,Q2,…,Qn),
•𝓛(Q)=1≤i≤n 𝓛(Qi),如果 Q = ∧(Q1,Q2,…,Qn),
•𝓛(Q)={σ1·σ’1·σ2·σ’2 ··· σm ∈ A| m≥1∧∀1≤j≤mσj∈𝓛(Q1)∧∀1≤j<mσ’j∈∪2≤i≤n𝓛(Qi)},如果Q=↺(Q1,Q2,…,Qn)。

    流程树是结构上合理的(sound by construction)。
    流程树可以说是介于流程演算(流程树可以说精心选用了流程演算中的一些操作符)和正则表达式(从上面流程树的语义的定义可以看出)的中间物,并且是为流程算法量身定做的。流程演算可以处理并发,但无法从事件数据中挖掘出来;而正则表达式不提供用于表示并发和redo循环的操作符,而流程树从表达能力上就可以兼容正则表达式。
    此外,流程树也与Petri网的合理性保留约简规则(soundness preserving reduction rules)有关,这是在保留Petri网的一些诸如合理性、活性、有界性等性质的前提下对网的规模进行约简的规则。
    后续介绍归纳流程发现技术(inductive process discovery techniques),我们会对流程树的操作符的选择的基本原理有更清晰的认识。

建模语言比较与总结

前面介绍了变迁系统(或者叫过渡系统、状态转移图、有限状态机)、Petri网、工作流网WF-net、YAWL、BPMN、EPCs、因果网C-net和流程树PT八种建模语言;从结构上看,除了流程树是树形结构,其他建模语言都是图表示的,而在图表示中,只有变迁系统只使用结点(状态)和有向弧(转移、活动)两种符号,其他建模语言都增加了其他符号以表达更多和更强的语言。
变迁系统是最简单的流程建模语言,然而它不能表示并发结构,存在状态爆炸问题。但是由于其简单性,非专业者容易读懂的特点,它是最广泛使用的流程表示了;
Petri网是提出的最早能够处理并发的建模语言,并且得到广泛而深入的研究,并且已经出现了多种高级扩展(即使如此,基本Petri网是最基础的Petri网,因为高级网络都可以转化为基本Petri网),人们提出并研究了Petri网的诸多属性(结构属性、行为属性等,如死锁、活锁、有界性等),并且有很多方法来计算并验证这些属性。然而Petri网更多用在系统建模上,而不是通过流程挖掘挖掘出来的;
工作流网WF-net是Petri网的一种特殊形式,在其上的合理性要求使得它适用于业务流程上(要求一个开始库所和一个结束库所),并且能够通过流程发现技术(α算法)来挖掘事件日志的工作流网;
YAWL、BPMN和EPC这类建模语言强化了建模符号,可以表达更多的语义,也具备处理并发的能力,甚至包含了数据视角(YAWL的数据驱动);但是在建模时也有一些困境,存在恶性循环这类现象;在流程发现技术上,我们也可以挖掘事件日志的BPMN模型;
因果网是为流程发现技术量身定做的一种建模符号,与上面的建模语言不同(关注状态及其连接),它关注流程的活动,流程的状态只有绑定来确定,而不具体去描述流程的状态;而事件日志一般也存储流程中活动的发生及其产生的数据,因此因果网适用于流程发现;
流程树也是为流程发现量身定做的,适用在归纳流程发现技术上,它本身的结构就具备了合理性;然而,因果网和流程树都缺乏可理解性,不适用于对流程进行建模,通常需要转换为其他建模语言,以提供给非专业者理解的能力。

从我们流程挖掘的学习上,变迁系统、工作流网、BPMN(2.0)、因果网和流程树是我们必学的,因为我们通常就是使用它们来建模,流程发现的输出等;对于Petri网,其理论体系已经很庞大,我们只关心与工作流网相关的一些属性。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值