Petri 网导论学习笔记(二)
如需学习转载请注明原作者并附本帖链接!!!
如需学习转载请注明原作者并附本帖链接!!!
如需学习转载请注明原作者并附本帖链接!!!
原创码字不易,觉得不错请一键三连吧
(ノへ ̄、)
发现网上关于Petri网的学习资源较少,这里分享的是看Petri网导论这本书的笔记(感觉相对于那个视频来说书上写的还是更详细一点,当然视频学习到第三章的笔记也会传上来,后续会主要看这本书来学习Petri网),欢迎大家来一起交流和学习,使用的学习资料是:
Petri网导论 吴哲辉著(主要)
Petri网:模型、理论与应用-清华大学
Chap1 网与子网
1.1 网与子网
Petri 网是用于描述分布式系统的一种模型。它既能描述系统的结构,又能模拟系统的运行。描述系统结构的部分称为网(net)。从形式上看,一个网就是一个没有孤立结点的有向二分图。
有向二分图:边有方向且节点由两个集合组成,且两个集合内部没有边的图。
定义 1.1
定义 1.1 满足下列条件的三元组 N = ( S , T ; F ) N=(S,T;F) N=(S,T;F)称作一个网:
1 ) S ∪ T ≠ ∅ 2 ) S ∩ T = ∅ 3 ) F ⊆ ( S × T ) ∪ ( T × S ) 4 ) d o m ( F ) ∪ c o d ( F ) = S ∪ T \begin{aligned}&1 ) S\cup T\neq\emptyset\\&2 ) S\cap T=\emptyset\\&3 ) F\subseteq(S\times T)\cup(T\times S)\\&4 ) \mathrm{dom}(F)\cup\mathrm{cod}(F)=S\cup T\end{aligned} 1)S∪T=∅2)S∩T=∅3)F⊆(S×T)∪(T×S)4)dom(F)∪cod(F)=S∪T
- 三元组 N = ( S , T ; F ) N=(S,T;F) N=(S,T;F)称作一个网
- S S S的元素称为 S S S-元,或者叫库所(Place) →一般用⭕表示
- T T T的元素称为 T T T-元,或者叫变迁(Transition) →一般用□表示
- F F F是网的流关系(Flow Relation) →一般用箭头“→”表示
小白也能听懂版:
1)库所和变迁的点集的并不为空→要有库所的点或者变迁的点
2)库所和变迁的点集的交是空集→库所是库所,变迁是变迁,一个点不能同时是库所或者变迁
3)流关系是(库所和变迁)或者(变迁到库所)的分别笛卡尔积的并集的子集→流关系是一个有序数对如 ( s , t ) (s,t) (s,t),表示从库所到变迁或者从变迁到库所的关系,是整个库所变迁之间排列组合的所有情况的子集(而且不能同类发生流关系,比如从库所到库所,变迁到变迁
4)表示流关系的定义域和值域的并集包含了所有库所和变迁的点→表明该网系统中没有孤立点,每个点都有流关系相连接
其中:
d o m ( F ) = { x ∈ S ∪ T ∣ ∃ y ∈ S ∪ T : ( x , y ) ∈ F } c o d ( F ) = { x ∈ S ∪ T ∣ ∃ y ∈ S ∪ T : ( y , x ) ∈ F } \mathrm{dom}(F)=\{ x\in S\cup T | \exists y\in S\cup T : (x,y)\in F \}\\\mathrm{cod}(F)=\{ x\in S\cup T | \exists y\in S\cup T : (y,x)\in F \} dom(F)={x∈S∪T∣∃y∈S∪T:(x,y)∈F}cod(F)={x∈S∪T∣∃y∈S∪T:(y,x)∈F}
小白也能听懂版:
dom( F F F)是流关系的定义域(domain), x x x是库所或者变迁点集中的一点,且存在一个 y y y点也是库所变迁点集中的一点,且 ( x , y ) (x,y) (x,y)这一有序数对是流关系中的元素,其中dom( F F F)表示其流关系的开始节点
同理:
cod( F F F)是流关系的值域或者是上域(co-domain), x x x是库所或者变迁点集中的一点,且存在一个 y y y点也是库所变迁点集中的一点,且 ( y , x ) (y,x) (y,x)这一有序数对是流关系中的元素,其中cod( F F F)表示其流关系的结束节点
定义 1.2
设 N = ( S , T ; F ) 为一个网。对于 x ∈ S ∪ T ,记 \text{设 }N=(S,T;F)\text{ 为一个网。对于 }x\in S\cup T\text{,记} 设 N=(S,T;F) 为一个网。对于 x∈S∪T,记
∙ x = { y ∣ y ∈ S ∪ T ∧ ( y , x ) ∈ F } x ∙ = { y ∣ y ∈ S ∪ T ∧ ( x , y ) ∈ F } ^\bullet x=\{ y | y\in S\cup T \wedge (y,x)\in F \}\\x^{\bullet}=\{ y | y\in S\cup T \wedge (x,y)\in F \} ∙x={y∣y∈S∪T∧(y,x)∈F}x∙={y∣y∈S∪T∧(x,y)∈F}
称 ∙ x 为 x 的前集或输入集, x ∙ 为 x 后集或输出集。称 ∙ x ∪ x ∙ 为元素 x 的外延。 \text{称 }^\bullet x\text{ 为 }x\text{ 的前集或输入集,}x^\bullet\text{ 为 }x\text{ 后集或输出集。称 }^\bullet x\cup x^\bullet\text{ 为元素 }x\text{ 的外延。} 称 ∙x 为 x 的前集或输入集,x∙ 为 x 后集或输出集。称 ∙x∪x∙ 为元素 x 的外延。
小白也能听懂版:
∙ x ^\bullet x ∙x是 x x x的前集或者输入集,其中的元素是属于库所变迁点集中的一个且属于流关系中的开始节点
x ∙ x^\bullet x∙是 x x x的后集或者输出集,其中的元素是属于库所变迁点集中的一个且属于流关系中的结束节点
∙ x ∪ x ∙ ^\bullet x\cup x^\bullet ∙x∪x∙ 可以流向 x x x结点和可以从 x x x流出的所有结点顾名思义就是 x x x的外延,向外的延申,包括向前或者向后的
显然,一个库所的外延是变迁集 T T T的一个子集,一个变迁的外延是库所集 S S S的一个子集。对 ∀ x ∈ S ∪ T \forall x\in S\cup T ∀x∈S∪T, x x x的外延 ∙ x ∪ x ∙ ^{\bullet}x\cup x^\bullet ∙x∪x∙都不可能是空集(否则 x x x就是一个孤立结点)。
例 1.1
图1.1是一个网 N = ( S , T ; F ) N=(S,T;F) N=(S,T;F)的图形表示,其中
S = { s 1 , s 2 , s 3 , s 4 } T = { t 1 , t 2 , t 3 , t 4 } F = { ( s 1 , t 2 ) , ( s 2 , t 1 ) , ( s 2 , t 4 ) , ( s 3 , t 3 ) , ( s 3 , t 4 ) , ( s 4 , t 3 ) , ( t 1 , s 1 ) , ( t 2 , s 2 ) , ( t 2 , s 3 ) , ( t 3 , s 1 ) , ( t 4 , s 4 ) } \begin{aligned}&S=\{ s_{1},s_{2},s_{3},s_{4} \}\\&T=\{ t_{1},t_{2},t_{3},t_{4} \}\\&F=\{ (s_{1},t_{2}), (s_{2},t_{1}), (s_{2},t_{4}), (s_{3},t_{3}), (s_{3},t_{4}),\\&(s_{4},t_{3}), (t_{1},s_{1}), (t_{2},s_{2}), (t_{2},s_{3}), (t_{3},s_{1}), (t_{4},s_{4}) \}\end{aligned} S={s1,s2,s3,s4}T={t1,t2,t3,t4}F={(s1,t2),(s2,t1),(s2,t4),(s3,t3),(s3,t4),(s4,t3),(t1,s1),(t2,s2),(t2,s3),(t3,s1),(t4,s4)}
对于库所
s
1
s_1
s1,它的前集和后集分别为
∙
s
1
=
{
t
1
,
t
3
}
,
s
1
∙
=
{
t
2
}
^\bullet{s_{1}=\{\:t_{1},t_{3}\:\}, s_{1}^{\bullet}=\{t_{2}\}}
∙s1={t1,t3},s1∙={t2}
而变迁
t
2
t_2
t2的前集和后集分别为
∙
t
2
=
{
s
1
}
,
t
2
∙
=
{
s
2
,
s
3
}
^\bullet t_2=\{s_1\},\quad t_2^\bullet=\{\:s_2,s_3\:\}
∙t2={s1},t2∙={s2,s3}
易知,在一个网
N
=
(
S
,
T
;
F
)
N=(S,T;F)
N=(S,T;F)中,对任意
t
∈
T
t\in T
t∈T和任意
s
∈
S
s\in S
s∈S,
t ∈ ∙ s t\in^{\bullet}s t∈∙s当且仅当 s ∈ t ∙ s\in t^{\bullet} s∈t∙
t ∈ s ∙ t\in s^{\bullet} t∈s∙当且仅当 s ∈ ∙ t s\in ^{\bullet}t s∈∙t
从图 1.1 可以看出,在网 N 1 N_1 N1中对任意 x ∈ S ∪ T x\in S\cup T x∈S∪T都有 ∙ x ≠ ∅ ^\bullet x\neq\emptyset ∙x=∅且 x ∙ ≠ ∅ x^\bullet\neq\emptyset x∙=∅。
定义 1.3
设 N = ( S , T ; F ) N=(S,T;F) N=(S,T;F)是一个网。
-
若 ∀ x ∈ S ∪ T \forall x\in S\cup T ∀x∈S∪T,
∙ x ∩ x ∙ = ∅ ^{\bullet}x\cap x^{\bullet}=\emptyset ∙x∩x∙=∅
则称 N N N为一个纯网(pure net)。
库所变迁中任意一点,他的前集和后集没有相同点(没有环),定义为纯网
-
若 ∀ x , y ∈ S ∪ T \forall x,y\in S\cup T ∀x,y∈S∪T,
( ∙ x = ∙ y ) ∧ ( x ∙ = y ∙ ) → x = y (^\bullet x=^\bullet y)\:\wedge\:(x^\bullet=y^\bullet)\to x=y (∙x=∙y)∧(x∙=y∙)→x=y
则称 N N N为一个简单网(simple net)。库所变迁中的任意两点,他俩的前集和后集都相等可以推断他俩是相等的(为什么这个是定义???),称N为一个简单网。
如果两个节点的前集和后集都相等,那么它们实际上是同一个节点。这个条件确保了网络结构中每个节点的前后关系是唯一的。
在简单网中,这种唯一性保证了网的简洁性和清晰性。换句话说,简单网没有重复的节点关系,这使得分析和理解网络结构更为直接和明确。
这种定义方式帮助区分不同的网络结构,使得简单网在分析和建模中具有独特的属性。
(虽然感觉这个定义很奇怪?)
-
若 ∀ s ∈ S \forall s\in S ∀s∈S,
∣ ∙ s ∣ = ∣ s ∙ ∣ = 1 |^\bullet s|=|s^\bullet|=1 ∣∙s∣=∣s∙∣=1
则称 N N N为一个 T − T- T−图( T T T-graph)。
通俗地说,在 T T T-图中,每个库所都只连接着一个输入变迁和一个输出变迁。换句话说,库所是线性连接的,没有分支或合并的情况。这种结构使得 T T T-图看起来像是一条线性的路径。
-
若 ∀ t ∈ T \forall t\in T ∀t∈T,
∣ ∙ t ∣ = ∣ t ∙ ∣ = 1 |^\bullet t|=|t^\bullet|=1 ∣∙t∣=∣t∙∣=1
则称 N N N为一个 S − S- S−图( S − S- S−graph)同理:通俗地说,在 S S S-图中,每个变迁都只连接着一个输入库所和一个输出库所。换句话说,变迁是线性连接的,没有分支或合并的情况。这种结构使得 S S S-图看起来像是一条线性的路径。
-
若 ∀ t 1 , t 2 ∈ T , ( t 1 ≠ t 2 ) \forall t_1,t_2\in T,(t_1 \neq t_2) ∀t1,t2∈T,(t1=t2)
∙ t 1 ∩ ∙ t 2 ≠ ∅ → ∣ ∙ t 1 ∣ = ∣ ∙ t 2 ∣ = 1 ^\bullet{t_1\cap}^\bullet{t_2\neq\emptyset\to|^\bullet t_1|=|^\bullet t_2|=1} ∙t1∩∙t2=∅→∣∙t1∣=∣∙t2∣=1
则称 N N N为一个自由选择网(free-choice net)。在自由选择网中,如果两个变迁共享一个输入库所,那么这些变迁不能有其他的输入库所。这样,选择哪个变迁发生(即“自由选择”)只取决于共享的那个库所的标识,而不会受到其他库所的影响。
-
若 ∀ t 1 , t 2 ∈ T ( t 1 ≠ t 2 ) \forall t_1,t_{2}\in T(t_{1}\neq t_{2}) ∀t1,t2∈T(t1=t2),
∙ t 1 ∩ ∙ t 2 ≠ ∅ → ∙ t 1 = ∙ t 2 ^\bullet t_1\cap^\bullet t_2\neq\emptyset\to^\bullet t_1=^\bullet t_2 ∙t1∩∙t2=∅→∙t1=∙t2
则称 N N N为一个扩充的自由选择网(extended free-choice net)。在扩充的自由选择网中,如果两个变迁共享一个输入库所,那么它们的所有输入库所必须完全一样。这意味着这些变迁之间的选择是完全由它们的共享输入库所决定的,保持了一种对称性和一致性。