標籤:

我的數學建模之路(下)

上一篇文章主要記錄了我個人的參賽經歷,本篇文章我將正式寫關於數學建模競賽方面的內容。如果你想獲獎,那麼請認真閱讀這篇文章,本文章是我接觸數學建模一年多以來的心得體會以及經驗總結,是我一年多以來的心血結晶。好了,話不多說,開門見山。依舊先看本文內容提綱:

1.

對於一個新手來說,從沒接觸過數學建模或者只是聽說過數學建模但並不了解,該如何學習數學建模?

眾所周知,數學建模內容廣泛,知識點雜,涵蓋面廣,包括工程技術、自然科學、經濟、管理、金融、生物、醫學、環境、地質、人口、交通等等領域。而且市面上介紹數學建模的書籍非常多,對一個初學者來說,一開始就選對一本好書是重要的,但是要從這麼多書籍里選擇也不容易。作為一個過來人,在此,我向大家推薦兩本數學建模方面的書籍。

第一本是姜啟源的《數學模型》,這本書裡面的例子很豐富,而且模型都比較理想化,也都很好理解,是一本很好的數學建模啟蒙書籍。如果後面要參加競賽的話,那隻看這本書是不夠的。所以我推薦的第二本書是司守奎的《數學建模演算法與應用》,這本是就是專門針對競賽編寫的,裡面的演算法都是競賽常考的演算法,而且針對每種演算法都有對應的例子,並且附MATLAB源代碼,供讀者實踐練習。這兩本書第一本看一遍即可,不管記住多少,一邊就好,主要是快速了解數學建模的一些實例以及應用方向。第二本書建議多看幾遍,最好能熟悉書中的每一種演算法,這樣對競賽大有幫助,拿獎不是問題。

2. 推薦完書之後,再給大家推薦兩款必備軟體。

第一個lingo,主要是處理線性規劃、目標規劃一類的題目

第二個MATLAB應用範圍非常廣,幾乎可以解決一切題目。這裡說明一下,MATLAB也可以處理規劃類的題目,但是lingo畢竟是解決這類問題專門的一個軟體,這方面的功能比MATLAB更強大。

除了這兩款軟體外當然還有很多其他的軟體也可以使用,例如mathematia、lindo、SPSS、SAS等等,但就我個人而言,上面那兩款(lingo、MATLAB)只要用熟練了,足夠應付一切題目,軟體在精不在多。

3.

有了書有了軟體接下來就到找隊友的時候了,一般來說,找優勢互補的隊友,比如擅長建模的,擅長編程的,擅長寫作的。但最重要的是三個人一定要互相配合,不要出現矛盾。下面我具體總結了一下正式比賽時三個人應該如何分工。

我把三個人的職務分為:建模(編程)、寫作、第三人。

建模的人一般應該有比較紮實的數理基礎,思維活躍,並且同時會編程為最佳。

寫作的人應該思維縝密,語言邏輯性強,要能看懂建模人建立的模型,

在理解模型的基礎上進行寫作。我個人認為寫作是做辛苦的。

第三人就是主要負責數據整理、資料收集之類的,同時也可以給建模人提供一些思路,糾正寫作的人寫作時的錯誤等等。

理想情況下,三個人應各司其職但又互相配合,使團隊效率達到最高。

4.

組完隊之後就到了正式比賽的時候了,正式比賽時間是三天三夜。那麼這三天該如何分配呢?

上圖是我根據自己的多次參賽經歷總結的最佳時間分配計劃。

第一天上午為選題階段,正式比賽時是兩道題目,常規性題目和開放性題目,一般來說常規性題目思路簡單,很容易上手,拿到就可以做,但做的好壞就要看每個隊隊員的水平了。開放性題目不容易有思路,上手比較難,但是一旦找到突破口便很容易出彩,也很容易獲獎。(我記得我當時國賽得時候是選擇的開放性題目,結果整整一天過去了我們隊都還沒有思路,一直到第二天早上才找到突破口)選擇哪種類型的題目完全視自身情況而定。一旦選定題目之後就不要更改了,我見過太多剛開始草率選題,做到一半發現做不下去了又開始換題,浪費了一天半的時間,結果發現換了題時間不夠用還是做不完。所以第一天花一上午的時間選題真的不算多。

上午選完題目,下午就是查閱文獻的時候,這個時候要泛讀文獻,只要看標題和摘要就可以了,感覺有用的都可以先下載下來。晚上是精讀文獻的時候,國賽的題目一般都是來自工程實踐或是某個教授或博士研究的課題,所以我們需要通過文獻去了解這個題目的背景以及來龍去脈。另外,第一天晚上有思路的話就可以開始建模了。

