What output is best for evaluating an engine ?

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Fguy64
Posts: 814
Joined: Sat May 09, 2009 4:51 pm
Location: Toronto

What output is best for evaluating an engine ?

Post by Fguy64 »

greetings. I expect that soon I will have something to show for recent efforts on my engine. In this phase I plan to have a basic "negamax recursion" algorithm with alpha beta pruning and quiescense. There will also be some primitive methods to eliminate some move transpositions. I've had lots of good input from people here, so thanks for that.

I plan to use pastebin.com to make source code available.

I've looked over the page on engine testing at the chessprogramming wiki, but I could use some suggestions on what type of output to generate in order to make it easy for interested parties here on TalkChess to evaluate the correctness of the algorithms, given a rather limited positional/material eval function.

Thanks.
User avatar
sje
Posts: 4675
Joined: Mon Mar 13, 2006 7:43 pm

Re: What output is best for evaluating an engine ?

Post by sje »

From Symbolic's finger notes:

Kibitzed analysis results are presented from Symbolic's point-of-view: [Score (decimal pawns)/Full width depth/CPU time used/Node count/Tablebase hit count] Predicted variation

So, something like:

[+0.423/3/0.055/32,654/0] 1 e4 e5 2 Nf3
Aleks Peshkov
Posts: 892
Joined: Sun Nov 19, 2006 9:16 pm
Location: Russia

Re: What output is best for evaluating an engine ?

Post by Aleks Peshkov »

It is suggested to create a program playing complete chess and understands UCI or Winboard chess engine protocol.

Those protocols specify minimum required output.
Fguy64
Posts: 814
Joined: Sat May 09, 2009 4:51 pm
Location: Toronto

Re: What output is best for evaluating an engine ?

Post by Fguy64 »

Duly Noted, Steven and Aleks thanks

Implementing Winboard and/or UCI is on my wishlist for the future. Right now I have my own GUI and engine which communicate by a single method call, and also have a few shared libraries.

Still, I am somewhat familiar with the two protocols, so I'll look there also to get some ideas for suggested output.

regards.
User avatar
Bill Rogers
Posts: 3562
Joined: Thu Mar 09, 2006 3:54 am
Location: San Jose, California

Re: What output is best for evaluating an engine ?

Post by Bill Rogers »

Aleks Peshkov wrote:It is suggested to create a program playing complete chess and understands UCI or Winboard chess engine protocol.

Those protocols specify minimum required output.
I wrote a very simple chess program that runs under Winboard and the only thing my program output was the move selected and Winboard was happy with that.
Bill
diep
Posts: 1822
Joined: Thu Mar 09, 2006 11:54 pm
Location: The Netherlands

Re: What output is best for evaluating an engine ?

Post by diep »

Fguy64 wrote:greetings. I expect that soon I will have something to show for recent efforts on my engine. In this phase I plan to have a basic "negamax recursion" algorithm with alpha beta pruning and quiescense. There will also be some primitive methods to eliminate some move transpositions. I've had lots of good input from people here, so thanks for that.

I plan to use pastebin.com to make source code available.

I've looked over the page on engine testing at the chessprogramming wiki, but I could use some suggestions on what type of output to generate in order to make it easy for interested parties here on TalkChess to evaluate the correctness of the algorithms, given a rather limited positional/material eval function.

Thanks.
I feel you put a lot of faith in the 'community' to test your engine.
When i see new engines regurarly and inform its author, it's obvious to me usually that no one else tested it before other than the author.

Always go for an output you can readyourself very well.

Ignore Edwards type guys who like to overcomplicate things and put a stamp on it of their own :)

KISS is the way to go.

No hard feelings Edwards!

Happens a lot.
Fguy64
Posts: 814
Joined: Sat May 09, 2009 4:51 pm
Location: Toronto

Re: What output is best for evaluating an engine ?

Post by Fguy64 »

diep wrote:
Fguy64 wrote:greetings. I expect that soon I will have something to show for recent efforts on my engine. In this phase I plan to have a basic "negamax recursion" algorithm with alpha beta pruning and quiescense. There will also be some primitive methods to eliminate some move transpositions. I've had lots of good input from people here, so thanks for that.

I plan to use pastebin.com to make source code available.

I've looked over the page on engine testing at the chessprogramming wiki, but I could use some suggestions on what type of output to generate in order to make it easy for interested parties here on TalkChess to evaluate the correctness of the algorithms, given a rather limited positional/material eval function.

Thanks.
I feel you put a lot of faith in the 'community' to test your engine.
When i see new engines regurarly and inform its author, it's obvious to me usually that no one else tested it before other than the author.

Always go for an output you can readyourself very well.

Ignore Edwards type guys who like to overcomplicate things and put a stamp on it of their own :)

KISS is the way to go.

No hard feelings Edwards!

Happens a lot.
thanks, duly noted. I don't think I have too great expectations here, I have been coding and revising and testing on my own till the cows come home, for quite a long time, and I welcome the chance to bounce some ideas, and I just want to make it easy for people to bounce back. People here have been helpful, if they test, then great, if they don't well that's fine too, I still got my money's worth from this place.

The chess part of this project is really kind of secondary, this project is mostly about learning to program in Java, and the chess makes it interesting.

regards.