some things work for some programs ?

Discussion of chess software programming and technical issues.

Moderator: Ras

lauriet
Posts: 199
Joined: Sun Nov 03, 2013 9:32 am

some things work for some programs ?

Post by lauriet »

Its frequently said in the forum that...."somethings work for some programs but not for others".
I don't really understand this.
For instance, if futility pruning (or any technique) is correct in principle, then it should be an improvement for all programs.
If it isn't, doesn't this mean that there is a problem with the program that doesn't improve with it ?

Regards
Laurie.
elcabesa
Posts: 858
Joined: Sun May 23, 2010 1:32 pm

Re: some things work for some programs ?

Post by elcabesa »

all the state of the art techniques work and improve programs. ( null move pruning, late move reductiom, futility pruning and so on)

what you frequently read is that " a small improvement to a very optimized and strong engine that give him 5 elo is not giving the boost to another strong engine"

something like happen in F1 racing, all the cars are state of the art and the tuning that work on a car, doesn't work in another one.

that's my understanding

Regards
Marco
User avatar
hgm
Posts: 28458
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: some things work for some programs ?

Post by hgm »

Futility pruning should probably always give some improvement. But in a program that would strongly reduce moves that blunder away material, only very few nodes would contain futile moves, so that the improvement might be immeasurably small. Many search techniques depend on move ordering or evaluation. E.g. LMR might work poorly if you don't have a proper idea of which moves are 'late', and reduce too many crucial moves. Or when your evaluation does not have enough predictive value to decide at the low (reduced) depth that a move is worth it after all, and trigger an unreduced re-search. (E.g. underestimating King Safety will only recognize sacrificial mate attacks when you actually reach the checkmate, so that every move between the initial sacrifice and the mate will remain fully reduced, effectively blinding the engine against such dangers.)
Henk
Posts: 7251
Joined: Mon May 27, 2013 10:31 am

Re: some things work for some programs ?

Post by Henk »

At the start everything works. At the end nothing works.
lauriet
Posts: 199
Joined: Sun Nov 03, 2013 9:32 am

Re: some things work for some programs ?

Post by lauriet »

>> Many search techniques depend on move ordering or evaluation. E.g. LMR might work poorly if you don't have a proper idea of which moves are 'late', and reduce too many crucial moves.


Yes thats what I was thinking.......if it does not work in an engine then its not doing something else properly.
matthewlai
Posts: 793
Joined: Sun Aug 03, 2014 4:48 am
Location: London, UK

Re: some things work for some programs ?

Post by matthewlai »

lauriet wrote:>> Many search techniques depend on move ordering or evaluation. E.g. LMR might work poorly if you don't have a proper idea of which moves are 'late', and reduce too many crucial moves.


Yes thats what I was thinking.......if it does not work in an engine then its not doing something else properly.
Not necessarily.

For example, futility pruning may work well for most programs, because most futile moves are futile, so it helps more often than it hurts.

Now if you have a program that already uses another technique to prune futile moves, so that the only futile-looking moves left are ones that are surprisingly good, futility pruning would make that program worse.
Disclosure: I work for DeepMind on the AlphaZero project, but everything I say here is personal opinion and does not reflect the views of DeepMind / Alphabet.
User avatar
hgm
Posts: 28458
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: some things work for some programs ?

Post by hgm »

lauriet wrote:Yes thats what I was thinking.......if it does not work in an engine then its not doing something else properly.
Not necessarily. The best move ordering for LMR might not be the best move ordering for the purposeof getting the fastest beta cutoff, and a King Safety tuning that allows you to do very aggressive LMR might be an overestimate from a strategic point of view, and lead to unsound sacrifices.

Almost all features of a Chess engine are trade-offs, and many different combinations of the parameters might achieve the same or a very similar optimum. It is usually possible to repair a defect in its play in several independent ways, and if you have repaired it in one way, the other way of repairing it will seem not to work. That doesn't imply it was wrong to already repair it in the original way. Just different.