Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Chess Engine Performance Tests?

Author: Johan Wessfeldt

Date: 15:59:01 08/11/03

Go up one level in this thread


On August 11, 2003 at 03:54:38, Thomas McBurney wrote:

>On August 10, 2003 at 21:03:18, Johan Wessfeldt wrote:
>
>>jO!
>>
>>Im working on a chessengine in java and I'm pretty much done with my move
>>generation algorithms.(Took awhile to complete.. :] )
>>
>>Are there any common tests ppl use to test their chess engines with to see how
>>fast it is? (Not how smart it is)
>>
>>Like.. creating 1.000.000 move-lists out of preset chess position.
>>Could be fun to see if my engine(or java) is good or not :]
>
>
>Throw this position into your move generator and do a perft test on it.  This
>position has a nsty habit of crashing engines, even the odd comercial engine
>like my Frtiz 4.
>
>[D]R6R/3Q4/1Q4Q1/4Q3/2Q4Q/Q4Q2/pp1Q4/kBNN1KB1 w - - 0 1
>
>This is the output from my chess engine.  Can someone verify the following perft
>results with their engine?
>
>depth  1  nodes= 218
>depth  2  nodes= 99
>depth  3  nodes= 19073
>depth  4  nodes= 85043
>depth  5  nodes= 13853661
>depth  6  nodes= 115892741
>
>Also look at Peters perft test web page for good perft tests and results .
>http://homepages.caverock.net.nz/~peter/perft.htm
>
>Cheers,
>Tom.


Thanks for all replies!

I made my first perftest today with the default opening position.
I had a nasty bug giving me wrong figures after depth 3.
Found it after awhile.. a ghost "enpassant" square was fooling around  :]


Obs.
Time values are not the executable time of the process. They are real time
values.
Java cant give you the executable time of the process. Abit pitty :/
Results:

depth: 1
nodes: 20
time: 0ms

depth: 2
nodes: 400
time: 16ms

depth: 3
nodes: 8902
time: 78ms

depth:4

nodes:197281

time:906ms

depth:5
nodes:4865609
time:11828ms


I tried doing the same tests with crafty and was quit suprised.
It did depth 5 in 1.07 secs!

DepthFirstSearch algo in my code(java):

private int depthFirstSearch(int depth){
    if(depth == 0) return 1;
    LinkedList moves = generator.genAllMoves(pos);
    int nrOfLeaves = 0;
    while( !moves.isEmpty() ){
      pos.makeMove( (Move) moves.removeFirst() );
      nrOfLeaves += depthFirstSearch(depth-1);
      pos.unMakeMove();
    }
    return nrOfLeaves;
}


I also tried Tom's little Test.
Depth one is ok but at depth 2 I get only 36 leaves reporting back.
I've no idea why.. :[

/ Johan



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.