- 在线时间
- 326 小时
- 最后登录
- 2019-9-18
- 注册时间
- 2014-8-5
- 听众数
- 36
- 收听数
- 9
- 能力
- 0 分
- 体力
- 4485 点
- 威望
- 0 点
- 阅读权限
- 60
- 积分
- 1854
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 996
- 主题
- 413
- 精华
- 0
- 分享
- 3
- 好友
- 98
升级   85.4% TA的每日心情 | 开心 2019-9-18 21:55 |
|---|
签到天数: 258 天 [LV.8]以坛为家I
 群组: 2015国赛冲刺 群组: 2016美赛公益课程 群组: 国赛讨论 群组: 第三届数模基础实训 群组: Matlab讨论组 |
由于我这四年基本上没有做过连续题,所以下面的内容都是关于离散的。数模离不开数学基础。一般,
8 l1 ? _9 B5 L" X5 w离散问题大都是最优化问题,所以《运筹学》和《离散数学》是必看的。看《运筹学》的话要明白怎么
7 o h% G, m" l) d5 o# Z% }3 Y建立规划模型,包括线性规划、整数规划、多目标规划等。学完这些知识后就可以开始尝试看一些数模
- m) o. u" J7 s$ C' Z( a. I题,开始自己建立模型了。但是,这些是远远不够的模型建立后要会分析和求解,需要算法的积累。在+ K" J1 Y2 Y/ l
比赛时有大量的数据需要处理,模型也会相对复杂,只掌握一个单纯型法的手算显然是不行的。算法的
, H, a l- P1 }; W5 C2 P学习推荐两本书,入门级别的王晓东的《算法设计与分析》,然后看《算法导论》。这里推荐从贪心5 A% _; o+ I5 P. e$ M' A9 x
看起,贪心问题对于初学者来说比较容易理解,一些经典的流程安排问题建议大家自己写程序实现一下,
8 N8 s) |; P" O$ R# [6 \7 s! K可以印象深刻。贪心虽然是最简单的算法,但在数学建模中仍然很常用。3 |1 J1 p, P$ ^, M+ w
然后看动态规划,相对与贪心来说,动态规划要抽象很多,所以不仅要看书上的介绍,建议结合网上
$ M/ N% ~( A( h# X0 k5 \% I# w的经典教程——背包九讲一起学习。% [6 m) J3 x. g1 e' @- p Q- i. g
但是一些不是特别容易实现的动态规划技巧,比如树形DP、斜率优化、插头DP等,有兴趣可以看看,
0 A2 u7 Y7 D2 l' M, R2 R- _: @( n# H5 o但在数模中一般用处不大。" G' j0 v8 R1 M$ c8 N& @" s) {
图论也是相对庞大的一块内容,这里建议大家先看完《离散数学》中图的基本概念后,从最短路、最) B# G$ M( |+ e" v& Y) u. m
小生成树算法看起。因为这些算法都是比较常用的,如04年国赛的奥运会问题和11年国赛的交巡警平
8 O; M6 R2 s9 X& h5 y) h2 |( G台设置问题都有用到。
8 m1 p+ s. _) e, I, N" F( { 接着学习一些二分图匹配的算法,包括匈牙利和KM,理解怎么建图,怎么进行匹配。这些算法属于
4 f6 [3 C X6 Y3 ?) Q进阶部分,我们学校曾经在09和11年国赛时把最优化模型转化为二分图匹配的两篇文章分别获得了国% c$ }* ]) M& y5 R5 T! o: w
二和国一。
- ?, s3 l2 s3 ^* r% W9 U% y8 u; v; m 此外有时间可以研究一下网络流算法,虽然这几年的国赛都少有涉及,但是DINIC和ISAP之类的算法4 X9 p* U" C; u' n8 e
思想本身就很精妙,值得学习积累。' X7 U$ K% L" d' l0 Q6 k# B
演化算法在数学建模中也非常常用,这里推荐先看模拟退火,算法思想简洁,代码实现也比较容易。5 P8 P4 b+ n: \5 j( [3 R0 N* w; s
然后可以看一些粒子群优化算法,包括用粒子群优化算法解决多目标规划的问题(MOPSO),我个, o; Q: _4 n. Q$ Z" Y' t
人觉得是对多目标规划问题的一种比较好的求解方案。此外可以掌握些遗传算法、
6 U/ V7 t) c: wdifferential evolution等算法。
* f4 Q' l% F# n2 }5 \6 H 其他一些评估模型的常用算法,如TOPSIS、熵权系数也建议掌握。# u2 v E( C/ m6 z- Z' y+ z
排队论的几个模型在很多地方都适用,也尽量掌握。对于这些常用的算法,建议一支队伍能准备
( M8 }3 |. O1 ^4 g# B v, N 一套模板,确保上面的程序每个都看过、用过,最好加上必要的注释,包括算法复杂度、重要参数的意义等。
0 g( {- u; u; f+ t: h* T' q8 Y3 b+ B8 F1 k
) E2 Q: d1 e# g, A9 A% ]
& f0 }( p" W0 K: e# ?' H/ K9 _4 R
5 M( e- q$ |( \7 V0 C+ @% Y
在正式比赛或是实际应用中,没有任何问题会和教科书上的完全一样,这就需要知识的“活学活用”。. }* X) Z& Y3 c- {+ _
当看了一个数模题后,不要急着去看别人的答案,自己想想该怎么做,到网上找找相关的背景资料,
' K5 F/ T/ }! C8 ?( L 想个几天实在没有思路再去看答案,仔细琢磨下为什么要这么做。当然,数学建模中“现学现卖”也$ }; B; c4 K& H6 P; O
是一种很重要的能力,能找到一种解决方法,并快速地学会它,然后将其应用到解决问题中。+ M% ?& C; H' `* C8 r V; S
最后,要说的还是要有爱,有爱才有付出,有爱才有坚持,当然爱不能只挂在嘴上,要付诸行动才行。& G }7 Q) A& W* x3 P! a* Q
8 E4 _- C1 N2 U! Z5 ~7 n5 r |
zan
|