由于我这四年基本上没有做过连续题,所以下面的内容都是关于离散的。数模离不开数学基础。一般,; i. }* F* L: Y& A
离散问题大都是最优化问题,所以《运筹学》和《离散数学》是必看的。看《运筹学》的话要明白怎么 9 @& G# s, H, C) n: {建立规划模型,包括线性规划、整数规划、多目标规划等。学完这些知识后就可以开始尝试看一些数模 : w& u4 v& D8 m% x! o# G# ?; N题,开始自己建立模型了。但是,这些是远远不够的模型建立后要会分析和求解,需要算法的积累。在- X+ q7 q, i4 n8 H
比赛时有大量的数据需要处理,模型也会相对复杂,只掌握一个单纯型法的手算显然是不行的。算法的7 v% P. J0 x: j$ } w3 Z, F
学习推荐两本书,入门级别的王晓东的《算法设计与分析》,然后看《算法导论》。这里推荐从贪心 / J, E" w& I7 z8 H Z D y m看起,贪心问题对于初学者来说比较容易理解,一些经典的流程安排问题建议大家自己写程序实现一下, ?" S& N' Y# e) x1 t/ v可以印象深刻。贪心虽然是最简单的算法,但在数学建模中仍然很常用。' Y0 y; A" a, Y* G! K3 a4 U
然后看动态规划,相对与贪心来说,动态规划要抽象很多,所以不仅要看书上的介绍,建议结合网上3 [( R" ?; _5 e: T4 v4 Q
的经典教程——背包九讲一起学习。 : e7 {- P' s, R- J, E9 R& ~3 _ 但是一些不是特别容易实现的动态规划技巧,比如树形DP、斜率优化、插头DP等,有兴趣可以看看,8 h8 ]) S7 ]" u
但在数模中一般用处不大。 , Q& ? Y. N: [$ o# ] 图论也是相对庞大的一块内容,这里建议大家先看完《离散数学》中图的基本概念后,从最短路、最% s, `, s8 G& U/ U. v }( ~
小生成树算法看起。因为这些算法都是比较常用的,如04年国赛的奥运会问题和11年国赛的交巡警平 : U$ X* z6 G/ _. `: u+ N0 V台设置问题都有用到。" I9 |% Z2 n" y
接着学习一些二分图匹配的算法,包括匈牙利和KM,理解怎么建图,怎么进行匹配。这些算法属于 , t) t* Q1 F, e( Z9 A0 t7 q进阶部分,我们学校曾经在09和11年国赛时把最优化模型转化为二分图匹配的两篇文章分别获得了国 ! o4 Y) ~+ O! ]) }: f2 u二和国一。 ' e6 |6 g7 a& Z1 x; Q 此外有时间可以研究一下网络流算法,虽然这几年的国赛都少有涉及,但是DINIC和ISAP之类的算法: X" D. C) }$ A
思想本身就很精妙,值得学习积累。! A3 o8 S2 m7 J& A0 w2 t) A
演化算法在数学建模中也非常常用,这里推荐先看模拟退火,算法思想简洁,代码实现也比较容易。& R. I) A" G+ j& l) I
然后可以看一些粒子群优化算法,包括用粒子群优化算法解决多目标规划的问题(MOPSO),我个 ) j8 ~! @2 F1 u人觉得是对多目标规划问题的一种比较好的求解方案。此外可以掌握些遗传算法、( J: \4 C) ]2 H+ @
differential evolution等算法。4 `; q; s. y" X) r- w
其他一些评估模型的常用算法,如TOPSIS、熵权系数也建议掌握。/ q }- T3 {1 ^( \
排队论的几个模型在很多地方都适用,也尽量掌握。对于这些常用的算法,建议一支队伍能准备# n8 h# ~0 J5 K6 L
一套模板,确保上面的程序每个都看过、用过,最好加上必要的注释,包括算法复杂度、重要参数的意义等。" _2 T$ ]' L0 S
0 J0 k- T% ?/ Y# r. u3 k7 P$ o" ]
; C% W2 P N. t: J7 S: t a
% x U: n. m5 x6 F
! v" p& f, {9 P. A9 l# a 在正式比赛或是实际应用中,没有任何问题会和教科书上的完全一样,这就需要知识的“活学活用”。, g/ T+ M7 {. j' O
当看了一个数模题后,不要急着去看别人的答案,自己想想该怎么做,到网上找找相关的背景资料,! g+ }# p% S- b' z
想个几天实在没有思路再去看答案,仔细琢磨下为什么要这么做。当然,数学建模中“现学现卖”也( K$ R3 F6 `2 m7 _: u
是一种很重要的能力,能找到一种解决方法,并快速地学会它,然后将其应用到解决问题中。 3 ~% B j4 L$ R4 u9 H 最后,要说的还是要有爱,有爱才有付出,有爱才有坚持,当然爱不能只挂在嘴上,要付诸行动才行。 & K. E, R- {* {( {1 h6 i c0 T* [3 z) ~2 R0 A' b