【人工智能】习题——博弈搜索

在这里插入图片描述

1)对于如图所示的博弈树,假若A在极大值层,它该选什么样的走步?

在这里插入图片描述

  • 检查L点,更新 α ( E ) > = 7 \alpha(E)>=7 α(E)>=7
  • 检查M点,确定 α ( E ) = 7 \alpha(E)=7 α(E)=7,更新 β ( B ) < = 7 \beta(B)<=7 β(B)<=7
  • 检查N点,更新 α ( F ) > = 8 \alpha(F)>=8 α(F)>=8 α ( F ) > β ( B ) \alpha(F)>\beta(B) α(F)>β(B),F点进行 β \beta β剪枝
  • 检查P点,更新 α ( G ) > = 2 \alpha(G)>=2 α(G)>=2
  • 检查Q点,确定 α ( G ) = 3 \alpha(G)=3 α(G)=3,确定 β ( B ) = 3 \beta(B)=3 β(B)=3,更新 α ( A ) > = 3 \alpha(A)>=3 α(A)>=3
  • 检查R点,更新 α ( H ) > = 0 \alpha(H)>=0 α(H)>=0
  • 检查S点,确定 α ( H ) \alpha(H) α(H)=0,更新 β ( C ) < = 0 \beta(C)<=0 β(C)<=0 β ( C ) < α ( A ) \beta(C)<\alpha(A) β(C)<α(A),C点进行 α \alpha α剪枝
  • 检查V点,更新 α ( J ) > = 5 \alpha(J)>=5 α(J)>=5
  • 检查W点,确定 α ( J ) = 8 \alpha(J)=8 α(J)=8,更新 β ( D ) < = 8 \beta(D)<=8 β(D)<=8
  • 检查X点,更新 α ( K ) > = 9 \alpha(K)>=9 α(K)>=9 α ( K ) > β ( D ) \alpha(K)>\beta(D) α(K)>β(D),K点进行 β \beta β剪枝,确定 α ( A ) = 8 \alpha(A)=8 α(A)=8

2)在上题的博弈树中,用剪枝过程需要检查哪些节点?

需要检查L、M、N、P、Q、R、S、V、W、X

  1. 有一种N/M或“最后者输”的博弈游戏,其玩法如下:开始有9枚硬币,两人轮流取出1、2或3枚,取出最后一枚者为输,试用搜索树证明后起步者总能取胜。

    当轮到某一方时只剩下1个硬币,则该方输。

    在这里插入图片描述

    在这里插入图片描述

    通过搜索树得知,当先手的局面剩5个硬币时,后手必胜,而无论先手在第一步时取走几个硬币,后手总能使先手在第二步决策时只剩下5个硬币。而在博弈过程中,双方总是做出对自己最有利的决策,因此无论先手做出什么决策,后手总能获胜。

    实际上,当n=k(m+1)+1时,后手必胜。设先手取出x个物品,后手只需要取出m+1-x个物品,使得n整除m+1的余数为1,且后手方仍是后手方。以此类推直到n=1。即先手必败后手必胜。本题中n=9,m=3,n=2(3+1)+1,满足后手必胜条件。

1)请指出 α \alpha α剪枝过程与 β \beta β剪枝过程的差别。

  1. α \alpha α剪枝:若任一极小值层节点的 β \beta β小于或等于他任一先辈的极大值层节点的 α \alpha α值,则可中止该极小值层中这个MIN节点以下的搜索过程(因为有比该节点更优的策略,已方不会选择该节点作为下一步策略),这个MIN节点最终的推导值就确定为这个 β \beta β值。
  2. β \beta β剪枝:若任一极大值层节点的 α \alpha α值大于或等于他任一先辈的极小值层节点的 β \beta β值,则可中止该极大值层中这个MAX节点以下的搜索过程(因为对方不会选择对己方更有利的策略),这个MAX节点最终的推导值就确定为这个 α \alpha α值。

2)极小极大过程体现了怎样的思想?

极小极大搜索体现了一种“零和博弈”的思想,博弈双方的目的都是极大化自己的利益,极小化对方的利益。己方考虑双方对弈若干步之后,从可能的步中选一步相对好的走法来走,即在有限的搜索深度范围内求解。

MAX代表己方,MIN代表对方,P代表局面。

静态估计函数 f 对局面的势态做出优劣估计,有利于MAX的势态,f§取正值;有利于MIN的势态,f§取负值。

  1. 当轮到MIN走步的节点时,MAX应该考虑最坏的情况,f§取极小值
  2. 当轮到MAX走步的节点时,MAX应该考虑最好的情况,f§取极大值
  3. 当评价往回倒退时,相应于两方的对抗策略,不同层上交替使用1、2两种方法向上传导倒退值。
T:=(s, MAX), Open:=(s), Closed:=();//生成初始博弈树
/*第一阶段:使用宽度优先搜索生成规定深度的全部博弈树,然后对其所有端节点计算其静态估计函数值*/
Loop1: // 扩展深度至d
if Open=( ) Then Goto Loop2
n:=First(Open), Remove(n,Open), Add(n,Closed)
if F(n)=-∞, +∞, 0, Then Goto Loop1 // 可以被判定
else {ni}:=Expand(n) , Add({ni},T)
	if d(ni)<k Then Add(ni,Open), Goto Loop1
	else 计算f(ni), Goto Loop1
/*第二阶段:从底向上逐级求非终节点的倒推估计值,直到求出初始节点的倒推值f(s)*/
Loop2: // 赋值
if Close=() Then Goto Loop3
else np:=First(Closed)
if (np Is MAX) And (f(npi)有值) // npi是np的子结点,且都有值
then f(np):=max f(npi), Remove(np,Closed)
if (np Is MIN) And (f(npi)有值) // npi是np的子结点,且都有值
then f(np):=min f(npi), Remove(np,Closed)
if np未被赋值, Then MoveTail(np, Closed)
Goto Loop2
/*第三阶段:根据f(s)选择相对好的走步*/
Loop3:
if f(s)有值then Exit(End or M(Move, T)) // s被赋值,结束该步



选择相对好的走步*/
Loop3:
if f(s)有值then Exit(End or M(Move, T)) // s被赋值,结束该步
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值