向萬里, 張靜芳, 胡鯤鵬, 安美清
(蘭州交通大學(xué)交通運輸學(xué)院,蘭州 730070)
著名供應(yīng)鏈管理專家馬丁·克里斯多夫教授認(rèn)為:“21世紀(jì)是供應(yīng)鏈與供應(yīng)鏈的競爭”,可見供應(yīng)鏈管理是進(jìn)一步提升企業(yè)核心競爭力的有效手段,然而,在供應(yīng)鏈中普遍存在著需求不確定性波動的現(xiàn)象,即牛鞭效應(yīng)[1],這種需求信息的嚴(yán)重扭曲給供應(yīng)鏈管理帶來了諸多困難。牛鞭效應(yīng)作為《供應(yīng)鏈管理》課程中一個重要的知識點,感性認(rèn)識它在不同條件下的產(chǎn)生、傳播及分析具有十分重要的意義。鑒于仿真實驗教學(xué)系統(tǒng)的廣泛應(yīng)用[2-6],以David等開發(fā)的一個Windows XP環(huán)境下的具有圖形用戶界面的啤酒游戲軟件The Beer Game為原型(該軟件跨平臺能力較差,不能在高版本的Windows系列操作系統(tǒng)上安裝使用),同時考慮到Excel軟件的普遍性和易用性,采用Excel VBA軟件開發(fā)了供應(yīng)鏈牛鞭效應(yīng)仿真系統(tǒng)。
20世紀(jì)60年代,麻省理工學(xué)院的斯隆管理學(xué)院首創(chuàng)了“啤酒游戲”,用來展現(xiàn)供應(yīng)鏈庫存管理中普遍存在的一種現(xiàn)象——牛鞭效應(yīng)。1997年,斯坦福大學(xué)知名教授Hau L.Lee(李效良)在頂級期刊Management Science上發(fā)表文章首次提出了牛鞭效應(yīng)的概念,并從信息扭曲的角度,深入探索了牛鞭效應(yīng)的機理[7-9]。本研究主要是以麻省理工學(xué)院的David等開發(fā)的啤酒游戲軟件為原型,鑒于其向后兼容性較差,遂以具有廣泛應(yīng)用背景的Excel VBA為工具[10-12],進(jìn)行再次開發(fā),目的是為了便于用戶使用和加強學(xué)生對于供應(yīng)鏈牛鞭效應(yīng)的感性認(rèn)識及理解。
1.2.1供應(yīng)鏈模型
在該仿真系統(tǒng)軟件中,供應(yīng)鏈節(jié)點有四個,分別是制造商、批發(fā)商、分銷商和零售商,各個節(jié)點之間由運輸和通訊環(huán)節(jié)進(jìn)行聯(lián)系。當(dāng)客戶向零售商提出自己的需求以后,零售商會通過提供相應(yīng)數(shù)量的商品(啤酒)來滿足客戶的需求,這樣就會使得零售商庫存水平發(fā)生變化。零售商根據(jù)這個變化,并結(jié)合自身的情況及對未來市場的估計,進(jìn)而向批發(fā)商發(fā)出一定量的訂貨需求。同樣,批發(fā)商也會根據(jù)自己的庫存情況以及下游零售商的訂單情況,向其上游分銷商發(fā)出相應(yīng)的訂單,分銷商又會根據(jù)自己的庫存情況以及下游批發(fā)商的訂單情況,向制造商發(fā)出相應(yīng)的訂單。這就是啤酒游戲的過程,整個過程就簡單地構(gòu)成了啤酒供應(yīng)鏈。具體如圖1所示。
圖1 (啤酒)供應(yīng)鏈模型
1.2.2供應(yīng)鏈模擬
在供應(yīng)鏈模擬過程中,涉及如圖1所示的供應(yīng)鏈節(jié)點,為完成供應(yīng)鏈運營模擬,需要首先選擇玩家希望扮演的角色(Player)(其余角色則由系統(tǒng)自動扮演)。由于涉及系統(tǒng)自動扮演角色,接下來,需要為每個角色制定庫存策略(Policy)以及設(shè)置外部需求(Demand)模式等。
具體而言,在模擬過程中,玩家可以扮演供應(yīng)鏈節(jié)點的管理者:零售商,或批發(fā)商,或分銷商,或制造商,其被稱為交互式角色,計算機則扮演余下角色(當(dāng)用戶選擇None角色時,所有供應(yīng)鏈節(jié)點管理者均由計算機扮演,即由計算機自動執(zhí)行)。在仿真演示過程中,為了便于觀察與區(qū)分,交互式角色一般用彩色突出顯示。模擬過程主要由訂貨事件驅(qū)動,模擬運行時間是以周(w)為單位的,每周伊始,先是零售商,再是批發(fā)商和分銷商,最后是制造商,都會依次運行如下事件,仿真從上游開始,對于每個供應(yīng)鏈組成部分都會依次運行以下步驟[1]:
(1) 延遲2的內(nèi)容被移到延遲1,延遲1的內(nèi)容被移到在庫庫存中。延遲2在此時的狀態(tài)是0。
(2) 每個角色盡可能地滿足直接下游的訂單(對于零售商來說,其下游指的是客戶)。切記,訂貨量要包括當(dāng)前訂貨和所有累積下來的拖欠訂單。將暫時沒有滿足的訂單先記錄下來(相當(dāng)于當(dāng)前庫存減去當(dāng)前訂貨量與拖欠給下游的訂單之和),并在條件允許的情況下盡快滿足。除了零售商把貨物送到系統(tǒng)外部,訂貨都被送到其直接下游的延遲2的位置。
(3) 計算每1周的缺貨和庫存成本,并累加到前1期累計的總成本之中。每1周成本計算如下:在這一機構(gòu)和運輸?shù)较掠螜C構(gòu)的總庫存乘以持有成本0.50美元,延遲交貨數(shù)目,即拖欠訂單(backorder),乘以缺貨成本1.00美元。
(4) 發(fā)出訂單。如果是玩家扮演某一角色,則由玩家指定訂單的需求量;如果是計算機自動運行的工作,即角色工作由電腦扮演執(zhí)行,則計算機會根據(jù)預(yù)先設(shè)置的庫存控制策略給出訂貨數(shù)量。
這一事件順序有幾個需要注意的地方。首先,一旦下游機構(gòu)在第1周末發(fā)出訂單,該訂單將在第3周初之后才能被滿足(也就是說,如果訂單在w周末被發(fā)出,物料將會在w+3周初之后才能收到,有2周的延遲)。同樣,一旦1個訂單在某1周末發(fā)出,它只能在下周初之后才能被收到。這意味著,比如說零售商在某一時期末發(fā)出了訂購5單位的訂單,批發(fā)商在下一時期初才能收到該訂單。在這一時期里,批發(fā)商盡可能地滿足前一時期的訂單。
牛鞭效應(yīng)仿真系統(tǒng)是基于Excel VBA來設(shè)計與實現(xiàn)的[13-15]。主要包括:主界面、Player(玩家)選擇界面、Policy(策略)選擇界面、Demand(需求)管理界面、圖和表界面以及各個用戶窗體和模塊的設(shè)計。
1.3.1主界面設(shè)計
供應(yīng)鏈牛鞭效應(yīng)仿真系統(tǒng)主界面如圖3所示,主要實現(xiàn)供應(yīng)鏈訂單事件活動過程的可視化,可以清晰的了解到客戶下達(dá)的訂單數(shù)量(Demand),以及各個供應(yīng)鏈節(jié)點角色的庫存,延遲1(Delay 1)和延遲2(Delay 2)的庫存(在途庫存),同時可以清晰觀察到各個角色的總成本(Total cost)、缺貨(backorder)數(shù)量以及給供應(yīng)鏈上游下達(dá)的訂單(recent order)。整個仿真依賴star按鈕開始,爾后借助next按鈕驅(qū)動仿真過程不斷繼續(xù),每點擊一次next按鈕,仿真時鐘向前推進(jìn)1周,相關(guān)信息在week后的單元格里得以不斷變化顯示,同時,庫存、成本、缺貨等信息也會相應(yīng)地發(fā)生變化。值得說明的是,仿真的執(zhí)行需要按圖2先行選定相關(guān)參數(shù)設(shè)置,不過,系統(tǒng)有缺省設(shè)置參數(shù)值,依然可以正確執(zhí)行仿真過程。
圖2 仿真系統(tǒng)運行流程圖
圖3 仿真系統(tǒng)主界面
1.3.2角色(Player)選擇功能模塊
角色選擇功能模塊在名為“Player”的Sheet表單中,顯示如圖4所示,具體由一個下拉列表框存放了供應(yīng)鏈節(jié)點角色零售商Retailer、批發(fā)商Wholesaler、分銷商Distributor以及制造商Factory,當(dāng)選擇某個角色時,該角色由用戶擔(dān)當(dāng),其余角色由計算機自動模擬。此外,為了便于簡單操作系統(tǒng)仿真過程和便于快速了解仿真結(jié)果,可以選擇None角色,即沒有人機交互角色,所有角色統(tǒng)一由計算機扮演。
圖4 角色選擇功能模塊
1.3.3庫存策略選擇功能模塊
為了實現(xiàn)計算機自動扮演供應(yīng)鏈中的不同角色,需要先行給各個角色設(shè)定扮演過程中執(zhí)行的庫存策略,具體如圖5所示。相關(guān)參數(shù)具體信息可見文獻(xiàn)[1]。
圖5 庫存策略設(shè)置模塊
1.3.4需求管理功能模塊
如同庫存策略設(shè)置的初衷,需求管理目的是實現(xiàn)客戶需求的計算機自動產(chǎn)生,這里有確定性需求策略和隨機正態(tài)分布需求策略兩種情形,具體如圖6所示。其中,對于確定性需求,包含了初始化需求Initial Demand,以及從第1周到第幾周執(zhí)行和初始化需求一樣的參數(shù)設(shè)置,其余仿真時間的需求則對應(yīng)最終需求Final Demand產(chǎn)生的需求數(shù)量。隨機正態(tài)分布參數(shù)類似,具體描述亦可以參見文獻(xiàn)[1]。
1.3.5仿真記錄功能模塊
在仿真時鐘推進(jìn)過程中,為了后續(xù)可視化牛鞭效應(yīng)相關(guān)現(xiàn)象,供應(yīng)鏈各節(jié)點產(chǎn)生的庫存、缺貨量、訂單以及總成本數(shù)據(jù)都自動記錄在名為“Record”的Sheet表單里,部分信息顯示如圖7所示。這個仿真記錄對于動態(tài)繪制供應(yīng)鏈各角色相關(guān)信息圖形具有重要的基礎(chǔ)作用[15]。
圖6 需求管理功能模塊
圖7 仿真記錄功能模塊
1.3.6可視化模塊
為了多角度直觀分析供應(yīng)鏈牛鞭效應(yīng)相關(guān)機理,各角色相關(guān)仿真記錄采用Excel中的動態(tài)圖表技術(shù)結(jié)合下拉列表框控件實現(xiàn)仿真過程中圖形的實時動態(tài)繪制。便于直觀分析相關(guān)結(jié)果。具體顯示如圖8所示,其中圖8(a)主要顯示的是某一類型(例如訂單數(shù)量)仿真記錄不同角色間的對比;而圖8(b)顯示的是某一角色(例如分銷商)不同仿真記錄數(shù)據(jù)(庫存、缺貨量、訂單量以及總成本)的可視化信息,其中,分銷商的總成本圖形使用的雙縱坐標(biāo)圖的右縱坐標(biāo)。此時,從圖8(a)中可以發(fā)現(xiàn)各角色訂單數(shù)量的無規(guī)則變化,尤其是供應(yīng)鏈上游節(jié)點制造商的訂單數(shù)量變化最為急劇,這直觀地展示了牛鞭效應(yīng)現(xiàn)象,為借助供應(yīng)鏈相關(guān)理論進(jìn)一步分析相關(guān)機理提供了有益的可視化輔助。
在物流管理專業(yè)的核心專業(yè)課程——《供應(yīng)鏈管理》課程教學(xué)過程中,通過相關(guān)任課教師和學(xué)生的使用、評測,對該仿真軟件進(jìn)行了教和學(xué)的測試,該仿真系統(tǒng)具有如下優(yōu)點:
(1) 避免了教師在教學(xué)過程單純講授庫存策略、需求管理及牛鞭效應(yīng)等概念和公式的枯燥乏味,通過軟件的演示,甚至是介紹部分Excel公式實現(xiàn)方式以及VBA代碼實現(xiàn)技巧,尤其是相關(guān)結(jié)果的動態(tài)可視化有助于學(xué)生感性認(rèn)識牛鞭效應(yīng),獲得了學(xué)生的關(guān)注和共鳴,有效提升了教學(xué)課堂氣氛,同時激發(fā)了學(xué)生進(jìn)一步自學(xué)的熱情。
(a)
(b)
(2) 方便了學(xué)生課外實踐學(xué)習(xí)。由于需求管理、庫存策略管理中具有多種策略可供相關(guān)角色選擇,學(xué)生進(jìn)而可以在課外進(jìn)一步自主學(xué)習(xí)、分析不同條件下的牛鞭效應(yīng)現(xiàn)象。
(3) 鑒于系統(tǒng)的缺省設(shè)置以及部分角色甚至于全部角色的計算機自動扮演功能,方便學(xué)生單獨、快速實現(xiàn)牛鞭效應(yīng)的仿真,不像傳統(tǒng)啤酒游戲那樣需要多人組成供應(yīng)鏈團(tuán)隊,方能實現(xiàn)模擬過程,新系統(tǒng)提升了學(xué)習(xí)的方便性。
(4) 鑒于Excel的廣泛性和易用性,以及源代碼和函數(shù)公式的開放性,學(xué)生可以進(jìn)一步自學(xué)VBA,可在現(xiàn)有仿真系統(tǒng)上進(jìn)一步開發(fā)適合自己需要的,功能更為完善的模擬系統(tǒng)。
參考文獻(xiàn)(References):
[1] David Simchi-Levi, Edith Simchi-levi.供應(yīng)鏈設(shè)計與管理[M]. 季建華,邵曉峰譯.北京:中國人民大學(xué)出版社,2014.
[2] 李 霞.材料力學(xué)虛擬仿真實驗系統(tǒng)的開發(fā)[J].實驗技術(shù)與管理,2016,33(12):125-127.
[3] 王建平.基于Multisim與Excel的二極管限幅器仿真實驗[J].實驗技術(shù)與管理,2017,34(1):143-145.
[4] 姜高揚,王 超.基于建模仿真的可視化教學(xué)模式研究[J].實驗室研究與探索,2017,36(7):192-195.
[5] 陳海泉,林自奎.經(jīng)濟(jì)管理類虛擬仿真實驗教學(xué)平臺建設(shè)[J].實驗室研究與探索,2017,36(1):265-268.
[6] 張靜芳,向萬里, 馬子剛, 等.延遲策略在課堂理論教學(xué)中的實驗仿真[J].實驗室研究與探索,2016,35(10):112-116.
[7] H.L Lee,V Padmanabhan,S Whang. Information distortion in a supply chain: the bullwhip effect[J]. Management Science,1997, 43(4):546-558.
[8] Wang N, Lu J, Feng G, Ma Y, Liang H. The bullwhip effect on inventory under different information sharing settings based on price-sensitive demand[J]. International Journal of Production Research, 2016, 54(13): 4043-4064.
[9] Wang X, Disney S.M. The bullwhip effect: Progress, trends and directions[J]. European Journal of Operational Research, 2016, 250(3): 691-701.
[10] 李曉玫,楊小平. Excel中的VBA程序設(shè)計[J].四川師范大學(xué)學(xué)報(自然科學(xué)版),2004,27(4):423-426.
[11] 劉 波,崔 維,陳閎中.用VB和VBA實現(xiàn)動態(tài)報表[J].計算機應(yīng)用研究,2002(6):130-131.
[12] 李宗信,蔣忠金,陳定威.淺談用Excel和VBA實現(xiàn)優(yōu)化計算與自動繪圖的方法[J].變壓器,2014,51(2):17-24.
[13] Excel Home.別怕,Excel函數(shù)其實很簡單[M].北京:人民郵電出版社,2015.
[14] Excel Home.別怕,Excel VBA其實很簡單[M].北京:人民郵電出版社,2016.
[15] 徐軍泰.左手?jǐn)?shù)據(jù),右手圖表——Excel動態(tài)圖表制作與職場數(shù)據(jù)溝通[M].北京:機械工業(yè)出版社,2014.