博主昨天刚参加完2020年的建模国赛,如果不出意外的话,应该是我本科阶段最后一次参加建模类的比赛,其实应该还有两次机会的,为什么不参加,我后面会讲一讲原因。我也会通过这篇文章,对我大学前两年做一个总结,以及对时间不多的大学剩余时间做一个思考与规划。

你为什么想参加数学建模?

与数模的第一次接触大概是在高三升大一的暑假,当时有个学长回答了我一个现在看来很傻的问题(学长现在依旧是我的榜样),然后就看到学长在美赛吧发帖问美赛成绩什么时候出来,这应该是我第一次知道数学建模这个名词,之前只知道acm。第二次接触是在大一军训结束后,有个15级的学姐给我们新生发言,当时院长介绍她的时候说获得了美国大学生数学建模竞赛一等奖,当时才知道原来我们学校居然还有这么厉害的人,所以我也要向他们学习。当然,大二上学期的数模我没参加,因为线代、概率都没学过、matlab、python也没接触过、latex排版也不会排,去了也是划水,所以我选择了时间晚一点的美赛,然后开始学习一些数学模型,就这样入坑了。

题目做的怎么样?

很多人问了我这个问题,说实话,我真不知道应该怎么回答,因为自己建的模型实在是太low了,所以在这篇博客下面,我只会简单的说明一下我的思路,更多的是杂谈,就当聊聊天之类的。

其实在正式比赛之前有很多小插曲和小意外,甚至一度以为参加不了了。

第一个就是队友的时间规划出了问题,两位队友由于都要加入zhongguogongchandang,所以他们要去上党课,而且过几天就要参加党课考试,还得好好准备,如果考试挂了的话,可能入党什么的会拖到毕业,这是一件很严肃的事情,而且还有一位队友9.12一整天都要上教资的课,所以班导的建议是叫我们别搞比赛了,重心花在党课上,另外9.19的六级也要开始准备了,所以当时就商量说不参加了。

第二个是我的问题,在比赛前三天的晚上,我在图书馆把surface用到没电自动关机后就没管了,然后回到宿舍插上电源开机,刚开始确实可以充电进去,但是过了几秒钟后充电器上的指示灯突然就不亮了,然后电脑就死活不能开机,当时把我给吓坏了。以为真凉了,在网上查了一下,有人说是因为电池过放所以硬件系统采取了保护措施,解决方法就是换电池,但是在微博,很多人说是充电器的问题,抱着侥幸的心态在淘宝上买了个充电器,然后用顺丰航运送过来,插上后,就开机了...在这里还是建议大家不要买微软家的东西了,说实话,真不咋地,还有就是建议大家如果有重要的文件一定要注意备份。

最后因为内心还是非常想参加这个比赛的,因为参加过美赛,那四天四夜里学到的东西真的非常多,所以打算单挑数模,就是数据分析、建模、跑模型、写论文全部自己做,相当于单线程作业。

开题后,看到A题是物理建模,物理十几选手分直接劝退,B题估计是图论+动态规划,虽然我是计算机专业的,但动态规划是永远的痛,不太想在这个比赛里面搞这个,所以最后选的C题,也就是数据分析题,由于去年的C题难点就在于寻找数据,所以在比赛前,也就是暑假准备的时候,我特地学了一点爬虫的知识,就是为了方便寻找数据,结果题目提供了数据,有点不知道是应该郁闷还是高兴。

第一题其实有两个问,第一问就是找指标,然后用题目中的数据来评价每个企业的风险度,可以看成一个评价类问题,我这里用的是熵权法-topsis,当然也可以看成是分类问题,就是用题目中的数据给企业来分类,贷款或者不贷款,这个用决策树很简单,虽然我决策树跑出来了,但是结果和是否违约一模一样,也就是说只要是违约就不贷,如果不违约就给他们贷款,所以我没有用决策树,而是直接语文建模说违约了就不贷款,现在想想,不写上去真是浪费了......

