岳芳 吳振華 周清華 肖吉軍
摘要 管理運籌學是研究對人力、物力等資源進行合理籌劃和運用,尋找管理及決策最優(yōu)化的綜合性學科,在經(jīng)濟、管理、社會等領域得到了廣泛的應用。然而,該課程知識概念和方法相對較多且抽象,導致學生難學。文章首先分析了管理運籌學的特點,總結了教學過程中存在的不足,探討了引入MATLAB的必要性。然后通過一些實例,介紹了該軟件在線性規(guī)劃、指派問題、圖論中的應用,充分體現(xiàn)了MATLAB在求解運籌學問題上的優(yōu)勢,達到激發(fā)學生學習興趣、增強學生實踐能力、培養(yǎng)學生創(chuàng)新思維的目的。
關鍵詞 管理運籌學;MATLAB;教學
中圖分類號:G424文獻標識碼:ADOI:10.16400/j.cnki.kjdk.2023.15.039
隨著市場競爭的加劇,企業(yè)所面臨的經(jīng)營環(huán)境具有很大的不可預測性,管理問題也越發(fā)復雜。這就需要企業(yè)轉變傳統(tǒng)的經(jīng)驗式?jīng)Q策模式,利用科學的方法,幫助其進行決策。而針對特定的管理場景,管理者可以利用模型分析所面臨的決策問題,并尋找模型的最優(yōu)解。而運籌學為管理者決策提供了方法論的支持。目前管理運籌學在人力資源規(guī)劃與調度、財務規(guī)劃、市場營銷組合規(guī)劃、生產(chǎn)運營管理、供應鏈管理、投資組合管理、系統(tǒng)調度、定價策略、服務系統(tǒng)規(guī)劃與調度、風險管理等方面都得到了廣泛的應用[1]。
管理運籌學是依照給定條件和目標,從眾多方案中選擇最佳決策方案的應用科學。該課程逐漸成為高校工業(yè)工程、信息管理與信息系統(tǒng)、數(shù)字經(jīng)濟、物流管理、人力資源等專業(yè)的基礎課程之一。
1基于MATLAB管理運籌學教學的必要性
管理運籌學包含線性規(guī)劃、對偶規(guī)劃、運輸問題、整數(shù)規(guī)劃、目標規(guī)劃、圖與網(wǎng)絡分析、決策論、對策論、排隊論等內容。管理運籌學解決問題的一般過程是:①提出問題;②建立模型;③進行求解;④解的檢驗;⑤解的實施。在這些過程中,“提出問題”是關鍵,即將現(xiàn)實世界中的實際問題抽象成數(shù)學模型,然后再選擇對應的方法進行求解。
該課程需要學生學習和掌握的方法非常多。一些方法,例如單純形法、表上作業(yè)法和割平面法等原理比較復雜,求解過程比較煩瑣,有時需要迭代多次。而在運籌學授課過程中,傳統(tǒng)教學方式比較注重算法原理的講解,同時一些問題的求解過程比較復雜、運算量大,因此降低了學生學習的積極性,導致其實踐能力較弱[2]。
針對管理運籌學的教學重點,教師結合目前學生在學習中存在的問題,在課堂教學中引入相關軟件。在教學過程中,盡可能利用軟件去完成管理運籌學中大量且煩瑣的計算工作。這樣既能緩解學生對復雜計算的畏難情緒,又能集中精力攻克“數(shù)學建?!钡碾y關和進行決策優(yōu)化分析[3]。不但可以提高運籌學的上課效率,使課堂生動、活潑,而且也有助于提高學生的動手能力和創(chuàng)新能力。
目前能夠求解運籌學問題的軟件有很多,例如MATLAB、Excel、Lindo、Lingo、Python等,這些軟件特點各有不同。由于管理運籌學中很多方法涉及矩陣運算,例如求逆運算、轉置運算等。MATLAB的很多運算都是直接針對矩陣的。各種矩陣操作,在MATLAB中只需要一個簡單的命令就可以完成,在此選擇MATLAB軟件求解運籌學問題。
2 MATLAB軟件介紹
MATLAB是一種適合多學科、跨平臺的大型實用科學計算軟件[4]。MATLAB語言的特點:①使用簡潔直觀。它可以進行矩陣運算和實現(xiàn)算法等。在MATLAB中矩陣運算變得非常簡單。②功能強大。其庫函數(shù)十分豐富。MATLAB針對許多專門的領域,將一些重要的問題通過軟件制作成工具箱。
MATLAB軟件功能強大、應用廣泛,已成為21世紀最為重要的科學計算語言。近些年,國內的很多高校也將MATLAB列為本科生的必修課程。運籌學教學中的許多問題可以應用MATLAB的內置函數(shù)通過簡單的編程進行求解。
3應用實例
利用MATLAB軟件求解運籌學問題的步驟如下:首先,根據(jù)教學目標有針對性地設計相關實例[5];其次,建立相應的運籌學模型;然后,利用MATLAB軟件編寫相關程序;最后,利用軟件求解模型并分析結果。
3.1 MATLAB在線性規(guī)劃中的應用
該標準型與線性規(guī)劃問題定義的標準形式不同。式(1)中,目標函數(shù)求極小。x為n維的決策變量。約束條件分為不等式約束和等式約束兩種類型,不等式約束有m1個,等式約束有m2個。不等式約束形式為“≤”。對應的,b為m1維列向量;beq為m2維列向量;A為m1×n維矩陣;Aeq為m2×n維矩陣。c、x、lb和ub均為n維列向量。
因此,需要將實際應用中不同類型的非標準型化為MATLAB要求的標準型,操作方法如下:①如果遇到對目標函數(shù)求極大的問題,需要在函數(shù)前面加一個負號,轉化為對目標函數(shù)求極小的問題。②如果出現(xiàn)“≥”形式的不等式約束,則需要在兩邊乘以(-1),使其轉化為“≤”形式。③將不等式約束和等式約束均轉化為矩陣形式。
實例:某工廠在計劃期內要安排生產(chǎn)I、II兩種產(chǎn)品,已知生產(chǎn)單位產(chǎn)品所需的設備臺時及A、B兩種原材料的損耗,如表1所示。單位產(chǎn)品Ⅰ和產(chǎn)品Ⅱ的利潤分別為2元和3元,問應如何安排計劃使該工廠獲利最多[6]?
以上模型的求解結果是屬于唯一最優(yōu)解的情況。若求解結果是無窮多最優(yōu)解,MATLAB則只能給出其中一組最優(yōu)解,無法給出其他最優(yōu)解。若求解結果是無界解,MATLAB給出的結果是x=[],fval=[]。若求解結果是無可行解,MATLAB則給出的結果是“No feasible solution found”。
3.2 MATLAB在指派問題中的應用
在現(xiàn)實生活中,有各種類型的指派問題。例如,有一些工作需要分配給一些員工來完成;一些班級需要安排在一些教室上課等。這些問題都需要滿足一定的指派要求,并使指派方案的總體效果最好[7]。
實例:某汽車公司擬將四種新產(chǎn)品安排到四個工廠進行生產(chǎn),四個工廠生產(chǎn)單位產(chǎn)品的成本如表2所示。求最優(yōu)生產(chǎn)配置方案。
需要注意的是,該指派問題屬于特殊的0-1整數(shù)規(guī)劃問題。MATLAB工具箱中沒有提供相應的函數(shù),因此需要提前準備好整數(shù)規(guī)劃的函數(shù)intprog,再進行調用。該函數(shù)的調用格式為[x,fval]=intprog(c,A,b,Aeq,beq,lb,ub,M, TolXInteger)。其中,輸入?yún)?shù)M為有整數(shù)約束條件限制的變量的序號;輸入?yún)?shù)TolXInteger為判定整數(shù)的誤差限,其他參數(shù)的含義與線性規(guī)劃命令linprog中的參數(shù)基本一致。
運行上述程序后,得到該指派問題的最優(yōu)解,x=(1,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0)T,fval=513。即最優(yōu)方案是工廠1生產(chǎn)產(chǎn)品1,工廠2生產(chǎn)產(chǎn)品4,工廠3生產(chǎn)產(chǎn)品3,工廠4生產(chǎn)產(chǎn)品2。此時生產(chǎn)總成本為513元。但實際上這個問題有兩組最優(yōu)解,另一組最優(yōu)解是工廠1生產(chǎn)產(chǎn)品1,工廠2生產(chǎn)產(chǎn)品3,工廠3生產(chǎn)產(chǎn)品4,工廠4生產(chǎn)產(chǎn)品2。需要注意的是,MATLAB計算得到的是其中一組最優(yōu)解。
3.3 MATLAB在圖論中的應用
運籌學在實際中應用非常廣泛,除了以上所提到幾個方面的問題外,還有圖論中的最小樹問題、最短路問題和最大流問題等,這些問題也都可以利用MATLAB進行求解。
在各種各樣的圖中,有一類簡單又十分重要的圖,就是樹。樹在電路網(wǎng)絡分析、管理決策、計算機算法等許多領域都有著廣泛的應用。
實例:某辦公大樓連接情況圖1所示(p124),試求最佳的網(wǎng)絡布線方案。
MATLAB工具箱中沒有求解最小樹的命令,因此需要提前準備好函數(shù)kruskal再進行調用。函數(shù)kruskal設計的原理是基于避圈法。kruskal函數(shù)的調用格式:[T,v,c]= kruskal(b),其中,輸入?yún)?shù)b為所有邊及其權數(shù)組成的矩陣。輸出參數(shù)T為最小樹的邊,v為最小樹的鄰接矩陣,c為最小樹的總權數(shù)。
4結論
通過以上實例說明,利用MATLAB可以方便地求解生產(chǎn)計劃等各種管理運籌學問題。MATLAB的優(yōu)點在于,第一,語法規(guī)則簡單,便于學生理解和使用。第二,MATLAB提供了很多計算函數(shù),提高了學生計算的效率和準確性。第三,該軟件靈活度高,對于一些有特殊要求的模型,可以靠自己編寫程序實現(xiàn)。但需要注意的是,第一,如果原問題有最優(yōu)解,利用MATLAB只能給出其中一組最優(yōu)解。第二,MATLAB直接給出結果,無法展示求解的具體步驟。
本文把MATLAB軟件引入管理運籌學的教學,通過有針對性地設計相關實例,引導學生動手編寫相關程序,使學生可以直觀地看到算法的實現(xiàn)過程,從而提高學生的學習興趣,培養(yǎng)學生的創(chuàng)新能力,為將來科研素養(yǎng)的培養(yǎng)打下基礎。
*通訊作者:肖吉軍
基金項目:廣西高等教育本科教學改革工程項目“融入課程思政的工業(yè)工程專業(yè)課程教學改革與實踐”(2021JGB188);廣西高等教育本科教學改革工程項目“工程教育專業(yè)認證背景下機械類專業(yè)基礎課程混合式教學的考核方式改革與實踐”(2023JGA208);廣西“四新”研究與實踐項目“新文科視閾下地方高校新型工業(yè)工程專業(yè)建設研究與實踐”。
參考文獻
[1]肖勇波.運籌學:原理、工具及應用[M].北京:機械工業(yè)出版社,2021.
[2]張明,王文文.Matlab在經(jīng)管類運籌學教學中的探索與實踐[J].大學教育,2012,1(7):81-82,89.
[3]吳睿,陳鵬.“管理運籌學”課程教學改革思路探索[J].遼寧工業(yè)大學學報(社會科學版),2009,11(6):137-139.
[4]李明.詳解MATLAB在優(yōu)化計算中的應用[M].北京:電子工業(yè)出版社,2017.
[5]王怡.經(jīng)管類專業(yè)運籌學實驗課程優(yōu)化改革探討[J].科教導刊(中旬刊),2015(32):49-50.
[6]運籌學教材編寫組.運籌學(第四版)[M].北京:清華大學出版社, 2015.
[7]李軍.管理運籌學[M].北京:中國輕工業(yè)出版社,2016.