寻找更好的回溯系统

Looking for a better backtracking system

本文关键字:系统 回溯 更好 寻找      更新时间:2023-10-16

我将尝试用简单的术语来解释这一点,因为它可能比发布代码更短。我制作了一个递归解决方案的一部分,该解决方案必须通过选择正确的"移动顺序"来完成游戏,如果陷入僵局,则必须回溯。我目前的系统通过对任何未起作用的移动设置一个标识符来工作,这样在回溯时就不能再次使用它,直到找到新的路径/移动顺序。

然而,我遇到了一个问题;游戏可以达到这样一种状态,即只剩下两步,而这两步都不会解决游戏。我目前的系统基本上会让这两个动作不断地交换,因为解决方案试图玩一个动作,发现它不起作用,然后尝试下一个动作。我相信我的问题是,每次移动时,我都会重置我的标识符,该标识符告诉解决方案不要使用移动,但我不确定我会如何设置它。

如果您需要任何进一步的信息或有任何见解,请告诉我。谢谢

我不确定你所描述的游戏的性质,一些更多的信息可以帮助你确定一个更好的方法。我在主题中看到了你的评论,你说这个索引在找到新的移动后重置。这听起来不太好。我相信你必须解决这个问题,因为正如你刚刚从你的例子中看到的那样,有些情况下它会失败,我们不能有一个只在条件下工作的算法。

你描述的问题听起来像游戏树?对的如果是这样的话,为什么不把你对问题的描述改为游戏树,并使用一种经过验证的游戏树搜索算法,如Alpha Beta Pruning,假设游戏是对抗性的?