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

ops/2024/10/20 0:11:17/

导航

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.ppmy.cn/ops/126835.html

相关文章

Redis缓存穿透

缓存穿透 什么是缓存穿透 缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库 解决缓存穿透的方法 解决缓存穿透有两种方案: 1.缓存空对象 优点:实现简单,维护方便 缺点:额外的内存消耗;可能存在短期的不一致(缓存null…

进入 Searing-66 火焰星球:第一周游戏指南

Alpha 第四季已开启,穿越火焰星球 Searing-66,带你开启火热征程。准备好勇闯炙热的沙漠,那里有无情的高温和无情的挑战在等待着你。从高风险的烹饪对决到炙热的冒险,Searing-66 将把你的耐力推向极限。带上充足的水,天…

minidump文件在另一台电脑的VS打上不开,可否在另一台电脑的windbg打开呢

是的,MINIDUMP文件可以在另一台电脑的WinDbg中打开进行分析。MINIDUMP文件是Windows系统产生的一种二进制文件,用于记录程序崩溃时的状态,通常用于调试和故障排查。以下是如何在另一台电脑上使用WinDbg打开MINIDUMP文件的步骤: 确…

HTTP cookie 与 session

一种关于登录的场景演示 - B 站登录和未登录 问题:B 站是如何认识我这个登录用户的?问题:HTTP 是无状态,无连接的,怎么能够记住我? 一、引入 HTTP Cookie 定义 HTTP Cookie(也称为 Web Cooki…

PHP WebSocket

文章目录 PHP WebSocket 介绍Laravel 8 中使用 WebSocket实现广播1. 安装 Laravel WebSockets2. 配置 WebSocket3.运行 WebSocket 服务器4. 客户端代码5. 在 Laravel 中广播事件6. 触发事件7. 监听事件 创建单聊1.创建一个用于发送单聊消息的事件2.设置消息发送3.设置路由4.客户…

RHCE---第二章:时间服务器

文章目录 第二章:时间服务器简介重要性Linux的两个时钟date命令设置date参数date的格式 设置日期时间timedatectl命令设置 **NTP**Chrony介绍 安装与配置安装:Chrony配置文件分析同步时间服务器常用的授时中心扩展配置命令协议及全称 实验实验1实验2chro…

java.io.StreamCorruptedException: invalid stream header的原因及解决方法

最近在写一个类似于QQ的网络通讯项目,在信息发送的时候出现了一个问题,客户端的信息服务端可以正常收到并且转出,但是对应的客户端在接收的时候就会抛出这个异常,往往还会伴随着java.io.StreamCorruptedException: invalid type c…

逆向工程入门02.if语句分析

先贴一下代码 #include<stdio.h> #include<stdlib.h> int main() { int nFlag 0; scanf("%d", nFlag); if (nFlag10) { printf("Flag%d", nFlag); } system("pause"); return 0; } 我拿X86下的Debug进行动态和静态分…