The value of the improving variable

Discussion of chess software programming and technical issues.

Moderator: Ras

Uri Blass
Posts: 10912
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: The value of the improving variable

Post by Uri Blass »

Eelco de Groot wrote: Mon Oct 20, 2025 8:16 am You have to go back to somewhere timeframe Stockfish 11 for the introduction. Without Marco Costalba's rigorous approach to atomic testing I doubt it would have worked well. And he knew how to get it technically perfect. We later got word from Mark Lefler and Larry Kaufman I think on the Rybka forum it was but I don't know exactly the source, not Larry but another programmer it was but with a pseudonym, that it worked well for them too. I am glad it has been adopted so widely! If it did work, somewhat universally, strengthens the 'theory' if you may call it that. Which is not difficult to follow really, more chess than programming.

Here it is on Catawiki. but mainly programming examples:
https://www.chessprogramming.org/Improving

I did not know it is part of stockfish and the idea is already in my old engine movei that has progress parameter when the idea is to compare the evaluation with the evaluation 2 plies earlier and also to compare the evaluation 2 plies earlier with the evaluation 4 plies earlier to give a bonus based on the question if there is an improvement.
Uri Blass
Posts: 10912
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: The value of the improving variable

Post by Uri Blass »

Note that I did not test the optimal value of the improvement parameter in movei but it seemed to help.

progress 10 10 10 10 is the values and based on my memory one of the number is meaningless and practically I only used 3 10's as bonuses to the evaluation(10 centi-pawn when the evaluation is better than what happened 2 plies earlier,additional 10 centi-pawns if it is also better than 4 plies earlier and finally additional 10 centi-pawns if it is also better than 4 plies earlier)
User avatar
Rebel
Posts: 7391
Joined: Thu Aug 18, 2011 12:04 pm
Full name: Ed Schröder

Re: The value of the improving variable

Post by Rebel »

Bart Weststrate wrote: Sun Oct 26, 2025 4:43 pm But what i ment was that it is shaping the tree in unexpected ways. Hence the confusion.
IID was ment to speed up things somewhat. IIR is shaping the tree in a totally different way.

See here:

https://www.talkchess.com/forum3/viewto ... 41#p857041
Yes Bart, IIR is a strange animal, it gives elo but much depends how good your search already is, for a program like Stockfish there is not much to gain, I remember Oliver Brausch got good elo, the same for my old school ProDeo. The idea was based on the observation that if a node had no TT move -> that's bad for move ordering -> let's reduce one ply -> then the next iteration the node will have a move! And that's all there is.

It worked for ProDeo elo wise but it had a nasty unwelcome side effect -> loss of tactical strength.

But you can control it, examples, 1) do not reduce in Pvnodes, 2) do not reduce when the remaining depth < x, 3) do not reduce more than one ply. Furthermore I think when the hash table is about full, IIR may become an obstacle, IOW, hash table size matters.
90% of coding is debugging, the other 10% is writing bugs.
Uri Blass
Posts: 10912
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: The value of the improving variable

Post by Uri Blass »

Uri Blass wrote: Mon Oct 27, 2025 9:30 am Note that I did not test the optimal value of the improvement parameter in movei but it seemed to help.

progress 10 10 10 10 is the values and based on my memory one of the number is meaningless and practically I only used 3 10's as bonuses to the evaluation(10 centi-pawn when the evaluation is better than what happened 2 plies earlier,additional 10 centi-pawns if it is also better than 4 plies earlier and finally additional 10 centi-pawns if it is also better than 4 plies earlier)
Reading the thread again I see that my idea was different and my imrovement parameter was about changing the evaluation and not about reductions or extensions.

I thought it was about evaluation based on reading the beginning of the first post but it seems that it is about connection between change in the evaluation and the search that is not what I do in this parameter.