Petri网导论入门学习(四)
- Petri 网导论学习笔记(4)
- 1.2 标识网与网系统
- 定义 1.8
- 定义 1.9
- 例 1.4
- 存在空标识网的几种情况
- 1.2 小结
- 1.2学习完应达到的要求
Petri 网导论学习笔记(4)
如需学习转载请注明原作者并附本帖链接!!!
如需学习转载请注明原作者并附本帖链接!!!
如需学习转载请注明原作者并附本帖链接!!!
原创码字不易,觉得不错请一键三连吧
这篇是1.2章节的内容
(ノへ ̄、)
发现网上关于Petri网的学习资源较少,这里分享的是看Petri网导论这本书的笔记(感觉相对于那个视频来说书上写的还是更详细一点,当然视频学习到第三章的笔记也会传上来,后续会主要看这本书来学习Petri网),欢迎大家来一起交流和学习,使用的学习资料是:
Petri网导论 吴哲辉著(主要)
Petri网:模型、理论与应用-清华大学
1.2 标识网与网系统
在1.1中主要比较规范的定义了Petri网的结构部分。在1.2节介绍Petri网的另一关键要素:标识 M!
这一节将学习原型Petri网的部分
定义 1.8
定义 1.8 设 N = ( S , T ; F ) N=(S,T;F) N=(S,T;F)为一个网。映射
M
:
S
→
{
0
,
1
,
2
,
⋯
}
M:S\to\{0,1,2,\cdots\}
M:S→{0,1,2,⋯}
称为网
N
N
N的一个标识(marking)。二元组
(
N
,
M
)
(N,M)
(N,M) (也即四元组
(
S
,
T
;
F
,
M
)
(S,T;F,M)
(S,T;F,M) )称为一
个标识网(marked net).
用图形来表示一个标识网 ( S , T ; F , M ) (S,T;F,M) (S,T;F,M)时,对 s ∈ S s\in S s∈S,若 M ( s ) = k M(s)=k M(s)=k,则在表示库所 s s s的小圆圈内加上 k k k个小黑点(当数值 k k k很大时,也可以直接写上数字 k k k),并说库所 s s s中有 k k k个标志(token)或标记。
M 里包含了每个库所所包含的“小石子数量” 如 M ( s 1 ) = 1 M(s_1)=1 M(s1)=1,表明 s 1 s_1 s1有一个小石子
定义 1.9
一个网系统(net system)是一个标识网
Σ
=
(
S
,
T
;
F
,
M
)
\Sigma=(S,T;F,M)
Σ=(S,T;F,M),并具有下面
的变迁发生规则(transition firing rule):
1)对于变迁
t
∈
T
t\in T
t∈T,如果
∀
s
∈
S
:
s
∈
∙
t
→
M
(
s
)
⩾
1
\forall s\in S:s\in^\bullet t\to M(s)\geqslant1
∀s∈S:s∈∙t→M(s)⩾1
则说变迁
t
t
t在标识
M
M
M有发生权(enabled),记为
M
[
t
>
M[t>
M[t>。
2)若
M
[
t
>
M[t>
M[t>,则在标识
M
M
M下,变迁
t
t
t可以发生(fire),从标识
M
M
M发生变迁
t
t
t得
到一个新的标识
M
′
M^\prime
M′(记为
M
[
t
>
M
′
)
M\left[t>M^{\prime}\right)
M[t>M′),对
∀
s
∈
S
\forall s\in S
∀s∈S,
M
′
(
s
)
=
{
M
(
s
)
−
1
,
若
s
∈
∙
t
−
t
∙
M
(
s
)
+
1
,
若
s
∈
t
∙
−
∙
t
M
(
s
)
,
其他
\left.\begin{aligned}\\&M^{\prime}(s)=\left\{\begin{array}{l}M(s)-1,\:\text{若}\:s\in^{\bullet}t-t^{\bullet}\\M(s)+1,\:\text{若}\:s\in t^{\bullet}-^{\bullet}t\\M(s),\:\text{其他}\end{array}\right.\\\end{aligned}\right.
M′(s)=⎩
⎨
⎧M(s)−1,若s∈∙t−t∙M(s)+1,若s∈t∙−∙tM(s),其他
开始讲解小石子游戏的游戏规则
对于一个有着库所、变迁、流关系和每个库所小石子状态的标识网
他的变迁规则是:
1) 对于一个变迁 t t t,
每个库所的元素,如果库所 s s s是某一个 t t t的前集, M ( s ) M(s) M(s)必须大于1。
就说明这个变迁 t t t可以在标识 M M M下可以发生。
在一个小方框□前的所有小⚪必须都有“小石子”,该变迁才可以发生(部分有不行,都得有因为前面 s s s相关定义有 ∀ \forall ∀。
P.S 这个表示变迁 t t t在 M M M有发生权的符号既抽象又有点形象。。。
M M M用[ >框住 t t t,表示可以在 M M M可以发生,而且有一个">"表示可以往后发展(个人理解,后面也会>也会接上变迁发生后的新标识 M ′ M' M′
2)变迁发生后获得新的 M ′ M' M′状态
其中 M ′ M' M′状态的状态转移方程是
如果 s ∈ ∙ t − t ∙ s\in^{\bullet}t-t^{\bullet} s∈∙t−t∙,表示 s s s是发生变迁的前集与后集的集合差运算的结果,表明是前集但不是变迁的后集,则你要发生变迁,你需要扣掉一个token
如果 s ∈ t ∙ − ∙ t s\in t^{\bullet}-^{\bullet}t s∈t∙−∙t,表示 s s s是发生变迁后集与前集的集合差运算的结果,表明是后集并不是前集库所,则你在发生变迁,你需要增加一个token
然后对于不是前集也不是后集,或者既是前集也是后集的库所里(一个自环),他的token不变。
(因为现在的Petri网系统每次发生变迁会扣掉一个token产生一个新的token,不涉及变迁的当然不改变,存在自环类的就是变迁的前集和后集存在同一个库所的情况下,-1+1=0,他也是不变的。
一个网系统有一个初始标识(initial marking),记为 M 0 M_0 M0。
描绘了这个网系统的初始状态,如果随便一个变迁发生就得到一个新标识 M 1 M_1 M1…然后不断的运行下去,变迁会接连发生,库所里的标识也会不断变化
※KEY:
(在这里的标识或者小石子的变化并不是从变迁前集的所有库所到达一个变迁再转移到另一个新的变迁所连接所有后集的库所,在这里的标识他的变化过程可以理解为在发生变迁时突然消失,再到达下一个变迁时突然出现,两者并不是同一个token,虽然可以表示同一个东西,后面提到加权的Petri网时,可能出现好几个token(小石子或者标识是同一个意思),最后出现1个token或者权函数规定所产生的token)。
——————————————————
如果理解成是同一个小石子在网里循环,则有可能会被困惑住后面的内容。
我自己自学的时候就在不同网系统的变迁规则这里绕了一些,希望读者能够对应上不同Petri网系统所对应的变迁发生规则:)
——————————————————
这就是网系统的运行。
例 1.4
对于图 1.1 的网
N
1
=
(
S
,
T
;
F
)
N_1=(S,T;F)
N1=(S,T;F) ,如果赋予一个初始标识
M
0
:
M
0
(
s
1
)
=
1
,
M
0
(
s
2
)
=
M
0
(
s
3
)
=
M
0
(
s
4
)
=
0
M_0:M_0(s_1)=1,\:M_0(s_2)=M_0(s_3)=M_0(s_4)=0
M0:M0(s1)=1,M0(s2)=M0(s3)=M0(s4)=0
就得到一个标识网
(
N
1
,
M
0
)
(N_1,M_0)
(N1,M0) ,如图 1.9a)所示。 加上的变迁发生规则,
(
N
1
,
M
0
)
(N_1,M_0)
(N1,M0)就构成一个网系统。在网系统
Σ
=
(
N
1
,
M
0
)
\Sigma=(N_1,M_0)
Σ=(N1,M0)中,只有变迁
t
2
t_2
t2在
M
0
M_0
M0有发生权。若
t
2
t_{2}
t2在
M
0
M_0
M0发生,就得到一个新的标识
M
1
M_1
M1,
(
N
1
,
M
1
)
(N_1,M_1)
(N1,M1) 如图 1.9b)所示。
在标识 M 1 M_1 M1下, t 1 t_1 t1和 t 4 t_4 t4都有发生权。若变迁 t 1 t_1 t1发生,得到一个新的标识 M 2 M_2 M2;如果是 t 4 t_{4} t4在 M 1 M_{1} M1发生,得到另一个标识 M 3 M_3 M3。 ( N 1 , M 2 ) (N_1,M_2) (N1,M2)和 ( N 1 , M 3 ) (N_1,M_3) (N1,M3)分别如图 1.9c)和图 1.9d)所示。
在标识 M 2 M_2 M2下 t 2 t_2 t2又可以发生,网系统还可以继续运行下去。容易看出,当网系统运行到标识 M 3 M_{3} M3时,绿框框里 s 3 s_3 s3并没有token,网中的任一个变迁在 M 3 M_{3} M3都没有发生权。这时,网系统的运行停止。
存在空标识网的几种情况
根据定义 1.8,这样的一个映射也是网 N N N的一个标识,称它为空标识(empty marking)。然而,对于有些网(结构)来说,空标识可能没有实际意义。譬如,对图 1.1的网 N 1 N_1 N1,如果以空标识作为它的初始标识,那么每一个变迁在初始标识下都没有发生权。这个网系统从一开始就不能运行。
有些网一开始没有标识,就不能运行。
但是下图的 t 1 t_1 t1变迁前集为空,根据前面的定义的变迁发生规则,他其实是可以凭空产生token的(因为要求是前面所有的库所都有token,没有库所就直接成立了)
对于另一些网,以空标识作为初始标识是可行的。例如,对于图1.2 的网
N
2
N_{2}
N2,如果以空标识
M
M
M作为它的初始标识,就得到图 1.10a)的标识网
(
N
2
,
M
)
(N_2,M)
(N2,M) 。显然,从图形上看,图 1.10a)同图 1.2 完全一样,但它们的含义是不同的。图 1.2 只给出了一个网
N
2
N_{2}
N2 , 图 1.10a) 却是一个带空标识
M
M
M的标识网。
在运行过程中会出现空标识
在标识网
(
N
2
,
M
)
(N_2,M)
(N2,M)中,虽然
M
M
M是一个空标识,即
N
2
N_{2}
N2的每个库所中都没有标志,但这个网是可以运行的。因为在
N
2
N_2
N2中,“
t
1
=
∅
t_1=\emptyset
t1=∅,根据变迁发生规则,
t
1
t_1
t1在标识
M
M
M下有发生权(逻辑蕴含式 (1.21)式的值为真)。
t
1
t_{1}
t1在标识
M
M
M发生,产生标识
M
1
M_{1}
M1。标识网
(
N
2
,
M
1
)
(N_{2},M_{1})
(N2,M1)如图 1.10b)所示。在标识
M
1
M_1
M1下,变迁
t
1
t_1
t1和
t
2
t_2
t2都有发生权。如果
t
1
t_1
t1发生, 就产生标识
M
2
M_2
M2,如图 1.10c)所示。如果
t
2
t_2
t2在
M
1
M_1
M1发生,产生标识
M
3
M_3
M3,如图 1.10d)所示。在
M
2
M_2
M2和
M
3
M_3
M3下,都还有一些变迁有发生权,还可以继续运行下去。
在有些情况下,空标识可能是一个网系统运行的结果,虽然这个网系统的初始标识不是空标识。例如,在图 1.11a)所示的标识网 ( N 6 , M 0 ) (N_6,M_0) (N6,M0)中,初始标识 M 0 M_{0} M0不是一个空标识。在 M 0 M_0 M0下变迁 t 1 t_1 t1有发生权, t 1 t_1 t1的发生产生标识 M 1 M_1 M1 (如图 1.11b)所示)。在标识 M 1 M_{1} M1下,变迁 t 2 t_2 t2和 t 3 t_3 t3都有发生权。如果 t 3 t_3 t3发生,所得到的标识 M 2 M_{2} M2就是一个空标识, 如图 1.11c)所示。可见,空标识是网系统 ( N 6 , M 0 ) (N_6,M_0) (N6,M0)可能的一种运行结果。
1.2 小结
这一节定义的网系统是最早被研究的网之一,也是最有代表性的网系统。
Petri网 名称最早指的就是这种网系统,现在 Petri网 是泛指再此基础上拓展并定义的一切网系统。
1.3会学习到库所/变迁系统(P/T系统),后面也将介绍高级和增广Petri网,含时间因素的Petri网等等。
本节定义的网系统被称为原型Petri网(Original Petri Net)
1.2学习完应达到的要求
对原型Petri网的运行规律非常熟悉
通过对网系统的变迁发生(指接连发生)以及网系统运行过程中可能出现的各种标识有一个大致的的了解,对分析和应用Petri网建模非常重要。