我知道像极小化极大算法这样的算法可以用来玩完美游戏(在这种情况下,我在寻找一个类似于井字游戏的游戏)。
然而,我想知道如何创建一个非完美的算法,或者不同“技能等级”(简单、中等、困难等)的AI,让人类玩家实际上有机会击败它。
回答:
在不同的深度截断搜索以限制计算机的技能。改变评估函数,使计算机偏好不同的策略。
非专业人类玩家使用次优策略和有限的战术。这些大致对应于对游戏状态的评估不佳和有限的前瞻能力。
关于随机性,需要一点点随机性,这样计算机就不会总是犯同样的错误,有时可能会运气好或坏于平常。为此,不要总是选择最佳路径,而是在它们的得分加权下进行选择。你可以通过让AI根据游戏结果来改进其评估函数,即更新其权重,使AI变得更加有趣。这样,它可以通过玩游戏在有限的搜索深度下学习更好的评估函数,就像人类可能会做的那样。