极小极大算法 (The Minimax Algorithm)
来源:互联网 发布:视频抠像用什么软件 编辑:程序博客网 时间:2024/06/07 11:58
极小极大算法 (The Minimax Algorithm)
[说明] 本文基于<<CS 161 Recitation Notes - The Minimax Algorithm>>, 本文中的图片均来源于此笔记。
极小极大算法常用于二人博弈游戏,目的是寻找最优的方案使得自己能够利益最大化。基本思想就是假设自己(A)足够聪明,总是能选择最有利于自己的方案,而对手(B)同样足够聪明,总会选择最不利A的方案。
下面举个例子进行说明:
设:正方形代表自己(A),圆代表对手(B),节点的每个孩子节点代表一个候选方案。
上图中显示了所有候选方案。让我们如下分析:(注意:图中的所有数字都是A的利益值,越大越有利于A)
假设A选择第一个方案,B有两个候选方案,B为了使得A利益最小化,所有在7和3中选择了3,所以A只能获得3。
假设A选择第二个方案,B只有一个选择,A最终可以获得15。
假设A选择第三个方案,B有4个可选方案,为了使得A利益最小,B选择第一个方案,则A只能获得利益1。
A为了使得自己利益最大,所以A会选择第一个方案,即获得利益15。
从上图可以看出,B总是选择候选方案中的最小值,而A总是选择候选方案中的最大值,极小极大的名字也就源于此。
该算法使用深度优先搜索(Depth First Search)遍历决策树来填充树中间节点的利益值,叶子节点的利益值通常是通过一个利益评估函数算得。
通常决策树的分支呈指数增长,所以基本不可能遍历整棵决策树,所以实际应用中通常会控制决策树深度,从而减少计算量。正因为无法遍历完整的决策树,所以该算法有可能造成误导,即选取的方案可能是局部最优而不是全局最优的。
有时候为了得到较好的效果不得不增加搜索树的深度,这样就增加了大量的计算。为了加快计算速度,减少计算量,可以使用Alpha-Beta剪枝算法(Alpha Beta Pruning)对搜索树进行剪枝。因为搜索树中有很多分支不需要遍历。
0 0
- 极小极大算法 (The Minimax Algorithm)
- Understanding The Minimax Algorithm-理解极小极大搜索算法
- Understanding The Minimax Algorithm-理解极小极大搜索算法
- tic-tac-toe Minimax(极小化极大算法)
- 极小化极大准侧(Minimax)
- 极大极小值算法
- [算法] 极大极小搜索
- 极小化极大算法
- 极大极小搜索算法
- 极小极大算法
- 极大极小算法原理
- 理解极小极大搜索算法
- 极小极大算法与井字棋
- 算法设计——极大极小搜索
- 极小化极大算法与负极大值算法
- 极小化极大算法与负极大值算法
- 五子棋AI算法第二篇-极大极小值搜索算法
- 极小化极大算法与负极大值算法
- spring项目启动报错BeanFactory not initialized or already closed
- 深入关注和理解String类
- SVN客户端给文件加锁
- 疑似索尼Xperia Z2 Compact曝光 代号Altair
- 最大公约数和最小公倍数(编程之美2.7)
- 极小极大算法 (The Minimax Algorithm)
- JS根据变量保存方法名并执行方法
- 新博开通,特此发帖
- linux初学内核之打印消息
- 控制文件中MAXDATAFILES, MAXLOGFILES, MAXLOGMEMBERS等参数的说明
- Java中List和ArrayList的区别
- 使用Haproxy时apache日志的配置方法
- CSS clip元素 rect属性中各个数字的含义
- Apache Cordova App Reloader