十类数学建模中的算法.docx
《十类数学建模中的算法.docx》由会员分享,可在线阅读,更多相关《十类数学建模中的算法.docx(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、十类数学建模中的算法十类数学建模中的算法1、蒙特卡罗算法: S: T4 h, v# l3 v. j在大多数建模赛题中都离不开计算机的仿真,随机性模拟是非常常见的算法之一。 举个例子就是97年的A题,每个零件都有自己的标定值,也都有自己的容差等级,而求解最优的组合方案将要面对着的是一个极其复杂的公式和108种容差选取方案,根本不可能去解析求解的,那如何去找到最优的方案呢?随机性模拟搜索最优方案就是其中的一种方法,在每个零件可行的区间中按照正态分布随机的选取一个标定值和选取一个容差值作为一种方案,然后通过蒙特卡罗算法仿真出大量的方案,从中选取一个最佳的。另一个例子就是去年的彩票第二问,要求设计一种
2、更好的方案,首先方案的优劣决定于很多复杂的因素,同样不可能刻画出一个模型进行求解,只能靠随机仿真模拟。 2、数据拟合、参数估计、插值等算法: ( $ g% g. ( R: u4 D0 P数据拟合在很多赛题中有应用,与图形处理有关的问题很多与拟合有关系,一个例子就是98年美赛A题,生物组织切片的三维插值处理,94年A题逢山开路,山体海拔高度的插值计算,还有吵的沸沸扬扬可能会考的非典问题也要用到数据拟合算法,观察数据的走向进行处理。此类问题在Matlab中有很多数据处理现成的函数可以调用,熟悉Matlab,这些方法都能游刃有余的做好。 ) 0 Z+ m. u1 r5 D; t; D% N 3、规划
3、类问题算法: - d8 J( F! w8 w, v 竞赛中很多问题都和数学规划有关,可以说不少的模型都可以归结为一组不等式组作为约束条件、几个函数表达式作为目标函数的问题,遇到这类问题,求解就是关键了,比如98B,用很多不等式完全可以把问题刻画清楚,因此列举出规划后用Lindo、Lingo等软件来进行解决比较方便,所以还需要熟悉这两个软件。 4、图论问题: $ z) M- Z( 9 L! k7 L: T* A# f98B、00B、95锁具装箱等问题体现了图论问题的重要性,这类问题算法有很多,包括:Dijkstra、Floyd、Prim、Bellman-Ford,最大流,二分匹配等问题。每一个算
4、法认真的话都应该写一遍,否则到比赛时再写就晚了, 2 d4 U3 J! 5 j6 u5、计算机算法设计中的问题: 9 z# J x5 L7 J% qh计算机算法设计包括很多内容:动态规划、回溯搜索、分治算法、分支定界。比如92B用分支定界法,97B是典型的动态规划问题,此外98B体现了分治算法。这方面问题和acm中的问题类似,推荐的书籍有计算机算法设计与分析电子工业出版社等与计算机算法有关的书。 * B. C4 B( P3 d8 m; ls6、最优化理论的三大非经典算法: w2 n% 8 k/ r: u模拟退火法、神经网络、遗传算法。这十几年来最优化理论有了飞速发展,这三类算法发展很快,近几年
5、的赛题越来越复杂,很多问题没有什么很好的模型可以借鉴,于是这三类算法很多时候可以派上用场,比如:97A的模拟退火算法、00B的神经网络分类算法、象01B这种难题也可以使用神经网络、还有美国竞赛89A也和BP算法有关系,当时是86年刚提出BP算法,89年就考了,说明赛题可能是当今前沿科技的抽象体现。03B伽马刀问题也是目前研究的课题,目前算法最佳的是遗传算法。 7、网格算法和穷举算法 网格算法和穷举法一样,只是网格法是连续问题的穷举。比如要求在N个变量情况下的最优化问题,那么可以对这些变量可取的空间进行采点,比如在a,b区间内取M+1个点,就是在a、a+(b-a)/M、a+2*(b-a)/M、b
6、那么这样循环就需要进行(M+1)N次运算,所以计算量很大。 比如97年A题、99年B题都可以用网格法搜索,这种方法最好在运算速度叫快的计算机中进行,还有要用高级语言来做,最好不要用Matlab做网格,否则会算很久的。穷举法大家都熟悉,就不说了。 # m% ) U9 M, S# % d. Z8、一些连续离散化方法 0 l1 E % E& m: K+ p大部分物理问题的编程解决,都和这种方法有一定的联系,物理问题是反映我们生活在一个连续的世界中,计算机求解只认离散的变量,所以需要将连续量进行离散处理,这种方法应用很广,大都和上面的很多算法有关,事实上,网格算法、蒙特卡罗算法、模拟退火都用了这个思想
7、。 9、数值分析算法 这类算法是针对高级语言而专门设的,如果你用的是Matlab、Mathematica,大可不必准备,因为象数值分析中有很多函数一般的数学工具是具备的。 + m6 H9 y5 v9 g8 G10、图象处理算法 5 R1 kZs* z. N. P: Z% D/ J6 d3 W+ C01A中需要你会读bmp图象、98美赛A需要你知道三维插值计算,03B要求更高,不但需要编程计算还要进行处理,而数模论文中也有很多图片需要展示,因此图象处理就是关键,做好这类问题,重要的是把Matlab学好,特别是图象处理的部分。 哈工大数模T. N; |6 a3 r5 U蒙特卡罗算法蒙特卡罗算法Mo
8、nte Carlo 编辑本段统计模拟法蒙特卡罗也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。蒙特卡罗方法的名字来源于摩纳哥的一个城市蒙地卡罗,该城市以赌博业闻名,而蒙特罗方法正是以概率为基础的方法。与它对应的是确定性算法。蒙特卡罗方法在金融工程学,宏观经济学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)等领域应用广泛。 基本思想当所求解问题是某种随机事件出现的概率,或者是某个随机变量的期望值时,通过某种“实验”的方法,以这
9、种事件出现的频率估计这一随机事件的概率,或者得到这个随机变量的某些数字特征,并将其作为问题的解。 有一个例子可以使你比较直观地了解蒙特卡罗方法:假设我们要计算一个不规则图形的面积,那么图形的不规则程度和分析性计算(比如,积分)的复杂程度是成正比的。蒙特卡罗方法是怎么计算的呢?假想你有一袋豆子,把豆子均匀地朝这个图形上撒,然后数这个图形之中有多少颗豆子,这个豆子的数目就是图形的面积。当你的豆子越小,撒的越多的时候,结果就越精确。在这里我们要假定豆子都在一个平面上,相互之间没有重叠。 工作过程在解决实际问题的时候应用蒙特卡罗方法主要有两部分工作:用蒙特卡罗方法模拟某一过程时,需要产生各种概率分布的
10、随机变量。 用统计方法把模型的数字特征估计出来,从而得到实际问题的数值解。 计算步骤使用蒙特卡罗方法进行分子模拟计算是按照以下步骤进行的: 使用随机数发生器产生一个随机的分子构型。 对此分子构型的其中粒子坐标做无规则的改变,产生一个新的分子构型。 计算新的分子构型的能量。 比较新的分子构型于改变前的分子构型的能量变化,判断是否接受该构型。 若新的分子构型能量低于原分子构型的能量,则接受新的构型,使用这个构型重复再做下一次迭代。 若新的分子构型能量高于原分子构型的能量,则计算玻尔兹曼常数,同时产生一个随机数。 若这个随机数大于所计算出的玻尔兹曼因子,则放弃这个构型,重新计算。 若这个随机数小于所
11、计算出的玻尔兹曼因子,则接受这个构型,使用这个构型重复再做下一次迭代。 如此进行迭代计算,直至最后搜索出低于所给能量条件的分子构型结束。 在数学中的应用通常蒙特卡罗方法通过构造符合一定规则的随机数来解决数学上的各种问题。对于那些由于计算过于复杂而难以得到解析解或者根本没有解析解的问题,蒙特卡罗方法是一种有效的求出数值解的方法。一般蒙特卡罗方法在数学中最常见的应用就是蒙特卡罗积分。 积分非权重蒙特卡罗积分,也称确定性抽样,是对被积函数变量区间进行随机均匀抽样,然后对被抽样点的函数值求平均,从而可以得到函数积分的近似值。此种方法的正确性是基于概率论的中心极限定理。当抽样点数为m时,使用此种方法所得
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数学 建模 中的 算法
限制150内