目录
1. Petri nets简介
一个Petri网由place、transition和弧(arc)组成。弧从一个place运行到一个transition,或者反之亦然,而不是在place之间或transition之间。弧从一个place跑到一个transition,被称为transition的输入地;弧从一个transition跑到的place被称为过渡的输出地。
从图形上看,Petri网中的place可以包含一个离散的标记(token)。标记在地方上的任何分布将代表网的一个配置,称为标记。在与Petri网图有关的抽象意义上,Petri网的一个过渡如果被启用,即在其所有的输入位置上有足够的标记,就可以启动;当过渡启动时,它消耗所需的输入标记,并在其输出位置创建标记。触发是原子性的,即是一个不可中断的单一步骤。
除非定义了执行策略(例如过渡的严格排序,描述优先级),否则Petri网的执行是不确定的:当多个过渡同时被启用时,它们将以任何顺序发射。
由于发射是不确定的,而且多个标记可能出现在网的任何地方(甚至在同一个地方),因此Petri网很适合为分布式系统的并发行为建模。
为什么需要Petri nets?
- 通常不可能预测一个递归函数的计算会消耗多少空间。
- 如果可用的资源不足以完成计算,进行递归计算的数据处理系统应该是可扩展的。
- 扩展一个系统比重新开始一个更大的系统更有效率。
- 如何描述一个可以无限扩展的系统架构?
- 这种可扩展系统的每一次扩展都扩大了系统的空间。
- 因此,这样一个可无限扩展的系统必须具有以下特征:没有中心部件;没有中央同步时钟。
Carl Adam Petri在他的论文《Kommunikation mit Automaten》[1](与自动机的交流)中,展示了如何构建一个可无限扩展的异步系统架构。Petri系统是由本地封闭的组件组成,通过本地接口进行通信,执行具有本地因果关系的行动。后来,当Petri开始使用图形表示他的系统时,Petri nets一词才被创造出来。Petri nets是计算机科学中最流行的概念之一。
1.1 网状结构的组成部分
Petri网是一个有两类节点的有向图:places和transitions。
Place
- 一个palce
是一个被动的系统组件。
- 用图形表示为一个圆或椭圆。
- 一个palce有离散的状态,可以储存东西。
Transitions
- transition
是一个活跃的系统组件。
- 用图形表示为一个正方形或长方形。
- 一个过渡会消耗、生产或转移事物。
Arcs(前两个是系统组件,ARC不是系统组件)
- arc不是一个系统组件,而是一个系统组件之间的逻辑关系。
- 用图形表示为一个箭头。
- 一个arc把一个palce和一个transition联系起来,或者把一个transition和一个palce联系起来;因此,Petri net是一个有向二边形图。
1.2 网状结构
Place Set:
Transitions Set:
Arcs Set:
所有place和transition的笛卡尔积,F只能属于这个最大集。
Places和Transitions是N的元素,F是N的flow relation。
1.3 标识(Markings)
标识是对系统状态的编码,是网状结构中各处tokens的排列。
Tokens
- Token可以代表现实世界中可以被消费、生产或转移的事物,并通过过渡来实现。
- 一个token可以表示一个过渡的发生所要满足的条件
- Token被放置在描述地点的圆圈和椭圆内,在图形上表示为黑点。
- 可以用一个符号标记代替黑点来指代一个具体的事物(例如
)。
初级网系统只使用黑点token(即token从它们所代表的事物的性质中抽象出来)。
2. 初级网络系统
一个初级网络系统是
是初始时刻所有place的token的情况。
2.1 前序节点集和后序节点集
2.2 Enables的条件
2.3 Step rule
2.4 不确定的情况
如果我们选择右边的transition,
2.5 热和冷的过渡
到目前为止,我们假设一个启用的过渡最终会变成禁用,或者发生。 对于返回硬币(b)和c的转换来说,这确实是真实的,它们是系统内部的。 例如,投币口中的硬币最终会被转移到硬币库或被退回。 我们把这种转换称为热转换。然而,在现实世界中,插入硬币(a)和取走饼干(d)的转换是由顾客(外部系统)触发的,而且不能保证它们是否会发生。 我们把这种过渡称为冷过渡,并用B表示。冷过渡很少见,经常出现在与环境的接口处。
3. 总结
- Petri网为描述分布式系统(例如,分布式数据库和异步通信协议)提供了一种自然的形式主义。
- 一个Petri网描述了一个由组件组成的系统,这些组件执行具有本地原因和效果的行动。
- 一个网状结构描述了系统的被动和主动组件,以及组件之间的逻辑关系,是一个双点有向图。
- 一个网状系统是一个网状结构和一个代表系统当前状态的标记。
- 一个网状系统的几个过渡可以同时被启用,但只有一个被启用的过渡会被非确定性地选择发生。
- 一个过渡的发生会导致系统进入一个新的状态,这个状态是根据当前状态用确定性的步骤规则计算出来的。
- 在验证描述为Petri网的系统的形式属性(如可达性、有界性、有效性)方面有丰富的知识体系。