在说围棋之前,先说说象棋(国际象棋与中国象棋一样道理)。

  国际象棋是8x8,双方各有16个棋子,而这些棋子有各种规则.所以每次计算,计算量是有限的.因为可以通过if深入计算很多步。1990年代都可以打败人类,以现在的性能可以讲,人类顶级棋手根本没有取胜的可能。

  这个办法如果用来开发围棋,就面临着很大的麻烦。围棋是19x19,这数量太庞大;更麻烦的是,棋子是完全平等的,没有这样那样的限制,可以放在棋盘上任何没棋子的地方(不考虑极特殊情况)。一步是(19x19),两步是(19x19)x(19x18),三步(19x19)x(19x18)x(19x17)...重复一个规则,棋子是完全平等的,可以放在棋盘上任何没棋子的地方。这计算量就太吓人了。大到什么程度?据说计算时间超过宇宙年龄多少倍。

  当然了,通过反复总结、改进,传统算法的围棋程序,还是很厉害的,对付吾这种不入门的不在话下。一面对职业棋手,根本没有胜算。为什么呢?因为规则导致的计算量太大,而棋手长期训练的直觉,节省了大量的计算。如果是5x5,相信电脑可以必胜。

  后来,GOOGLE使用了人工智能算法。人工智能算法,跟普通的有何不同?简化一下,就是通过大量棋谱的学习,得到不同情况下的每个位置权重。根据这些权重,模型计算当前盘面形势,下在哪个位置最好。这样跟以前的if判断,完全不一样,从而确实能够省去大量的多层计算了。

  实际效果怎样?完全秒杀人类棋手。比如AlphaGo的升级版本Master,快棋全胜,而且每一局都是有明显优势。有的棋手建议从让二子棋开始下。

  那么,人工智能有没有缺点?还是有的。

以围棋来说,人工智能程序跟通常程序差异在哪里相关推荐

  1. 人工智能“上位”会让程序员消失吗?

    大脑以及二进制代码(图:Canva) 来源:Forbes 作者:Nisha Talagala 编译整理:科技行者 写代码已经成了许多工作的一项关键技能.一些国家和学校甚至认为,编程语言是一种可以接受的 ...

  2. 较高人工智能的人机博弈程序实现(多个算法结合)含C++源码

    较高人工智能的人机博弈程序实现(多个算法结合)含C++源码 本文由恋花蝶最初发表于http://blog.csdn.net/lanphaday 上,您可以转载.引用.打印和分发等,但必须保留本文完整和 ...

  3. 程序员为程序员推荐:我觉得这本书不错,分享给你

    题图:PEXELS 虽然人与人的认知千差万别,读一本书的体悟也大相径庭,然而,好书之所以是好书,有一点是对所有读者相通的--让我们有所得.读书让我们获取知识的同时,变得更为睿智:对自我与生命的理解更为 ...

  4. 阿尔法围棋是人工智能吗,围棋智能机器人阿法狗

    阿尔法狗什么意思? 阿尔法狗是第一个击败人类职业围棋选手.第一个战胜围棋世界冠军的人工智能机器人.其英文名为AlphaGo,音译中文后戏称为阿尔法狗. 人工智能围棋项目:小发猫 阿尔法狗其主要工作原理 ...

  5. Linux在后台运行python程序、脚本程序、可执行程序等,关闭终端仍可保持程序运行

    欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 Linux在后台运行python程序.脚本程序.可执行程序等,关闭终端仍可保持程序运行 文章目录: 1 为什么需要后台运 ...

  6. c与c十十与python_浅要分析Python程序与C程序的结合使用

    Python 是一种用于快速开发软件的编程语言,它的语法比较简单,易于掌握,但存在执行速度慢的问题,并且在处理某些问题时存在不足,如对计算机硬件系统的访问,对媒体文件的访问等.而作为软件开发的传统编程 ...

  7. 浅谈 Python 程序和 C 程序的整合

    浅谈 Python 程序和 C 程序的整合 Python 是一种用于快速开发软件的编程语言,它的语法比较简单,易于掌握,但存在执行速度慢的问题,并且在处理某些问题时存在不足,如对计算机硬件系统的访问, ...

  8. 微信小程序开发02-小程序基本介绍

    前言 前面我们研究了下微信小程序的执行流程,因为拿不到源码,只能算我们的猜想,我们需要更加了解小程序还需要做具体的项目,于是我们将原来那套还算复杂的业务拿出来: [组件化开发]前端进阶篇之如何编写可维 ...

  9. 酷客多小程序实现小程序之间跳转功能,让小程序玩出新花样

    自从微信公布可以实现小程序之间相互跳转功能以来,酷客多小程序(http://www.kukeduo.cn)紧跟脚步,就在上周推出了小程序跳转小程序的端口,对于拥有多个小程序的企业来说,这个新功能的推出 ...

  10. Python 程序和 C 程序的整合

    背景知识介绍 Python 语言的特点 Python 作为一门程序开发语言,被越来越多地运用到快速程序开发.Python 是一种解释型的,互动的,面向对象的编程语言,它包含了模块化的操作,异常处理,动 ...

最新文章

  1. [RabbitMQ]RabbitMQ原理与相关操作(一)
  2. Unhandled exception 0xC0000005: Access violation writing location
  3. VS Tips]Visual Studio 2008 Toolbox里控件消失(#13119)的问题
  4. Flask 生成下载文件
  5. 宿主机进程挂载到容器内_迄今为止最严重的容器逃逸漏洞:Docker cp命令漏洞分析(CVE201914271)...
  6. rest get map参数_Spring 5.2.2 集成技术—REST
  7. apache配置多https域名对应单个证书和多个不同的https域名对应多个不同的证书
  8. 程序抓取网站数据HttpWebRequest
  9. 【深度学习】机器视觉开源代码集合
  10. c语言程序心得体会感想,c语言编程学习心得体会3篇
  11. DOS命令里面的EQ、NE、GT、LT、GE、LE分别是什么意思
  12. 超全!我常用的70个数据分析网址
  13. 4入4出Modbus RTU继电器模块说明书
  14. 在哪能查到英文论文?
  15. android模拟奥克斯空调红外,奥克斯空调手机遥控器
  16. 产品经理,该如何做好「自己」这款产品?
  17. 工业级氯化锂2022年全球行业分析报告
  18. 多传感器融合定位七-惯性导航解算及误差分析其一
  19. python3 :习题40、习题41
  20. BioPython ① | 统计蛋白序列中20种氨基酸的的个数和频率

热门文章

  1. python2.7 matplotlib_Python 2.7中的Numpy、SciPy、MatPlotLib安装与配置
  2. 计算机考研地域重要还是学校,考研选学校,城市更重要还是专业更重要?
  3. linux生成手机号码字典,Linux下的字典生成工具Crunch 创造自己的专属字典
  4. IIS7.5 安装设置-Sql Sever2008安装设置-移动端设置等必读
  5. Quartz.net 的 FAQ
  6. 删除数据库中的所有表
  7. Vue项目npm run dev后 报错Cannot GET /
  8. autoflowchart软件使用步骤_【AutoFlowChart流程图自动生成软件】|C语言流程图生成工具(AutoFlowchart)下载_v1.0 中文版_9号软件下载...
  9. Adapter使用notifyDataSetChanged()刷新数据不更新的原因
  10. sqlserve生成随机数