当前位置: 首页 > article >正文

【Petri网导论学习笔记】Petri网导论入门学习(五)—— 1.3 库所/变迁系统与加权Petri网

导航

      • 1.3 库所/变迁系统与加权Petri网
        • 定义1.10
        • P/T系统组成
        • 原型Petri网
        • P/T系统与Petri网的转化示例

1.3 库所/变迁系统与加权Petri网

库所/变迁系统(简称P/T系统)(Place/Transition)在原型Petri网上增加了 S S S上的容量函数和 F F F上的权函数。

增加这两个函数可以对一些实际系统建模更加方便。

定义1.10

六元组 Σ = ( S , T ; F , K , W , M ) \Sigma=(S,T;F,K,W,M) Σ=(S,T;F,K,W,M) 称为一个库所/变迁系统(place/transition system),其中
1 ) ( S , T ; F ) ( S, T; F) (S,T;F) 是一个网,
W : F → { 1 , 2 , 3 , ⋯   } W:F\to\{1,2,3,\cdots\} W:F{1,2,3,}称为权函数(weighted function)

K : S → { 1 , 2 , 3 , ⋯   } K:S\to\{1,2,3,\cdots\} K:S{1,2,3,}称为容量函数(capacity function)

M : S → { 0 , 1 , 2 , ⋯   } M:S\to\{0,1,2,\cdots\} M:S{0,1,2,} Σ \Sigma Σ的一个标识,满足条件:
∀ s ∈ S : M ( s ) ⩽ K ( s ) \forall s\in S:M(s)\leqslant K(s) sS:M(s)K(s)

W , K , M W,K,M W,K,M均是一个映射

其中

W W W流关系上代表需要几个token或者产生几个token的情况

K K K是库所上的容量函数,代表该库所 s s s最大能容纳几个token

M M M是库所上的一个标识,所有库所上的标识个数都应小其容量函数的值

2) Σ \Sigma Σ满足变迁发生规则

