公务员期刊网 论文中心 正文

优化建模软件在运筹学教学中应用

前言:想要写出一篇引人入胜的文章?我们特意为您整理了优化建模软件在运筹学教学中应用范文,希望能给你带来灵感和参考,敬请阅读。

优化建模软件在运筹学教学中应用

摘要:运筹学是一本应用性很强,与实践结合很紧密的课程。本文分析了运筹学(整数规划)教学存在的不足,简要介绍了几种常用的优化建模软件,通过几个典型示例,分别阐述了EXCEL规划求解工具、LINGO、MATLAB等优化软件在运筹学(整数规划)教学中应用。通过引入优化软件,有助于提高学生的学习兴趣,提高学生的动手实践能力。

关键词:运筹学;整数规划;教学;EXCEL;LINGO;MATLAB

整数规划是运筹学中的典型问题,应用于解决生产实践、经济管理、国防军事领域的诸多问题,有着广泛的应用前景和重要意义。整数规划问题大部分是线性的,传统的线性规划问题中,部分可行解或者最优解可能是分数或小数,但是对于某些特定问题,常要求可行解、最优解必须是整数(称为整数解)。例如,所求的解是开设工厂的台数、完成工作的人数或运送货物的车数等,分数或小数解答就不满足要求[1]。因此,需要在线性规划模型中强制要求决策变量或部分决策变量为整数,即得到整数规划(integerprogramming,IP)或者混合整数规划(mixedintegerprogramming,MIP)模型[2]。针对整数规划或混合整数规划问题,学者们已提出了相应的求解方法,例如分枝定界法、穷举法、割平面算法等,但是算法普遍计算量大、步骤非常烦琐,难以手工完成,需要借助计算机建模求解工具实现。因此,运筹学(整数规划)教学中引入优化建模工具的应用,对于激发学生的学习兴趣,鼓励学生解决实际问题,提高实践能力具有重要意义[3]。

1整数规划模型

整数规划(混合整数规划)要求所有变量(部分变量)取整数,其标准形式如下所示。其中,xi,i=1,...,s为整数变量,xj,j=s+1,...,n为实数变量,整数规划问题可以是最小化问题,也可以是最大化问题。

2常用优化建模软件简介

目前常用的优化应用软件有LINGO、MATLAB、MATHEMATIC、CPLEX等,其中MATHEMATIC和CPLEX专业性太强,操作复杂,不便于在教学中使用。此外,EXCEL具有强大的数据处理功能,其规划求解工具也可用于整数规划问题的建模和求解,并且操作简便,适合在课堂教学中使用。因此,本文主要介绍EXCEL、LINGO和MATLAB三类优化建模软件在整数规划教学中的应用。

2.1EXCEL规划求解工具

如前所述,现实中整数规划问题通常是线性问题,适合利用EXCEL强大的表格计算处理能力进行建模求解,因此人们开发了基于EXCEL的规划求解工具。EXCEL规划求解工具求解算法包括单纯形法、非线性GRG算法和演化算法,整数规划可采用非线性GRG算法求解,该方法由LeonLasdon和AIlanWaren共同开发[4]。规划求解工具是EXCEL中的一个加载项,使用前需要加载,打开“工具/选项/加载项”菜单栏,在打开的“加载项”对话框中选中“规划求解加载项”,点击确定,就将“规划求解”工具添加到“数据”菜单栏中了。

2.2LINGO

LINGO(LinearInteractiveandGeneralOptimizer)是一个交互式的优化求解器,可以求解线性规划问题,也可以求解非线性规划规划问题和非线性方程组。它最初是由美国芝加哥大学的LinusSchrage教授开发的,通过不断完善和扩充,并成立了Lindo公司进行商业化运作[5]。其特色在于可以允许决策变量是整数(即可求解整数规划),操作简便,求解速度快。优化软件LINGO可以求解整数规划活混合整数规划问题,首先需要根据实际问题,建立问题一般数学模型;然后通过LINGO软件编辑框,采用优化建模语言对数学模型进行描述,使得计算机能够理解,最后调用LINGO软件后台算法求解模型。2.3MATLABMATLAB是美国MathWorks公司推出的高性能数值计算和可视化软件,主要功能包括数值分析、矩阵计算、信号处理、图形显示、算法开发和模拟仿真等,广泛地应用于数值计算、程序开发、数据采集、系统建模与仿真、数据分析和可视化等领域,是一个功能强大的商业数学软件[6]。MATLAB还是一个开放的开发平台,可以根据需求自己开发相应的功能模块,例如运筹优化常用的YALMIP等[7]。由于具有强大的矩阵计算能力,MATLAB也可用于求解运筹学中的线性规划和整数规划问题。

3运筹学(整数规划)教学存在的问题

目前,运筹学(整数规划)教学过程中存在一些问题,导致教学效果不佳,主要表现在以下两点:(1)运筹学被当作数学理论课程,重理论轻实践运学学课程数学知识、数学理论较多,课程教学过程中存在大量的数学模型,以及相关数学定理的证明及推导,因此运筹学通常被学生们误认为纯数学理论课程。特别是整数规划教学,涉及凸包理论、解空间分解、上下界证明、对偶理论等诸多相对深奥、复杂的数学理论。如果不介绍相关数学理论,则导致学生理解不深入,只知其然不知其所以然,但是如果单纯大量的理论学习,又可能使学生产生畏惧心理,降低学习兴趣。因此,学习过程应当理论指导实践,加深理论基础的同时,注重培养动手实践能力。(2)整数规划动手实践能力,软件应用能力需要加强整数规划通常属于NP难问题,运算量大,求解过程极为复杂,即使简单的小规模问题也很难通过手工计算求解,更不用说现实中复杂的大规模问题。因此,如果学生不能熟练使用优化求解软件,就不便于求解大规模问题,进而学生动手能力不足,学习兴趣下降。

4优化建模软件应用实例

4.1EXCEL规划求解工具应用实例

例1.某工厂计划期内要安排生产Ⅰ、Ⅱ两种产品,已知生产单位产品所需的设备台时及A、B两种原材料的消耗,如表1所示[1]。该工厂每生产一件产品Ⅰ可获利2元,每生产一件产品Ⅱ可获利3元,请问应如何安排计划使该工厂获利最多?第一步,设生产Ⅰ、Ⅱ两种产品的数量分别为x1,x2,建立数学模型,如下所示:第三步,设置可变单元格和目标单元格,确定决策变量、目标函数和约束条件。设置可变单元格,表示决策变量,记录问题的最优解,令单元格B7和C7作为可变单元格(分别记录变量x1,x2的值)。在可变单元格中输入任意初值,此处都输入0。设置目标单元格,记录目标函数值,即当问题求解完成时,该单元格将显示最优的目标函数值。令D6作为目标单元格(记录目标z的值),输入目标函数公式为D6=SUMPRODUCT(B6:C6,B7:C7),其中SUMPRODUCT表示数组乘积之和,即D5=B6×B7+C6×C7。输入约束条件。选定单元格D3、D4、D5分别表示问题的3个约束条件。利用数组乘积函数SUMPRODUCT,分别输入第四步,设置规划求解参数。单击菜单栏“数据”中的“规划求解”命令,弹出“规划求解参数”对话框,在“设置目标”选项中输入“$D$6”,“通过更改可变单元格”中输入“$B$7:$C$7”,目标类型选择最大值。设置需要遵守约束条件,单击“添加”按钮,出现“添加约束”对话框,“单元格引用”中输入“$D$3:$D$5”,“约束”输入“$F$3:$F$5”,符号选择“”。本题要求变量为整数,需再输入整数约束,“单元格引用”输入$B$7$C$7,“约束”选择“int整数”。如图3所示。第五步,调用算法,计算得到规划求解结果。完成求解参数设置后,选择求解方法为“非线性GRG”,勾选“使无约束变量为非负数”,点击“求解”,弹出规划求解结果对话框,如图4所示。点击确定,就得到相应的求解结果,如图5所示。图中的单元格B7和C7里的数据就是得到的最优解。D6中的数据是z的最大值,即z=14元。

4.2LINGO应用实例

例1.某厂拟用集装箱托运甲乙两种货物,每箱的体积、重量、可获利润以及托运所受限制如表2所示。问两种货物各托运多少箱,可使获得利润为最大[1]?第一步,设x1,x2分别为甲、乙两种货物的托运箱数(非负整数),建立数学模型,如下所示:第三步,点击LINGO界面的运行按钮,就得到最优值为90,其中x1=4,x2=1,如图6所示。

4.3MATLAB应用实例

以4.1节例1为例,介绍MATLAB如何求解整数规划问题,首先建立问题数学模型,如4.1节所示,此处省略。然后,采用MATLAB脚本文件编制如下程序此处,需要注意的是MATLAB默认求解最小化问题,而本问题是最大化问题,需转化为最小化问题,因此目标函数系数f为负数。程序编写完成后,点击运行,即可得到问题的解为x1=4,x2=2,目标函数为-14(真实目标为14)元。

5结语

运筹学是一门紧贴实际应用的学科,运筹学教学不仅要向学生传授理论知识,介绍模型和算法,也要培养学生的实践能力,指导学生运用运筹学知识解决实际问题。传统教学过程中,学生普遍沉迷于数学推导和解题,动手实践能力普遍不足。在教学过程中引入优化建模软件,能够促进学生运用所学知识解决实际问题,提高学生的学习兴趣,实现更好的学习效果。

作者:王建江 杜振国 刘进 单位:国防科技大学系统工程学院 国防科技大学系统工程学院