主要卡人的是第一题的第二问,题目要你给这些企业制定相关的政策,也就是你贷多少钱给这个企业,给多少利率给他。这一问其实是整套题的核心,一开始这个点就卡了我很长时间,几乎有一整天都在考虑这个问题,然后在另一位队友的书上,作者好像叫司守奎,发现一个标题叫投资风险还是啥的,里面讲到的模型是双目标规划,一个目标是银行的风险要最低,另一个目标是银行的利润要最大,其实我觉得这个是非常可以的,但是后来跟两个指导老师交流的时候都被否决了,一个老师说这个题不是优化问题什么的,忘了具体说啥了,另一个老师说规划问题很麻烦,如果没写好的话可能一个解都没有,也可能有无数个解,很难调,需要花很多时间,由于我的时间有限,单线程嘛,然后对规划模型也不怎么了解,所以就没有具体研究这个模型(但其实最后肯定是要用这类优化模型的)。我是将每个企业进行排序,然后画了个图,在图的拐点处给企业进行分等级,等级高的就多给点额度,然后少要点利息...(乱搞,瞎编,最大的败笔)

第二题,因为数据集里面没有给企业的信贷等级和是否违约,我的方法是,没有这些,我们可以预测啊,所以就用问题一里面的数据作为训练集,然后建立logistic模型来对企业是否违约搞一个二分类,然后建立多分类的fisher线性判别分析对企业信贷等级做一个预测,后面的过程就和第一问一样了,就是最后分配额度的时候要给出具体的额度。

第三题,这个题主要是语文建模,首先就是第二题中的企业分成几个行业,然后主要就是找相关的论文,知网上这类论文很多,结合论文描述描述新冠疫情对什么什么行业有什么影响,主要是定性方面的,然后再找了找数据,也就是对某个行业的定量影响:

然后把这些因素整合一下,作为一个新的指标带入到模型里面,然后分配额度。

以上大概就是我们的建模的东西了,可以说毫无亮点,其实最大的败笔就是没有用到优化模型,而坐我们对面的队伍,也想到了多目标规划,然后他们讨论,问老师之类的搞了很久很久,终于在最后一个晚上搞出来了,其实建模更多的反映的是团队协作能力,我在这方面确实太弱了。

究竟是哪方面差了?

首先第一点肯定就是团队的问题,我前面说过,其实我们都以为要退赛了,最后在我的坚持下同意参加这个比赛已经很不容易了,毕竟比赛是非常累的,而且也需要耗费很多时间宝贵的时间,在这里跟队友说一句谢谢。除了这个问题之外再就是我的团队协作能能力其实很有问题,可能我更加适合单打独斗,因为很多事情我认为我自己可以解决,忽略了让队友共同承担的重要性,如果一起做说不定能做的更好,毕竟三个臭皮匠都能顶一个诸葛亮,我们三个小菜鸡顶一个臭皮匠应该问题不大。

其次就是对模型的掌握,总的来说还是不够全面,毕竟优化类的模型我可以说一个都不懂,因为当时选C题(数据分析)就是想避开这个问题,谁知道这道题不仅考到了优化,而且还是核心模型,否则我就选B题了,虽然动态规划我确实很菜,但应该比我们学校选B题的小组做的好,毕竟刷算法题这么久了,对图论、动态规划还是有一点点点自己的理解的。

第三点就是快速学习能力,也可以说智商不高,这个能力对于数学建模类比赛来说是非常重要的,阅读了很多建模方面的优秀论文,发现所有论文在文献引用方面都做的非常好,也就是快速学习同类型问题的论文里面用到的公式或者方法,然后运用到自己的论文中去,还是拿第一问来说,如果我的学习能力再高一点,说不定就能把优化模型建立出来了,论文就可以提升一个档次。很可惜,我的智商没能把我带到更高的地方。其实不仅仅是在建模方面有体现,在很多地方都有体现,比如说算法:学算法、刷算法题已经很久了,但自己在遇到新问题的或者学新算法的时候,总是需要理解很久,别人可能一两个小时就想通了,我就可能需要一两天才能想通一个思路。

