Petri網 簡單程式設計

2021-08-19 19:17:48 字數 1155 閱讀 9493

介紹petri

網的元素:

(1)庫所

(place):

圓形節點

(2)變遷

(transition

0):方形

節點 (3)有向弧(connection):

庫所與變遷之間的

有向弧線

(4)託肯

(token):

庫所中的動態物件,可以從乙個庫所移動到另乙個

庫所petri網規則:

如果某乙個變遷的所有前驅庫所都有托肯,則這個變遷滿足發射條件;變遷發射時,從它所有的前驅庫所裡分別取出1個託肯,同時往它所有的後繼庫所裡面分別放置1個託肯,

以此類推

有兩個或多個變遷都被允許的可能,但是一次只能發生乙個變遷。

隨機數確定發生的變遷

如果出現乙個變遷,其輸入庫所的個數與輸出庫所的個數不相等,令牌的個數將發生變化,即就是,

消耗託肯數目=前驅庫所數目-後繼庫所數目

兩個變遷爭奪乙個託肯的情形被稱之為衝突。當發生衝突的時候,由於petri網的時序是不確定的,因此具體哪個變遷得以發生也是不確定的。實際應用中,往往需要避免這種情形。用於描述現象的petri網也可能自然出現衝突,這表明我們對於變遷發生的條件沒有完全了解。

petri是靜態的,也就是說,不存在發生了乙個變遷之後忽然冒出另乙個變遷或者庫所,從而改變petri網結構的可能。

petri網的狀態由託肯在庫所的分布決定。也就是說,變遷發生完畢、下乙個變遷等待發生的時候才有確定的狀態,正在發生變遷的時候是沒有乙個確定的狀態的。

程式設計:place類(庫所):序號,託肯數目

transition類(變遷):序號,前驅庫所陣列,後繼庫所陣列

main主程式:全域性變數:petri網中的place陣列和transition陣列

a.初始化place陣列;

b.初始化transition陣列;

c.判斷當前狀態下是否存在滿足發射條件的變遷,並隨機選擇乙個滿足發射條件的變遷執行d;

d.對乙個指定的變遷進行發射,內容是將這個變遷的所有前驅庫所中的託肯數目均減1,所有後繼庫所中的數目均加1,消耗的託肯數目是前驅庫所數目-後繼庫所數目,完成

e.若要繼續進行c

工作流 Petri網概念 1

petri 網由庫和變遷組成,用圓圈表示庫所,用矩形表示變遷。petri 網中的庫所和變遷可以用有向弧連線。共有兩種型別的弧 從庫所到變遷 從變遷到庫所 也就是說從庫所到庫所,或從變遷到變遷的弧都是不允許的。庫所可以容納標記 token 標記用黑點表示。變遷從庫所中獲得標記,然後輸出到下乙個庫所中,...

工作流 Petri網概念 2 學習筆記

顏色擴充套件使得圖形無法表示網的全部資訊。對每個變遷需要指出如下因素 l是否有前置條件,如果有,則必須準確定義。l每次實施每個輸出庫所送出的標記個數。該值可能依賴於被消耗的標記的值。l生產來的標記的值,可能也依賴於被消耗掉的標記的值。採用時間擴充套件,標記將時間戳作為乙個值,該時間戳指明標記自何時可...

基於petri網的工作流筆記(一)

工作流模型如何和petri網聯絡起來呢?petri網的幾個擴充套件 著色petri網 時間petri網 層次petri網 著色petri網給令牌 著色 賦值,增加了屬性特徵,使得流程中的各個令牌可以明確的區分。乙個例子 十字路口,兩組交通訊號燈控制四個方向的車輛。每組燈包含紅 黃 綠三種顏色。同時是...