以围棋来说,人工智能程序跟通常程序差异在哪里
在说围棋之前,先说说象棋(国际象棋与中国象棋一样道理)。
国际象棋是8x8,双方各有16个棋子,而这些棋子有各种规则.所以每次计算,计算量是有限的.因为可以通过if深入计算很多步。1990年代都可以打败人类,以现在的性能可以讲,人类顶级棋手根本没有取胜的可能。
这个办法如果用来开发围棋,就面临着很大的麻烦。围棋是19x19,这数量太庞大;更麻烦的是,棋子是完全平等的,没有这样那样的限制,可以放在棋盘上任何没棋子的地方(不考虑极特殊情况)。一步是(19x19),两步是(19x19)x(19x18),三步(19x19)x(19x18)x(19x17)...重复一个规则,棋子是完全平等的,可以放在棋盘上任何没棋子的地方。这计算量就太吓人了。大到什么程度?据说计算时间超过宇宙年龄多少倍。
当然了,通过反复总结、改进,传统算法的围棋程序,还是很厉害的,对付吾这种不入门的不在话下。一面对职业棋手,根本没有胜算。为什么呢?因为规则导致的计算量太大,而棋手长期训练的直觉,节省了大量的计算。如果是5x5,相信电脑可以必胜。
后来,GOOGLE使用了人工智能算法。人工智能算法,跟普通的有何不同?简化一下,就是通过大量棋谱的学习,得到不同情况下的每个位置权重。根据这些权重,模型计算当前盘面形势,下在哪个位置最好。这样跟以前的if判断,完全不一样,从而确实能够省去大量的多层计算了。
实际效果怎样?完全秒杀人类棋手。比如AlphaGo的升级版本Master,快棋全胜,而且每一局都是有明显优势。有的棋手建议从让二子棋开始下。
那么,人工智能有没有缺点?还是有的。
以围棋来说,人工智能程序跟通常程序差异在哪里相关推荐
- 人工智能“上位”会让程序员消失吗?
大脑以及二进制代码(图:Canva) 来源:Forbes 作者:Nisha Talagala 编译整理:科技行者 写代码已经成了许多工作的一项关键技能.一些国家和学校甚至认为,编程语言是一种可以接受的 ...
- 较高人工智能的人机博弈程序实现(多个算法结合)含C++源码
较高人工智能的人机博弈程序实现(多个算法结合)含C++源码 本文由恋花蝶最初发表于http://blog.csdn.net/lanphaday 上,您可以转载.引用.打印和分发等,但必须保留本文完整和 ...
- 程序员为程序员推荐:我觉得这本书不错,分享给你
题图:PEXELS 虽然人与人的认知千差万别,读一本书的体悟也大相径庭,然而,好书之所以是好书,有一点是对所有读者相通的--让我们有所得.读书让我们获取知识的同时,变得更为睿智:对自我与生命的理解更为 ...
- 阿尔法围棋是人工智能吗,围棋智能机器人阿法狗
阿尔法狗什么意思? 阿尔法狗是第一个击败人类职业围棋选手.第一个战胜围棋世界冠军的人工智能机器人.其英文名为AlphaGo,音译中文后戏称为阿尔法狗. 人工智能围棋项目:小发猫 阿尔法狗其主要工作原理 ...
- Linux在后台运行python程序、脚本程序、可执行程序等,关闭终端仍可保持程序运行
欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 Linux在后台运行python程序.脚本程序.可执行程序等,关闭终端仍可保持程序运行 文章目录: 1 为什么需要后台运 ...
- c与c十十与python_浅要分析Python程序与C程序的结合使用
Python 是一种用于快速开发软件的编程语言,它的语法比较简单,易于掌握,但存在执行速度慢的问题,并且在处理某些问题时存在不足,如对计算机硬件系统的访问,对媒体文件的访问等.而作为软件开发的传统编程 ...
- 浅谈 Python 程序和 C 程序的整合
浅谈 Python 程序和 C 程序的整合 Python 是一种用于快速开发软件的编程语言,它的语法比较简单,易于掌握,但存在执行速度慢的问题,并且在处理某些问题时存在不足,如对计算机硬件系统的访问, ...
- 微信小程序开发02-小程序基本介绍
前言 前面我们研究了下微信小程序的执行流程,因为拿不到源码,只能算我们的猜想,我们需要更加了解小程序还需要做具体的项目,于是我们将原来那套还算复杂的业务拿出来: [组件化开发]前端进阶篇之如何编写可维 ...
- 酷客多小程序实现小程序之间跳转功能,让小程序玩出新花样
自从微信公布可以实现小程序之间相互跳转功能以来,酷客多小程序(http://www.kukeduo.cn)紧跟脚步,就在上周推出了小程序跳转小程序的端口,对于拥有多个小程序的企业来说,这个新功能的推出 ...
- Python 程序和 C 程序的整合
背景知识介绍 Python 语言的特点 Python 作为一门程序开发语言,被越来越多地运用到快速程序开发.Python 是一种解释型的,互动的,面向对象的编程语言,它包含了模块化的操作,异常处理,动 ...
最新文章
- [RabbitMQ]RabbitMQ原理与相关操作(一)
- Unhandled exception 0xC0000005: Access violation writing location
- VS Tips]Visual Studio 2008 Toolbox里控件消失(#13119)的问题
- Flask 生成下载文件
- 宿主机进程挂载到容器内_迄今为止最严重的容器逃逸漏洞:Docker cp命令漏洞分析(CVE201914271)...
- rest get map参数_Spring 5.2.2 集成技术—REST
- apache配置多https域名对应单个证书和多个不同的https域名对应多个不同的证书
- 程序抓取网站数据HttpWebRequest
- 【深度学习】机器视觉开源代码集合
- c语言程序心得体会感想,c语言编程学习心得体会3篇
- DOS命令里面的EQ、NE、GT、LT、GE、LE分别是什么意思
- 超全!我常用的70个数据分析网址
- 4入4出Modbus RTU继电器模块说明书
- 在哪能查到英文论文?
- android模拟奥克斯空调红外,奥克斯空调手机遥控器
- 产品经理,该如何做好「自己」这款产品?
- 工业级氯化锂2022年全球行业分析报告
- 多传感器融合定位七-惯性导航解算及误差分析其一
- python3 :习题40、习题41
- BioPython ① | 统计蛋白序列中20种氨基酸的的个数和频率
热门文章
- python2.7 matplotlib_Python 2.7中的Numpy、SciPy、MatPlotLib安装与配置
- 计算机考研地域重要还是学校,考研选学校,城市更重要还是专业更重要?
- linux生成手机号码字典,Linux下的字典生成工具Crunch 创造自己的专属字典
- IIS7.5 安装设置-Sql Sever2008安装设置-移动端设置等必读
- Quartz.net 的 FAQ
- 删除数据库中的所有表
- Vue项目npm run dev后 报错Cannot GET /
- autoflowchart软件使用步骤_【AutoFlowChart流程图自动生成软件】|C语言流程图生成工具(AutoFlowchart)下载_v1.0 中文版_9号软件下载...
- Adapter使用notifyDataSetChanged()刷新数据不更新的原因
- sqlserve生成随机数