Hitting a wall at ~1860 Elo

Discussion of chess software programming and technical issues.

Moderator: Ras

amanjpro
Posts: 883
Joined: Sat Mar 13, 2021 1:47 am
Full name: Amanj Sherwany

Re: Hitting a wall at ~1860 Elo

Post by amanjpro »

BTW. Zahak 2.0.0 reached 2140(?) elo points, with a buggy pawn structure eval (I had a massive bug) and without tuned/tapered eval

As for bug-free eval/search. Today, I successfully gained ~20 elo points by pawn-shield evaluation. Then figured that I had a bug, fixed the bug, and now Zahak plays even worse than before. Some bugs are blessing ;). I am tempted to re-introduce the bug
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: Hitting a wall at ~1860 Elo

Post by mvanthoor »

amanjpro wrote: Wed Jun 02, 2021 7:15 pm As for bug-free eval/search. Today, I successfully gained ~20 elo points by pawn-shield evaluation. Then figured that I had a bug, fixed the bug, and now Zahak plays even worse than before. Some bugs are blessing ;). I am tempted to re-introduce the bug
The frack. What was that bug?

With regard to tuning evaluation: MinimalChess has shown that a fairly basic (and not superfast) engine can gain a huge amount of strength by tapering and tuning the eval. Its "only" about 60-70 Elo stronger, but it's chess looks _much_ nicer and more balanced.

Therefore the tapering and tuning will probably be the next step after the killers, aspiration window, pvs, and (maybe) history.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
Joost Buijs
Posts: 1646
Joined: Thu Jul 16, 2009 10:47 am
Location: Almere, The Netherlands

Re: Hitting a wall at ~1860 Elo

Post by Joost Buijs »

mvanthoor wrote: Wed Jun 02, 2021 7:12 pm
Joost Buijs wrote: Wed Jun 02, 2021 7:10 pm Really? My HCE engine has a tapered and heavily tuned set of PST's too, when I remove al the other features besides material and PST it plays like an idiot. The only difference is that I use symmetric PST's but this doesn't make much difference, with asymmetric PST's you also have to take castling into account, e.g. 4 different sets of PST's.
As far as I've always read about PeSTO: yes... it's said it has only search optimizations, and a tapered and tuned evaluation, with no eval terms. Maybe Ronald can confirm (or deny) this.
Well, you could try to rob HCE Stockfish from everything but material and PST's and watch how it plays. Maybe that a very clever search with material evaluation and PST's will give you something decent but I have my doubts. At least I never got good results with it.
amanjpro
Posts: 883
Joined: Sat Mar 13, 2021 1:47 am
Full name: Amanj Sherwany

Re: Hitting a wall at ~1860 Elo

Post by amanjpro »

mvanthoor wrote: Wed Jun 02, 2021 7:30 pm
amanjpro wrote: Wed Jun 02, 2021 7:15 pm As for bug-free eval/search. Today, I successfully gained ~20 elo points by pawn-shield evaluation. Then figured that I had a bug, fixed the bug, and now Zahak plays even worse than before. Some bugs are blessing ;). I am tempted to re-introduce the bug
The frack. What was that bug?

With regard to tuning evaluation: MinimalChess has shown that a fairly basic (and not superfast) engine can gain a huge amount of strength by tapering and tuning the eval. Its "only" about 60-70 Elo stronger, but it's chess looks _much_ nicer and more balanced.

Therefore the tapering and tuning will probably be the next step after the killers, aspiration window, pvs, and (maybe) history.
When evaluating if the opponent has open files on the king or not, I was doing this:

Code: Select all

openFiles := max16(int16(3-bits.OnesCount64(KingSideShieldFills&allPawns)), 0)
And this is wrong, as this counts the number of pawns in total in the side that king resides, not open files... but hey it makes the engine stronger, and when I changed it to compute open-files correctly, the engine started to play much worse, probably because it needed more binary operations!
User avatar
emadsen
Posts: 441
Joined: Thu Apr 26, 2012 1:51 am
Location: Oak Park, IL, USA
Full name: Erik Madsen

Re: Hitting a wall at ~1860 Elo

Post by emadsen »

amanjpro wrote: Wed Jun 02, 2021 5:45 pm I don't believe in the search/evaluation imbalance. RofChade is a 3000+ engine and it has nothing but Pesto, so is Pesto engine
Do we know that? Where's the source code? Seems like many people on this forum believe that on blind faith.
Erik Madsen | My C# chess engine: https://www.madchess.net
amanjpro
Posts: 883
Joined: Sat Mar 13, 2021 1:47 am
Full name: Amanj Sherwany

Re: Hitting a wall at ~1860 Elo

Post by amanjpro »

emadsen wrote: Wed Jun 02, 2021 8:52 pm
amanjpro wrote: Wed Jun 02, 2021 5:45 pm I don't believe in the search/evaluation imbalance. RofChade is a 3000+ engine and it has nothing but Pesto, so is Pesto engine
Do we know that? Where's the source code? Seems like many people on this forum believe that on blind faith.
for my sanity, I choose to believe it :'(

On a different note, why don't you submit madchess to compete in ZaTour... it will be broadcasted live hopefully
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: Hitting a wall at ~1860 Elo

Post by mvanthoor »

emadsen wrote: Wed Jun 02, 2021 8:52 pm
amanjpro wrote: Wed Jun 02, 2021 5:45 pm I don't believe in the search/evaluation imbalance. RofChade is a 3000+ engine and it has nothing but Pesto, so is Pesto engine
Do we know that? Where's the source code? Seems like many people on this forum believe that on blind faith.
For my two €0.02...

I can believe in search speed/evaluation imbalance.

