您當前的位置:首頁 > 體育

數學建模 | 國賽VS美賽區別?哪個更容易拿獎?

作者:由 遠方的路很長 發表于 體育時間:2021-12-09

常見問題

數學建模從入門到參賽,需要投入多少精力進行準備,三人需要分工的話,需要各自向哪些方面努力;

數學建模從入門到參賽,需要投入多少精力進行準備,三人需要分工的話,需要各自向哪些方面努力;

數學模型包括離散模型、穩定性模型等好多種類,是否需要每個都進行深入研究,競賽或測驗時是自己選題目型別還是隨機決定?

需要哪些數學方面的基礎?教材推薦?

學習數學建模最應該側重的是哪方面,是多學習理論,還是多側重直接實踐?

Matlab等軟體方面是最好在準備期間自學還是直接拉有經驗的同學組隊?

資訊搜尋等方面,是否需要準備VPN,哪種搜尋引擎最好用?

本文僅從數學建模角度來分析兩者的區別,僅供學習參考。

回答

美賽與國賽不同。國賽的話要衝國獎如果建模手的話除非遇到了本專業的專業題目一般來說是兩年(一年實在有點不太現實,paper writing都不一定搞得定)。

美賽的話,如果你的想法很奇妙,而且也確實自圓其說,並且論文寫作很好的話,可以衝o的。但是一般來說比較困難,因為很多“美妙”的模型的建立一般都是要有一定的經驗的建模手可以搞出來,當然對於本身有天賦的可能例外。

