运行 Minimax/Expectimax 在选择的下一个状态

Running Minimax/Expectimax on the next state chosen

如果我运行一个minimax/expectimax表示当前状态或起始状态,假设根有3个children(机会节点)和运行s minimax/expectimax 算法。假设,它找到了最优的终端节点,进而得到了根的最优child。这意味着它将选择导致具有最佳效用的最终状态的特定移动。我们称从根到那个终端状态的路径,路径 P.

并且我们假设对方玩家也按照 expectimax/minimax 树的预测进行了移动并且该移动在路径 P 中,那么我们是否应该再次 运行 expectimax/minimax 算法新状态,或者我们只能看到路径 P,并从该路径 P 中的下一个节点猜测下一步。

我的逻辑是否正确,还是我遗漏了两个玩家的 expectimax/minimax 算法。

此外,一些指向实际如何实现示例的链接会很好。

不,你没有遗漏任何东西。 minimax 算法的问题在于博弈树的大小。通常在实现 minimax 算法时,可以选择限制树的深度以避免大量计算。如果你选择限制树的深度,在下一步你不应该总是移动到路径 P 中的下一个节点,而是再次计算树,并且路径可能会因为增加的深度而改变。 这是我编写的项目中的 link 到 minimax 实现。 minimax implementation (请注意,此实现还包括用于加快计算速度的 alpha-beta 剪枝)。

如果您选择不限制状态树的深度,则没有必要再次计算它,在这种情况下您将继续路径 P.