# Computer Chess Club Archives

## Messages

### Subject: Re: not using nullmove? [generalized null move]

Author: Uri Blass

Date: 01:26:42 02/14/04

Go up one level in this thread

```On February 14, 2004 at 01:05:46, Dann Corbit wrote:

>I think the interesting thing about null move is that it is easy to figure out
>if a move is really bad -- which is the main reason why it causes a benefit.  A
>tempo advantage is easily calculated by just switching sides.
>
>But the idea can be generalized nicely.
>
>Suppose that you have a seven ply search performed and it is time to do an 8 ply
>search.  Suppose (further) that from the root node only you never analyze the
>root itself but instead analyze all of the child nodes of the root and save the
>values.
>
>Now, you have some sort of estimate for the "goodness" of each move. Things
>might get reversed on the next ply, but it isn't terribly likely.  After all, we
>look at crappy moves and search them less deeply with the null move heuristic.
>
>Now, suppose that we have 10 moves available:
>
>move 0 has an evaluation of +100 centipawns
>move 1 has an evaluation of +80 centipawns
>move 2 has an evaluation of +77 centipawns
>move 3 has an evaluation of +60 centipawns
>move 4 has an evaluation of +53 centipawns
>move 5 has an evaluation of +19 centipawns
>move 6 has an evaluation of +5 centipawns
>move 7 has an evaluation of -10 centipawns
>move 8 has an evaluation of -110 centipawns
>move 9 has an evaluation of -910 centipawns
>
>Will we (knowing this) want to search them all the same?
>
>Why not use a logarithmic scale based on the difference between the best
>possible move and the move under consideration?

I also thought about that idea but I do not implement it.
There are 2 problems with that idea:

1)You need to calculate exact score for every move so you cannot get it the
score based on a deep depth.

2)evaluation of probability to be the best move is not the same as evaluation
of the position and you may want to search more an interesting sacrifice(move
8)and not a bad positional move(move 4) that only reduce your positional

I believe that exact evaluation of every move to reduced depth can help but not
in the way that you describe.

It is one of the things that I still do not do in my program.
I use evaluation to do reductions but only in the last plies.

>
>Zugzwang sorts itself out.
>
>We can also add refinements like increasing the shear with mobility increase
>(greater reductions if I have 90 choices than if I have 12).

This is an idea that I thought in the beginning (to do less extensions based on
the number of moves) but the problem is that the program does comparison between
odd and even plies and I do not trust my evaluation to compare correctly between
positions with white to move and positions with black to move so I decided that
small partial extensions may be a bad idea because it may cause the program to
search at some point 2 plies forward after move A and 1 ply forward after move B
when the only difference is that after move A there are 30 legal moves when
after move B there are 31 legal moves.

Uri

```