http://www.zhihu.com/question/20254139

太数学的东西就不说了,只用通俗唱法回答楼主的问题。

蒙特卡罗算法并不是一种算法的名称,而是对一类随机算法的特性的概括。媒体说“蒙特卡罗算法打败武宫正树”,这个说法就好比说“我被一只脊椎动物咬了”,是比较火星的。实际上是ZEN的算法具有蒙特卡罗特性,或者说它的算法属于一种蒙特卡罗算法。

那么“蒙特卡罗”是一种什么特性呢?我们知道,既然是随机算法,在采样不全时,通常不能保证找到最优解,只能说是尽量找。那么根据怎么个“尽量”法儿,我们我们把随机算法分成两类:

  • 蒙特卡罗算法:采样越多,越近似最优解;

  • 拉斯×××算法:采样越多,越有机会找到最优解;

举个例子,假如筐里有100个苹果,让我每次闭眼拿1个,挑出最大的。于是我随机拿1个,再随机拿1个跟它比,留下大的,再随机拿1个……我每拿一次,留下的苹果都至少不比上次的小。拿的次数越多,挑出的苹果就越大,但我除非拿100次,否则无法肯定挑出了最大的。这个挑苹果的算法,就属于蒙特卡罗算法——尽量找好的,但不保证是最好的

而拉斯×××算法,则是另一种情况。假如有一把锁,给我100把钥匙,只有1把是对的。于是我每次随机拿1把钥匙去试,打不开就再换1把。我试的次数越多,打开(最优解)的机会就越大,但在打开之前,那些错的钥匙都是没有用的。这个试钥匙的算法,就是拉斯×××的——尽量找最好的,但不保证能找到

所以你看,这两个词并不深奥,它只是概括了随机算法的特性,算法本身可能复杂,也可能简单。这两个词本身是两座著名赌城,因为***中体现了许多随机算法,所以借过来命名。

这两类随机算法之间的选择,往往受到问题的局限。如果问题要求在有限采样内,必须给出一个解,但不要求是最优解,那就要用蒙特卡罗算法。反之,如果问题要求必须给出最优解,但对采样没有限制,那就要用拉斯×××算法。对于机器围棋程序而言,因为每一步棋的运算时间、堆栈空间都是有限的,而且不要求最优解,所以ZEN涉及的随机算法,肯定是蒙特卡罗式的。

机器下棋的算法本质都是搜索树,围棋难在它的树宽可以达到好几百(国际象棋只有几十)。在有限时间内要遍历这么宽的树,就只能牺牲深度(俗称“往后看几步”),但围棋又是依赖远见的游戏,甚至不仅是看“几步”的问题。所以,要想保证搜索深度,就只能放弃遍历,改为随机采样——这就是为什么在没有MCTS(蒙特卡罗搜树)类的方法之前,机器围棋的水平几乎是笑话。而采用了MCTS方法后,搜索深度就大大增加了。比如,在题主说的ZEN与武宫正树九段的对局中,我们可以看这一步棋:

<img src="https://pic4.zhimg.com/70c60eb46363c44d57701ea82b5fb75f_b.jpg" data-rawwidth="550" data-rawheight="549" class="origin_p_w_picpath zh-lightbox-thumb" width="550" data-original="https://pic4.zhimg.com/70c60eb46363c44d57701ea82b5fb75f_r.jpg">
武宫正树九段(执白)第53步大飞,明显企图攻角,而ZEN(执黑)却直接不理,放弃整个右下角,转而把中腹走厚。这个交换究竟是否划算,就不在这里讨论了,但我们至少可以看出,ZEN敢于在此脱先,舍弃这么大的眼前利益,其搜索深度确实达到了人类专业棋手的水平。

作者:苏椰
链接:http://www.zhihu.com/question/20254139/answer/33572009
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

转载于:https://blog.51cto.com/8878683/1749427

