Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: TSCP enhancements [Re: Short chess programs]

Author: Ian Osgood

Date: 14:14:06 09/20/02

Go up one level in this thread


On September 20, 2002 at 12:02:34, David Hanley wrote:

>Ian--i love the code and the advice.  I will definitely try aspiration window; i
>don't currently have that in place, but it seems to be pretty effective, and
>something small that can be implemented.
>
>dave

Also cheap and easy, with great results, were the null move heuristic (only
about 20 lines added), and checking move extension (5 lines changed from
out-of-check extension).  Killer moves were about as easy to add as the history
table, although I had to rework the move sorting mechanism to make it most
efficient.  (You should look at this; it would be even easier to implement in
Lisp.)

Also, writing in Lisp has similar problems to writing in a threaded code Forth,
with similar solutions.

1. Eliminate dynamic allocation.  All structures in TSCP are preallocated.  Not
very Lisp-like, though.
2. Use macros for small functions.  I got a 12% speedup simply by inlining the
one most often called function!
3. Use piece lists.  This is a natural fit for Lisp.
4. Use function tables in preference to conditionals.  I imagine functional
solutions to problems are more natural in Lisp anyway.

Ian



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.