#net #modeling #nets #traits #simulating #place-transition

ptnet-core

用于建模和仿真Place/Transition网的核心类型和特性

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模块用于持续监控仿真。
    • 添加:实现SimulationTracerMatrixTracer),输出场所值和转换状态的运行时矩阵。
  • 修复:更改了一些特性方法的可变性,在某些地方添加了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})]$$

无运行时依赖