Loading

蒙特卡罗算法介绍

蒙特卡罗是一类随机方法的统称。这类方法的特点是,可以在随机采样上计算得到近似结果,随着采样的增多,得到的结果是正确结果的概率逐渐加大,但在(放弃随机采样,而采用类似全采样这样的确定性方法)获得真正的结果之前,无法知道目前得到的结果是不是真正的结果。

举例说明,一个有10000个整数的集合,要求其中位数,可以从中抽取m<10000个数,把它们的中位数近似地看作这个集合的中位数。随着m增大,近似结果是最终结果的概率也在增大,但除非把整个集合全部遍历一边,无法知道近似结果是不是真实结果。

另外一个例子,给定数N,要求它是不是素数,可以任选m个小于N的数,看其中有没有能整除N的数,如果没有则判断为素数。这和通常见到的蒙特卡罗例子不同,近似结果往往错得更离谱,但随着m增大,近似结果是最终结果的概率也在增大。

把蒙特卡罗方法和另外一类方法——拉斯维加斯方法[1]——对比一下,更容易了解哪些方法属于蒙特卡罗,哪些不属于。拉斯维加斯方法是另一类随机方法的统称。这类方法的特点是,随着采样次数的增多,得到的正确结果的概率逐渐加大,如果随机采样过程中已经找到了正确结果,该方法可以判别并报告,但在但在放弃随机采样,而采用类似全采样这样的确定性方法之前,不保证能找到任何结果(包括近似结果)。

举例说明,有一个有死胡同但无环路的迷宫,要求从入口走到出口的一条路径。可以从入口出发,在每个叉路口随机选择一个方向前行,到死胡同则报告失败并回到入口重新试探,到出口则报告成功。随着试探次数增多,找到一条入口到出口的路径的概率增大,但除非全枚举,即使试10000年,也无法保证找到任何要求的路径。

posted @ 2014-07-29 09:09  dai.sp  阅读(1001)  评论(0编辑  收藏  举报