规则:http://roclinux.cn/?p=1592
Petri网是对离散并行系统的数学表示。Petri网是1960年代由C.A.佩特里发明的,适合于描述异步的、并发的计算机系统模型。Petri网既有严格的数学表述方式,也有直观的图形表达方式。
由于Petri网能表达并发的事件,被认为是自动化理论的一种。研究领域趋向认为Petri网是所有流程定义语言之母。
经典的Petri网是简单的过程模型,由两种节点:库所和变迁,有向弧,以及令牌等元素组成的。
Petri网的元素:
- 库所(Place)圆形节点
- 变迁(Transition)方形节点
- 有向弧(Connection)是库所和变迁之间的有向弧
- 令牌(Token)是库所中的动态对象,可以从一个库所移动到另一个库所。
Petri网的规则是:
- 有向弧是有方向的
- 两个库所或变迁之间不允许有弧
- 库所可以拥有任意数量的令牌
行为
如果一个变迁的每个输入库所(input place)都拥有令牌,该变迁即为被允许(enable)。一个变迁被允许时,变迁将发生(fire),输入库所(input place)的令牌被消耗,同时为输出库所(output place)产生令牌。
注意:
- 变迁的发生是原子的;
- 有两个变迁都被允许的可能,但是一次只能发生一个变迁;
- 如果出现一个变迁,其输入库所的个数与输出库所的个数不相等,令牌的个数将发生变化;
- Petri网络是静态的;
- Petri网的状态由令牌在库所的分布决定。
两个变迁争夺一个令牌的情形被称之为冲突
多个弧连接两个节点的情况。在输入库所和变迁之间的弧的个数决定了该变迁变为被允许需要的令牌的个数。弧的个数决定了消耗/产生的令牌的个数。