Minimax 和 Negamax 有什么区别?
What is the difference between Minimax and Negamax?
我对这两个感到困惑。 Negamax 只是对 minimax 的优化吗?还是 Negamax 是另一种搜索树算法?如果negamax是另一种搜索树算法,那么哪个更好?
从here
中提取的信息
Negamax 是 MinMax 的简化,使用以下 属性 :
max(a,b) = -min(-a,-b)
因此,不是在 minmax 中计算条件值,而是如下所示:
if maximizingPlayer then
value := −∞
for each child of node do
value := max(value, minimax(child, depth − 1, FALSE))
return value
else (* minimizing player *)
value := +∞
for each child of node do
value := min(value, minimax(child, depth − 1, TRUE))
你有一行在 Negamax 中做同样的事情:
value := max(value, −negamax(child, depth − 1, −color))
并且布尔值被颜色的概念(在文章中)取代,它只是一个 1 或 -1 的值,用于在玩家回合之间交替(如果我们应该最小化或最大化下一个回合)
我对这两个感到困惑。 Negamax 只是对 minimax 的优化吗?还是 Negamax 是另一种搜索树算法?如果negamax是另一种搜索树算法,那么哪个更好?
从here
中提取的信息Negamax 是 MinMax 的简化,使用以下 属性 :
max(a,b) = -min(-a,-b)
因此,不是在 minmax 中计算条件值,而是如下所示:
if maximizingPlayer then
value := −∞
for each child of node do
value := max(value, minimax(child, depth − 1, FALSE))
return value
else (* minimizing player *)
value := +∞
for each child of node do
value := min(value, minimax(child, depth − 1, TRUE))
你有一行在 Negamax 中做同样的事情:
value := max(value, −negamax(child, depth − 1, −color))
并且布尔值被颜色的概念(在文章中)取代,它只是一个 1 或 -1 的值,用于在玩家回合之间交替(如果我们应该最小化或最大化下一个回合)