1. 程式人生 > >數學建模競賽經驗分享(從本科生到研究生,獲獎成功率100%,我從數模所學)

數學建模競賽經驗分享(從本科生到研究生,獲獎成功率100%,我從數模所學)

前言

博主本科是數學專業,研究生讀的是計算機專業,其中參加了本科生的全國大學生數學建模競賽和研究生數學建模競賽共三次。本科參加一次(2014年)取得了大學生數學建模競賽國家二等獎(國家獎只有一、二等獎);研究生參加兩次:2017年得到了國家三等獎(研究生國家獎有一、二、三等),2018年今天剛剛釋出初審結果,我們組獲得了國家二等獎。競賽結果一次比一次進步,三次作為隊長的我此刻是無比激動,同時也深深的感覺到數學建模競賽要想獲獎,其實並不難!作為歷經三次數模戰場的一名老戰士,最後一次就以此經驗分享的方式,對數模競賽畫上一個句號吧!

首先講講我的這三次參賽經歷。

本科經歷

由於本科是數學專業,我們學院是牽頭組織方,學院派有專門的幾位老師在暑假時候,花費一個月對報名參賽的同學進行集中數學建模知識的培訓和練習。作為數學系的同學,當然很多人都選擇了參加,畢竟聽起來這是很難得的一個經歷:三個人一隊,花費3天3夜時間集中完成一道題目並提交論文報告。本科生的比賽獎項分類特等獎、國家一等獎、國家二等獎、省一、二、三等獎、成功參賽獎。由於往年獲國獎以上的人不多,所以如果參賽並取得了國獎名次,這無疑是個人能力的一個證明。另外學校還會給獲國一、國二等獎的團隊5000、2000元的現金獎勵。用我們組織的老師的話來講:獲得國一等獎的話小組可以來一次國內遊,獲得國二等獎的話小組可以來一次省內遊,這對我們窮學生來講也是蠻吸引人的地方。

培訓期間,老師們專門定製了計劃,前期介紹了一些數學建模常用的工具,如:MATLABLingoSPSS。MATLAB是我們數學建模常用的工具,如編程式碼、模型等;Lingo又叫LingDo,是一個用來做優化的工具,比如想求解一個問題的最優解,通過Lingo的特定語言把目標函式和已知資料、限制條件給出,就可以快速得到問題的區域性和全域性最優解,以及最優解下的各個變數取值;SPSS軟體則是統計類問題的工具,裡面有很多封裝好的模型,如線性迴歸,主成分分析等。我們僅僅需要把各個變數的資料通過excel的形式匯入,然後選擇要要用的模型即可得到模型分析的圖表結果。培訓後期則是把歷年來的競賽題目我們按照比賽規則進行模擬訓練,4天一個迴圈:幾個小組一起,花費3天時間做出結果,然後1天時間各個小組進行集中學習講解思路。數模比賽要想獲獎,前期的話,如果有老師培訓,就按照這個步驟就行,看往年題目的時候一定要切記:題目要先自己想,嘗試動手做出來,然後再對照往年優秀論文整理思路和經驗。

比賽一般是在每年9月份開學的第3周進行,3位培訓老師各自選擇了一些自認為有希望或國獎的小組,由於我和我的兩個組員在培訓期間表現平平,並沒有選入我心儀的老師戰隊。然而結果確很出人意料的,我們組有幸成為個位數獲獎團隊之一,而很多認為很有希望的隊伍卻並沒有出現在獲獎名單中。這樣的結果我總結了原因:第一是團隊合作。一些看起來很厲害的隊伍中,由於每個人都很有想法,但是他們不容易說服對方形成統一意見,而建模的時間是很寶貴的,必須三個成員之間齊心協力共同完成任務。我們隊伍的三個人由於水平有限,當一個人想到了一個解決思路之後,另外兩人覺得可行之後,我們就馬上開始分工完成;第二是論文寫作要有理有據,充分把自己的解題過程表達清楚。雖然我們每一題解決的並不是很順暢,但我還是比較認可我論文寫作上的能力的;第三就是不管簡單與否,一定要盡力完成所有題目

。畢竟專家的評審結果裡是按照每一題打分的。如果做到了這幾點,我覺得本科生數模比賽獲獎還是很有希望的。

研究生經歷

