3.4 C/E 系统 Condition/Event system

C/E 系统与 EN 系统的区别是 C/E 系统没有初始状态

∑=(B,E;F,C)\sum=(B,E;F,C)=(B,E;F,C) 称为 C/E 系统,即条件/事件系统。其中:

  • BBBEEE 分别为条件集和事件集
  • FFF 是流关系
  • (B,E;F)(B,E;F)(B,E;F) 为有向网
  • C是完全可达集

C/E 系统是通用网论的基础模型。同步论最初是借助事件正反双向发生定义的。

3.5 P/T 系统(库所/变迁系统)

3.5.1 库所/变迁系统定义

  • 库所:Place
  • 变迁:Transition

∑=(S,T;F,K,W,M0)\sum = (S,T;F,K,W,M_0)=(S,T;F,K,W,M0) 为 P/T 系统,如果 (S,T;F)(S,T;F)(S,T;F) 为有向网。

  • K:S→{1,2,3,…}∪{∞}K:S \rightarrow \{1,2,3,…\}\cup\{\infty\}K:S{1,2,3,}{}SSS 元素的容量函数
  • ∧W:F→{1,2,3,…}\wedge W:F \rightarrow \{1,2,3,…\}W:F{1,2,3,}FFF 上的权函数,资源消耗或产生的量
  • ∧M0:S→{0,1,2,…}\wedge M_0:S \rightarrow \{0,1,2,…\}M0:S{0,1,2,} ,初始标识(资源初始分布)
  • ∧∀s∈S:M0(s)≤K(s)\wedge \forall s \in S: M_0(s) \leq K(s)sS:M0(s)K(s)

思考:如何理解 K(s)=∞K(s)=\inftyK(s)=

3.5.1.1 标识:资源分布

定义:M:S→{0,1,2,…}M:S \rightarrow\{0,1,2,…\}M:S{0,1,2,} 称为 ∑\sum 上的标识,如果 ∀s∈S:M(s)≤K(s)\forall s \in S:M(s) \leq K(s)sS:M(s)K(s)

3.5.2 变迁规则

Petri网-3.4 C/E 系统 与 3.5 P/T 系统-编程之家

3.5.2.1 变迁规则:发生权

t∈Tt \in TtTMMM∑\sum 的标识

