Page 3 of 3
Re: Hard pruning history
Posted: Mon Dec 27, 2010 10:20 am
by mcostalba
thorstenczub wrote: when null move was established, this asymmetric search was outsearched by symmetric null move programs
Perhaps could be interesting to note that null move is not symmetric, is applied only to the nodes above beta (although there are variations here, some engine uses a margin subtracted from beta as threshold, so that if a node is below beta but not by much is still eligible for a null search).
Re: Hard pruning history
Posted: Tue Dec 28, 2010 8:14 pm
by tom
mcostalba wrote:thorstenczub wrote: when null move was established, this asymmetric search was outsearched by symmetric null move programs
Perhaps could be interesting to note that null move is not symmetric, is applied only to the nodes above beta (although there are variations here, some engine uses a margin subtracted from beta as threshold, so that if a node is below beta but not by much is still eligible for a null search).
Hi,
Any ideas on how good this idea (only nullmove if score>=beta) is, in Stockfish? My bet is that its value is very low, perhaps just a few ELO. I'd be interested to hear any hard figures, e.g. "it was worth 20 elo for me", "it was worth nothing for me" etc.
It's not something I've ever tested seriously. I do null move whatever the current score is, and have always felt that was best.
Regards,
Tom
Re: Hard pruning history
Posted: Wed Dec 29, 2010 8:02 am
by mcostalba
tom wrote: Any ideas on how good this idea (only nullmove if score>=beta) is, in Stockfish?
In Glaurung null search was already implemented (in the 'added margin' version), we have never tried to remove it and see how much it is worth. First because we had something better to do with CPU time, second because has not a lot of sense IMHO: after removing the null search we should compensate with modifying other parameters like futility or LMR, in other words this kind of features are deeply integrated in the engine and simply cannot be evaluated alone.
We have removed the 'added margin' only recently: I had tried before but it didn't worked, then, after increasing LMR and futility I retried to use a pure score >= beta condition and it worked (although not by much). This is a perfect example of what I tried to explain above.
Re: Hard pruning history
Posted: Wed Dec 29, 2010 11:34 am
by Richard Vida
mcostalba wrote:tom wrote: Any ideas on how good this idea (only nullmove if score>=beta) is, in Stockfish?
In Glaurung null search was already implemented (in the 'added margin' version), we have never tried to remove it and see how much it is worth. First because we had something better to do with CPU time, second because has not a lot of sense IMHO: after removing the null search we should compensate with modifying other parameters like futility or LMR, in other words this kind of features are deeply integrated in the engine and simply cannot be evaluated alone.
We have removed the 'added margin' only recently: I had tried before but it didn't worked, then, after increasing LMR and futility I retried to use a pure score >= beta condition and it worked (although not by much). This is a perfect example of what I tried to explain above.
A little curiosity: There is a bug in current Critter related to this. My intention was to use margin=0 close to root and gradually raising it deeper in the tree (to a maximum of about 1.5 pawns). I made a mistake and coded it exactly opposite way than intended. After fixing this it made no strength difference at all (within +-5).
Re: Hard pruning history
Posted: Wed Dec 29, 2010 12:37 pm
by mcostalba
Richard Vida wrote:mcostalba wrote:tom wrote: Any ideas on how good this idea (only nullmove if score>=beta) is, in Stockfish?
In Glaurung null search was already implemented (in the 'added margin' version), we have never tried to remove it and see how much it is worth. First because we had something better to do with CPU time, second because has not a lot of sense IMHO: after removing the null search we should compensate with modifying other parameters like futility or LMR, in other words this kind of features are deeply integrated in the engine and simply cannot be evaluated alone.
We have removed the 'added margin' only recently: I had tried before but it didn't worked, then, after increasing LMR and futility I retried to use a pure score >= beta condition and it worked (although not by much). This is a perfect example of what I tried to explain above.
A little curiosity: There is a bug in current Critter related to this. My intention was to use margin=0 close to root and gradually raising it deeper in the tree (to a maximum of about 1.5 pawns). I made a mistake and coded it exactly opposite way than intended. After fixing this it made no strength difference at all (within +-5).
Intuitively I would say that is correct as you do now: evaluation is more and more less accurate as you move near the root so you may want to try a null search also on positions below beta when you are at the root, instead near the leaves evaluation becomes more accurate while null search is more and more less rewarding in term of saved time.
Anyhow I found that search parameters (LMR, futility, null search reductions, etc) are very insensible to variations: you need to kick them hard to see a change (good or bad).
Evaluation parameters are instead more fine-tunable.
Re: Hard pruning history
Posted: Wed Dec 29, 2010 2:35 pm
by Sentinel
Richard Vida wrote:A little curiosity: There is a bug in current Critter related to this. My intention was to use margin=0 close to root and gradually raising it deeper in the tree (to a maximum of about 1.5 pawns). I made a mistake and coded it exactly opposite way than intended. After fixing this it made no strength difference at all (within +-5).
I tried all sorts of margins (positive, negative), bigger closer to root, bigger closer to leaves, etc.
I didn't go though to such extremes as you did (150cp), only to like 50 cp, but I didn't detect any measurable difference (all within error margins +/- 4 Elo).
Re: Hard pruning history
Posted: Wed Dec 29, 2010 5:36 pm
by tom
mcostalba wrote:
Anyhow I found that search parameters (LMR, futility, null search reductions, etc) are very insensible to variations: you need to kick them hard to see a change (good or bad).
Yeah, it's interesting how seemingly significant tweaks (or bugs) in this area have so little effect on strength..