「minimax」的想法是,在雙人遊戲中,一個玩家試圖最大化某種形式的分數,另一個玩家試圖將其最小化。例如,在Tic-Tac-Toe中,X的勝利可以被評爲+1,而O的勝利被評爲-1。 X會成爲最大的球員,試圖最大限度地提高最終得分,並且O會成爲最小球員,試圖最小化最終得分。
X被稱爲最大玩家,因爲當它是X的移動時,X需要選擇一個移動來最大化移動後的結果。當O球員時,O需要選擇一個移動,使移動後的結果最小化。這些規則以遞歸方式應用,例如如果只有三個棋盤位置開放,X的最佳表現就是促使O選擇一個價值儘可能高的最小值移動的棋子。
換言之,在博弈論極小極大值V爲一個板位置B定義爲
V(B) = 1 if X has won in this position
V(B) = -1 if O has won in this position
V(B) = 0 if neither player has won and no more moves are possible (draw)
否則
V(B) = max(V(B1), ..., V(Bn)) where board positions B1..Bn are
the positions available for X, and it is X's move
V(B) = min(V(B1), ..., V(Bn)) where board positions B1..Bn are
the positions available for O, and it is O's move
x的最優策略是總是從乙移動到Bi使得V(Bi)最大,即對應於博弈理論值V(B),對於O,類似地,選擇最小後繼位置。
但是,這通常不可能在象棋這樣的遊戲中計算,因爲爲了計算遊戲理論值需要枚舉整個遊戲樹直到最終位置,並且該樹通常是非常大的。因此,一種標準的方法就是設置一個「評估函數」,將棋盤位置映射到希望與遊戲理論值相關的分數。例如。在國際象棋程序中,評估函數傾向於給予材料優勢的積極分數,開放列等。最小化算法,它們使評估函數分數最小化,而不是實際(未計算)的棋盤位置的博弈理論值。
minimax的一個重要的標準優化是「alpha-beta修剪」。它給出了與minimax搜索相同的結果,但速度更快。 Minimax也可以按照「negamax」進行鑄造,其中每個搜索級別的分數符號都被顛倒過來。這只是一種實現超級極小的替代方式,但是可以統一處理玩家。其他遊戲樹搜索方法包括迭代加深,證明號碼搜索等。
正在做作業嗎? – Jordan
我仍然在高中......我爲激情學習:) –