/ |4 J5 Z0 c" U: {* q. q, ^& ^ 04 图论算法3 L' E/ d8 f$ a
这类问题算法有很多,包括:Dijkstra、Floyd、Prim、Bellman-Ford,最大流,二分匹配等问题。 * m' ~* u% h3 a3 g( p, d7 S7 S $ `6 O, D M f5 t. H0 t2 ~. `8 L# z, a+ n
关于此类图论算法,可参考 IntroductiontoAlgorithms--算法导论,关于图算法的第22章-第26章。' K/ ?3 P; S6 u
8 f2 C; j( Y% v: E' T
! r. a; ^+ |8 y( j7 J1 M# Z , v$ d# y) c. v H# y- `9 ? % h! G( ?6 P* r% T' x* B& c3 L3 |% J; L( y
* ~' ~. R. J. D! L' c 05 动态规划、回溯搜索、分治算法、分支定界等计算机算法 ! x0 c5 F9 x+ Q; X( u9 e* O' e在数学建模竞赛中,如:92 年 B 题用分枝定界法,97年 B 题是典型的动态规划问题,此外 98 年 B 题体现了分治算法。 2 V8 m) a/ ~4 y: E) p / S. W4 _$ A+ ~; K0 B3 j5 |0 y8 F, ?7 F. z; N, q0 m
8 w0 G6 s% z X. x
/ N% m9 f. d% h' m5 ^+ r! G
7 Y! z9 ?( ~5 n9 v * v' a+ g8 ]/ y+ r- `! b( Z- j& n4 z这方面问题和 ACM 程序设计竞赛中的问题类似,推荐看一下算法导论,与《计算机算法设计与分析》(电子工业出版社)等与计算机算法有关的书。 - k" W. |! A+ B. p' k7 V* `" V- P: F" Q6 |$ P
: m, l% t; ]2 G. T
06 最优化理论的三大经典算法:模拟退火法、神经网络、遗传算法) h' H8 @; h; y1 R
这十几年来最优化理论有了飞速发展,模拟退火法、神经网络、遗传算法这三类算法发展很快。, P" s8 }2 P/ l9 O
$ p& a! }0 O4 Y1 R
9 r$ x: \3 z2 K% ?( \9 ~ K
在数学建模竞赛中:比如 97 年 A 题的模拟退火算法,00 年 B 题的神经网络分类算法,01 年 B 题这种难题也可以使用神经网络。2 o6 |- `6 S3 L( L! c2 D
: i D1 H% x& [5 J 7 N. }* H: x5 f8 F还有美国竞赛 89 年 A 题也和 BP 算法有关系,当时是 86 年刚提出 BP 算法,89 年就考了,说明赛题可能是当今前沿科技的抽象体现。5 ~+ h9 o7 h: M( w* ~8 y3 @' @: C' L
2 l3 F3 g1 l) J) S1 }4 Y, [* h
: y+ O0 k6 P/ }& S0 `
03 年 B 题伽马刀问题也是目前研究的课题,目前算法最佳的是遗传算法。 ( X) T$ f O9 Z/ u5 V' R- m5 G3 ~( G w o4 h; q9 H* g1 f; F& l
9 Q; d4 K" ?, j* B9 N. y/ n( ]: O0 U' L5 ]# x+ T# Q+ P, [( y: O- B
: G3 G( d5 H1 D
j2 m1 J4 K4 A% D. i ! E4 l( I. Y$ S' ^% K9 e & `- H' ~& ?: Y
- W5 N. T* C8 B' Q" Q
! @( y. J! y" i( i
07 网格算法和穷举法" j% h5 Z' ^6 o' S3 N; }4 [" u
网格算法和穷举法一样,只是网格法是连续问题的穷举。% Z* `: ^ n0 { [
, k+ o6 {2 x3 {1 h( f$ s2 A. v3 n& m
比如要求在 N 个变量情况下的最优化问题,那么对这些变量可取的空间进行采点,比如在 [a;b] 区间内取 M+1 个点,那么这样循环就需要进行 (M+1)N 次运算,所以计算量很大。 ' f# D2 C1 b* x+ P& m0 s, |# A . _! |4 y7 W. ]/ {0 b7 N: ^+ j5 s8 @3 Y" Y; g# L
在数学建模竞赛中:比如 97 年 A 题、99 年 B 题都可以用网格法搜索,这种方法最好在运算速度较快的计算机中进行,还有要用高级语言来做,最好不要用MATLAB 做网格,否则会算很久。0 p8 r" z% n+ Y1 x, z" s2 b
! i* H1 D( V/ B& p: O& f! r3 o2 {) s- P6 g
穷举法大家都熟悉,自不用多说了。 1 n8 {* E8 H7 }1 r) G4 {+ o - k: v8 p3 }& s* u- B' p5 n' a! Z2 K8 s. s8 m
08 一些连续离散化方法 . S7 M# U, y0 r) f/ J大部分物理问题的编程解决,都和这种方法有一定的联系。物理问题是反映我们生活在一个连续的世界中,计算机只能处理离散的量,所以需要对连续量进行离散处理。: e) z o J F$ a
/ I6 [9 C; y* n% i# p1 t1 b
5 |$ h2 }, m! l1 _9 R4 ^
这种方法应用很广,而且和上面的很多算法有关。事实上,网格算法、蒙特卡罗算法、模拟退火都用了这个思想。 0 ^5 C( W6 P6 D: A5 w: ?; P7 c% P/ G0 O" M i/ A
9 N, ?: y1 b9 H
09 数值分析算法+ j6 S1 x0 H+ o9 [* J
数值分析(numericalanalysis),是数学的一个分支,主要研究连续数学(区别于离散数学)问题的算法。 ; y$ |! B0 y- l) n/ ^) W: V& P9 w1 x6 _4 H8 P8 v
4 R! k. w* o' V4 y. ~如果在比赛中采用高级语言进行编程的话,那一些数值分析中常用的算法比如方程组求解、矩阵运算、函数积分等算法就需要额外编写库函数进行调用。 ; @, a; j, W' q$ W3 J c3 ^ ) R( x5 Y+ g( u" ^. d' g6 n0 c: [ 6 R3 i# P, d7 l {- L$ B" E这类算法是针对高级语言而专门设的,如果你用的是 MATLAB、Mathematica,大可不必准备,因为像数值分析中有很多函数一般的数学软件是具备的。9 `2 p0 j! M R8 F3 C( p6 l6 y
+ G6 G e8 b3 G, v8 w2 a
' g$ h8 U$ ^* @* Z* n! L3 ~- x 10 图象处理算法 4 ^7 z. b! u7 a8 A2 F在数学建模竞赛中:比如 01 年 A 题中需要你会读 BMP 图象、美国赛 98 年 A 题需要你知道三维插值计算,03 年 B 题要求更高,不但需要编程计算还要进行处理,而数模论文中也有很多图片需要展示,因此图象处理就是关键。做好这类问题,重要的是把 MATLAB 学好,特别是图象处理的部分。9 I# f" @- ^1 t! P! B
) L8 n; Z7 K, J5 f7 T6 W0 W# @/ ?, Y) e, w7 M+ Z
3 H# {* @' I9 z" d' U6 J , ~; m) Y7 _5 R6 M$ _# G———————————————— 5 f; X h4 g8 u6 K+ K& A, A/ w版权声明:本文为CSDN博主「文宇肃然」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。( c4 h) y* d: G1 G. k6 ? Z* ]- G
原文链接:https://blog.csdn.net/wenyusuran/article/details/114093268 y2 e" L/ g+ P0 A# R
+ A2 T- c) O/ y) n6 z+ W9 L
; M- `6 X8 V+ @. B9 w8 c: k3 L1 A