3个版本
0.1.2 | 2023年12月16日 |
---|---|
0.1.1 | 2023年12月13日 |
0.1.0 | 2023年12月13日 |
#118 in 仿真
每月26次下载
在ptnet-elementary中使用
62KB
801 行
包ptnet-core
此包提供用于建模和仿真Place/Transition网的核心类型和特性。
待定
变更
版本0.1.2
- 重构:将检查网和仿真特性的特性分离;
- 添加:添加新的
fmt
模块用于格式化/点时间/视图; - 添加:实现
NetFormatter
(``NetMatrixFormatter``),输出弧矩阵; - 添加:添加新的
tracer
模块用于持续监控仿真。 - 添加:实现
SimulationTracer
(MatrixTracer
),输出场所值和转换状态的运行时矩阵。
- 添加:添加新的
- 修复:更改了一些特性方法的可变性,在某些地方添加了
Rc<>
,以允许在不同仿真之间共享网,例如。
版本0.1.1
- 构建:配置GitHub动作。
版本0.1.0
- 首次发布。
lib.rs
:
本模块提供了一套用于建模和分析各种形式场所/转换或Petri网的特性。
Petri网是一种图形和数学建模工具。Petri网的概念源于Carl Adam Petri于1962年提交给德国达姆斯塔特工业大学数学与物理学院的研究生论文《Kommunikation mit Automaten》。
Petri网是描述和研究被特征化为并发、异步、分布式、并行、非确定性和/或随机的系统的常用工具。作为一种图形工具,Petri网可以用作类似于流程图、框图和网络的可视通信辅助工具。此外,在这些网中使用标记来模拟系统的动态和并发活动。作为一种数学工具,可以建立状态方程、代数方程和其他控制系统行为的数学模型。
定义
一个网络 \(N\) 由一组位置(集合 \(P\))、转换(集合 \(T\))和连接它们的弧(集合 \(A\))组成。注意,弧在历史上被称为流关系,该集合命名为 \(F\)。
$$\tag{Net} N = \left\langle P,T,A \right\rangle$$
位置集合 \(P\) 和转换集合 \(T\) 是不相交的。
$$ P \cap T = \emptyset$$
弧是位置/转换对之间的有向连接。我们将使用 \(\overset{a}{\leftarrow}\) 表示弧 \(a\) 的源端,\(\overset{a}{\rightarrow}\) 表示弧 \(a\) 的目标端。
$$\tag{Net Arc} A = \left(P \times T \right) \cup \left(T \times P \right)$$
输入弧将源位置连接到目标转换。
$$\tag{Input Arc} a_{in} = \left \{ a \in A | \overset{a}{\rightarrow} \in T \right \}$$ $$ a_{in}(t) = \left \{ a \in A | \overset{a}{\rightarrow} = t \right \}$$
转换 \(t\) 的输入位置集合被称为它的前集或 \({}^{\bullet}t\)。
$$\tag{Preset} {}^{\bullet}t = \left \{ p \in P | A(p,t) \right \}$$
输出弧将源转换连接到目标位置。
$$\tag{Output Arc} a_{out} = \left \{ a \in A | \overset{a}{\leftarrow} \in T \right \}$$ $$ a_{out}(t) = \left \{ a \in A | \overset{a}{\leftarrow} = t \right \}$$
转换 \(t\) 的输出位置集合被称为它的后集或 \(t^{\bullet}\)。
$$\tag{Postset} t^{\bullet} = \left \{ p \in P | A(t,p) \right \}$$
位置可以包含令牌;模型系统的当前状态(称为标记函数 \(M\))由每个位置中令牌的数量给出。
$$\tag{Marking Function} M: P \mapsto \mathbb{N}$$
网络的初始标记记为 \(M_{im}\) 或更常见地 \(M_0\)。一个标记网络通过特定的标记 \(M\) 扩展了网络元组。
$$\tag{Marked Net} N = \left\langle P,T,A,M \right\rangle$$
转换是活动组件。它们模型可以发生的活动(转换触发),从而改变系统的状态(Petri 网的标记)。只有在它们启用时,转换才允许触发,这意味着必须满足活动的所有前提条件,即输入位置中有足够的令牌。为此检查,我们使用未定义的函数 \(min\),该函数只能在我们定义令牌的类型之后定义。
$$\tag{Enabled Function} enabled\left(t \in T \right) = \forall p \in {}^{\bullet}t: min(A(p,t))$$
因此,网络 \(N\) 是可启用的,当且仅当 \(N\) 中的任何转换都是可启用的。
$$enabled\left(N\right) \iff \exists t \in T: enabled\left(t\right)$$
当转换触发时,它从其输入位置中移除令牌,并在所有输出位置中添加一些令牌。移除或添加的令牌数量取决于每个弧的基数。
在标记 \(M_n\) 中触发转换导致新的标记 \(M_{n+1}\)。随后的标记中转换的交互式触发称为令牌游戏。
分类
这是 Monika Trompedeller 在 1995 年最初制作的 Petri 网的高级分类,基于 L. Bernardinello 和 F. De Cindio 在 1992 年的调查。自那时以来,该分类尚未更新,因此主要是历史性的。然而,该分类对于快速了解各种类型 Petri 网的主要差异很有用。
- 第 1 级:具有可以表示布尔值 (\(\mathbb{B}\)) 的位置的网络,即,位置最多标记一个非结构化令牌。
- 条件/事件系统
- 基本网络
- 第 2 级:具有可以表示正整数 (\(\mathbb{N^{+}}\)) 的位置的网络,即,位置由一定数量的非结构化令牌标记。
- 位置/转换系统
- (普通)Petri 网络图
- 自由选择系统
- S-系统
- 状态机
- T-系统
- 标记图
- 第3级:由可以表示高级值的地点定义的网,即地点由结构化标记的多重集标记。
- 代数Petri网
- 积网
- 传统高级网
- 谓词/转换Petri网
- 着色Petri网
- 良构网
- 正则网
扩展
注意下表使用 \(\mathbb{B}\) 来表示布尔值集合 \(\left\{ \bot,\top \right \}\)。
名称 | 缩写 | 标记类型 | 弧权重 | 地点容量 | 定时 | 随机 | 级别 |
---|---|---|---|---|---|---|---|
基本网 | EN | \(M(p)\in \mathbb{B}\) | 否 | 否 | 否 | 否 | 1 |
Petri网 | PN | \(M(p)\in \mathbb{N^{+}}\) | 是 | 否 | 否 | 否 | 2 |
着色Petri网 | CPN | \(M(p)\in C\) | 是 | 是 | 否 | 否 | 3 |
限制
我们不仅可以通过扩展Petri网形式,还可以通过限制它来观察,并观察通过以特定方式限制语法而获得的特定类型的Petri网。
例如,普通Petri网是所有弧权重为1且所有地点容量为无限的网。
$$\tag{PN 限制} \forall p\in P: K(p) = \infty \land \forall a\in A: W(a) = 1$$
进一步限制,以下类型的普通Petri网通常被使用和研究。
在状态机(SM)中,每个转换都有一个进入弧和一个出弧,所有标记恰好有一个标记。因此,不能有并发,但可以有冲突(即非确定性)。
$$\tag{SM 限制} \forall t\in T: |t^{\bullet}|=|{}^{\bullet} t|=1$$
在标记图(MG)中,每个地点都有一个进入弧和一个出弧。这意味着,不能有冲突,但可以有并发。
$$\tag{MG 限制} \forall p\in P: |p^{\bullet}|=|{}^{\bullet} p|=1$$
在自由选择网(FC)中,从一个地点到转换的每个弧要么是该地点唯一的弧,要么是该转换唯一的弧,即可以同时有并发和冲突,但不能同时发生。
$$\tag{FC 限制} \forall p\in P: (|p^{\bullet}|\leq 1) \vee ({}^{\bullet} (p^{\bullet})=\{p\})$$
自由选择网是一个S-系统,如果其基础网是一个S-网。
$$\tag{S-网} \forall t\in T: |{}^{\bullet}t| \le 1 \land |t^{\bullet}| \le 1$$
自由选择网是一个T-系统,如果其基础网是一个T-网。在T-系统中,永远不会发生任何冲突,因为没有(前向)分支地点。
$$\tag{T-网} \forall p\in P: | {}^{\bullet}p | \le 1 \land | p^{\bullet} | \le 1$$
扩展自由选择(EFC)——一个可以转换为FC的Petri网。
在非对称选择网(AC)中,并发和冲突(总和,称为混乱)可能发生,但不是对称的。
$$\tag{AC 限制} \forall p_1,p_2\in P: (p_1{}^{\bullet} \cap p_2{}^{\bullet} \neq \emptyset) \to [(p_1{}^{\bullet} \subseteq p_2{}^{\bullet}) \vee (p_2{}^{\bullet} \subseteq p_1{}^{\bullet})]$$