研究生之後,雖然轉到了我心儀的計算機方向,我發現實驗室師兄師姐們對數學建模比賽的熱情不減(參賽的主要動力是上海市應屆生落戶政策中,在我們學校正常畢業拿到的基礎分數上,加上數學建模競賽獲得國家獎的加分就可以達到落戶分數門檻),而且能拿到一個國家級獎項的隊伍寥寥無幾,其實落戶加分當時對我來說是沒有太多概念的,而很少有人能獲國獎,這對我來說是一個重要資訊,我就喜歡做有挑戰的事情。但是畢竟是剛入學,對一切都不熟悉,所以研究生第一年我並沒有冒然報名參賽,而是幫實驗室的師兄做他們的賽題,先獲取經驗爭取第二年一炮而中。師兄之前並沒有過建模經驗,也沒有提前好好看看往年優秀競賽論文,所以看到賽題時候他們毫無頭緒(不得不說,以前我們本科老師的培訓還是很有幫助的)。而我就直接帶著自己本科的競賽經驗給他們幫忙,並變成了他們隊伍的主力:做了提供思路,動手實現,甚至寫論文的事情。尤其是寫論文,我沒有提前看過研究生比賽優秀論文,就直接按照本科生論文的套路來寫,雖然感覺寫的也差不多,但還是僅得了一個成功參賽獎。這對我還是挺有衝擊的,事後我特意查看了往年的研究生數學建模優秀論文,很容易我就找到了原因。本科生和研究生數模競賽是不一樣的:第一,兩者題目的難度不是在一個級別的。本科的相對簡單,就是一個實際問題的建模解決,而研究生則是不僅是問題的解決,還有更多科研的考量;第二,論文寫作的區別,本科生時候沒有經歷過大量的論文寫作練習,根本不懂如何寫一篇論文,提交的只能說是一篇結題報告。而研究生則不同,雖然同樣是寫建模過程,但是在語言的組織,全域性的考量更加充分完善,問題的引出,背景,相關研究工作等都要體現在論文寫作中,把問題描述清,把自己的解決思路表達清楚是比一個結果更加重要的。本來這次我也並沒有參賽,但是給我帶來了教訓:不能輕敵,明年參賽一定要做好準備工作!

數學建模比賽組員選擇是特別重要的。在我看來組員的水平和經驗都不是很重要的,但是大家一定要團結,要相互瞭解,隊伍中要有主心骨。我直接就承擔了這樣的角色。我先選擇了兩位我比較熟悉的同學,他們沒有什麼數模經驗,但是我對他倆都比較瞭解,加上我的建模經驗,我制定了我們暑假1個月學習計劃:暑假先來數學建模工具的熟悉和使用;然後是數模常見演算法的學習,以及案例程式碼動手練習存檔(這樣比賽時候使用就是輕車熟路);接下來就是往年競賽題目分析和優秀論文學習;最後預留最近兩年的題目我們模擬真實競賽的時間做一個彩排預演。前一階段我計劃我們隨時微信學習情況聯絡,然後每週進行一次碰面交流。第二階段預演我們就三個人在一起分析題目,選題,做題,寫論文,嚴格執行建模的作息。只要我們三人能按照我的計劃好好好準備,我覺得拿一個國獎不是問題。然而,事情總不是如你所預期的那樣,研究生期間每個人都有自己的事情和安排。所以實際中我們並沒有按照我的計劃執行,期間學習方面也就在一起討論過3次,最後預演就進行了半天討論題目和第一問思路。隊伍方面也出現了小插曲:一個隊員學習沒頭緒,說怕拖我後腿想要放棄參賽;另一個隊員臨近比賽總是找不到人,打電話打不通(應該是陪女朋友了)。作為隊長出現這樣的情況,我的心裡真是又急又氣。臨近比賽我雖然也對我要退賽隊員表現不甚滿意,但此時我已經找不到其他人蔘賽了(別人都已經組好隊伍),數學建模就是一場時間賽,少一人都不行。我趕緊和她做思想工作,一方面告訴她她是可以的,我們參賽全力以赴就行,是否得獎不重要,不要有心理負擔。另一方面特意及時跟進她的學習進展,幫助她解決學習中遇到的問題。我的另一個隊友,後來知道參賽那段時間他正在追她女朋友。到了我們約定的時間卻不見他的人,事後告訴我是因為手機沒電了,這樣的事情發生了2次。我當時特別生氣,數模是我們三個人的事情,我本人也是比較通情達理的,如果你有事情我可以錯開我們的見面討論時間(那段時間我們安排一起討論的時間並不多,也就2次?),但是像這樣玩失蹤是極不負責任的行為!因為我們比較熟悉的,我也知道他的為人不是這樣的,要不然我也不會選他組隊。作為組長我沒有發脾氣,強忍著我的不滿笑著對他說:以後有事情提前說,不能再這樣玩失蹤了呀。畢竟我們三人要團結,不能產生隔閡。