为什么不想再参加数模了?

本科阶段应该还可以参加两次,一次是2021年初的美赛,一次是2021年9月份的国赛,但我并不想参加了,主要来说有以下几个因素

第一点是感觉大家的参赛热情好像没那么高,也可能是我太肝了,几乎三天三夜都是在那个小办公室里渡过的,第一天晚上只有我一个人没有回去,用三个凳子搭成的床睡着真的很不舒服,蚊子也多,第二天晚上也只有我一个人没回去,但是我发现办公室里其实是有折叠床的,所以就拿出来用了,比第一天晚上舒服很多,但蚊子还是很多,第三天晚上,除了专科组的回去了,剩下的基本都在教室通宵改模型或者写论文。

为什么这么拼呢,难道是想表现自己很努力吗?其实不是的,因为其他组基本都是三个人,但是我们组很多时间成员都是不齐的,我既然选择了参加,答应了别人的事,就一定要做到啊。故事里拳王拉莫塔忍着伤,举着铁拳,挥汗如雨,要和命运斗争,他说我怎么能失约呢,我是那个要成为很厉害很厉害的拳王拉莫塔!。

第二点是真的太累了,与美赛参加完后那种虽然累但是很充实的感觉不同,参加完国赛后,感觉到的只有累和困,感觉学到的东西不多,体验也不是很好,本来我身体状态就不太好,比较瘦弱,这样一来我还真怕自己猝死了,所以从这学期开始,给自己立了flag(上一个flag是六级还没有解决...),每两天跑一波五公里,现在的情况是五公里的平均配速5分53秒/千米,希望后面有所突破。

第三点就是特殊情况了,就是感觉自己不适合参加团队合作方面的比赛,之后可能会参加一些大数据挑战赛之类的比赛,就当作检验自己的学习情况练练手,我在美赛总结里面说过,说知道了自己未来大概可能会走什么方向,其实就是数据分析方向,当然,现在更多的也只是兴趣,至于工作从不从事这方面,还得再考虑考虑,就像考试一样,很多东西你应该是很感兴趣的,但是一想到要考试啥的就感觉很无聊(不会吧不会吧,不会真有人喜欢考试吧hhh)。

如何评价你的大学前两年

其实我的大学前两年也算过得蛮充实的,专业成绩虽然马马虎虎但也看得过去,自己认为重要的证书也拿了;学校能参加的比赛基本也都体验过一遍了,不过都没有拿什么很好的奖;奖学金啥的也拿了一些;活动方面,当过学助,认识了很多学弟学妹,自己的社交能力和表达能力确实提升了不少。这两年对我来讲绝对是各方面突飞猛进的两年,遇到了一些帮助我的学长和老师,不管怎么说,算是得到了贵人相助。

当然,这两年我也走了一些弯路,也可以说是方向错了,具体来讲就是在一些不重要的比赛或者不重要的事情(比如贴膜游戏)上花了很多时间,有些事情确实是避免不了的,但你也不能说这些弯路就是浪费时间或者没用之类的(当然贴膜游戏是真没用),有很多你曾今认为是浪费时间的东西,但是把目光放远一点,你可能会发现其实是对自己有益的。举个例子来说就是关于学助这个东西,虽然当时搞了很多浪费时间的事,比如给新生讲点东西、统计表格、开班会之类的,但一年后再看感觉确实是一段很快乐的时光,你的各方面能力也得到了提升,这才是最重要的。比如也有学长跟我说写博客很浪费时间,其实也没错,在当下看来确实很浪费时间,比如我写这篇博客花了一个晚上,这一个晚上,我可以选择做一套六级题,也可以选择看看专业方面的书,也可以写写代码。但是我觉得,只是学而不进行总结思考是不太行的,古代的前辈就说过了,学而不思则惘,而写博客其实就是一个非常好的思考过程,把自己的东西写出去给别人看,是一个非常的好的交流过程,自己的东西记录下来,以后再看,也是一个非常好的复习/回忆过程。

