极大极小算法有些不明白??

极大极小算法有些不明白??
收藏者
0
被浏览
776

3 个回答

ahjswjq LV

发表于 2025-4-20 14:57:48

极大极小算法主要用于在像棋类这样的双人对抗博弈场景中 。

假设有两个玩家,我们分别叫他们玩家A和玩家B 。这个算法的目标就是帮助其中一个玩家(比如玩家A )找到最优的行动策略 。

它的基本思路是这样的:从当前的局面出发,玩家A会去考虑自己所有可能的行动 。每一种行动都会把局面引向一个新的状态 。

然后对于每个新状态,玩家A会假设玩家B会做出对玩家A最不利的回应(也就是让玩家A得分最低的选择) 。这就是“极小”的部分,因为玩家B要让玩家A的得分最小化 。

而玩家A在一开始选择行动的时候,要从这些被玩家B“打压”后的结果里,挑选出对自己最有利的(得分最高的) ,这就是“极大”的部分 。

简单说 ,极大极小算法就是玩家A先列出所有自己能走的棋 ,然后想象玩家B每种应对后局面的得分,在这些得分里挑一个最高的,这个对应的走法就是玩家A的最优走法 。

它通过一层一层地深入分析局面 ,从当前状态一直推导到若干步之后的状态,来确定最优决策 。整个过程就像是在一个决策树里穿梭 ,树的节点是不同的局面状态 ,树枝是不同的行动选择 。通过不断地交替考虑双方最极端的应对方式 ,找到当前的最佳行动 。  

洪枫 LV

发表于 2025-4-20 13:40:48

极大极小算法(Minimax Algorithm)是一种在博弈论和人工智能领域广泛应用的决策算法 ,主要用于在具有对抗性的场景中找到最优策略 。以下详细解释:

基本概念
在一个双人对抗博弈(比如井字棋、围棋等)中 ,两个参与者轮流行动 。极大极小算法假设双方都采取最优策略 。其中一方(通常称为Max玩家)试图最大化自己的收益 ,另一方(Min玩家)则试图最小化Max玩家的收益 。

算法原理
它通过构建博弈树(Game Tree)来分析所有可能的走法序列 。博弈树的节点代表博弈的不同状态 ,根节点是当前的起始状态 ,子节点是在当前状态下做出某种行动后到达的新状态 。

从叶子节点(即博弈结束的状态)开始评估 。如果是Max玩家获胜的状态 ,则赋予一个较大的正值;如果是Min玩家获胜的状态 ,则赋予一个较小的负值;如果是平局 ,则赋予值为0 。

然后 ,算法从叶子节点向上回溯 。在Max节点 ,选择所有子节点中评估值最大的那个值作为该节点的值 ,因为Max玩家希望最大化收益 。在Min节点 ,选择所有子节点中评估值最小的那个值作为该节点的值 ,因为Min玩家希望最小化Max玩家的收益 。

举例说明
以一个简单的井字棋游戏为例 。假设当前棋盘状态是Max玩家的回合 ,Max玩家有几种可能的落子位置 。对于每个可能的落子位置 ,Min玩家又会有相应的应对走法 ,以此类推构建博弈树 。通过对叶子节点评估并向上回溯计算 ,Max玩家最终能确定当前最佳的落子位置 ,也就是极大极小算法为其选择的最优策略 。

局限性
极大极小算法在实际应用中面临一个问题 ,就是博弈树的规模可能会非常庞大 ,导致计算量巨大 。比如在围棋中 ,可能的走法和状态数量极其惊人 ,完全遍历博弈树几乎是不可能的 。为了解决这个问题 ,通常会结合α  β剪枝等优化技术 ,减少不必要的节点计算 ,提高算法效率 。  

xjqq LV

发表于 2025-4-20 12:39:48

极大极小算法是一种在博弈论和人工智能领域广泛应用的决策算法 ,常用于二人对抗博弈场景,比如国际象棋、围棋等。它的核心思想在于通过对博弈树的搜索和分析,为当前行动方找出最优的行动策略 。

我们先来看博弈树的概念。在一场博弈中,从初始状态开始,随着双方交替行动,会产生一系列可能的状态变化,这些状态可以构建成一棵树状结构,即博弈树。树的根节点是初始状态,每个子节点是父节点状态经过一方行动后的新状态。叶子节点代表博弈的结束状态,对应着明确的收益值。

极大极小算法基于一个假设:双方玩家都足够理性,并且都会采取对自己最有利的行动 。算法从当前玩家的角度出发,在自己行动的层次上希望最大化自己的收益,而在对手行动的层次上假设对手会采取行动来最小化自己的收益 。

具体执行过程是这样的。算法从叶子节点开始向上回溯计算。对于叶子节点,直接根据博弈规则赋予其一个收益值 。对于非叶子节点,如果是当前玩家行动的节点(称为极大节点),则该节点的值为其所有子节点值中的最大值。这意味着当前玩家会选择能带来最大收益的行动。如果是非当前玩家行动的节点(称为极小节点),该节点的值为其所有子节点值中的最小值,这反映了假设对手会采取行动来最小化当前玩家的收益 。

通过这样自底向上的计算,一直回溯到根节点,根节点的值就是当前玩家在给定局面下可以获得的最优收益,而对应的行动路径就是最优策略 。

例如在一个简单的猜数字游戏中,玩家A想让猜的数字与目标数字差值尽可能大,玩家B想让差值尽可能小 。游戏构建的博弈树中,叶子节点是不同猜测结果对应的差值,通过极大极小算法,从叶子节点向上计算,在玩家A行动的节点取子节点中的最大值,在玩家B行动的节点取子节点中的最小值,最终为玩家A找到最优猜测策略 。

极大极小算法为解决博弈问题提供了一种理论上的最优决策方法,尽管在实际复杂博弈场景中,由于博弈树规模巨大,往往需要结合其他优化技术来提高效率,但它仍然是理解和解决许多对抗性决策问题的基础 。  

您需要登录后才可以回帖 登录 | 立即注册