發表文章

目前顯示的是 2017的文章

發展模擬系統之五大循環

圖片
應用系統模擬來「解決問題」,需要其他的模組來進行整合。之前提到,光光系統模擬本身,只是單純找問題的工具。 首先我們要了解,企業應用任何工具或技術,一定要與策略發展有關,否則何必浪費時間與金錢。所以,設定「策略目標」這是最啟始的工作。 當設定好策略目標,且決定要採用系統模擬技術來實踐時,要兵分兩路。 「評量指標」是要找出有哪些指標可以來確認此策略目標有被實踐,或者是完成程度等。 「模擬情境」則是要界定出哪些範圍,或者預想可能發生的狀況,或者是想要去知道如何取得或收集評量指標的內容。 以上三者,建構出「 策略規劃循環 」。 有了「評量指標」接下來的問題要怎麼計算與評估,也就是找出方程式,此階段稱為「方案評估」。這會牽扯到作業研究的部分,有參數分析、敏感度分析或者最佳化的議題。 建模者取得「模擬情境」之規劃或要求後,開始建模。這塊就是最單純的系統模擬部分,稱之為「模擬模型」 執行後,當然會產生「模擬結果」,這些結果就是資料收集之結果,收集哪些,當然是要配合方案評估的公式中所有變數。 由「衡量指標」、「模擬情境」、「模擬模型」、「模擬結果」與「方案評估」等五大功能,建構出「 模擬建構循環 」。 模擬系統的建置真的沒有想像中的難,更沒有想像中的容易。因為要貼近真實世界,反應真實世界,得面臨「模型調教」的過程。例如,到達率、作業時間分配等。可能會不斷地收集真實世界的資料,讓模型更為逼近。 「模型調教」配合上「模擬模型」與「模擬結果」就形成了「 模型學習循環 」。 模型建構完成,就是真的要上戰場。真的將模擬運行後之建議方案,實際編寫策略執行計劃書,並且付諸行動。這是「策略執行」。執行過程中,真實世界不斷變化,得不斷收集實務資料,除用於調教模擬系統外,更是策略執行時,重要的參考數據。 所以,「模擬結果」、「方案評估」、「模型調教」、「實務資料」與「策略執行」形成了「 模型應用循環 」。 企業追求永續,策略目標因應大環境的變化,必然進行調整。所以,「策略目標」、「衡量指標」、「方案評估」與「策略執行」建構出「策略應用循環」。 所以,我提出應用系統模擬於策略目標上的五大循環。 策略規劃循環 模擬建構循環 模型學習循環 模型應用循環 策略應用循環

系統模擬技術類別

圖片
系統模擬的發展,特別是計算機模擬(Computer Simulation),隨著電腦能力之演進,早已不可同日而語。切莫仍停留在「等候理論」這個範疇裡,雖然這仍是最主要的應用。 從AnyLogic舊版的官方網站中,可以看到下列這張圖。 Y軸描述的是我們對真實世界的抽象程度,總共分成三個層級,這三個層級也就相對應於目前比較重要的模擬技術(也就是AnyLogic所支援的部分)。 DE(Discrete event modeling)也稱之為流程導向模型。這也是大部分模擬軟體所強調的部分,主要也就是以等候理論為基礎之模擬系統。這個層級非常強調真實性,非常的貼近真實世界。系統開發起來,其實很困難。往往實務上的一個流程,可能要絞盡腦汁之後,才有辦法實作出來。 AB(Agent based modeling),一般翻譯為代理人模型。這個技術非常、非常重要。他可以細到針對每一個在模擬系統中的物件,其屬性之設定與變化。所以,逼近真實的能力比DE還強。因為是物件化,所以,要怎麼抽象就是看功力了。這個模型技術另一個重要點是,其他兩種模型技術都還是要用到這AB模型技術。 SD(System Dynamics)就是建立系統動力學模型。這個模型非常高度抽象化,透過幾個圖示,就可以表達企業運作之變化。而他的基礎概念就是微分方程。關於系統動力學的書籍很多,自成一個領論架構,也不好一時說清楚。不過,透過建模過程,倒是可以理解SD到底在玩什麼玩意兒。 原則上,這一系列的文章應該都會涵蓋以上三種模型吧。只是會以DE為主,AB是跑不掉的(原因已述)。

