数模论坛

 找回密码
 注-册-帐-号
搜索
热搜: 活动 交友 discuz
查看: 9544|回复: 8

(转帖)数学建模竞赛新手教程

  [复制链接]
发表于 2012-6-8 17:30:28 | 显示全部楼层 |阅读模式
本帖最后由 gzx 于 2012-6-8 17:37 编辑

中国数学建模网http://www.shumo.com

数学建模竞赛新手教程(1)--数模竞赛是什么


路漫漫其修远兮,吾将上下而求索

----------开篇语



数学建模竞赛,就是在每年叶子黄的时候(长沙的树叶好像一年到头都是绿的)开始的一项数

学应用题比赛。大家都做过数学应用题吧,不知道现在的教育改革了没有,如果没有大变化,

大家都应该做过,比如说[树上有十只鸟,开枪打死一只,还剩几只],这样的问题就是一道

数学应用题(应该是小学生的吧),正确答案应该是9只,是吧?这样的题照样是数学建模题,

不过答案就不重要了,重要的是过程。



真正的数学建模高手应该这样回答这道题。

“树上有十只鸟,开枪打死一只,还剩几只?”

“是无声手枪或别的无声的枪吗?”

“不是。”

“枪声有多大?”

“80-100分贝。”

“那就是说会震的耳朵疼?”

“是。”

“在这个城市里打鸟犯不犯法?”

“不犯。”

“您确定那只鸟真的被打死啦?”

“确定。”“OK,树上的鸟里有没有聋子?”

“没有。”

“有没有关在笼子里的?”

“没有。”

“边上还有没有其他的树,树上还有没有其他鸟?”

“没有。”

“有没有残疾的或饿的飞不动的鸟?”

“没有。”

“算不算怀孕肚子里的小鸟?”

“不算。”

“打鸟的人眼有没有花?保证是十只?”

“没有花,就十只。”

“有没有傻的不怕死的?”

“都怕死。”

“会不会一枪打死两只?”

“不会。

“所有的鸟都可以自由活动吗?”

“完全可以。”

“如果您的回答没有骗人,打死的鸟要是挂在树上没掉下来,那么就剩一只,如果掉下来,就一

只不剩。”

不是开玩笑,这就是数学建模。从不同的角度思考一个问题,想尽所有的可能,正所谓的智者

千虑,绝无一失,这,才是数学建模的高手。然后,数学建模高手的搭挡----论文写作高手(

暂称为写手吧),会把以上的思想用最好的方式表达出来。


一般的写手会直接把以上的文字放到论文里就成了。但是专职的数学建模论文的写手不会这样

做,她们会先分析这些思想,归整好条理;然后,她们会试着用图画来深入浅出的表达这些思

想,或者再使用一些表格;这些都是在Word中进行,当然,如果有不喜欢Microsoft的朋友

或是国粹主义者喜欢用WPS什么的当然也可以。她们都是这一行的专家,相信Word什么的使

用技巧,都够她们写一篇论文的了。她们不一定会打字,但是输入公式的速度确是一流的。她

们一定会用一种画图软件,不管是Visio还是SmartDraw,她们都会用来明确而清晰的表达

自己的思想。

好了,有了思想,也有了表达思想的人,还少一样东西----实现。屈原老哥就有那么多的怀

疑与问题,作为数学建模竞赛的评委当然也不是好骗的,不会那么容易的相信高手们的话。所

以要一个编程高手实现之(暂称为程序员吧)。就上面所说的问题,程序员会编一个仿真的程

序,实现以上所有的情况。这个程序是这样子的,他对以上所提的每一个选项提供了选择接口

,比如说,我们可以选择枪的声音的分贝数,可以从80到100分贝调节,或者干脆从0到200d

b均可,调节方式是无级变速方式,当然,电脑太慢,在遍历的时候可能要指定步长,嘿嘿,

所以,最好买个好电脑,CPU一定不要用赛扬的,要用奔腾的,另外,为了程序员的安全,还

要用液晶的显示器,要有UPS不间断电源,要有健康的座椅.....哈哈,扯远了。仿真程序会

