Petri

Petri

 

Petri 网是一种用于描述离散的、分布式系统的数学建模工具。其概念起源于 1939 8 月,当时 13 岁的 Carl Adam Petri 发明了它并使用它作为描述化学反应过程的工具。1962 年,Carl Adam Petri 以其著名的论文“Kommunikation mit Automaten”获得博士学位。在该论文中,他正式提出了 Petri 网论,这一年被视作 Petri 网的诞生之年。1970 年以后,Petri 又将他的网论发展为通用网论。现在,世界各地有许多科研人员专注于 Petri 网的研究,每年都举行 Petri 网国际会议。

 

一、历史: PetriCarl Adam Petri1962年在博士论文中首次提出来的。作为描述系统元素的异步并发操作的工作模型,Petri网在计算机等许多领域都获得了广泛的应用。Petri网是完全从过程的角度出发为复杂系统的描述与分析设计提供的一种有效的建模工具,能自然的描述并发、冲突、同步、资源争用等系统特性,并带有执行控制机制,同时还具备形式化步骤及数学图论相支持的理论严密性。值得一提的是Petri网的图形表达的直观性和便于编程实现的技术特点,使得它已经成为目前工作流及作业流建模的主要工具之一。

 

二、简介:由于Petri网能够表达并发的事件,被认为是自动化理论的一种。研究领域趋向认为Petri网是所有流程定义语言之母。Petri网是对离散并行系统的数学表示。Petri网是1960年代由卡尔·A·佩特里发明的,适合于描述异步的、并发的计算机系统模型。 Petri网既有严格的数学表述方式,也有直观的图形表达方式,既有丰富的系统描述手段和系统行为分析技术,又为计算机科学提供坚实的概念基础。

 

三、诞生背景:卡尔·A·佩特里是一名物理学家,他发明Petri网主要是从物理的角度去描述并发现象的。据佩特里本人所述,他认为60年代自动机理论由于缺乏并发(Concurrence)概念不适合于表达现代物理学理论,例如狭义相对论(Special Relativity)不确定性原理(Uncertainty Principle)Petri网的一个重要的贡献,就是Petri网里面不存在所谓的全局时间的概念,它能够很容易地表达狭义相对论的观点。即Petri网可以描述每一个节点的拥有自己的独立时序,只要条件满足,就可以发生。 从狭义相对论的观点出发,两个时空点之间如果没有因果关系把它们连接起来(或者说类空的),它们就是独立的,不能说其中一个发生在前另一个在后或者相反。因此,Petri网里面的两种变迁(见下文)如果都有发生的条件,则不能认为其执行顺序有任何关系。然而,Petri网旨在描述变迁之间的因果关系,并由此构造时序。

 

四、概念:一个Petri网的结构元素包括:库所(place)、变迁(translation)和有向弧(arc)库所使用圆来标识,用于描述可能的系统局部状态。变迁使用矩形标识,用于描述修改系统状态的事件。有向弧可以从库所节点指向变迁节点,或者从变迁节点指向库所节点。通过有向弧描述库所和变迁之间的联系,等价于自动机中的状态转移函数,表示使事件发生的局部状态()或事件发生所引起的局部状态的变化()Petri网模型中,系统的动态特性用令牌(token)标识,令牌表示为包含在库所节点中的圆点,它反映着库所代表的局部状态实现的动态情况。若某库所中包含一个令牌,则表示库所代表的局部状态的一次实现(条件或结果为真);若库所中无令牌,则表示库所代表的局部状态尚未实现(条件或结果为假)

 

五、经典Petri网结构:经典的Petri网是简单的过程模型,由两种节点:库所和变迁,有向弧,以及令牌等元素组成的。

Petri网的元素:

  + 库所(Place)圆形节点:一般用圆圈表示,可以形容为容纳资源/托肯的场所。它可以有容量限制也可以假设为容量无穷大;

  + 变迁(Transition)方形节点 :一般用矩形或者一条短线表示,描述了从一个状态到另一状态的变化。变迁的发生是发生一般是原子性的,即不可中断;

  + 有向弧(Connection)是库所和变迁之间的有向弧:一般用一段有向弧表示,从库所指向变迁或者由变迁指向库所,表征了两者之前一种偏序关系。弧上可以设定权值大小,即一次性消耗的资源数目;

