raccrompton / BookBuilder

An automatic Chess opening repertoire Builder
GNU General Public License v3.0
126 stars 18 forks source link

Very low loss limits reject all moves #6

Closed raccrompton closed 2 years ago

raccrompton commented 2 years ago

Because the engine eval can swing significantly in openings, especially at lower depths, if you put the loss limit at -20 or greater, sometimes the engine will reject all candidate moves.

This occurs because we work out the loss limit by doing this:

We have to do this because the engine gets to see one move deeper after our opponent’s move on the next turn, so if we don’t check the eval after their best response now, we can get into a situation where we thought a move was just within the soundness limit, but with 1 more move played the engine can see it’s just outside the soundness limit. Aka we can ‘slip’ out of the soundness limit.

But, essentially the engine can disagree with it's earlier assessment once it has slightly more depth (after all possible moves are played). This means all moves are rejected.

raccrompton commented 2 years ago

fixed in latest version