2017-02-21 35 views
0

我成功地实现了一个负面的游戏引擎,它运行良好,但具有确定性。这意味着我可以一遍又一遍地重放同一游戏,因为对于给定的位置,游戏引擎每次都会产生相同的最佳移动。这在我的例子中是不需要的,因为我想在编码锦标赛和确定性行为方面与我的算法竞争,对手可以很容易地编写通过对我的程序重播一系列获胜动作而获胜的程序。如何使基于alpha-beta搜索的游戏引擎不确定?

我的问题是,使它不那么确定的最有效和最优雅的方法是什么?我可以为我的位置评估添加随机偏移量,但恐怕这可能会恶化评估质量。有没有一个标准的方法来做到这一点?

回答

1

从另一个随机打开的位置开始。在你研究出错误之前,不要为你的引擎添加随机性。如果两次或更多次移动相等,则可以将移动顺序中的那些随机化。

+0

感谢您的建议,但在大多数游戏中,我无法改变开放位置。我的问题是,在某些比赛中,您提交了编译后的代码。我不担心有人会反编译我的代码,但他们可以调整他们的引擎,以发挥我的算法失败的一系列动作。到目前为止,我还没有找到比随机化避免这种情况更好的方法。我也尝试过随机选择同样好的动作,但是这会使引擎复杂化,并且在大多数情况下效果不佳,因为在许多分支中,无论如何都会根据动作得分获得alpha-beta-cutoff。 –