定义:tttMMM 有发生权,记作 M[t>M[t>M[t> ,如果 ∀s∈.t:M(s)≥W(s,t)∧∀s∈t.:M(s)+W(s,t)≤K(s)\forall s\in ^.t:M(s) \geq W(s,t) \wedge \forall s \in t^.: M(s) + W(s,t) \leq K(s)s.t:M(s)W(s,t)st.:M(s)+W(s,t)K(s)

3.5.2.2 变迁规则:后继

M[t>M[t>M[t> ,则 ttt 可以发生,M′M'MMMM 的后继标识:
M′(s)={M(s)−W(s,t)if(s∈.t−t.)M(s)+W(t,s)if(s∈t.−.t)M(s)+W(t,s)−W(s,t)if(s∈.t∩t.)M(s)if(s∉.t∪t.)\begin{align*} \begin{split} M'(s)= \left \{ \begin{array}{ll} M(s)-W(s,t) & if(s\in^.t-t^.)\\ M(s)+W(t,s) & if(s\in t^.-^.t)\\ M(s)+W(t,s)-W(s,t) & if(s\in ^.t \cap t^.)\\ M(s) & if(s\notin ^.t \cup t^.) \end{array} \right. \end{split} \end{align*} M(s)=M(s)W(s,t)M(s)+W(t,s)M(s)+W(t,s)W(s,t)M(s)if(s.tt.)if(st..t)if(s.tt.)if(s/.tt.)
后继关系记作 M[t>M′M[t>M'M[t>M

3.5.2.3 变迁外延,局部确定原理

.t∪t.^.t \cup t^..tt. 称为变迁 ttt 的外延(extension)

3.5.2.3.1 局部确定原理(普适)
  • 每个变迁都有它的外延
  • 变迁的发生只依赖其外延,也只改变其外延
  • ∑∩Env(∑)\sum \cap Env(\sum)Env() 无冲突
3.5.2.4 广义权函数

W′:S×T∪T×S→{0,1,2,…}W':S \times T \cup T \times S \rightarrow \{0,1,2,…\}W:S×TT×S{0,1,2,} 称为 ∑\sum 的广义权函数,如果 ∀(x,y)∈S×T∪T×S\forall(x,y)\in S \times T \cup T \times S(x,y)S×TT×S
W′(x,y)={W(x,y)if(x,y)∈F0if(x,y)∉F\begin{align*} \begin{split} W'(x,y)= \left \{ \begin{array}{ll} W(x,y) & if(x,y)\in F\\ 0 & if(x,y)\notin F \end{array} \right. \end{split} \end{align*} W(x,y)={W(x,y)0if(x,y)Fif(x,y)/F

3.5.2.4.1 定义,用广义权函数给出变迁规则

M[t>:⟺∀s∈S:M(s)≥W′(s,t)∧M(s)+W′(s,t)≤K(s)M[t>M′:⟺M[t>∧∀s∈S:M′(s)=M(s)−W′(s,t)+W′(t,s)M[t>: \Longleftrightarrow \forall s \in S: M(s) \geq W'(s,t) \wedge M(s) + W'(s,t) \leq K(s) \\ M[t>M': \Longleftrightarrow M[t> \wedge \forall s \in S: M'(s) = M(s) – W'(s,t) + W'(t,s) M[t>:⟺sS:M(s)W(s,t)M(s)+W(s,t)K(s)M[t>M:⟺M[t>sS:M(s)=M(s)W(s,t)+W(t,s)

这仅仅是技术上的处理,而不是概念上的更新

  • 得:广义权函数使变迁规则看上去简洁
  • 失:
    • 技术处理,用 W′W'W 取代 WWW 会失去其物理含义;
    • W′W'W 取代 WWWFFF ,定义 ∑=(S,T;W′,M0)\sum=(S,T;W',M_0)=(S,T;W,M0) ,会失去网结构
3.5.2.5 缺省值及特例的图示

t1t_1t1 缺省的容量为 ∞\infty ,缺省的权为 1。

Petri网-3.4 C/E 系统 与 3.5 P/T 系统-编程之家

t2t_2t2 不属于 P/T 系统,M0(s3)=3>K(s3)=2M_0(s_3)=3>K(s_3)=2M0(s3)=3>K(s3)=2

Petri网-3.4 C/E 系统 与 3.5 P/T 系统-编程之家

t3t_3t3 属于 P/T 系统,只是不会发生

Petri网-3.4 C/E 系统 与 3.5 P/T 系统-编程之家

  • 对于图上的变迁上没有数字的是 权函数的缺失值,一般就是1。
  • 对于图上的容量上没有数字的是 容量函数的缺失值,一般就是 ∞\infty
3.5.2.6 容量的物理含义

先举个教堂婚礼的例子,如果忽略新郎新娘之间的差别,即从 CE 系统到 P/T 系统。

Petri网-3.4 C/E 系统 与 3.5 P/T 系统-编程之家

  • 缺点:少了很多具体的描述,比如说 EN 系统原来的冲突消失了。
  • 优点:系统变的简单了。

思考:K≡∞K \equiv \inftyK 还是
{K(s1)=K(s3)=K(s4)=2K(s0)=K(s2)=K(s5)=1\begin{align*} \begin{split} \left \{ \begin{array}{ll} K(s_1)=K(s_3)=K(s_4)=2\\ K(s_0)=K(s_2)=K(s_5)=1 \end{array} \right. \end{split} \end{align*} {K(s1)=K(s3)=K(s4)=2K(s0)=K(s2)=K(s5)=1
就这个例子而言,其实认为它的容量是 2 还是 ∞\infty 都可以,因为都不会影响系统的后继和运行。

3.5.2.7 库所的物理含义
  • 可观察的同类资源
    • 同类是指在系统中作用相同,如新浪新娘
  • 例子(桶装水和瓶装水不同类)
    • 如果要描述的是出门旅游:它们属于不同变迁的外延。
    • 它们参与的变迁不同。
      • 对于桶装水,需要把水倒到瓶装水,然后饮用。
      • 对于瓶装水,直接可以饮用。
3.5.2.8 变迁的物理含义
  • 可观察的资源消耗和新资源的产生
    • 有确定不变的观察结果,不因观察者或观察方式而改变,包括质变和量变。
    • 原子性:不中断,无中间状态。中断属于意外。
  • 网系统只描述正常变化,不描述意外。观察意外会得到不确定的结果,且不能枚举。

思考:库所元素和变迁元素是否一目了然?

并没有想象中的一目了然,需要分清楚边界和切口。

3.5.3 EN 系统 ⊂\subset P/T 系统

EN 系统 ∑=(B,E;F,cin)\sum = (B,E;F,c_{in})=(B,E;F,cin) 是 P/T 系统的特例。

  • 其中 K≡1K\equiv 1K1W≡1W \equiv 1W1M0M_0M0cinc_{in}cin 的另一种表示

∀b∈B:{M0(b)=1if(b∈cin)M0(b)=0if(b∉cin)\begin{align*} \begin{split} \forall b \in B : \left \{ \begin{array}{ll} M_0(b)=1 &if(b\in c_{in})\\ M_0(b)=0 &if(b\notin c_{in}) \end{array} \right. \end{split} \end{align*} bB:{M0(b)=1M0(b)=0if(bcin)if(b/cin)

3.5.3.1 练习

将 EN 系统上定义的基本现象移植到 P/T 系统上,变迁(事件)和变迁发生权。

3.5.3.1.1 例子1

Petri网-3.4 C/E 系统 与 3.5 P/T 系统-编程之家

  • t1t_1t1t2t_2t2 并发
  • t1t_1t1t2t_2t2 分别和自己并发
3.5.3.1.2 例子2

Petri网-3.4 C/E 系统 与 3.5 P/T 系统-编程之家

  • t1t_1t1t2t_2t2t3t_3t3 两两并发
  • t2t_2t2 和自己并发
  • 三者不能并发
3.5.3.2 并发步

在同一标识可以并发的一个或多个变迁,称为该标识上的一个并发步。例如:

  • 3.5.3.1.1 例子1{t1,t2}\{t_1,t_2\}{t1,t2} 是并发步,写成 t1+t2t_1+t_2t1+t2 。同时,2t12t_12t12t22t_22t2 也是并发步。
  • 3.5.3.1.2 例子2t1+t2t_1+t_2t1+t2t1+t3t_1+t_3t1+t3t2+t3t_2+t_3t2+t32t22t_22t2
3.5.3.3 可达标识集
3.5.3.3.1 定义

MMM∑\sum 的任一标识,用 [M⟩[M \rangle[M 表示符合下列条件的最小集合

  • M∈[M⟩M \in [M \rangleM[M
  • t∈T∧M′∈[M⟩∧M′[t⟩M′′→M′′∈[M⟩t\in T \wedge M' \in [M \rangle \wedge M'[t \rangle M'' \\ \rightarrow M'' \in [M \rangletTM[MM[tM′′M′′[M

定义:[M0⟩[M_0 \rangle[M0 称为 ∑\sum 的可达标识集

3.5.3.3.2 自然语言定义

可达标识集 [M0⟩[M_0 \rangle[M0 的自然语言定义:

  • M0M_0M0 开始,包括 M0M_0M0
  • 经有限步变迁发生
  • 能到达的
  • 所有标识的集合

思考:怎么证明?

3.5.3.4 变迁序列

σ=τ1τ2…τn\sigma = \tau _1 \tau _2 … \tau _nσ=τ1τ2τn 称为 ∑\sum 的变迁序列。如果对 i=1,2,…,ni=1,2,…,ni=1,2,,nτi∈T∧∃Mi∈[M0⟩:Mi−1[τi⟩Mi\tau _i \in T \wedge \exists M_i \in [M_0 \rangle : M_{i-1}[\tau _i \rangle M_iτiTMi[M0:Mi1[τiMi,即 M0[τ1⟩M1[τ2⟩M2…Mn−1[τn⟩MnM_0 [\tau _1 \rangle M_1[ \tau _2 \rangle M_2… M_{n-1}[\tau _n \rangle M_nM0[τ1M1[τ2M2Mn1[τnMn

MnM_nMn 称为 σ\sigmaσ 的后继标识,记作 M0[σ⟩MnM_0[\sigma \rangle M_nM0[σMn

变迁序列是从 M0M_0M0 开始可以依次发生的变迁组成的序列,不是任意的变迁组成的序列。

变迁序列可以扩展到无穷序列:

  • σ′=τ1τ2τ3…\sigma ' = \tau _1 \tau _2 \tau _3…σ=τ1τ2τ3 为无穷序列,如果它的任何有限前缀均为变迁序列,则 σ′\sigma 'σ 是(无穷)变迁序列。
3.5.3.5 P/T 系统性质
3.5.3.5.1 活性

关注状态,即 [M0⟩[M_0 \rangle[M0

  • 变迁 t∈Tt\in TtT 是活的,如果 ∀M∈[M0⟩∃M′∈[M⟩:M′[t⟩\forall M \in [M_0 \rangle \exists M' \in [ M \rangle : M'[t \rangleM[M0M[M:M[t
  • ∑\sum 是活的,如果它的所有变迁都是活的。
3.5.3.5.2 有界性

若存在正整数 kkk ,使得 ∀M∈[M0>∀s∈S:M(s)≤k\forall M \in [M_0 > \forall s \in S:M(s) \leq kM[M0>sS:M(s)k ,则 ∑\sum 称为有界系统。

  • 教堂婚礼系统是活的,以 2 为界。
  • 哲学家系统的网系统是活的,以 1 为界。哲学家就餐问题的图如下:

Petri网-3.4 C/E 系统 与 3.5 P/T 系统-编程之家

3.5.3.5.3 公平性

如果不存在无穷变迁序列 σ\sigmaσ 和变迁子集 T1T_1T1T2T_2T2 ,使得 #(σ,T1)=∞∧#(σ,T2)<∞\#(\sigma ,T_1)=\infty \wedge \#(\sigma, T_2)<\infty#(σ,T1)=#(σ,T2)<,则 ∑\sum 是公平的, 其中 #(σ,Ti)\#(\sigma ,T_i)#(σ,Ti)TiT_iTi 中变迁在 σ\sigmaσ 中出现的次数,i=1,2i=1,2i=1,2

  • 教堂婚礼系统是公平的
  • 不加管理的哲学家系统是不公平的
  • 问题:公平性的定义合理吗?
3.5.3.6 系统进程

状态变迁并重:网系统进程。

3.5.3.6.1 出现网

N=(B,E;F)N=(B,E;F)N=(B,E;F) 称为出现网,如果 NNN 为有向网,且 (∀b∈B:∣.b∣≤1∧∣b.∣≤1)∧(∀x∈B∪E:(x,x)∉F+)(\forall b \in B:|^.b| \leq 1 \wedge |b^.| \leq 1) \wedge (\forall x \in B \cup E:(x,x) \notin F^+)(bB:.b1b.1)(xBE:(x,x)/F+)

例子(出现网 N1N_1N1):

Petri网-3.4 C/E 系统 与 3.5 P/T 系统-编程之家

  • N1N_1N1 每个库所至多一条入弧、一条出弧。(产生和消耗)
  • N1N_1N1 无环,(b2,b4)∈F2(b_2,b_4)\in F^2(b2,b4)F2(b1,b3)∈F5(b_1,b_3)\in F^5(b1,b3)F5F+=F∪F2∪F3∪…F^+=F\cup F^2 \cup F^3 \cup …F+=FF2F3

定义:出现网 NNN 是网系统 ∑\sum 的一个进程,如果存在从 NNN∑\sum 的映射。如下图就是 出现网 N1N_1N1 的 网系统映射 网系统 ∑1\sum _11

Petri网-3.4 C/E 系统 与 3.5 P/T 系统-编程之家

N1N_1N1∑1\sum _11 的一个进程(变迁发生的记录),从 N1N_1N1∑1\sum _11 的映射:

  • b1→s1b_1 \rightarrow s_1b1s1b2→s3b_2 \rightarrow s_3b2s3b3→s2b_3 \rightarrow s_2b3s2b4→s4b_4 \rightarrow s_4b4s4b5→s3b_5 \rightarrow s_3b5s3b6→s1b_6 \rightarrow s_1b6s1b7→s2b_7 \rightarrow s_2b7s2
  • e1→t1e_1 \rightarrow t_1e1t1e2→t2e_2 \rightarrow t_2e2t2e3→t1e_3 \rightarrow t_1e3t1
3.5.3.6.2 网系统进程的形式(半形式)定义很复杂

通常只给出 ∑=(S,T;F,M0)\sum=(S,T;F,M_0)=(S,T;F,M0) 上的进程定义,即 K≡∞K\equiv \inftyKW≡1W \equiv 1W1

这里最“老”的网系统(Petri 最早的定义,在其博士论文中的定义)。

进程是并发公理基础。

3.5.3.7 k<∞k<\inftyk< 的物理含义

k(s)=5k(s)=5k(s)=5 表示 sss 有 5 个“空间资源”,或 sss 的空间至多能容纳 5 个sss 类资源(如车库)。例如下图:

Petri网-3.4 C/E 系统 与 3.5 P/T 系统-编程之家

ttt 只能发生一次,再发生会引出 sss 处的冲撞。

k=∞k=\inftyk=:空间足够大,不会对变迁发生构成限制。

Petri网-3.4 C/E 系统 与 3.5 P/T 系统-编程之家

以下就会受到影响:

Petri网-3.4 C/E 系统 与 3.5 P/T 系统-编程之家

3.5.3.7.1 容量函数的作用

以容量函数而非 token 表示空间资源,体现空间资源与其它资源的本质区别:被占的空间不能阻止强占,已消耗的资源已不可见

引出 “冲撞(contact)” 这一基本现象。熟知空间资源特点后,S_补技术改用 token 表示有限的空间资源,k≡∞k \equiv \inftyk ,冲撞从系统中消失(并非从现实消失)。

s′s'ssss 互为补库所:

  • s′.=.s∧.s′=s.s'^.=^.s \wedge ^.s'=s^.s′.=.s.s=s.
  • W(s′,t)=W(t,s)W(s',t)=W(t,s)W(s,t)=W(t,s)
  • M(s′)+M(s)=k(s)M(s')+M(s)=k(s)M(s)+M(s)=k(s)

例如下面的:

Petri网-3.4 C/E 系统 与 3.5 P/T 系统-编程之家

3.5.4 代数表示

限于有线网系统 ::: 全局,结构:∑=(S,T;F,W,M0)\sum =(S,T;F,W,M_0)=(S,T;F,W,M0)K≡∞K \equiv \inftyKT={t1,t2,…,tn}T=\{t_1,t_2,…,t_n\}T={t1,t2,,tn}S={s1,s2,…,sm}S=\{s_1,s_2,…,s_m\}S={s1,s2,,sm}W′:S×T∪T×S→{0,1,2,…}W':S \times T \cup T \times S \\ \rightarrow \{0,1,2,…\}W:S×TT×S{0,1,2,} 为广义权函数。

3.5.4.1 关联矩阵

定义:m×nm \times nm×n 阶矩阵 AAA 称为 ∑\sum 的关联矩阵。如果
A=t1t2…tns1s2⋮sm(a(i,j)…⋮)\begin{align*} \begin{split} A= \begin{array}{lc} {}& \begin{array}{cc}t_1&t_2&…&t_n \end{array}\\ \begin{array}{c}s_1\\s_2\\ \vdots \\s_m\end{array}& \left(\begin{array}{cc} &&&\\ &a(i,j)&&\\ …&\vdots&&\\ &&& \end{array}\right) \end{array} \end{split} \end{align*} A=s1s2smt1t2tna(i,j)
其中,a(i,j)=W′(ti,sj)−W′(sj,ti)a(i,j)=W'(t_i,s_j)-W'(s_j,t_i)a(i,j)=W(ti,sj)W(sj,ti)

关联矩阵与 M0M_0M0 无关,是网系统的结构描述。

3.5.4.1.1 例子 ∑1\sum _11

Petri网-3.4 C/E 系统 与 3.5 P/T 系统-编程之家

∑1\sum _11 的关联矩阵
A=t1t2hlcr(−1−1−2−41001)\begin{align*} \begin{split} A= \begin{array}{lc} {}& \begin{array}{cc}t_1&t_2 \end{array}\\ \begin{array}{c}h\\l\\c\\r\end{array}& \left(\begin{array}{cc} -1&-1\\ -2&-4\\ 1&0\\ 0&1 \end{array}\right) \end{array} \end{split} \end{align*} A=hlcrt1t212101401

3.5.4.1.2 例子 ∑2\sum _22

Petri网-3.4 C/E 系统 与 3.5 P/T 系统-编程之家

∑2\sum _22 的关联矩阵
A2=t1t2t3s1s2s3(−101−11−12−10)\begin{align*} \begin{split} A_2= \begin{array}{lc} {}& \begin{array}{cc}t_1&t_2&t_3 \end{array}\\ \begin{array}{c}s_1\\s_2\\s_3\end{array}& \left(\begin{array}{cc} -1&0&1\\ -1&1&-1\\ 2&-1&0 \end{array}\right) \end{array} \end{split} \end{align*} A2=s1s2s3t1t2t3112011110

3.5.4.2 S_向量T_向量
  • τ=(a1,a2,…,an)\tau=(a_1,a_2,…,a_n)τ=(a1,a2,,an)aia_iai 为非负整数
  • σ=(b1,b2,…,bm)\sigma = (b_1,b_2,…,b_m)σ=(b1,b2,,bm)bjb_jbj 为非负整数
  • 分别称为 ∑\sumT_向量S_向量
  • τT=(a1a2⋮an)\tau ^ T = \begin{array}{lc} \left(\begin{array}{cc} a_1\\ a_2\\ \vdots \\ a_n \end{array}\right) \end{array}τT=a1a2an​,σT=(b1b2⋮bm)\sigma ^ T = \begin{array}{lc} \left(\begin{array}{cc} b_1\\ b_2\\ \vdots \\ b_m \end{array}\right) \end{array}σT=b1b2bm 分别是 τ\tauτσ\sigmaσ 的转置向量。
3.5.4.2.1 状态方程

M=M0+A⋅τTM=M_0+A \cdot \tau ^ TM=M0+AτT 称为 ∑\sum 的状态方程,其中 τ\tauτ 为任一 T_向量M0M_0M0MMM 分别是标识的 S_向量

命题:设 α=τ1,τ2,…\alpha = \tau _1,\tau _2,…α=τ1,τ2,τ1\tau _1τ1∑\sum 的任一变迁序列,τ=(a1,a2,…,an)\tau=(a_1,a_2,…,a_n)τ=(a1,a2,,an) 是它的 T_向量 ,即 aia_iai 为变迁 tit_iti 在该序列中出现的次数,i=1,2,…,ni=1,2,…,ni=1,2,,n ,则 M=M0+A⋅τTM=M_0+A \cdot \tau ^ TM=M0+AτT,其中 MMMα\alphaα 的后继:M0[α⟩MM_0[\alpha \rangle MM0[αM

3.5.4.2.2 T-不变量S-不变量

T-不变量

  • T_向量 τ\tauτ 满足 M0=M0+A⋅τTM_0=M_0+A \cdot \tau^TM0=M0+AτT,则 τ\tauτ 称为 ∑\sumT-不变量
  • τ\tauτ∑\sumT-不变量,则 A⋅τT=θSTA \cdot \tau ^ T=\theta ^ T_SAτT=θST,其中 θS\theta _SθS 是分量全为 0 的 S_向量

S-不变量

S_向量 σ\sigmaσ 满足 σ⋅A=θT\sigma \cdot A = \theta _TσA=θT ,则 σ\sigmaσ 称为 ∑\sumS-不变量。其中 θT\theta _TθT 是分量全为 0 的 T_向量

例子 ∑1\sum _11

Petri网-3.4 C/E 系统 与 3.5 P/T 系统-编程之家

∑1\sum _11S-不变量 包括:

  • σ1=(1,0,1,1)\sigma _1=(1,0,1,1)σ1=(1,0,1,1)
  • σ2=(0,1,2,4)\sigma _2=(0,1,2,4)σ2=(0,1,2,4)
  • σ1⋅A1=(1,0,1,1)⋅(−1−1−2−41001)=(0,0)\sigma _1 \cdot A_1 = (1,0,1,1)\cdot \begin{array}{lc} \left(\begin{array}{cc} -1 & -1\\ -2 & -4\\ 1 & 0\\ 0 & 1 \end{array}\right) \end{array} = (0,0)σ1A1=(1,0,1,1)12101401=(0,0)
  • σ2⋅A1=(0,1,2,4)⋅(−1−1−2−41001)=(0,0)\sigma _2 \cdot A_1 = (0,1,2,4)\cdot \begin{array}{lc} \left(\begin{array}{cc} -1 & -1\\ -2 & -4\\ 1 & 0\\ 0 & 1 \end{array}\right) \end{array} = (0,0)σ2A1=(0,1,2,4)12101401=(0,0)

例子 ∑2\sum _22

Petri网-3.4 C/E 系统 与 3.5 P/T 系统-编程之家

∑2\sum _22 的不变量包括:

  • σ=(1,1,1)\sigma=(1,1,1)σ=(1,1,1)
  • τ=(1,2,1)\tau = (1,2,1)τ=(1,2,1)
  • σ⋅A2=(1,1,1)⋅(−101−11−12−10)=(0,0,0)\sigma \cdot A_2 = (1,1,1)\cdot \begin{array}{lc} \left(\begin{array}{cc} -1 & 0 & 1\\ -1 & 1 & -1\\ 2 & -1 & 0 \end{array}\right) \end{array} = (0,0,0)σA2=(1,1,1)112011110=(0,0,0)
  • A2⋅τT=(−101−11−12−10)⋅(121)=(0,0,0)A_2 \cdot \tau ^ T = \begin{array}{lc} \left(\begin{array}{cc} -1 & 0 & 1\\ -1 & 1 & -1\\ 2 & -1 & 0 \end{array}\right) \end{array} \cdot \begin{array}{lc} \left(\begin{array}{cc} 1\\ 2\\ 1 \end{array}\right) \end{array} = (0,0,0)A2τT=112011110121=(0,0,0)​​

练习

∑1\sum_11 是鸡兔同笼问题中数鸡(t1t_1t1)数兔(t2t_2t2)的网表示,请补上 t1t_1t1t2t_2t2 可能需要的调整变迁(并发数数,一方太快,导致头或腿剩下)。

找一找教堂婚礼系统的不变量

找一找哲学家系统的不变量,理解 S-不变量T-不变量 的物理意义。

3.5.4.2.3 求解不变量

{A⋅XT=θSY⋅A=θT\left \{ \begin{array}{ll} A \cdot X^T = \theta _S \\ Y \cdot A = \theta _T \end{array} \right.{AXT=θSYA=θT 可以求解 TTTSSS 不变量或者验证不变量。其中,X=(x1,x2,…,xn)X=(x_1,x_2,…,x_n)X=(x1,x2,,xn)Y=(y1,y2,…,ym)Y=(y_1,y_2,…,y_m)Y=(y1,y2,,ym) 分别为未知变量 T_向量未知S_向量

3.5.4.2.4 结论

T-不变量S-不变量 是结构性质,与 M0M_0M0 无关。

定义:

  • 如果 ∑\sum 有非零 T-不变量 ,则 θT\theta _TθT 也是 ∑\sumT-不变量 ;否则不是
  • 如果 ∑\sum 有非零 S-不变量 ,则 θS\theta _SθS 也是 ∑\sumS-不变量 ;否则不是

命题:

  • T-不变量S-不变量)的线性组合也是 T-不变量S-不变量)。

3.5.5 通用分析方法

  • 可达树与覆盖树算法
  • 求解不变量法
  • 化简法:忽略网结构细节
  • 提高层次法:提高抽象度以减少节点数
3.5.5.1 可达树与覆盖树算法
3.5.5.1.1 例:∑\sum 如图所示

Petri网-3.4 C/E 系统 与 3.5 P/T 系统-编程之家

M0=(1,0,0)M_0=(1,0,0)M0=(1,0,0)S1S_1S1S2S_2S2S3S_3S3 的资源数

Petri网-3.4 C/E 系统 与 3.5 P/T 系统-编程之家

若无无穷分支,可达树节点即为 [M0>[M_0>[M0>

覆盖树算法:为无穷分支“剪枝”

  • M1≤M2M_1\leq M_2M1M2 ,如果 ∀s∈S:M1(s)≤M2(s)\forall s \in S:M_1(s)\leq M_2(s)sS:M1(s)M2(s)M2M_2M2 覆盖 M1M_1M1
  • M1<M2M_1 < M_2M1<M2 ,如果 M1≤M2∧∃s∈S:M1(s)<M2(s)M_1 \leq M_2 \wedge \exists s \in S:M_1(s)<M_2(s)M1M2sS:M1(s)<M2(s)

Petri网-3.4 C/E 系统 与 3.5 P/T 系统-编程之家

最后得到的覆盖树

Petri网-3.4 C/E 系统 与 3.5 P/T 系统-编程之家

[M0>[M_0>[M0> 中所有标识均被覆盖树节点覆盖

Petri网-3.4 C/E 系统 与 3.5 P/T 系统-编程之家

覆盖图:M2M_2M2M1M_1M1 重叠,一类叶节点。将覆盖树同一路径上相同节点重叠

Petri网-3.4 C/E 系统 与 3.5 P/T 系统-编程之家

可达树,覆盖树,覆盖图,可用以检查验证活性,有界性,公平性及不变量。

  • 如例子中的系统是不公平的,不活的,无界的,没有不变量。
3.5.5.2 求解不变量法
3.5.5.3 化简法:忽略网结构细节
3.5.5.4 提高层次法:提高抽象度以减少节点数