尽一切可能按实际所限制的条件遍历所有的情况,看一看还剩下几只bird。
当然,这也不是实践。真的做的绝的,会跑去烈士公园做实验,当然得拿一把枪,可以拿塑料

子弹枪。烈士公园离我们学校(路过就读于东点军校)很近,就在南门嘛。那儿有一个地方养

了很多鸽子。虽然不能保证刚好10只鸽子,也不能保证刚好都在树上,但也可以将就着做实

验,然后根距实验条件做一些修正。哈哈,这样就完美了....把实践结果与仿真结果、理论

结果做比较,再修改理论、仿真程序、论文,再做实验、做仿真,再比较,再修改,递归到时

间的完结。
 楼主| 发表于 2012-6-8 17:31:35 | 显示全部楼层
本帖最后由 gzx 于 2012-6-8 17:39 编辑

中国数学建模网http://www.shumo.com


数学建模竞赛新手教程(2)--分工与合作



引用:
--------------------------------------------------------------------------------
有些同学觉得,参加数学建模竞赛的目的就是为了提高一下自己的数学水平,或是

别的水平,我不以为然。既然参加数学建模竞赛,其目的就应该是,而且是强烈的目的,去

拿一等奖。
--------------------------------------------------------------------------------





我们应该如何分工?传统的标准答案是----数学,编程,写作。



但是对于每一个参加过数学建模竞赛的同学来说,感悟各不相同,所以答案也各不相同。下

面就是我的一家之言,有经验的朋友也可以一起讨论一下。



分工不用那么明确。但有个前提是大家关系很好。不然的话,很容易产生矛盾。提醒一点,

在搞竞赛的那几天,睡不好觉,心情急躁,很容易与搭档们发生冲突。分工太明确了,会让

人产生依赖思想,不愿去动脑子。假如写手只是实现一个打字员的功能,把数模高手的思想

表达出来,那是不够的,写手要有自己的思想,能够检查对方的错误,能够提出自己的思想





按我的想法,理想的分工是这样的。数学建模竞赛小组中的每一个人,都能胜任其它人的工

作,就算小组只剩下她(他)一个人,也照样能够搞定数学建模竞赛。在竞赛中的分工,只

是为了提高工作的效率,做出更好的结果,并不是由于能力不适合做别的工作。



我一直都这么认为,只有能够独当一面的人,才能更好的与他人合作。其实想想也应该是这

样的,在以后的学习、工作、研究中,数学能力、编程能力、论文写作能力,哪一项是可以

缺少的呢?



当然,现实并非如此。我们很难找到三个这样的人凑到一起。所以,凑合着用吧,我给一点

儿建议。三个人中,一定要有一个人脑子比较活,善于思考问题,这个人,嗯,免强归于数

学方面吧;一定要有一个人会编程序,能够实现一些算法。这就够了,另外需要有一个论文

写的比较好,不过写不好也没关系,也可以学嘛,多看一看别人的优秀论文,多用几次Word

,Visio就成了。(强烈推荐一篇论文《Word在论文写作中的技巧》,这篇文章我这儿有,

不过怎么让大家看到呢?待我想想,网上应该能搜到吧)。



说到看论文啊,我真是觉得,优秀的论文就像《九阴真经》一样,看了之后会让你功力大增

的。大家一定要多看,特别是想在数学建模竞赛中取得好成绩的朋友。看过论文之后,明白

的不仅仅是论文要怎么写,也在同时学到了作者的思考方式。我建议,有决心的朋友不如背

几篇优秀论文。



常常有人问,搞数学建模竞赛是不是需要我学习很多知识啊?比如《图论》、《概率论》、

《神经网络》、《组合数学》、《小波分析》、《泛函》、《最优化》.....



我的回答是,一门都不用,甚至连高等数学都可以不学,有我么多时间去学这么多课程,还

不如把时间拿来去看懂别人的论文呢。很多优秀的论文,其高明之处并不是用了多少数学知

识,而是思维比较全面、帖合实际、能解决问题或是有所创新。有时候,在论文中可能碰见

一些没有学过的知识,怎么办?现学现用呗,在优秀论文中用过的数学知识就是最有可能在

数学建模竞赛中用到的,你当然有必要去翻一翻啦。



