Re: [computer-go] simple MC reference bot and specification

2008-10-13 Thread Don Dailey
I think I already add a 13,  so you must mean 14 :-)

- Don


On Mon, 2008-10-13 at 09:48 -0400, steve uurtamo wrote:
> sorry to be pedantic, but:
> 
> 13. Chinese scoring.
> 
> s.
> 
> On Sat, Oct 11, 2008 at 9:11 AM, Don Dailey <[EMAIL PROTECTED]> wrote:
> > On Sat, 2008-10-11 at 13:33 +0100, Claus Reinke wrote:
> >> I have a rough idea of what that might be. And I suspect that keeping
> >> this
> >> "de facto standard" implicit has been hiding some actual differences
> >> in what
> >> different people think that standard is. Some of my questions arise
> >> from trying
> >> to pin down where and why different authors have different ideas of
> >> what "the"
> >> standard is. If there has been some explicit standardisation since
> >> those papers
> >> were published, I'd be interested in a pointer to that standard and
> >> its rationale.
> >
> > I'm going to publish a real simple java reference program and some docs
> > to go with it and a program to "test" it for black box conformance.
> > (Actually, it will test 2 or more and compare them.)   I would like to
> > get someone who writes better than I do to write up the standard in less
> > casual language but it goes something like this:
> >
> >  1. A complete game playing program so it can also be tested in real
> > games.
> >
> >  2. Play uniformly random moves except to 1 pt eyes and avoiding simple
> > ko.  When a move is otherwise not possible,  pass.
> >
> >  3.  Playout ends after 2 consecutive pass moves (1 for each side.)
> >
> >  4.  1 pt 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.  In the playouts, statistics are taken on moves played during the
> > playouts.   If the move is played FIRST (during the playout) by the side
> > to move it is one data point and the win loss record is maintained.
> >
> >  6.  The move with the highest statistical win rate is the one selected
> > for move in the actual game.
> >
> >  7.  In the case of moves with even scores a random selection is made.
> >
> >  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 as a further optional test your
> > program should score close to 50% against other "properly implemented"
> > programs.
> >
> >  10.  Suicide not allowed in the playouts or in games it plays.
> >
> >  11.  When selecting moves to play in the actual game (not playouts)
> > superko is checked and forbidden.
> >
> >  12.  If a move has NO STATS taken (which is highly unlikely unless you
> > do very few playouts) it is ignored for move selection.
> >
> > Did I miss anything?  I would like to get feedback and agreement on
> > this.
> >
> > Please note - a few GTP commands will be added in order to instrument
> > any conforming programs.   Haven't figured those out yet,  but it will
> > be designed so that it can report number of nodes, number of playouts,
> > average score of playouts, etc.   So the tester may set up some position
> > and a ko,  and ask for statistics based on the number of specified
> > playouts.
> >
> > - Don
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > ___
> > computer-go mailing list
> > computer-go@computer-go.org
> > http://www.computer-go.org/mailman/listinfo/computer-go/
> >


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/

Re: [computer-go] simple MC reference bot and specification

2008-10-13 Thread steve uurtamo
sorry to be pedantic, but:

13. Chinese scoring.

s.

On Sat, Oct 11, 2008 at 9:11 AM, Don Dailey <[EMAIL PROTECTED]> wrote:
> On Sat, 2008-10-11 at 13:33 +0100, Claus Reinke wrote:
>> I have a rough idea of what that might be. And I suspect that keeping
>> this
>> "de facto standard" implicit has been hiding some actual differences
>> in what
>> different people think that standard is. Some of my questions arise
>> from trying
>> to pin down where and why different authors have different ideas of
>> what "the"
>> standard is. If there has been some explicit standardisation since
>> those papers
>> were published, I'd be interested in a pointer to that standard and
>> its rationale.
>
> I'm going to publish a real simple java reference program and some docs
> to go with it and a program to "test" it for black box conformance.
> (Actually, it will test 2 or more and compare them.)   I would like to
> get someone who writes better than I do to write up the standard in less
> casual language but it goes something like this:
>
>  1. A complete game playing program so it can also be tested in real
> games.
>
>  2. Play uniformly random moves except to 1 pt eyes and avoiding simple
> ko.  When a move is otherwise not possible,  pass.
>
>  3.  Playout ends after 2 consecutive pass moves (1 for each side.)
>
>  4.  1 pt 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.  In the playouts, statistics are taken on moves played during the
> playouts.   If the move is played FIRST (during the playout) by the side
> to move it is one data point and the win loss record is maintained.
>
>  6.  The move with the highest statistical win rate is the one selected
> for move in the actual game.
>
>  7.  In the case of moves with even scores a random selection is made.
>
>  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 as a further optional test your
> program should score close to 50% against other "properly implemented"
> programs.
>
>  10.  Suicide not allowed in the playouts or in games it plays.
>
>  11.  When selecting moves to play in the actual game (not playouts)
> superko is checked and forbidden.
>
>  12.  If a move has NO STATS taken (which is highly unlikely unless you
> do very few playouts) it is ignored for move selection.
>
> Did I miss anything?  I would like to get feedback and agreement on
> this.
>
> Please note - a few GTP commands will be added in order to instrument
> any conforming programs.   Haven't figured those out yet,  but it will
> be designed so that it can report number of nodes, number of playouts,
> average score of playouts, etc.   So the tester may set up some position
> and a ko,  and ask for statistics based on the number of specified
> playouts.
>
> - Don
>
>
>
>
>
>
>
>
>
> ___
> computer-go mailing list
> computer-go@computer-go.org
> http://www.computer-go.org/mailman/listinfo/computer-go/
>
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] simple MC reference bot and specification

