2017-02-21 22 views
0

我成功地實現了一個負面的遊戲引擎,它運行良好,但具有確定性。這意味着我可以一遍又一遍地重放同一遊戲,因爲對於給定的位置,遊戲引擎每次都會產生相同的最佳移動。這在我的例子中是不需要的,因爲我想在編碼錦標賽和確定性行爲方面與我的算法競爭,對手可以很容易地編寫通過對我的程序重播一系列獲勝動作而獲勝的程序。如何使基於alpha-beta搜索的遊戲引擎不確定?

我的問題是,使它不那麼確定的最有效和最優雅的方法是什麼?我可以爲我的位置評估添加隨機偏移量,但恐怕這可能會惡化評估質量。有沒有一個標準的方法來做到這一點?

回答

1

從另一個隨機打開的位置開始。在你研究出錯誤之前,不要爲你的引擎添加隨機性。如果兩次或更多次移動相等,則可以將移動順序中的那些隨機化。

+0

感謝您的建議,但在大多數遊戲中,我無法改變開放位置。我的問題是,在某些比賽中,您提交了編譯後的代碼。我不擔心有人會反編譯我的代碼,但他們可以調整他們的引擎,以發揮我的算法失敗的一系列動作。到目前爲止,我還沒有找到比隨機化避免這種情況更好的方法。我也嘗試過隨機選擇同樣好的動作,但是這會使引擎複雜化,並且在大多數情況下效果不佳,因爲在許多分支中,無論如何都會根據動作得分獲得alpha-beta-cutoff。 –