蒙特卡罗方法概述
蒙特卡罗方法又称统计模拟法、随机抽样技术,是一种随机模拟方法,以概率和统计理论方法为基础的一种计算方法,是使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。将所求解的问题同一定的概率模型相联系,用电子计算机实现统计模拟或抽样,以获得问题的近似解。为象征性地表明这一方法的概率统计特征,故借用赌城蒙特卡罗命名。
通俗的讲:
蒙特卡罗算法:采样越多,越近似最优解
举个例子:假如筐里有100个苹果,闭眼拿1个,挑出最大的。于是我随机拿1个,再随机拿1个跟它比,留下大的,再随机拿1个……每拿一次,留下的苹果都至少不比上次的小。拿的次数越多,挑出的苹果就越大,但我除非拿100次,否则无法肯定挑出了最大的。这个挑苹果的算法,就属于蒙特卡罗算法——尽量找好的,但不保证是最好的。
【例】用蒙特卡洛模拟法求圆周率pi
如图,红色线条为平面上圆心在原点的单位圆,圆的面积为pi,黑色线条构成边长为2的正方形
设相互独立的随机变量X,Y均服从[-1,1]上的均匀分布,则(X,Y)服从{-1≤x≤1, -1≤y≤1}上的二元均匀分布(即图中正方形区域上的二元均匀分布),记事件A = {x^2+y^2≤1},则A事件发生的概率等于单位圆面积除以边长为2的正方形的面积,即P(A) = pi/4。
可得圆周率pi = 4P(A). 而P(A)可以通过蒙特卡洛模拟法求得,在图1中正方形内随机投点(即横坐标X和纵坐标Y都是[-1,1]上均匀分布的随机数),落在单位圆内的点的个数m与点的总数n的比值m/n可以作为A事件的概率P(A)的近似,随着投点总数的增加,m/n会越来越接近于P(A),从而