Computer Chess Club Archives


Search

Terms

Messages

Subject: Negamax example

Author: Severi Salminen

Date: 09:00:43 04/11/00

Go up one level in this thread


Hi!

>int NegaMax (pos, depth)
>{
>    if (depth == 0) return Evaluate(pos);
>    best = -INFINITY;
>    succ = Successors(pos);
>    while (not Empty(succ))
>    {
>        pos = RemoveOne(succ);
>        value = -NegaMax(pos, depth-1);
>        if (value > best) best = value;
>    }
>    return best;
>}

Thanks for explonations, but still: Let's say we have a white pawn at a6 and
king at a1 and a black queen at b7, rook at h2 and king at h8. It is white's
turn to move. (The text is right, not so sure about the diagram, my first...)

[D]7k/1q6/P7/8/8/8/7r/K7 w - - 0 1

White has two alternatives: a7 and axb7(which is obviously better). We perform a
1 ply search using the above negamax. At first pass it sets BEST=-inf and starts
to scan the two moves. First it takes a7. As the evaluation of position after a7
is -13 (only material) VALUE is set to +13. This is bigger than -inf so BEST is
now 13. Next we take axb7. The evaluation is -4 , so VALUE is +4. But this is
smaller than BEST (+13), so we won't take that move. So I STILL don't understand
something. I just want to get this right before I change to AB.

Severi



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.