博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
再学概率论-蒙特卡罗和拉斯维加斯
阅读量:4127 次
发布时间:2019-05-25

本文共 1146 字,大约阅读时间需要 3 分钟。

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

  • 蒙特卡罗

为了更加形象的说明两个算法的原理,我们先举一个例子,以防迷失在过多的公式之中。

蒙特卡罗:假如你是一个赌徒,你经常去玩转轮盘游戏,轮盘有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都在进步,提高的过程)
  • 拉斯维加斯算法:采样越多,越有可能找到最优解,但不保证找到;(强调直接想要最优解)

参考:

转载地址:http://reepi.baihongyu.com/

你可能感兴趣的文章
去哪儿一面+平安科技二面+hr面+贝贝一面+二面产品面经
查看>>
element ui 弹窗在IE11中关闭时闪现问题修复
查看>>
vue 遍历对象并动态绑定在下拉列表中
查看>>
Vue动态生成el-checkbox点击无法选中的解决方法
查看>>
python __future__
查看>>
MySQL Tricks1
查看>>
python 变量作用域问题(经典坑)
查看>>
pytorch
查看>>
pytorch(三)
查看>>
pytorch(5)
查看>>
ubuntu相关
查看>>
C++ 调用json
查看>>
nano中设置脚本开机自启动
查看>>
动态库调动态库
查看>>
Kubernetes集群搭建之CNI-Flanneld部署篇
查看>>
k8s web终端连接工具
查看>>
手绘VS码绘(一):静态图绘制(码绘使用P5.js)
查看>>
手绘VS码绘(二):动态图绘制(码绘使用Processing)
查看>>
基于P5.js的“绘画系统”
查看>>
《达芬奇的人生密码》观后感
查看>>