第二天上午同樣是建立模型,到了下午就要開始寫作了,不管模型建立到哪一步了哪怕是還沒建出模型,寫作的人也應該開始寫了。有人要問了模型都沒建出來寫什麼啊?寫寫問題重述啊,模型假設啊,思路分析啊,符號說明啊說不定寫著寫著就有思路了呢。到了第二天晚上順利的話模型應該已經建立出來。

到了第三天,就是模型的求解、誤差分析以及模型的改進了。但是往往有時候就會發現建立的模型解不出來或是誤差太大沒法使用,這樣的話就只能換個思路重新建立模型了,所以時間還是很緊。第三天晚上一般來說所有人都是通宵寫論文,因為三天時間真的很緊,很少有哪個組提前完成論文。

上面的時間分配計劃是很理想的情況下才能達到,根據我的參賽經歷,實際比賽的時候大部分隊伍實際進度都要慢於計划進度,所以當實際比賽時遇到進展比較慢時不要心急不要緊張,從容應對就好。

最後,一篇好的論文應該包含以下幾個部分:

摘要是重中之重!一般是論文寫完之後才寫摘要,並且最好多遍修改,摘要應該簡潔幹練,並且體現出你用了什麼方法建立了什麼模型,模型的效果如何,優缺點是什麼等等。

然後是條件假設,這個在論文中也很重要,它說明了你這個模型的適用範圍,在什麼條件下成立。我遇到的最極端的一種情況是有兩個隊解決同一個問題時答案完全不一樣,但是兩支隊都拿了一等獎,究其原因就是條件假設不一樣。

模型的評價與改進這點也很重要,一般初步建立一個模型之後肯定有考慮不周的地方,可能是少了某個條件或是少考慮了哪種因素等,建完之後再對模型進行進一步的分析與改進,進一步完善模型,這一點會成為很大的加分項。

最後,模型的優缺點分析,可有可無但是最好有,一般建完模型之後總不可能沒有一點缺點吧,在寫缺點方面時就可以寫寫模型不能使用的範圍,要在這些範圍使用就要加哪些條件等等,這樣寫的好處是評委老師感覺你考慮的很周達,缺點也可以變成優點。

5. 再說說我上篇文章里我提到的那個很神奇的方法吧

我在參加國賽之前對近十年的題目做了研究,提煉出了常見的考點並且對常用演算法做了一個分類,在這裡提供給大家。

我將數學建模中常用的演算法分了六大類:規劃類、評價類、預測類、物理類、分類與判別、現代啟發式演算法。

而且我經過對近二十多年競賽題目的考點統計發現,前三類(規劃類、評價類、預測類)是最常考的,出現的頻率極其高。

上圖是我對1993年----2016年二十多年來的題目考點進行了分析,然後我做了如下圖的考點出現頻率統計圖:

這時候大家就會發現規劃類、評價類、預測類模型是最常考的,出現頻率極高。其次物理類模型考的頻率也很高。

而且近幾年賽題有如下發展趨勢:

1. 對計算機能力提出了更高的要求:賽題的解決依賴計算機,題目的數據較多,手工計算不能完成,如2007年B題乘公交、看奧運。2012年A題葡萄酒的評價問題。2013年A題車道被佔用對城市道路通行能力的影響(視頻處理)2013年B題碎紙片的拼接復原問題(圖象數據,數字圖象處理)。

2. 賽題的開放性增大 解法的多樣性,一道賽題可用多種解法。開放性還表現在對模型假設和對數據處理上。

3. 試題向大規模數據處理方向發展。

4. 求解演算法和各類現代演算法的融合。

以上,是我對賽題考點做的一個分析以及賽題趨勢做的一個分析。

最後,大家要是想要在國賽中拿獎,好好看看我上面總結的數學建模常用演算法,爭取對每一種演算法都熟練於心,並且知道相似演算法的適用範圍等等。比如同樣是預測類演算法:有微分方程預測、差分方程預測、灰色模型預測、回歸方程預測,這麼多預測演算法,那我們在碰到實際問題時該用哪一種呢?它們各自適用範圍是什麼呢?它們之間有什麼異同點呢?這就是我們平時學習需要注意的問題。

好了,本篇文章到此為止,以上就是我接觸數學建模一年多以來的心得體會以及經驗總結,希望能幫助到大家。也歡迎大家在下面評論留言,如遇到數學建模方面的問題可以在下面評論中提出來,我一收到通知會立馬幫大家解決,模友們,一起加油!


推薦閱讀:

【評價演算法】層次分析法
【MCMICM】數學建模基礎知識儲備(二)
對平底鍋和垃圾的O獎論文的整理和學習[2]
最優指派問題與R
[建模]L2正則化

TAG:數學建模 |