petri網初步


歷史
Petri網的概念是德國的Carl Adam Petri早在1962年提出來的。他在他的論文里提出了一個新的信息流模型,這個模型基於系統各部分的異步並發的操作,並把各部分之間的關系用網狀的圖來描述。

 

Petri net graph:
Petri網用於描述和分析系統中的控制流和信息流,尤其是那些有異步和並發活動的系統。
圓圈表示位置( place ),圓圈中有標識( token )表示條件( condition )滿足。線段( bar)表示變遷( transition )。一個Petri net graph如下圖所示:
 [每周學習新技術]petri網
因為petri網中的弧是有方向的,所以petri網圖是有向圖。又因為petri網中的節點可以分為兩個集合:place和transition,並且每條弧都是從一個集合中的元素連到另一個集合中的元素,所以petri網圖是一個有向二分圖。

 

Petri網的結構
用四元組表示:位置的集合P,變遷的集合T,輸入函數I,輸出函數O。C = ( P, T, I, O)。下面是一個例子:
C = ( P, T, I, O)
P = {p1, p2, p3, p4, p5}
T = {t1, t2, t3, t4 }
I(t1) = {p1}    O(t1) = {p2, p3, p5}
I(t2) = {p2, p3, p5}   O(t2) = {p5}
I(t3) = {p3}    O(t3) = {p4}
I(t4) = {p4}    O(t4) = {p2, p3}

上面是petri網的形式化描述,通常使用簡明直觀的petri net graph來闡明petri網的許多概念。

 

Marked Petri net:
一個petri網的標識可以用一個向量表示μ= (μ1, μ2, …μn)。μi代表pi的token數目。一個標識的petri網叫做marked Petri net,M = ( P, T, I, O, μ)。
任何時候,在任何位置( place )有不多於一個的標識的Petri網,叫做安全網( safe net )。推廣之,在任何位置同時不多於k個標識的Petri網,叫做k-bounded net。如果不知道k的值,簡單地叫做bounded net。“有界”代表着petri網在物理上的可實現。
如果Petri網中token的總數保持不變,稱這個petri網是保守( conservative )的。它隱含着,每個可觸發的變遷( transition )輸入的數目等於它輸出的數目。

 

Petri網的執行和可達性問題
如果一個變遷的每個輸入都至少有一個token,則這個transition被enabled。變遷發生時,會從它的每個輸入移去一個token,在它的每個輸出放置一個token。
一個petri網的狀態是它的所有標識的集合(向量μ)。當一個變遷發生時引起的狀態變化由一個局部函數δ來定義,叫做下一狀態函數。
從一個標識μ可以同時發生一組變遷。如果從μ同時發生一些變遷可以得到μ’,稱μ’是立即可達( immediately reachable )的。可達集合( reachability set )R(M)被定義為M = (P, T, I, O, μ)從μ出發可以得到的所有狀態的集合。
給定一個標識的petri網,標識記作u。給定一個標識u’。是否可以從u得到u’是petri網的可達性問題。可以看作集合可達性問題的一個特例,很多問題都可以歸約到可達性問題。
如果沒有一個變遷激活序列可以觸發一個變遷,我們稱這個變遷是死的( dead );反之,變遷是活的( live )。為了研究操作系統的死鎖問題,在Perti網中定義了變遷的deadness和liveness。

 

用Petri網建模的例子
Petri網適合對存在並發、並行的事件的離散事件系統進行建模。一般用位置( place )表示條件,用變遷表示事件。看下面的圖,是一個簡單計算機系統的例子:
 [每周學習新技術]petri網

 
參考:
James L. Peterson的《petri nets》。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM