陈晓文,杨 磊,姜 伟
(哈尔滨医科大学生物信息科学与技术学院,黑龙江 哈尔滨 150081)
基于LINGO的运筹学实验教学探讨与思考
陈晓文,杨 磊,姜 伟
(哈尔滨医科大学生物信息科学与技术学院,黑龙江 哈尔滨 150081)
运筹学是一门实用性很强的学科,本文针对医科院校公共卫生管理专业和生物信息学专业的特点,对如何利用LINGO软件有效地开展实验教学,以提高学生的学习主动性和解决实际问题的能力进行了探讨和研究。
LINGO软件;运筹学;实验教学
LINGO软件是一个专门求解最优化问题的软件包,它不仅能够求解线性规划和二次规划,还可以用于非线性规划,以及一些线性、非线性方程组的求解和代数方程求根等。美国芝加哥大学的Linus Schrage教授在1980年前后开发了用于求解最优化问题的LINDO软件,经过不断完善和扩充形成了目前常用的LINGO(Linear Interactive and General Optimizer)软件包。Linus Schrage教授成立了LINDO系统公司(http://www.lindo.com),进行商业化运作并取得了成功,该公司的软件主要有LINDO、LINGO、LINDO API和 What’s best。据 LINDO 公司统计,位于全球《财富》杂志500强的企业有一半以上使用了上述软件,全球《财富》杂志25强中有23家使用了上述产品求解分析工业管理中遇到的最优化问题,为管理者的决策提供了可靠的理论依据[1]。LINGO软件在工业、商业、服务、教学和科研等领域中得到广泛应用。
随着科学技术的飞速发展,经济管理等领域出现了大量的最优化问题。如生产计划问题、市场营销、运输问题、库存管理等。一般来说,最优化问题是指按照给定的标准在某些约束条件下选取最优的解集。实际问题中会遇到复杂的大规模的最优化问题,含有成百上千的决策变量和约束条件,此时需要求助最优化软件进行求解。与众多最优化软件相比,LINGO软件包具有以下特点和优势:
(1)LINGO软件基于Windows界面开发,用户界面友好,编程语言简洁易学,对简单的数学规划模型,LINGO软件包输入模型的格式和原模型的表达式几乎相同。该软件不区分大小写,数据输入和输出方便,计算速度快,解算能力强大,并提供了帮助信息,方便客户的使用。
(2)LINGO内部含有大量的函数(如数学函数、集合循环函数、财务会计函数等)可供用户建立优化模型时引用,用法非常简单,且提供了与其他数据文件(如文本文件、Excel电子表格文件等)的接口,可方便地输入、求解和分析大规模最优化问题。
(3)LINGO软件引入了建模语言集合和属性,借助于集合,能够用一个单一的、长的、简明复合公式表示一系列相似的约束条件,从而允许用户以简练、直观的方式描述较大规模的优化问题。同时,它可以允许优化模型中的决策变量是整数(即整数规划)。
运筹学是管理学科的一门重要专业基础课,为管理人员的决策提供了科学依据,有助于有效地管理和正确地决策。随着生产力和科学技术的发展,运筹学产生了很多分支并且应用范围越来越广。经济、管理、军事、工程系统等领域的问题都可以采用运筹学的方法,对实际问题量化建立数学模型,获得合理的人力、物力和财力的系统运行最优方案。随着生物信息学的发展,运筹学在该领域也崭露头脚。运筹学关键的部分就是将实际的问题转化为数学模型并对其求解,因此,学生不仅需要掌握扎实的理论基础,还要学以致用,用学到的理论和方法解决实际问题。为此,实验课教学就显得尤为重要,同时也是运筹学教学改革的重要内容。在实验课教学中,通过具有挑战性的实际案例,引导学生自觉地思考和探索,锻炼学生解决问题、操作LINGO软件求解问题的能力,训练学生探讨问题能力和创新能力,使学生在做的过程中发现自己的不足,明确弥补的方向。
LINGO软件的编译语言简单,容易掌握,其解决问题类型全面的优点恰好弥补了运筹学实验课时少的不足,此外,与其他软件相比LINGO软件包具有更多的优势。如在很多课程的实验教学中使用的MATLAB也可以解决线性规划、二次规划等最优问题,但是LINGO的优化工具箱要比MATLAB强大,线性规划问题的灵敏度分析报告详细全面,还可以解决整数规划。当使用集合和属性求解大规模问题时,LINGO软件同样可以将问题的原始模型直观地显示出来,方便用户理解。总之,在运筹学实验教学中首选使用LINGO软件,可有效提高教师的授课效率。学生易于掌握,从而激发其学习热情和主动性。
笔者总结多年实验教学经验,认为要注意以下几方面的问题。(1)介绍软件的基本使用方法,让学生初步掌握如何使用LINGO软件。(2)结合理论知识选择一些LINGO应用实例,让学生更加熟练地应用运筹学解决实际问题。包括:①LINGO软件在线性规划中的应用。线性规划是运筹学中发展最成熟的一个分支,简单的线性规划模型实例可以培养学生的线性规划数学建模技能,同时还可以学习LINGO的基本建模语言;大规模的线性规划实例(即约束条件和决策变量的个数较多)可以使学生掌握使用基本集合、派生集合、属性和函数以及循环函数的方法。②LINGO软件在灵敏度分析中的应用。用实际的生产计划问题作为实验内容,训练学生根据LINGO软件提供的灵敏度分析结果报告做出合理正确的决策方案。③LINGO软件在最短路径中的应用。最短路径是一种多阶段的决策问题,可以采用动态规划的方法求解。可用于解决运输网络距离最短,或时间最少等问题。对该部分的练习可以使学生掌握稀疏集合和派生集合的用法。④ 根据授课对象选择实验任务。笔者承担两个轨道的运筹学课程,分别是公共卫生管理和生物信息学。不同专业运筹学课程的讲授内容不能完全一样,应根据授课对象的专业特点,相应地调整运筹学的理论知识和实验内容。为管理类学生布置的实验任务应倾向于常见的生产计划、运输问题等经济管理类的实际问题;而为生物信息类学生布置的实验任务应倾向于那些使用运筹学的方法解决生物信息方面的实际问题,如利用最短路径构建调控网络等。实验任务针对性强,学生才能更加深刻地体会运筹学对本专业的应用价值,从而激发学生的学习热情和兴趣。
运筹学是一门应用性学科,使用该学科的知识来解决实际问题是学生必须掌握的能力。基于LONGO软件包的运筹学实验教学增加了教学的直观性,开阔了学生的视野,激发了学生的兴趣,收到了良好的教学效果。无论在毕业设计还是以后的工作中都会使学生受益匪浅。
[1]谢金星,薛毅.优化建模与LINDO/LINGO软件[M].北京:清华大学出版社,2005.
G420
A
1671-1246(2012)17-0102-02