再学概率论-蒙特卡罗和拉斯维加斯

对于喜欢看片的人来说,拉斯维加斯是再熟悉不过了,这座以赌城闻名的城市几乎出现在很多的赌类电影中,而蒙特卡罗也是一个赌城。这里之所以和算法相关联,主要在于概率论最早的使用领地就是赌场之中,而蒙特卡罗算法和拉斯维加斯算法就是其中两种算法的核心原理。

  • 蒙特卡罗

为了更加形象的说明两个算法的原理,我们先举一个例子,以防迷失在过多的公式之中。
蒙特卡罗:假如你是一个赌徒,你经常去玩转轮盘游戏,轮盘有0-9是个数字,但是由于使用机械轮盘,很显然,这里的0-9数字并不是均匀的,因而,随着时间的流逝,你开始发现轮盘的结果经常停留在2.8.5这三个点,而0.7.4基本上很少出现。因此,之后的你不在随机选择下注,而时大量下注2.8.5。最后,由于你的这个发现,你开始大量的赢钱,最后你被发现了,进而被赶出了赌场。
这里的赌徒正是使用了蒙特卡洛算法,这种算法原理类似于大数定理,它通过不断地随机行为,从而发现系统的内在规律。就像是计算π值一样,通过不断地随机化正方形的值,计算落在圆中的数目,就能近似求助π的精确值,只要次数足够多,就能无限接近。
使用蒙特卡罗方法估算π值. 放置30000个随机点后,π的估算值与真实值相差0.07%.

蒙特卡罗卡罗在不同的场景中有不同的使用,它主要的作用就是使用计算机来对事物状态随机进行模拟,从而找到事物的分布情况。特别是在概率论中,对于很多问题,我们需要直到其中的概率分布,比如一天交通流量情况、河里鱼群的分布等,由于这里的数据可能很大,我们不可能实际调查,但是由于计算机的存在,如果我们知道了用户位置信息或者车辆信息等等辅助信息,我们就可以通过计算机随机模拟,从而找到其中的分布状态,大大节省人力(举个例子,实际情况可能并非如此)

  • 拉斯维加斯

拉斯维加斯算法也是一个随机算法,与蒙特卡罗不同的是,它并不是尽量接近于真实值,而是每次都返回true或者false,一个比较好的例子,就是在100把钥匙中找钥匙,在没有找到钥匙之前,每次的结果都是false。

使用场景,随机快速排序算法:
快速排序有一种优化算法,即如果数字一开始就是倒置的,由于初始参照点的选取在第一个,反而加大了运算复杂度,因而,后来提出了一种随机快速排序算法,即参照点从中间选取,这样,就不会出现增大的情况,但是这种也只能适用于特殊情况。

快速排序算法:它随机选取一个pivot,然后将元素分成三组:所有小于pivot的元素、所有等于pivot的元素以及所有大于pivot的元素。

随机快速排序
随机快速排序方法往往消耗大量资源,但保证了确切的答案。因此,在具有少量潜在答案的情景中,倾向于推荐拉斯维加斯方法。

总结:

  • 蒙特卡罗算法:采样越多,越接近最优解;(强调每一个iteration都在进步,提高的过程)
  • 拉斯维加斯算法:采样越多,越有可能找到最优解,但不保证找到;(强调直接想要最优解)

参考:
https://www.jianshu.com/p/21261fa9f48e
http://www.twoeggz.com/news/10845971.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值