Older Version
Newer Version
GerdIsenberg
Dec 7, 2017
**[[Home]] * [[Engines]] * SAL** || [[image:HAL9000.jpg link="https://commons.wikimedia.org/wiki/File:HAL9000.svg"]] ||~ || **SAL**, (Search and Learn) a [[General Game Playing|general game playing]] and [[Learning|learning]] [[Open Source Engines|open source program]] for any [[https://en.wikipedia.org/wiki/Two-player_game|two-player]] [[https://en.wikipedia.org/wiki/Board_game|board game]] of [[https://en.wikipedia.org/wiki/Perfect_information|perfect information]], written by [[Michael Gherrity]] as subject of his Ph.D. thesis //A Game Learning Machine// <ref> [[Michael Gherrity]] (**1993**). //A Game Learning Machine//. Ph.D. thesis, [[https://de.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]]</ref>. SAL is written in [[C|ANSI C]] <ref>[[http://www.gherrity.org/sal6.tar.gz|SAL source code]]</ref>. || || HAL 9000 <ref>The famous red eye of [[https://en.wikipedia.org/wiki/HAL_9000|HAL 9000]], the fictional character in [[https://en.wikipedia.org/wiki/Arthur_C._Clarke|Arthur C. Clarke's]] [[https://en.wikipedia.org/wiki/Space_Odyssey|Space Odyssey]] series. [[https://commons.wikimedia.org/wiki/File:HAL9000.svg|Image]] by Cryteria, October 1, 2010, [[https://en.wikipedia.org/wiki/Wikimedia_Commons|Wikimedia Commons]] - A game sequence between [[https://en.wikipedia.org/wiki/Space_Odyssey#Characters|Frank Poole]] and HAL 9000 is given in the preface of [[Michael Gherrity|Michael Gherrity's]] [[Michael Gherrity#thesis|thesis]]</ref> ||~ ||^ || [[toc]] =Description= The rule of the game is defined by subroutines for [[Move Generation#Legal|generating legal moves]], as already provided for [[https://en.wikipedia.org/wiki/Tic-tac-toe|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|alpha-beta]] search plus //consistency search// <ref>[[http://satirist.org/learn-game/methods/search/consistency.html|Consistency search]] from [[http://satirist.org/learn-game/|Machine Learning in Games]] by [[Jay Scott]]</ref>, which is a generalized [[Quiescence Search|quiescence search]] as proposed by [[Don Beal]] <ref>[[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//. [[http://en.wikipedia.org/wiki/Artificial_Intelligence_%28journal%29|Artificial Intelligence]], Vol. 43, No. 1</ref>. ==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>. =Results= * In [[https://en.wikipedia.org/wiki/Tic-tac-toe|Tic-tac-toe]], SAL learned to play perfectly after 20,000 games * In [[Connect Four|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= * [[Neural Networks#engines|Chess Engines with Neural Networks]] * [[HAL]] * [[Learning#Programs|Learning Chess Programs]] * [[Metagamer]] * [[Zillions of Games]] =Publications= * [[Michael Gherrity]] (**1993**). //A Game Learning Machine//. Ph.D. thesis, [[https://de.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]] =Forum Posts= * [[http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/areas/games/doc/strategy.txt|Subject: Re: Game Learning]] by [[Michael Gherrity|Mike Gherrity]], [[http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/|ai-repository]], July 1, 1994 <ref>[[Barney Pell]] (**1993**). //Strategy Generation and Evaluation for Meta-Game Playing//. Ph.D: thesis, [[http://en.wikipedia.org/wiki/Trinity_College,_Cambridge|Trinity College, Cambridge]], [[http://www.barneypell.com/papers/pell-thesis.pdf|pdf]]</ref> * [[http://www.talkchess.com/forum/viewtopic.php?t=40290|Sal or neurochess]] by ethan ara, [[CCC]], September 06, 2011 =External Links= ==Game Player== * [[http://satirist.org/learn-game/systems/sal.html|SAL]] from [[http://satirist.org/learn-game/|Machine Learning in Games]] by [[Jay Scott]] * [[http://www.gherrity.org/sal6.tar.gz|SAL source code]] ==Misc== * [[https://en.wikipedia.org/wiki/Sal|Sal (disambiguation) from Wikipedia]] * [[https://en.wikipedia.org/wiki/HAL_9000#SAL_9000|SAL 9000]] fictional computer in [[https://en.wikipedia.org/wiki/2010:_Odyssey_Two|2010: Odyssey Two]] =References= <references /> =What links here?= [[include page="SAL" component="backlinks" limit="40"]] **[[Engines|Up one level]]**