为什么不添加令牌?

Why tokens are not added?

正在阅读 this 文章,它说:

A firing of an enabled transition removes one token from each input place and adds one token to each output place.

现在如果我有以下网络,所有单弧

在触发 T1 之后,我希望 P2 包含 2 个令牌 - 来自 P1 和 P4。但结果是 P2 中的一个标记。不用太深入数学,怎么解释呢?

思考 Petri 网的一种方式是将它们视为 Predicate/Event 网,其中位置代表谓词,转移代表改变谓词真值的事件。标记指示在给定的事件序列之后哪些谓词成立。

例如,您的网络可以是大学图书馆中以下情况的模型

 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"

然后只有在 P1P4 为真时才可能触发 T1,即持有令牌。在触发 T1 之后,我们到达一个状态,其中 P1P4 条件无效并且 P2 变为真。

以这种方式解释 Petri 网很容易让自己相信标记是无关紧要的,因此系统中标记的数量,即在给定状态下为真的谓词数量,可以在没有任何特定的情况下发生变化干预。

Petri 网提供了不同的解释。很容易看出,为了确保令牌的数量保持不变,Petri 网应该有一个属性,其中每个转换具有相等数量的传入和传出弧。

Petri 网是根据网络元素和注释对系统的描述。有四种类型的网络元素:Place、Transition、Input 和Output。输入将位置连接到转换。一个输出将一个转换连接到一个地方。

事实上的标准图形(注释):

  1. 一个地方是圆形或椭圆形。
  2. 过渡是正方形或矩形。
  3. 输入是从圆(椭圆)到正方形(矩形)的箭头。
  4. 输出是从正方形(矩形)到圆形(椭圆形)的箭头。
  5. 标记为1的地方有1个黑点。标记为0的地方是空的。
  6. [启用的转换或启用的输入没有事实上的标准图形。]

事实上的标准逻辑注释:

  1. 一个输入是:

    a) 确定输入是否可能触发的测试条件:如果输入位置的标记大于或等于 1,则输入已启用 - 它可能会触发。否则,输入未启用 - 它可能不会触发。

    b) 一种计算逻辑:将输入位置的标记减1。计算输入就是触发输入。

  2. 一个输出是一个计算逻辑:在输出位置的标记处加1。计算输出就是触发输出。

  3. 一个过渡是:

    a) 确定转换是否可能触发的测试条件:如果转换的每个输入都已启用,则转换已启用 - 它可能会触发。

    b) 计算逻辑:触发转换的每个输入和每个输出。

Petri 网的典型解释是收集所有启用的转换,select 要触发的启用转换之一,并触发 selected 转换。在这种情况下,解释为 select 并触发转换 T1。发射T1后,P1和P4处的标记应为0,P2处的标记应为1。

因此没有按照您的预期添加标记的原因可能是因为输出的事实上的标准逻辑注释与您认为与输出关联的逻辑注释不同。