a)对于 t ∈ T , M [ t > 的条件为 t\in T,M[t>\text{的条件为} tT,M[t>的条件为
∀ s ∈ ∙ t   :   M ( s ) ⩾ W ( s , t ) ∀ s ∈ t ∙ − ∙ t   :   M ( s ) + W ( t , s ) ⩽ K ( s ) ∀ s ∈ t ∙ ∩ ∙ t   : M ( s ) + W ( t , s ) − W ( s , t ) ⩽ K ( s ) \begin{aligned}\forall s\in^{\bullet}t\::\:M(s)\geqslant W(s,t)\\&\forall s\in t^{\bullet}-^{\bullet}t\::\:M(s)+W(t,s)\leqslant K(s)\\&\forall s\in t^{\bullet}\cap^{\bullet}t\::M(s)+W(t,s)-W(s,t)\leqslant K(s)\end{aligned} st:M(s)W(s,t)stt:M(s)+W(t,s)K(s)stt:M(s)+W(t,s)W(s,t)K(s)

如果变迁 t t t能够在 M M M上发生:

S S S t t t的前集, s s s的标识应大于等于 s s s t t t的边的权函数才可以发生

对于 t t t的后集但不是前集 s s s s s s中已有的标识加上通过变迁发生增加的标识应小于库容量函数

对于既是 t t t的前集也是后集 s s s,所有 s s s中的标识减去发生流需要的标识加上输入流增加的标识应小于库容量函数

满足以上才可以发生,或者说 t t t M M M上有发生权

b)若 M [ t > M ′ , 则对  ∀ s ∈ S , M[t>M^{\prime},\text{则对 }\forall s\in S, M[t>M,则对 sS,
M ′ ( s ) = { M ( s ) − W ( s , t ) ,   若   s ∈ ∙ t − t ∙ M ( s ) + W ( t , s ) ,   若   s ∈ t ∙ − ∙ t M ( s ) + W ( t , s ) − W ( s , t ) ,   若 s ∈ ∙ t ∩ t ∙ M ( s ) ,   其他 \left.\begin{aligned}\\&M^{\prime}(s)=\left\{\begin{array}{l}M(s)-W(s,t),\:\text{若}\:s\in^\bullet t-t^\bullet\\M(s)+W(t,s),\:\text{若}\:s\in t^\bullet-^\bullet t\\M(s)+W(t,s)-W(s,t),\:\text{若}s\in^\bullet t\cap t^\bullet\\M(s),\:\text{其他}\end{array}\right.\\\end{aligned}\right. M(s)= M(s)W(s,t),sttM(s)+W(t,s),sttM(s)+W(t,s)W(s,t),sttM(s),其他

如过 M M M发生了变迁 t t t到达了 M ′ M' M状态,对于所有的库所的状态转移方程

如果 s s s是变迁 t t t的前集而非后集,则减去所需要发生的token

如果 s s s是变迁 t t t的后集而非前集,则加上所新产生的token

如果 s s s既是变迁 t t t前集的前集与后集,则减去所要消耗的token加上新产生的token

原型Petri网的比较:

原型Petri网的变迁发生规则:只需要考虑前置库所token是否满足

P/T系统变迁发生规则:不只是需要考虑前置库所token是否满足,还需要考虑后续的库所容量是否能够接收

  • P/T系统组成

    一个P/T系统由以下五个部分构成:

    • $ S $:库所的集合。
    • $ T $:变迁的集合。
    • $ F $:流向关系的集合。
    • $ K $:库所的容量函数,规定每个库所可以容纳的最大标识数。
    • $ W $:边的权重函数,规定每个边的权重。
    • $ M $:标识,表示系统当前状态。
    原型Petri网
    • 原型Petri网是一种特殊的P/T系统,遵循特定的规则。
    • 这些规则确保系统在特定条件下的行为是可以预测和分析的。

当我们用一个 PT 系统对一个实际系统建模时,五元组 ( S , T ; F , K , W ) (S,T;F,K,W) (S,T;F,K,W)描述系统的
结构,标识 M M M反映系统的状态。五元组 ( S , T ; F , K , W ) (S,T;F,K,W) (S,T;F,K,W)称为 P/T 系统的基网。
对于一个 P/T 系统 Σ = ( S , T ; F , K , W , M ) \Sigma=(S,T;F,K,W,M) Σ=(S,T;F,K,W,M) ,若规定
∀ s ∈ S : K ( s ) = ∞ ∀ f ∈ F : W ( f ) = 1 \forall s\in S:K(s)=\infty\\\forall f\in F:W(f)=1 sS:K(s)=fF:W(f)=1

那么,Σ就变成一个原型 Petri 网。从这一点看,原型 Petri 网似乎是 P/T 系统的一个子类。
然而,P/T 系统并不比原型 Petri 网有更强的模拟能力。凡是可以用 P/T 系统对其建模的实际系统,也可以用原型 Petri 网对其建模。因为每一个 P/T 系统都可以转换为一个行为等效的 Petri 网。下面通过一些直观解释对此加以说明。
对于一个 P/T 系统

Σ = ( S , T ; F , K , W , M 0 ) \Sigma=(S,T;F,K,W,M_{0}) Σ=(S,T;F,K,W,M0)

P/T系统与Petri网的转化示例

1)如果 Σ \Sigma Σ 中的一个库所 s s s 有容量函数 K ( s ) = 2 K(s) = 2 K(s)=2,如图 1.12a 所示,为取消该容量函数的限制,可以用图 1.12b 的结构代替。显然图 1.12b 的结构所在的网系统的运行过程中,对每个可能产生的标识 M M M,都有 M ( s ) ≤ 2 M(s) \leq 2 M(s)2

原型Petri网的库所容量是无限的,且在变迁发生之前,所有的前集库所都至少有一个token。所以在这里b图中s发生两次则下方新加的库所token全部消耗,则无法继续发生除非s库所往后发1生,给下方的库所增加token。

在这里插入图片描述

2)如果 Σ \Sigma Σ 中有一条有向边 f = ( t , s ) f=(t,s) f=(t,s),其权值为 W ( f ) = 3 W(f)=3 W(f)=3,如图 1.13a)所示,为了消除该有向边上的权值,可以用图 1.13b) 的网结构来代替。只要我们把新添加的库所和变迁看作辅助元素(即它们不与被模拟系统的任何部件对应),那么变迁 t t t 的发生所引起库所 s s s的标识变化是等效的。

相较于库所发出多条边,只能选择1条路进行发生,而变迁所对应的3条边是一起改变的。

在这里插入图片描述
pos_id=img-tnlriZZs-1729235696993)

3)如果Σ中有一条有向边 f = ( s , t ) f=(s,t) f=(s,t),其权值为 W ( f ) = 2 W(f)=2 W(f)=2,如图 1.14a)所示,那么图 1.14b) 的 Petri 网结构可以实现与之相同的效能。

在这里插入图片描述

b图中的结构保证了s中有两个的话依次发生上面的变迁下面的变迁你请安这样对应到t两个都可以发生

当我们把 Σ 中每一个带容量限定的库所和每一条加权的有向边都进行相应的取代之后,PT 系统 Σ \Sigma Σ就被改造成为一个原型 Petri 网 Σ ′ = ( S ′ , T ′ ; F ′ , M 0 ′ ) \Sigma^\prime=(S^{\prime},T^{\prime};F^{\prime},M_0^{\prime}) Σ=(S,T;F,M0) 。它们之间满足关系

