原文:新手立体四子棋AI教程(3)——极值搜索与Alpha-Beta剪枝

上一篇我们讲了评估函数,这一篇我们来讲讲立体四子棋的搜索函数。 一 极值搜索 极值搜索是game playing领域里非常经典的算法,它使用深度优先搜索 因为限制最大层数,所以也可以称为迭代加深搜索 来遍历未来n步的走子情况。在每层模拟中都会选择对自己最优的位置,通过最大化自己的利益 也就是上一篇提到的评估算法 来取胜。 剪枝也是类似的思想,只不过效率更高,因为它删减了一些不需要遍历的结点。 下图 ...

2018-03-28 13:10 0 1795 推荐指数:

查看详情

alpha-beta剪枝搜索

•一种基于剪枝( α-βcut-off)的深度优先搜索(depth-first search)。 •将走棋方定为MAX方,因为它选择着法时总是对其节点的评估值取极大值,即选择对自己最为有利的着法; •将应对方定为MIN方,因为它走棋时需要对其节点的评估值取极小值,即选择 ...

Sat Mar 22 03:20:00 CST 2014 1 14192
新手立体AI教程(4)——启发式搜索与主程序

通过前面几篇文章的学习,我们的四程序已经有了框架、搜索几大部分,但是还有着不少问题,我们的程序只能迭代很有限的步骤,导致棋力低下,在这一篇我们将通过启发式搜索极大的优化搜索效率。 一、原因 我们之前的产生走位置的函数很简单,即找到棋盘上的空余位置。它的不合理性体现在两方面 ...

Wed Mar 28 21:37:00 CST 2018 0 1117
新手立体AI教程(1)——基础扫盲

一、引言 最近身边好几个朋友开始玩立体,激起了我的好奇心。那么首先来说什么是【立体】,规则又是如何呢? 上图即为立体,规则类似于五子棋连在一起,但是四更加多样、丰富。不仅可以在平面内横竖斜四连在一起,还可以在不同平面内四斜着连在一起、同一根柱子上四连在一起 ...

Fri Mar 23 21:12:00 CST 2018 3 4703
新手立体AI教程(2)——价值评估函数

上一篇我们完成了整个程序的基础框架,那么在讲到真正的搜索算法前,我们先来看看五子棋如何评估当前局势,以及如何计算某个位置的价值。 一、五子棋 在五子棋中,包括成五,活三,活二等定势,下图为山东师范大学董红安在2005年的硕士毕业论文中使用的的评分表,可以供我们来参考 ...

Sat Mar 24 02:26:00 CST 2018 0 1173
极小极大搜索 的个人理解(alpha-beta剪枝

极小极大搜索的算法过程: 参考文档:http://www.xqbase.com/computer/search_minimax.htm (经典)   主要思想比较简单,但说清楚也不大容易。其核心思想是通过对于以后的状态进行预见式的暴搜,对可能的状态进行分析。理论上,如果能够搜索到最终状态 ...

Sun Nov 16 09:12:00 CST 2014 0 5621
alpha-beta剪枝算法

参考链接-机器之心 人机博弈是人工智能的重要分支,人们在这一领域探索的过程中产生了大量的研究成果,而极小化极大算法(minimax)是其中最基础的算法,它由Shannon在1950年正式提出。Alpha-beta剪枝的本质就是一种基于极小化极大算法的改进方法。 在人机博弈中,双方回合制地进行 ...

Sat Oct 23 20:23:00 CST 2021 0 992
Alpha-Beta剪枝算法

最近做了一个中国象棋项目,其中用到了Alpha-Beta剪枝算法,在此做个记录。 Alpha-Beta剪枝算法是一种传统的搜索算法, 它在博弈算法中有着非常广泛的运用,它大大减少了相同搜索深度下的计算量。 Alpha-Beta剪枝算法是由最大值和最小值算法得来的,该算法是一个0总和算法,即一方 ...

Tue May 05 04:36:00 CST 2015 0 4757
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM