PeSTO's Evaluation Function, different"bestmove" for each depth

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.
pedrojdm2021
Posts: 89
Joined: Fri Apr 30, 2021 5:19 am
Full name: Pedro Duran

Re: PeSTO's Evaluation Function, different"bestmove" for each depth

Post by pedrojdm2021 » Mon Jul 19, 2021 12:49 am

lithander wrote:
Sat Jul 17, 2021 11:15 am
PeSTO literally means "Piece Square Tables Only" but it's also the name of the strongest engine that uses such a simple evaluation and has made the approach popular. The set of values that PeSTO uses (or used at some point) have been posted on this forum by the author. So I think there are two interpretations where you could say an engine uses PeSTO:

(1) It uses tapered eval based on PSTs only and no other evaluation terms.
(2) It uses tapered eval based on PSTs only AND also uses the PST values from PeSTO which were published on this forum.

I personally first used PeSTO in the sense of (2) but never published that version.
Then I tuned my own set of PST-values which look and play distinctly different so version 0.4.1 of MinimalChess used PeSTO in the sense of (1).
Afterwards I added a 13th table for another dynamic, mobility and attacks based evaluation term so I'd say now I'm just using a simple tapered evaluation in version 0.5.
well i think i use your second point, i use the same exact tables that PeSTO engine uses, but as i mentioned before, i do add some extra features to the evaluation, not only the piece-square-tables

amanjpro
Posts: 563
Joined: Sat Mar 13, 2021 12:47 am
Full name: Amanj Sherwany
Contact:

Re: PeSTO's Evaluation Function, different"bestmove" for each depth

Post by amanjpro » Mon Jul 19, 2021 12:56 am

pedrojdm2021 wrote:
Mon Jul 19, 2021 12:49 am
lithander wrote:
Sat Jul 17, 2021 11:15 am
PeSTO literally means "Piece Square Tables Only" but it's also the name of the strongest engine that uses such a simple evaluation and has made the approach popular. The set of values that PeSTO uses (or used at some point) have been posted on this forum by the author. So I think there are two interpretations where you could say an engine uses PeSTO:

(1) It uses tapered eval based on PSTs only and no other evaluation terms.
(2) It uses tapered eval based on PSTs only AND also uses the PST values from PeSTO which were published on this forum.

I personally first used PeSTO in the sense of (2) but never published that version.
Then I tuned my own set of PST-values which look and play distinctly different so version 0.4.1 of MinimalChess used PeSTO in the sense of (1).
Afterwards I added a 13th table for another dynamic, mobility and attacks based evaluation term so I'd say now I'm just using a simple tapered evaluation in version 0.5.
well i think i use your second point, i use the same exact tables that PeSTO engine uses, but as i mentioned before, i do add some extra features to the evaluation, not only the piece-square-tables
If you add any other eval term, then your psqt arrays are no longer optimal. As they are designed to work with exactly no other eval terms

pedrojdm2021
Posts: 89
Joined: Fri Apr 30, 2021 5:19 am
Full name: Pedro Duran

Re: PeSTO's Evaluation Function, different"bestmove" for each depth

Post by pedrojdm2021 » Mon Jul 26, 2021 4:12 am

amanjpro wrote:
Mon Jul 19, 2021 12:56 am
pedrojdm2021 wrote:
Mon Jul 19, 2021 12:49 am
lithander wrote:
Sat Jul 17, 2021 11:15 am
PeSTO literally means "Piece Square Tables Only" but it's also the name of the strongest engine that uses such a simple evaluation and has made the approach popular. The set of values that PeSTO uses (or used at some point) have been posted on this forum by the author. So I think there are two interpretations where you could say an engine uses PeSTO:

(1) It uses tapered eval based on PSTs only and no other evaluation terms.
(2) It uses tapered eval based on PSTs only AND also uses the PST values from PeSTO which were published on this forum.

I personally first used PeSTO in the sense of (2) but never published that version.
Then I tuned my own set of PST-values which look and play distinctly different so version 0.4.1 of MinimalChess used PeSTO in the sense of (1).
Afterwards I added a 13th table for another dynamic, mobility and attacks based evaluation term so I'd say now I'm just using a simple tapered evaluation in version 0.5.
well i think i use your second point, i use the same exact tables that PeSTO engine uses, but as i mentioned before, i do add some extra features to the evaluation, not only the piece-square-tables
If you add any other eval term, then your psqt arrays are no longer optimal. As they are designed to work with exactly no other eval terms
well... bbc's engines uses the same approarch that i'm using and it works, bbc's uses the pesto tables + the mobility, pawn structre, and so on...

amanjpro
Posts: 563
Joined: Sat Mar 13, 2021 12:47 am
Full name: Amanj Sherwany
Contact:

Re: PeSTO's Evaluation Function, different"bestmove" for each depth

Post by amanjpro » Mon Jul 26, 2021 10:19 am

pedrojdm2021 wrote:
Mon Jul 26, 2021 4:12 am
well... bbc's engines uses the same approarch that i'm using and it works, bbc's uses the pesto tables + the mobility, pawn structre, and so on...
Works doesn't mean works optimally. You can try it yourself. Remove all evaluation terms in your engine but the PeSTO arrays, and mrun a match between this version and the version with PeSTO and other eval terms. And see who will win the match (please have a long match of at least 1000 games)

niel5946
Posts: 159
Joined: Thu Nov 26, 2020 9:06 am
Full name: Niels Abildskov

Re: PeSTO's Evaluation Function, different"bestmove" for each depth

Post by niel5946 » Mon Jul 26, 2021 1:10 pm

amanjpro wrote:
Mon Jul 19, 2021 12:56 am
If you add any other eval term, then your psqt arrays are no longer optimal. As they are designed to work with exactly no other eval terms
You are mostly right, but I would add that tuning the new eval terms will fit them to the PSQT arrays. When optimizing parameters in the evaluation function, they are optimized in such a way that they fit all other parameters. This is because the constant parameters also have a constant contribution to the overall error, so you can only reduce the part of the error that your un-optimized values gives.

Therefore, it should definitely be possible to add new terms (like pawn structure, mobility etc..) to PeSTO piece square tables, but it would require a - relatively - good optimization algorithm to gain elo from it. I don't know if all that tuning would be worth it though...
Author of Loki, a C++ work in progress.
Code | Releases | Progress Log |

Post Reply