S ⊆ S ′ , T ⊆ T ′ , M ′ ( s ) = M ( s ) , 当 s ∈ S \begin{aligned}&S\subseteq S^{\prime},\quad T\subseteq T^{\prime},\\&M^{\prime}(s)= M(s),\quad\text{当}s\in S\end{aligned} SS,TT,M(s)=M(s),sS

通过上面转化的例子可以得知,我们在转化的过程中会添加库所和变迁以保证带有容量限制,故P/T系统的库所和变迁是对应原型Petri网的子集,但对应原P/T系统的库所其标识状态相同

而且易知

1)对  Σ  运行过程中可能出现的每个标识  M , Σ ′  的运行过程中都有一个可能出现 \text{1)对 }\Sigma\text{ 运行过程中可能出现的每个标识 }M\text{,}\Sigma^{\prime}\text{ 的运行过程中都有一个可能出现} 1) Σ 运行过程中可能出现的每个标识 M,Σ 的运行过程中都有一个可能出现的标识 M ′ M^\prime M,使得对每个 s ∈ S s\in S sS都有

M ′ ( s ) = M ( s ) M^{\prime}(s)=M(s) M(s)=M(s)

2)对 Σ \Sigma Σ运行过程中每个可以接连发生的变迁序列 σ ∈ T ∗ \sigma\in T^* σT,在 Σ ′ \Sigma^\prime Σ的运行过程中都有一个可以接连发生的变迁序列 σ ′ ∈ T ′ ∗ \sigma^\prime\in T^{\prime*} σT,使得从 σ ′ \sigma^\prime σ中删去 T ′ − T T^{\prime}-T TT中的元素后,得到的子序列恰好是 σ \sigma σ

对于一个 P/T 系统,如果规定各个库所的容量都为无穷大,即取消库所集上的容量函数而保留有向边集上的权函数,就得到一种介于原型 Petri 网和 P/T 系统之间的网系统模型 Σ = ( S , T ; F , W , M ) \Sigma=(S,T;F,W,M) Σ=(S,T;F,W,M)。称这种模型为加权 Petri 网(weighted Petri net)。加权 Petri网的变迁规则为:
1)对于 t ∈ T , M [ t > t\in T,M[t> tT,M[t>的条件为(1.21)式;

2)若 M [ t > M ′ ,则根据(1.26)式从 M  计算  M ′ 。 ] M\left[t>M^{\prime}\text{,则根据(1.26)式从}M\text{ 计算 }M^{\prime}。\right] M[t>M,则根据(1.26)式从M 计算 M]

K ( s ) = K(s)= K(s)= W ( s ) W(s) W(s)不变 → 加权Petri网

原型Petri网→加权Petri网→P/T系统

( S , T ; F , M ) (S,T;F,M) (S,T;F,M) ( S , T ; F , M , W ) (S,T;F,M,W) (S,T;F,M,W) ( S , T ; F , K , W , M ) (S,T;F,K,W,M) (S,T;F,K,W,M)


http://www.kler.cn/news/357138.html

相关文章:

  • Chrome谷歌浏览器加载ActiveX控件之JT2Go控件
  • 高效部署大型语言模型:基于AMD GPU的文本生成推理
  • 低代码平台中的功能驱动开发:模块化与领域设计
  • 【 Git 】git push 报错 error: failed to push some refs to ‘github.com/xxxx‘
  • git 与github 远程连接出现中文用户名乱码导致无法找到user/.ssh文件的解决办法
  • 桥接模式、NAT模式 和 主机模式(Host-Only)区别
  • 鸿蒙网络编程系列27-HTTPS服务端证书的四种校验方式示例
  • 【北京迅为】《STM32MP157开发板嵌入式开发指南》- 第五十章 Linux设备树
  • 申请软件测试CNAS实验室认证人员方面要做好哪些准备?
  • 若依框架中根目录与子模块 `pom.xml` 的区别
  • c4d哪个渲染器好用简单?c4d常用渲染器介绍
  • Spring篇(事务篇 - 基础介绍)
  • 【Python】基础语法
  • 计算机毕业设计 基于Python的汽车销售管理系统的设计与实现 Python毕业设计 Python毕业设计选题【附源码+安装调试】
  • 深入了解机器学习 (Descending into ML):线性回归
  • Dubbo的扩展与挑战拥抱微服务与云原生
  • Golang | Leetcode Golang题解之第486题预测赢家
  • 【设计模式】深入理解Python中的桥接模式(Bridge Pattern)
  • 【C语言】数据的定义、初始化、引用
  • Chromium 中chrome.contextMenus扩展接口实现分析c++