1 ?; W8 r% }4 `+ n6 k; v& _# ` 9 I6 ]' N* \* q$ ?二、数据拟合、参数估计、插值等数据处理算法. S9 y* |" F, W! M) [/ \
我们通常会遇到大量的数据需要处理, 而处理数据的关键就在于这些算法,通常使用Matlab作为工具。 $ v& h& n/ m) W7 F3 e/ @) l" E数据拟合在数学建模比赛中中有应用,与图形处理有关的问题很多与拟合有关系,一个例子就是98年数/ J9 M& W) c. F! Q3 a" q, N
学建模美国赛A题,生物组织切片的三维插值处理,94年A题逢山开路,山体海拔高度的插值计算,还有 ! h9 [8 D0 ?1 q4 z2 f吵的沸沸扬扬可能会考的“非典”问题也要用到数据拟合算法,观察数据的走向进行处理。 7 p1 V, W) c6 k/ Y6 g' L |) {( M: j3 e0 E' B) L1 m
此类问题在 MATLAB 中有很多现成的函数可以调用,熟悉MATLAB,这些方法都能游刃有余的用好。# h. L: e5 B/ e, }! [+ [
2 |+ J& ~4 S. {6 v
. ?/ W4 h4 |' c3 ^0 {9 W ?; k% W
三、线性规划、整数规划、多元规划、二次规划等规划类问题 . Y8 e* ?" n7 L数学建模竞赛中很多问题都和数学规划有关,可以说不少的模型都可以归结为一组不等式作为约束条件+ c4 K# [) ?- d
、几个函数表达式作为目标函数的问题,遇到这类问题,求解就是关键了,比如98年B题,用很多不等式 / _) t( Z" _ V' C5 o& x完全可以把问题刻画清楚,因此列举出规划后用 Lindo 、 Lingo 等软件来进行解决比较方便,所以还 1 L' p2 f) i" |/ k0 C j" |$ }需要熟悉这两个软件。6 Y7 y7 K. Y1 E" _6 ?1 Z g
9 e$ M& O, P1 u, c# T- P4 d# r- i' @: u# @7 U" X
四、图论算法4 n( U1 b; V, l5 T+ R$ D
这类问题算法有很多, - D/ s; @: c4 ?) Q4 f$ `包括: Dijkstra 、 Floyd 、 Prim 、 Bellman-Ford ,最大流,二分匹配等问题。 ' e+ Z2 Z- [" P' _ ; n. X3 s3 p A
关于此类图论算法,可参考Introduction to Algorithms--算法导论,关于图算法的第22章-第26章。, {. Y- g- R8 n/ \, J% ]4 I
同时,本BLOG内经典算法研究系列,对Dijkstra算法有所简单描述,. g$ e- c, J( a* a) _
----------- + r) j; m, e6 ~4 \- j/ D; s! O4 b J4 K经典算法研究系列:二、Dijkstra 算法初探 , U& y& T& A5 W! hhttp://blog.csdn.net/v_JULY_v/archive/2010/12/24/6096981.aspx- w P3 x/ A1 A) h1 j
更多,请关注本BLOG 日后更新的博文。 4 P/ g/ ^( s* Y; K5 ^: w5 c8 n ( D: ]" G [ U3 O! X$ [% i8 k! i* H/ \
五、动态规划、回溯搜索、分治算法、分支定界等计算机算法- x( l( b% i; v; t7 i
在数学建模竞赛中,如:92 年B题用分枝定界法, 97年B题是典型的动态规划问题, ' G. {9 s. {, b此外 98 年 B 题体现了分治算法。1 Y7 W+ ~, E5 ~$ ^
% U, X* N* w/ ]0 Z这方面问题和 ACM 程序设计竞赛中的问题类似, $ J5 W9 M1 Q: w推荐看一下算法导论,与《计算机算法设计与分析》(电子工业出版社)等与计算机算法有关的书。& ^6 T8 [7 S: M
+ Q U5 b) D/ C+ i
2 Y) r1 D! C) B1 s$ |
六、最优化理论的三大经典算法:模拟退火法、神经网络、遗传算法 / M' y; ]0 z/ [: C1 H3 l
这十几年来最优化理论有了飞速发展,模拟退火法、神经网络、遗传算法这三类算法发展很快。# p0 c, l# v, N% K( y' ]0 e
在数学建模竞赛中:比如97年A题的模拟退火算法,00年B题的神经网络分类算法,01年B题这种难题也可 7 b: x9 o3 x8 O; c6 W/ }以使用神经网络,还有美国竞赛89年A题也和 BP 算法有关系,当时是86年刚提出BP算法,89年就考了,# w0 X/ _- F8 @4 z
说明赛题可能是当今前沿科技的抽象体现。 * u$ C6 k t/ E6 ~& s
03 年 B 题伽马刀问题也是目前研究的课题,目前算法最佳的是遗传算法。 - A, |; b4 \3 U- m2 Y* i5 U * e6 z* n* l% d& e# g) f* j4 E另,本人对人工智能非常感兴趣,遗传算法已在本BLOG内有所阐述,敬请参见。2 z+ {; ^) S1 o% @4 X8 t! ~3 Y
----------3 D' p7 z' \" l8 E8 J
经典算法研究系列:七、深入浅出遗传算法,透析GA本质 7 ?: P6 N" { @) thttp://blog.csdn.net/v_JULY_v/archive/2011/01/12/6132775.aspx ' A( T# z% q4 j5 M - U' y9 C K9 A
其它俩大算法,模拟退火法,与神经网络,也定会在本BLOG内日后的博文更新中,详细阐述。3 p4 a+ C8 y2 C
+ s0 f) p$ P: U# W* C" b 5 g$ h' m7 i, C' d+ @. @9 G; A% V+ a七、网格算法和穷举法 0 y2 O, Q3 M4 Y9 l- r$ e/ a% V网格算法和穷举法一样,只是网格法是连续问题的穷举。& x5 D. K; A2 c# @1 j0 |
比如要求在 N 个变量情况下的最优化问题,那么对这些变量可取的空间进行采点,8 h; R. |1 K5 p
比如在 [ a; b ] 区间内取 M +1 个点,就是 a; a +( b ? a ) =M; a +2 ¢ ( b ? a ) =M ; …;b0 W$ a! B! P. c/ F; e9 i
那么这样循环就需要进行 ( M + 1) N 次运算,所以计算量很大。! R( q- I" q6 b1 f+ w9 I
! v- V7 e9 p# V5 e1 k在数学建模竞赛中:比如 97 年 A 题、 99 年 B 题都可以用网格法搜索,这种方法最好在运算速度较 3 C9 z9 A0 `& n& z1 T) P9 f. H快的计算机中进行,还有要用高级语言来做,最好不要用 MATLAB 做网格,否则会算很久。* [/ v2 c/ B% d6 t
穷举法大家都熟悉,自不用多说了。 7 A: `3 \0 g: V. [+ l * F6 a( C: X7 z$ G( ^+ |2 { G$ A$ u& \' x
八、一些连续离散化方法 & E1 @8 X8 U, {4 q ~- F- ~8 B大部分物理问题的编程解决,都和这种方法有一定的联系。物理问题是反映我们生活在一个连续的世界7 e9 R7 t( @3 A9 F
中,计算机只能处理离散的量,所以需要对连续量进行离散处理。 / P( `6 b) g4 o% o6 \2 ^9 V . h1 X1 P1 c. N这种方法应用很广,而且和上面的很多算法有关。' j7 M6 ?! J' o: Q
事实上,网格算法、蒙特卡罗算法、模拟退火都用了这个思想。 ) i; z2 s( x' e; _/ ] V6 B
' C; |, Q0 h9 }' a
6 J- V. e+ [ j) |6 J( U九、数值分析算法. a5 B2 B/ d( g0 A. V$ F
数值分析(numerical analysis),是数学的一个分支,主要研究连续数学(区别于离散数学)问题的9 g/ r( u+ N [6 b
算法。9 X! K6 K- c, a: Q) B# }* I
如果在比赛中采用高级语言进行编程的话,那一些数值分析中常用的算法比 如方程组求解、矩阵运算、9 K, ]% _- h- A- L" S5 @
函数积分等算法就需要额外编写库函数进行调用。7 T1 `4 m, H5 k4 k. R9 ^ r
这类算法是针对高级语言而专门设的,如果你用的是 MATLAB 、 Mathematica ,大可不必准备,' a, g, f5 ^- u3 a3 l+ g
因为像数值分析中有很多函数一般的数学软件是具备的。0 C1 ^2 b7 [1 Y
% B' i! D" ~( _! o2 m
; V l% _8 t7 m- R9 T, x十、图象处理算法# Y g# w; g f/ z
在数学建模竞赛中:比如01 年 A 题中需要你会读 BMP 图象、美国赛 98 年 A 题需要你知道三维插值/ W3 M a3 ?- ]1 ]$ ]
计算, 03 年 B 题要求更高,不但需要编程计算还要进行处理,而数模论文中也有很多图片需要展示," W+ Z( z2 F9 ?2 |0 d5 y
因此图象处理就是关键。做好这类问题,重要的是把MATLAB 学好,特别是图象处理的部分。 0 X) ^6 g2 y7 d5 t! W* c ; u: {- m% O; P0 o# v V" |4 _此数学建模十大算法的程序源码打包,请于此处下载:5 s$ X- c$ r3 }8 I( ~" m http://download.csdn.net/source/3007336 [; N7 A _6 i$ U) F & S8 S9 k: C2 I) F7 R
本人对算法,尤其感兴趣,且日渐愈浓, / L4 G: N+ R5 G6 ~/ X$ S8 k5 ]* N/ I7 r日后,更多的、好的、经典实用算法将会在本BLOG内有所详细而细致入微的阐述与深入研究。 y @# `1 N4 d完。9 L, Y2 A5 M$ ?5 ]
. J% ~7 \' q" O$ F9 H/ }: b" I
" N1 p( H. w4 V# _9 m7 w作者声明:% I' E+ ~1 T; F& f, v o$ u
本人July对本博客所有任何文章、内容和资料享有版权, j: z& ~. ~- ? R6 K' b/ E转载请注明作者本人July及出处。谢谢。二零一一年一月二十九日。