在线时间 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讨论组
由于我这四年基本上没有做过连续题,所以下面的内容都是关于离散的。数模离不开数学基础。一般,
! f7 g& }, J, U# H 离散问题大都是最优化问题,所以《运筹学》和《离散数学》 是必看的。看《运筹学》的话要明白怎么
6 M* }0 o" E! q 建立规划模型,包括线性规划、整数规划、多目标规划等。学完这些知识后就可以开始尝试看一些数模
7 d7 F2 t5 h4 \2 C, A 题,开始自己建立模型了。但是,这些是远远不够的模型建立后要会分析和求解,需要算法的积累。在
: i6 t4 j$ B9 \7 V% r1 V/ E) s6 d' ] 比赛时有大量的数据需要处理,模型也会相对复杂,只掌握一个单纯型法的手算显然是不行的。算法的) L! N: ?) k* z& @9 u$ Z4 J9 p
学习推荐两本书,入门级别的王晓东的《算法设计与分析》, 然后看《算法导论》。 这里推荐从贪心
- [( w1 j c: S* L8 v# A+ L 看起,贪心问题 对于初学者来说比较容易理解,一些经典的流程安排问题建议大家自己写程序实现一下,
' G1 n- A ]+ _8 B 可以印象深刻。贪心虽然是最简单的算法,但在数学建模中仍然很常用。 r" _5 z4 | ^
然后看动态规划 ,相对与贪心来说,动态规划要抽象很多,所以不仅要看书上的介绍,建议结合网上
# `1 u% E7 V( D 的经典教程——背包九讲一起学习。+ r9 [ ~, {- [- v3 c
但是一些不是特别容易实现的动态规划技巧,比如树形DP、斜率优化、插头DP等,有兴趣可以看看,
5 H5 R; f( A; W! a 但在数模中一般用处不大。1 ^ M& m6 z8 U0 w2 ?" \6 E& n6 k
图论 也是相对庞大的一块内容,这里建议大家先看完《离散数学》中图的基本概念后,从最短路、最- L1 s) u$ n5 `4 @& E, Y2 L9 z
小生成树算法看起。因为这些算法都是比较常用的,如04年国赛的奥运会问题和11年国赛的交巡警平
' @5 O7 \3 |; Y6 E 台设置问题都有用到。) L: x2 W, b6 Z% [" q
接着学习一些二分图匹配的算法,包括匈牙利和KM,理解怎么建图,怎么进行匹配。这些算法属于4 x8 E4 \' y+ A0 P: }! H" \
进阶部分,我们学校曾经在09和11年国赛时把最优化模型转化为二分图匹配的两篇文章分别获得了国
4 P8 G9 g: ?% J3 B- V+ I F 二和国一。
' y1 z- \; ]. ]/ Y0 [: F6 V$ w8 M 此外有时间可以研究一下网络流算法,虽然这几年的国赛都少有涉及,但是DINIC和ISAP之类的算法
% h8 h( T9 x: B; B 思想本身就很精妙,值得学习积累。 5 O9 W: R8 v8 q/ J3 P1 d5 c2 `
演化算法 在数学建模中也非常常用,这里推荐先看模拟退火,算法思想简洁,代码实现也比较容易。0 Z$ r/ A) h1 }& n% q. P
然后可以看一些粒子群优化算法,包括用粒子群优化算法解决多目标规划的问题(MOPSO),我个
7 M, M" {* T0 J 人觉得是对多目标规划问题的一种比较好的求解方案。此外可以掌握些遗传算法、
+ Z. _, s4 [. d1 x; o- ]- u* p) H# m+ `4 m differential evolution等算法。( o6 B$ S% j2 U* N$ C# U3 {
其他一些评估模型的常用算法,如TOPSIS、熵权系数也建议掌握。 / F: _4 Z j* T* X6 f% I
排队论的几个模型在很多地方都适用,也尽量掌握。对于这些常用的算法,建议一支队伍能准备. }1 u/ H; }; S; d- N
一套模板, 确保上面的程序每个都看过、用过,最好加上必要的注释,包括算法复杂度、重要参数的意义等。$ I# D/ q& ]. K: E% k
3 u: M# ?! O4 N2 N7 Q' V0 X! o3 V 2 L a6 u& s a. z
7 U8 ]/ ?( O; y& N 0 D2 C' r& E* ]* n, y6 ~
在正式比赛或是实际应用中,没有任何问题会和教科书上的完全一样,这就需要知识的“活学活用”。 X# O7 N' W% m7 \
当看了一个数模题后,不要急着去看别人的答案,自己想想该怎么做,到网上找找相关的背景资料,
0 c9 o( {* u% j9 R$ s 想个几天实在没有思路再去看答案,仔细琢磨下为什么要这么做。 当然,数学建模中“现学现卖 ”也
2 S3 K7 D) e; l 是一种很重要的能力,能找到一种解决方法,并快速地学会它,然后将其应用到解决问题中。
8 C! y% F; V" S3 ^, s$ P. e 最后,要说的还是要有爱,有爱才有付出,有爱才有坚持,当然爱不能只挂在嘴上,要付诸行动才行。 a+ S6 F1 x h n5 e
# m$ R o2 D) b1 l/ S
zan