2010-02-10 22 views
1

我剛開始嘗試使用minimax/negamax算法,並提出了一個對我來說很好的想法,但由於沒有人使用它,這可能是一個有缺陷的邏輯。Minimax使用已經評估過的樹。我的缺點在哪裏?

我們爲什麼不這樣做:

創建三個與深度= X,找出哪些移動提出的,等待我們的對手。在他採取行動之後,我們可以採取我們已經評估的動作的子樹,並在使用舊節點的同時繼續構建它。我們可以使用已經評估過的節點值,並用來自新的更深層節點的新值對它們進行權衡。

儘管新的值可能不像通常的方法那樣精確,但我們可以從中得到更多更深的利潤。

我爲我的和不好的書面和非結構化問題表示歉意,但我希望你明白我的意思。

回答

1

我想你在這裏失蹤的是如何 minimax的作品。 Minimax列舉了指定深度D的所有可能性,然後爲D中的節點(遊戲狀態)分配一個分數,然後向上移動樹,根據我是否是最大化在每個深度返回MAX或MIN節點球員或最小化的球員。

您提出的自頂向下的建議意味着您必須爲淺層深度的節點分配評分,導致較差的評估。

1

這個想法正在使用,但以不同的方式。評估得分保留在換位表中並重新使用,而不是保持周圍的搜索結果,這樣會使記憶過於緊張。這可以節省時間iterative deepening,因爲許多職位將緩存先前搜索的分數。因此,重複使用舊的搜索結果可以幫助進行一些中間搜索並加快移動排序,但是仍然需要在引擎正在使用的任何終端搜索深度下評估葉節點。

相關問題