a5 m, {/ U" A写这个东西当做是回忆下以前的点点滴滴,希望自己的经验能帮助一些新手(这样的说法不大好,暂时想不出更好的,凑活着先用着)能尽快的成长,尽快的发挥自己的能力,体验数学在应用中的作用,爱上数学,甚至和数学打一辈子交道。国防科大数学建模网的路过(向为)前辈曾经写过个新手教程,写的十分的好,希望写的这个能延续他写的那个教程,能给大家哪怕一点点的帮助。( h4 o2 ], N' L8 u4 W b7 \! O, D
$ t& i) W6 v3 W( ^ $ U/ v- c) J4 i! A4 b + K/ z, P9 m7 j$ d4 G% M1 o* B/ L2 组队和分工3 l j) P0 T- w. E5 Q/ r
) d8 C& O. ]6 Z* |! [' a
数学建模竞赛是三个人的活动,参加竞赛首要是要组队,而怎么样组队是有讲究的。此外,还需要分工等等一般的组队情况是和同学组队,很多情况是三个人都是同一系,同一专业以及一个班的,这样的组队是不合理的。让三人一组参赛一是为了培养合作精神,其实更为重要的原因是这项工作需要多人合作,因为人不是万能的,掌握知识不是全面的,当然不排除有这样的牛人存在,事实上也是存在的,什么都会,竞赛可以一个人独立搞定。但既然允许三个人组队,有人帮忙总是好的,至少不会太累。而三个人同系同专业甚至同班的话大家的专业知识一样,如果碰上专业知识以外的背景那会比较麻烦的。 . J; M! p0 p8 M/ w$ h, h1 m7 l! f: h' @* [: t. G, X' S
所以如果是不同专业组队则有利的多。众所周知,数学建模特别需要数学和计算机的能力,所以在组队的时候需要优先考虑队中有这方面才能的人,根据现在的大学专业培养信息与计算科学,应用数学专业的较为有利,尤其是信息与计算科学可以说是数学和计算机专业的结合,两方面都有兼顾,虽然说这个专业的出路不是很好,数学和计算机都涉及点但是都没有真正的学通这两门专业的,但对于弄数学建模来说是再合适不过了。应用数学则偏重于数,但是一般来讲玩计算机的时间不会太少,尤其是在科学计算和程序设计都会设计到比较多,又有深厚的数学功底,也是很不错的选择。$ q' X- @+ {- F" z* K
% y# z! ~ ]: `! ? O! h$ K( z有不少的人会认为第一人选是数学方面的那第二人选就应该考虑计算机了,因为学计算机的会程序,其实这个概念可以说是对也可以说是不对的。之所以需要计算机方面的人是为了弥补数学方面的人在算法实践方面的不足,但是不是所有的计算机方面专业人都擅长算法实践的,如果要选的话就选擅长算法分析实践的,因为学计算机的不一定会程序,并且会程序的不一定会算法。拿出一个算法,让学计算机的编写程序实践不一定能行,不是小看计算机的,但是这种情况还是比较多的,不然可以看到参加ACM的数学系的居多,比学计算机的搞的好。因此一定要弄清这个概念,不是计算机的就适合的。 * _8 Z. F3 l0 B2 ?4 l7 d: l. S8 S; V1 E) ~! n
所以在组队中有两种人是必需的,一个是对建模很熟悉的,对各类算法理论熟悉,在了解背景后对此背景下的各类问题能建立模型,设计求解算法。一个是能将算法编制程序予以实现,求得解。当然有可能是一个人就将这两种都具备了,这样的话再找个任意具备上述两种能力的人就可以了,以减轻工作量,不然非累死不可。第三个就是专门需要写作的拉,从专业角度看是需要别的专业,比较适合的有生物、土木、机电、电信或机械等专业。在数学建模中各种背景的问题都会出现,所以有其他专业同学的话可以弥补专业知识方面的不足。 7 ~0 s" Z8 _! Z$ y, G. o% Z4 `- f( ~" G4 s( P
综上所述,组队要根据分工而来的,三个人要具备一个数学功底深厚,理论扎实,一个擅长算法实践,另一个是写作(弥补专业知识不足),如果一个组能有这样的人员配置是比较合理的。但是往往事事不能如意,所以不能满足这种人员配置的时候就尽量往这样人员配置靠。 0 ^ N1 n5 R' ` f# P9 H( F; Y) Z# Y5 R. s3 D4 Z) v
3 培 训 7 k8 R! ^9 Z7 E b# ^. W; S# b1 F9 C; b
很多刚接触数模的朋友都会碰到一个问题,那就是什么都不会做,看着题目不知道咱们下手,干着急,然后,一旦经过指导之后就知道该怎么做了,同时在做的过程中会碰到各种各样的问题,发现不是算法不了解就是软件不会使用。假使一个题目会做了,但是如果碰到另一个题目又不会了,又不知道该怎么办了。如何使新手尽快的成长是个大家很关心的问题,讨论的也很广泛。各个学校都又不同的方法,有的是开数学建模培训班,有的是以题带连,有的是通过协会普及教育...,各个学校都已形成自己的风格和方法。纵观这些方法,个人感觉有很多不是太科学的地方,有的学校投入很多但是出不了成绩,这时就需要调整下培训方法了。5 K2 d# z/ @; a" @
$ [8 X- M: X: M8 @检验数模学的成果如何是每年的全国赛和美国赛,形式都一样是以通讯的方式完成给定的选题。而做课题的一般进程就是建模型,解模型,写论文这三步。所以从这三个方面去培训是最有效的,因此个人认为最有效提高自己的水平就是以题带练,在实践中提高自己。 7 j, G& F8 n2 v$ t- S6 s/ T3 F2 v$ P' x6 |
0 u" K% ^ f1 w8 }& y/ h- `
8 n( @; e1 C) r
1. 建模型: $ x, t1 g/ d# ~0 |# f5 p6 a 8 q" _: m5 K* x& M- q建模型是最为关键的一步,新手往往是无从下手,这是因为知识面不光,缺乏背景知识,; C# A- N; w% Q: W2 |7 |$ P% e
2 b5 n' R' J: s背景知识对建模型来讲是很重要的,如果课题的背景刚好是本专业的,那就会知道问题的关键是什么,该怎么样去解决,而事实上往往不是这样,问题的背景是所不熟悉的领域,这个时候就需要查资料了解这个问题的背景和了解问题的发展,特点,关键所在以及前人是怎么解决的等等。因此需要训练查找资料和查找文献的能力。新手在知道该怎么做以后碰到的问题就是不会做,这个就是相关知识的缺乏了。9 B* M; b. |' f0 ^2 M- c. a: O- p
2 h* L3 _5 _+ g. U' W# }: ]. n比如需要做聚类分析,需要用遗传算法,需要做相关性分析等等的时候不知道该怎么做?这个就是相关知识的缺乏,当然知道了解掌握全部的算法和知识是不现实的,但是常用的算法和知识是必备的,也是必须的,数模论坛的ducy前辈(董乘宇)曾总结过数模竞赛应当掌握的十类算法(具体可去数模论坛查找):蒙特卡罗算法,数据拟合、参数估计、插值等数据处理算法,线性规划、整数规划、多元规划、二次规划等规划类算法,图论算法,动态规划、回溯搜索、分支定界等计算机算法,最优化理论的三大经典算法:模拟退火算法、神经网络算法、遗传算法,网格算法和穷举法,一些连续数据离散化方法,数值分析算法,图像处理算法。基本上涵盖了数模中几乎所有的算法了,如果掌握了这些对于运筹优化类的问题就可以轻松解决了,但是随着近些年的发展看概率统计的手段在数模中的作用越来越大,所以除了上述十大算法之外还应当对统计方法有相当的了解和掌握。6 [) {3 X4 T/ E* B' [* f
. x' @2 @- |) A: p9 Z
先前说过,要掌握所有的知识是不现实的,参加数模的其中一个能力就是现学现卖的能力,在最短的时间内掌握知识并将其应用,这个也是吸引很多同学为之着迷的原因,但这并不是说可以不去了解算法,什么都可以到竞赛的时候去学,那个时候就来不及了,因为只有了解的多,知识面宽广了,遇到问题时就知道该怎么办了,然后具体去解决问题。所以增广知识面,博览全书很重要。 ! U8 ^0 H) L0 J$ Q # v! U* v9 J. J4 X2 w: j& b4 S8 v1 r. T) o" W3 h, I9 E
9 P! I+ Y8 L4 y. `2. 解模型:4 a/ \& G$ A+ v4 K! z+ e
4 E: j, p( n6 {) p( ~ }% C: g! [模型建好了,该怎么解是个常常令人头痛的问题,这个不仅时新手,而且一般是令绝大多数同学头痛的问题,辛辛苦苦把模型建了,但是解不出结果来,这个时候往往时间很紧了,常常另人无奈,所以培训的时候多做这些方面的训练是十分必要的。解模型实质上就是算法的实践。一般来讲是用matlab,mathematica,lingo,lindo,spss等等数学软件来求解,当然有的时候c/c++是很实用的工具。在这里推荐几本数学软件的书《精通matlab6.5》(北航张志涌所著)、飞思工作室出的那套matlab6.5的书、《数学运算大师mathematica4》、万保成老师所写的电子版的《lingo8 for windows》、《最优化模型与实验》,这几本书都是很好的,对掌握这些数学软件是十分合适的。而有些算法数学软件往往无能为力,需要用c/c++来编制程序来解决,对于c/c++个人掌握程度不同,不过如果多看些算法方面的书,多做些ACM类的练习是十分必要的。 5 K9 Y/ {- z9 V5 I1 b P, f # l; D: h. }( _3 T- W7 n+ l- e9 v: e8 r% w( {5 E
0 w9 g2 p% g4 D! D4 选 题' z9 K K G$ Q$ u, n
; i0 T! T! ~2 L6 P6 M# [
在序中提到过如何选题,现在就具体展开讲讲。7 `7 Z7 e N% U; C9 R' H q" N
2 E4 D: j3 ~7 ~! s& {
全国赛分为本科组和大专组,每组A,B两题,A为连续的,B为离散的。就我来讲只有运筹优化和非运筹优化两类,运筹优化的题目只要题意理解正确,模型正确,能正常求解,有参考答案,只要解在参考答案附近那基本就能得奖了。而对于非运筹优化类则要麻烦的多了,各式各样的问题都有,并且好些非常不好入手,并且一般来讲没有参考答案,只要有思想有方法就会得到好的结果。 * h" T4 @; O7 Z/ P) [6 H / n( }% C3 c9 w! j* h所以一般来讲做优化问题简单的时候,做优化的比做非优化的人数要多。但是涉及到比较复杂的时候那就要颠倒下了。就得奖人数来说A,B两题的各级得奖人数是相仿的,这时如果做A的人数少则得奖率就高了多了,所以在选题人数比较悬殊的时候则要选选做的人数相对少的那个题做,而当选题人数比较平均的时候,就选自己拿手的做了。当然要知道这个选题比例那是不可能的,所以要实现小范围的互动了,由于一开始是赛区内评价所以在小范围内互动是有必要的,在自己的学校内尽量做到平均,不然就是自相惨杀了。 ' B* B1 G7 ^! r& K. J E5 J # y4 I( H1 s& V& b, _' K美国赛则为MCM和ICM两种,MCM为A,B两题,ICM为C题。每年参加美赛的对数都在逐步增长,增长的速度还相当的快。获奖比率却年年在变化,但是从总体上看ICM的获奖率则比MCM要高出不少,所以一般来讲,选C题获奖几率则比A,B两题要高出50%了。/ k, B5 T, F4 c2 B
/ c5 R& c% Q2 S& M+ a这样讲功利了,不过既然是去参加比赛,则就是要去拿奖了,不是讲风格讲什么的时候了。刺到见红,见真章的时候了。并且这样也是符合优化原理的,成功率最优化嘛,呵呵。 / v( `, Q( m& K / _1 D" p6 J5 D. G; z6 T但要注意的是所选的题一定要能保证做的出来,不然连个成功参赛奖都很难保证。 0 h/ o% r9 Y4 D6 ^% M/ t5 _; Q: l$ `9 T/ S! m8 ~1 b' t4 [
还有需要注意的是看起来入手容易的不一定好做,一般到一定地方后很难深入,运筹优化的很大一部分属于这类。而看起来无从下手的题目一旦找到突破口后那就是世外桃源了,就有很多东西可做。所以选题的时候一定要慎重,先把题目的意思搞懂搞透,然后根据自己的优势和能力在互动的情况下选择一个最有利于自己得奖的题做。; z# A- O. @7 @& u B1 u# z3 V
1 u7 O/ c( V7 ], Y9 i$ y9 E1 B2 M/ n8 o' z
3 b8 z7 y0 Y6 u& x* n @' V
5 文献资料查找 . f; N8 i9 x/ P6 C) E! P7 r" L% |7 u
在数学建模中文献资料的查找是十分关键,其实不仅是在数学建模中,在学习和做研究就是如此,不阅读文献资料就相当于闭门造车,什么都弄不出来,现在的工作几乎都可以说是站在前人的肩膀上,从出生开始就是站在前人的肩膀上了,所学的任何书本知识都是前人总结出来的。5 W9 D x5 g0 I3 ]
/ E$ U* A3 L) c% V# j2 C
通过文献资料的阅读可以知道别人在这个方面做了多少工作了,怎么做的工作,取得了哪些进展,还存在什么问题没解决,难点在哪里,热点在哪里,哪里是关键,哪些是有价值的,哪些是无意义的等等等等......,并且可以通过查找文献得到一些很有用的信息,比如某个教授的牛的程度,所擅长的领域等等,呵呵,翻教授老底了,比较好玩,选导师的时候强烈推荐。8 I5 o( B! I; L! ~7 P
4 s1 C& _. H$ N/ s* l8 T7 q, q, I9 [4 A
' {6 l; C% C, F( L
文献查找主要有三个模式: & Z$ S5 J2 D( k* W 3 B; c- [) s& L0 p' ?- cA. 书 ( i; m( s j; i7 c0 W4 l" h. w/ L. x1 f9 K+ Y+ F
B. 书+中外文期刊数据库7 e. s2 V4 r, ]6 {4 b
0 o7 l2 ~" V/ ^" b4 j1 XC. 书+中外文期刊数据库+学位论文* \+ b$ n) @4 J. E0 S, K
5 Q# v9 g" g2 C! k3 X6 v
D. 书+中外文期刊数据库+学位论文+搜索引擎' O1 Q7 [* f* C0 N* V7 g5 j
/ C. Z9 \6 {+ d在论文写作中一定要注意能用图表的地方尽量用图表来表示,图表比用文字阐述要来的清楚直接。一张图表往往能代替一大段干巴巴文字。并且图文并茂多爽啊,要知道教授们大都年纪不小了,为了教授们的眼睛,减轻他们受文字的折磨多用图表绝对是不二的选择。同时这也是偷懒和使论文增色的不二选择。! _7 T8 K I1 |4 V; X3 q
N5 j: y0 v; y. k! h须注意的是图表的引用要规范,在交叉引用的时候一定要小心,不然会对不上就麻烦了。如果用word写,则强烈推荐看候捷大牛写的《word排版艺术》,对于这本书不详细介绍了,搜索下就出来了,是本不错的东西,牛人的作品啊,的美赛论文就用它给搞定的,很不错。/ S9 l& t% G9 i R
: o- Q. {" ?7 N# d5 v" ]" O r0 ~- e& b& R4 Q1 n0 u
% I1 w) @( z* u, u. P再附上个用Word编辑论文的几个建议(作者不详): n& P, Y7 |! r, [, q, r* w' {
- G/ ]( k4 g3 M/ _# E0 X由于各方面的原因,大家主要还是用Microsoft Word (以下简称Word)编辑论文。Word在写科技论文方面虽然有一些先天不足,但却提供了非常强大的功能。如果不能充分利用这些功能,可能经常要为不断地调整格式而烦恼。我把自己以前使用Word的经验和教训总结一下,抛块砖。) H- O" t% b4 G. g4 r
% O2 @7 Q4 W+ J7 N- R原则: 内容与表现分离6 }. z6 B( @9 X: ?8 E& w$ r
" o6 L( f9 r2 a, u
一篇论文应该包括两个层次的含义:内容与表现,前者是指文章作者用来表达自己思想% c- a( I& G, l6 N/ J
- S- h: l% S* V$ n; W; N u
的文字、图片、表格、公式及整个文章的章节段落结构等,而后者则是指论文页面大小、边距、各种字体、字号等。相同的内容可以有不同的表现,例如一篇文章在不同的出版社出版会有不同的表现;而不同的内容可以使用相同的表现,例如一个期刊上发表的所有文章的表现都是相同的。这两者的关系不言自明。在排版软件普及之前,作者只需关心文章的内容,文章表现则由出版社的排版工人完成,当然他们之间会有一定交互。Word 倡导一种所见即所得(WYSIWYG)的方式,将编辑和排版集成在一起,使得作者在处理内容的同时就可以设置并 ; x9 t: R$ ^; `2 p0 N) w' ]! l% m' e/ r( g; n
立即看到其表现。可惜的是很多作者滥用WYSIWYG,将内容与表现混杂在一起,花费了大量的时间在人工排版上,然而效率和效果都很差。' x& q6 t1 z; @: J# z' O
1 c5 P- b4 D2 p: w& |本文所强调的“内容与表现分离”的原则就是说文章作者只要关心文章的内容,所有与内容无关的排版工作都交给Word 去完成,作者只需将自己的排版意图以适当的方式告诉Word。因为Word不仅仅是一个编辑器,还是一个排版软件,不要只拿它当记事本或写字板用。主要建议如下。 2 ]& s; K# K' U- i% l: q 9 `: B$ E# y0 _4 V8 j6 {3 i/ a) W( Y" r7 C
1 D+ p% \, W0 N) C! f
1. 一定要使用样式,除了Word原先所提供的标题、正文等样式外,还可以自定义样式。 " j$ j9 {* m Z0 K8 r9 X9 e# r0 K, Z( q y# b# w
如果你发现自己是用选中文字然后用格式栏来设定格式的,一定要注意,想想其他地方是否需要相同的格式,如果是的话,最好就定义一个样式。对于相同排版表现的内容一定要坚持使用统一的样式。这样做能大大减少工作量和出错机会,如果要对排版格式(文档表现)做调整,只需一次性修改相关样式即可。使用样式的另一个好处是可以由Word 自动生成各种目录和索引。5 f$ @& U# ^' e: f8 L P& l/ Y
" u2 o% A% C4 z. M' z3. 一定不要自己敲空格来达到对齐的目的。只有英文单词间才会有空格,中文文档没有空格。所有的对齐都应该利用标尺、制表位、对齐方式和段落的缩进等来进行。如果发现自己打了空格,一定要谨慎,想想是否可以通过其他方法来避免。同理,一定不要敲回车来调整段落的间距。 / ?; z; Y9 J# w0 l2 e' o. a % Z1 D6 j# z D# p绘图。; \0 W& Q6 C1 D) e
3 R. J# d* W, l! C8 I# V统计图建议使用Execel生成,框图和流程图建议使用Visio画。如果不能忍受Visio对象复制到Word的速度,还可以试试SmardDraw,功能不比Visio弱,使用不比Visio难,速度却快多了。如果使用Word的绘图工具绘图,最好以插入Word图片的方式,并适当使用组合。# C. r" M2 a F* O8 Z$ t) t) o
& z2 ^' m' q* O1 z2 L5 h; d5. 编辑数学公式建议使用MathType5.0,其实Word集成的公式编辑器是它的3.0版。安装MathType后,Word会增加一个菜单项,其功能一目了然。一定要使用MathType 的自动编号和引用功能。这样首先可以有一个良好的对齐,还可以自动更新编号。Word 正文中插入公式的一个常见问题是把上下行距都撑大了,很不美观,这部分可以通过固定行距来修正。" {' V# n5 Q6 @9 ?
3 S5 _3 q" e7 e) O1 V
参考文献的编辑和管理。如果你在写论文时才想到要整理参考文献,已经太迟了,但总比论文写到参考文献那一页时才去整理要好。应该养成看文章的同时就整理参考文献的习惯。手工整理参考文献是很痛苦的,而且很容易出错。Word没有提供管理参考文献的功能,用插入尾注的方法也很不地道。我建议使用Reference Manager,它与Word集成得非常好,提供即写即引用(Cite while you write,简称Cwyw)的功能。 ( B* g. Z- l% F& \2 {0 O1 O$ p( E: M7 R. N) O' C. j- h
你所做的只是像填表格一样地输入相关信息,如篇名、作者、年份等在文章中需要引用文献的的方插入标记,它会为你生成非常美观和专业的参考文献列表,并且对参考文献的引用编号也是自动生成和更新的。这除了可以保持格式上的一致、规范,减少出错机会外,更可以避免正文中对参考文献的引用和参考文献列表之间的不匹配。并且从长远来说,本次输入的参考文献信息可以在今后重复利用,从而一劳永逸。 0 K* O4 U' V- g 7 m x K; u& x5 r类似软件还有Endnote和Bi blioscape。Endnote优点在于可以将文献列表导出到BibTeX格式,但功能没有Reference Manager强大。可惜这两个软件都不支持中文,据说Biblioscape对中文支持的很好,我没有用过,就不加评论了。 - L4 y1 C4 [' ~, \. d/ E. ^7 H& e) N5 F c1 S3 v! I
7.使用节。如果希望在一片文档里得到不同的页眉、页脚、页码格式,可以插入分节符, : q2 w8 \* Z" A( R Y7 Z 4 g) ?7 X$ |3 k并设置当前节的格式与上一节不同。. w8 _* ?9 Y1 J; n
9 s" U r4 Z f& q7 M
6 k# Y( L7 b- U. C2 D ( i2 h9 T0 i+ v8 C; X上述7点都是关于排版的建议,还是要强调一遍,作者关心的重点是文章的内容,文章的表现就交给Word去处理。如果你发现自己正在做与文章内容无关的繁琐的排版工作,一定要停下来学一下Word的帮助,因为Word 早已提供了足够强大的功能。 + u0 k; i# \# W1 }% G8 R , v9 Y7 o0 Z* ^/ }我不怀疑Word的功能,但不相信其可靠性和稳定性,经常遇到“所想非所见”、“所见非所得”的情况让人非常郁闷。如果养成良好的习惯,这些情况也可以尽量避免,即使遇上,也可以将损失降低到最低限度。建议如下: ! D+ M- ?$ c0 t; P% q2 e, i3 ?' n3 l
8. 使用子文档。学位论文至少要几十页,且包括大量的图片、公式、表格,比较庞大。如果所有的内容都保存在一个文件里,打开、保存、关闭都需要很长的时间,且不保险。建议论文的每一章保存到一个子文档,而在主控文档中设置样式。这样每个文件小了,编辑速度快,而且就算文档损坏,也只有一章的损失,不至于全军覆灭。建议先建主控文档,从主控文档中创建子文档,个人感觉比先写子文档再插入到主控文档要好。& }$ D% r3 A) A6 r
* J7 g. x4 }" g! a) ^第二天中午开始则要开始动笔写论文了,一边分析问题一边写论文。如果到题目做完了再写则来不及了。在下午的时候则要把模型构建好了,并开始求解,到第三天中午的时候则要基本完成模型的求解了。到第三天晚上则要基本完成论文了。并要不断的修改论文,开始最后最关键的一环,艰苦卓越的修改修改再修改的过程。这个时间安排是最理想的,能达到如此的队一般都能取得较好的成绩,但是很多队大都是前松后紧,我们队也是,慢热。结果往往时间不够,最后的环节没做好导致前功尽弃。这个教训很是深刻啊。在建模中往往会出现有分歧的时候,我和我的队友在建模中则经常出现,难得有一致的意见。 6 ~1 p4 J( N% H, p+ K% Q* p2 X9 W 5 l5 U5 r! W7 B1 M但是我们正是在这种分歧中对题目了解的更透彻,对细节搞的更清楚。我专职数学我的队友专职计算机,因此在考虑问题的时候从数学角度出发,我的队友从计算机程序算法角度出发,着重复杂性研究,不发生分歧才怪,经常争的面红耳赤,就差动手了。虽然如此,但丝毫不损伤个人感情。/ q8 E. Z# {# R/ }& S% t
5 E5 t/ \& i1 i在这个时候则要耐着性子坐下来好好分析问题,将我们的分歧展开谈,将各自方法的优点结合,扬长避短,做的尽可能的好。而当实在不能融合的时候则一定要有一个让一步,先将题目做下去,不能僵在那里,让时间白白流逝。在做下去的过程中会发现问题再进行弥补的。在三天的工作中团结就是力量,一定不能发生内讧。不能有个人英雄主义的行为出现,并且一定不能精神疲惫,一定要有激情有信心。4 M, K. ~$ X: O