hi,
I have a condition not to do a null move if *both* alpha or beta are not set.
on the first move at the root when it gets to depth -1 or second ply of the search both alpha and beta are not set so it wont do a null move.
but what i realized is once there is a root alpha, whenever it tries any moves at the root and gets to teh second level of search, ply 2 or depth -1 , alpha will never be set. beta will be but not alpha.
Should i not do null moves at the rootdepth-1 or should i do null moves even if alpha is not set but beta is.
Mike
null move when to start it
Moderator: Ras
-
- Posts: 626
- Joined: Sun May 13, 2007 9:55 pm
- Location: Bay Area, CA USA
- Full name: Mike Adams
-
- Posts: 20943
- Joined: Mon Feb 27, 2006 7:30 pm
- Location: Birmingham, AL
Re: null move when to start it
1. You can do null move at _every_ node with hardly any penalty and it will be a big win over no null-move at all.adams161 wrote:hi,
I have a condition not to do a null move if *both* alpha or beta are not set.
on the first move at the root when it gets to depth -1 or second ply of the search both alpha and beta are not set so it wont do a null move.
but what i realized is once there is a root alpha, whenever it tries any moves at the root and gets to teh second level of search, ply 2 or depth -1 , alpha will never be set. beta will be but not alpha.
Should i not do null moves at the rootdepth-1 or should i do null moves even if alpha is not set but beta is.
Mike
2. you can get a bit more clever and not do null-move except when beta - alpha == 1, and get a slightly bigger win although the difference is not very significant.
You can also use the hash table to disable null-move. For example, if you find an entry that says "fail low but draft is not sufficient to do so" then a reduced depth search will likely fail low and the hash hint would avoid trying the null-move. Again the gain is not huge...