读这篇文章它说:
启用转换的触发会从每个输入位置移除一个标记,并向每个输出位置添加一个标记。
现在,如果我有以下网,所有单弧
触发 T1 后,我希望 P2 包含 2 个令牌 - 来自 P1 和 P4。但结果是 P2 中的一个令牌。不深入数学,怎么可能解释呢?
考虑 Petri 网的一种方法是将它们视为谓词/事件网络,其中位置表示谓词,转换表示改变谓词真值的事件。标记指示在给定事件序列之后哪些谓词成立。
例如,您的网络可以是大学图书馆中以下情况的模型
P1 = "A book is available at the library"
P4 = "A book is needed by a student"
P2 = "The student has the book"
和
T1 = "A book is dispatched to a student"
T1
然后只有当P1
并且为真时才可能触发P4
,即持有一个令牌。触发后,T1
我们到达条件无效并P1
变为真的状态。P4
P2
以这种方式解释 Petri 网很容易让自己相信令牌是无关紧要的,因此系统中令牌的数量,即在给定状态下为真的谓词的数量,可以在没有任何特定干预的情况下发生变化。
Petri 网提供了不同的解释。很容易看出,为了确保令牌的数量保持不变,Petri 网应该具有每个转换具有相等数量的传入和传出弧的属性。
Petri 网是根据网络元素和注释对系统的描述。有四种类型的网络元素:Place、Transition、Input 和 Output。输入将一个地方连接到一个转换。输出将转换连接到位置。
事实上的标准图形(注释):
事实上的标准逻辑注释:
输入是:
a) 确定输入是否可以触发的测试条件:如果输入位置的标记大于或等于 1,则启用输入——它可能会触发。否则,输入未启用——它可能不会触发。
b) 一个计算逻辑:从输入位置的标记中减去 1。计算输入就是触发输入。
输出是一个计算逻辑:将输出位置的标记加 1。计算输出就是触发输出。
一个过渡是:
a) 确定转换是否可以触发的测试条件:如果转换的每个输入都被启用,则转换被启用——它可能会触发。
b) 计算逻辑:触发每个输入并触发转换的每个输出。
Petri 网的一个典型解释是收集所有启用的转换,选择一个启用的转换来触发,然后触发选定的转换。在这种情况下,解释是选择并触发转换 T1。发射 T1 后,P1 和 P4 处的标记应为 0,P2 处的标记为 1。
因此,未按您预期添加标记的原因可能是因为输出的事实上的标准逻辑注释与您认为与输出相关联的逻辑注释不同。