了解极小极大值的定义

发布于 2024-10-20 11:00:52 字数 238 浏览 9 评论 0原文

在 Russell 和 Norvig 第三版中,他们给出了博弈树中节点的极小极大值的以下定义(零和、完美信息、确定性)

节点的 minimax 值是处于相应状态的效用(对于 MAX),假设两个玩家从该状态到游戏结束都处于最佳状态

唯一的问题是,在他们的游戏设置中,节点的效用只是针对终端节点定义的,那么如何理解通用节点的效用呢?谢谢。

In Russell and Norvig, third edition, they give the following definition of the minimax value of a node in a game tree (zero-sum, perfect information, deterministic)

The minimax value of a node is the utility (for MAX) of being in the corresponding state, assuming that both players play optimally from there to the end of the game.

Only thing is, that in their setup of a game, the utility of a node is only defined for terminal nodes, so how should one understand the utility of a general node ? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

乖乖兔^ω^ 2024-10-27 11:00:52

效用是为非终端节点定义的。对于终端节点来说,效用是通过一些外部启发式(他们称之为“UTILITY”)来估计的,但对于非终端节点来说,效用是通过极小极大算法来计算的。非终端节点的 minimax 值(或效用)是其子节点的 minimax 值的最大值或最小值(取决于它是谁的移动)。如果你和你的对手从那时起都采取最佳行动,那么根的极小极大值将是你将获得的结果的效用。

此处有一个已解决的示例,应该会更清楚。

Utility is defined for non-terminal nodes. It's that for terminal nodes, utility is estimated by some external heuristic (which they call UTILITY), but for non-terminal nodes utility is computed by the minimax algorithm. The minimax value (or utility) of a non-terminal node is either the maximum or the minimum of the minimax values of its children (depending on whose move it is). The minimax value of the root will be the utility of the outcome you'll get to if both you and your opponent make optimal moves from there on out.

There's a worked-out example here that should make it clearer.

半夏半凉 2024-10-27 11:00:52

每个节点应该代表一个游戏状态,给定每个玩家的一组动作。

应该为每个游戏状态以及每个节点定义效用。它应该代表游戏状态对玩家的有利程度。

最小最大树节点每隔一层计算一次。也就是说,我不会在我的走棋之后立即评估游戏的状态,而是在我的对手每次走棋之后评估游戏的状态。

对于两人游戏:

我有 X 种可能的动作。

对于我的 X 个可能的移动,都有一个游戏状态。我们不需要这些游戏状态的效用。

对于这 X 个游戏状态中的每一个,我的对手都有 Y 个可能的动作。

对于这 Y 个可能的移动中的每一个,都有另一个游戏状态。我们需要这些游戏状态的实用程序。

Each node should represent a gamestate, given a set of actions by each player.

Utility should be defined for each gamestate, and thereby, each node. It should represent how favorable a gamestate is for a player.

Minimax tree nodes are computed every other layer. That is to say, I don't evaluate the state of the game directly after my move, but instead after each time my opponent(s) make a move.

For a two player game:

I have X possible moves.

For each of my X possible moves, there is a gamestate. We do not need the utility of these gamestates.

For each of those X gamestates, my opponent has Y possible moves.

For each of those Y possible moves, there is another gamestate. We need the utilities of these gamestates.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文