國賽前如何高效率的學習
10 人贊了文章
首先說下各高校普遍存在的問題,培訓課上的東西真的過於基礎了,別說是國賽了,模擬題都難以下手,小白們應該深有體會吧。那麼培訓有用嗎?當然有,那些有用的演算法是有一定難度的,先學學基礎的知識可以幫助你們更好的理解好的演算法。
在國賽中,一些大佬們都喜歡用高大上的演算法,一是演算法確實能得到比較好的結果,二是很少人會用,在國賽中更有優勢。好的演算法,肯定是難懂的,但可別怕學什麼難得東西,只要掌握了學習方法,學起來自然很輕鬆。
接下來說下如何高效率得學習數模
首先說說隊伍,隊內一定得和諧,可別嫌棄誰,尤其是編程的同學,建模過於理想了或者超出的編程同學的能力了,這個時候不應該向其他小夥伴抱怨說自家編程不行,既然是個團隊,就應該一起解決問題。
建模方向建議:可以說是隊伍得領頭人了,做題的進度掌握在建模同學的手裡,為什麼學校培訓大多時候是在講演算法呢,演算法是解決模型工具,同時自己掌握的演算法多了,自然建模就輕鬆了許多,那麼我們如何去高效率的學習演算法呢?學現成的是最好的,公眾號(數模自願分享交流)上整理了這麼多演算法都掌握了嗎,可沒什麼人願意把自己的東西帶程序分享出來,一是麻煩,二是把寶貴的東西分享給你了,自己的優勢就沒了。學數模可別指望別人,學習是自己的事。演算法的學習,可以看作是一個演算法是很多公式組成的,別去糾結哪一個公式,要知道別人花了幾年甚至一輩子研究出來的東西,一兩天是無法掌握的,數學建模本身就是運用數學工具解決問題,演算法是工具,所以我們懂得怎麼運用就可以了,學演算法如何高效率的去學,首先,了解下演算法的機理是什麼,懂這個演算法的大致過程是什麼,然後再去看演算法的步驟。
此外,建立的模型編程同學編不出來是有原因的,接觸到陌生的演算法怎麼可能一下子就理解了呢,所以建模同學在學習演算法的時候,拉上編程的同學,一是不懂的步驟可以讓編程同學從程序的角度解釋下,二是建模和編程的知識同步,這樣比賽中能節約很多討論和互相嫌棄的時間。
建模同學平時有空多和其他建模的同學交流下,如果樂意分享,可以交流自己的經驗,討論的過程中不管別人是對是錯,如果是錯的,那就心裡記得,做題的時候千萬別出錯。閑暇之餘可以向編程的同學學習下編程,這樣可以明白一個演算法能解決什麼樣的問題,資料中可不會總結,但程序會告訴你這個演算法的局限在哪裡,比如要預測五年的數據,但是之後4年的數據,那BP神經網路還能行嗎,肯定是誤差很大的。
總之,不管是學演算法還是看案例模型,首先了解個大概再去看步驟,在學演算法的時候的和編程同學討論,一起學習,這樣也具有了編程思維,這樣有兩個好處的,一是在學其他演算法的時候更容易理解某個公式的含義的,表面看一個複雜的公式,有很多參數沒有解釋,但是要知道程序能運行出結果是有一定邏輯的,所以擁有一些編程思維會提高學演算法的效率,因為對於高大上的演算法,很多問題是網上查不到的。第二,在做題的時候,建立的模型不會過於理想使得不能通過程序實現,再好的模型,如果不能編程算出結果,那這個模型還有什麼用呢。學演算法也有個講究,比如評價類演算法,從基礎的商權法學起,或者層次分析法也可以;學神經網路從BP學起。層層遞進,然後學好的、高端的演算法。目前可以先把小哥哥整理的演算法理解了再去看其他的都可以。
編程方面建議:剛也說了,和建模的同學一起學習演算法,了解隊友總是好的,那麼平時怎麼鍛煉自己的編程能力呢,首先就得鍛煉下自己的編程邏輯思維了,首先從翻譯程序開始,小哥哥翻譯了這麼多的演算法程序,可以把整理的程序拿來一個個看,先別看批註,自己翻譯,一步一步來,遇見不懂函數可以到CSDN博客上查找,都有詳解的,比如sort函數,功能就是排序,但是sort(x,1)和sort(x,2)是分別是什麼意思呢,那麼是否可以輸入一個矩陣運算下,然後就知道了sort(x,2)是將每行按小到大的順序進行排列。如果看了解釋還不明白的話,可以帶數據進去理解下。把小哥哥整理的程序都翻譯一遍之後,可以到程序員開發網上搜演算法的程序,進行調試,上面的程序大多數都是少程序、加密程序了的,嘗試去補充、破譯程序,之後的編程能力足以應付國賽了。在學演算法程序的時候,盡量和建模的一起學,建模看步驟,你看程序,一步對著一步來,誰不懂就討論下,這樣學習的效率很高,半小時之類掌握一種演算法是不在話下的。
論文方向建議:一篇質量好的論文,除了精鍊的語言描述外,圖和表是很必要的,如果模型的步驟比較多,那麼可以做一個流程圖出來,然後只對重要的公式描述即可,如果遇到數據題,那麼在問題說明或者在符號說明後,可新建個標題,分析下數據,比如統計某指標的分布情況,此外編程求出來的結果,matlab作圖其實不是很美觀,建議將結果導入origin中作圖。這是作圖,很多學長學姐都在說寫論文的多看優秀論文,看了真的有用嗎,網上分享的論文有多少是高質量的,感覺看了所謂的優秀論文並學不了什麼哈,那麼在選取優秀論文的時候可以看下,論文中的圖做得怎麼樣,尤其是流程圖,可以記下:高質量的論文一般都會有visio等軟體做的流程圖,而且是彩色的,以及數據圖,絕不會是matlab的結果圖,會通過其他軟體製作,以這個標準去篩選論文,一般這樣的論文不管是語言描述,還是邏輯感,一定是非常不錯的。論文的語言描述,其實靠的是經驗,可以找寫論文的學長學姐交流下,看看他們寫論文是怎樣的套路,在寫論文的時候可別說自己的模型不好,不過結果怎樣,不好就說的委婉,效果好就隨意吹牛,理直氣壯哈。寫論文一定的寫出氣勢,如果問題不能很好的解決,可以少談模型和結果,多用語言和圖描述問題解題步驟。
總之,論文靠的是經驗,可以先看看高質量論文,然後再去看比較次的論文,然後在旁批註,怎樣寫更好,這樣鍛煉數模論文的寫作能力,很快的就會成為一位論文大神了。建議寫論文的同學學號visio和origin這兩個軟體,如果word會作圖,那麼可以不學visio,word能做出一樣的效果的。
論文方向的同學也不是只顧著鍛煉自己寫作能力,建模和編程在討論的時候參與進去,幫幫查下資料,至少要對演算法有一定的了解,比賽中也知道怎麼描述。
一個隊伍中每個人都有自己的重任,但並不代表只負責自己的方面,相互交流才能有效提高隊伍整體的水平。
推薦閱讀:
※【學界】運籌學數學規劃|離散優化求解器大搜羅
※差分方程建模
※HiMCM暑期集訓召集令
※CPLEX學習筆記二 – OPL的數據類型
※科學松鼠會 ? [小紅豬]數學建模如何誘騙了華爾街
TAG:數學建模 |