过程挖掘(Process Mining)3——控制流表示式的流程建模语言(3):Petri网(Petri Net)

Petri网

    Petri网是提出比较早且研究最好的可用于并发建模的流程建模语言。尽管图形表示法直观且简单,但是Petri网是可执行的,可以使用许多分析技术对其进行分析。Petri网是由库所(place)和变迁(transition)组成的二分图(bipartite)。网络结构是静态的,但是在触发规则(firing rule)的控制下,托肯(token)可以流经网络。 Petri网的状态由托肯在各库所的分布确定,并称为其标记(marking)。下图所示的初始标记中,只有一个托肯,start是唯一标记的库所。

变迁系统的等效Petri网

图2 与图1对应的Petri网

    下面给出Petri网的形式化定义:
定义2(Petri网) 一个Petri网是一个三元组N = (PTF),其中P库所的有限集合,T变迁的有限集合,并且PT=∅,F⊆(P×T)∪(T×P)是有向弧的集合,称为流关系(flow relation)。一个标记Petri网以(NM)对表示,其中N = (PTF)是一个Petri网,M∈𝔹(P)是一个定义在P上的多重集,表示该网络的标记(marking)。标记Petri网的所有标记的集合记为𝓝。
    上图Petri网可以形式化描述为: P = {start,c1,c2,c3, c4,c5, end}, T = {a,b,c,d,e,f,g,h}, and F = {(start,a),(a,c1),(a,c2),(c1,b),(c1,c), (c2,d), (b,c3), (c,c3), (d,c4), (c3,e), (c4,e), (e,c5), (c5,f), (f,c1),(f,c2),(c5,g),(c5,h),(g, end),(h, end)}。
    上述所示的标记是[start],即仅包含一个托肯的多重集。这样标记的Petri网的动态行为由所谓的触发规则定义。 如果其每个输入扩所都包含一个标记,则变迁可以使能(enabled)。使能的变迁会触发时每个输入库所消耗一个托肯,并为每个输出库所产生一个托肯。 因此,在标记[start]时使能了变迁a。 触发会产生标记[c1,c2]。注意,消耗了一个托肯,并生成了两个托肯。 在标记[c1,c2]时,变迁a无法使能。但是,变迁b、c和d可以使能。从标记[c1,c2]开始,触发b将导出标记[c2,c3]。 此时d仍处于使能状态,但b和c则不是。由于涉及f的循环构造,因此有无数个从[start]开始标记到[end]结束标记的触发序列。(注意这里使能指变迁的状态,触发指变迁的发生)
    下面给出触发规则的形式化定义以描述Petri网的动态特征。
    首先给出Petri网中结点的前集后集的概念:
    结点𝔁的前集记为•𝔁,•𝔁={𝔂|(𝔂, 𝔁)∈F}(即所有指向𝔁的入结点的集合)。
    结点𝔁的后集记为𝔁•,𝔁•={𝔂|(𝔁, 𝔂)∈F}(即所有从𝔁指出的结点的结合)。
