并行博弈树搜索算法-第7篇 另辟蹊径:其他的博弈树并行搜索算法

本文介绍了两种非Alpha-Beta算法的博弈树并行搜索方法:SSS*算法及其并行化,以及ER算法及其并行化。SSS*算法采用最佳优先策略,通过OPEN队列实现,但存在复杂性高、空间占用大等问题。ER算法将结点分为E结点和R结点,通过并行搜索长孙结点提高效率,但可能错过深剪枝。并行化策略如并行驳斥和多个E子结点提高并行度。
摘要由CSDN通过智能技术生成

除了基于Alpha-Beta算法的博弈树并行搜索算法外,还有其他的博弈树搜索算法.现简要介绍如下.

7.1    SSS*算法及其并行化

Alpha-Beta算法是一种基于Min-Max方法的固定深度(fixed-depth)搜索算法.说它是固定深度的搜索算法,是因为对每个结点,它依序从左到右搜索其所有子结点.与Alpha-Beta算法相同的是,SSS*算法[19](或者其对称算法DUAL*)也基于Min-Max方法,但与前者不同的是,它使用最佳优先(best-first)策略.即,SSS*算法不以结点在博弈树中所处的位置为标准,而按照它们前途有望的(promising)程度,由高至低搜素结点.

为了实现最佳优先策略,算法维护一个OPEN队列(OPEN list).OPEN队列的每项对应着一个结点,用<n, s,h>的形式组织.其中n代表博弈树中的一个结点,s是一个状态标识,可能的取值是LIVE或SOLVED,h被称为merit,是一个实数值.一个使用状态空间搜索(State Space Search)概念描述的SSS*算法如下[20]:

1. 将<n = root, s = LIVE, h = +∞>插入OPEN队列中.

2. 将OPEN队列中h最大的p = <n,s, h>取出.由于OPEN队列是h的非降序列,所以p为队列的第一项.

3. 如果n = root且s = SOLVED 那么p就是目标状态,此时h就是博弈树的最大最小值,否则继续.

4. 通过执行状态空间操作Г,扩充p状态,将所有的输出状态Г(p)按序插入OPEN队列中.如果可能,清除OPEN队列中的多于状态.

5. 跳转到2.

操作Г的情况

输入状态<n, s, h>满足条件

操作Г产生的新的状态

不操作

s = SOLVED

n = ROOT

达到最终状态,算法退出,博弈值为h

1

s = SOLVED

n ≠ ROOT

type(n) = MIN

将<m = parent(n), s, h>插入OPEN队列中,清除OPEN队列中满足m是k的祖先的<k, s, h>

2

s = SOLVED

n ≠ ROOT

type(n) = MAX

next(n) = NIL

将<next(n), LIVE, h>插入OPEN队列中

3

s = SOLVED

n ≠ ROOT

type(n) = MAX

next(n) = NIL

将<parent(n), LIVE, h>插入OPEN队列中

4

s = LIVE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值