博弈树 α-β剪枝

前言:本篇文章一定让你可以看懂α-β剪枝树,一定要看到最后

概念

博弈问题:

双人对弈:轮流下,一人走一步。
信息完备:双方看到的信息一样
零和:双方利益冲突,对一方有利则对另一方不利。
一般对节点N取一个估价函数f(N),一共两类节点:
——叫Max的极大节点追求最大化,有选择时肯定选值最大的;
——叫Min的极小节点追求最小化,有选择时肯定选值最小的。

所以此时需要对这个问题有一种清晰的刻画,下面我们将引入极大极小搜索方法

极大极小搜索办法:

极小极大搜索方法是博弈树搜索的基本方法 。
首先假定,有一个评价函数可以对所有的博弈进行评估。当评价函数值大于0时,表示博弈对我方有利,对对方不利。当评价函数小于0时,表示博弈对我方不利,对对方有利。
方法过程:
1、当轮到我方走棋时,首先按照一定的搜索深度生成出给定深度d以内的所有状态,计算所有叶节点的评价函数值。然后从d-1层节点开始逆向计算:
2、对于我方要走的节点(用MAX标记,称为极大节点)取其子节点中的最大值为该节点的值(因为我方总是选择对我方有利的棋)。
3、对于对方要走的节点(用MIN标记,称为极小节点)取其子节点中的最小值为该节点的值(对方总是选择对我方不利的棋)。
4、一直到计算出根节点的值为止。获得根节点取值的那一分枝,即为所选择的最佳走步。
博弈树
由于极大极小搜索的搜索树是深度搜索,需要遍历所有的可能结果结点,这就会消耗更多的资源,因此剩下的我们由α-β剪枝来去掉一些不必要的搜索结果

α-β剪枝搜索过程

在这里插入图片描述
在我翻阅了无数资料后找到的最详细的说明,大家一定要仔细看
剪枝树的方法篇我po上b站温柔小姐姐的链接大家去看看呀b站可爱温柔姐姐讲解剪枝树

代码实现

现在太累了周末补上代码to be continue。。。。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值