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.
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 [1].
Table of Contents
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]Iterative Search
Steven Edwards on using goto and performing an Iterative Search [4]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
What links here?
Up one level