Minimax算法 又名極小化極大算法,是一種找出失敗的最大可能性中的最小值的算法(即最小化對手的最大得益)。通常以遞歸形式來實現。
Minimax算法常用於棋類等由兩方較量的遊戲和程式。該算法是一個零總和算法,即一方要在可選的選項中選擇將其優勢最大化的選擇,另一方則選擇令對手優勢最小化的一個,其輸贏的總和為0(有點像能量守恆,就像本身兩個玩家都有1點,最後輸家要將他的1點給贏家,但整體上還是總共有2點)。很多棋類遊戲可以採取此算法,例如tic-tac-toe。
基本介紹
- 中文名:極大極小值算法
- 外文名:Minimax Algorithm
- 極大極小策略
是考慮雙方對弈若干步之後,從可能的步中選一步相對好的步法來走,即在有限的搜尋深度範圍內進行求解。
定義一個靜態估價函式f,以便對棋局的態勢做出優劣評估。
規定:
max和min代表對弈雙方;
p代表一個棋局(即一個狀態);
有利於MAX的態勢,f(p)取正值;
有利於MIN的態勢,f(p)取負值;
態勢均衡,f(p)取零值; - MINMAX的基本思想(1)當輪到MIN走步時,MAX應該考慮最壞的情況(即f(p)取極小值)(2)當輪到MAX走步時,MAX應該考慮最好的情況(即f(p)取極大值)(3)相應於兩位棋手的對抗策略,交替使用(1)和(2)兩種方法傳遞倒推值