模擬時間

圖片
今天要來探討的是模擬時間的觀念。 圖中總共有四種類型時間,這個時間對應關係,才使得系統模擬具備了「預測」的功能。 模擬系統就是一個電腦程式(有點廢話),所謂執行快慢,當然取決於電腦的CPU的效能。只是,用於模擬系統時,還是有點不太一樣。 模擬系統會有自己的模擬週期時間。也就是說,CPU的單位時間內,可以執行幾次模擬系統的週期時間。當然,電腦等級高,其代表的意思是可以執行的模擬系統週期時間可以更多。但他不並代表模擬會跑得比較快。這很弔詭吧。原因是,我們可以將模擬週期時間對應成真實世界的時間單位。其時間單位可以為年、月、週、日、時、分、秒、毫秒。 假設我有兩個檔案,其模型內容相同。但我將其中一個模擬單位時間對應成「秒」,另一個對應成「年」。使用相同的電腦情況下。經過100次的模擬週期時間後,第一個模型只跑了100秒;第二個模型已經跑100年了。 以上,都只是時間單位,而非日曆單位。就好像專案管理中,有個Druation time,然後會有工作天與日曆天的差異。 是的,在模擬系統中,也可以對應模擬時間的起始對應日曆天。這個日曆天當然可以決定週休幾日,甚至設定上下班時間。 所以,前面兩個模型,假設起始模擬時間都對應到2017年1月1日08:00時(假設要上班)。那在相同的執行時間下。讓電腦跑n秒,產生100個模擬週期時間。抱歉,這邊說讓電腦跑n秒,是因為我不知道你的電腦等級如何。 經過100次的模擬週期時間後,第一個模型,仍在2017年1月1日09:40。而第二個模型已經到了2117年08:00了。

模擬世界 - Risk Free World

圖片
這張圖是《 The Big Book of Simulation Modeling. Multimethod Modeling with AnyLogic 6 》這本書的封面。 Amazon 。不過要提醒,目前AnyLogic版本已經來到8.2.3(或許在您看到這篇時,版本又更新了)。這本書是v6,已經很舊,但不影響這張圖的重要性。而且所有建模者,都應該時時刻刻把這張圖拿出來看。他已涵蓋系統模擬所需注意的事項。 圖中下方,代表真實世界(Real World),其複雜性不言自明。在真實世界中遇到問題時,在沒有很好的解決方案下,最容易處理的方式就是「試試看」。只可惜,這個「試試看」卻隱含著非常複雜的成本問題。所謂「牽一髮動全身」、「世界沒有你想像中簡單」,這個「試試看」的動念,往往只能停留在想想階段。 圖中上方是模擬世界,就是他給你「開大門、走大路」的勇氣。 圖中左下角是現況描述,也是上一篇所提到找問題的情境。其實,這是最困難的地方。很悲哀的是,往往系統模擬的課程,不會涵蓋這一部份。可以透過系統工程、或者系統分析與設計的課程,來瞭解這一塊的分析技術。 抓對問題,接者就是要複製問題結構到模擬系統中。這是抽象過程,也是第二重要的步驟。是的,很多系統模擬的課程,也不強調這一塊。說實在,這一塊也很難教,需要大量經驗累積。 圖中左上角代表建模過程。端看你使用哪一套系統模擬軟體,依據其所提供的功能機制,完成模型建立。這邊補充說明一下,所謂的模型,必不代表非得要3D才行。用EXCEL也是可以建構系統模擬模型。系統模擬的課程大多著墨於此,可惜,這是第四重要的部分。 那什麼是第三重要呢?又是圖中上方,從左邊到右邊的過程。這個重點在於「問對問題」,也就是回應第一重要步驟中所有的質疑,也就是「What-If」循環。這階段會有反饋現象,也就是說,在試圖建立What-If問題群組時,會造成原本問題假設不正確,進而引發系統模型修正的問題。 圖中右上角是代表最佳化結果,他是實驗設計的過程。這是第五重要的部分。當然,有些人會特別重視這塊(學術的部分)。What-If只是把問題聚焦化,或者說是找到關鍵核心問題。這階段就是把核心問題的What-If,用數量方法找到最佳的參數解。 其他的部分對系統模擬來說已經不是重點,但是,對實務來說,反

