2013-04-20 109 views
0

我需要啓發式掃雷遊戲的建議。如果發現沒有我的10個領域,我很好奇如何估計應該打開下一個領域?我正在考慮在數字的每個區域周圍尋找地雷的可能性,並在計算結束時選擇一個可能性最小的區域,但我認爲它不會給我帶來好的結果,因爲我需要打開已經安全的區域以及什麼我需要的是打開一個領域,這將打開董事會的最大區域。我想閱讀好的想法,但沒有欺騙算法。AI算法可能的最短路徑解決方案

回答

0

您可以嘗試使用蒙特卡洛模擬的A *搜索。也就是說,爲每種正在打開的單元類型(每種類型的動作)定義成本/回報。

假設您在當前時間步驟可以執行K個不同的操作(a_1,a_2,a_3 ...)。

  1. 對於每個動作(開放單元格X),並使用遊戲模型來模擬接下來會發生什麼。存儲獎勵的行動順序,並積累獎勵原來的行動。您可以將概率權重添加到操作以及後果以使估算更準確。

  2. 取每個動作和動作序列的模擬獎勵的平均值。在深度D處進行M次模擬(其中M和D只是預定義值以確保算法不會花費太長時間)後,從模擬獎勵最高的(a_1,a_2,a_3 ...)中選擇一個動作。修剪是必要的,使這種方法有效(也就是說,不要浪費時間在幾個步驟模擬後肯定不會導致高回報的行動)