该算法又称计算机随机性模拟方法,也称统计试验方法。这 一方法源于美国在第一次世界大战进行的研制原子弹的“曼 哈顿计划”。该计划的主持人之一、数学家冯·诺伊曼用驰名 世界的赌城—摩纳哥的 Monte Carlo—来命名这种方法。 MC方法是一种基于“随机数”的计算方法,能够比较逼真地 描述事物的特点及物理实验过程,解决一些数值方法难以解 决的问题。MC方法的雏型可以追溯到十九世纪后期的蒲丰(Buffon) 随机投针试验,即著名的蒲丰问题。 MC方法通过计算机仿真(模 拟)解决问题,同时也可以通过模拟来检验自己模型的正确 性,几乎是比赛时必用的方法。
比赛中通常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,通常使用
MATLAB
作为工具。与图形处理有关的问题很多与拟合有关系。
此类问题主要有线性规划、整数规划、多元规划、二次规划等。竞赛中很多问题都和数学规划有关,可以说不少的模型都可以归结为一组不等式作为约束条件、几个函数表达式作为目标函数的问题,遇到这类问题,求解就是关键了。
这类问题算法有很多,包括:
Dijkstra
、Floyd
、Prim
、Bellman-Ford
,最大流,二分匹配等问题。
计算机算法设计包括很多内容:动态规划、回溯搜索、分治算法、分枝定界等计算机算法。
模拟退火法(SA)、神经网络(NN)、遗传算法(GA)
网格算法和穷举法一样,只是网格法是连续问题的穷举。比如要求在
N
个变量情况下的最优化问题,那么对这些变量可取的空间进行采点,比如在[a, b]
区间内取M+1
个点, 就是a,a+(b-a)/M,a+2(b-a)/M,...,b
。那么这样循环就 需要进行(M + 1)^N
次运算,所以计算量很大。
很多问题都是实际来的,数据可以是连续的,而计算机只能处理离散的数据,因此需要将连续问题进行离散化处理后再用计算机求解。比如差分代替微分、求和代替积分等思想都是把连续问题离散化的常用方法。
数值分析研究各种求解数学问题的数值计算方法,特别 是适合于计算机实现的方法与算法。它的主要内容包括 函数的数值逼近、数值微分与数值积分、非线性方程的 数值解法、数值代数、常微分方程数值解等。数值分析 是计算数学的一个重要分支,把理论与计算紧密结合,是 现代科学计算的基础 。
MATLAB
等数学软件中已经有很 多数值分析的函数可以直接调用。
赛题中有一类问题与图形有关,即使问题与图形无 关,论文中也会需要图片来说明问题,这些图形如 何展示以及如何处理就是需要解决的问题,通常使 用
MATLAB
进行处理。