Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Bruce Moreland's Gerbil

Author: Bruce Moreland

Date: 21:02:19 06/09/01

Go up one level in this thread


On June 09, 2001 at 21:17:50, Ricardo Gibert wrote:

>On June 09, 2001 at 20:08:44, David Rasmussen wrote:
>
>>On June 09, 2001 at 18:07:49, Ricardo Gibert wrote:
>>
>>>The following finger notes can be found on ICC:
>>>
>>>
>>>
>>>Information about gerbil(C) (Last disconnected Sat Jun 09 2001 03:34):
>>>
>>>          rating [need] win  loss  draw total   best
>>>Bullet      1427  [7]     1     0     0     1
>>>Blitz       2032         49     7     5    61   2032 (09-Jun-2001)
>>>
>>> 1: Gerbil
>>> 2:
>>> 3: A simple chess program by Bruce Moreland.
>>> 4:
>>> 5: First line of code written on 28-May-01.
>>>
>>>
>>>
>>>What's the scoop on this (very) new chess program? Why are you (Bruce) starting
>>>from scratch? What are your aims with this program? Is this intended to be a new
>>>version of TSCP or do you intend to be more ambitious? Inquiring minds want to
>>>know.
>>
>>Bruce said in rec.games.chess.computer that Gerbil was a new educational engine
>>that he was working on. That is, an engine that is supposed to be as simple and
>>clear as possible for the purposes of understanding how a chess program works.
>>This came up, because we where talking about that I am thinking of doing the
>>same. It seems that most such programs are a compromise between simplicity and
>>performance. In my educational program, if there ever is one, the important
>>principles will be:
>>
>>1. Simplicity and good design is _always_ more important than performance.
>>People could always look elsewhere for performance, whenever they understand the
>>basic design. The performance critical things are the things that should be
>>experimented with anyway, instead of just copied.
>>
>>2. Good, simple design and performance are not enemies. They emphasize
>>eachother. A good design will eventually lead to fewer bugs and better
>>performance.
>
>
>As usual, anything interesting begets more questions:
>1) What method of move generation is used?
>2) What search algorithm is being used?
>3) What type of pruning/extentions will be used?
>4) Will this be a winboard engine?
>5) When will it be made available for download?
>
>BTW, I think this is an excellent project by someone who has always been able to
>give excellent explanations. I'm looking forward to downloading it.

1) It is using 0x88 move generation.  The function is something under 200 lines
long, which seems big, but there are a lot of comments and there's some repeated
code.

2) It is using vanilla windowed alpha-beta with no PVS or anything like that,
and I plan to keep it this way, since that is clear and performs acceptably.

3) It has a check extension.  I think that is enough for now.  I may try to do
some pruning in the quiescent search, which uses MVV/LVA.  I don't play to write
a static exchange evaluator.

4) This is already a more or less fully functional winboard engine, an effort
that consumed a whole bunch of time, not that Mann's standard is hard to write
to.  I just had to spend a lot of time messing with threads.

5) I will make it available for source and executable download after it is more
or less finished, which should be pretty soon.  I'm trying to write to a
reasonable standard.  As you can see by the fact that it has played games, it
already can do that, but I would like to finish commenting it, clean up the data
structures, add some error trapping, etc., as well as some obvious features.

Things to add:

1) Opening book.  I am getting tired of 1. Nc3.
2) An eval function that does something other than piece/square.
3) Pawn structure eval.  It currently has absolutely none.
4) King safety eval.  Likewise.

I may leave one or more of the above out.

Current features:

1) It's doing about 250K nps on a single processor of my quad 450 Xeon, and it
gets 6 or 7 plies in the middlegame of 5 0 blitz games, which is decent.

2) It has a transposition hashing system and can solve Fine #70 in something
under two seconds.

3) It can do repetition detection, it claims 3x repetition draws, and it detects
and claims 50-move draws (this latter hasn't happened yet, so I'm speaking
hypothetically).

4) It's scored alright against a bunch of other non-professional chess programs.
 It won one game against Chess System Tal on similar hardware (this seems hard
to believe and possibly the account "rb" has some problems), and it whacked
Vincent once in several tries.  It hasn't played any titled players yet but I'll
try to fix that.

Right now I'm working on a test suite eater so it can suck up EPD's so I can see
how it does on suites.

It's hard to find time to work on it, but this is fun so I'll work on it a lot,
and I hope I can have it done soon.

bruce



This page took 0.01 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.