您好, 访客   登录/注册

运筹学课程增设实践教学环节的探索

来源:用户上传      作者:

  [摘 要]文章对北京林业大学数学专业运筹学课程教学改革进行了总结,提出了在运筹学课程教学中增设实践教学环节的教学方法。实践教学环节主要是以实际案例讲授了Matlab程序的编写,建立了案例库。通过增设实践教学环节,让学生亲自上机实习,使他们能多角度、多方法地解决实际问题,既巩固了理论知识,又提高了分析解决问题的能力,从而达到培养应用型人才的目的。
  [关键词]运筹学;实际案例;Matlab;实践教学
  [中图分类号] O22;G642 [文献标识码] A [文章编号] 2095-3437(2020)10-0117-03
  一、引言
  运筹学是一门应用科学,它广泛应用现有的科学技术知识和数学方法解决实际中提出的专门问题,为决策者选择最优决策提供定量依据[1]。运筹学涉及的每一个问题都是从实践中来,通过分析实际问题,建立相应的模型,再通过对模型的研究,得到相应的理论结果。“建模”过程是“实践—认识—再实践—再认识”这样一个循环往复、螺旋式提高的认知过程,体现“从实践中来,到实践中去”的实践论思想,是培养学生“创新实践能力”的载体[2]。对模型的正确建立和求解是运筹学研究中的关键一步,是将实际问题、经验、科学方法三者有机结合的创造性的工作[3]。
  北京林业大学数学专业开设的运筹学课程是64学时,选用的教材是刁在筠等主编、高等教育出版社出版的《运筹学》[4]。受学时的限制,教师在讲课时主要选讲了线性规划、整数规划、非线性规划、动态规划、图与网络流、决策分析、对策论。以前,数学专业运筹学课程的教学主要是理论讲解,没有开设实验课。但运筹学是一门应用的学科,在运筹学的教学过程中,不仅要讲授理论知识,还要锻炼学生建立模型、分析模型、求解模型的能力。因此,从 2017年开始,北京林业大学在数学专业开设的运筹学课程中增设了实践教学环节,主要是讲授Matlab程序的编写[5-6]。通过增设实践教学环节,让学生亲自上机实习,使他们能多角度、多方法地解决实际问题,既巩固了理论知识,又提高了分析解决问题的能力。
  二、运筹学课程增设实践教学环节的具体实践
  增设实践教学环节的主要手段是开设实验课。实验课的主要内容是根据实际问题建立模型、分析模型,并借助计算机软件求解模型。目前比较成熟的求解运筹学模型的软件有Matlab、Lingo、Lindo、WinQSB以及Excel。在教学实践中,我们没有单独设立实验课,而是将实验课穿插在理论课里讲解,主要是给学生介绍用Matlab软件求解运筹学模型,主要设计了线性规划(单纯形法)、整数规划(分支定界法)、非线性规划(0.618法、Newton法等)的实验课。对于非线性规划问题,在用Matlab软件进行求解时需要编程来实现,这特别有助于学生理解相应的算法。学生通过编写程序,能够很好地理解各种求解非线性规划问题的算法的主要思想,更好地体会算法的精髓。另外,在对非线性规划问题所涉及的算法进行考核时,我们发现这些算法不适合卷面考试,因为给定一个非线性规划问题让学生手动求解,步骤多、计算量大,容易出错。如果通过让学生编写程序来实现,不仅能加深学生对算法的理解,还能提高学生借助计算机解决实际问题的能力。
  (一)实验课内容
  实践教学环节主要采取课上讲算法、课下实践,然后再回到课上讨论的形式。在每个章节,教师讲完各种算法之后,给出相应模型的案例,要求学生自己分析问题,建立模型,并编写程序解决问题,然后再回到课上运行程序,对出现的问题进行讨论,教师给予必要的指导。实验课的基本内容如表1所示。
  每个实验包括基础练习和应用实践两部分。基础练习部分在课内完成,实践部分在课外完成,上交实验作业。实验作业包括实验报告、程序源代码(要求能够运行无误),程序源代码所用语言为Matlab。实验作业上交后,学生要在实验课上运行程序源代码,对出现的问题进行讨论,任课教师给予必要的指导。另外,实验报告必须写出详细的建模步骤及对程序运行结果的分析、决策。实验报告是期末考核的重要依据,解决了非线性规划问题的算法不适合作为卷面考试的问题,具体安排如下文所示。
  实验1:线性规划
  实验目的:(1)熟悉Matlab的基本操作方法,掌握在Matlab环境下求解简单的线性规划模型的方法。(2)掌握线性规划模型解的情况。
  实验2:整数规划
  实验目的:(1)掌握整数规划的基本概念及数学模型。(2)掌握Matlab中操作函数的使用方法。
  实验3:非线性规划
  实验目的:(1)掌握非线性规划问题的算法原理。(2)能够熟练地用Matlab语言编写各个算法(0.618法、Newton法)的程序。
  实验4:综合实验
  实验目的:(1)对于实际案例,能够分析建模。(2)根据所建立的模型,借助计算机软件进行求解。
  (二)实验结果核验
  实验结果核验是分组实现的。我们将数学系16级2个班的学生分成8个组,平均每个组6~7个成员。在实验课上,每個组指派一名成员来讲解和运行程序。
  (三)实验案例
  用分支定界法求解整数规划:
  (四)实验课的效果及反思
  从实验案例我们可以看出,对于同一个模型,不同组别运行的程序是不同的。通过相互交流,学生可以掌握Matlab在编程时的不同处理手段。在这个案例中我们也发现了一些问题,例如,随着计算机软件不断更新换代,Matlab也在不断更新软件包,在Matlab2014及以上版本都可以用命令函数intlinprog直接求解整数规划模型,此次8个组中有7个组提交的实验报告达不到实验的效果,所以在以后的实验课上我们应该对学生提出明确的要求。
  我们通过对数学专业运筹学课程进行改革,增设实验课,使学生掌握运筹学各主要分支的模型、基本概念与理论、主要算法与应用,并能够在计算机上应用Matlab软件包熟练地操作解决一些实际应用案例,切实提高学生动手解决实际问题的能力,从而为学生进一步的学习打下坚实的基础。
  三、总结
  在运筹学课程增设实践教学环节,增加实验课,能加深学生对理论知识的理解,让学生自己参与到分析问题、建立模型、求解模型到结果分析的整个过程中,从而培养学生解决实际问题的能力,达到培养应用型人才的教学目的。
  [ 参 考 文 献 ]
  [1] 《运筹学》教材编写组编.运筹学[M].3版.北京:清华大学出版社,2005.
  [2] 张杰,郭丽杰,周硕,等.运筹学模型及其应用[M].北京:清华大学出版社,2012.
  [3] 李珍萍,等.管理运筹学[M].北京:中国人民大学出版社,2011.
  [4] 刁在筠,刘桂真,宿洁,等.运筹学[M].3版.北京:高等教育出版社,2007.
  [5] 卓金武,等.MATLAB 在数学建模中的应用[M].2版.北京:北京航空航天大学出版社,2014.
  [6] 余胜威.MATLAB 数学建模经典案例实战[M].北京:清华大学出版社,2015.
  [责任编辑:庞丹丹]
转载注明来源:https://www.xzbu.com/9/view-15317905.htm