Testing LMR chhanges at 5"+0.05" is a very different beast versus testing at 60"+0.6". What is the longest time control you find useful to validate said changes? I usually have to increment time by 30x but there must be something more efficient, or some alternate method?
To add some context, I'm referring to the usual LMR formula. log2(min(moveNum, 64)) * log2(min(depth, 64)) * X1 + X2
LMR testing
Moderator: Ras
-
- Posts: 463
- Joined: Mon Jun 07, 2010 3:13 am
- Location: Holland, MI
- Full name: Martin W
-
- Posts: 1276
- Joined: Wed Mar 08, 2006 8:28 pm
- Location: Florida, USA
Re: LMR testing
Hi Martin,
Interesting — I had thought basically any time control would work. I'll do some digging.
As for the "usual LMR formula", do you know which engines us this formula? Does Stockfish use it?
— Steve
Interesting — I had thought basically any time control would work. I'll do some digging.
As for the "usual LMR formula", do you know which engines us this formula? Does Stockfish use it?
— Steve
http://www.chessprogramming.net - Juggernaut & Maverick Chess Engine
-
- Posts: 193
- Joined: Sun Oct 30, 2022 5:26 pm
- Full name: Conor Anstey
Re: LMR testing
stockfish has a variation on it, it's almost a standard now - you can see it in SP (with unclamped moves and depth) here https://github.com/Ciekce/Stormphrax/bl ... le.cpp#L37Steve Maughan wrote: ↑Fri Nov 17, 2023 9:14 pm As for the "usual LMR formula", do you know which engines us this formula? Does Stockfish use it?
pick any strong engine off CCRL and chances are it'll use that formula or something very similar
-
- Posts: 463
- Joined: Mon Jun 07, 2010 3:13 am
- Location: Holland, MI
- Full name: Martin W
Re: LMR testing
Berzerk: log(d) * log(m) * x + ySteve Maughan wrote: ↑Fri Nov 17, 2023 9:14 pm Hi Martin,
Interesting — I had thought basically any time control would work. I'll do some digging.
As for the "usual LMR formula", do you know which engines us this formula? Does Stockfish use it?
— Steve
Demolito: log(d) * x + log(m) * y
Senpai: log2(d) * log2(m) * x
Ethereal: log(d) * log(m) * x + y
There is some variation, but more-or-less, the formulas are near identical
-
- Posts: 1276
- Joined: Wed Mar 08, 2006 8:28 pm
- Location: Florida, USA
Re: LMR testing
That's great! Thanks! I have come across this formula but didn't appreciate how widespread it was being used.
— Steve
— Steve
http://www.chessprogramming.net - Juggernaut & Maverick Chess Engine
-
- Posts: 463
- Joined: Mon Jun 07, 2010 3:13 am
- Location: Holland, MI
- Full name: Martin W
Re: LMR testing
Changes that can significantly affect the tree or branching factor seem to be the most sensitive to time control in my experience. They could yield more Elo at shorter tcs, but turn negative at longer, and vice-versa. Usually my slowest tc testing is 60"+0.6", only 6x slower than my fastest. Maybe I need a greater breadth?Steve Maughan wrote: ↑Fri Nov 17, 2023 9:14 pm Hi Martin,
Interesting — I had thought basically any time control would work. I'll do some digging.
As for the "usual LMR formula", do you know which engines us this formula? Does Stockfish use it?
— Steve
-
- Posts: 15
- Joined: Fri Mar 18, 2016 3:34 pm
Re: LMR testing
What is X1 and X2? Maybe a stupid question...gaard wrote: ↑Fri Nov 17, 2023 8:10 pm Testing LMR chhanges at 5"+0.05" is a very different beast versus testing at 60"+0.6". What is the longest time control you find useful to validate said changes? I usually have to increment time by 30x but there must be something more efficient, or some alternate method?
To add some context, I'm referring to the usual LMR formula. log2(min(moveNum, 64)) * log2(min(depth, 64)) * X1 + X2

-
- Posts: 193
- Joined: Sun Oct 30, 2022 5:26 pm
- Full name: Conor Anstey
Re: LMR testing
Tunable params. X1 = 1/2.36 and X2 = 0.77 in my engineBart Weststrate wrote: ↑Mon Nov 20, 2023 7:38 pmWhat is X1 and X2? Maybe a stupid question...gaard wrote: ↑Fri Nov 17, 2023 8:10 pm Testing LMR chhanges at 5"+0.05" is a very different beast versus testing at 60"+0.6". What is the longest time control you find useful to validate said changes? I usually have to increment time by 30x but there must be something more efficient, or some alternate method?
To add some context, I'm referring to the usual LMR formula. log2(min(moveNum, 64)) * log2(min(depth, 64)) * X1 + X2![]()
-
- Posts: 6895
- Joined: Wed Nov 18, 2009 7:16 pm
- Location: Gutweiler, Germany
- Full name: Frank Quisinsky
Re: LMR testing
BTW:
Wow ... Bart Westrate is here!
Jan Louwman gave often the information: Clearly the most talented chess programmer (middle of the 90er).
Kallisto 1.83 was most aggressive ... produced the most short wins!
OK, newer versions are stronger and the DOS graphic from Kallisto was a mega-event.
Bart, today I have excactly the same fun with your Kallisto II as in the time you gave me the program in Leiden.
Send shortly my regards!
Best
Frank
Maybe you have interest to create an UCI engines for us!
Sure, an event!
Wow ... Bart Westrate is here!
Jan Louwman gave often the information: Clearly the most talented chess programmer (middle of the 90er).
Kallisto 1.83 was most aggressive ... produced the most short wins!
OK, newer versions are stronger and the DOS graphic from Kallisto was a mega-event.
Bart, today I have excactly the same fun with your Kallisto II as in the time you gave me the program in Leiden.
Send shortly my regards!
Best
Frank
Maybe you have interest to create an UCI engines for us!
Sure, an event!