Alpha-Beta搜索 + 启发式评价

本文介绍了在博弈游戏中如何利用Alpha-Beta搜索算法进行前瞻性的决策,并通过剪枝策略提高搜索效率。阐述了Alpha-Beta剪枝的工作原理,以及在限定探索深度时可能遇到的地平线效应问题。实验中使用Domino游戏,展示了搜索深度对博弈效果的影响,并提及高水平博弈可能需要结合IDA*算法。
摘要由CSDN通过智能技术生成

在博弈游戏中,可以将游戏过程,用一棵博弈树进行存储,树上每个节点表示游戏状态,树枝表示动作。为了赢得游戏,需要有一定的前瞻性(即搜索深度要尽可能深一些),但是随着搜索深度的加深,需要考虑的状态数目成指数级别增长,所以为了提高效率,这里对搜索算法进行了剪枝,将一些明显不会采取的招法忽略,以此来减少状态数目,提高算法效率。

博弈游戏,采取的搜索算法是MaxMinSearch,剪枝策略采取的是AlphaBeta剪枝,将一些明显的劣招放弃搜索。

AlphaBeta剪枝的具体过程,参考博文:

一看就懂的Alpha-Beta剪枝算法详解

CS 161 Recitation Notes - Minimax with Alpha Beta Pruning


地平线效应:

在很多搜索算法中,为了减少时间和空间消耗,常常采取限定探索深度的方式,来进行搜索。但是这种限定深度,是存在风险的,因为在当前决策中,没有考虑所限深度之外的情况,往往导致做出错误的决定。这就如同,战斗机飞行员在空战中,限于地球曲率的影响,往往看不到地平线以外(地球后侧的)战场,这就常常导致了做出错的决策,是自己限于被动的战场态势。


Alpha可作为MAX方可实现招法的下界值;

Beta可作为MAX方不可实现招法的上界值(到此为止,对方招法的钳制值)。

根据Alpha和Beata可形成一个MAX方招法的的窗口。


算法实现:

Domino游戏,棋盘是一个8*8的表格,有两种Domino牌,分别为2*1和1*2(即:第一个只能竖着放-H,第二个横着放-V),先手是操作H,后手操作V,轮流进行,直到某一方无处下牌为止。

以此为实验Alpha_Beta的对象,编写了一个裸的AI(算法比较糙,没进行什么优化,除了对alpha_beta剪枝外)。


                
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值