这篇博文主要是谈谈自己在2018年九月份的全国大学生数学建模竞赛CUCUM和2019年1月份的数学建模美赛MCMICM中的一些收获以及对于大三上学期的一些感悟与总结吧。
这是一篇客观存在比较少,主观虚无比较多的博文(就是没什么干货,光有我自己的一些干扯)。
国赛
夏天的时候突然想参加数学建模竞赛,拉拢几位兄台一起比赛,结果有的有事要忙,有的没兴趣。最终我们队伍由一位上一届的计科的学姐和同届的一位能动同学以及来自电信的我三个人桃园结义组成,确实我们不是同年同月同日生,但却在做不出数模题的时候想要同年同月同日原地哭唧唧。
数学建模是基于一个实际的问题,用数学的方法对问题进行描述、分析的过程。数学建模的队伍一般有三个人组成,三个人分别主要负责建模、编程、写作。前期我们的任务分工是计科学姐当仁不让地负责编程工作,至于我和能动同学谁来写作、谁来建模最终由掷硬币得出,我来当写手,能动同学来当建模手。
数学建模的思维
暑假的时候我们三个人都学习了数学建模的一些基本知识,建模建模最重要的当然是在于模型本身啦,三个人的思路相互补充才能建立相对比较完善的模型。这里不能不说姜启源、谢金星的《数学模型》这本书非常棒,书中内容来源于现实问题,关于这些问题建立的模型总能给我一种在揭示世界运行原理的感觉。
比较有意思的是对于很多问题我们的直觉型思考和真正通过数学模型的分析求解会有很大的偏差。这本书在B站有相应的课程,谢金星老师讲的很好。印象挺深刻的是一个关于公平席位分配问题。
假设某学校有3个系共200名学生,其中甲系有100名学生,乙系有60名学生,丙系有40名学生。假如学生代表会议设20个席位,公平又简单的席位分配原则是按学生人数比例分配,显然席位分配情况为甲: 乙: 丙 =100 : 60: 40 = 10: 6: 4。
现在丙系有6名同学转入甲、乙系,三系人数比为甲: 乙: 丙 =103 : 63: 34 = 51.5%: 31.5%: 17%。按比例分配的话那么三系的席位比应为10.3: 6.3: 3.4,但由于这个实际问题是不存在小数情况的,于是在取得整数的19席分配完毕后,三系同意按照所谓惯例把第20席位给比例分配中小数部分最大的丙系,于是三系席位分配情况仍为甲: 乙: 丙 = 10: 6: 4
有20个席位的代表会议在表决提案时可能会出现10: 10的情况,于是会议决定下一届增加一席,共21席。三系人数比仍为甲: 乙: 丙 =103 : 63: 34 = 51.5%: 31.5%: 17%。按比例分配三系的席位比应为10.815: 6.615: 3.570,参照惯例的话三系席位分配情况为甲: 乙: 丙 = 11: 7: 3
这个结果显然对丙系是非常不公平的,系人数比例不变,总席位增加1,而丙系却由4席减为3席。
问题出现在所谓的按照惯例分配上,即把按整数比例分配席位后的剩余席位按照小数部分的大小来分配。
实际上由A.Hamilton提出的这种比例+惯例,称之为最大剩余法或最大分数法的席位分配方法在美国国会1850——1900年的众议员席位分配中(按人口比例每个州应分得几个席位)多次被采用。它被质疑的一个理由就是出现上述例子中的所谓的席位悖论——总席位增加反而可能导致某洲席位的减少。
最大剩余法还有一个重大缺陷是所谓的人口悖论,某洲的人口增加较多反而导致该州的席位减少。假如例子中甲、乙、丙三系人数分别变为114、64、34的话,按最大剩余法21席的分配结果将是11,6,4。结果就是甲系人数加1,席位数不变;乙席人数加1,席位数减1;丙系人数不变,席位加1。
为了优化看似公平的席位分配实则有很大bug的方案,美国国会把这个问题交给了哈佛大学数学系某知名教授(名字忘了),教授给出了250多种的优化后的方案。核心思想是建立衡量分配不公平程度的指标——相对不公平度,制定席位分配原则时应使它们尽可能小。
谢金星老师在课里边说:没有绝对的公平,只是看你站在哪一方。这或许就是所谓的利益相关???
最后老师还提出了一个挺意味深长的问题——得到的席位多就一定有权利吗?
学习怎么分析问题、建立数学模型能使人学会相对冷静、深入的思考吧。但是在实际生活中,碰到某些目标和执念的时候,后天所训练出的理性很快就没了,人一下子就会被直觉型思维带出来的各种情绪所主导。所以我在想怎么才能在面对具体事情的时候还能做到客观的用理性来分析呢?或者做到尽量不受干扰呢?
竞赛环境下的紧张
由于我是写手,暑假的时候,我就学习了怎么使用latex。我们组在假期进行了1.5次的赛前模拟。第一次模拟的时候,我们选的是2007年A题,关于中国人口预测的一个题目。我们想了两天,实在是无从下手,然后放弃,这算是0.3次吧。然后又做了一次,我们选择了2008年B题,关于怎么评价高校学费合不合理,情况比第一次好点,但最后还是无从下手,算是0.4次吧。第三次模拟我们选了2009年B题,关于病床调度分配的,我们想到了排队论、cpu调度原理什么的,但可能因为模型不好,代码逻辑有问题,出的结果有负数,显然不对,这次模拟就算是0.8次吧。
在真正的比赛中我们选择了关于高温工作环境下隔热服传热情况分析的A题。礼拜四晚上比赛开始,礼拜五我和能动的同学各有两节课,能动同学他刚好有《传热学》这门课,因为我是写手我也必须清楚原理才能在论文中说明白。礼拜五晚上我在B站速成传热学。
坦白讲,这题挺刁难人的,礼拜六,建模手的式子还是没有完全出来。我想起来了之前计算方法、数理方程相关的内容又一起编了一编。最终我们找到了一篇重要的文献,结合了一下里边的思路,才勉强做出了一个我们没有很明白的式子。礼拜六下午整个人还特别想吐╯︿╰
礼拜六晚上我忙着开始写论文,学姐找相关求解的方法。我从零点睡到一点半,学姐从三点睡到五点半,礼拜天早晨我们才完成赛前定的时间节点计划中礼拜五晚上应该做的东西。
这个时候我有点想放弃了,学姐跟我说现在放弃,最后一定会后悔,我们一定要完成。于是礼拜天三个人肝了一天。最后晚上的时候学姐跑完程序有急事先走了,我和建模手一起弄论文。我忙着排版,写文献引用,所以建模手最后也参与了写作,他完成了摘要、优缺点、结论。不过我们论文中第三问没出结果。
最后我们21:52才上交作品,离结束也就只有8分钟了。其实最后极限操作的时候,建模手在我旁边安慰我,但我整个人有点火,跟他说不要讲话。
交完后才发现论文里一个标号有点问题,我们俩一起回去的时候,我有点低落,感觉准备了一些时间,还熬了这么几天结果就制造了一篇我们自己都不认可的学术垃圾。又是这位建模手佛系同学跟我讲太阳明天照常升起。确实,或许是我稍微有了一些得失心吧。
我们三个以为我们应该是当分母了,10月份的时候我们组被预推国一,最后结果得了国二,我们组确实挺意外的。坦白讲,我甚至有点羞愧,因为感觉自己真的做得烂,感觉自己是个骗子(fraud、fraud、fraud Orz),不应该得奖,内心不安。但是我们组确实准备的挺久的,得奖或许是因为同行衬托???
美赛
比完国赛没多久,我就问俩队友还美赛吗,学姐要考研,到时候可能会准备复试就说不参加了。于是我在一个群里看到有个人问有没有人做美赛,于是我们就组队了。
本来我想换成编程,能动同学来写作,新队友机械同学来建模的。但因为我上学期的课程太紧张了,没时间看算法了,机械同学做过matlab课设,而且我latex用的比较熟练,于是机械同学就担任编程手,我和能动同学的任务分配不变。
寒假留校,主楼暖气低温运行真的挺冷的,食堂吃的简直不想了。
美赛我们做的A题如何生态养龙。我们使用了微分方程模型,关于具体的细节我们争论了挺久的才得出了比较优化的结果。比赛1月29号上午结束,28号晚上我在集中住宿的寝室通了一宵肝论文,到早上6:30才去睡觉。就是那种我觉得我一点能写完论文,过了会我看了下时间一点半了,我觉得两点能写完,过了一会两点半了,我觉得三点能写完,过了一会天亮了。
论文中需要提交一封信件,这封信件还有由能动同学写的。
29号上午,我们一起揪了一会儿错误。机械同学要去赶火车,提前走了。我和能动同学一起给官方发提交邮件。
不过第二天我发现我们的论文里还是有点小瑕疵的,算是遗憾吧。
关于两个比赛,感觉美赛更开放,不过美赛官方有点坑,C题题目改了多次,又加上当时美国政府罢工,有一道题给的网站连接进不去。美赛之前出现了两个中国、visa卡盗刷的事件,而且现在美赛97%的队伍都来自于中国大陆了,感觉美赛有点不靠谱呀。
记忆点
比赛中大家的争论最终碰撞出了思维的火花,感觉比赛重在三人的合作,最强的队伍不一定有三个最强的人,但是一定有很棒的配合。
两次比赛中队友都跟我说让我 不要着急、不要着急、不要着急… 确实,我会有容易着急,其实对自己内耗也有点大,最好能改改。
题外话
其实这篇博客应该在春节之前写完的,今天才写完主要是因为拖延。。。(他宛如戏台上的老将军,背上插满了flag.jpg)还有就是正如本人的上篇博文——QQ好友空间爬虫,又要开学了,再不写可能就emmmm…
上学期确实过的比较tough,之前一位朋友发了一条说说,是王安石《游褒禅山记》中的内容:夫夷以近,则游者众;险以远,则至者少。而世之奇伟、瑰怪,非常之观,常在于险远,而人之所罕至焉,故非有志者不能至也。
写的真好,希望自己这学期能够多一些客观存在,少一些主观虚无吧。
另外就是今天修了图床,从七牛云换成了腾讯cos,还解决了其余几个让人有点懊恼的小问题。
想起国赛结束那天晚上,我回寝室插插销,我的插座被烧坏了。美赛结束第二天,去海边,结果踩到了石油,擦不掉。或许我们向宇宙发出讯号,宇宙会有回应。我把这些小事联系起来其实就特别主观虚无,但我还是挺感谢自己依然有些天真古怪的念头。希望宇宙再给我一些回应吧。