定义3(触发规则) 令(NM)是一个网结构为N = (PTF),标记为M∈𝔹(P)的标记Petri网。变迁tT可以使能,记为(NM)[t>,当前仅当•tM(这里集合之间的比较,可以认为•t包含于M中)。触发规则_[_>_⊆𝓝×T×𝓝是满足任何(NM)∈𝓝和任何tT的最小关系,(NM)[t>⇒(NM)[t >(NM \•tt•)。(\是减集合符号)
    (NM)[t>表示在标记Mt是使能的,例如图中的(N,[start])[a>,a是使能的。(NM)[t>(NM’)表示触发此使能的变迁会导致标记M’。例如,(N,[start])[a>(N,[c1,c2])和(N,[c3,c4])[e>(N,[c5])。
    令N=(PTF)的(NM0)为标记Petri网。当且仅当对于某个自然数nN存在标记M1,…,Mn且变迁t1,…,tnT时,序列σ∈T称为(N,M0)的触发序列,使得σ= t1tn,并且对于所有0≤𝓲<n的𝓲,(NM𝓲)[t𝓲+1>和(N,M𝓲)[t𝓲 + 1>(N,M𝓲+1)。比如上图一个可能的触发序列σ=< a,c,d,e,f,b,d,e,g >。
    标记M可达的(reachable)当且仅当存在一个变迁序列σ使得(NM0)[σ>(NM)。
    可以为Petri网的变迁定义标签函数,称为标签Petri网:
定义4(标签Petri网) 一个标签Petri网是一个五元组N=(P, T, F, A, 𝓵),,其中A⊆𝓐是活动标签的集合,𝓵∈TA是一个标签函数。
    理论上,多个不同的变迁可以使用相同的标签。可以把变迁标签看做可观测活动(observable action)。可以需要表示一种不可观察的特殊的标签,通常保留标签τ,一个变迁t的𝓵(t)=τ,该变迁是不可观测的,这样的变迁称为沉默(silent)变迁或者隐形(invisible)变迁。显然,很容易将一个Petri网转换为一个标签Petri网,只需要对每个tT,应用𝓵(t)=t;然而反过来却不一定能进行转换,因为可能存在多个变迁拥有同一个标签。同样,可以将一个标签Petri网转换为一个变迁系统,为此,首先介绍可达图的概念。
定义5(可达图) 令(N,M0)是一个带初始标记的标签Petri网,其中N=(P, T, F, A, 𝓵)。从(N,M0)可以导出一个变迁系统TS=(SA’T’),其中S=[N,M0>,Sstart={M0},A’=AT’={(M,𝓵(t),M’)∈S×A×S|∃t∈T(N,M)[t>(N,M’)}。这个TS通常也被称为(N,M0)的可达图(Reachability Graph) (PS 吴哲辉的《Petri网导论》中称为可达标识图,可以说是一个东西,且这里给出求可达标识图的算法)。
    图3给出了图2对应的可达图:
在这里插入图片描述

图3 从图2导出的变迁系统

    Petri网并没有明确给出一个终点标记Send的集合。然而在上图的例子中可以得到Send= {[end]}。之后我们会学习到Petri网判断死活活锁的能力。
    需要注意的是一个Petri网的变迁可能可以对应相应变迁系统的多个变迁(毕竟一个变迁的触发可能可以到不同的标志)。如果一个标记Petri网包含比较多的并发结果或者一个库所存在多个托肯,则转换成的变迁系统可能很大且复杂。实际上,Petri网可能有无限多个可达标记状态(这个Petri网不是有界的,下面将介绍有界性等概念),于是对应的变迁系统也将存在无限个状态(PS 这是不可可视化表达的,需要用可覆盖性树表出,详细见吴哲辉《Petri网导论》)。可见使用变迁系统的局限性之大。
在这里插入图片描述

图4 一个标记Petri网,对应的变迁系统高达6 5=7776个状态

    通过构建可达图(如果可能)或可覆盖性树,人们可以回答有关流程模型行为的各种问题。此外,专用的分析技术还可以在不构造状态空间的情况下回答特定问题,例如,使用Petri网的线性代数表示(PS 还是吴哲辉的《Petri网导论》)。下面,列出了通常在标记Petri网的情况下进行研究的一些通用属性:
k-有界的(k-bounded):一个标记Petri网(N,M0)是k-有界的当且仅当在任何可达标志状态下,没有一个库所的托肯数量会超过k。形式化描述为:∀pPM∈(N,M0)>,有M(p)≤k
安全性(safe):一个标记Petri网是安全的当且仅当它是1-有界的。
有界性(bounded):一个标记Petri网是有界的当且仅当存在k∈ℕ使得它是k-有界的。
无死锁(deadlock free):一个标记Petri网(N,M0)是无死锁的,如果在每个可达标记中,都至少有一个变迁是使能的。形式化描述为:∀M∈(N,M0)>,∃tT且(N,M)[t>。
活性(live):一个标记Petri网(N,M0)中的变迁tT是活的,如果对网中的每一个可达标记,t都有可能可以使能。形式化描述为:∀M∈(N,M0)>,∃M’属于[N,M>且(N,M’)[t>。一个标记Petri网是活的,若果网中每一个变迁都是活的。需要注意的是,无死锁Petri网并不一定要求是活的,活性是更严格的(PS 活性是每个状态下每个t都有机会使能,无死锁是只要每个状态下都能保证走到终点就好)。
    Petri网是获得大量理论研究并且可以很好表示并发结构的工具(PS 其实Petri网最近十年来严重降温,而过程挖掘则在迅速崛起),并且有大量的分析技术和工具存在1。然而,这里描述只是简单的模型,显然无法表示数据相关和时间相关的内容,因此一些高级Petri网已经被提出,比如有色Petri网(Colored Petri nets CPNs),这是一种基于Petri网的且得到相当广泛的研究和应用的形式化方法,它能处理数据相关和时间相关的内容层面。CPN中的托肯带有数据值和时间戳, 数据值(通常称为“颜色”)描述了由托肯建模的对象的属性, 时间戳指示可以消耗令牌的最早时间,变迁可以为产生的令牌分配延迟, 这样就可以对等待时间和服务时间进行建模。 CPN可以是分层的,即可以将变迁分解为子过程,从而可以构建大型模型。 CPN工具是一个工具集,为CPN的建模和分析提供支持2


  1. http://www.informatik.uni-hamburg.de/TGI/PetriNets/index.php ↩︎

  2. www.cpntools.org ↩︎

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值