2008-10-11 Thread Don Dailey
David Fotland suggested another rule,  tell me what you think.

His rule is to stop the game at or beyond move N*N*2 where N is the
board size and score the board no matter what.  But in the play-outs he
first plays 1 move before making this test.  

If a game actually lasts that long,  the play-outs are not worth much
but the game is probably over anyway and the board gets scored as is.

My own implementation depends on there being no eyes bigger than 1
point, because it's fast and easy to score a board that has only 1 point
eyes.   But a simple modification makes it work without any appreciable
speed sacrifice:   If a game ends beyond move N*N*2 then use the slow
scoring routine that doesn't assume the board is complete.   It should
be very rare that this routine has to be used.

- Don



On Sat, 2008-10-11 at 16:15 -0400, Don Dailey wrote:
> On Sat, 2008-10-11 at 21:46 +0200, Denis fidaali wrote:
> > 
> > On point 13.
> > 1 stone captures, may eventually be "hard" for some implementation.
> > I think using game length as a criterion gives more freedom.
> 
> I definitely considered that.  My own program returns the number of
> stones captured (and a list of those stones if I ask for it) and so it's
> easy for me,  but wonder if there are programs where this would be
> difficult to detect?
> 
> My arguments in favor of the rule is that it's not quite as artificial
> as setting some arbitrary limit and I think this would not unduly delay
> the terminations of games.  With a limit of hundreds of moves, some
> games would go hundreds of moves beyond what is necessary.  
> 
> Are there any MC programs out that cannot detect whether they made a one
> stone capture and it would be unduly difficult to fix this?  
> 
>  
> 
> 
> > 
> > Then you have to specify what to do with those pathological games anyway.
> > Do you score them "as they are", or do you drop them. I do count them.
> 
> You score them as is.   You may not get the "correct" score, but after
> all these ARE random games and we expect this to be extremely rare. 
> 
> 
> > The rule for counting is probably quite standard too. I give a point for 
> > each stone present. Then for each empty stone, i give a point to the side
> > who has all orthogonal control of it, if any.
> 
> Yes.  Tromp/Taylor which are Chinese rules.   
> 
> 
> > 
> > I usually implements super-ko checking very late, if i do at all.
> > 
> > I often start by selecting either the first or the last "best" move,
> > rather than picking one at random. Although picking at random
> > makes me more comfortable somehow. It could be interesting
> > to see how much difference it makes.
> 
> Of course everyone is free to implement any variation they want,
> controlled by switches and such.The idea is to have an extremely
> reliable benchmark and this will also be very helpful for new developers
> as this also would serve as a good "first program" for new developers
> and they could have confidence that they got all the details right.
> 
> 
> > 
> > Finally, about the size. Is it supposed to be 9x9 only ?
> 
> It can be anything you want,  but I suggest that you develop a program
> capable of playing on any board size.   
> 
> Having said that, you can get a little more speed if you code to just 1
> specific board size.   Lazarus compiles to any ODD board size but it's
> fixed at compile time and I have to recompile to get other board sizes.
> I doubt this optimization is worth very much and it's annoying that I
> have to fetch a different binary in order to play other board sizes.
> 
> Also, I don't really keep up with how new processor families change the
> rules.   I know that I USED to get a nice speedup several years ago by
> using as many constants as possible (as opposed to variables) but I have
> no idea whether (or how much) this is true today.
> 
> > 9x9 only gives more freedom to fine tune for this size.
> > It may make the implementations less useful, if someone
> > knows another sizes the light-policy could succeed on.
> > (like maybe studying 7x7 and such ?)
> 
> How do you define "succeed?"It works on all board sizes, it just
> works better on smaller boards. You could equally say it doesn't
> work on any board size since there are ways to build stronger programs. 
>   
> 
> - Don
> 
> 
> 
> 
> 
> > _
> > Email envoyé avec Windows Live Hotmail. Dites adieux aux spam et virus, 
> > passez à Hotmail ! C'est gratuit !
> > http://www.windowslive.fr/hotmail/default.asp___
> > computer-go mailing list
> > computer-go@computer-go.org
> > http://www.computer-go.org/mailman/listinfo/computer-go/
> ___
> computer-go mailing list
> computer-go@computer-go.org
> http://www.computer-go.org/mailman/listinfo/computer-go/


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

Re: [computer-go] simple MC reference bot and specification

