Difference between revisions of "Symbolic"

From Chessprogramming wiki
Jump to: navigation, search
 
(3 intermediate revisions by the same user not shown)
Line 110: Line 110:
 
* [https://www.stmintz.com/ccc/index.php?id=383761 Symbolic: Status report 2004.08.23] by [[Steven Edwards]], [[CCC]], August 23, 2004
 
* [https://www.stmintz.com/ccc/index.php?id=383761 Symbolic: Status report 2004.08.23] by [[Steven Edwards]], [[CCC]], August 23, 2004
 
* [https://www.stmintz.com/ccc/index.php?id=394615 Symbolic: Status report 2004.11.05] by [[Steven Edwards]], [[CCC]], November 05, 2004
 
* [https://www.stmintz.com/ccc/index.php?id=394615 Symbolic: Status report 2004.11.05] by [[Steven Edwards]], [[CCC]], November 05, 2004
==2005==
+
==2005 ...==
 +
* [https://www.stmintz.com/ccc/index.php?id=407324 Steven Edwards & Symbolic] by [[Walter Faxon]], [[CCC]], January 24, 2005
 
* [https://www.stmintz.com/ccc/index.php?id=411453 Symbolic: Status report 2005.02.14] by [[Steven Edwards]], [[CCC]], February 14, 2005
 
* [https://www.stmintz.com/ccc/index.php?id=411453 Symbolic: Status report 2005.02.14] by [[Steven Edwards]], [[CCC]], February 14, 2005
 
* [https://www.stmintz.com/ccc/index.php?id=413947 Symbolic: Status report 2005.02.24] by [[Steven Edwards]], [[CCC]], February 24, 2005
 
* [https://www.stmintz.com/ccc/index.php?id=413947 Symbolic: Status report 2005.02.24] by [[Steven Edwards]], [[CCC]], February 24, 2005
Line 138: Line 139:
 
* [https://www.stmintz.com/ccc/index.php?id=444291 Symbolic: Status report 2005.08.22] by [[Steven Edwards]], [[CCC]], August 22, 2005
 
* [https://www.stmintz.com/ccc/index.php?id=444291 Symbolic: Status report 2005.08.22] by [[Steven Edwards]], [[CCC]], August 22, 2005
 
* [https://www.stmintz.com/ccc/index.php?id=445195 Symbolic: Status report 2005.08.25] by [[Steven Edwards]], [[CCC]], August 25, 2005
 
* [https://www.stmintz.com/ccc/index.php?id=445195 Symbolic: Status report 2005.08.25] by [[Steven Edwards]], [[CCC]], August 25, 2005
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=20959 Working notes: A similarity facility] by [[Steven Edwards]], [[CCC]], May 02, 2008
 
==2013==
 
==2013==
 
* [http://www.talkchess.com/forum/viewtopic.php?t=48812&start=6 Re: goto thread (split)] by [[Steven Edwards]], [[CCC]], August 01, 2013 » [[Iterative Search]]
 
* [http://www.talkchess.com/forum/viewtopic.php?t=48812&start=6 Re: goto thread (split)] by [[Steven Edwards]], [[CCC]], August 01, 2013 » [[Iterative Search]]
Line 143: Line 145:
 
* [http://www.talkchess.com/forum/viewtopic.php?t=49102 Steven's Symbolic engine's games] by [[Julien Marcel]], [[CCC]], August 25, 2013
 
* [http://www.talkchess.com/forum/viewtopic.php?t=49102 Steven's Symbolic engine's games] by [[Julien Marcel]], [[CCC]], August 25, 2013
 
==2015==
 
==2015==
* [http://www.talkchess.com/forum/viewtopic.php?t=56081 Thread synchronization questions for experts] by [[Steven Edwards]], [[CCC]], April 21, 2015 » [[Thread]
+
* [http://www.talkchess.com/forum/viewtopic.php?t=56081 Thread synchronization questions for experts] by [[Steven Edwards]], [[CCC]], April 21, 2015 » [[Thread]]
* [http://www.talkchess.com/forum/viewtopic.php?t=56328 Revised source for the random game generator] by [[Steven Edwards]], [[CCC]], May 12, 2015]
+
* [http://www.talkchess.com/forum/viewtopic.php?t=56328 Revised source for the random game generator] by [[Steven Edwards]], [[CCC]], May 12, 2015
 
* [http://www.talkchess.com/forum/viewtopic.php?t=56417 A colorful tale] by [[Steven Edwards]], [[CCC]], May 19, 2015 » [[Logging]]
 
* [http://www.talkchess.com/forum/viewtopic.php?t=56417 A colorful tale] by [[Steven Edwards]], [[CCC]], May 19, 2015 » [[Logging]]
 
* [http://www.talkchess.com/forum/viewtopic.php?t=56476 Bitboard database code samples] by [[Steven Edwards]], [[CCC]], May 25, 2015 » [[Bitboards]]
 
* [http://www.talkchess.com/forum/viewtopic.php?t=56476 Bitboard database code samples] by [[Steven Edwards]], [[CCC]], May 25, 2015 » [[Bitboards]]

Latest revision as of 11:15, 24 September 2019

Home * Engines * Symbolic

Viktor Vasnetsov - Sirin and Alkonost [1]

Symbolic,
a chess playing program by Steven Edwards with the whiff of a real artificial intelligence inference engine incorporating pattern recognition, planning and an iterative search, able to explain move selection process live in natural language. The underlying Symbolic Toolkit is an advanced OO-approach, using a ChessLisp interpreter and C++ for low level stuff. Moves, positions, and many other types are organized in lists instead of fixed length arrays [2].

Tournament Play

Symbolic played various CCT Tournaments, ACCA Americas' Computer Chess Championships and ACCA World Computer Rapid Chess Championships.

Selected Games

WCRCC 2008, round 2, Buzz - Symbolic [3]

[Event "WCRCC 2008"]
[Site "Internet Chess Club"]
[Date "2008.06.21"]
[Round "2"]
[White "Buzz"]
[Black "Symbolic"]
[Result "0-1"]

1.d4 d5 2.c4 c6 3.Nc3 e6 4.Nf3 Nf6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 
9.e4 b4 10.Na4 c5 11.e5 Nd5 12.Nxc5 Nxc5 13.dxc5 Bxc5 14.Qa4+ Kf8 15.O-O h6 
16.Bd2 Kg8 17.Qb5 Qb6 18.Rac1 Qxb5 19.Bxb5 Rc8 20.Rfe1 g5 21.Rc4 a6 22.Rec1 
Nc3 23.Bd7 Bxf2+ 24.Kxf2 Rxc4 25.bxc3 Bxf3 26.Kxf3 Kg7 27.cxb4 Rd4 28.Rc7 
Rxd2 29.Bxe6 Rf8 30.Bb3 Kg6 31.Rc6+ Kf5 32.Rxa6 g4+ 33.Ke3 Rxg2 34.Rxh6 Kxe5 
35.b5 f6 36.Kd3 f5 37.b6 f4 38.Rh5+ Kf6 39.Bd5 f3 40.b7 Rb2 41.a4 f2 42.Bg2 
Rxb7 43.Rb5 Re7 44.h3 Rd8+ 45.Kc4 Rc7+ 46.Kb4 Rd4+ 47.Ka5 Ra7+ 48.Kb6 Raxa4 
49.hxg4 Rxg4 50.Bh3 Rab4 51.Rxb4 Rxb4+ 52.Kc5 Rb1 53.Kd4 Re1 54.Kd3 Kg5 
55.Bf1 Rxf1 56.Ke2 Rd1 57.Kxf2 Kf4 58.Ke2 Rd7 59.Kf2 Rd2+ 60.Ke1 Ke3 61.Kf1 
Ra2 62.Kg1 Kf3 63.Kh1 Kg3 64.Kg1 Ra1# 0-1

Iterative Search

Steven Edwards on using goto and performing an Iterative Search [4]

Symbolic's search has no recursion. There is the one routine Node() which has a big switch statement with each case being a different phase. The routine's main loop hits the switch each time through until the current phase is PhaseExit. At the top of the loop is is single check of a volatile boolean which, if triggered, sets the phase to PhaseExit. There is no unwinding as there is nothing to unwind. There is nothing hidden on the stack to deconstruct as there is no recursion. The search can be paused, and it can also be stopped and restarted at any phase at any depth.
A lot of chess programmers still use a recursive search because they've copied it out of a textbook or from someone else's program. If they would take the time to learn about the alternative of no recursion, then they just might a more elegant -- and possibly faster -- program.  

Perft

Movepath enumerations (perft) generated by Symbolic for the Initial Position [5].

See also

Forum Posts

2003

2004

2005 ...

2013

2015

External Links

feat. Helmut Reinhardt, Albert Mangelsdorff, Hans Hammerschmid, Peter Trunk, Rudi Sehring

References

Up one level