A minor correction in the GTP ref-score command.   Score is not from
blacks point of view, but from the point of view of the player who's
turn to move it is.

- Don


On Mon, 2008-10-13 at 19:14 -0400, Don Dailey wrote:
> I made a reference bot and I want someone(s) to help me check it out
> with equivalent data from their own program.  There are no guarantees
> that I have this correct of course.
> 
> Doing 1 million play-outs from the opening position I get the following
> numbers for various komi:
> 
>   playouts:    1,000,000
>       komi:    5.5
>      moves:  111,030,705
>      score:  0.445677
> 
>   playouts:    1,000,000
>       komi:    6.0
>      moves:  111,066,273
>      score:  0.446729
> 
>   playouts:    1,000,000
>       komi:    6.5
>      moves:  111,040,546
>      score:  0.447138
> 
>   playouts:    1,000,000
>       komi:    7.0
>      moves:  111,029,204
>      score:  0.4333795
> 
>   playouts:    1,000,000
>       komi:    7.5
>      moves:  111,047,843
>      score:  0.421281
> 
> (I also get a score of 0.524478 for 0.0 komi)
> 
> Score is from blacks point of view.  Score is not the score of the
> best move of course but the combined average score of all 1 million
> play-outs using the stated komi and ranges from zero to one.
> 
> I am going to build a test harness to compare multiple bots side by
> side using gtp commands.  I made up two private gtp commands to
> facilitate this:
> 
>    ref-nodes -> return total moves executed in play-outs
>              (including both pass moves at end of each
>                play-out.)
> 
>    ref-score -> return total win fraction for black.  
> 
>   NOTE: both commands report stats from last given genmove search.
> 
>    
> 
> I hope to get peoples opinion on the following implementation
> specification.  I'm definitely not a writer, so I need to know if this
> very informal spec is enough at least for experienced MC bot authors
> or where there are still some ambiguous points.
> 
> 
> I'm using the following implementation specification:
> 
> ----[ bot implementation specification ]----
> 
> This is an informal implementation specification document for
> writing a simple Monte Carlo Bot program.  The idea is to build a bot
> like this in ANY language and test it for performance (and
> conformity.)  Can be used as a general language benchmark but is as much
> about the implementation as the language.    This specification assumes
> some knowledge of go and Monte Carlo go programs.   (If you don't like
> it, please write a better one for me!)
> 
> 
> 
>   1. Must be able to play complete games for comprehensive conformity
>      testing.
> 
>   2. In the play-out phase, the moves must be chosen in a "uniformly
>      random" way between legal moves that do not fill 1 point eyes and
>      obey the simple-ko restriction.
> 
>      When a move in the play-out is not possible, a pass is given.
> 
>   3. Play-outs stop after 2 consecutive pass moves, OR when N*N*3
>      moves have been completed, except that at least 1 move gets tried
>      where N is the size of the board.  So if the board is 9x9 then
>      the game is stopped after 9*9*3 = 81*3 = 243 move assuming at
>      least one move has been tried in the play-outs.
> 
>   4.  A 1 point eye is an empty point surrounded by friendly stones
>       for the side to move.  Additionally, we have 2 cases.  If the
>       stone is NOT on any edge (where the corner is an edge) there
>       must be no more than one diagonal enemy stone.  If the point in
>       question is on the edge, there must be NO diagonal enemy stones.
> 
>   5.  Scoring is Chinese scoring.  When a play-out completes, the 
>       score is taken accounting for komi and statistics are kept.  
> 
>   6.  Scoring for game play uses AMAF - all moves as first.  In the
>       play-outs, statistics are taken on moves played during the
>       play-outs.  Statistics are taken only on moves that are played by
>       the side to move, and only if the move in question is being
>       played for the first time in the play-out (by either side.)  A
>       win/loss record is kept for these moves.
> 
>   7.  The move with the highest statistical win rate is the one
>       selected for move in the actual game.  In the case of moves with
>       even scores the choice is randomly made between them.
> 
>   8.  Pass move are never selected as the final move to play unless no
>       other non-eye filling move is possible.
> 
>   9.  Random number generator is unspecified - your program should
>       simply pass the "black box" test and possible an optional
>       additional test which consists of long matches between other
>       known conforming bots.  Your program should score close to 50%
>       against other "properly implemented" programs.
> 
>  10.  Suicide not allowed in the play-outs or in games it plays.  
>  
>  11.  When selecting moves to play in the actual game (not play-outs)
>       positional superko is checked and forbidden.
> 
>  12.  If stats for a move was never seen in the play-outs, (has a count
>       of zero) it is ignored for move selection.  
> 
> _______________________________________________
> computer-go mailing list
> computer-go@computer-go.org
> http://www.computer-go.org/mailman/listinfo/computer-go/

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Reply via email to