閆冬雪 (南京郵電大學理學院,江蘇 南京 210023)
運籌學課程是管理科學與工程、物流管理和供應鏈管理等專業十分重要的核心課程,是一門運用數學學科,靈活運用各種數學分析模型和數據分析學的專業知識,尋找繁雜難題里邊最佳或類似最佳的解釋[1]。其主要目的是在決策時為管理人員提供科學依據,是實現有效管理、正確決策和現代化管理的重要方法之一。運籌學運用的行業和市場前景十分寬闊,從貨運物流、倉儲物流、供應鏈管理,到活動中動態性標價,金融工程下的組合優化,及其交通出行方面的最短路徑算法等,都離不了運籌學的應用。
《運籌學》是南京郵電大學管理科學與工程專業開設的一門非常實用的基礎理論課,傾向于文科的課程體系設置,對后續很多課程的學習起著承前啟后的作用,同時通過學習運籌學可以很好地培養學生的邏輯思維和運籌素養。運籌學的學習要求學生以高等數學作為工具來定量分析和解決運籌學中的問題,需要花費很多時間才能掌握大量的概念、公式和求解方法[2-3],這使得部分同學在學習初期會產生畏難心理和枯燥甚至厭學的情緒,從而缺乏主動學習的興趣,阻礙了學生學習效果的提升。如何能讓學生相對容易解決或很快接受課堂所學的知識,加深學生對所學概念和計算的理解,從而提高學生運籌學課程學習的興趣,這是教授該課程老師需要認真思考的問題。
Wolfram 公司的Mathematica 軟件的出現為運籌學的學習提供了很大的便利性,它是將符號運算、數值計算、圖形顯示很好地結合在一起的高度優化系統,是目前主流的數學科學計算軟件之一[4]。Mathematica 軟件以其強大的符號運算能力,出色的圖形展示功能,軟件界面直觀和容易學習的幫助文檔受到了很多科學界和教育界人士的青睞,使得新手容易上手,因此很適用于運籌學的實驗教學。
目前為止,已有不少學者對Mathematica 在大學數學教學中的應用做了研究[5-6],但Mathematica 在《運籌學》課程教學中的應用很少有涉及。本文主要從具體實例出發,對Mathematica 在運籌學中的應用進行了探索,利用Mathematica 軟件解決運籌學課堂教學中遇到的一些典型問題,從而激發學生的學習興趣,提升課堂的教學效果。
在運籌學非線性規劃、庫存論和排隊論部分,Hessian 矩陣的計算和無約束最優化問題、數量折扣的最佳訂貨量計算以及排隊系統轉移概率的計算都是十分重要的知識點。對于大學二年級的學生,盡管他們在大一年級已完成高等數學的學習,但運用高等數學知識求解上述優化問題中涉及的復雜數學表達式和計算問題經常不是那么得心應手,顯得力不從心。本文列舉一些運籌學課堂中的典型案例,并利用Mathematica 軟件進行求解分析和可視化,學生可以很直觀地看到和感受到使用該軟件的便利性,有助于提高課堂的效率,激發學生的學習興趣,為后續學習奠定基礎。
1.1 Hessian 矩陣的計算和無約束最優化問題的求解。對于如下的無約束非線性優化問題:
可以通過函數f的Hessian 矩陣行列式的正負值判斷其凸凹性,進而利用一階最優條件求解優化問題。然而,當函數f的表達式比較復雜時,手動求解f的Hessian 矩陣或其行列式的值會很復雜。然而,使用Mathematica 的符號計算功能可以很大程度上簡化上述手解過程。主要用到的Mathematica12.0 函數有:求導函數D,行列式命令D,約化函數Reduce 和數值最大/小化函數NMaximize/NMinimize。
例1:求解如下優化問題的最優解:
解:在Mathematica 的命令窗口中輸入如下求解該問題的程序代碼:
應用Mathematica 軟件計算得到最優解為(x*,y*,z*)= (0,0,0 ),目標函數最小值為f(x*,y*,z*)=3。
1.2 數量折扣的最佳訂貨量及其計算。數量折扣最佳訂貨量問題為:找到最佳的訂貨量Q≥0,使得企業的平均成本函數G(Q)最小,可以表示為:
其中:λ 為確定的常值需求率,h(Q)為庫存持有成本,K為固定的訂購成本,單位產品的采購價格c(Q)為:
這里,p1>p2,…,pn,b1,b2,…,bn-1為訂貨量間斷點。由于函數c(Q)是不連續的,G(Q)也是不連續的,因此數量折扣的最佳訂貨問題比經典的EOQ 模型要復雜。此外,當訂貨量間斷點數量較多時,手動求解該問題也會很繁瑣。然而,使用Mathematica 的圖形展示和數值計算功能,很容易求解優化問題的最佳訂貨量。主要用到的Mathematica12.0 函數有:分段函數Piecewise,二維繪圖函數Plot,求導函數D 和解方程函數Solve。
例2:考慮如下的數量折扣最佳訂貨量問題參數值:λ=1 000,K=100,h(Q)=0.1c(Q),b1=100,b2=300,p1=50,p2=49,p3=48.5。
解:在Mathematica 的命令窗口中輸入如下求解該問題的程序代碼:
應用Mathematica 軟件計算得到,Qopt=202.031,G[Qopt]=49 989.9。然而,在訂貨量間斷點b2=300 的成本為G(30 0)=49 560.8,這表明最優訂貨量為Q=b2=300,最優成本為G(30 0 )=49 560.8。
1.3 M/M/1/1 模型轉移概率的計算。M/M/1/1 (K= 1 )模型對應于隊列容量有限M/M/1/K 模型。考慮如下的M/M/1/1 轉移概率計算問題:在這個簡單的系統中,只有一個客戶,例如一臺機器,它可能在任意時間需要服務(例如,維修)。狀態1 對應于繁忙的服務器(正在維修的機器) 的狀態,狀態0 對應于空閑的服務器(正在運行的機器) 的狀態。λ>0 為機器的到達率(過程離開狀態0 的速率),μ>0 為服務器的服務速率(即過程離開狀態1 的速率),則1/λ表示機器的平均運作時間,1/μ為修理這臺機器的平均時間。應用微分方程建立生滅過程,可以得到上述問題的轉移概率p0(t )和p1(t )滿足下面的微分方程組:
在教學的過程中發現,雖然學生對M/M/1/1 模型的背景理解的比較好,但要對上述高等數學中的微分方程組求解時,學生會遇到一定的困難。然而,上述建立的微分方程組的求解在排隊論狀態轉移概率的計算中是十分重要的,尤其當系統狀態增加時相應的微分方程個數會更多,但是,多數同學都不清楚方程組解的形式。這時,使用Mathematica 中微分方程組的符號計算功能可以達到非常好的教學效果,學生可以求得上述微分方程組的符號解,從而更好地理解課堂上的教學內容。主要用到的Mathematica12.0 函數有:求解微分方程DSolve,求極限Limit,二維繪圖函數Plot 和交互式操作命令Manipulate。
例3:考慮初始狀態p0(0 )=1 和p1(0 )=0,求解上述微分方程組和穩態概率。
解:在Mathematica 的命令窗口中輸入如下求解該問題的程序代碼:
應用Mathematica 軟件計算得到系統狀態的轉移概率為和相應的穩態概率為和使用命令Manipulate 和Plot,可以向學生展示不同參數λ和μ組合下狀態轉移概率的時間路徑,讓學生可以看到更直觀的圖形展示,從而讓他們更好地理解相關知識點。
運籌學課程是管理科學與工程、物流管理和供應鏈管理等本科專業十分重要的核心課程,在專業課的學習中起到了承上啟下的作用。新工科建設越來越注重對應用創新人才的培養,要求新時代學生要學會利用現代化信息技術進行輔助,不斷提升解決問題的能力。本文針對學生在運籌學課堂學習中遇到的困難,與時俱進地將現代化信息技術Mathematica 數學軟件引入到運籌學的課堂教學中。結合學生課堂學習過程中遇到的非線性規劃、庫存論和排隊論章節的典型案例,應用Mathematica 軟件強大的符號計算和繪圖功能對復雜問題進行計算求解和可視化,讓學生更加直觀地理解數學表達式,提高了學生的課堂學習興趣和計算創新能力,培養了學生的運籌思維,獲得了更好的教學效果,實現了綜合性、創新性應用新工科人才培養的目標。