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.