發表文章

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

圖片
這個元件主要是搭配 Seize 元件。 隨著 Seize 複雜的設定,也造成Release元件有複雜的釋放策略。 配對元件 Seize 類似元件 無 相關元件 ResourcePool ResourceTaskStart ResourceTaskEnd ResourceTask ResourceSend ResourceAttach ResourceDetach 屬性 (1) 釋放策略:總計有5種方法。 All seized resources (of any pool ):釋放此Entity目前所有抓取的資源。 All resources  seized  by given Seize block(s):釋放此Entity在哪一個Seize所抓取得所有資源。 All seized resources from given pool(s):釋放此Entity從哪一個資源來源所抓取得所有資源。 Specified resources (list of pools):選擇哪些資源來源要釋放。 A specified quantity of  resources:設定釋放哪種資源與數量。 (2) 設定資源釋放後之去處:回到原始點,或者停留在原地。在某些情境下,資源使用後可能需要經過整備(充電,或補充耗材)之後,才能被Entity抓取。 (3) 設定整備任務:每一次都要,這個跟設定讓資源回到原始點相同。注意,資源移動過程是不能被抓取,且需要耗時;若沒有其他任務時,就回原始點;自訂整備條件。 (4) 整備狀態之統計設定:設為busy;設為idle;或者是不收集。

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

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

空間佈置:Network

圖片
這是AnyLogic非常重要的觀念,有別於其他模擬軟體。我在這邊摔了很多次跤。AnyLogic把邏輯流程與空間佈置分開來處理。你可以有個模型沒有空間佈置,純粹就是看邏輯流程裡的元件,進出多少個Entity。當你有了空間佈置,那就有2D與3D的視圖。設計時是有3維座標的2D編輯區。執行時2D編輯區仍可顯示3D物件,但是真正的3D,是另外一個3D Window來顯示。 講空間佈置,原則上是在一個2D的編輯區中設計3D物件的擺放與流動。這個擺放與流動所形成的結構,就叫做Network。下圖是AnyLogic的說明檔中的圖。 左邊是我們拉一些空間佈置的節點(Node)到編輯區,並仿照實務情形來擺放位置,並且使用Path[待補連結]來將這些Node串起來,形成Entity可以流動的路線。這樣結合起來,就形成一個Network。注意,一個Agnet Type可以有多個Network,節點也可以單獨存在。右方就是形成一個Network。一般節點有(1) Rectangular node[待補連結], (2) Point node[待補連結], (3) Polygonal node[待補連結]三種類型。上圖例都是用Rectangular node。 形成Network的節點與路徑,在專案目錄中會以下圖方式顯示。 看到這,就可以想想Network也只是一個群組類別。是類別,就可以有屬性。 屬性 名稱。預設值是network。若有很多個Network時,命名很重要。 是否可以忽略。很多元件都有,使用上要小心,若這個元件有被其他元件用程式呼叫時,在編譯時會出錯。 是否要顯示在最上層。之前提到Agent Type可以有自己的network,但是都會疊在一起。這個是設定疊在一起時要不要顯示。 鎖定。這個很重要。實務上一個模型會有好多個Network疊來疊去,保證會昏頭轉向。我做了三層樓的,疊在一起,很難辨識。而且很容易被選擇且移動到。避免如此,當某個Network確認好相對位置後,就可以先鎖起來,避免被選取與移動。 可見與否。這個跟地3不太一樣。這個是在Agent Type本身。 Z軸座標。是的,當有三層樓時,這個z座標就很重要。 決定此network要顯示在2D或3D,或兩者都要。 函數 network也提供了一些函數方便我們在程式面使...

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