If you take a beginner at chess who makes basic mistakes, it doesn't matter if he thinks 3 moves ahead or 7. Mistakes will be made due to lack of knowledge. Therefore I believe that at some point, you _will_ hit a wall where engine strength will no longer increase just by sheer speed.

In theory, you _could_ play perfect chess with only three eval terms:

- Material
- Is one side checkmated in this position?
- Is this position a draw by the rules?

However, you would need to see so far ahead in the future (maybe even to all possible ends of the game) that this isn't practical.

With good PST's, the cap on strength can be postponed a lot. That has been proven that different PST's can increase playing strength (there's a topic here in the forums somewhere). A tapered an tuned evaluation with only PST's raises the cap further, but that is already a bit of dynamic information due to the game stages.

Adding a table with mobility raises it even further... (more dynamic information) but there's chess knowledge that cannot be encoded in PST's (such as how to use open files, or if a king is safe or not), which at some point, you really do need to get stronger.

So yes, I believe that at some point, you will hit a cap if you only have static evaluation with PST's. The cap may even be 3100 Elo if you have REALLY good tapered PST's and implement all known search functionality and optimizations perfectly in the fastest language you can find.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
User avatar
emadsen
Posts: 441
Joined: Thu Apr 26, 2012 1:51 am
Location: Oak Park, IL, USA
Full name: Erik Madsen

Re: Hitting a wall at ~1860 Elo

Post by emadsen »

mvanthoor wrote: Wed Jun 02, 2021 6:02 pm PeSTO has a tapered and heavily tuned set of PST's, one for middlegame and one for the endgame. Therefore it has a _massive_ amount of positional knowledge encoded in its PST's... With good PST's, the cap on strength can be postponed a lot. That has been proven that different PST's can increase playing strength (there's a topic here in the forums somewhere)
I wouldn't characterize PESTO as containing "massive" positional knowledge. There's nothing magical about PESTO PSTs. I really don't understand the attention they get. Perhaps for a virgin engine, without sensible PSTs, adding PESTO significantly improves playing strength. But for a mature engine with PSTs calcuated from advancement, centrality, and corner-avoidance, calibrated via Texel tuning to ensure harmony with other eval params, PESTO adds nothing.

Selective search algo + performant code + bug elimination gets you 2500+ ELO. Sophisticated eval (either hand-crafted or neural-network) adds strength in the push towards 3000 ELO.
Erik Madsen | My C# chess engine: https://www.madchess.net
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: Hitting a wall at ~1860 Elo

Post by mvanthoor »

emadsen wrote: Thu Jun 03, 2021 12:18 am I wouldn't characterize PESTO as containing "massive" positional knowledge. There's nothing magical about PESTO PSTs. I really don't understand the attention they get. Perhaps for a virgin engine, without sensible PSTs, adding PESTO significantly improves playing strength. But for a mature engine with PSTs calcuated from advancement, centrality, and corner-avoidance, calibrated via Texel tuning to ensure harmony with other eval params, PESTO adds nothing.
You're right of course, but compared to an engine that has only one set of hand-written PST's, the PeSTO-tables do contain a massive amount of positional knowledge. They get so much attention just _because_ of the fact that they are well tuned. You can just plug them into your engine (along with the mechanics of a tapered evaluation obviously), and you can expect a ~250-300 point Elo boost. That's why they're "magical".

I prefer to create my own "PeSTO" tables though :)
Selective search algo + performant code + bug elimination gets you 2500+ ELO. Sophisticated eval (either hand-crafted or neural-network) adds strength in the push towards 3000 ELO.
I at least intend to try :) I want to write that book/site (and made some good headway with it recently), and I'd like the information in it to be correct; that's the reason why I'm writing and testing each function separately, often in different versions, such as with history... and asking questions if I'm not 100% sure because of conflicting literature, postings, or results.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
mar
Posts: 2667
Joined: Fri Nov 26, 2010 2:00 pm
Location: Czech Republic
Full name: Martin Sedlak

Re: Hitting a wall at ~1860 Elo

Post by mar »

mvanthoor wrote: Thu Jun 03, 2021 12:24 am
emadsen wrote: Thu Jun 03, 2021 12:18 am I wouldn't characterize PESTO as containing "massive" positional knowledge. There's nothing magical about PESTO PSTs. I really don't understand the attention they get. Perhaps for a virgin engine, without sensible PSTs, adding PESTO significantly improves playing strength. But for a mature engine with PSTs calcuated from advancement, centrality, and corner-avoidance, calibrated via Texel tuning to ensure harmony with other eval params, PESTO adds nothing.
You're right of course, but compared to an engine that has only one set of hand-written PST's, the PeSTO-tables do contain a massive amount of positional knowledge. They get so much attention just _because_ of the fact that they are well tuned. You can just plug them into your engine (along with the mechanics of a tapered evaluation obviously), and you can expect a ~250-300 point Elo boost. That's why they're "magical".

I prefer to create my own "PeSTO" tables though :)
well, there's nothing special about the psq tables in "PeSTO" except that they're tuned.
PeSTO (the engine) is strong solely due to its superior search.

when I replaced my whole HCE with PSQ tables from PeSTO, I lost 200 elo immediately.

reaching 3k is really hard (those who claim otherwise are either liars or frauds :) - I'm like 30-40 elo away on single core (CCRL 40/15) - all I can say that you need both a very good search and eval to even think about reaching it. I can't imagine any 3k engine whose eval isn't tuned.

a good evaluation function is worth hundreds of elo, with PSQ only you lack basically everything that forms a decent evaluation function.
it's also important to understand which types of endgames are drawish and either avoid those or enter those (because even in midgame, the engine considers lots of simplifications at the tip of its search)

as for hitting a wall - nullmove and LMR should give you a massive elo boost, tuning your eval will give you a massive elo boost as well