參考 題型範例 - 全國高級中等學校技藝競賽平台 工業類 題目:派屈網路的模擬 派屈網路(Petri net)被用來模擬操作程序,例如:交通流程、工業製程等。在此,把它簡化如圖 1。它的表示由小圓盤及轉移棒組成。小圓盤分為三類:輸入、內部及輸出等。「輸入小圓盤」只出現在轉移棒的輸入端,「輸出小圓盤」只出現在轉移棒的輸出端,而「內部小圓盤」則在轉移棒的輸入端及輸出端均有,如圖 1。轉移棒有「1-1轉移棒」及「2-1轉移棒」,如圖 1 的 t1及 t2。轉移棒在被執行時,小圓盤被放入權杖或被移除權杖;而轉移棒是否執行?端視其輸入端的所有小圓盤是否都被放入權杖?若是,則該轉移棒將被執行,執行時,其輸入端的所有小圓盤的權杖全都被移除,且其輸出端的小圓盤被放入權杖,如圖 2。注意:若輸出端小圓盤的權杖尚未移除,則該轉移棒將不執行。每一個小圓盤只能放入一個權杖,被移除後就空了,只能再等其上之轉移棒滿足條件執行時再放入。之後,依序檢查各個轉移棒是否符合執行條件而予以執行。而且每次只在 1 個「輸入小圓盤」放入權杖,接著執行該派屈網路,可一直重複執行。權杖在圖示時以小黑點表示,如圖 2;在程式執行時,小圓盤有權杖時可用 1 表示,無則以 0 表示之。而我們也可以隨時查看各個小圓盤擺放權杖的情況。為了簡化複雜度,在此限制每個轉移棒的輸入端(上方)連接一個(例如:圖 1 的t1)或二個小圓盤(例如:圖 1 的 t2),轉移棒的輸出端(下方)只能連接一個小圓盤;小圓盤的上方連接一個轉移棒,小圓盤的下方連接一個或二個轉移棒(例如:圖 1 的 f)。此外,網路不可以形成迴圈。 模擬派屈網路 第一階段:建構資料結構 1. (1)鍵入「輸入小圓盤」;(2)鍵入「內部小圓盤」;(3)鍵入「輸出小圓盤」。 2. (1)鍵入「2-1 轉移棒」; (2)鍵入「1-1 轉移棒」。 3. 印出資料結構:轉移棒與小圓盤的關係,小圓盤與轉移棒的關係。 第二階段:轉移棒的執行,每次只在 1 個「輸入小圓盤」放入權杖,便執行該派屈網路,可一直重複執行。 1. 將權杖鍵入「輸入小圓盤」的名稱,例如:a。每次只鍵入 1 個,並查看各個小圓盤權杖的情況。 2. 執行轉移棒,並查看執行後各個小圓盤權杖的情況。 3. 重複執行前述步驟 1 及 2。 例 1:派屈網路如圖 1,執行過程如圖 3。 圖 3a 在例 1 中建構圖 1 的資料結構 第二階段:轉移棒的執行 圖 3b 例 1 之圖 1 轉移棒的執行 例 2:派屈網路如圖 1,執行過程如圖 4。 第一階段:建構資料結構 同圖 3a。 第二階段:轉移棒的執行 圖 4 例 2 之圖 1 轉移棒的執行 執行結果 執行結果 執行結果 |