我和数学建模
数学建模是我们学校开展的一个非常成功的大型竞赛活动,也算得上是我们学校的一个拳头产品。作为一个参加过并取得一定成绩的数学建模老队员,我想在这里谈谈的我经历我的看法,希望能够给有志参加此项活动或对此项活动有兴趣的学弟学妹们提供一些了解的机会和建议吧。
初识数学建模(mcm)
其实我早在上高中的时候就听说过这个竞赛了。我一直对数学比较有兴趣,当时就幻想着大学的时候也能够一展身手。大学时进入了我们学校计算机专业,当时教我们高等数学课的老师是现在的理学院副院长朱士信老师。有一回上课时,他提到了这个竞赛,并且告诉我们这个竞赛在我校已经开展多年,而且一直做得很不错。可惜具体哪一年开展的我已经记不很清楚了,只记得大概是在90年代初吧。大致说来,参赛队员三个人一组,一般是在三天三夜的时间,给你一道题目,这道题目通常都有实际的背景,而且一般都没有标准答案。这三天三夜时间,你可以不睡觉不吃饭(说得有点夸张),可以去图书馆寻找任何的数学书籍或其他相关书籍,可以去请教任何一名老师或同学,可以在网上任意寻找你所需要的资料……总之,只要三天三夜之后,交出一篇论文,给出一个切实可行的解决问题的方法就行。我们学校开始此项活动没几年就取得了不错的成绩,首先是在全国赛(cmcm)中,有一些队成功的获得了全国赛一等、二等奖。而后又有一些队在美国赛(amcm)中获得了一等奖。这在全国高校来说是非常了不起的事了。
大一时只是听朱老师做了一些简单的介绍,并没有真正了解。后来我大一下学期,也就是99年美国赛消息出来后,那一年是我们学校做得最好的一年,获得了两个美国赛一等奖,取得了全国第7的好成绩。还记得当时学校专门在工会俱乐部小礼堂里开了个表彰会,虽然有幸参加会议的学生不多,但校长和学校主要领导都来了,专门给当年参加比赛的同学颁奖。我当时有幸作为一个学习成绩不错的学生参加了表彰会,更加剧了我参加mcm的愿望。
选拔队员
我们学校数学建模完全由理学院负责组织的,通常是在每年的4、5月份,从当年大二的学生中进行选拔,一般第一次会选拔出30多个人。当年大二的学生,只要愿意,都可以报名参加选拔。不久我进入了大二,参加了第一次选拔。这一次出的卷子题目都是高等数学、概率论、线性代数的内容。说出来不怕大家笑话,我当时并没有通过第一次考试。不过这并不要紧,我在这里可以告诉非常想参加的同学,如果你没有通过这次考试,完全可以在训练时去旁听,并且告诉老师你希望参赛。负责的老师是理学院院长苏花明老师等四名老师。苏老师很好讲话,当时我就是这么做的,他非常爽快的答应了。现在想想,如果我当时放弃的话,可能我们学校今年就会少一个二等奖了。呵呵。
不过我还想告诉大家,参加数学建模是非常苦的。你得学很多知识,这要放弃不少玩的机会;参加美国赛,你得在室友都回家后独守空房,恨恨的想如果不是MCM,现在应舒舒服服在家歇着或和亲戚朋友一起玩去了;你还可能要承受失败的打击,给你一个成功参赛奖,虽说重在参与,但只是说说而已,你不会真这么想吧?
建模课及第一阶段训练
参赛的队员在第一阶段训练时上的建模课其实和当时学校开的公众选修课中的数学建模课是完全一样的。时间大约是从5月底开始,上到暑假前。利用双休日上课。教课的老师也完全一样。这个阶段,大家主要学习了层次分析法,图论,概率统计中的最小二乘法等常用建模方法,以及一些简单的建模技巧等等。这个时候,我才渐渐了解数学建模。从前我一直考虑过数学究竟有什么用,可总想不出直接的用处,只知道数学是解决问题的工具,直到这时才发现原来数学可做这么多的事,真是有大开眼界的感觉。
第一阶段一个月的训练结束,又进行了一次选拔。这回是真刀实枪的给出四道数学建模题目,然后给大家一个礼拜的时间,从中任选一道做,最后交上去一篇数学建模论文。这一次选拔是至关重要的,能否选上,将会真正决定你能否去参加比赛。
还记得当时我有些紧张。可能是我太在意这个比赛了吧。我最终选择了第一道题,那道题是用层次分析法给全国各所高校排名,最后只要给出排名前十的学校。去年那个时候网大和中国青年报一起搞了个全国大学排名,在社会上引起了很大反响。那道题就是要我们参考中国青年报,作出一个类似的排名。
作为计算机系的学生,和别的参加选拔的同学比起来,我的长处就是计算机操作非常熟练,离散数学功底也很好。相比较而言,连续数学的工夫就差多了。那道题正好适合我。而且我还是个网虫,对于网络的操作也很熟悉。结果没费吹灰之力就在网大上找到了我所需要的数据。想想别的选这道题的同学可能还得到处借中国青年报,我可轻松多了。不过对于数据的处理,我还是花了不少功夫,那个礼拜编程序编了好几个晚上到一点,编得头昏脑胀的,最后总算一切搞定。我打印了整整一张纸的结果,论文也是完全在电脑里写好打印出来的。交卷子的时候看着别的都是用笔写出来的,心里也颇有一种骄傲感。当然,这一点完全不能决定论文的质量好坏,不过我的这个长处再后来参加比赛时却起到了不小的帮助。
然后就是漫长的等待。说漫长,其实也不漫长,大概几个星期吧,只是我当时心里等得太焦急了。总算在即将放暑假的时候,看到东马路报栏上贴出了通知,大红的纸上这回只剩下24个人了。幸运的是,这回我的名字也在!后来了解到,我那篇论文不仅通过了,而且还得了优。不过想想自己花了那么大力气,也是该得优。
放暑假前,苏老师又把我们这剩下的24个人集中了一次。大家都很高兴,然后苏老师一口气给我们发了一大堆过去的优秀论文讲义和两本数学建模书,让我们暑假回去好好学习。下一个阶段训练的时候就得以这个为主了。苏老师还向我们吹牛道:“我们学校竞赛后勤工作可是最好的,别的学校哪会白送这些书啊。科大同学都得自己掏钱买。这还不止呢。等到下一个阶段训练的时候,会给每个同学发100块钱补助,大家到时候好好加加餐!”
那年暑假我没怎么玩,但看了不少书,同时又特意好好训练了一下自己的计算机编程水平,过得挺充实的。相信别的队友也都过了一个充实的暑假。
建模课及第二阶段训练
大约暑假结束前两个星期,大家就回来开始了第二阶段的训练。这一次和上一阶段训练完全不一样了。上一阶段是以老师讲为主,大家在下面听。这一回是要让我们过一次“当老师”的瘾,要让我们先看书上一些指定的内容,然后上去讲,别的同学在下面就他讲的内容进行讨论。每个同学都有机会。
起初我不大明白这样做的道理,后来才逐渐悟到,这样做是很必要的。数学建模是三个人的比赛,而不是一个人的。也许对于某个问题,你自己看得很透彻,但如果你无法把你的观点清楚的讲述给你的队友听,无法让你的队友清楚的了解你的观点,那么即使你的方法再好,再有见解,也是徒劳的。何况你不可能对一个问题看得非常透彻,这样,你就得把你闪光的思想说出来,和你的队友一起讨论,让你闪光的思想更加闪光,最后建出漂亮的模型。这一阶段的训练或多或少就是为了准备这些的。
这一阶段也才真正接触了许多数学模型。为了能让大家对数学模型由一个简单的感性认识,在这里,我举一些简单的数学建模的例子。
相信你小时候一定听过这么一个智力故事:一个人带着一只狼,一头羊,一棵白菜过河。船上每次只能放两件物品,并且人不在的时候,狼会吃羊,羊会吃白菜。问怎样安排,才能顺利的过河?你也许稍微想一下就能给出答案,但你可能想不到这道题可以用图论中的二分图来解决吧?可能也想不到还可以用平面直角坐标来做吧?
还有一个听起来有点荒谬的故事。甲乙两个人在路上行走,这是后突然下雨了。甲急忙向前跑去,乙仍然不慌不忙的走着。甲问乙为什么不跑,乙说:当你跑的时候,本来不会落到你身上的雨滴反而会落的你身上,既然如此,还不如不跑了。乙的话听起来很荒谬,其实还是有一定道理的。大伙记住了,以后再遇到这种情况,只要已和当时的风速在水平方向上的分量速度保持一致的速度行走,就可以使总淋雨量最小。至于原因,可以用一些很初等的知识建模。
椅子问题——为什么椅子通常都是四条腿不是三条腿五条腿?为了能平稳的放在地上。那么,为什么四条腿就能平稳的放在地上?这个问题可以用解析几何的方法来证明。
冷战期间美苏两个大国制造了可以毁灭地球几十次的核武器,还签署国著名的《反导条约》。那么,是什么使两国拼命制造核武器呢?如果不是苏联解体,冷战结束,这种情况会一直继续吗?这就是军备竞赛模型。
还有一大类模型叫微分方程模型。其实,每年考研数学最难的那道应用题,基本上都是微分方程建模。可见参加比赛对考研也有些帮助呢!比如香烟过滤嘴问题。十几年前的香烟是没有过滤嘴的,现在的香烟几乎都有过滤嘴。那么,过滤嘴有什么用呢?是为了好看?是为了显示这支香烟比较高档?都不是,是为了让你一方面品尝到香烟的味,一方面又让毒物(主要是尼古丁)尽量少的进入你的体内。那么,过滤嘴有多长,用什么材料制造,才能够在满足经济效益的前提下,更好的满足你上面两个方面的要求呢?
例子还有很多,这里只随便举了一些。如果你对此有兴趣的话,那么,将来就投身这项事业吧!你会发现更多有趣的问题。
组队和赛前模拟赛
组队是在第二阶段训练结束,也就是9月份刚开学的时候。组队的原则完全是自愿,只要你愿意,别的两个同学也愿意,你们三个就能组成一队。一般说来,组队应该尽量做到三个人的实力各有所长,同是三个人也应该互相比较了解,以便比较顺利的交流。
当初组队的时候我还费了一番波折。我们参赛的同学中有一个叫做阿不的同学(不好用真名,就用他的网名吧),和我是一个班的,我们俩彼此互相十分了解。他起初非常希望和我能在一个队,因为我的编程能力在我们专业首屈一指,这个长处在比赛时是挺有用的。但是我考虑到我们俩一个专业,知识结构一样,感觉不大好。所以我起初想找外专业的同学组队,就没答应。后来由于种种原因,几乎是在最后一天,我又改变主意决定和阿不一个队了。还有一个队友叫老麦(姑且这么称呼他吧),材料系的,是阿不主动邀请他的。当时我对老麦的实力不大了解,还有些担心,后来发现幸好我最后改变主意,我们三个简直是“黄金组合”——说得有些夸张——但至少是非常有实力的一个队。老麦擅长连续数学(主要是微积分)和概率统计,对小问题细节把我比较好,动不动就能推出个函数式。我作为计算机专业,计算机操作和编程能力极强,而且擅长离散数学(主要是图论、组合数学之类),对大问题感觉有时候比较强。阿不则是离散数学连续数学功夫都不错,因此当我和老麦由于实力原因无法在某个问题上沟通时,阿不就成了我们的“翻译”。不仅如此,阿不英语特别好,这在美国赛时起到了很大用处。而且后来在比赛中,我又渐渐发现我们三个配合也很默契,要知道,如果不能很好的交流,即使三个人水平在高也不管用。举例来说,当初比赛时我们中还有几个MM,不过幸好阿不没有去找某个MM代替老麦,因为我这个人比较害羞,一和MM说话就脸红(哈哈真不好意思),要是真和一个MM配合的话,真不知道实力能不能发挥出来。当然个人情况不同,我们那些队中还有一个实力也许比我们还强一些的队,当中就有MM。如果您将来有幸参加这个比赛,组队时一定要考虑我上面说的几点。
就这样有些糊里糊涂的组了队。9月中旬进行了赛前最后一次模拟赛。这次可不象前面几次模拟那样单干了,大家按照分好的三人组来做,大概有将近一个礼拜的时间。题目是以前全国赛的题,有两道供选择。其中一道是锁具装箱问题,还有一道是电影院座位安排问题。我和阿不老麦商量了一阵子,决定做后面一道题。可不要小看电影院座位的安排,大家都有这样的经验,如果你看电影时坐在第一排,显然是不爽了。人眼的视角是120度,接近或者超过了这个限度,你就不能一次把屏幕上的东西尽收眼底了。那么第一排和屏幕距离安排多少才合适呢?另外如果是坐在边上看得太斜,显然也不舒服。那么这个最大限度又是多少呢?还是就是前后座位相距应该是多大才合适,太小了人坐的不舒服,太大了浪费空间。再就是前后座位的楼梯高度应该是多少才合适呢?
第一天,我们三个人独自想了想。第二天上午上完课,下午没课,我本来打算回家再想想,突然接到阿不一个电话:“快,老麦在主402找了个位子,我们等会去讨论讨论。”“不是吧,”我说,“我刚到家唉。”“少废话!”($$#!!#)阿不对我一向不客气,“赶紧来!!”
没办法,只好匆匆赶去了。由于是中午时间,偌大一个402,空荡荡就我们三个。
“太酷了!”阿不一看到我就说,“老麦推出来一个函数式,往里面一代就出来了。”这么神奇?老麦立刻把他的理论讲给我听了一遍。哇!也不知他怎么一阵积分求导,我都看傻了。我木然的看着阿不,没想到他居然冲着我傻笑:“咋?不明白吗?”于是又给我解释了一遍,总算有点明白了。不过这时老麦又发话了。“等等等等,我突然发现了个问题……好像有点不对……”
疯了!我说:“我也想出了个方法,可以用计算机编个程序,一步步试步长,最后就可以找到最佳距离了。”于是把我考虑的说了一通。阿不很快理解了,不愧是和我一样学计算机的,但是老麦又傻眼了:“计算机还能这么用?那编程好麻烦吧?还一点一点瞎碰?”
faint!要知道计算机就是这么用的,用计算机编程求积分,可以做出一切积分题。基本思想就是一步一步近似,一点一点碰。至于那个程序,在我看来小菜一碟。唉!老麦果然和我思想不同,我明白的他不明白,他明白的我不明白。没办法,阿不又给老麦解释了一通,他总算有些明白了。
折腾了一中午。下午,我们又跑到二楼找了个教室。由于当时是9月份刚开学,上自习的同学非常少,开的课也还不多,于是乎很容易又找了一间空教室。把大门一关,找了一些粉笔,就在黑板上劈哩叭啦画了起来。初步决定,我们建两个模型,一个按老麦的思路,一个按我的思路。这道题的题目给我们作了一些简化,把三维的电影院简化成二维的,因此不必考虑边上位子的情况,不过还有许多细节问题得讨论。比如座位的安排是按照一层楼一层楼的形式,还是单纯按照一级一级楼梯的形式。还有楼梯的跨度是始终一样呢,还是按照某种函数变化呢?如果高度完全一样,就是一条直线上去,否则可能是以某个形式的曲线上去……结果越讨论遇到的问题也越多。
最后问题集中到了楼梯的跨度应该是多少上。我起初凭感觉,应该是肩膀到头顶的高度,这样才能保证前排的人挡不了后排的人嘛,这样一算大概有30cm吧。但是老麦坚决反对,说这个高度太高了,上下楼梯不方便不舒服。争来争去,居然始终无法达成一致意见,真见鬼!我们俩无助的看向阿不,只见他神经质似的,一会儿走上讲台,一会儿又跨下讲台,一会儿又走上讲台,一会儿又跨下讲台……
“咋了?”老麦问,“你是不是不舒服?”
“我正在做实验,”阿不一本正经的说,“要知道实践是检验真理的唯一标准。我正在看怎么下楼比较舒服。”
Faint!!!
不管了!正好我当时又想到还有一点小问题没解决,便拿了个粉笔在黑板上演算了起来。
突然,阿不似乎想起了点什么,高兴的对我说:“哈哈!你在这里等一会,我和老麦出去一下。”说完,拉着一头雾水的老麦就跑出了教室。
搞什么嘛!不管他们,我继续向我的……
过了一小会儿,只见阿不和老麦兴奋得回了来。一进门阿不就对我说:“我和老麦达成一致意见,高度应该是15到18cm!”
“为什么?“我奇怪的看着阿不,突然发现他手里居然拿着一把塑料尺!
“呵呵,我们刚才亲自到二楼楼梯上丈量的,绝对准确!”阿不得意洋洋的说,“照你那个高度,就等于一次下两级楼梯,怎么样啊?要不要去试试下得舒服不舒服?”
“行了行了,我服了你了……”
……………………………………………………
折腾了几天,问题总算一点一点解决了。老麦的模型彻底建好了,我的模型也建好了,程序也遍出来了,结果也计算出来了。阿不也把我们的模型整理成了论文,就等着交卷了。
可惜交卷那天我身体偶感不适,没有去。第二天上课,阿不一见到我就兴奋的说:“哈哈!昨天你没去真是太可惜了!没看到一场好戏!”
“什么?”
“昨天有个队做的和我们同样一道题,一开始就犯了个错误,而且就是我们当初讨论过的一个问题。他们居然还津津有味得做了一大堆,还上台讲的好像有头有尾的。结果老麦当即指出他们的错误,可惜老麦讲了半天没讲清楚,我又上去一阵讲,直把他们讲得面红耳赤下不了台。哈哈!”
呵呵,看着阿不那个兴奋的样子,就好像我们已经拿到了大奖一样。阿不毕竟年龄比较小,有时候还有点小孩脾气。大家都是学生,有错误是很正常的嘛。而且后来的比赛结果证明,他们的队的实力可能比我们还强。
总的来说,我们三个人第一次合作,合作的还算不错。但其实当时暴露了一个问题,可惜当时我们三个人都没有意识到,后来我们第一次全国赛取得的成绩不大好,现在回想起来,可能与那个问题有很大关系。不过这只是我个人想法,可能阿不和老麦到现在都没有考虑过这个问题。
2000年全国大学生数学建模竞赛
序言
比赛是从9月26日开始,29日上午交卷。不过题目25日下午就已经拿到了。这回大家得真刀实枪的做了,心里既有些紧张,又有些兴奋。
题目很新颖。像以前一样,还是有A、B两道题供大家选择,B题是给出一个地区的地图以及各种各样的参数,要在这个地区铺设天然气管道,给出一种最优的铺设方法。由于这道题当初我们没有选择,现在印象不深。我们当初选择了A题。那年6月份有一个轰动世界的大事情——人类基因组计划中的DNA全序列草图完成,当时A题就是和它有关的。DNA序列完全由A,T,C,G(腺嘌呤,鸟嘌呤,胞嘧啶,胸腺嘧啶)组成,看起来排列乱七八糟,但还是有一些规律可循的。题目给出了20个已知类别的人工制造的DNA序列,这20个序列分为两类,其中前10个为A类,后10个为B类。然后还有20个不知道类别的人工序列,要我们从前面20个中找出规律,判别后20个的分类。接着又给出了182个自然DNA序列,他们都较长。再用我们的分类方法对他们进行分类。
当时理学院为我们提供了不错的条件,大家可以集中在科研楼5楼做,几个办公室随便我们挑,而且还有一个机房,里面有许多台配置不错的电脑,足够我们9个参赛队同时使用了。同时又说,如果大家自己有地方的话也可以到自己的地方做题,只要把联系方式丢下来就可以了。
25号下午拿到题,我们商量的第一件事情就是这三天我们应该在哪里做这道题。当时我们三个意见一致——不在理学院做,自己找地方。主要是因为自己找个地方,感觉能比较安静的做题。但找哪里呢?然后便想到了找租房子的同学,看能不能商量一下,让哪个租房子的同学把地方让给我们用个三天。可惜我和阿不都没有想到合适的同学,最后还是老麦说他有同学可以找找看。
拿了题以后大家就散了。相约明天早上7点半在主楼大厅见。
晚上,我试图能找一些有用的资料,可惜找来找去并没有发现多少特别有用的东西……
第一天
9月26日早晨7点半,主楼大厅。
天下起了淅淅沥沥的小雨,似乎有意和我们作对。我是第一个赶到主楼大厅的。拿着一把雨伞,背这一书包估计可能会用到的书,站在门口,一边想:他们俩怎么还没来!
没想到两个人居然同时到了。老麦说:“走吧走吧,先去我同学那里。他说了他的电脑我们也可以使唤使唤。”听起来不错。
可惜他同学那个地方巨不爽!我不知道那个地方具体叫什么名字,但我想工大南区的同学大部分应该都知道那里。在管理学院办公楼的西面,有一大片空地,顺着空地往南走到头,有一片居民区,就在那里。那天偏好天气不好,那一大片空地到处都是泥泞,直走得我们三个人都大喊痛苦。好不容易到了,老麦的同学还在床上,看来他们上午前两堂是没课了。看到我们来,他非常客气的给我们让座,然后就出去了。
总感觉有点别扭,还是赶紧开始吧。我们当时还没决定做哪道题目,于是先商量做哪一道题。A题到是对老麦胃口,他拿手的统计完全可以拿来使唤使唤。B题到是适合我做,显然是道图论题。但是又略显复杂,我想了半天居然不知道从何处下手。不过阿不这回偏向做A题,我想了想B题下不了手,A题看起来挺有戏的,于是一致决定做A题。
那年也真是出鬼了!不仅我们选择了A题,我们学校参赛的其他8个队居然全选择了A题!这大概算得上是历史上少有了。不仅如此,听说科大几个队只有一队选择了B题,其它的也全是A题!大家都选一样的题目,显然是吃亏了。但当时我们可不知道别的队做了什么题。
既然决定A题,那就做吧。不知道为什么,总是感觉别扭。也没什么具体的思路。我想先看看老麦同学的电脑吧,把准备工作做一下。结果发现他电脑里什么都没有,看来都要我现装了。唉!
折腾了一上午,也没什么进展。我说我们先去吃饭吧。偏好这时候雨下大了,于是乎,经过了比早上更加泥泞的路,更加叫苦不迭。阿不想了想,说:“这里不行,交通不方便,老麦的同学晚上睡觉的时候我们也不好打扰了,还是换一个地方吧。”我说:“怎么?你有地方吗?”
其实我早就猜到阿不可以找到好地方的,他老爸老妈都是我们学校老师,肯定有办法的。果然,阿不说昨天晚上他老爸问他要不要把实验室借给我们用。原来他老爸自己有一间实验室,在机械楼。还有电脑在里面可以供我们用。哈哈!太好了!
中午随便吃了点东西,我们便去机械楼了。阿不老爸正在实验室里等我们,见我们来,和阿不交待了几句,又让他带的一个研究生给我们搬了一台电脑来,借了一个猫(太幸福了!),就先回去了。我看看这间实验室,前后两间,都归我们用,可以说相当大了。渴了可以自己烧点水,晚上冷的话居然还有空调。而且位置也好,径直往西走经过东楼主楼西楼就到理学院了,往南走不了多远就是超市,可以去买干粮吃,再走走就是食堂了。或者往北走,立马就是工大校门外大大小小的饭店了。而且还有电话,联系起来也方便。更要紧的,哈哈!可以上网!否则我这个网虫还不给憋死。条件真是太好了!真有阿不的!
然而也并非一帆风顺。下午我们要到理学院集合,离下午还有一阵子时间,我便摆弄起了电脑,先装上我必用的pascal语言和office98,然后想试试看上网。谁知却发现不知道为什么连不上。我使出浑身解数,仍然无法搞定。唉!今天我这个电脑高手算是栽了。
没有网的话无法在网上查资料,只是麻烦了一点。罢了!
下午,我们三个一起去了理学院。其实只是去向老师说一下选择了哪道题,由于别的队都在那里做题,正好还可以和他们交流交流。我和阿不正在和别的队友讨论,突然发现老麦不知道跑到哪里去了,找了一圈,发现他正在苏老师办公室里和一个也是学生模样的人在聊天。
“呵呵,”老麦介绍道,“这是我们队的教练。”
其实比赛的时候每个队除了3个队员以外,还有一个教练,一般情况下,教练是由苏老师他们几个担当的,当然也不绝对如此。经常会有一些从前参加过比赛的老队员担任教练,不过前提是他们现在是我们学校的研究生。看来这回我们队就是这样了。
老麦正和教练讨论得热闹,一会儿大谈特谈他对这道题已经有的一点点思路,一会儿又静静凝听教练的意见。正巧这时候杜学樵老师要来带我们各各队一起去图书馆借书,老麦说:“你们两个去吧,我再和教练聊一会儿。”
行啊。我便和阿布,还有杜老师,以及别的队一帮同学一起向图书馆进发,一阵乱翻。阿不左挑右挑,最终找了一本概率统计的书,可惜我一本书都没看上。
评论