2008-10-11 Thread Don Dailey
On Sat, 2008-10-11 at 17:01 -0400, Michael Williams wrote:
> Don Dailey wrote:
> >> Speaking of which, wouldn't it be better to limit consecutive Kos instead 
> >> of limiting consecutive 1-stone captures?
> > 
> > Wouldn't this definitely slow down most if not all light implementations
> > and require code changes to existing programs?   My own programs do not
> > really know that a ko exists until it decides to make that specific
> > move.  Then when it tries to play that move the make() routine discovers
> > that it is was a ko and reject it, returning an illegal move value.   
> > 
> > To fix this I would have to test every move just to see if there is a ko
> > situation (although there are no doubt some shortcuts.)
> 
> 
> I detect simple Ko at the time of the legal capture.  I'm curious how you do 
> it at the time of the illegal capture attempt.  How do you tell a legal 
> 1-stone 
> capture from an illegal one?

An illegal one stone capture is a capture of the same stone that was
just used to make a 1 stone capture itself.   I think I got that right. 

Whenever there is a 1 stone capture I flag that and remember it's
location (in the move list stack) but a one stone capture does not imply
a KO and that takes time to test - so I don't test.   So I don't know
that a capture move is a KO and most of the time I don't need to know. 

The next player selects a random move, which MIGHT be a capture attempt
which is illegal due to simple KO.   If it is, only then do I know that
the previous move was a KO.  

I'm slightly confused by the language "ko"  what is a ko?   To me a ko
is illegal so it never happens but I suppose my definition is wrong and
it's any board position where an illegal repetition is possible due to
whatever ko rule is in effect.

- Don
  


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


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/

Re: [computer-go] simple MC reference bot and specification

2008-10-11 Thread Don Dailey
On Sat, 2008-10-11 at 16:55 -0400, Don Dailey wrote:
> To fix this I would have to test every move just to see if there is a
> ko
> situation (although there are no doubt some shortcuts.)

One shortcut is to simply not test for this until after you make a 1
stone capture,  then test all possible moves for the previous position.
But of course this greatly complicates most implementations I fear.   

An extension of this shortcut is to delay ALL testing until the number
of 1 stone captures indicate that you need to test N previous positions
for KO.   This would not be easy for me unless I were to accept the
slowdown of using my slow move maker in the playouts.   My slow move
maker maintains full state between moves.  


- Don



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/

Re: [computer-go] simple MC reference bot and specification

2008-10-11 Thread Michael Williams

Don Dailey wrote:

Speaking of which, wouldn't it be better to limit consecutive Kos instead of 
limiting consecutive 1-stone captures?


Wouldn't this definitely slow down most if not all light implementations
and require code changes to existing programs?   My own programs do not
really know that a ko exists until it decides to make that specific
move.  Then when it tries to play that move the make() routine discovers
that it is was a ko and reject it, returning an illegal move value.   


To fix this I would have to test every move just to see if there is a ko
situation (although there are no doubt some shortcuts.)



I detect simple Ko at the time of the legal capture.  I'm curious how you do it at the time of the illegal capture attempt.  How do you tell a legal 1-stone 
capture from an illegal one?

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


Re: [computer-go] simple MC reference bot and specification

2008-10-11 Thread Don Dailey
On Sat, 2008-10-11 at 16:32 -0400, Michael Williams wrote:
> Don Dailey wrote:
> > Are there any MC programs out that cannot detect whether they made a one
> > stone capture and it would be unduly difficult to fix this?  
> 
> They would have to detect that to detect simple Ko.

That's a good point.

> 
> Speaking of which, wouldn't it be better to limit consecutive Kos instead of 
> limiting consecutive 1-stone captures?

Wouldn't this definitely slow down most if not all light implementations
and require code changes to existing programs?   My own programs do not
really know that a ko exists until it decides to make that specific
move.  Then when it tries to play that move the make() routine discovers
that it is was a ko and reject it, returning an illegal move value.   

To fix this I would have to test every move just to see if there is a ko
situation (although there are no doubt some shortcuts.)

So I don't think that is a practical rule although it is without doubt
slightly superior. 

- Don


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


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/

Re: [computer-go] simple MC reference bot and specification

2008-10-11 Thread Michael Williams

Don Dailey wrote:

Are there any MC programs out that cannot detect whether they made a one
stone capture and it would be unduly difficult to fix this?  


They would have to detect that to detect simple Ko.

Speaking of which, wouldn't it be better to limit consecutive Kos instead of 
limiting consecutive 1-stone captures?

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


Re: [computer-go] simple MC reference bot and specification

2008-10-11 Thread Don Dailey
On Sat, 2008-10-11 at 21:46 +0200, Denis fidaali wrote:
> 
> On point 13.
> 1 stone captures, may eventually be "hard" for some implementation.
> I think using game length as a criterion gives more freedom.

I definitely considered that.  My own program returns the number of
stones captured (and a list of those stones if I ask for it) and so it's
easy for me,  but wonder if there are programs where this would be
difficult to detect?

My arguments in favor of the rule is that it's not quite as artificial
as setting some arbitrary limit and I think this would not unduly delay
the terminations of games.  With a limit of hundreds of moves, some
games would go hundreds of moves beyond what is necessary.  

Are there any MC programs out that cannot detect whether they made a one
stone capture and it would be unduly difficult to fix this?  

 


> 
> Then you have to specify what to do with those pathological games anyway.
> Do you score them "as they are", or do you drop them. I do count them.

You score them as is.   You may not get the "correct" score, but after
all these ARE random games and we expect this to be extremely rare. 


