Petri网是对离散并行系统的数学表示。由于Petri网能够表达并发的事件,被认为是自动化理论的一种。研究领域趋向认为Petri网是所有流程定义语言之母。
结构
Petri网的结构
一个已标识的Petri网是一个六元组:
PN={P,T,F,K,W,M0},
其中
P={P1,P2,…Pm,},库所集,
T={T1,T2,…Tm,},变迁集,
F(P×T)∪(T×P),弧集, ⊆
K:P→N+∪{ω},库所容量函数,
K(P)=ω表示P的容量为无穷,N+={1,2,…},
W:F→N+,弧上权,
M0:P→N,初始标志,要求:P∩T=,P∪T≠ф,
M:P→N,N={0,1,2,…},网的标识,且
∀Pi⊆P,M(Pi)≤K(Pi),i=1,…m。
( P,T,F)被称为PN的基网,记为N。
Petri网的图形表示就是一种有向图,它包括两类节点:库所(用圆表示)和变迁(用短线表示)。弧用来表示流关系。Petri网的状态由标识M来表示,在某一时刻的标识决定该PN的状态。图1表示一个已标识的PN,各库所包含整数(正或零)个标记(称为token或marking),用圆点表示,初始标识M0=(1,0,0,0,0),下文称为令牌。
标识在Petri网中的变化遵循一定的规则——变迁规则:(1)一个变迁,如果它的每一个输入库所(库所到变迁存在有向弧)都包含至少一个标记,则这个变迁是使能的;(2)一个使能变迁的激发,将引起其每个输入库所中标记减少,而每个输出库所(变迁到库所存在有向弧)中增加标记。
基本特性
可达性:指系统运行过程中能达到指定的状态。状态M1从状态M可达,是指存在使能的变迁序列σ,使得M[σ]>M1。
有界性(安全性):反映系统运行过程中对资源变量的需求。在理论分析时常可假定库所容量为无穷,但在实际系统设计中,必须使网络中的每个库所在任何状态下的标志数小于库所的容量,这样才能保证系统的正常运行,不至于产生溢出现象。
活性:表明系统能正常运行,即无死锁。此特性在系统设计中很重要,要保证系统避免死锁。
回复性:表明系统运行的周期性或循环性。
公平性:反映系统的无饥饿性,即系统的各个子部分在竞争共享资源时不出现饥饿现象。
可逆性:表明系统运行的可回复性,即系统可以由当前状态返回到初始状态;
保守性:表明在实际系统中的资源是受限的,即保守的。
一致性:对并行系统和并行算法比较重要,表明系统的两个行为之间不存在冲突。
规则
+ 有向弧是有方向的
+ 两个库所或变迁之间不允许有弧
+ 库所可以拥有任意数量的令牌
o 行为
如果一个变迁的每个输入库所(input place)都拥有令牌,该变迁即为被允许(enable)。一个变迁被允许时,变迁将发生(fire),输入库所(input place)的令牌被消耗,同时为输出库所(output place)产生令牌。
+ 变迁的发生是原子的
+ 有两个变迁都被允许的可能,但是一次只能发生一个变迁
+ 如果出现一个变迁,其输入库所的个数与输出库所的个数不相等,令牌的个数将发生变化
+ Petri网的状态由令牌在库所的分布决定
o Petri网流程建模
一个流程的状态是由在场所中的令牌建模的,状态的变迁是由变迁建模的。令牌表示事物(人,货物,机器),信息,条件,或对象的状态; 库所代表库所,通道或地理位置;变迁代表事件,转化或传输。
一个流程有当前状态,可达状态,不可达状态。
o 经典Petri网的局限性
+ 没有测试库所中零令牌的能力
+ 模型容易变得很庞大
+ 模型不能反映时间方面的内容
+ 不支持构造大规模模型,如自顶向下或自底向上