必須有一個論文寫好的,而且學術英語要比較好,我們那年就是摘要寫的不好,摘要不好直接沒人看論文的。有人會找英語專業的學生,但是注意,你一定要確保溝通與表達,否則寫出來很怪,當然也有人選擇是生科,材料,電氣,物理——他們英文寫作也不錯!(CS的英文寫作也很不錯啊!!!

論文的寫作需要學習一段時間,如何引用文獻、如何設定符號、編輯器的選取之類的。

有人使用latex,有人是word;我更喜歡latex。國賽一般要求有具體的結果,也就意味著,程式設計手應當必須完成程式設計並給出正確答案。但是美賽可以給不出答案,這也就意味著某些問題的確切答案可以不給出。

這裡不是說我們可以以“不給出確切結果”為目的而只空建模。而是說,強調了我們“模型”的思路和想法,不必過分追求答案多麼好。

事實上,仔細觀察會發現,美賽有人給出的模型中會出現一些np-hard問題,這種問題本身就基本拿不到最優解(當然也有可能,只是時間問題罷了),合適的時間內只有滿意解——好的滿意解也不錯啊。

或者像前些年那個飛機場排隊論問題,也不是簡單的服從泊松分佈的單服務檯排隊問題,而是多個服務檯,此外,加之每個人的服務時間不同,還有隨機事件,所以一般性的排隊論我覺得也很難出彩。這樣的話即使程式設計給出了結果也沒有什麼太大意義——模型本身就很naive。

這也就意味著美賽注重思想,程式設計手的任務出去一般的模型實現外,更多的是幫助建模,或者說模擬模擬,比如前些年的b題。我看到有人使用的vissim進行模擬。從而幫助建立模型或者驗證模型。當然我說的模型實現強調實現模型並給出模型的解。

如果強調分工的話我們的做法是:一個人主筆論文,一個程式設計和輔助建模,一個人主力建模和推導。

關鍵看題目是否對口。比如出了一個偏物理的連續性問題,這時候肯定是隊伍裡有物理學院的吃香,比如某年國賽b題,肯定是計量經濟學或者說統計學的吃香,千萬不要忽視這一點!我們隊伍起步較早,早期主攻評價問題,後來主做最佳化類問題,特別地,選址最佳化。數學建模內容太多了。全部精通很難,一般都是選幾個自己隊伍擅長的方向或者說感興趣的方向。然後看看歷年的命題趨勢。我們一般是老師給我們提問題我們然後自己就去研究了。

學習過程

書籍:山東大學劉保東老師的建模教材,看完才算入門;

然後看一下司老師的那本黃皮書《數學建模方法與應用》(《matlab在數學模型中的應用》 進階級 );

然後是看一些老師的模範論文、以及隊伍的獲獎論文,這些都在網路上可以找到。多刷題也很重要!

關於如何閱讀建模論文?

1。學習他的建模方法。看他的方法你見過嗎?比如:有人用元胞自動機模擬交通,那麼什麼是元胞自動機?數學形式是什麼?適用的問題情況是啥?有啥特點?如何程式設計?如何針對不同問題給出程式設計設計方案?求解的質量如何?求解效率如何?

2。學習他的寫作組織技巧,如何寫作?如何表述,基本上看上十幾篇你會了然的。

3。他的技巧,比如如何進行引數識別?如何處理資料(資料驅動類題目):標準化、歸一化等等、最佳化模型的引數連續化處理等等

4。他的漏洞。一定有的,而且有些建模論文漏洞非常大,也一點要避免誤入歧途。更重要的,感知不同題目大概是需要什麼樣的模型?這一點非常重要,這決定了你在真正比賽時候,反映的速度和準確度。比如你練習了很多、思考了很多。那麼你建模拿到一個題目,你就知道大概是一個什麼的建模思路,避免“這個題目好像用評價類思路可以搞”、“最佳化類題目可以搞”、“這個方法好像可以”、“那個也不錯”這樣的迷惘

對於學習歷程:以我自身為例,從大一下開始:

首先:

1。學習微分方程,這裡主要是一個典型的根據人口、傳染病建立的模型。

2。學習機率論,並跟著一些資料探勘的書學習資料處理。然後研究的評價性問題,我關注的是:topsis方法,熵權法等等,我個人認為,從確定的角度來看,建模裡面不要用涉及隸屬讀函式或者層次分析這樣的方法,對於隸屬度而言很多時候,選取權重或者說隸屬度函式(初學者主要是用偏大(小)型柯西分佈)的理由很難給出來——涉及偏好和取向。

3。學習的圖論(當時是剛好離散學到了所以就直接搞了搞),所有涉及圖論的問題對程式設計要求都較高——不要指望matlab提供的那些封裝方法,他們往往都不夠用。

其次:

微分方程部分邊值問題往往比較重要,所以可以閱讀《微分方程及其邊值問題》(好像是那本書)知道基本的處理方法,並記錄裡面的一些模型,然後是對流擴散方程(這個在國賽裡面比較重要,主要是偏微分)。

最後

統計裡面的主成分分析,聚類,k均值等等,然後是支援向量機,後來是蟻群,模擬退火和遺傳演算法(GA是我到目前為止學習、訓練比較多的演算法)。其中我大一暑期是重點研究遺傳演算法。一般性的遺傳演算法不涉及小種群問題、防止亂倫機制等等此外遺傳演算法——或者說是所有的啟發式演算法最重要的是引數的設計!以及一些標定函式的選取,你會發現有了啟發式演算法你幾乎就神了!但是這個需要慎用,不然容易出事,建模課老師強調不要濫用啟發式演算法。我是暑假學的lingo,我以前是用的matlab,但是發現每次都要標準化方程,很麻煩,所以才用的lingo。但是從靈活性而言還是最愛MATLAB。

沒有理論幾乎無法實踐。有了理論沒有建模思維也不行,因為這不是程式設計大賽,只給出結果的話是不被看好的。手中有一萬種方法沒有給出模型也不行。先從基礎打起——理論,然後再學習如何使用它們,如何把建立好的模型。就可以了。

計算機專業與數學專業最好自學matlab,Matlab 的作用不止限於建模比賽,在機器學習(當我沒說),模擬模擬等很多科學計算領域都很重要!如果你matlab只是入門的話,建議找matlab比較好的隊友,因為matlab也好lingo也好需要積澱。

我覺得國賽的話中國知網,美賽google學術可以,翻譯的話使用google翻譯。

另外,對於2022年美賽最新須知,可以詳細檢視

標簽: 建模  模型  學習  美賽  matlab