一、為什么寫下本文
-
最近看了熱播劇“天才基本法”,其中的數(shù)學建模預測犯罪地點等等魔幻的操作在網(wǎng)上引起了一頓熱議,或者說惹來了一些嘲諷。
-
我這種經(jīng)歷過“預測水流量”,“預測溫度變化”等等數(shù)模題洗禮的數(shù)模人,我認為實現(xiàn)上述內(nèi)容完全可能,只要數(shù)據(jù)夠完備,模型夠準確,數(shù)學建模真的可以為所欲為。我是像林朝夕一樣的普通人,在2021.09全國大學生數(shù)學建模中靠著隊友僥幸獲得省級一等獎,本著給自己心愛的小說正名和我的紀念一下“數(shù)模受難一周年紀念日”,斗膽寫下此文,跟大家聊聊數(shù)模比賽,分享一下自己的經(jīng)驗,讓大家少走彎路,大佬天才們可以當玩笑看看就好,有什么不對歡迎指正。
二、前言/背景
現(xiàn)在還記得大二的那個忙碌暑假。本文的主題是數(shù)學建模,但是有幾點前情鋪墊,是一個從未接觸數(shù)學建模的計算機專業(yè)大學生走上數(shù)模路的來龍去脈,一個平凡人走上數(shù)模之路的歷程,大家可以直接跳過直奔大賽簡介的主題。
xxx-6.26 期末考試結束(競賽的基礎是校課程成績)
期末考試結束(因為疫情,所以提前考試提前放假)
6.27-7.16 小學期課程(綜合應用多種課程技術)
結束學院的小學期課程——做一個實習項目,我?guī)ьI組員做了一個電商網(wǎng)頁前后盾系統(tǒng))
7.19-8.1 大數(shù)據(jù)訓練營(數(shù)據(jù)是互聯(lián)網(wǎng)時代的新石油)
剛剛回家的我開始在家線上參加學院和百度旗下慧科教育校企合作的暑期訓練營“線上大數(shù)據(jù)訓練營(疫情原因,不能留校舉辦了),大數(shù)據(jù)訓練營的內(nèi)容是離線推薦服務(協(xié)同濾波算法這些入門算法),我們小組的選題結合我們前面學習的電商網(wǎng)頁系統(tǒng)做了一個醫(yī)美產(chǎn)品的商品推薦(爬取數(shù)據(jù),算法執(zhí)行,網(wǎng)頁展示)
8.2-9.12 返回學校后在校集訓一個月并參加全國大學生數(shù)學建模
2021年9月9日(周四)18時至9月12日(周日)20時(三天三夜)
三、大賽簡介
大賽時間:每年9月初,三天三夜
大賽含金量:中國國內(nèi)數(shù)學建模含金量首屈一指的A類學科競賽,對于數(shù)學專業(yè)的同學來說幫助很大。
全國大學生數(shù)學建模競賽創(chuàng)辦于1992年,每年一屆,已成為全國高校規(guī)模最大的基礎性學科競賽,也是世界上規(guī)模最大的數(shù)學建模競賽。2018年,來自全國34個省/市/區(qū)(包括香港、澳門和臺灣)及美國和新加坡的1449所院校/校區(qū)、42128個隊(本科38573隊、???555隊)、超過12萬名大學生報名參加本項競賽。
四、參賽流程
1. 校賽選拔
通常在每年的四月底至五月初(不同學校可能情況有出入,我們學校2月-3月就開始準備了),高校會組織一次校賽。學生組隊參與,規(guī)定3人一組。在這次過程中,決出優(yōu)勝團隊。組織此次比賽,一方面是方便學校挑選優(yōu)勝團隊參加全國比賽,另一方面是讓參賽者增強團隊協(xié)助能力,讓其熟悉全國比賽方式及規(guī)則。
2. 備戰(zhàn)國賽
暑期建議好好學習相關的數(shù)模知識,和日常的數(shù)學專業(yè)課程還是有比較大的區(qū)別的,計算機專業(yè)負責編程的同學也要學好matlab、python和lingo等工具。
3. 賽前核對
核對報名信息!很關鍵,一定要時刻跟老師保持聯(lián)系,了解最新的報名信息,確認信息無誤。
4. 賽前準備
發(fā)布題目后開始三天三夜的備戰(zhàn),建議提前準備好要睡覺用的枕頭和被褥和一些食品干糧。
五、參賽經(jīng)歷
1. 慎重選題,選擇比努力更重要
-
除非你很牛叉,不要選物理題。
我們當時選題一開始有想選A題物理題的,但是后來發(fā)現(xiàn)物理題沒有什么有想法的模型,只是單純的計算解題,而且萬一編程無法得到答案就一定拿不了獎(這個蒙答案很難)。而且物理題一般都是很多牛逼的985院校的囊中之物(本人不知名二本院校,紹興最好的大學,有興趣的同學可以查查,也別發(fā)在評論區(qū),我就不說出來給母校丟人了)。真的不建議選物理題。我們的指導老師說這幾年我們學校他看到過很多的優(yōu)秀學生,他自己都覺得已經(jīng)足夠優(yōu)秀了,但是還是沒有一只隊伍選了物理題拿到省一以上的。 -
B題一般需要創(chuàng)新的一些思維,感覺去年好多人選B題,圖一個簡單,你想要脫穎而出就要和別人不同。
-
像大數(shù)據(jù)處理的C題,蒙答案可以方便一點。
-
三個人一起討論選題和大致選了題目之后怎么做題,切入點和模型方法。
2. 制定計劃,避免最后走進死胡同
-
良好的分工合作。
建模論文與編程三位一體,互相影響。我們當時的分工是碼字小能手小王負責論文,數(shù)學天才小吳負責建模,我負責編程,但其實我們之間互相有交叉,比如說小吳也編程,我也參與建模。 -
指定周密的計劃,并有執(zhí)行力
想要在這么短的時間內(nèi),以正常人的能力必須要抓緊時間,嚴格按照計劃,否則可能寫不完。(上哪找林朝夕和裴之這樣的一串三頂級隊友) -
保持隊友之間的溝通,發(fā)現(xiàn)遇到困難進度耽誤不要自己硬抗
如果你的進度比預定的慢,很正常,但是一定要及時和隊友溝通,讓隊友幫你,不要死倔,否則萬一最后隊友在等你第一題的答案用來解第二題,或是給第二題提供思路的時候你再告訴他你遇到了什么困難就會嚴重耽誤進度。 -
一以貫之的努力,不得懈怠的人生
我看到過很多隊伍,平時訓練馬虎,最后比賽隨意。想要拿獎,不熬夜,不拼命,不努力是不存在的。(天才裴之們請忽視我這句話)人生嘛,哪有幾次真正奮力拼搏的機會,錯過多可惜。我很慶幸我的組員們都很努力,他們和我一起熬夜,我們的指導老師也很負責,也和我們一起熬夜,三個晚上我們可能只睡了10小時左右。我不是想嚇退大家,只是陳述一個客觀事實,如我所見,在我們這樣的二本學校,拿好的獎項的隊伍都不輕松。當你真正進入狀態(tài)后,你會發(fā)現(xiàn)“與探索未知的美妙相比,世界上大部分糟糕的數(shù)模題目,都不再重要”
3. 與指導老師做好溝通,不要敝帚自珍
- 我們的指導老師真的很負責,是我們整個數(shù)學系,唯一一個整個暑期陪我們做數(shù)模題的老師(他是唯一一個會寫論文會模型,并且會編程的全能老師),每個星期的一道題目他都會給我們反復講解,責令我們修改。
- 我們的摘要和建模大方向得到了老師的很多幫助,一個好的老師真的很關鍵,事倍功半。
4. 檢查文章,細節(jié)決定成敗
錯別字,格式空格,代碼樣式美化(用我下面提供的代碼美化網(wǎng)站)
5. 提交作品,有始有終
最后提交作品,按照參賽流程,聽從指導老師安排,md5碼提交后一切塵埃落定。(這個一定要仔細,有好些隊伍最后作品提交出了問題,導致前功盡棄)
六、賽后感言
- 計算機專業(yè)可以參加一下數(shù)學建模的比賽。這個比賽聽起來很高端,但是參加的門檻其實也不是很高。比賽有多個選題,編程主要實現(xiàn)的是數(shù)據(jù)分析、是模擬退火算法、蟻群算法、神經(jīng)網(wǎng)絡、聚類分析、圖論等內(nèi)容(有封裝的庫,但是題目一般會做一些限制,需要你改動改進原有的算法)有些內(nèi)容數(shù)據(jù)結構我們都上過。其實這個確實比賽我覺得完全可以由我們計算機專業(yè)承包,畢竟計算機的本質(zhì)還是數(shù)學,數(shù)學的很多應用都得靠計算機實現(xiàn)。有一說一,數(shù)理的老師講圖論講算法比我們計算機的老師講的好,畢竟師范專業(yè)。
- 了解比賽規(guī)則做好團隊內(nèi)部建設。建模比賽時間3天,3個人分別負責寫數(shù)學模型論文、建立數(shù)學模型、代碼實現(xiàn)模型,團隊每個人都有事情,雖然人少,但人不在多,在精,任何一個位置擺爛比賽都沒有辦法進行。雖然三者分工,但是一定要做好團隊的協(xié)作,因為在一開始大家一起思考題目模型(一開始沒有模型給我編程,還沒有建立模型呢)。
- 刻苦努力,沒有隨隨便便的躺贏。一個月暑假留校集訓(我自己是8 10 6,相比較而言996確實是福報)并且1學期每周上課(這個是看你們的指導老師安排)先不說我們自己,就說我們的指導老師周老師,在所有指導老師里面我愿稱他為最強,每周都跟我們一起建模型,他是指導老師里面唯一一個和我們一起做題,區(qū)別是他一個人完成建模、代碼、論文(草稿),平時每周的題目每個他帶隊的小組都會被他單獨講評2次,1次修改檢查。比賽的那三天我們熬夜,他也陪我們一起熬最黑的夜。最后國賽的三天我就睡了8小時,就睡在教室里面,人生第一次熬夜。
- 編寫代碼要有宏觀意識,必須理解模型。首先不能要求建模的人一開始建模就準確無誤,每個人都要有自己的理解也有自己的局限,可以及時改動模型或是代碼。也避免出現(xiàn)寫了一部分代碼,對這個模型有疑問,代碼上實現(xiàn)不了,運算時間過長,算力不夠,編不出來,一定要提前溝通(比賽時間3天3夜,我們學校的數(shù)理學院也不像有些學校的能提供算力服務器)千萬不要編了很久,用了很長時間,說編不出來,耽誤時間,害人害己?;蛘呤前l(fā)現(xiàn)要換一種數(shù)據(jù)結構,到最后發(fā)現(xiàn)不用numpy數(shù)組用dataframe數(shù)組更簡便。
學習和成長是個過程。沒有成功是一蹴而就的,沒有誰一開始就什么都會。數(shù)理信息學院那邊其實很缺編程的人,最終很多參賽隊伍負責編程的同學可能都編程小白,那種敲鍵盤都比較吃力的那種。經(jīng)過一個月做題集訓之后都會有令人驚艷的成長!我一開始Python是在學院的百度云智訓練營里面接觸,在參加數(shù)學建模之初我還處在“我是誰,我在哪,要干什么”的狀態(tài)(我一開始想搞好這邊的科研項目,但是建模的小吳同學是我的高中同學,實在是找不到其他編程人員,強行拉我上賊船,后來才知道我原來我有個前任編程員中途跑路了,在小吳同學這層關系的影響下,我堅持到了最后,Python的數(shù)據(jù)分析基礎就是在這個比賽積累的) - 有所取舍,避重就輕。每個星期一篇論文一道題目,第一次有這種團隊協(xié)作集中式的敲代碼體驗。因為模型可能會隨著我上一個代碼片段數(shù)據(jù)分析的結果而變化,我還要不停地和隊友溝通,確實體驗了一波如何跟“甲方爸爸”相處。這種在最短時間內(nèi)快速編程的要求屬實折磨??蛻糇屇?000塊錢做個百度?能提出這種要求的客戶實乃乙方克星、民族之光、科創(chuàng)永動機、西虹市一大杰出青年,諾獎永遠得不到的人才。短時間內(nèi)面面俱到==面面不到,我們量力而行,先把核心部分搞好。所以作為編程的同學,一定要據(jù)理力爭,承認自己能力的局限給解題帶來了困擾,該滿足的滿足,超出自己能力的也一定要及早跟隊友溝通,以免關鍵時刻害了隊友。
七、一個計算機專業(yè)學生視角的感悟
1.技多不壓身,總會用到。
在校的各種課程都值得我們認真以待,哪怕是淺嘗輒止,也要但當涉獵。就像也許我們以后不會寫web前端后端,但是日后我們的成果展示需要一個展現(xiàn)形式,(聽說美賽數(shù)模的優(yōu)勝獎做了一個特效視頻演示模型,到了最高端的舞臺,你的軟實力也會是出彩點,是個互聯(lián)網(wǎng)+都可以用上網(wǎng)頁和APP),那么或是web網(wǎng)頁或是小程序或是APP都是我們應該學會的。(因為不同的項目有不同的應用場景,假設淘寶只有網(wǎng)頁端沒有app端,可以避免多少“剁手”行為呢?)
其實我真的很內(nèi)疚,一開始我只打算用python完成數(shù)模編程,后來才知道lingo真的好用,在比賽期間臨時學一手lingo現(xiàn)學現(xiàn)用(此前老師和隊友都提醒過我學lingo),其實我真的很對不起我的那2個隊友,好在我臨時學勉強夠用,否則隊伍真的可能敗在我手上了。
2.學習力大于能力。
一個現(xiàn)在很牛叉的程序員確實很牛叉,但是我們計算機專業(yè)的淘汰換代率太高了,“優(yōu)化”“被畢業(yè)”的事情屢見不鮮,所以一個不斷變得更加牛叉與時俱進的程序員才會成為一個一直很牛叉的程序員。大學競賽中你不能保證哪一天你的組長會不會突然希望你做出一個你沒怎么好好學過的安卓移動應用,涉獵的目的不是讓你馬上就有做出APP的能力,而是讓你有快速自學的能力。很多時候安裝環(huán)境,學習基礎語法和語言的設計思路是最花時間的,這些都有過基礎后直接看示例源碼學習就都是一馬平川的事情了。
3.站在巨人的肩膀上,懷揣一顆敬畏之心。
敝帚自珍的現(xiàn)象在我們計算機領域也存在,就像著名的程序員雙標語錄——程序員最討厭兩件事,看別人的代碼發(fā)現(xiàn)他不寫注釋,在寫自己的代碼的時候嫌麻煩不想寫注釋?;蛟S我們能想出很多不同的思路解法,但是在關注自己手中的璀璨星光的時候,也保持謙卑,抬頭看看頭頂?shù)穆煨浅?。先賢的設計思路與規(guī)范必然有無數(shù)的血淚教訓。比如說為什么“java 要在重寫方法時加上@Overwrite”,沒有這么多為什么,因為規(guī)范寫法提高了代碼的可讀性,讓后續(xù)讀你的代碼維護你的程序的接班人不會有提刀到你家砍人的沖動。無論你對于前輩們的做法有多不滿,你有多么天才的想法,請你先學習效仿先輩們,在了解先輩們做法的基礎上再試著另起爐灶,而不是上來就我最行,我最棒,然后面對“社死”的情況。
八、資料分享
1.數(shù)學模型學習書籍推薦
當時我的老師推薦的這本書,有一本是題目,一本是講解,建議同時買兩本。講了很多的算法模型,我們沒有都學會都能拿省一,都吃透了我覺得大家肯定能拿國獎。《數(shù)學建模算法與應用》由國防工業(yè)出版社于2011年8月出版,作者是司守奎、孫璽菁。
2.論文公式編輯工具
gitee的一個項目,可以方便地在寫論文的時候編輯數(shù)學公式 hepeichun / CKeditor數(shù)學公式編輯器插件_圖片版
一個在線測試工具的網(wǎng)頁 https://hepeichun.gitee.io/kityformula/
3.論文代碼樣式美化
- 注冊登錄網(wǎng)站
https://login.ubuntu.com/E9P4oH5bB8IlmIRV/+decide
- 轉化后的效果,讓你的論文代碼部分看起來更好,就是花花綠綠的,格式錯落有致
4.讓你的數(shù)據(jù)繪圖更加有逼格
有一說一,lingo在線性問題無敵,MATLAB強在有很多現(xiàn)成的代碼可供參考和軟件內(nèi)置的算法工具箱,而python厲害在無敵的兼容性,你可以繪出更好看的圖,調(diào)用更多的第三方庫,我堅信python帶來的發(fā)展,必將是日后建模的主流(個人觀點),畢竟全世界程序員維護的開源項目,肯定比某個公司一個公司維護的內(nèi)容發(fā)展進步更快,著重強調(diào)python的繪圖,比MATLAB好看很多。
相關源碼在我的gitee項目上
pandas_alive競賽動圖
相關學習使用的專欄在我的CSDN博客專欄
pandas_alive數(shù)據(jù)可視化
1.1 水平條形圖
1.2 豎直條形圖
2. 折線圖
圖片為了能上傳經(jīng)過壓縮,你自己生成的效果應該更好一點!
3. 散點圖
圖片為了能上傳經(jīng)過壓縮,你自己生成的效果應該更好一點!
4. 餅狀圖
5. 氣泡圖
6.1 地理空間點圖
6.2 多邊形地理空間圖
7.多個圖表
8.城市人口
9.G7國家的預期壽命
九、總結
-
“一以貫之的努力,不得懈怠的人生”(天才基本法)
-
學習本身就是足夠幸福的過程,享受知識的同時,不要畏懼挑戰(zhàn)。而所謂的考試,本質(zhì)是由整個社會制定的殘酷淘汰標準,它可以要求很多人,但如果你不在意,那它也沒那么重要。
-
一年之后的今天,再次回憶去年今日,雖然當時掉了一地的頭發(fā),一直很困,但是三個人為了那樣一個目標而努力奮斗的歲月,永遠是人生的一次寶貴的體驗。文章來源:http://www.zghlxwxcb.cn/news/detail-485159.html
-
說真的,不要像張叔平一樣這么極端,他一直把自己和林兆生這樣的天才比較,當然會有落差,但其實,像我這樣的普通人做不到全國一等這樣的極端,拿一個省獎真的是可以辦到的,挑戰(zhàn)數(shù)學的勇攀高峰的熱忱就足矣。文章來源地址http://www.zghlxwxcb.cn/news/detail-485159.html
到了這里,關于天才基本法中預測犯罪發(fā)生地點的數(shù)學建模真的可以為所欲為【全國大學生數(shù)學建模競賽】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!