蒙特卡罗算法与拉斯维加斯算法相关推荐

  1. 蒙特卡罗算法与拉斯维加斯算法比较

    1 蒙特卡罗算法简介 蒙特卡罗(Monte Carlo)算法并不是一种特定的算法,而是对一类随机算法的特性的概括.它的名字来源于赌城蒙特卡罗,象征概率.它的基本思想是通过大量随机样本,去了解一个系统, ...

  2. 蒙特卡罗算法与拉斯维加斯算法 (西瓜书第十一章11.4题补充)

    书上侧边栏给出了关于蒙特卡罗方法和拉斯维加斯方法的提示: 拉斯维加斯方法和蒙特卡罗方法是两个以著名赌城名字命名的随机化方法两者的主要区别是:若有时间限制,以拉斯维加斯方法或者给出满足要求的解,或者不给 ...

  3. 蒙特卡罗算法 与 拉斯维加斯算法

    蒙特卡罗算法并不是一种算法的名称,而是对一类随机算法的特性的概括.媒体说"蒙特卡罗算法打败武宫正树",这个说法就好比说"我被一只脊椎动物咬了",是比较火星的.实 ...

  4. 随机算法:蒙特卡罗算法和拉斯维加斯算法

    随机算法分成两类: 蒙特卡罗算法:采样越多,越近似最优解: 拉斯维加斯算法:采样越多,越有机会找到最优解: 上图区分记忆一下: 蒙特卡罗是一类随机方法的统称,这里摘一段知乎大神(鹌鹑)的概括:(这些蒙 ...

  5. 蒙特卡罗算法和拉斯维加斯算法比较

    蒙特卡罗算法并不是一种算法的名称,而是对一类随机算法的特性的概括.媒体说"蒙特卡罗算法打败武宫正树",这个说法就好比说"我被一只脊椎动物咬了",是比较火星的.实 ...

  6. 拉斯维加斯算法与N皇后问题

    拉斯维加斯算法与N皇后问题 拉斯维加斯算法 拉斯维加斯算法不会得到不正确的解.一旦用拉斯维加斯算法找到一个解,这个解就一定是正确解.但有时用拉斯维加斯算法找不到解.与蒙特卡罗算法类似,拉斯维加斯算法找 ...

  7. 拉斯维加斯算法结合八皇后问题

    #include <iostream> #include <cmath> #include "RandomNumber.h" using namespace ...

  8. 随机算法求pi、线性同余法求random、拉斯维加斯算法python

    一.随机算法求pi # 计算圆周率 import pdb import random def CalcPai(n):# 计算π值k = 0for i in range(0,n):x = random. ...

  9. 八皇后 拉斯维加斯算法

    拉斯维加斯算法的一个显著特征就是它所做的随机性决策有可能导致算法找不到所需的解.因此常用一个bool型函数表示拉斯维加斯算法.找到解就返回true,否则返回false. n后问题典型的有回溯法(n后问 ...

最新文章

  1. 未来十年是AI的黄金发展期
  2. Struts1.2的框架验证
  3. No result defined for action action.LoginAction and result success 问题解决
  4. mysql set类型 查询,MYSQL SET字段类型怎么查询
  5. oracle里子连接查询,pc端页面滚动到底部加载更多数据......
  6. CentOS6.5安装python2.7.6(慎重升级)
  7. DevExpress下拉多选框 CheckComboboxEdit、CheckedListBoxControl
  8. igm焊接机器人基本操作_焊接机器人编程与操作
  9. 关于CCS软件的Graph功能使用详解
  10. java高级工程师认证考试_ACAA 认证Java开发工程师
  11. 用Python合并多个txt文件
  12. APK安装流程:点击下载应用了解安装的全过程
  13. 淘宝API 搜索相似的商品
  14. IBX TableVew
  15. WordPress付费资源素材下载主题 总裁CeoMax主题
  16. 应该怎么学大数据?该从哪学起?
  17. 单片机成长之路(51基础篇) - 023 N76e003 系统时钟切换到外部时钟
  18. 最近很多人问我:saiku下载不下来
  19. 网络安全兼职注意事项
  20. BurpSuite-Proxy使用

热门文章

  1. linux有名管道大小,Linux中的pipe与named pipe(FIFO),即管道和命名管道
  2. 接口测试要测试什么?
  3. html下拉菜单换背景颜色,无下拉箭头的Select下拉框实现更换背景颜色
  4. linux内核编译选项ccl,嵌入式Linux学习笔记(一)
  5. 百度地图 绘制运动轨迹_百度地图创新破局:声音个性表达、出行精准预估与全球无碍...
  6. php libswf,PHP停解析swf文件头
  7. linux 创建目录和删除目录下,Linux下怎么创建目录命令与删除命令
  8. 基于DeepLabV3+与U-Net融合的黄瓜叶片病害严重程度分类方法
  9. 一种基于SE-Inception的茄科疾病识别模型
  10. linux上容器端口映射,MacOS下的docker端口映射