Difference between revisions of "SAL"

From Chessprogramming wiki
Jump to: navigation, search
 
(5 intermediate revisions by the same user not shown)
Line 13: Line 13:
  
 
==Evaluation==
 
==Evaluation==
The game independent [[Evaluation|evaluation]] is implemented as [[Neural Networks|neural network]] for each side. The inputs to the network are features [[Board Representation|representing the board]], the number of [[Pieces|pieces]] of each type on the board, the type of piece just moved, the type of piece just captured (if any), and several features considering pieces and squares under attack. The neural network evaluator is trained by [[Temporal Difference Learning|temporal difference learning]] to estimate the outcome of the game, given the current position <ref>[http://satirist.org/learn-game/systems/sal.html SAL] from [http://satirist.org/learn-game/ Machine Learning in Games] by [[Jay Scott]]</ref>.
+
The game independent [[Evaluation|evaluation]] is implemented as [[Neural Networks|neural network]] for each side. The inputs to the network are features [[Board Representation|representing the board]], the number of [[Pieces|pieces]] of each type on the board, the type of piece just moved, the type of piece just captured (if any), and several features considering pieces and squares under attack. The neural network evaluator is trained by [[Temporal Difference Learning|temporal difference learning]] to estimate the outcome of the game, given the current position <ref>[http://satirist.org/learn-game/systems/sal.html SAL] from [http://satirist.org/learn-game/ Machine Learning in Games] by [[Jay Scott]]</ref> <ref>[[Marco Block-Berlitz|Marco Block]], Maro Bader, [http://page.mi.fu-berlin.de/tapia/ Ernesto Tapia], Marte Ramírez, Ketill Gunnarsson, Erik Cuevas, Daniel Zaldivar, [[Raúl Rojas]] ('''2008'''). ''Using Reinforcement Learning in Chess Engines''. Concibe Science 2008, [http://www.micai.org/rcs/ Research in Computing Science]: Special Issue in Electronics and Biomedical Engineering, Computer Science and Informatics, Vol. 35, [http://page.mi.fu-berlin.de/block/concibe2008.pdf pdf], 1.1 Related Work</ref>.
  
 
=Results=
 
=Results=
Line 21: Line 21:
  
 
=See also=
 
=See also=
* [[Neural Networks#engines|Chess Engines with Neural Networks]]
 
 
* [[General Game Playing]]
 
* [[General Game Playing]]
 
* [[HAL]]
 
* [[HAL]]
* [[Learning#Programs|Learning Chess Programs]]
 
 
* [[Metagamer]]
 
* [[Metagamer]]
 
* [[Zillions of Games]]
 
* [[Zillions of Games]]
Line 30: Line 28:
 
=Publications=
 
=Publications=
 
* [[Michael Gherrity]] ('''1993'''). ''A Game Learning Machine''. Ph.D. thesis, [https://en.wikipedia.org/wiki/University_of_California,_San_Diego University of California, San Diego], advisor [[Mathematician#PKube|Paul Kube]],  [http://www.gherrity.org/thesis.pdf pdf], [http://www.top-5000.nl/ps/A%20game%20learning%20machine.pdf pdf]
 
* [[Michael Gherrity]] ('''1993'''). ''A Game Learning Machine''. Ph.D. thesis, [https://en.wikipedia.org/wiki/University_of_California,_San_Diego University of California, San Diego], advisor [[Mathematician#PKube|Paul Kube]],  [http://www.gherrity.org/thesis.pdf pdf], [http://www.top-5000.nl/ps/A%20game%20learning%20machine.pdf pdf]
 +
* [[Marco Block-Berlitz|Marco Block]], Maro Bader, [http://page.mi.fu-berlin.de/tapia/ Ernesto Tapia], Marte Ramírez, Ketill Gunnarsson, Erik Cuevas, Daniel Zaldivar, [[Raúl Rojas]] ('''2008'''). ''Using Reinforcement Learning in Chess Engines''. Concibe Science 2008, [http://www.micai.org/rcs/ Research in Computing Science]: Special Issue in Electronics and Biomedical Engineering, Computer Science and Informatics, Vol. 35, [http://page.mi.fu-berlin.de/block/concibe2008.pdf pdf]
  
 
=Forum Posts=
 
=Forum Posts=
Line 47: Line 46:
 
'''[[Engines|Up one level]]'''
 
'''[[Engines|Up one level]]'''
 
[[Category:Open Source]]
 
[[Category:Open Source]]
 +
[[Category:Acronym]]
 
[[Category:Arthur C. Clarke]]
 
[[Category:Arthur C. Clarke]]
 +
[[Category:Thesis]]
 +
[[Category:NN]]

Latest revision as of 18:11, 31 December 2019

Home * Engines * SAL

HAL 9000 [1]

SAL, (Search and Learn)
a general game playing and learning open source program for any two-player board game of perfect information, written by Michael Gherrity as subject of his Ph.D. thesis A Game Learning Machine [2]. SAL is written in ANSI C [3].

Description

The rule of the game is defined by subroutines for generating legal moves, as already provided for Tic-tac-toe, Connect Four, and Chess in the source files ttt.c, connect4.c, and chess.c. One of them, or an appropriate implementation of another game, needs to be copied to game.c for building SAL to play that game.

Search

For all games, SAL performs a two-ply, full-width alpha-beta search plus consistency search [4], which is a generalized quiescence search as proposed by Don Beal [5].

Evaluation

The game independent evaluation is implemented as neural network for each side. The inputs to the network are features representing the board, the number of pieces of each type on the board, the type of piece just moved, the type of piece just captured (if any), and several features considering pieces and squares under attack. The neural network evaluator is trained by temporal difference learning to estimate the outcome of the game, given the current position [6] [7].

Results

  • In Tic-tac-toe, SAL learned to play perfectly after 20,000 games
  • In Connect four, SAL learned to defeat an opponent program about 80% of the time after 100,000 games
  • In Chess, after 4200 games against GNU Chess, SAL evolved from a random mover to a reasonable, but still weak chess player

See also

Publications

Forum Posts

External Links

Game Player

Misc

References

  1. The famous red eye of HAL 9000, the fictional character in Arthur C. Clarke's Space Odyssey series. Image by Cryteria, October 1, 2010, Wikimedia Commons - A game sequence between Frank Poole and HAL 9000 is given in the preface of Michael Gherrity's thesis
  2. Michael Gherrity (1993). A Game Learning Machine. Ph.D. thesis, University of California, San Diego, advisor Paul Kube, pdf, pdf
  3. SAL source code
  4. Consistency search from Machine Learning in Games by Jay Scott
  5. Don Beal (1989). Experiments with the Null Move. Advances in Computer Chess 5, a revised version is published (1990) under the title A Generalized Quiescence Search Algorithm. Artificial Intelligence, Vol. 43, No. 1
  6. SAL from Machine Learning in Games by Jay Scott
  7. Marco Block, Maro Bader, Ernesto Tapia, Marte Ramírez, Ketill Gunnarsson, Erik Cuevas, Daniel Zaldivar, Raúl Rojas (2008). Using Reinforcement Learning in Chess Engines. Concibe Science 2008, Research in Computing Science: Special Issue in Electronics and Biomedical Engineering, Computer Science and Informatics, Vol. 35, pdf, 1.1 Related Work
  8. Barney Pell (1993). Strategy Generation and Evaluation for Meta-Game Playing. Ph.D: thesis, Trinity College, Cambridge, pdf

Up one level