+ 令牌(Token)是库所中的动态对象,可以从一个库所移动到另一个库所:即网系统中的资源,托肯的数目即资源数。在活的网系统中,资源可以在库所变迁中不断流动,它可以用来检测协议中的错误,死锁状态。

六、Petri网的规则

  + 有向弧是有方向的

  + 两个库所或变迁之间不允许有弧

+ 库所可以拥有任意数量的令牌

+ 变迁的发生是原子的,也就是说,没有一个变迁只发生了一半的可能性。

  + 有两个或多个变迁都被允许的可能,但是一次只能发生一个变迁。这种情况下变迁发生的顺序没有定义。

  + 如果出现一个变迁,其输入库所的个数与输出库所的个数不相等,令牌的个数将发生变化,也就是说,令牌数目不守恒。

+ Petri网络是静态的,也就是说,不存在发生了一个变迁之后忽然冒出另一个变迁或者库所,从而改变Petri网结构的可能。

 + Petri网的状态由令牌在库所的分布决定。也就是说,变迁发生完毕、下一个变迁等待发生的时候才有确定的状态,正在发生变迁的时候是没有一个确定的状态的。 tri网的行为

+如果一个变迁的每个输入库所(input place)都拥有令牌,该变迁即为被允许(enable)。一个变迁被允许时,变迁将发生(fire),输入库所(input place)的令牌被消耗,同时为输出库所(output place)产生令牌。

   +两个变迁争夺一个令牌的情形被称之为<STRONG id="bks_auurswyv">冲突。当发生冲突的时候,由于Petri网的时序是不确定的,因此具体哪个变迁得以发生也是不确定的。实际应用中,往往需要避免这种情形。用于描述现象的Petri网也可能自然出现冲突,这表明我们对于变迁发生的条件没有完全了解。

+多个弧连接两个节点的情况。在输入库所和变迁之间的弧的个数决定了该变迁变为被允许需要的令牌的个数。弧的个数决定了消耗/产生的令牌的个数。

 

七、Petri网的形式化定义:被允许的形式化、变迁发生的形式化、Petri网到变迁系统的映射的可达性。 一个经典Petri网由四元组(库所,变迁,输入函数,输出函数)组成。任何图都可以映射到这样一个四元组上,反之亦然。 Petri 是一个三元组(P,T,F) F(P X T)U(T X P)是弧的集合

形式化手段描述协议的技术是类似于有穷状态自动机.其文法规则有利于计算机程序维护.

 

八、Petri网流程建模: 1.一个流程的状态是由在场所中的令牌建模的,状态的变迁是由变迁建模的。令牌表示事物(人,货物,机器),信息,条件,或对象的状态;库所代表库所,通道或地理位置;变迁代表事件,转化或传输。 2.一个流程有当前状态,可达状态,不可达状态。终止状态。

 

九、经典Petri网的局限性:

+ 没有测试库所中零令牌的能力

  + 模型容易变得很庞大

  + 模型不能反映时间方面的内容

+ 不支持构造大规模模型,如自顶向下或自底向上

 

十、高级Petri网:为了解决经典Petri网中的问题,研究出了高级Petri,在以下方面进行了扩展:

  o 令牌着色

  一个令牌通常代表具有各种属性的对象,因此令牌拥有值(颜色)代表由令牌建模的对象的具体特征,如一个令牌代表一个工人(张三,28岁,经验3级)。

  o 时间

  为了进行分析,我们需要建模期间,延迟等,因此每一个令牌拥有一个时间戳,变迁决定生产出的令牌的延迟。

  o 层次化

  构造一个复杂性与数据流图相当的Petri网的机制。子网是由库所,变迁和子网构成的网络。

  o 时序

增加时序逻辑的定义,更好的描述行为过程。

 

十一、Petri网的应用:Petri网的应用非常广泛,以下是Petri网比较常用的几种应用:

  o 软件设计

  o 工作流管理

  o 工作流模式

  o 数据分析

  o 并行程序设计

o 协议验证

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值