實際證明我當時的處理是正確的。真正數學建模期間,我們三個人都完全發揮了自己的價值。我姑且按照上面出現順序以隊友1,隊友2稱呼他們。在選題時候隊友2提出了特別好的選題建議,在我們猶豫的題目中確定了最終題目,隊友3在網上廣泛蒐集資料,找到了一篇相關的研究文獻,給我們提供了第一問的思路,為後面幾問解答鑑定了基礎。我們選擇的題目中,有很多的資料和excel表格需要處理,這樣的工作需要一個極細心和耐心的人,隊友2表現的特別給力。後面的比賽中,我們三人齊心協力,戰鬥到最後一刻順利提交了論文。我們選擇的題目是E題《多波次導彈發射中的規劃問題》,共有五問,雖然在最後一天晚上才把第一問完全做出來,雖然最後一問我們沒有解出來,但是仍然取得了一個不錯的結果:國家三等獎。我們三人都特別高興,還一起吃了飯。從這次比賽中我學習到了團隊合作的重要,要會合理處理團隊中遇到的問題,發揮每個人的特長才能達到合作共贏!

有了這次的成功經驗,一方面我感覺到僥倖,另一方面我是越戰越勇,特別希望找到對數模感興趣,能夠全力拼搏的隊友,衝刺一下國家一等獎。在我們實驗室也確實找到了人選。但是,後來組隊也出現了插曲,我的同門也和我一樣在上次中取得了三等獎,他找我希望一起組個隊,衝一下一等獎,並帶一下我們班另外一個同學(因為她特別希望得個獎,達到落戶分數)。我覺得我和他的目標是一致的就確定了我們的戰隊。然後我倆開始重新籌謀規劃,計劃要提前做好準備,決戰一等獎。然而這次又是計劃不如變化,研二至研三這個時期我們實在是有太多事情,暑假並沒有成功的做好準備(那個同學後來有其它競賽可以達到落戶加分了,也不太需要這個數模結果,所以我們甚至一次見面討論也沒有)。只是臨最後比賽一天稍微回顧了一點點數模知識。比賽中我們一直也不像計劃的那樣順利:第一天上午選題,下午理清思路,第四天晚上前完成所有題目和論文撰寫。實際上我們選題很快,幾乎上午第一眼看到C題就直接確定了:《對恐怖襲擊事件記錄資料的量化分析》,第一問我們又是像之前一樣一直沒有解決,拖到了最後一天(這道題又是一個典型的需要大量資料處理的題目)。後來負責寫論文的同學看實在沒有辦法了,我們就分工同步進行:一人繼續處理第一問資料,一人負責第二問,一人負責第三問、第四問,還好今年的題目量相對少了。就這樣我們完成了我們最後一年的競賽論文,長舒一口氣。我和隊友都心裡想著:最後一次了,再也不要參加了……。

今年的比賽結果如何,我個人認為題目很多問題並沒有完全解決,但是我們的思路是正確的,寫作是完整的。或許可以拿到一個國三,但是再向上就不太可能了,所以今天看到比賽初審結果,居然拿到了國二,我和隊友幾乎都不敢相信。但是,通過這個結果,一方面是對我們辛苦建模畫上一個完美句號,是對我們建模能力的一個證明。另一方面我深深的感覺到數學建模真的不難,如果花時間研究,是可以取得一個不錯的名次的。

下面我總結幾點我認為的建模小tip吧。

Tip1. 多看歷年的競賽題