有些同学觉得,参加数学建模竞赛的目的就是为了提高一下自己的数学水平,或是别的水平

,我不以为然。既然参加数学建模竞赛,其目的就应该是,而且是强烈的目的,去拿一等奖

。这样,会取得好成绩的。



分工就说到这儿,下面讲合作。合作真的很难,哈哈,我也没心得。上次合作做数模,我差

点儿被气爆了,可能是我耐性不够吧。我只能说一句话----以大局为重。我想,如果合作者

中有一个是小mm,肯定就不一样了吧,希望大家合作愉快!
 楼主| 发表于 2012-6-8 17:34:08 | 显示全部楼层
引用:
--------------------------------------------------------------------------------
顺便说一点儿做数学建模题的小经验。

1.随时记下自己的假设。有时候在自己很合理的假设下开始了下一步的工作,我们就应该顺手

把这个假设给记下来,否则到了最后会搞忘记的。而且这也会让我们的解答更加严谨。

2.随时记录自己的想法,并且不留余地的完全的表达自己的思想。在比赛后,老师讲评优秀论

文时,有很多同学常常抱怨,这个想法我也想到了的啊,就是没有表达出来,或是没有表达清楚

。但常常就是这一点别人没有表达清楚的东西,促出了一篇优秀论文。

3.要有自己的特色。这么多数学建模竞赛论文,凭什么让老师们投自己一票?当然得有自己的

特色了。通俗点儿,就是要有自己的闪光点。

--------------------------------------------------------------------------------
 楼主| 发表于 2012-6-8 17:39:53 | 显示全部楼层
数学建模竞赛新手教程(3)--选拨的历程

百二秦关终属楚 三千越甲定吞吴
--------------------开篇语

请允许我引用一下我的搭挡王瑛的文章:数模之路

===========================================================================

我是数学迷,我的两位合作者是编程高手、实践天才。芙蓉国里,国防科大,我们走到一

起。三年了,我们努力向前,精诚合作。三年了,我们做了一些事,闯出一条路。作为数

学建模小组的一员,我又怎能不感慨万千呢?


数学建模真的很难。起初,我们以为只要数学水平够高就行了。然而,2000年的全国赛题

给我们上了一课。虽然没参加比赛,但是我们做得实在很差。从入门的角度来看,这是因

为我们缺少处理实际问题的手段。比如说,在图上求两点间最短距离应使用Floyd算法,

由于我们经验不足,明明知道该怎么办,就是没法在计算机上实现。后来,我们注重解决

实际问题的基本功,对多种软件、算法作了深入的研究。尽管如此,一旦碰到问题,我们

还是觉得不顺手,特别是很难抓住关键点。为什么,为什么我们精疲力尽却得不出好结果

?这是没有站在巨人肩上的缘故!一个偶然的机会,我们认识到这点,开始了对图书馆、

Internet的大搜索。渐渐地,我们的信息获取能力大大提高,也明白了文献作为知识的载

体的继承性。而我们的任务,就是在前人的基础上更上一层楼,推陈出新。


我们付出了汗水,自然会有收获。2001年5月,小组顺利的通过了学校的选拔赛。这是我

们第一次成功。可是,前景仍不容乐观。国防科大人才济济,在九月份全国比赛之前,小

组随时有被淘汰的可能。于是,我们更加努力,挤出所有课余时间搞数模。五月以后考试

比较多,我们复习到深夜,可有时还得搞数学建模,直至天明。时间短,任务重,虽然有

指导老师的殷切期望,但是想要交一份完美的论文太难了。小组甚至出现了仅有一页纸的

论文。事物皆有两面。在这样的艰难困苦当中,我们的意志得到了锻炼,团体意识大大加

强。同时,"唯陈言之务去"的道理也更加为我们所接受。因为数学建模就是创造性的智力

活动,空话、套话是没有立足之地的。


暑假到了,全年级下连队实习。然而,我们心里始终想着八月底的模拟竞赛。那可是决定

参赛人选的一仗。结果,在入选的小组中,我们是中间。这根本不符合小组的个性,因为

我们就应该出类拔萃。私下里,我们却都明白其中的原因。我们太重视那道题目了,以致

形成了两种截然不同的思路,又各执己见。由于问题的重要性,分歧与矛盾不断的激化,