前两年我觉得比较可惜的一点是没有认认真真看完几本黑书,虽然从大学刚入学就意识到了这些书对我的重要性,但可能还是因为自己觉得难或者怎么怎么样,并没有很好的坚持下去,如果有学弟在看我的博客的话,我推荐你去知乎上搜一些书单,然后一个学期认认真真看完一两本,四年下来,绝对比一般的本科生优秀。

后面的两年你打算怎么规划

首先说一下这学期,这个学期我们开了很多专业课,而且都是非常非常重要的课,比如计算机组成原理、操作系统、计算机网络、编译原理、算法等等,说实话,这种原理方面的课学起来蛮痛苦的。首先第一点就是枯燥,我还记得我看计网自顶向下这本书第一章的时候,各种概念、各种术语搞得我晕头转向的,后来很多东西都是通过看慕课,看博客来一点点把我教会的。第二点就是,你把第一章认认真真看完了,然后打算做点题巩固的时候,你会觉得第一章好像啥都没讲,不只我一个人有这种感觉:

所以说,如果真想学好这些专业课的话,需要花费很多很多时间,我觉得在大学期间最重要的事情就是先了解普适技能,比如你深入理解C++/Java,对基础知识,对网络,对操作系统,对算法都有自己深入的理解,这才是最好的状态 。所以这学期我大部分的时间应该都会花在内功的学习上。之前在知乎上看到一个人的回答觉得挺有意思的,就是非科班和科班同学的对话:

  • 非科班:我会九阴白骨爪
  • 科班:我九阴真经倒背如流,各种招式心法融会贯通

现在计算机行业这么火,英语转行计算机、汉语言文学转行计算机现在也见怪不怪了,而科班的核心竞争力,其实就在于这些枯燥无味的理论课,当然还有很重要的代码能力,但以后在工作中肯定都是写代码,业务逻辑代码写多了其实都差不多,但是应该没什么机会再去看那些原理方面的东西了,所以趁着大学还有点时间,多看点黑皮书,算是做点亡羊补牢的事。

另外就是这学期还有两次英语六级和蓝桥杯

其实我之前的打算是大一大二好好学习英语,然后争取一次性把四六级都给过了,大三就认认真真搞专业课,但是由于疫情的原因,大二下学期的六级机会挪到了大三上学期,所以现在不仅需要学很多专业课,英语也不能丢,说实话,这次九月份的六级自己心里其实一点底都没有,从开学到现在都在看专业书,或者准备数学模型或者数据分析的东西,一套题都没有写,估计12月还得再来一把。(后续更新,居然过了...12月估计是白给了hhh)

蓝桥杯我大一的时候参加过一次,大家可以如果有兴趣可以看看我的这篇文章,里面是我的游记(貌似挺中二的...),当时记得整个寒假都在和@walnut一起做视频、搞交互媒体,准备计算机设计大赛,所以只写了几道水题就去参加了,再加上自己粗心大意,最后混了个省三,希望这次能够好好准备去一次北京,学长已经去过一次了,我也不能掉队hhh。(后续更新,拿了省一但学校没组织国赛...)

这些大概就是这学期的一些安排。

再往后的话,估计就是准备考研了,虽然自己大一就有考研的打算,但是感觉自己目前的状态要考研其实还是蛮难的,比较浮躁,也可以说是急功近利吧,很容易将一件事情变成一种负担,对我而言,只有做事情要心平气和,开心地享受去做,才能把事情做好,这些都是需要努力改变的。我想,如果一个想成为研究生的人,连一个平静的心都没有,怎么能考上自己想去的学校呢,或者就算自己运气好,考上了,成为了一名研究生,在接下来更艰难的学习中,如果没有一颗平静的心,也是很难再往上发展的。为此,为了能成为一名合格的研究生,努力学习是一回事,在这个过程中训练的心理素质以及做事情时平静不慌的思维角度才是更重要的。

最后更新:2020 9.17于武汉


立志成为一名攻城狮