不管隊友們沒有什麼經驗,之前是否接觸過數學建模,都一定要提前多看看往年優秀論文。從歷年的題目中就可以看到,每一年的題目大概考慮到參賽群體的不同,有幾個大的領域:物理、通訊領域;社會經濟、指標體系;預測、優化、排程問題;其他。如下是我總結的歷年題目表格,所分類別和顏色對應。組好隊友後,大家從先全面分析歷年題目,然後從中選擇自己所熟悉的領域題目進行重點研究。這期間一定要記著,三個隊員雖然要各有所長,但前期準備時候一定不能細分工。只有三個人對建模的每一個模組都熟悉,這樣才能做到當真正比賽時候有什麼突發狀況能夠一個頂倆,一個頂仨。一個木桶盛水的多少不是靠最長的木阪長度,而是由最短的木板長度決定。這段時期重點就是大家從歷年的題目中分析每一個題型的難易,以及使用的建模方法,不會的馬上去查閱資料學習。其實看的論文多了你就會發現數學建模常見的方法也就那麼多。當歷年題目看的差不多的時候,幾個人抽一個集中的時間,在一起針對一年的題目模擬實際比賽的場景進行練習,讓大家熟悉流程,這樣才能做到建模時候各位有條不紊,胸有成竹的完成題目分析,模型建立和論文寫作。

                                           2004-2018歷年研究生數學建模題目彙總

2004 A 通訊、定位
  B 工廠生產下料方案調配(優化模型)
  C 轎車某部件千車故障數(預測)
  D 研究生錄取方案(學生導師雙向選擇滿意度)
2005 A 高速公路行車時間估計和線路優化
  B 空中加油作戰方案(通訊、定位)
  C 計程車規劃(預測、價格方案、滿意度,資料已給出)
  D 商店訂貨儲存策略(優化模型)
2006 A Ad Hoc網路區域劃分和資源分配(通訊)
  B 確定高精度引數問題
  C 維修線性流量閥的內筒設計問題
  D 學生面試問題(優化、公平性)
2007 A 食品安全保障體系模型(評估、無資料)
  B 機器人技術問題
  C 高速公路路面質量指標體系
  D 郵政運輸的郵路規劃與郵車排程問題
2008 A 汶川地震堰塞湖洩洪問題(蓄水量模型、人員撤離方案)
  B 城市道路交通訊號實時控制(控制模型、流量預測)
  C 貨運列車編組排程(優化、排程)
  D 中央空調節能設計(數學問題)
2009 A 我國就業人數或者城鎮登記失業率建模(指標、模擬)
  B 槍彈頭痕跡對比方法研究(物理)
  C 多感測器資料融合與航跡預測
  D 110警車配置及巡邏方案
2010 A 確定腫瘤的重要基因資訊
  B 與封堵潰口有關的重物落水運動模型(物理)
  C 神經元的形態分類與識別
  D 特殊工件磨削加工數學建模(物理)
2011 A 基於光的波粒二象性一種猜想的數學模擬(光學、物理)
  B 吸波材料與微波暗室問題數學建模
  C 小麥發育後期莖稈抗倒性數學建模
  D 房地產行業數學建模
2012 A 基因識別問題及演算法實現
  B 空間飛行器主動段軌道估計與誤差分析
  C 有杆抽油系統數學建模及診斷
  D 基於衛星雲圖的風矢場度量模型與演算法
2013 A 變迴圈發動機部件法建模及優化
  B 功率放大器非線性特性及預失真建模
  C 微蜂窩環境中無線接收訊號的特性分析
  D 空氣中PM2.5問題研究(指標、評估)
  E 中等收入定位與人口度量模型研究
  F 可持續的中國城鄉居民養老保險體系的數學模型研究
2014 A 小鼠視覺感受區電位訊號(LFP)與視覺刺激之間的關係研究
  B 機動目標的跟蹤與反跟蹤
  C 無線通訊中的快時變通道建模
  D 人體營養健康角度的中國果蔬發展戰略研究
  E 乘用車物流運輸計劃問題
2015 A 水面艦艇編隊防空和資訊化戰爭評估模型
  B 資料的多流形結構分析
  C 行動通訊中的無線通道“指紋”特徵建模
  D 面向節能的單/多列車優化決策問題
  E 數控加工刀具運動的優化控制
  F 旅遊路線規劃問題
2016 A 多無人機協同任務規劃
  B 具有遺傳性疾病和性狀的遺傳位點分析
  C 基於無線通訊基站的室內三維定位問題
  D 軍事行動避空偵察的時機和路線選擇
  E 糧食最低收購價政策問題研究
