NULL-MOVE

Programming Topics (Computer Chess) and technical aspects as test techniques, book building, program tuning etc

Moderator: Andres Valverde

NULL-MOVE

Postby beco » 20 Oct 2004, 14:16

Hi dear all,

Please, somebody that understood the dynamics of the NULL-MOVE under the MINIMAX with ALPHA/BETA cut, can make some comments here?

What I did understood is that in the search-tree we should add a null move and see the evaluation. Well, how this evaluation could help cut the tree if it should be a very bad move? (I mean, in the minimax, when I found a good move, it help me to cut the bad ones, because I have a great score already...)

Another point is that the null move can help to find the opponent "killer" move, and then, it can help to cut the tree (because we found a good move to the opponent). (Did I get near the idea? But then, this technique is the "killer move", and not the "null-move" techinique... :? )

Any thoughts about it?

Yours,
Beco
beco
 

Re: NULL-MOVE

Postby Stan Arts » 20 Oct 2004, 15:02

Hi

Not a static evaluation after a nullmove, but a search, with a reduced depth.
Reduced depth, because this is where the main gain comes from, and is relatively safe, because
the opponent gets to move twice, and will show lots of his dangerous tactics fast.

So, if I was going to do a 7 ply search, at depth 3 in the tree deside to do a nullmove. Deside
to reduce the depth with 2 ply. So then skip doing a move on depth 3, and search on depth 4,
and 5, and then do extentions and qsearch and so like normal.

Then, when the result of this search comes back to depth 3, and it's above beta, you can deside
the position is so good, (because the opponent moved twice, and still could not bring your
score below beta) it will almost 100% certainly fail high here if you did a normal search, and
can just return beta right away. If the score that came back from this nullmove was not above
beta, you can just search the position again, searching also all moves on depth 3 to depth 7
like normal. (or then deside to do nullmoves on depths lower in the searchtree again, etc.)

So what I described above:

1- Root
2- normal ply
3- deside to do a nullmove , will not make any moves here.
4- normal ply (so the opponent got to move twice in a row)
5- normal ply
6- qsearch
7- etc.

So if the nullmovesearch on depth 3 works, that probably means the opponent played a bad move on
depth 2 in the tree, and that my position is now so good he can not compensate for it by moving
again. (for instance if he gave away a piece on depth 2, he can not compensate for that. But giving
away a piece is probably nonsence, and so such a quicker nullmove search returns faster.)

You shouldn't nullmove in the tree when side to nullmove is in check, because then the opponent
will capture your king the next ply. And there are lots of other restrictions and things you can
do to help make nullmove safer, but hope the above helps.

Greetings
Stan
User avatar
Stan Arts
 
Posts: 28
Joined: 30 Sep 2004, 18:29
Location: The Netherlands


Return to Programming and Technical Discussions

Who is online

Users browsing this forum: No registered users and 24 guests