我从大一寒假的美赛开始做数模,当时做MCM复杂网络的题目,得了H奖。大二的时候参加了国赛没有得奖,美赛因为时间不合适没有参加。大三的时候得了校赛一等奖、国赛省一等奖和美赛M奖。大四参加了国赛,得了全国二等奖,目前正在准备美赛,也是最后一次参赛了,所以想借这个机会认真总结一下一路走来的经历和收获。- J. l' ~, ]3 f; P4 ^5 A) ]% ?7 a
! M, s1 C: W6 ~# r) Z# v9 `" Z) F
1.什么是数学建模+ ]: M6 `- M! F& V6 a" I
. _0 g* l* k4 P; R7 v
数学建模是把一个实际问题,通过适当的假设和抽象,提炼成一个数学问题,并用合适的方法求解,最终得到合理结果的过程。 ; B- F7 S" [9 O' p$ g5 M ; K) p+ D0 n% q) D最简单的例子是小学时候的应用题,比如航行问题:甲乙两地相距750千米,船从甲到乙顺水航行需30小时,从乙到甲逆水航行需50小时,问船的速度是多少? 我们首先要做出合理假设,假设船速和水速都是常数。然后用符号表示相关量,距离d>0千米,顺水a小时,逆水b小时(b≥a>0),未知量:x, y表示船速和水速(千米/小时,x>y≥0)。接着用物理定律(匀速运动的距离等于速度乘以时间)列出数学式子(二元一次方程)。接着进行求解和检验,带入原问题得知船的速度。$ t' r) v3 E; e7 g3 |" Z! K1 G( _
; W% S6 l5 d. `0 \这就是通过数学建模解决问题的过程。+ A5 v( ?7 i/ b+ j. v" P7 i
5 S7 I: U& ~1 ^4 P, m
2.数学建模竞赛的一般流程 / d9 A* n- d4 [, t; m' Y; i9 b/ O U D+ s0 Q- n, ~2 \( a) G数学建模竞赛要求三个人三到四天的时间解决一个实际问题,提交一篇论文。大体的步骤包括选题、查阅文献、确定模型、编程求解、写论文五个步骤。一般分工为建模、编程和写论文,但是不能太明确,每个人都应该参与每个步骤中,尤其是建模的时候,需要三个人的头脑风暴。编程求解以后,应该一个人主写论文,其他人补充结果、做结果图、示意图,辅助完成论文。论文完成后,要花足够的功夫写摘要,三个人一起讨论一起修改。 5 U! ?* }9 Q5 Q% u0 _3 b - ?7 B# B, B* X+ A& H5 r! Z3.队伍组建原则' R0 t# [$ z1 Q5 f2 }
. c5 J$ F4 r7 c
在我看来,标准的队员分布应该是一个理科生(数学或者物理专业),一个计算机或者相关电类工科学生(熟悉编程),另一个可以是文科生或者工科生。三个人中最好有一个是女生,女生建模编程可能稍差一点,但是写论文、画示意图时的细心和规范是比男生强很多。一个完美的数学建模过程应该是工科生的思维,理科生的方法,文科生的表达。! }% Y" i, V1 v
) G% v4 y. `- q( ^* }4.基本问题和基本模型) T# _) d1 L1 D0 f
) \# T; u" [" ? D" D0 c
基本问题有三类:优化问题,评价问题,预测问题。* n* U) J3 H: W
7 e- _5 \' @) P- I- C0 M优化问题:优化问题是最经典的数模问题,但是据我的几次比赛经验,优化问题相对比较少,或者比较偏数学,选的人会比较少。主要用到的优化方法包括线性规划,整数规划,非线性规划等规划方法。把问题归结为规划问题求解也是科研中经常用到的方法,如果合理使用解决了问题是一件非常有成就感的事情。优化问题也可以用启发式算法求解,比如遗传算法、蚁群算法等,在解决调度问题等偏“算法”而不是偏“数学”的问题的时候使用比较多。 8 h2 X, m4 O" a$ u- f 3 f+ J/ U2 C5 U. X2 U, y评价问题:评价问题在比赛中出现得很多,一般前面一问对问题的各个因素进行评价,后面一问进行预测或者做其他研究。一般的方法包括层次分析法、模糊综合评价法、因子分析法等方法,但是我不太喜欢这样的题目,觉得评价类问题主观性相对较大,缺乏那种“解决问题”的美感(也可能是我境界太低,欢迎拍砖)。 ! C4 h. m% A) p0 {9 \3 V 3 e6 j ^. P. \2 o O7 g预测问题:预测问题一般分两部分,一是对已有的数据进行分析,得到两个量之间的关系。二是对两者的进一步发展做出预测。第一部分是关键,主要用到的问题包括微分方程、回归、时间序列法、灰色系统法等,还有神经网络、SVM等机器学习的方法如果比较熟悉也可以用。* `, p6 z+ V2 g