基于Petri网的工作流如何运行

  1. A transition may only fire if it is enabled. This occurs when there is at least one token at each of its input places. The transitions are then, as it were, "loaded": ready to fire. In figure 2.2, the transition record is enabled. The other two are not.定义了什么样的transition是enabled状态,即每个输入都至少有一个token。
  2.  As it fires, one token is removed from each input place and one token added to each output place.这句话用来理解fire的最本质的过程,即对于enabled的transition来说,会从每一个输入的place中取出一个token,并在每一个output的place中输出一个token,这个过程并非是守恒的。
  3. 理解以上两句话的含义即可以读懂这样一个稍微复杂的Petri网:

    

    这样一个Petri网的功能为保证place-under_consideration只有一个token,具体实现过程模拟如下:

    1. 初始状态只有record可以fire。
    2. record fire
    3. 此时place-claim、place-free中各被record取走一个token,place-under_consideration中有一个token
    4. 此时pay或者send_letter符合enabled的规则
    5. 因为pay或者send_letter有一个输入两个输出,所以任何一个transition fire之后place-free都会多一个token
    6. 由此进行循环,保证place-under_consideration里只有一个token

总结:对于Petri网这类形式化的知识应该紧抓本质,即定义,方得要领。

注:摘自《WorkFlow Management》一书,作者Wil van der Aalst and Kees van Hee。

原文地址:https://www.cnblogs.com/billdingdj/p/9905871.html