题目描述
这里有2个例子:
在上面的第一个Petri网中,有2个库所(P1 和 P2)和2个变迁(T1 和 T2)。P1初始有1个令牌。P2没有令牌。P1是变迁T1的输入库所,P2是T1的输出库所。在第二个例子中,有3个库所和3个变迁,P1有3个令牌。T2有2个输入库所,2个都是P2。
一个Petri网的操作
每个Petri网的变迁要么被允许,要么不被允许。一个变迁被允许当且仅当每个输入库所都至少有1个令牌。任何被允许的变迁可以发生。如果有多个变迁被允许,任何一个都可能发生。当一个变迁发生时,每个输入库所都会移除1个令牌,每个输出库所都会增加1个令牌。这会有效地利用原子能来完成,作为一个事件。如果没有一个变迁被允许,这个Petri网就被认为是死的。
最上面那个例子,只有T1是被允许的。当它发生时,会从P1移除1个令牌,给P2增加1个令牌。然后T2就被允许了。当它发生时,会从P2移除1个令牌,给P1增加1个令牌。显然,这个Petri网将会永远重复这个循环。
下面那个例子更加有趣。T1被允许然后发生,有效地移动1个令牌给P2。在这个时候,T1仍然是唯一被允许的变迁(T2被允许需要P2有2个令牌)。T1再次发生,在P1剩下1个令牌,P2中有2个令牌。现在,T1和T2都被允许。假设T2发生,从P2移除2个令牌,给P3增加1个令牌。现在T1和T3都被允许。直到没有变迁被允许,你应该能看到在9次变迁发生后,在P2仅留下1个令牌。(注意到,如果当T1和T2都被允许的时候,T1代替了T2发生,这个结果也同样是在9次变迁发生后。)
在这个问题中,你将会被给出1个或多个Petri网的描述。对于每个描述,你将要模拟NF(0 < NF < 1000)次变迁的发生,然后输出留在库所里的令牌数量。如果这个Petri网在NF次变迁发生之前就死了,你将按事实输出。
输入格式
输出格式
输入数据将会被选择来保证正确输出的唯一性。
样例输入
2 1 0 2 -1 2 0 -2 1 0 100 3 3 0 0 3 -1 2 0 -2 -2 3 0 -3 1 0 100 0
样例输出
Case 1: still live after 100 transitions Places with tokens: 1 (1) Case 2: dead after 9 transitions Places with tokens: 2 (1)