Difference between revisions of "ShashChess"

From Chessprogramming wiki
Jump to: navigation, search
Line 39: Line 39:
  
 
=Forum Posts=
 
=Forum Posts=
 +
==2018 ...==
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=68093 ShashChess] by [[Andrea Manzo]], [[CCC]], July 28, 2018
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=68093 ShashChess] by [[Andrea Manzo]], [[CCC]], July 28, 2018
 
: [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=68093&start=103 Re: ShashChess] (11.0) by [[Andrea Manzo]], [[CCC]], March 06, 2020
 
: [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=68093&start=103 Re: ShashChess] (11.0) by [[Andrea Manzo]], [[CCC]], March 06, 2020
Line 45: Line 46:
 
: [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=68093&start=272 Re: ShashChess] (17.1) by [[Andrea Manzo]], [[CCC]], June 01, 2021
 
: [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=68093&start=272 Re: ShashChess] (17.1) by [[Andrea Manzo]], [[CCC]], June 01, 2021
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=68120&p=769919 Build ShashChess for Android] by [[Andrea Manzo]], [[CCC]], August 01, 2018
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=68120&p=769919 Build ShashChess for Android] by [[Andrea Manzo]], [[CCC]], August 01, 2018
 +
==2020 ...==
 
* [https://groups.google.com/g/fishcooking/c/GLag32ARtKo/m/3Zoaq3-rAwAJ ShashChess 12.0] by [[Andrea Manzo]], [[Computer Chess Forums|FishCooking]], June 28, 2020
 
* [https://groups.google.com/g/fishcooking/c/GLag32ARtKo/m/3Zoaq3-rAwAJ ShashChess 12.0] by [[Andrea Manzo]], [[Computer Chess Forums|FishCooking]], June 28, 2020
 
* [https://groups.google.com/g/fishcooking/c/6IzmiSCB8lg/m/sFeSq9ykAQAJ A new reinforcement learning implementation of Q learning algorithm for alphabeta engines to automatically tune the evaluation of chess positions] by [[Kelly Kinyama]], [[Computer Chess Forums|FishCooking]], June 29, 2020
 
* [https://groups.google.com/g/fishcooking/c/6IzmiSCB8lg/m/sFeSq9ykAQAJ A new reinforcement learning implementation of Q learning algorithm for alphabeta engines to automatically tune the evaluation of chess positions] by [[Kelly Kinyama]], [[Computer Chess Forums|FishCooking]], June 29, 2020
 
* [https://groups.google.com/d/msg/fishcooking/yWtpz_FY5_Y/RMTG56fkAAAJ ShashChess NNUE 1.0] by [[Andrea Manzo]], [[Computer Chess Forums|FishCooking]], July 25, 2020
 
* [https://groups.google.com/d/msg/fishcooking/yWtpz_FY5_Y/RMTG56fkAAAJ ShashChess NNUE 1.0] by [[Andrea Manzo]], [[Computer Chess Forums|FishCooking]], July 25, 2020
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=76394 Shashchess which executable to use] by Andrew Bernasrd, [[CCC]], January 23, 2021
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=76394 Shashchess which executable to use] by Andrew Bernasrd, [[CCC]], January 23, 2021
 +
* [https://groups.google.com/g/fishcooking/c/Iy1AlEZJWc8 New BrainLearn and ShashChess] by [[Andrea Manzo]], [[Computer Chess Forums|FishCooking]], May 19, 2021
  
 
=External Links=
 
=External Links=

Revision as of 09:19, 4 June 2021

Home * Engines * Stockfish * ShashChess

ShashChess,
a Stockfish derivative by Andrea Manzo with the aim to apply the proposals of Alexander Shashin as exposed in his book Best Play: A New Method for Discovering the Strongest Move [1] [2] [3]. First released in July 2018 [4], subsequent ShashChess versions feature skill levels and handicap modes, NNUE, Monte-Carlo Tree Search with one or multiple threads in conjunction with alpha-beta, and various learning techniques utilizing a persistent hash table [5] [6].

Personalities

Based on static evaluation score ranges derivered from pawn endgame point value (PawnValueEg = 208), ShashChess classifies the position with five personalities of three former World Chess Champions, Tigran Petrosian for negative scores, José Raúl Capablanca for balanced scores, and Mikhail Tal for positive scores [7]:

if      (eval < -74) personality =  Petosian;
else if (eval < -31) personality =  Petosian | Capablanca;
else if (eval <  31) personality =             Capablanca;
else if (eval <  74) personality =             Capablanca | Tal;
else                 personality =                          Tal; 

These personalities are considered in various search selectivity thresholds, along with multiple dynamic evaluation score adjustments.

Q-Learning

A learning technique derived from Q-learning, worked out and introduced by Kelly Kinyama [8] [9] and also employed in BrainLearn 9.0 [10], was applied in ShashChess since version 12.0 [11]. After the end of a decisive game in selfplay with appropriate search depth, the list of moves (ml) and associated scores is merged into the learn table from end to start, replacements preferring depth and score, the score of timestep t adjusted as weighted average with the future reward of timestep t+1, using a learning rate α of 0.5 and a discount factor γ of 0.99 [12]:

  for (t = ml.size() - 2; t >= 0; t--) {
    ml[t].score = (1-α)*ml[t].score + α*γ*ml[t+1].score;
    insertIntoOrUpdateLearningTable( ml[t] );
  }

Forum Posts

2018 ...

Re: ShashChess (11.0) by Andrea Manzo, CCC, March 06, 2020
Re: ShashChess (12.0) by Andrea Manzo, CCC, June 28, 2020
Re: ShashChess (15.0) by Andrea Manzo, CCC, October 03, 2020
Re: ShashChess (17.1) by Andrea Manzo, CCC, June 01, 2021

2020 ...

External Links

References

Up one Level