最终做出了两份报告。兵力分散,实在是很深刻的教训!


此后,大家的士气比较低落。一天晚上,指导老师交代竞赛事宜。回来的路上,我的两个

伙伴表示了他们的忧虑:"也就是这样了,不过我好没把握。怎么办啊?"我也不知道怎么

办,可我不能这么说啊。差不多硬着头皮,我预言着:"如果发挥不好的话,只能拿到全

国二等奖。反正也是最后一次了。"最后那句不假思索的话起了奇迹般的作用,它激发了

我们背水一战的思想。他们两个都点头。


9月24日,全国比赛开始。我们统一思想,迅速选题、入手。"血管的三维重建",问题很

有特色,我们面临着艰难的抉择。因为尽管算法的精确解答十分重要,但是对算法的正确

性加以数学证明也是很有吸引力的。深思熟虑之后,我们决定要创新,不要因循守旧,毅

然投入了算法基础的证明。感谢我的伙伴和我自己,还有所有关心我们的人!一天半之后

,一系列精美的证明完成了。我们奠定了算法的数学基础。然后是编程实现,以及痛苦的

调试。说它苦,是因为我们已经很累了。但是,一想到人们的期望,一想到付出的努力,

一想到机会的难得,我们只有鼓足勇气、坚持到底。


三天过去了,很快。那是一段难忘的时光,可是还有更精彩的生活。我们拿了全国一等奖

,取得了参加国际比赛的资格。为了军队的荣誉,我们继续向前。国际比赛的题目本身并

不难,难在论文必须用英文写。也正是因为这点,中国大学生几乎没有什么好成绩。(国

防科大拿过特等奖)基于前人的经验,我们积极准备英文写作,加强英文资料的检索。更

重要的是,我们考虑到"一张图胜过千言万语",而中国人的英语水平毕竟有限,所以图文

并茂应该是最佳的信息表达方式。不巧的是,2002年的国际数学建模竞赛正好在春节期间

进行。过年也不能休息了,但是我们心无挂碍,一心取胜。当时很投入,我们一点也不觉

得苦,只是赶火车回家的时候,却都在公共汽车上睡着了。累也累过,苦也苦过,国际比

赛确实是我们一生都珍贵的回忆。.END

============================================================================


呵呵,我只能以东点军校为例,说一下数模竞赛的选拨历程了。看过以上文章,相信大家

对数模竞赛的选拨应该有所了解。第一轮选拨是在每年的5月1日开始的,为期一周,任何

人都可以参加,甚至不用报名,在网上下载了题目做掉上交即可。接着是对选拨出来的同

学进行培训,再进行两次选拨,选拨方式主要以做数学建模竞赛的题目为主。最终选定的

人会在9月底参加全国大学生数学建模竞赛。在全国竞赛中取得较好成绩的而又原意参加

美国数学建模竞赛的同学,会在寒假参加美国数学建模竞赛(可惜不能去美国,只是网上

发题)。


其实选拨上的上不一定就比没选拨上的人强多少。关键是个机会,看自己把握了。跟我一

屇的一组,在第一次选择赛中没有被选上,但他们仍然坚持参加后来的培训,最终取得了

老师们的信任,参加了2001年的全国大学生数学建模竞赛,并取得全国一等奖。


对于王瑛的文章,我有很多不同意的地方。也请大家不要太当真,对的地方接受,不对的

地方就舍弃。首先,文中提到[数学建模真的很难],我就不同意。之所以第一次参加比赛

没有什么结果,是因为我们没有重视,一点儿准备都没有,事前对数学建模是什么都不太

了解,就开始去做全国竞赛题,当然做不出什么。其实数学建模竞赛不过是数学应用题罢

了。另外,这篇文章是发表在解放军报上的。大家也应该明白,发表的文章总与实际有些

出入,哈哈。


今天偷偷懒,用了别人的文章。下一章我会详细写一下我们当时参加全国数学建模竞赛的

全过程。
 楼主| 发表于 2012-6-8 17:41:02 | 显示全部楼层
数学建模竞赛新手教程(4)--实战



