- 0
- 0
- 约5.41千字
- 约 34页
- 2019-10-20 发布于浙江
- 举报
数学建模竞赛中应当掌握的十类算法 蒙特卡罗算法 数据处理算法 数学规划算法 图论算法 动态规划、回溯搜索、分治算法、分支定界 三大非经典算法 网格算法和穷举法 连续离散化方法 数值分析算法 图象处理算法 1、蒙特卡罗算法 该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟可以来检验自己模型的正确性,是比赛时必用的方法 蒙特卡罗(Monte Carlo)方法,或称计算机随机模拟方法,是一种基于“随机数”的计算方法。这一方法源于美国在第一次世界大战进研制原子弹的“曼哈顿计划”。该计划的主持人之一、数学家冯·诺伊曼用驰名世界的赌城—摩纳哥的Monte Carlo—来命名这种方法,为它蒙上了一层神秘色彩。 考虑平面上的一个边长为1的正方形及其内部的一个形状不规则的“图形”,如何求出这个“图形”的面积呢?Monte Carlo方法是这样一种“随机化”的方法:向该正方形“随机地”投掷N个点落于“图形”内,则该“图形”的面积近似为M/N。 另一类形式与Monte Carlo方法相似,但理论基础不同的方法—“拟蒙特卡罗方法” (Quasi-Monte Carlo方法)—近年来也获得迅速发展。我国数学家华罗庚、王元提出的“华—王”方法即是其中的一例。这种方法的基本思想是“用确定性的超均匀分布序列(数学上称为Low Discrepancy Sequences)代替Monte Carlo方法中的随机数序列。对某些问题该方法的实际速度一般可比Monte Carlo方法提出高数百倍,并可计算精确度。 具体实现的matlab代码: --------------------------------------------------------------------------------------------------- function val = ballvol(n, m) % BALLVOL Compute volume of unit ball in R^n % % Computes the volume of the n-dimensional unit ball % using monte-carlo method. % usage: val = BallVol(n, m) % where: n = dimension % m = number of realisations % If the second argument is omitted, 1e4 is taken as default for m. % (c) 1998, Rolf Krause, krause@math.fu-berlin.de M = 1e4; error = 0; if(nargin 1 | nargin 2), error(wrong number of arguments); end if nargin == 2, M = m; end R = rand(n, M); in = 0; for i=1:M if(norm(R(:,i),2) = 1.0), in = in+1; end end val = 2^n*in/M; 2、数据拟合、参数估计、插值等数据处理算法 数据拟和: 从给出的一大堆数据中找出规律,即设法构造一条曲线(拟和曲线)反映数据点总的趋势,以消除其局部波动。 参数估计:对给定的统计问题,在建立了统计模型以后,我们的任务就是依据样本对未知总体进行各种推断,参数估计是统计推断的重要内容之一。包括点估计方法、频率替换法、矩法、极大似然估计法 插值法是函数逼近的一种重要方法,包括多项式插值、分段插值和三角插值 3、数学规划算法 线性规划、整数规划、多元规划、二次规划等规划类问题(建模竞赛大多数问题属于最优化问题,很多时候这些问题可以用数学规划算法来描述,通常使用Lindo、Lingo软件实现) 4、图论算法 这类算法可以分为很多种,包括最短路、网络流、二分图等算法,涉及到图论的问题可以用这些方法解决,需要认真准备 5、动态规划、回溯搜索、分治算法、分支定界 这些算法是算法设计中比较常用的方法,很多场合可以用到竞赛中 动态规划 它建立在最优原则的基础上。采用动态规划方法,可以优雅而高效地解决许多用贪婪算法或分而治之算法无法解决的问题。动态规划方法在解决背包问题、图象压缩、矩阵乘法链、最短路径、无交叉子集和元件折叠等方面的有很大作用。 算法思想 和贪婪算法一样,在动态规划中,可将一个问题的解决方案视为一系列决策的结果。不同的是,在贪婪算法中,每采用一次贪婪准则便做出一个不可撤回的决策,而在动态规
原创力文档

文档评论(0)