计算机如何处理博弈游戏——以“分堆游戏”为例
计算机怎么处理博弈游戏?最简单的例子是分堆游戏。假设我手上有一堆粉笔,两个人把粉笔分成两堆,数量相等就输了,一定要分成数量不等的两堆。假设开始有10根粉笔,有一跟九、二跟八、三跟七、四跟六、五跟五五种。分成五跟五就输了,到五跟五之后,就不用再分了。可以分的是一九、二八、三七、四六,它是不等的两位,可以继续往下发展。继续往下发展的话,可以再把九分成一和八或二和七,二和八也可以这样分,把八分成二和六或三和五,三和七也可以这样分。它像一棵树,叫作树的根节点,根节点可以不断地分解,出现了很多中间节点,一直到下面的叶子节点,我分完之后,让对方没的可分,全是二。这就是我的搜索目标。所以分堆游戏的核心就是产生一个形式化的表征,就是一个数、一个数组或者一个数列。
在下棋时,如果我是计算机程序,我会搜索我的决胜节点,目标是千方百计把对方往这个方向引,分堆游戏就变成搜索。
人工智能解决很多问题的策略是状态空间搜索。你的任务就是从这个地方沿着这个路径走,事先想得越远、部署越久远,成功可能性就会越大、越有保证。这样的搜索程序很简单。它存在着一些决胜的路径,从这个根节点开始,总能找到几条路径把对方压到这些状态上去,找到这条路径要付出很大代价。数字小,看起来不难,但如果数字很大,状态空间非常大,要找到决策路径是不容易的。计算机下棋就是用“状态空间搜索”法,这种方法非常笨,但大家都用,因为计算机更笨,不灵活,一定要用非常机械的办法解决问题。所以我们把分堆游戏变成机械的表征和机械的搜索,然后启动机器来做,但是机器算得很快,起先并不担心,让它慢慢搜好。这是人工智能研究里很基础的一种方法。
- 危辉教授对人工智能的乐观与悲观
- 为什么人跟机器下棋会输?
- 人工智能的春天真的到了吗?
- 双人棋盘游戏的几个例子
- 双人博弈游戏的共同特点
- 为什么说下棋程序是人工智能的“软柿子”?
- 计算机如何处理博弈游戏——以“分堆游戏”为例
- 围棋的特殊之处
- 棋盘的所有可能性布局可以庞大到什么程度?
- 歧路寻羊带来的启示
- 如何提高搜索效率?
- “以一当十”,虽败犹荣
- AlphaGo下棋有“创新”吗?
- 与机器是否创新有关的例子
- 机器如何“思考”下棋?
- AlphaGo存在的一些技术细节与进步意义
- AlphaGo是怎么学习的?
- AlphaGo能创新吗?
- 国内不做人工智能围棋研究就落后了吗?
- AlphaGo把人打败了,人类智能就此崩塌了吗?
- 为什么说我们要对大自然心存敬畏?
京公网安备 11010202008139号