目录
- 3.2 关联矩阵与状态方程
- 定义 3.3 关联矩阵
- 引理 3.4
- 引理 3.5
- 定理 3.4
- 例 3.7
- 例 3.8
3.2 关联矩阵与状态方程
正如 Petri 网的一个标识可以表示成一个 $ m $ 维非负整数向量一样,Petri 网的结构也可以用一个矩阵来表示。这样,就可以引入线性代数的方法对 Petri 网的性质进行分析。
定义 3.3 关联矩阵
设 Σ = ( S , T ; F , M ) \Sigma = (S, T; F, M) Σ=(S,T;F,M) 为一个 Petri 网, S = { s 1 , s 2 , … , s m } S = \{s_1, s_2, \ldots, s_m\} S={s1,s2,…,sm}, T = { t 1 , t 2 , … , t n } T = \{t_1, t_2, \ldots, t_n\} T={t1,t2,…,tn},则 Petri 网 Σ \Sigma Σ 的结构 ( S , T ; F ) (S, T; F) (S,T;F) 可以用一个 n n n行 m m m 列矩阵
a i j = a i j + − a i j − , i ∈ { 1 , 2 , ⋯ , n } , j ∈ { 1 , 2 , ⋯ , m } a_{ij}=a_{ij}^{+}-a_{ij}^{-},\quad i\in\{ 1,2,\cdots,n \}, j\in\{ 1,2,\cdots,m \} aij=aij+−aij−,i∈{1,2,⋯,n},j∈{1,2,⋯,m}
a i j + = { 1 , 若 . ( t i , s j ) ∈ F , 0 , 否则 , i ∈ { 1 , 2 , ⋯ , n } , j ∈ { 1 , 2 , ⋯ , m } a_{ij}^{+}=\left\{\begin{array}{ll}{1, \stackrel{.}{\textrm{若}}(t_{i},s_{j})\in F,}\\{0, \textrm{否则},}&{i\in\{ 1,2,\cdots,n \}, j\in\{ 1,2,\cdots,m \}}\\\end{array}\right. aij+={1,若.(ti,sj)∈F,0,否则,i∈{1,2,⋯,n},j∈{1,2,⋯,m}
a i j − = { 1 , 若 ( s j , t i ) ∈ F , 0 , 否则 , i ∈ { 1 , 2 , ⋯ , n } , j ∈ { 1 , 2 , ⋯ , m } \left.a_{ij}^{-}=\left\{\begin{array}{ll}{1, \text{若} (s_{j},t_{i})\in F,}\\{0, \text{否则},}&{i\in\{ 1,2,\cdots,n \}, j\in\{ 1,2,\cdots,m \}}\\\end{array}\right.\right. aij−={1,若(sj,ti)∈F,0,否则,i∈{1,2,⋯,n},j∈{1,2,⋯,m}
称 A A A 为 Σ \Sigma Σ(或网 N = ( S , T ; F ) N = (S, T; F) N=(S,T;F))的关联矩阵(incidence matrix)。
矩阵信息:行名是每个变迁,列名是每个库所,其中中间的值为当前需要消耗或者产生几个token
对 Petri 网的关联矩阵,不少文献采用另一种定义方式:把 A A A 的转置矩阵定义为 Σ \Sigma Σ 的关联矩阵,并记为 C C C(见 [1, 6])。也就是说一个有 m m m 个库所和 n n n 个变迁的 Petri 网的关联矩阵是一个 m × n m \times n m×n 行列 0/1 矩阵。
易知,在纯网范围内,关联矩阵和网结构之间存在着一一对应关系。这是因为对纯网来说,任一个变迁和任一个库所之间最多有一个弧,不会出现 a i j + a^+_{ij} aij+ 和 a i j − a^-_{ij} aij− 相互抵消的情况。
今后我们用关联矩阵讨论 Petri 网的性质时,均假设所讨论的网为纯网。
为讨论方便,我们引入两个 n × m n \times m n×m 矩阵
A + = [ a i j + ] n × m , A − = [ a i j − ] n × m A^+ = [a^+_{ij}]_{n \times m}, \quad A^- = [a^-_{ij}]_{n \times m} A+=[aij+]n×m,A−=[aij−]n×m
并分别称它们为 Σ \Sigma Σ 1(或网 N = ( S , T ; F ) N = (S, T; F) N=(S,T;F))的输出矩阵和输入矩阵。分别用 A i ∗ A_{i*} Ai∗, A i ∗ + A^+_{i*} Ai∗+ 和 A i ∗ − A^-_{i*} Ai∗− 分别表示矩阵 A A A, A + A^+ A+ 和 A − A^- A− 的第 i i i 行形成的行向量,用 A ∗ j A_{*j} A∗j, A ∗ j + A^+_{*j} A∗j+ 和 A ∗ j − A^-_{*j} A∗j− 表示矩阵 A A A, A + A^+ A+ 和 A − A^- A− 的第 j j j 列形成的列向量。 Σ \Sigma Σ 的标识 M M M 仍用 m m m 维非负整数向量来表示。不过在本节中,我们把 M M M 表示成一个列向量,即
M = [ M ( s 1 ) , M ( s 2 ) , … , M ( s m ) ] T M = [M(s_1), M(s_2), \ldots, M(s_m)]^T M=[M(s1),M(s2),…,M(sm)]T
其中右上角的 T 为矩阵(向量)的转置。
+是输出,-是输入
i*表示第i行行向量
*j表示第j列列向量
A + = [ a i j + ] n × m A^+ = [a^+_{ij}]_{n \times m} A+=[aij+]n×m 表示整个图发生某一个变迁后他所需要增加token总信息表
A − = [ a i j − ] n × m A^- = [a^-_{ij}]_{n \times m} A−=[aij−]n×m 表示整个图发生某一个变迁后他所需要消耗的token总信息表
引理 3.4
设 Σ = ( S , T ; F , M ) \Sigma = (S, T; F, M) Σ=(S,T;F,M) 为一个 Petri 网, A A A 为 Σ \Sigma Σ 的关联矩阵, t i ∈ T t_i \in T ti∈T,则 M [ t i ⟩ M[t_i \rangle M[ti⟩ 的充分必要条件是$ M \geq A^-_{i*} $
(3.12) 式是两个 m m m 维向量的比较,它的含义是 M ( j ) ≥ a i j , j = 1 , 2 , ⋯ , m M(j) \geq a_{ij}, \, j=1, 2, \cdots, m M(j)≥aij,j=1,2,⋯,m。
其中大于等于号表示只比较变迁i所需要消耗的,表明该状态token数不少于需要发生的 t i t_i ti所需要的token,所以可以发生
证明 由定义 1.9 及本节关于 A i ∗ A_{i*} Ai∗ 和 M M M 的定义可得。 □
引理 3.5
设 Σ = ( S , T ; F , M ) \Sigma = (S, T; F, M) Σ=(S,T;F,M) 为一个 Petri 网, A A A 为 Σ \Sigma Σ 的关联矩阵。如果 M [ t i > M ′ M[t_i > M' M[ti>M′<