> The rule for counting is probably quite standard too. I give a point for 
> each stone present. Then for each empty stone, i give a point to the side
> who has all orthogonal control of it, if any.

Yes.  Tromp/Taylor which are Chinese rules.   


> 
> I usually implements super-ko checking very late, if i do at all.
> 
> I often start by selecting either the first or the last "best" move,
> rather than picking one at random. Although picking at random
> makes me more comfortable somehow. It could be interesting
> to see how much difference it makes.

Of course everyone is free to implement any variation they want,
controlled by switches and such.The idea is to have an extremely
reliable benchmark and this will also be very helpful for new developers
as this also would serve as a good "first program" for new developers
and they could have confidence that they got all the details right.


> 
> Finally, about the size. Is it supposed to be 9x9 only ?

It can be anything you want,  but I suggest that you develop a program
capable of playing on any board size.   

Having said that, you can get a little more speed if you code to just 1
specific board size.   Lazarus compiles to any ODD board size but it's
fixed at compile time and I have to recompile to get other board sizes.
I doubt this optimization is worth very much and it's annoying that I
have to fetch a different binary in order to play other board sizes.

Also, I don't really keep up with how new processor families change the
rules.   I know that I USED to get a nice speedup several years ago by
using as many constants as possible (as opposed to variables) but I have
no idea whether (or how much) this is true today.

> 9x9 only gives more freedom to fine tune for this size.
> It may make the implementations less useful, if someone
> knows another sizes the light-policy could succeed on.
> (like maybe studying 7x7 and such ?)

How do you define "succeed?"It works on all board sizes, it just
works better on smaller boards. You could equally say it doesn't
work on any board size since there are ways to build stronger programs. 
  

- Don





> _
> Email envoyé avec Windows Live Hotmail. Dites adieux aux spam et virus, 
> passez à Hotmail ! C'est gratuit !
> http://www.windowslive.fr/hotmail/default.asp___
> computer-go mailing list
> computer-go@computer-go.org
> http://www.computer-go.org/mailman/listinfo/computer-go/


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/

Re: [computer-go] simple MC reference bot and specification

2008-10-11 Thread Don Dailey
On Sat, 2008-10-11 at 14:48 -0400, Jason House wrote:
> Whatever is used by the rules... I know CGOS and KGS Chinesee use
> positional super ko. I don't know which rule sets would use
> situational. Situational makes more sense to me. 

I've always personally preferred situation super ko (probably because of
my chess background)  but Position Super Ko seems to be the more popular
standard and CGOS uses it as well as KGS.  

What are most people using?

- Don



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/

Re: [computer-go] simple MC reference bot and specification

2008-10-11 Thread Don Dailey
On Sat, 2008-10-11 at 14:40 -0400, [EMAIL PROTECTED] wrote:
> 
> 11.  When selecting moves to play in the actual game (not playouts)
> superko is checked and forbidden.
> 
> positional superko (as opposed to situational superko).

Thank you.  I forgot to specify which.

- Don

> 
> - Dave Hillis
> 
> 
> -Original Message-
> From: Don Dailey <[EMAIL PROTECTED]>
> To: computer-go 
> Sent: Sat, 11 Oct 2008 9:11 am
> Subject: [computer-go] simple MC reference bot and specification
> 
> On Sat, 2008-10-11 at 13:33 +0100, Claus Reinke wrote:
> > I have a rough idea of what that might be. And I suspect that keeping
> > this
> > "de facto standard" implicit has been hiding some actual differences
> > in what
> > different people think that standard is. Some of my questions arise
> > from trying
> > to pin down where and why different authors have different ideas of
> > what "the"
> > standard is. If there has been some explicit standardisation since
> > those papers
> > were published, I'd be interested in a pointer to that standard and
> > its rationale.
> 
> I'm going to publish a real simple java reference program and some docs
> to go with it and a program to "test" it for black box conformance.
> (Actually, it will test 2 or more and compare them.)   I would like to
> get someone who writes better than I do to write up the standard in less
> casual language but it goes something like this:
> 
>   1. A complete game playing program so it can also be tested in real
> games.
> 
>   2. Play uniformly random moves except to 1 pt eyes and avoiding simple
> ko.  When a move is otherwise not possible,  pass.
> 
>   3.  Playout ends after 2 consecutive pass moves (1 for each side.)
> 
>   4.  1 pt 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.  In the playouts, statistics are taken on moves played during the
> playouts.   If the move is played FIRST (during the playout) by the side
> to move it is one data point and the win loss record is maintained.  
> 
>   6.  The move with the highest statistical win rate is the one selected
> for move in the actual game.
> 
>   7.  In the case of moves with even scores a random selection is made. 
> 
>   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 as a further optional test your
> program should score close to 50% against other "properly implemented"
> programs. 
> 
>  10.  Suicide not allowed in the playouts or in games it plays.  
>  
>  11.  When selecting moves to play in the actual game (not playouts)
> superko is checked and forbidden.
> 
>  12.  If a move has NO STATS taken (which is highly unlikely unless you
> do very few playouts) it is ignored for move selection.  
> 
> Did I miss anything?  I would like to get feedback and agreement on
> this.   
>  
> Please note - a few GTP commands will be added in order to instrument
> any conforming programs.   Haven't figured those out yet,  but it will
> be designed so that it can report number of nodes, number of playouts,
> average score of playouts, etc.   So the tester may set up some position
> and a ko,  and ask for statistics based on the number of specified
> playouts.
> 
> - Don
> 
> 
> 
> 
> 
> 
> 
>  
> ___
> computer-go mailing list
> computer-go@computer-go.org
> http://www.computer-go.org/mailman/listinfo/computer-go/
> 
> __
> 
> McCain or Obama? Stay updated on coverage of the Presidential race
> while you browse - Download Now! 


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/

