using the evaluation to guide pruning decisions ?
Moderator: Ras
-
MahmoudUthman
- Posts: 237
- Joined: Sat Jan 17, 2015 11:54 pm
using the evaluation to guide pruning decisions ?
Why does stock fish use static evaluation value alongside the one enhanced by the TT score , for example in determining when to perform null move ?
-
jdart
- Posts: 4428
- Joined: Fri Mar 10, 2006 5:23 am
- Location: http://www.arasanchess.org
Re: using the evaluation to guide pruning decisions ?
The answer to practically all such questions is "because it tested better."
--Jon
--Jon
-
MahmoudUthman
- Posts: 237
- Joined: Sat Jan 17, 2015 11:54 pm
Re: using the evaluation to guide pruning decisions ?
but could make it better , I mean shouldn't the second form always be more accurate thus testing better than using the staticeval ?jdart wrote:The answer to practically all such questions is "because it tested better."
--Jon
I'm not debating I just want to understand what could cause this
-
Eelco de Groot
- Posts: 4702
- Joined: Sun Mar 12, 2006 2:40 am
- Full name: Eelco de Groot
Re: using the evaluation to guide pruning decisions ?
It is not really known why. But the main reason I think is simple. You have not yet executed any of the moves you are testing here, (you are the side under alpha, ALL node) so it is not so easy to get search information on that move. It is easier for search() not to duplicate te process so here search is conservative and does not exclude too many moves. (also, in an ALL node (losing side you are below alpha)) any capture can increase eval a lot that is why in qsearch you only stop, stand pat, if static eval is above alpha, but if it is below you have to search at least all captures that might still get you back to alpha).
The downside of the system is, if you had search information from all the moves in this ALL node available somehow, for instance from a previously completed search at lower iteration and stored the distribution, you could probably learn something from the (statistical) distribution of evals in this node. Especially at lower depths when these are more static eval + short search related than just upper limits (deeper zero window searches only telling you that the move is below alpha)
The downside of the system is, if you had search information from all the moves in this ALL node available somehow, for instance from a previously completed search at lower iteration and stored the distribution, you could probably learn something from the (statistical) distribution of evals in this node. Especially at lower depths when these are more static eval + short search related than just upper limits (deeper zero window searches only telling you that the move is below alpha)
Debugging is twice as hard as writing the code in the first
place. Therefore, if you write the code as cleverly as possible, you
are, by definition, not smart enough to debug it.
-- Brian W. Kernighan
place. Therefore, if you write the code as cleverly as possible, you
are, by definition, not smart enough to debug it.
-- Brian W. Kernighan