建模竞赛中数模的建立与求解

(整期优先)网络出版时间:2019-08-18
/ 2

建模竞赛中数模的建立与求解

杨付贵刘洋

杨付贵刘洋

广州工商学院

摘要:在数模竞赛中,时间如何安排,怎么写论文等等,本文结合自己在多年指导学生参加全国大学生数学建模比赛中的一些经历和体会,浅谈一下在数学建模竞赛中如何选题,如何假设,如何建模,如何解模,仅供同学和老师们参考,至于如何查找文献资料,如何写论文以及建模竞赛时,需要注意的问题,后续再谈。如有不当之处,望老师和同学们给予批评指正。

关键词:数学建模;建模;解模

很多刚接触数学建模的学生,即便是了解了数学建模以后,往往都会碰到一个问题,那就是拿到数学建模的题目后,看着题目却不知道如何下手,什么都不会做,干着急。即便是在经过数学建模的培训,在老师的指导下,在做的过程中也会碰到各种各样的问题,比如,如何进行合理的假设,如何建立相应的,合适的数学模型,以及怎样求解数学模型?并且发现不是算法不了解,就是软件不会使用。从而使许多同学在学习数学建模的过程中,逐渐失去了信心,有的就自动退出了。为此,各个学校都采取了不同的方法,来解决这个问题。比如:在力度上,加大宣传数学建模的重要性,精神上给予通报表彰,物质上给予奖励,学业上,给予学分,能力上,有的是开数学建模培训班,有的是以题带连,有的是通过数学协会普及教育,等等。当然,这些都需要一定的经费的支持。而我们学校有没有这一经费,所以,只能靠学生自己组队,自己自学,自己逐步消化了。下面,我结合自己在多年前,指导学生参加全国大学生数学建模比赛中的一些经历和体会,从以下六个方面,简单浅谈一下数学建模竞赛,仅供同学和老师们参考,如有不当之处,望老师和同学们给予批评指正。

一、选题

全国数学建模竞赛赛通常分为本科组和大专组,每组A,B两题,通常A为连续型的,B为离散型的。并且一般分为运筹优化和非运筹优化两类,对于运筹优化的题目,只要题意理解基本正确,假设还算合理,模型大致正确,能正常求解,并且,只要求出的解在参考答案附近,别差距太大,那基本就能得奖了。而对于非运筹优化类形的题目,一般都要麻烦的多了,各式各样的问题都有,并且好些非常不好入手,并且一般来讲也没有参考答案,所以,通常只要有思想,有方法,就会得到好的结果。因此,一般来讲,当优化问题相对较简单的时候,做优化的比做非优化的人数要多。但是对于涉及到比较复杂的优化问题的时候,那就要颠倒一下了。由于就得奖人数来说,A,B两题的各级得奖人数大致是相仿的,各占百分之五十。这时如果做A的人数少则得奖率就高,所以在选题时,人数比较悬殊的时候则要选择做的人数相对少的那个题做,而当选题人数比较平均的时候,就选自己拿手的做了。当然要知道这个选题比例那是不可能的,所以只能在学校这个小范围的互动了,通过互动,一般就可以大致推测选题的比例了,由于一开始是赛区内评价,所以在小范围内互动也是有必要的,当然在自己的学校内尽量做到平均,不然就是自相惨杀了。这里需要特别注意的是,所选的题一定要能保证做的出来,不然连个成功参赛奖都很难保证。

另外,还需要强调的一定就是,看起来入手容易的题目却不一定好做,往往做到一定地方后很难深入,运筹优化的很大一部分题目都属于这类。而看起来无从下手的题目,一旦找到突破口后,那可就是柳暗花明,世外桃源了,就有很多东西可做。所以选题的时候一定要慎重慎重再慎重,先把题目的意思搞懂搞透,然后根据自己的优势和能力,在互动的情况下,选择一个最有利于自己得奖的题目做。

二、建模

建立数学模型是最为关键的一步,新手往往是无从下手,这主要是因为知识面不广,缺乏背景知识的缘故,我们说,背景知识对于建立数学模型来讲是非常重要的,如果课题的背景刚好是自己熟悉的领域,那就会知道问题的关键是什么,该怎么样去解决,而事实上往往不是这样,问题的背景是所不熟悉的领域,这个时候就需要查阅文献资料,了解这个问题的背景,问题的发展,特点,关键所在以及前人是如何解决的等等。为此需要训练查找资料和查找文献的能力。一般来说,新手通过查阅文献资料,可以了解这个问题的背景,知道该怎么做以后,碰到的新问题就是不会做,这就是相关知识的缺乏了。当然知道,了解,以及掌握全部的算法和知识是不现实的,其实也没有必要系统的学习很多数学知识,这是时间和精力所不允许的。参加数学建模的其中一个能力,就是现学现卖的能力,在最短的时间内了解,掌握知识并将其应用,许多优秀的论文,其高明之处并不是用了多少数学知识,而是思维较全面、比较贴合实际、能够解决实际问题或是有所创新。当然,常用的算法和知识是必备的,也是必须的。数模论坛的前辈(董乘宇)曾总结过数模竞赛应当掌握的十类算法(具体可去数模论坛查找):

1.蒙特卡罗算法;

2.数据拟合、参数估计、插值等数据处理算法;

3.线性规划、整数规划、多元规划、二次规划等规划类算法;

4.图论算法;

5.动态规划、回溯搜索、分支定界等计算机算法;

6.最优化理论的三大经典算法:模拟退火算法、神经网络算法、遗传算法;

7.网格算法;

8.穷举法;

9.一些连续数据离散化方法,数值分析算法;

10.图像处理算法。

以上基本上涵盖了数学建模中几乎所有的算法了,虽然是算法,但是,我们必须了解这些算法使用的相应的数学模型及背景。如果能够了解,掌握了这些知识,对于运筹优化类的问题,建立起相应的数学模型,就可以比较轻松解决了,但是随着近些年的发展看,概率统计的手段在数学建模中的作用越来越大,所以除了上述十大算法之外还应当对数理统计方法有所了解和掌握。

三、解模

数学模型建好后,该怎么求解常常是令人头痛的问题,这个不仅对新手,而且一般也是令绝大多数同学头痛的问题,当辛辛苦苦把数学模型建好了,但是却解不出结果来,这个时候往往时间很紧了,但常常令人无奈,所以,我们平时也要多做些这方面的训练。求解数学模型实质上就是算法的具体实践。一般来讲,通常都是用matlab,mathematica,lingo等等数学软件来求解,当然有的时候c/c++也是很实用的工具。

在这里不妨推荐几本数学软件的书:

1.《精通matlab6.5》(北航张志涌所著);

2.《数学运算大师mathematica4》;

3.万保成老师所写的电子版的《最优化模型与实验》;

4.万保成老师所写的电子版的《lingo8forwindows》。

这几本书都是很好的,对掌握这些数学软件是十分合适的。如果对这几本书都不熟悉的话,建议可以只阅读一下第一本《精通matlab6.5》(北航张志涌所著),据说,这个软件包,包含了所有的目前已有的各种各样的数学模型的求解算法。很实用。

参考文献:

[1].《数学建模算法与应用》司守奎,孙兆亮主编,国防工业出版社。

[2].《数学建模》章绍辉编,科学出版社。

[3].毅飞冲天.数学建模经验谈。

[4].《精通matlab6.5》(北航张志涌所著)。