基于 Mathematica 软件的《运筹学》 课程教学实践研究
2023-12-26闫冬雪南京邮电大学理学院江苏南京210023
闫冬雪 (南京邮电大学理学院,江苏 南京 210023)
运筹学课程是管理科学与工程、物流管理和供应链管理等专业十分重要的核心课程,是一门运用数学学科,灵活运用各种数学分析模型和数据分析学的专业知识,寻找繁杂难题里边最佳或类似最佳的解释[1]。其主要目的是在决策时为管理人员提供科学依据,是实现有效管理、正确决策和现代化管理的重要方法之一。运筹学运用的行业和市场前景十分宽阔,从货运物流、仓储物流、供应链管理,到活动中动态性标价,金融工程下的组合优化,及其交通出行方面的最短路径算法等,都离不了运筹学的应用。
《运筹学》是南京邮电大学管理科学与工程专业开设的一门非常实用的基础理论课,倾向于文科的课程体系设置,对后续很多课程的学习起着承前启后的作用,同时通过学习运筹学可以很好地培养学生的逻辑思维和运筹素养。运筹学的学习要求学生以高等数学作为工具来定量分析和解决运筹学中的问题,需要花费很多时间才能掌握大量的概念、公式和求解方法[2-3],这使得部分同学在学习初期会产生畏难心理和枯燥甚至厌学的情绪,从而缺乏主动学习的兴趣,阻碍了学生学习效果的提升。如何能让学生相对容易解决或很快接受课堂所学的知识,加深学生对所学概念和计算的理解,从而提高学生运筹学课程学习的兴趣,这是教授该课程老师需要认真思考的问题。
Wolfram 公司的Mathematica 软件的出现为运筹学的学习提供了很大的便利性,它是将符号运算、数值计算、图形显示很好地结合在一起的高度优化系统,是目前主流的数学科学计算软件之一[4]。Mathematica 软件以其强大的符号运算能力,出色的图形展示功能,软件界面直观和容易学习的帮助文档受到了很多科学界和教育界人士的青睐,使得新手容易上手,因此很适用于运筹学的实验教学。
目前为止,已有不少学者对Mathematica 在大学数学教学中的应用做了研究[5-6],但Mathematica 在《运筹学》课程教学中的应用很少有涉及。本文主要从具体实例出发,对Mathematica 在运筹学中的应用进行了探索,利用Mathematica 软件解决运筹学课堂教学中遇到的一些典型问题,从而激发学生的学习兴趣,提升课堂的教学效果。
1 用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,可以向学生展示不同参数λ和μ组合下状态转移概率的时间路径,让学生可以看到更直观的图形展示,从而让他们更好地理解相关知识点。
2 结束语
运筹学课程是管理科学与工程、物流管理和供应链管理等本科专业十分重要的核心课程,在专业课的学习中起到了承上启下的作用。新工科建设越来越注重对应用创新人才的培养,要求新时代学生要学会利用现代化信息技术进行辅助,不断提升解决问题的能力。本文针对学生在运筹学课堂学习中遇到的困难,与时俱进地将现代化信息技术Mathematica 数学软件引入到运筹学的课堂教学中。结合学生课堂学习过程中遇到的非线性规划、库存论和排队论章节的典型案例,应用Mathematica 软件强大的符号计算和绘图功能对复杂问题进行计算求解和可视化,让学生更加直观地理解数学表达式,提高了学生的课堂学习兴趣和计算创新能力,培养了学生的运筹思维,获得了更好的教学效果,实现了综合性、创新性应用新工科人才培养的目标。