实战----血管的三维重建


  2001年9月未,我们终于迎来了全国大学生数学建模竞赛。那时候西山居有一个游戏刚刚

出炉,里面有一首歌叫做爱的废墟

====================================================

蓝蓝的天空是谁的身体

让云掠夺而去留下感情的证据

当感情在你的心里慢慢的扭曲

我的爱对你是不是委屈加上了恐惧


伤心的流星 凄凉的逃避

留下星星收拾这不负责任的结局

是谁把天空撕裂出星星的伤口

抹杀了我的自由还有浪漫的温柔


如果说天外的雨 是星星为我落下的泪滴

我不知道在你心里 是否还有受伤的痕迹

如果说心中的雨 是来自一处残破的屋宇

我不知道呵护的记忆 是否会成为埋藏爱的废墟

=====================================================


  不知道为什么,我比较喜欢忧伤的感觉,就象这首歌给人的感觉一样,那样容易让人产生力



  在竞赛开始的前一天,我和两位搭挡就开始往招待所里面搬运必要的作战武器了。

列个清单吧:

>数学手册一套(5册)每一册都有一个拳头那么厚

>高等数学教科书(东点军校出版),概率论(复旦大学),数值分析(东点军校),Matlab的一些

参考书,C语言教程(谭浩强的那本),等等等等

>三台自己的电脑,都是赛扬533、566之类的配置,且均有网卡、UPS不间断电源及网线(当时

用的是同轴电缆),一个Modem。软件有Matlab,VisualC++,Microsoft Word,Windows

2000操作系统(当时还没有学会Visio,其它软件好像就没有什么了)

>从学院的机关里借了一台HP的Lasier Jet6.0打印机

>.......

  这么多东西当然不是人力所能承受的,还好学校给了辆不大不小的车。


  一却准备就绪,我们就入住了学校南门外的招待所里(以前条件一般,具说现在已经改建的

上档次了哈哈,一般人住不上)。老师告诉我们第二天早上8:00从网上Down题目,但不知道是

谁传来了一个消息,说晚上题目就有可能从网上上着。于是整个晚上我们都没有睡安稳,时不时

上一下网,看一看能不能下载赛题了。太是最终还是在第二天早上8:00才搞到题目/


  数学建模竞赛一般有三道题目,其中有两道是本科组的,两道是专科组的。专科组与本科组

有一道题是相同的。题目分别是:血管的三维重建,公交车调度问题。


  这两道题得选一道做。选哪一道呢?仔细研究了一下,我们发现,公交车调度是一个最优化

的问题,而血管的三维重建偏重于算法。与是我们三人毫不犹豫的选择了血管的三维重建。附带

说一句,原因是什么呢?因为我们曾在一年前也做过一个最优化的问题,那一次是钢管运输问题

,做的奇差,于是大家心有余悸,尽量不选这类题目。(下面附上此题目)

==============================================================

题目见此帖:

http://www.shumo.com/newbbs/dispbbs.asp?boardID=3&ID=87

===============================================================


  血管的三维重建,遇见的第一个困难就是----怎么把这些bmp的图像给读进来,存为二进

制的矩阵?一开始,我们去图书馆找到了《bmp文件格式》的书,准备利用C程序把bmp给读出来

。刚准备着手去做的时候,我们却意外的发现Matlab中有现成的函数imread可以使!真是天助

我也,马上把所有100张bmp图片给读了进来,把每一个切片图的bmp文件转化为一个512×512

的0,1矩阵。并利用save函数,打开ASCII开关,把每一个矩阵存都存为了txt的文档。这样,

C程序就可以直接使用了。


  在上面的过程中,我们发觉题中给的bmp的命名不太好,它是从0 ,1 ,2

......到99的,我们把这些名字改为了01,02,03,04,....99,把所有的文件名都改成了两

位的,方便操作。


  接下来就是如何得出结果了。首先我们在图书馆里查了很久,看有没有论文解决相类似的问

题。不但要查中文的,还要查英文的。顺便说一句,英语真的很重要,在网上,英文更是当之无

愧的霸主,想利用网络查找资料,英语不好则寸步难行。我们发现了医学上的CT成像技术有可

