How much ELO should I expect to gain from killer moves?

Discussion of chess software programming and technical issues.

Moderators: hgm, Dann Corbit, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
abulmo2
Posts: 349
Joined: Fri Dec 16, 2016 10:04 am
Contact:

Re: How much ELO should I expect to gain from killer moves?

Post by abulmo2 » Sat Jul 17, 2021 8:57 pm

mvanthoor wrote:
Sat Jul 17, 2021 7:53 pm
The one thing I don't understand is that I've seen several engines in the past few weeks, claiming to get +70 Elo from aspiration windows, while I've also seen engines that claim to get nothing from it. I've been experimenting with those (on top of both fail-hard and fail-soft alpha/beta), and the results are, at this point, that they _might_ make a positive difference, but probably not more than +20 Elo, when on top of a fail-soft alpha/beta.
A possible explanation is that aspiration windows is a generic term that cover various implementations. Not all of them are as worth 70 Elo.
Richard Delorme

algerbrex
Posts: 123
Joined: Sun May 30, 2021 3:03 am
Full name: Christian Dean

Re: How much ELO should I expect to gain from killer moves?

Post by algerbrex » Sun Jul 18, 2021 5:28 am

mvanthoor wrote:
Sat Jul 17, 2021 3:40 pm
algerbrex wrote:
Sat Jul 17, 2021 1:17 am
Nope, but here's the code on GitHub now: https://gist.github.com/algerbrex/fbed6 ... b1530d2900
You store the killer move in the bèta-cutoff, which is correct. You also make sure they are unique, which is correct as well. What I don't see is you testing if the killer move is a quiet move. You only store a move as a killer move if it's not a capture.

The reason is that the PV-move / TT-move is ordered on top, all captures are already ordered behind that, and then there are unordered quiet moves that aren't captures. If one of those moves caused the bèta-cutoff, it's a killer; so it's ordered right behind all the captures. (Later this can be refined by ordering it right behind the good captures, before neutral captures and bad captures.)
Ah ok, I did end up noticing that after I posted the code, and so I'll run some more tests with the non-quiet moves filtered out. Thanks. Unfortunately, the preliminary test I've been running aren't super promising, but I'll do my due diligence and run some more to be sure.
Author of Blunder, a UCI compatible chess engine written in Golang.

Post Reply