圖片
MoveTo是經常用元件,但從「邏輯流程」的角度,他不是重要元件。他的主要功能是讓Entity在 NetWork 中能「合理」的流動。也就是說,沒有這個元件,模型仍然可以跑,只是2D或3D的視覺中,Entity可能會用很奇怪的方式冒出來或移動。至於會如何呈現,端看各元件有無設定Entity的Location。 透過MoveTo,可以讓Entity在 NetWork 中的兩個Nodo間移動,且依據Path[待補連結]連結情況與此元件所設定的速度或時間方式。 另外,他還有一個非常重要的用途,就是移動Entity在兩個AgentType之間的 NetWork 。別忘了Main也是一個具有 NetWork 的Agent Type。你也可以自己創造一個Agent Type且擁有自己的 NetWork 。雖然是兩個Agent Type的 NetWork ,實際執行時,還是疊在同一個座標系統中。這兩個 NetWork 是無法畫一條Path,讓Entity流動。此時,必須使用MoveTo設定成Jump來移動。但是,這有一個前提,分屬兩個 NetWork 的Node必須在座標空間(2D)中重疊 ,並不需要大小一致,只要有重疊到即可。 配對元件 無 類似元件 ResourceSentTo:MoveTo是用來移動Entity的。而ResourceSendTo則是用來移動Moving或Portable類的資源。 屬性 這個元件的屬性有點麻煩。會因為某欄位的選項不同,而冒出不同的欄位要填資料。 基本型 這是叫用此元件時,最基本的屬性要求。 決定移動Agent的目的。第一選項是在同一個 NetWork ,第二個選項是跨不同Agent Type的 NetWork 。注意,若選擇第二個選項,則編號5的屬性不會出現。編號6僅剩下Set agent's speed,勾選就可設定Entity移動的速度。 選擇移動目的地的定義方式。這個會連動到編號3,4,5的欄位需求。預設是Network /GIS Node。選擇Network/GIS上的某一個節點。 若2選擇Network/GIS Node,則需要選擇目標節點。 勾選此項,可設定位移座標,更精準表達位置。 勾選此項,則是要求Entity可不依照Path路徑前進,採最短...

進階模型:醫療業-Emergency Department-Part 2-邏輯流程-檢傷分類

