Thanks for the comments and suggestions.   My responses below ...

On Tue, 2008-10-14 at 09:00 +0200, Denis fidaali wrote:
> 
>  Hi.
>  First things first : i think the specification is enougth as it is.
>  I hope that we can end up with something useable by anyone,
>  even non go people as a final goal. We'll have to get non-go experienced 
>  people to beta-read it (and criticized) for us, i suppose. And we'll probably
>  have to get a HTML version with some fancy illustration (wich i won't be 
> helpfull for)

I don't really want to be too involved in drafting this as it's not my
forte.  However I hope someone else (who is a better writer) will be
willing.   I recognize that my draft is far from ideal and I just hoped
it was enough for those of us experienced to make sense of. Ultimately,
I think we have to explain the rules and we could start with John Tromps
logical rules contained at  http://homepages.cwi.nl/~tromp/go.html  and
modify them accordingly or just integrate them into the document.    

Note that the only different between those rules and our rules is the
suicide rule.  

>  
>  I really look forward to be able to get involved non go people easily :)
>  I'm pretty sure a lot of them accepting this contest would end up
>  being very valuable for the community :)

It's not clear to me whether others will respond, but it would be pretty
cool and it would probably grow the computer go community at the same
time.

> 
> We'll probably have to get a bit deeper in the gtp-part ultimately.

Do you mean the explanation or the actual commands I added?   For the
explanation we could point them to the excellent GTP draft standard and
then explain this as 2 additional commands and then clarify what I
wrong.

I made only 2 GTP command as I wanted to be careful not to add anything
that would likely impose a "barrier" to implementation and this
influenced the specification in many places too.   I would personally
have made slightly different choices about some things which would have
complicated the draft and the implementation.   But I resisted doing
that to keep it as generic as possible.    Examples:  my own test show
that you should stop the AMAF tally a little early.   Christopher Birk
uses a decaying weight in his tally.   I'm sure everyone who has
implemented one of these has their own little "enhancement" but we want
to keep this real simple.


> -------------------------------------------------------------------------- 
> 
> ===
>    5.  Scoring is Chinese scoring.  When a play-out completes, the 
>       score is taken accounting for komi and statistics are kept.  
>       
> I think i would like it if we just gave how it should be done.
> Using the eye definition we impose anyway.
> 
> -------------
>  I propose : 
> -------------
>   5. Scoring is done at the end of a game (two consecutive pass)
>    , in the following way :
>    each stone on the board gives a point to the player who
>    owns it. An empty intersection gives a point to the player (if any) who
>    has a stone on each orthogonal intersection around it.
>    If black's score is greater than 0.0 then it is scored as a black win. 
> Otherwise
>    it is scored as a white win.

Yes, or as I mentioned we could borrow from the logical rules.

> 
>  ===
>    1. Must be able to play complete games for comprehensive conformity
>      testing.
>  
>  I do not quite understand the point. But it can't really hurt either .. :)

It seems slightly out of place but most of this is focused on how to do
the play-outs and I wanted to make it clear that this should be able to
play a real game and real games could be used for conformance testing
(if you don't score very close to 50% against others, something is
wrong.)

>  
>  ===
>    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.
>      
> I'd like that we got more descriptive on the simple-ko restriction, if 
> possible.
> (i'll try to propose something, but i'm getting low on time right now)


Yes, this goes back to my point (and yours) that we really need to
explain the rules. 

> 
> ===
>   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.
>      
> I don't quite get the point of the "except that at least 1 move gets tried"
> part

Because you don't want play-outs that stop before they begin.  In order
to get samples of moves you must play at least 1 move in the play-outs
even if you are beyond move 243.    

> 
> ===
>    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.  
>    
> i do not find ref-nodes that much descriptive for "return total moves 
> executed in play outs"
> Maybe it is quite standard to call that number ref-nodes ? As it's only amaf,
> there are no node per-se are there. what about a ref-numberOfMove command ?

I'm not too fussy about the name of the command but I would take a hint
from the current GTP standard.  I don't see them constructing names with
mixed case and I would avoid that even though that is exactly how I do
variable names in high level languages.   I used nodes because I have
come to think of "nodes" as positions created from moves and it's
concise to me.   Do you have an alternative suggestion that is more
concise and does not mix case?    (Mixed case is ok in my own programs,
but it requires people to remember not just the name of the command, but
how it's spelled case-wise.)    Perhaps the standard isn't
case-sensitive, I don't remember.

> --------------------------------------------------------------------------
> Here are the data you requested for with the implementation i want
> to use as a reference. I'm not able to get value for integer komi.
> (my system do no account for draws ..)

These numbers appear to be close to mine.   I didn't do 0.5 komi but the
others agree closely.

I'm not going to have standard values, you will just compare to other
programs (presumably some standard reference program could be used as
the gold standard once we believe in it.)



> 
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++
> Komi 0.5
> mean score =0.5244261847821416
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++
> komi 5.5
> mean score =0.44674397181685754
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++
> Komi 6.5
> mean score =0.4467712426921182
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++
> Komi 7.5
> mean score =0.42132957622630574
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 87317.15777498983 Playout/sec
> Time=11.461321297
> Number of playout=1000770.0
> Mean moves per sim 111.06128680915695
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 
> It uses the mersene twister for random-generation.
> But this is a 4 thread test. I use nanotime as an help
> to set up the (per thread) seed, combined with thread number.

I want to be very careful not to specify these kinds of details such as
which RNG must be used or how uniform random move selection should be
done.    I want to specify the "what" not the "how."  "What" the task
is, not "how" it should be done.   In this language the "task" is to
pass the black box test but I hope that it cannot be passed without
following the specification closely.    The specification is already
constrained enough but hopefully not beyond what is necessary.



> I think it's interesting to give the Playout/sec score.

An external tester will provide that number.  That's what I had in mind
but in a contest format you don't ask a program to grade itself.   

> Then your reference bot "can" be used as a refence benchmark.

Any bot can be a reference implementation of the "standard" but none
needs to be viewed as a reference performance benchmark.  

Just for a quick reference using IBM's java I did the 0.5 komi benchmark
and also timed it:

 komi: 0.5
 nodes: 111052804
 score: 0.524683
 PPS: 14492.7

PPS is playouts per second.   

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Core(TM)2 CPU          6700  @ 2.66GHz
stepping        : 6
cpu MHz         : 2667.000
cache size      : 4096 KB


  

> That is not perfect of course, but that gives something to chew.
> (I get quite a large variation in speed from run to run
> with 1000 000 simulations. Ranging from less than 80k/s to close to 90k/s
> with 4 threads over my 4 cores.
> 
> My implementation is in java too, and has nothing fancy to it,
> so i might as well publish it later on. I probably should clean it
> up a bit. And make a few optimisation (by refactoring).

I think anyone wishing to participate (officially) should submit their
source code.   You can post numbers but it cannot be taken seriously
without code and verification.  Perhaps we could require that AT LEAST
the executable be submitted?

Right now my implementation is the reference implementation but I would
consider a better written one.   The criteria for "better" is short,
simple and readable,  not high performing or feature-rich.   


- Don





> 
> 
> 
> 
> ----------------------------------
> Don said :
> ----------------------------------
> 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)
> _________________________________________________________________
> Installez gratuitement les 20 émôticones Windows Live Messenger les plus fous 
> ! Cliquez ici !
> http://www.emoticones-messenger.fr/_______________________________________________
> 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