Re: [computer-go] simple MC reference bot and specification

2008-10-11 Thread Don Dailey
On Sat, 2008-10-11 at 13:34 -0500, Zach Wegner wrote:
> >  11.  When selecting moves to play in the actual game (not playouts)
> > superko is checked and forbidden.
> 
> That's fine for this spec, but I don't do this and don't plan on it.

You don't have to do it,  it's just a provision to allow your bot to
play legal games.   The tester probably won't require it since it will
just be looking for statistics from specified (random) positions.  

A more comprehensive test is to play games with these reference bots and
check to see if any are straying too far from 50% scores against the
others.Your program could still participate, although it would
probably lose slightly more than the others due to the occasionally
superko loss.   Hopefully, this comprehensive tester could identify just
from the game statistics that something is wrong.

- Don




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/

Re: [computer-go] simple MC reference bot and specification

2008-10-11 Thread Don Dailey
On Sat, 2008-10-11 at 13:34 -0500, Zach Wegner wrote:
> >  7.  In the case of moves with even scores a random selection is
> made.
> 
> I think maybe this should be something deterministic.

That of course is clearly a possibility.   However I'm trying to
approach this with a certain consistent methodology which is to specify
the BEHAVIOR, not the implementation.   I want complete freedom in how
you implement the specified behavior.  


Also, if you chose a different generator, it would not be possible to
prove it if it were a good one.   Not unless we also got heavy handed
about how it's initialized, and how you select moves with a random
distribution.In short, I fear that we would be asking too much to
build a bunch of clones that are completely deterministic.

If you look at pseudo random number generators you will see there is
this same implicit methodology, though not stated.   The behavior
specified is to "appear random" and test are designed to see how well
this behavior is simulated.In some sense, people consider the best
random number generators to be the ones that "fool" the Diehard tests.
They fool these diehard tests into thinking they are really random. 

I want this to work that way.  We will build tests and I don't care if
you can find a way to fool the tests.  However the tester will be
designed to be difficult to fool and it will not present you with
predictable positions.  

I don't care if you don't follow the spec 100% if you can fool the
tests.   If you can do this, you will probably have found something
useful to all of us. 

This is not going to be a formal thing like the Computer Benchmarks Game
is.   We will just build a tester and publish the spec and you can do
what you want with it.   Maybe put entries on Sensei's page.  

- Don



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/

Re: [computer-go] simple MC reference bot and specification

2008-10-11 Thread Don Dailey
On Sat, 2008-10-11 at 13:34 -0500, Zach Wegner wrote:
> Wouldn't it make more sense to run an equal number of playouts for
> each root move?

No, because with AMAF you will get different game counts ANYWAY.   

And also I believe most programs are viewing the level in playouts as a
fixed number of play-outs,   not a fixed number of play-outs per root
move choice and I would want to conform to what most people are doing.

However I'm not opposed to doing it that way, especially if that's what
most people are already doing anyway.   But I'm just trying to nail down
what "most" people are already doing so that only minor changes would be
necessary to anyone wanting to implement this.

- Don





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/

Re: [computer-go] simple MC reference bot and specification

2008-10-11 Thread Jason House

On Oct 11, 2008, at 2:40 PM, [EMAIL PROTECTED] wrote:



 11.  When selecting moves to play in the actual game (not playouts)
superko is checked and forbidden.

positional superko (as opposed to situational superko).



Whatever is used by the rules... I know CGOS and KGS Chinesee use  
positional super ko. I don't know which rule sets would use  
situational. Situational makes more sense to me.











- Dave Hillis


-Original Message-
From: Don Dailey <[EMAIL PROTECTED]>
To: computer-go 
Sent: Sat, 11 Oct 2008 9:11 am
Subject: [computer-go] simple MC reference bot and specification

On Sat, 2008-10-11 at 13:33 +0100, Claus Reinke wrote:
> I have a rough idea of what that might be. And I suspect that  
keeping

> this
> "de facto standard" implicit has been hiding some actual differences
> in what
> different people think that standard is. Some of my questions arise
> from trying
> to pin down where and why different authors have different ideas of
> what "the"
> standard is. If there has been some explicit standardisation since
> those papers
> were published, I'd be interested in a pointer to that standard and
> its rationale.

I'm going to publish a real simple java reference program and some  
docs

to go with it and a program to "test" it for black box conformance.
(Actually, it will test 2 or more and compare them.)   I would like to
get someone who writes better than I do to write up the standard in  
less

casual language but it goes something like this:

  1. A complete game playing program so it can also be tested in real