圖片
本篇是接續上一篇 進階模型:醫療業-Emergency Department-Part 2-邏輯流程-註冊報到 。 ========== 流程簡述 病患已經完成報到註冊程序,且被移往等候室,等待檢傷分類作業。 檢傷作業由護士引領病患至檢傷室。 確認同時取得護士與檢傷室這兩種資源後,則將病患與護士一同送往檢查室。 進行檢傷作業。 完成檢傷後,離開檢傷室。 仍由護士將病患移往等候室。 現場佈置 waitingRoom: 完成報到手續者,將被移動到此區域,等待檢傷分類流程。完成檢傷分類的病患也會回到此區域,等待處置作業流程。使用 space markup-Rectangular Node[待補連結]。 rectangle3、rectangle4: 這兩個space markup-Rectangular Node[待補連結],被用來定義檢查室(triageRoom: ResourcePool[待補連結])的HomeNode。這部份需要專門篇幅兩解講。簡單地說,可以利用節點空間來定義資源的數量。目前檢查室宣告了兩個空間(rectangle3、rectangle4),就是表示檢查室有兩間的意思。 nurseHomeRoom: 與前項意義同。被用來定義護士的資源數量。只是,這邊不是用空間數量來定義,而是直接使用數字。區域中有箭號的圖示是指Attractor,他可以設定3D圖的前方的方向。當然,也可用Attractor的數量來決定資源的數量。 邏輯流程 流程詳述(整合現場佈置與邏輯流程) 病患已經完成報到註冊程序,且被移往(gotoWaitingRoom1:  MoveTo )等候室(waitingRoom: space markup-Rectangular Node[待補連結])等待檢傷分類作業。 檢傷作業需由護士(nurse: ResourcePool[待補連結])引領至檢傷室(triageRoom: ResourcePool[待補連結])。所以,必須先確認這兩項資源是否有空閒。 確認同時擁有(seizeTriageRoom: Seize )護士與檢傷室這兩種資源後,則將病患與護士一同送往檢傷室(triageRoom's HomeNode: space mark...

進階模型:醫療業-Emergency Department-Part 2-邏輯流程-註冊報到

圖片
AnyLogic是非常逼真於真實世界,一個模型可能會包含好幾個議題,甚至可以有好幾種解法。想要有個好架構來講解,的確不容易。在此,也只能試圖去建立一個講解案例架構。 ========= 流程簡述 病患到達時,會先設定出現門口。 先移動病患至報到櫃台。 報到櫃台有一位常駐服務人員,每次僅能處理1個病患。 若報到櫃台處於忙碌狀態,其他病患需等候於等候線。 若報到櫃台處於空閒狀態,則從等候線釋出1個病患,移動註冊報到服務。 完成報到後,病人將移往等候室。 現場佈置 entryDoor: 當病患到達時,會先出現在此區域。使用space markup-Rectangular Node[待補連結],並以隨機方式呈現在此區域中。 polyQueueAtReg: 當服務櫃台處於Busy狀態時,病患需在此等候線上等待。使用space markup-Polygonal Node[待補連結]。 registrationDesk: 當病患開始接受服務時,會出現在此區域中。使用space markup-Rectangular Node[待補連結],並採Attractors[待補連結]方式,限定病患面向櫃台。 person_sitting: 櫃台人員。使用3D物件呈現出櫃台狀況。 使用Path[待補連結]將上述space markup物件串連成一個 NetWork 。如此,病患才能依循路線移動。 waitingRoom: 完成報到手續者,將被移動到此區域,等待下一個檢傷分類流程。使用 space markup-Rectangular Node[待補連結]。 邏輯流程 流程詳述(整合現場佈置與邏輯流程) 病患(Patient: Agent Type)到達(arrive:  Source ),會設定在門口(entryDoor: space markup-Rectangular Node[待補連結])。 移動病患(gotoRegistration:  MoveTo )至報到櫃台(registrationDesk: space markup-Rectangular Node[待補連結])。 此報到櫃台有一位常駐的服務人員(person_sitting: 3D Object)。每次僅能處理1個病患。 若...

進階模型:醫療業-Emergency Department-Part 1-模型說明

圖片
本系列是參考官方範例來改寫的。本案例會使用到的元件、功能與技巧更多了。 本案例是模擬醫院的急診部門,想了解各項資源之使用情形。 情境說明 設施類資源 有1個報到櫃台。 有1區候診室。 有1間放射室。 有2間檢傷分類室。 有5間治療室。 有1間超音波室,最多可放5台超音波設備。超音波設備是可以被移動的。 人力類資源 有護士。 有助理醫師。 有放射師。 作業流程 病人到達後,至報到櫃台註冊報到。 註冊完成後,自行前往候診室。 依序由護士協助下,進入檢傷分類室。 確認後,病人前往治療室。依需求會用到X-ray,或者是超音波。上述設備由放射師與助理醫師操作執行。 病人若需要照X-ray,需前往放射室。 病人若需使用超音波設備,則將設備移動至病人所在之治療室。 策略規劃 依據現有來客數與固定設備下。護士、助理醫師、放射師,應配置幾人。 超音波設備應配置幾台。 資料收集 向工程單位取得急診室布置圖,各空間所佔面積與距離皆可參考。 依據歷史資料,每分鐘約有0.14個急診病人。 報到註冊的時間約為triangular( 0.5, 1, 1.5 )。 等候室最多僅能容納20人。 依據歷史資料,檢傷分類所需時間約為triangular( 5, 8, 15 )。 操作超音波設備的時間約為triangular( 10, 25, 30 )。其移動速度依賴助理醫師而定。 X-ray作業,分為兩階段。(1) 初步檢查、(2) 照射X-ray。其時間分別為triangular( 3, 4, 6 )與triangular( 5, 7, 10 )。 急診室佈置圖