Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce static evaluation correction history #4950

Closed

Conversation

Vizvezdenec
Copy link
Contributor

@Vizvezdenec Vizvezdenec commented Dec 31, 2023

Idea from Caissa chess engine.

With given pawn structure collect data with how often search result and by how much it was better / worse than static evalution of position and use it to adjust static evaluation of positions with given pawn structure.
Details:

  1. excludes positions with fail highs and moves producing it being a capture;
  2. update value is function of not only difference between best value and static evaluation but also is multiplied by linear function of depth;
  3. maximum update value is maximum value of correction history divided by 2;
  4. correction history itself is divided by 32 when applied so maximum value of static evaluation adjustment is 32 internal units.

Passed STC:
https://tests.stockfishchess.org/tests/view/658fc7b679aa8af82b955cac
LLR: 2.96 (-2.94,2.94) <0.00,2.00>
Total: 128672 W: 32757 L: 32299 D: 63616
Ptnml(0-2): 441, 15241, 32543, 15641, 470

Passed LTC:
https://tests.stockfishchess.org/tests/view/65903f6979aa8af82b9566f1
LLR: 2.95 (-2.94,2.94) <0.50,2.50>
Total: 97422 W: 24626 L: 24178 D: 48618
Ptnml(0-2): 41, 10837, 26527, 11245, 61
bench 1403669

Vizvezdenec and others added 6 commits December 31, 2023 10:13
Adds clamping to staticEval to guard for future tweaks hitting TB range or mate range.

Passed non-regression STC:
https://tests.stockfishchess.org/tests/view/65903fe179aa8af82b9566fb
LLR: 2.98 (-2.94,2.94) <-1.75,0.25>
Total: 38656 W: 10048 L: 9830 D: 18778
Ptnml(0-2): 124, 4278, 10308, 4492, 126

Passed non-regression LTC:
https://tests.stockfishchess.org/tests/view/659055d079aa8af82b95691d
LLR: 2.94 (-2.94,2.94) <-1.75,0.25>
Total: 134532 W: 33728 L: 33625 D: 67179
Ptnml(0-2): 70, 14326, 38369, 14433, 68

no functional change
Guard correction history from overflowing staticEval in the future.
Revert "Guard correction history from overflowing staticEval in the future."
Adds clamping to staticEval to guard for future tweaks hitting TB range or mate range.

Passed non-regression STC:
https://tests.stockfishchess.org/tests/view/65903fe179aa8af82b9566fb
LLR: 2.98 (-2.94,2.94) <-1.75,0.25>
Total: 38656 W: 10048 L: 9830 D: 18778
Ptnml(0-2): 124, 4278, 10308, 4492, 126

Passed non-regression LTC:
https://tests.stockfishchess.org/tests/view/659055d079aa8af82b95691d
LLR: 2.94 (-2.94,2.94) <-1.75,0.25>
Total: 134532 W: 33728 L: 33625 D: 67179
Ptnml(0-2): 70, 14326, 38369, 14433, 68

no functional change
Guard correction history from overflowing staticEval in the future.
@Disservin Disservin changed the title Tweak correction history. Introduce static evaluation correction history Dec 31, 2023
@Disservin Disservin added the to be merged Will be merged shortly label Dec 31, 2023
@Disservin Disservin closed this in b4d995d Dec 31, 2023
rn5f107s2 pushed a commit to rn5f107s2/Stockfish that referenced this pull request Jan 14, 2024
Idea from Caissa (https://github.com/Witek902/Caissa) chess engine.

With given pawn structure collect data with how often search result and by how
much it was better / worse than static evalution of position and use it to
adjust static evaluation of positions with given pawn structure. Details:

1. excludes positions with fail highs and moves producing it being a capture;
2. update value is function of not only difference between best value and static
   evaluation but also is multiplied by linear function of depth;
3. maximum update value is maximum value of correction history divided by 2;
4. correction history itself is divided by 32 when applied so maximum value of
   static evaluation adjustment is 32 internal units.

Passed STC:
https://tests.stockfishchess.org/tests/view/658fc7b679aa8af82b955cac
LLR: 2.96 (-2.94,2.94) <0.00,2.00>
Total: 128672 W: 32757 L: 32299 D: 63616
Ptnml(0-2): 441, 15241, 32543, 15641, 470

Passed LTC:
https://tests.stockfishchess.org/tests/view/65903f6979aa8af82b9566f1
LLR: 2.95 (-2.94,2.94) <0.50,2.50>
Total: 97422 W: 24626 L: 24178 D: 48618
Ptnml(0-2): 41, 10837, 26527, 11245, 61

closes official-stockfish#4950

Bench: 1157852
windfishballad pushed a commit to windfishballad/Stockfish that referenced this pull request Jan 23, 2024
Idea from Caissa (https://github.com/Witek902/Caissa) chess engine.

With given pawn structure collect data with how often search result and by how
much it was better / worse than static evalution of position and use it to
adjust static evaluation of positions with given pawn structure. Details:

1. excludes positions with fail highs and moves producing it being a capture;
2. update value is function of not only difference between best value and static
   evaluation but also is multiplied by linear function of depth;
3. maximum update value is maximum value of correction history divided by 2;
4. correction history itself is divided by 32 when applied so maximum value of
   static evaluation adjustment is 32 internal units.

Passed STC:
https://tests.stockfishchess.org/tests/view/658fc7b679aa8af82b955cac
LLR: 2.96 (-2.94,2.94) <0.00,2.00>
Total: 128672 W: 32757 L: 32299 D: 63616
Ptnml(0-2): 441, 15241, 32543, 15641, 470

Passed LTC:
https://tests.stockfishchess.org/tests/view/65903f6979aa8af82b9566f1
LLR: 2.95 (-2.94,2.94) <0.50,2.50>
Total: 97422 W: 24626 L: 24178 D: 48618
Ptnml(0-2): 41, 10837, 26527, 11245, 61

closes official-stockfish#4950

Bench: 1157852
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bench-change Changes the bench 🚀 gainer Gains elo to be merged Will be merged shortly
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants