极小极大算法对于两个像井字游戏的玩家都有很好的描述。我需要为Tank游戏编写AI。在这个游戏中,坦克必须在迷宫中移动,迷宫中有壁垒形式的障碍物。目标是收集硬币堆。如果只有两个玩家,则可以实施minimax算法。但是如何实现两个以上呢?在每个回合中,每个玩家都将尝试最大化自己的获胜优势。我不能认为所有的玩家都是一个敌人,就像在原始的minimax算法中一样,试图降低我的获胜优势来创造两个玩家等级。如果问题的格式不正确,请原谅。还是这个论坛的新手
您不能再为此使用minimax。除非您制定了最大化自己的利润和最小化另一方利润之和的混合目标。但这很难实现。
最好是创建能够在战略层面上了解需要做什么的算法。将游戏转变为两个玩家:我与其他玩家,然后从这里开始。
如何使用多个最小化代理处理最小化功能是在所有代理具有相同深度的情况下运行最小化功能。一旦最小化代理程序全部完成,就可以在最后一个最小化代理程序上运行最大化功能。
# HOW YOU HANDLE THE MINIMIZING FUNCTION - If this pseudocode helps make better sense out of this.
scores = []
if agent == end_of_minimizing_agents: # last minimizing agent
for actions in legal_actions:
depth_reduced = depth-1
scores.append(max(successor_state, depth_reduced))
else:
for actions in legal_actions:
scores.append(min(successor_state, depth))
bestScore = min(scores)
return bestScore