文章目錄
-
- Arena仿真作業
-
- 一、問題介紹
-
- 1.1 模型假設
- 1.2 優化目标
- 1.3 限制條件
- 二、子產品設計
-
- 2.1 Create子產品
- 2.2 Decide子產品
- 2.3 Assign子產品
- 2.4 Process子產品
- 2.5 Dispose子產品
- 2.6 Entity
- 2.7 Resource
- 2.8 Variable
- 2.9 Queue
- 2.10 整體設計
- 三、仿真結果分析
-
- 3.1 初始情況
- 3.2 改進方法--一個服務員幹兩種任務
- 3.3 改進方法--直接優化服務員和收銀員的人數
- 四、總結
Arena仿真作業
一、問題介紹
位于沈陽的某大學的超市在晚上5點到7點處于高峰期,一些同學會來超市購買日用品,也有一些學生去自助販賣機購買熱咖啡或飲料,而該超市的關東煮比較火爆,關東煮需要煮一段時間才能食用,是以關東煮隊伍總是比較長,在選擇了商品後,在結算櫃台統一結算,這兩個櫃台距離較近(因為友善學生出門就直接将食物帶走了)。
1.1 模型假設
- 人物假設
- 員工在該工作時間内一直工作
- 每名員工隻為一名同學服務
- 同學進入超市分為兩種情況,一人和兩人一起進入超市,設定
來處理這兩種情況。Batch_Size
- 每名同學進入超市都會進行消費
- 顧客完成後自動離開系統
- 時間假設
- 關東煮和結算櫃台相鄰,忽略關東煮櫃台到繳費櫃台的時間
- 自助櫃台較多,且購買熱咖啡時間很短,故不會出現排隊現象
1.2 優化目标
- 同學在繳費時的排隊時間
- 同學在關東煮的排隊時間
- 不同從業人員的利用情況(關東煮從業人員和收銀員)
1.3 限制條件
- 價格成本,我們希望盡可能少的從業人員來保證相對的人員使用率
二、子產品設計
2.1 Create子產品
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2YfNWawNCM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPB10drRlWzY0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLzkDN2EDM1YTM1ETMwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
其中,
student arrival
分布為正太分布,而
Batch_Size
為泊松分布,其圖像為
x1=0:1:50
x2=0:1:50
p1=poisspdf(x1,0.75)
p2=poisspdf(x2,1)
plot(x1,p1,'r')
hold on
plot(x2,p2,'b')
legend('1','2')
2.2 Decide子產品
其中,它們的選擇機率分别設定為 79 % 79\% 79%, 35 % 35\% 35%和 10 % 10\% 10%。
2.3 Assign子產品
- 購買日用品
假設服從
(4,16,24)
的三角分布,并且乘以系數
Batch_Size
- 購買咖啡
假設服從二項分布,而二項分布又可以近似成
Beta
分布
(2 + 3 * BETA(0.532, 0.513))
,并且乘以系數
Batch_Size
- 購買關東煮
假設服從
(4,6,9)
的三角分布,并且乘以系數
Batch_Size
2.4 Process子產品
前三種Process類型均為
Delay
,在配置設定後進行延時也就表示用了多少時間,而最後一種類型為
Value Added
,其表達式為
1.24 + 2.07 * BETA(1.29, 1.05)
,以便于可以累加它處理實體的各種成本或時間等。
- 購買日用品
- 購買咖啡
- 購買關東煮
- 收銀台
Arena仿真-基于超市排隊的模組化分析
2.5 Dispose子產品
該子產品為終點,起名字為
Exit
表示同學離開超市。
2.6 Entity
2.7 Resource
2.8 Variable
2.9 Queue
2.10 整體設計
三、仿真結果分析
我們設定
Replication
為10次,每天運作的時長為 2 2 2小時。
3.1 初始情況
首先檢視一下
Entity
,我們可以看到學生進入整個流程需要約20分鐘的時間,而大部分(17分鐘)都用來了排隊。
然後分析
Resource
後可以得到這樣一個資訊,制作關東煮的裡使用率僅有 18 % 18\% 18%,使用率較低。
而檢視
Queue
也印證了這一結論,在收銀台要等待約2分鐘,而關東煮平均幾乎不需要等待時間(下圖分别為Republication 1和Republication 10的結果)
是以我們考慮一種改進方法,可不可以讓關東煮的服務人員在不忙的時候來幫忙結算呢?(在假設中關東煮和結算位置相鄰)
如果想提高使用率,如何設定關東煮服務人員的人數和收銀員的人數呢?
3.2 改進方法–一個服務員幹兩種任務
首先考慮一個最基本的情況,這一個關東煮的服務人員在不忙的時候來幫忙結算如圖所示。
那麼運作後檢視一下結果,首先檢視一下
Entity
,我們可以看到學生進入整個流程需要約21分鐘的時間,很顯然,做關東煮的服務員在不忙的時候去幹收銀員的活了,學生等待時間就長了
然後分析
Resource
後可以得到這樣一個資訊,由于讓這個關東煮人員多幹活,制作關東煮服務員的裡使用率有 82 % 82\% 82%,遠超過之前 18 % 18\% 18%。
這說明了什麼呢?讓這個關東煮人員忙起來了,老闆讓員工多幹活,實際上并沒有帶來更好的顧客體驗。是以我們換一種思路去繼續優化這個問題。
- 增加收銀員和服務員的人數
那麼我們嘗試一下增加它們的人數,将收銀員的人數範圍設定為 [ 1 , 5 ] [1,5] [1,5],且服務員的人數設為 [ 1 , 2 ] [1,2] [1,2],目标函數仍為服務員的使用率,可以看出來一個服務員使用率就已經達到 82 % 82\% 82%,而顯然減少收銀員的人數會讓更多的服務員空閑時候過來幫忙幹活,是以使用率會顯著降低。
如果我們換一種優化函數呢,将目标函數設定為關東煮和收銀台排隊的平均排隊人數進行優化。可以看出來考慮到價格最少的情況,雇傭兩個收銀員和兩個服務員就可以實作讓平均排隊人數為 2 2 2左右,這樣顧客的體驗比較好。
3.3 改進方法–直接優化服務員和收銀員的人數
直接雇傭更多的人而不是調用人員,會優化的更好,目标函數仍為關東煮和收銀的平均等待人數。
可以看到,在設定4個收銀員,2個服務人員時候的平均等待人數之和非常的小,遠小于1個人。
而實際上還應該加一點點限制,即考慮成本因素。
那我們在優化函數裡做一點限制,從經驗上來看,關東煮不需要太多技術,且空閑時間比較多,是以我們給它的工資低一些,而收銀員比較忙,我們給的工資高一些,轉換為權重系數後分别為0.2和0.8。我們可以看到此時設定2個收銀員,2個服務人員時候效果較好。
此時的目标函數為 N u m 平 均 關 東 煮 排 隊 人 數 + N u m 平 均 收 銀 台 排 隊 人 數 + 0.8 ∗ N u m 收 銀 員 + 0.2 ∗ N u m 服 務 員 Num_{平均關東煮排隊人數}+Num_{平均收銀台排隊人數}+0.8*Num{收銀員}+0.2*Num{服務員} Num平均關東煮排隊人數+Num平均收銀台排隊人數+0.8∗Num收銀員+0.2∗Num服務員
那麼按照此設定運作後檢視相關名額如下,學生的總時間由原來的 21 s 21s 21s平均減少到了 17 s 17s 17s,且結賬排隊時間也從原來的 2 m i n 2min 2min減少到 1.37 m i n 1.37min 1.37min,且結賬的平均等待人數已經由 1.32 1.32 1.32減少至 0.39 0.39 0.39。盡管關東煮的平均等待人數從 0.39 0.39 0.39增加到了 1.95 1.95 1.95,但從某種角度說是一件好事,排隊的人不多不少在 2 2 2人左右可以吸引更多的學生來圍觀排隊,進而讓銷量更多一些。
這樣的限制設計不太合理,經過查閱後可以在
Constrain
處加限制條件。假設收銀員的工資為2000元,服務員的工資為1500元,超市老闆希望一個月最多花費7000元在雇傭員工上,為了使得客戶的總等待時間最少,應該如何雇傭呢?
這樣設計後清晰合理,可以看到設定2個收銀員,2個服務人員時候效果較好,平均總等待人數為1人,客戶體驗非常好。
四、總結
本次作業搭建了超市中的排隊模型,學生在超市中有三種行為,分為購買日用品、自助販賣機、關東煮,而排隊時間主要集中在等待關東煮和最後結賬的過程,針對過程過長的問題,采取兩種思路進行優化,分别為
- 方案一:服務員在空閑時幫忙結賬提高服務員的使用率
- 方案二:增加服務員和收銀員的人數來減少平均等待人數
最終發現,方案一可以提高服務員的使用率,讓服務員忙起來,但并不能減少平均等待時間,而方案二可以适當增加關東煮的人數,在控制成本的情況下,顯著減少了收銀員的排隊時間,盡管關東煮的排隊人數适當增加,這會吸引更多的學生來排隊,從某種角度上說也帶來了一定的經濟效益,此外,校園同學的購物體驗好,也會吸引更多的同學來超市購買,而不是選擇網購等待很久或者去外面購買日用品等,是以最終采用改進的方案二作為最終方案,此時雇傭2個收銀員和2個服務人員。