Changes

Jump to: navigation, search

SAL

5,580 bytes added, 12:35, 29 October 2018
Created page with "'''Home * Engines * SAL''' [[FILE:HAL9000.svg|border|right|thumb| HAL 9000 <ref>The famous red eye of [https://en.wikipedia.org/wiki/HAL_9000 HAL 9000], the..."
'''[[Main Page|Home]] * [[Engines]] * SAL'''

[[FILE:HAL9000.svg|border|right|thumb| HAL 9000 <ref>The famous red eye of [https://en.wikipedia.org/wiki/HAL_9000 HAL 9000], the fictional character in [[:Category: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> ]]

'''SAL''', (Search and Learn)<br/>
a [[General Game Playing|general game playing]] and [[Learning|learning]] [[:Category:Open Source|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>.

=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''. [https://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]]
* [[General Game Playing]]
* [[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, [https://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 />
'''[[Engines|Up one level]]'''
[[Category:Open Source]]
[[Category:Arthur C. Clarke]]

Navigation menu