Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Life of a chess program

Author: Uri Blass

Date: 19:50:40 07/10/03

Go up one level in this thread


On July 10, 2003 at 22:45:02, Uri Blass wrote:

>On July 10, 2003 at 21:46:30, Russell Reagan wrote:
>
>>Is this a fairly accurate description of the life of a chess program?
>>
>>Stage 1: Correctness and stability
>>-Emphasis on legal play, bug free basics (movegen, make/undo, etc.)
>>-Support for standards (FEN, EPD, PGN, SAN, etc.)
>>-Support for protocols (Winboard, UCI, etc.).
>>
>>Stage 2: Basic Intelligence
>>-Emphasis on simple intelligence
>>-Simple eval
>>-Simple search/qsearch
>>-Maybe simple time management
>
>Stage 2 comes before stage 1.
>I have a program with simple evaluation and simple search even before
>supporting FEN or supporting winboard.
>
>I still do not support SAN so by your definition I still did not complete stage
>1.
>
>>
>>Stage 3: Standard enhancements
>>-At this stage, you add "standard" things that any decent chess program will
>> have.
>>-Transposition table
>>-Move ordering (hash move, killer, history, maybe IID, etc.)
>
>Again I added move ordering before supporting FEN or supporting winboard.
>>
>>Stage 4: Select enhancements
>>-At this stage you will add more things that a lot of chess programs have, but
>> some of them are kind of optional. Some you will add for sure, but you have
>> several choices (for instance going from alpha-beta to either PVS or MTD). At
>> this state you also do a lot of improving of already existing things (eval for
>> instance).
>>-Move from alpha-beta to PVS or MTD
>>-Search extentions and reductions
>
>Movei had the check extension even before it supported winboard.
>
>>-Aspiration searches
>>-Forward pruning
>>-Improve eval
>>
>>Stage 5: Maintainance and experimentation
>>-At this stage, you maintain the program (fix bugs, make slight improvements),
>> and experiment with new ideas, such as:
>>-New forward pruning ideas
>>-Better move ordering
>>-New evaluation terms
>>-Improve qsearch
>>-and so on...
>
>Experimenting with new ideas can be done also earlier before you implemented
>ideas that other programs use.
>
>I also think that you forgot rewriting the program to add arrays.
>
>Uri

I mean that at least for me there are stages that I think to add new information
to the program and adding the new information means different design
to the arrays that are already calculated because when I add new arrays I think
also to use them to calculate existing arrays in a faster way.

For me the stages of writing movei began like the following:
1)Write a legal move generator to calculate perft
2)do it faster
3)do it faster
4)do it faster
...

234)do it faster
235)change it to a chess program.

Uri



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.