games.

  2. Play uniformly random moves except to 1 pt eyes and avoiding  
simple

ko.  When a move is otherwise not possible,  pass.

  3.  Playout ends after 2 consecutive pass moves (1 for each side.)

  4.  1 pt 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.  In the playouts, statistics are taken on moves played during the
playouts.   If the move is played FIRST (during the playout) by the  
side

to move it is one data point and the win loss record is maintained.

  6.  The move with the highest statistical win rate is the one  
selected

for move in the actual game.

  7.  In the case of moves with even scores a random selection is  
made.


  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 as a further optional test your
program should score close to 50% against other "properly implemented"
programs.

 10.  Suicide not allowed in the playouts or in games it plays.

 11.  When selecting moves to play in the actual game (not playouts)
superko is checked and forbidden.

 12.  If a move has NO STATS taken (which is highly unlikely unless  
you

do very few playouts) it is ignored for move selection.

Did I miss anything?  I would like to get feedback and agreement on
this.

Please note - a few GTP commands will be added in order to instrument
any conforming programs.   Haven't figured those out yet,  but it will
be designed so that it can report number of nodes, number of playouts,
average score of playouts, etc.   So the tester may set up some  
position

and a ko,  and ask for statistics based on the number of specified
playouts.

- Don








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

McCain or Obama? Stay updated on coverage of the Presidential race  
while you browse - Download Now!

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

Re: [computer-go] simple MC reference bot and specification

2008-10-11 Thread dhillismail



 11.  When selecting moves to play in the actual game (not playouts)
superko is checked and forbidden.


positional superko (as opposed to situational superko).

- Dave Hillis


-Original Message-
From: Don Dailey <[EMAIL PROTECTED]>
To: computer-go 
Sent: Sat, 11 Oct 2008 9:11 am
Subject: [computer-go] simple MC reference bot and specification



On Sat, 2008-10-11 at 13:33 +0100, Claus Reinke wrote:
> I have a rough idea of what that might be. And I suspect that keeping
> this
> "de facto standard" implicit has been hiding some actual differences
> in what
> different people think that standard is. Some of my questions arise
> from trying
> to pin down where and why different authors have different ideas of
> what "the"
> standard is. If there has been some explicit standardisation since
> those papers
> were published, I'd be interested in a pointer to that standard and
> its rationale.

I'm going to publish a real simple java reference program and some docs
to go with it and a program to "test" it for black box conformance.
(Actually, it will test 2 or more and compare them.)   I would like to
get someone who writes better than I do to write up the standard in less
casual language but it goes something like this:

  1. A complete game playing program so it can also be tested in real
games.

  2. Play uniformly random moves except to 1 pt eyes and avoiding simple
ko.  When a move is otherwise not possible,  pass.

  3.  Playout ends after 2 consecutive pass moves (1 for each side.)

  4.  1 pt 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.  In the playouts, statistics are taken on moves played during the
playouts.   If the move is played FIRST (during the playout) by the side
to move it is one data point and the win loss record is maintained.  

  6.  The move with the highest statistical win rate is the one selected
for move in the actual game.

  7.  In the case of moves with even scores a random selection is made. 

  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 as a further optional test your
program should score close to 50% against other "properly implemented"
programs. 

 10.  Suicide not allowed in the playouts or in games it plays.  
 
 11.  When selecting moves to play in the actual game (not playouts)
superko is checked and forbidden.

 12.  If a move has NO STATS taken (which is highly unlikely unless you
do very few playouts) it is ignored for move selection.  

Did I miss anything?  I would like to get feedback and agreement on
this.   
 
Please note - a few GTP commands will be added in order to instrument
any conforming programs.   Haven't figured those out yet,  but it will
be designed so that it can report number of nodes, number of playouts,
average score of playouts, etc.   So the tester may set up some position
and a ko,  and ask for statistics based on the number of specified
playouts.

- Don







 



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

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

RE: [computer-go] simple MC reference bot and specification

2008-10-11 Thread Don Dailey
On Sat, 2008-10-11 at 09:13 -0700, David Fotland wrote:
> If you don't have sueperko, I think you need a maximum moves stopping
> criteria too.

Yes, I just thought of that myself before I even saw your email and I
sent out an email addendum.

Superko would of course solve the problem,  but I'm trying to nail down,
as much as reasonably possible, the most generic "defacto standard"
that most of us are already using for the real simple bots.   And from
what I've read most people are not using PSK in their play-outs - at
least not their light play-outs.  

Do you have some good ideas for move stopping criteria that we might
consider?   This is something that is not really standardized and I
think each implementation is different so I want to find something
really simple to implement.   My idea is to either "stop after N 1 stone
captures" or stop after N moves played where N is a function of the
boardsize.  

- Don








