“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
我仍然在高中......我为激情学习:) –