以借鉴的地方。这些资料不一定有用,但能够很好的开拓我们的思路,花时间在上面是值得的。


  然后,我们想啊想啊,不停的想来想去,并且用ACDSEE把这100张bmp的图像放幻灯版似的

正放倒放,还用像皮什么的模拟成血管,弯来弯去。最后,凭直觉猜测---能够被切片包含的半

径最大的圆的半径等于原始球(形成包络的球) 的半径。


  于是我们开始了分头的工作,一方面一个人去证明这个结论。另一方面,开始编程实现这个

想法。


  在编写程序的过程中,我们还延升出了两个假设:可以被切片包含的圆的半径一定小于等于

原始球的半径;不能被包含于切片的圆的半径一定大于原始球的半径。呵呵,利用这两个假设,

就很容易的用二分法搞定了这个程序。不过程序运行起来可不轻松。我们把程序分到三个机子上

工作,每一个机子上算一部分图,这也算是并行式算法了吧(并行算法可是东点军校的招版菜)

。就是这么算,也用了一个晚上的时间。在其间,我们还修改了一点算法,重新算了一遍。的确

,算法是要不断改进的,请看这句:[因为所给数据精度有限,所以包含于切片中的以原始球的

半径为半径的圆可能不止一个],这就是在算法实现过程中发现的。一开始,是很难想到这些细

节的。


  还提一个细节,用Windows console程序,或是用Dos程序(turbo

c)编写这个程序很难。因为我们最小就要用到512*512的矩阵,在算法编写的过程中,为了方

便,还会用到更大的矩阵。但是Dos是不支持这么大的矩阵数组的,所以建议大家都编写32位的

Windows程序。


  我们提了这些假设,要完全科学的证明可真不容易。有时候,他认为理所当然的事情,我认

为应该证明出来;我认为逻辑混乱的证明,他确认为完全正确。呵呵,于是,我们争论一会儿,

证明一会儿,再交流一会儿,再争论。一次,我争论的冒火,心就好像要爆炸了,心想,这竞赛

我不做了!我回学校!我为什么要和你们合作?我为什么要迁就你们?我不干了!我强忍着,没

有说话,走到窗前,仰头看了看外面的蓝天,突然间想起了那首歌--[蓝蓝的天空,是谁的身体

...],我慢慢的哼起来,一刹那,一切都清静了。我默默的坐到电脑旁,继续编起了程序...


  第一天晚上睡了4个小时,那个晚上睡了2个小时。算完之后,就只有一天了。第三天晚上

,没有睡觉,因为要赶论文。


  由于我们不怎么会用Word,图表的编号、排版都是纯手工的,太苦了,唯有身在其中方能

体会呀。经过了大量体力劳动,论文完工了,来不及仔细检查,就打出来上交了。刚交完,我们

就发现了的图的编号命名出了点儿错误,唉,大家谨记我们的教训!


  顺便说一点儿做数学建模题的小经验。

1.随时记下自己的假设。有时候在自己很合理的假设下开始了下一步的工作,我们就应该顺手

把这个假设给记下来,否则到了最后会搞忘记的。而且这也会让我们的解答更加严谨。

2.随时记录自己的想法,并且不留余地的完全的表达自己的思想。在比赛后,老师讲评优秀论

文时,有很多同学常常抱怨,这个想法我也想到了的啊,就是没有表达出来,或是没有表达清楚

。但常常就是这一点别人没有表达清楚的东西,促出了一篇优秀论文。

3.要有自己的特色。这么多数学建模竞赛论文,凭什么让老师们投自己一票?当然得有自己的

特色了。通俗点儿,就是要有自己的闪光点。
 楼主| 发表于 2012-6-8 17:42:34 | 显示全部楼层
祝大家在比赛中都能取得满意的成绩!
发表于 2012-9-6 13:07:36 | 显示全部楼层
写的非常好!
发表于 2013-4-27 23:14:52 | 显示全部楼层
写的不错  可惜现在才看到  我要努力2013
发表于 2022-11-14 23:24:37 | 显示全部楼层
好好好好好好好好好好好好好好好好好顶
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

小黑屋|手机版|Archiver|数学建模网 ( 湘ICP备11011602号 )

GMT+8, 2022-11-28 16:31 , Processed in 0.083288 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表