> 
> > -Original Message-
> > From: [EMAIL PROTECTED] [mailto:computer-go-
> > [EMAIL PROTECTED] On Behalf Of Don Dailey
> > Sent: Saturday, October 11, 2008 6:11 AM
> > To: computer-go
> > Subject: [computer-go] simple MC reference bot and specification
> > 
> > On Sat, 2008-10-11 at 13:33 +0100, Claus Reinke wrote:
> > > I have a rough idea of what that might be. And I suspect that keeping
> > > this "de facto standard" implicit has been hiding some actual
> > > differences in what different people think that standard is. Some of
> > > my questions arise from trying to pin down where and why different
> > > authors have different ideas of what "the"
> > > standard is. If there has been some explicit standardisation since
> > > those papers were published, I'd be interested in a pointer to that
> > > standard and its rationale.
> > 
> > I'm going to publish a real simple java reference program and some docs
> > to go with it and a program to "test" it for black box conformance.
> > (Actually, it will test 2 or more and compare them.)   I would like to
> > get someone who writes better than I do to write up the standard in
> > less casual language but it goes something like this:
> > 
> >   1. A complete game playing program so it can also be tested in real
> > games.
> > 
> >   2. Play uniformly random moves except to 1 pt eyes and avoiding
> > simple ko.  When a move is otherwise not possible,  pass.
> > 
> >   3.  Playout ends after 2 consecutive pass moves (1 for each side.)
> > 
> >   4.  1 pt 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.  In the playouts, statistics are taken on moves played during the
> > playouts.   If the move is played FIRST (during the playout) by the
> > side
> > to move it is one data point and the win loss record is maintained.
> > 
> >   6.  The move with the highest statistical win rate is the one
> > selected for move in the actual game.
> > 
> >   7.  In the case of moves with even scores a random selection is made.
> > 
> >   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 as a further optional test your
> > program should score close to 50% against other "properly implemented"
> > programs.
> > 
> >  10.  Suicide not allowed in the playouts or in games it plays.
> > 
> >  11.  When selecting moves to play in the actual game (not playouts)
> > superko is checked and forbidden.
> > 
> >  12.  If a move has NO STATS taken (which is highly unlikely unless you
> > do very few playouts) it is ignored for move selection.
> > 
> > Did I miss anything?  I would like to get feedback and agreement on
> > this.
> > 
> > Please note - a few GTP commands will be added in order to instrument
> > any conforming programs.   Haven't figured those out yet,  but it will
> > be designed so that it can report number of nodes, number of playouts,
> > average score of playouts, etc.   So the tester may set up some
> > position
> > and a ko,  and ask for statistics based on the number of specified
> > playouts.
> > 
> > - Don
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> 


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/

Re: [computer-go] simple MC reference bot and specification

2008-10-11 Thread Zach Wegner
On Sat, Oct 11, 2008 at 8:11 AM, Don Dailey <[EMAIL PROTECTED]> wrote:
>
> I'm going to publish a real simple java reference program and some docs
> to go with it and a program to "test" it for black box conformance.
> (Actually, it will test 2 or more and compare them.)   I would like to
> get someone who writes better than I do to write up the standard in less
> casual language but it goes something like this:
>
>  1. A complete game playing program so it can also be tested in real
> games.
>
>  2. Play uniformly random moves except to 1 pt eyes and avoiding simple
> ko.  When a move is otherwise not possible,  pass.
>
>  3.  Playout ends after 2 consecutive pass moves (1 for each side.)
>
>  4.  1 pt 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.  In the playouts, statistics are taken on moves played during the
> playouts.   If the move is played FIRST (during the playout) by the side
> to move it is one data point and the win loss record is maintained.

Wouldn't it make more sense to run an equal number of playouts for
each root move?

>
>  6.  The move with the highest statistical win rate is the one selected
> for move in the actual game.
>
>  7.  In the case of moves with even scores a random selection is made.

I think maybe this should be something deterministic.

>
>  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 as a further optional test your
> program should score close to 50% against other "properly implemented"
> programs.

This is too vague IMO--I think specifying the RNG would be better. I
like Marsaglia's--that's what I use now.

>
>  10.  Suicide not allowed in the playouts or in games it plays.
>
>  11.  When selecting moves to play in the actual game (not playouts)
> superko is checked and forbidden.

That's fine for this spec, but I don't do this and don't plan on it.

>
>  12.  If a move has NO STATS taken (which is highly unlikely unless you
> do very few playouts) it is ignored for move selection.
>
> Did I miss anything?  I would like to get feedback and agreement on
> this.
>
> Please note - a few GTP commands will be added in order to instrument
> any conforming programs.   Haven't figured those out yet,  but it will
> be designed so that it can report number of nodes, number of playouts,
> average score of playouts, etc.   So the tester may set up some position
> and a ko,  and ask for statistics based on the number of specified
> playouts.
>
> - Don
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] simple MC reference bot and specification

2008-10-11 Thread Don Dailey
I found one specified issue that must be handled and requires an
additional specification.

What to do to limit the length of the playout games?   As was discussed
in the last couple of days or so there are possible cases with multiple
ko threats.   