問題背後的問題

圖片
在學校時代,我們總是被給問題,然後教我們去解問題。 長大一點了,才學會如何去想問題。 出了社會,就得要學會找問題。 這四個階段中,最困難的就是要如何找問題,而且是找到核心問題。 也就是說,我們最大的問題就是「問題在哪裡?」 在學校階段,我們學會了好多好多技術與工具,每一種工具技術都說是用來解問題的。 但是,系統模擬卻不是用來解問題,他是用來找問題。 說簡單一點,系統模擬就是為「What-If」而存在。 如果這樣會怎樣,如果那樣又會怎樣。 許多情境,你想要試試,可沒這麼容易。因為,有可能是破壞性實驗,或者成本很高無法實驗。或者是,變數太多根本無法實驗。 使用系統模擬,也許是一個好選擇。

AnyLogic操作介面

圖片
AnyLogic是基於Eclipse Java 開發環境所建置的。基本介面操作,在此不贅述,請至Eclipse官方網站請參考相關文件,網址為 http://www.eclipse.org/ 。 視窗面板 Projects View 專案視窗列出目前開啟編輯中的專案項目,可同時開啟多個專案。並列出此專案中所使用之Agent Type清單與其內容結構。 所謂Agent Type,從Java程式語言的角度來說,就是一個類別。在此類別下,可以包含許多的屬性,這些屬性會有自己的資料型態,也就是不同圖示代表不同內容結構。 在專案視窗中,僅能看出這個Agent Type包含有哪些屬性,並無法清楚知道各屬性間的關係。此時,就需透過繪圖編輯器來得知相互關係。甚至,進而取得影藏在元件或關係中的程式碼。 Palette View 面板視窗提供所有模擬方法所需要用到的元件清單。目前支援的群組類別有: Properties View 屬性視窗是提供模型中各元件的進一步參數設定之用。不同元件有不同功能,其屬性視窗的內容也會隨之異動。

AnyLogic 下載安裝

圖片
AnyLogic可提供下載版本很多,期望透過本章的說明能夠正確的選擇。目前最新版本為8.2.3 (2017年11月30日),改版的頻率很高。有時候,不同版次間還是會有些不相容的問題,請多加注意。 目前AnyLogic共分成三種層次的版本。每一層次皆有Windows、Mac與Linux三種作業系統可以選擇。如圖 3所示,為全部可以下載的版本。作業系統的選擇比較容易,只要注意,當初安裝Windows或Linux時,是32位元還是64位元的差異。 圖3:安裝版本選擇 下載網址為: https://www.anylogic.com/downloads/ 本系列教學文章,將會使用Personal Learning Edition, 下載後,執行安裝程式,並依指示完成安裝步驟。

Simulation協作平台網址

https://sites.google.com/view/simulation-anylogic-tw

AnyLogic簡單介紹

圖片
AnyLogic是目前模擬軟體中,唯一同時支援系統動力學、流程導向模擬與代理人模擬之產品。也因為如此,他可以涵蓋的應用範圍就相當廣泛。工業工程、供應鏈管理、人力資源、市場調查、策略規劃等,都可以利用AnyLogic達到預期之目標。從AnyLogic官網的圖中(圖 1),可以理解其應用範圍。 圖1:AnyLogic應用範圍(來源:AnyLogic官網) 另外,本產品還有一個特色是採用Java 程式語言開發,並利用Eclipse Java開發平台為基礎所建置。這也使得AnyLogic可以在Windows, Mac與Linux等不同平台中使用。也可以產生Java applets,然後在不同平台上的瀏覽器中執行。(註: Chrome不再支援NPAPI,使得無法執行applets) 在系統整合的部分,AnyLogic也有很好的表現。可銜接GIS地圖資料,也能夠匯入CAD圖檔當作底稿,作為布置圖用。也可匯入其他3D模型,變成模擬3D物件,可以美化或更貼近模擬需求的情境。也可與最佳化組件或與分配最適性工具整合。也可與大部分的資料庫系統整合,可處理文字檔或XML檔。其整合能力請參考圖 2。 圖2:系統整合能力 官網:https://www.anylogic.com/