元件詳解:離散事件 - 流程模型 - Seize



這個元件非常非常重要。他扮演的角色是將邏輯流程與資源使用進行結合。資源的運用情況,更是系統模擬最關心的事情。
資源我們會用ResourcePool[待補連結]來定義,而Seize就是用來定義如何抓取這些資源。請注意看左方圖示,中間有一個很短的Queue,他有點Queue的機制,也就是有了上方四個Port。當設定了Capacity時,等候資源的Entity超過此數目時,就要規定從哪裡溢出,然後要接到哪個流程或作哪些程式處理。然後他帶了一個向上的符號,那代表了下方多了一個preparedUnits。這是用來因應有些資源並不能直接抓取,他需要事先準備好。例如說,有超音波設備,他被定義為Portable的資源。他無法自行行走,得要靠另一個Moving的護士資源來移動。這個過程應該是超音波設備叫用護士,準備好後,才回到主流程讓病人(Entity)叫用。這時候,事先準備好的資源與主流程的連接就是靠這個Port。

配對元件

類似元件

相關元件

  • ResourcePool
  • ResourceTaskStart
  • ResourceTaskEnd
  • ResourceTask
  • ResourceSend
  • ResourceAttach
  • ResourceDetach

屬性

在講解Seize這個元件之前,應該要先理解ResourcePool這個元件。ResourcePool是定義模型中資源型態,而資源型態其實就是Agent Type只是透過ResourcePool來進行資源相關欄位資源。真的無須搞到很複雜,Agent Type就是類別宣告,而類別在模型可以被歸類成Entity類、Resource類。Entity有生有死;Resource沒有。
ResourcePool只是宣告而已,透過Seize就可真正的去你所需要的ResourcePool中去取得你要的那些Instance。注意,是用「那些」這個字眼,因為Seize可以定義資源集。一個資源項目的定義是{ResoourcePool, 數量},所謂資源集是[[{ResoourcePool, 數量}, {ResoourcePool, 數量},...],[{ResoourcePool, 數量}, {ResoourcePool, 數量},...],...]希望這樣子的表達方式能夠理解。當然,也可以是只有一個資源項目{ResoourcePool, 數量},這就是依據Seize這個屬性來決定的。

單一ResourcePool

所謂單一,就是資源來源(ResourcePool)是固定的,只能選擇數量。如下圖所示,Seize屬性中,選擇units of the same pool。然後選擇資源來源,以及需求數量。

多重ResourcePool

這個有點複雜,目的是提供資源使用方案之設定。這部份有兩個概念,(1) 一個方案,可由哪些資源來源所組合;(2) 能有多少種方案可供選擇。兩者都是先於Seize屬性中,選擇(alternative) resource sets。
(1) 方案內容組合
於Resource sets的屬性中,加入此方案內容所需要之資源來源與數量。一個方案的內容,必須同時滿足時,才能被使用。
 (2) 方案組合
如果是提供多種方案選擇時,則可點選「Add List」按鈕增加新的方案內容。原則上,會以此順序當作抓取資源之順序,所以,需考量資源之特性與原則來安排順序性。否則,會造成某些資源組合根本不會成立。

其他屬性

(1) 抓取策略:第一種是資源方案之要求條件都成立時才抓取資源;第二種是只要有可得之資源就先抓下來。這樣其他的Entity就無法使用此資源。
這兩者使用情境當然要配合實務狀態。第一種容易造成需要大量資源之Entity無法取得資源,造成Entity無法離開。第二種容易造成資源浪費。一旦資源被抓,別人就無法使用,而Entity本身,還需要等待其他資源時,就得等。
(2) 等候數量:這個是指可有多少個Entity一起抓資源。換句話說,要進到Seize的Entity才有資格抓取資源,與其他同在Queue的Entity競爭。若只設1時,就表示只能有一個Entity有資格抓資源,若他一時無法滿足時,其他的Entity就算是有資源可以滿足,但是沒有進到Seize中,所有沒有資格去抓資源。
(3) 設等候數量無限:這個可以避免上述情境。但是,還是有些狀況還是要設定Capacity。例如說,某個賣場發號碼牌開放固定人數去搶購。此時,購物推車就是資源。只有放行之Entity才有資格去搶購物推車。
(4) 設定被抓到資源的動向:如何點選此功能,表示要設定被抓到的資源應該要被送到什麼地方去。
可設定目的地的選項有:
Agent - 把資源送到抓到此資源的Entity處。
Network node - 把資源送到某節點去。
Attractor
 - 把資源送到某個捕捉點。
Other seized resource unit - 把此資源送到同一個Entity所抓取到的資源所在地。舉例說明,某Entity抓到了推高車,但是需要在抓一個司機。把抓到的司機送到堆高車處。
Home of seized resource unit - 將資源抓回原始點。
(x, y, z) - 將資源送到特定的座標點。

(5) 設定將資源與Entity綁定在一起:設定資源將會隨著Entity一起移動。
(6) 設定Entity所在位置:也就是設定此Entity在等候資源時,會在Network的什麼位置出現。
(7) (8) (9):設定抓取資源的工作是否要採用搶佔模式。

留言

這個網誌中的熱門文章

等候理論

AnyLogic簡單介紹

機率分配 - Part 6 Poisson