Please not that the solution I am about to propose doesn't pretend to be
a perfect solution since this is just a benchmark (like th eye rule, it
isn't perfect) - but I think it does solve the problem.   My idea is
this:  Allow up to N consecutive 1 point captures and then automatically
terminate the game.So here is rule 13 in my list:

 13.  the play-outs terminate after the fifth consecutive 1 stone
capture.

If someone has a rationale for using a different number let's consider
it.   I picked 5 for no particular reason.   And yes, I know that this
might terminate games too early,  but the only problem I want to solve
is to prevent infinite games.   There is of course an argument for using
a much bigger number such as 10 or more - 5 single stone captures
doesn't prove any kind of ko situation.   But I prefer a very simple
termination rule that is trivial to implement to something anal and
complicated.   I don't want to scare anybody away from building this
benchmark.

Would that guarantee no infinite games?Is there a reason to use a
higher number than 5?   Should we have an even simpler termination rule
such as "no playout shall last more than BOARDSIZE * BOARDSIZE * 3
moves?"

In addition I think it's good to require that integer komi be allowed.  



- Don




On Sat, 2008-10-11 at 09:11 -0400, Don Dailey wrote:
> I'm going to publish a real simple java reference program and some
> docs
> to go with it and a program to "test" it for black box conformance.
> (Actually, it will test 2 or more and compare them.)   I would like to
> get someone who writes better than I do to write up the standard in
> less
> casual language but it goes something like this:
> 
>   1. A complete game playing program so it can also be tested in real
> games.
> 
>   2. Play uniformly random moves except to 1 pt eyes and avoiding
> simple
> ko.  When a move is otherwise not possible,  pass.
> 
>   3.  Playout ends after 2 consecutive pass moves (1 for each side.)
> 
>   4.  1 pt 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.  In the playouts, statistics are taken on moves played during the
> playouts.   If the move is played FIRST (during the playout) by the
> side
> to move it is one data point and the win loss record is maintained.  
> 
>   6.  The move with the highest statistical win rate is the one
> selected
> for move in the actual game.
> 
>   7.  In the case of moves with even scores a random selection is
> made. 
> 
>   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 as a further optional test your
> program should score close to 50% against other "properly implemented"
> programs. 
> 
>  10.  Suicide not allowed in the playouts or in games it plays.  
>  
>  11.  When selecting moves to play in the actual game (not playouts)
> superko is checked and forbidden.
> 
>  12.  If a move has NO STATS taken (which is highly unlikely unless
> you
> do very few playouts) it is ignored for move selection.  
> 
> Did I miss anything?  I would like to get feedback and agreement on
> this.   
>  
> Please note - a few GTP commands will be added in order to instrument
> any conforming programs.   Haven't figured those out yet,  but it will
> be designed so that it can report number of nodes, number of playouts,
> average score of playouts, etc.   So the tester may set up some
> position
> and a ko,  and ask for statistics based on the number of specified
> playouts.
> 
> - Don
> 


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/

RE: [computer-go] simple MC reference bot and specification

2008-10-11 Thread David Fotland
If you don't have sueperko, I think you need a maximum moves stopping
criteria too.

> -Original Message-
> From: [EMAIL PROTECTED] [mailto:computer-go-
> [EMAIL PROTECTED] On Behalf Of Don Dailey
> Sent: Saturday, October 11, 2008 6:11 AM
> To: computer-go
> Subject: [computer-go] simple MC reference bot and specification
> 
> On Sat, 2008-10-11 at 13:33 +0100, Claus Reinke wrote:
> > I have a rough idea of what that might be. And I suspect that keeping
> > this "de facto standard" implicit has been hiding some actual
> > differences in what different people think that standard is. Some of
> > my questions arise from trying to pin down where and why different
> > authors have different ideas of what "the"
> > standard is. If there has been some explicit standardisation since
> > those papers were published, I'd be interested in a pointer to that
> > standard and its rationale.
> 
> I'm going to publish a real simple java reference program and some docs
> to go with it and a program to "test" it for black box conformance.
> (Actually, it will test 2 or more and compare them.)   I would like to
> get someone who writes better than I do to write up the standard in
> less casual language but it goes something like this:
> 
>   1. A complete game playing program so it can also be tested in real
> games.
> 
>   2. Play uniformly random moves except to 1 pt eyes and avoiding
> simple ko.  When a move is otherwise not possible,  pass.
> 
>   3.  Playout ends after 2 consecutive pass moves (1 for each side.)
> 
>   4.  1 pt 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.  In the playouts, statistics are taken on moves played during the
> playouts.   If the move is played FIRST (during the playout) by the
> side
> to move it is one data point and the win loss record is maintained.
> 
>   6.  The move with the highest statistical win rate is the one
> selected for move in the actual game.
> 
>   7.  In the case of moves with even scores a random selection is made.
> 
>   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 as a further optional test your
> program should score close to 50% against other "properly implemented"
> programs.
> 
>  10.  Suicide not allowed in the playouts or in games it plays.
> 
>  11.  When selecting moves to play in the actual game (not playouts)
> superko is checked and forbidden.
> 
>  12.  If a move has NO STATS taken (which is highly unlikely unless you
> do very few playouts) it is ignored for move selection.
> 
> Did I miss anything?  I would like to get feedback and agreement on
> this.
> 
> Please note - a few GTP commands will be added in order to instrument
> any conforming programs.   Haven't figured those out yet,  but it will
> be designed so that it can report number of nodes, number of playouts,
> average score of playouts, etc.   So the tester may set up some
> position
> and a ko,  and ask for statistics based on the number of specified
> playouts.
> 
> - Don
> 
> 
> 
> 
> 
> 
> 
> 

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