2017 A 無人機在搶險救災中的優化運用
  B 面向下一代光通訊的VCSEL鐳射模擬模型
  C 航班恢復問題
  D 基於監控視訊的前景目標提取
  E 多波次導彈發射中的規劃問題
  F 地下物流系統網路
2018 A 關於跳臺跳水體型係數設定的建模分析
  B 光傳送網建模與價值評估
  C 對恐怖襲擊事件記錄資料的量化分析
  D 基於衛星高度計海面高度異常資料獲取潮汐調和常數方法及應用
  E 多無人機對組網雷達的協同干擾
  F 機場新增衛星廳對中轉旅客影響的評估方法

Tip2. 選題的建議

當大家拿到題目時候,一定要把能夠是否有把握實現作為選題的重要標準,對於有的題目看起來很大眾,大家都能讀明白,如果你沒有其它更擅長的題目,不要猶豫就選擇它。因為數學建模獲獎分佈是根據題目選擇的人數按比例分的,而不是每道題平分名額。

以2018年選題情況為例。2018年競賽有12207研究生隊提交論文,按競賽章程,評選出一等獎184隊(獲獎比例為1.5%),二等獎1588隊,(獲一、二等獎隊數總和佔總參賽隊數的14.5%),三等獎2586隊,總計4358隊,獲獎比例35.7%,其他7849隊獲成功參與獎。我們來看看獲獎比例的分配情況。C和F題相對容易理解,發散性強,所以以後很多隊伍選擇。而A和D偏專業性知識和研究背景,所以選擇的人很少,但是獲獎的比例大家也都看到了,選擇的隊伍多,獲獎的數量也多。所以我們選題時候只要自己有把握完成就行,不用考慮人多競爭大的壓力,反而我覺得選擇的隊伍多反而更容易得獎。

                                                              2018年研究生數學建模獲獎比例分佈

題目 總隊數 一等獎 二等獎(累計) 三等獎(累計)
A 關於跳臺跳水體型係數設定的建模分析
  678 17 106 260
B 光傳送網建模與價值評估  
  1899 28 276 660
C 對恐怖襲擊事件記錄資料的量化分析
  5560 68 789 1970
D 基於衛星高度計海面高度異常資料獲取潮汐調和常數方法及應用
  557 16 89 212
E 多無人機對組網雷達的協同干擾  
  1509 25 221 547
F 機場新增衛星廳對中轉旅客影響的評估方法
  2004 30 291 709

Tip3. 堅持到最後,完成論文撰寫

所有的一切都很重要,但是我覺得堅持最重要。不到最後一刻,不要輕言放棄。在我們比賽的過程中,身邊很多的同學會在你的旁邊說一些洩氣的話,但是你一定不要被動搖,或許這是別人迷惑你的一種方式。真正有實力的隊伍哪有功夫到處閒扯,他們抓緊實現自己的想法的時間都不夠!

數學建模考察我們短時間解決問題的能力。當我們選擇了題目後,首先要以把題目解決得到一個結果為目的(不管有多簡單),然後根據這個簡單的結果不斷的優化自己的解題思路,解題方法。並把這個過程體現在你的論文中,這就是作為一個研究生解決實際問題或者科學研究的一個正常思路。

實際總是不盡如人意。如果在實際比賽中,你們理清了思路,但是受限於時間,不能把問題完全解決得到一個結果,或者像博主一樣到最後一天了仍不能完全解決第一問的問題,不要慌張!不要氣餒!不要放棄!先收關,像假設你已經做出結果一樣,正常的撰寫你的論文(當然論文最好在有思路時候就開始寫,因為等到最後再寫時間來不及)。評委們打分時候注重的是什麼?你的思路,只有你們把你的思路寫明白了,寫的讓人家覺得可信,那麼你的實際結果怎麼樣,還有那麼重要嗎?(這是我們今年獲獎的關鍵)

Tip4. 相信你的隊友

不管你隊友的一些行為有多不靠譜,你們在比賽中產生了什麼隔閡,一定要互相相信:只有彼此合作,才能順利完成競賽!要時刻記著:數模是三個人的戰場,一個人再厲害也成不了事!

 

如果想了解更多數學建模實情或經驗,歡迎留言交流。

執筆於:2018.11.10