Re: [computer-go] (early) termination of random playouts?

2008-10-09 Thread Michael Williams

Claus Reinke wrote:

- the only thing that guarantees termination of random playouts (with or
without dfyoe) is the positional superko rule: no whole-board repetitions
allowed. Waiting for this to kick in without taking other measures is not
an option: it takes too long and the results don't tell us much about the
value of the initial position.


While this may be true, I don't think anyone uses the superko rule in the playouts.  It would slow them down too much and there would probably not be much 
benefit beyond the theoretical.


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


Re: [computer-go] (early) termination of random playouts?

2008-10-09 Thread Magnus Persson
Valkyria does, because is superheavy anyway! A lot of weird stuff can  
happen near the end of the game against programs that play randomly. I  
think I implemented it because I had to to make it play correctly in  
some positions. But it was a long time so I do not remember the details.


-Magnus

Quoting Michael Williams [EMAIL PROTECTED]:



While this may be true, I don't think anyone uses the superko rule in
the playouts.  It would slow them down too much and there would
probably not be much benefit beyond the theoretical.




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


Re: [computer-go] (early) termination of random playouts?

2008-10-09 Thread Don Dailey
Claus,

I think you have summarized things better than I am going to,  but here
goes anyway:

If the play-outs are uniformly random and you have eye rule, it is
guaranteed to terminate as long as you use simple ko.  It might even be
guaranteed to terminate if you don't, I don't know.  Although it's
guaranteed to terminate, it could be arbitrarily long (millions or
billions of moves) but that is not a practical consideration.   The odds
of it not terminating within a couple of hundred moves at 9x9 is
probably extremely low as long as you have eye and simple KO and do not
allow suicide.

If it's not uniformly random, all bets are off. 

If you want to be paranoid, you can limit the number of moves but it's
not necessary.   Something like number of empty points times some
constant such as 2 or 3 might be good here. 

There are several eye rules used, but I believe the vast majority of us
use the same one.   It is stated like this:
  
   1. An empty point surrounded by friendly stones.
   2. If edge,  no diagonal enemies allowed.
   3. If NOT edge, only 1 diagonal enemy allowed.

Some programs do these things in addition to simple ko, no suicide
allowed and eye rule:

  1.  Limit the number of moves. (not needed)
  2.  Stop game if one side has many more stones than the other.
  3.  Detect superko  (a waste of time)
  4.  Let pass move be one of the random moves tried. (bad) 


You asked if people compared the eye rules.  This has been discussed on
this group before and the short answer seems to be that it probably does
not make too much of a difference if it's reasonably sound.   You might
get different opinions on this.

- Don
  




On Thu, 2008-10-09 at 13:31 +0100, Claus Reinke wrote:
 Hi again, with yet another question:-)
 
 Could someone please summarize the state-of-the art wrt the various ways
 of limiting random playouts, and the their consequences?
 
 There are several variations on the don't fill your own eyes (dfyoe) 
 approach,
 but the way this approach is often described tends to confuse me (eg, when
 someone seems to claim that there is exactly one correct way of implementing
 this, or when someone seems to claim that this guarantees termination, or when
 the resulting biases are not even mentioned, let alone discussed or compared
 against biases in alternative implementations, etc.).
 
 I'll try to summarize my current understanding, in the hope that others will
 fill in the missing pieces or point out misunderstandings:
 
 - the only thing that guarantees termination of random playouts (with or
 without dfyoe) is the positional superko rule: no whole-board repetitions
 allowed. Waiting for this to kick in without taking other measures is not
 an option: it takes too long and the results don't tell us much about the
 value of the initial position.
 
 - dfyoe variations share some motivations:
 - reduce the likelihood of unnaturally long playouts (but not to zero)
 - try to avoid disastrous endgame-situation mistakes that random playouts
 are otherwise prone to make (and that eliminate the value of playouts)
 - try to be simple (efficiently implementable), with low (but non-zero)
 probability of introducing errors (filling in when not filling in 
 would be
 better, or vice versa)
 - aim to steer playouts to easily counted terminal positions that bear a
 quantifiable relationship to the estimated value of the initial 
 position
 (perhaps a more suggestive name would be random legal fill-ins?)
 
 - some variations of dfyoe have been reported (are there others?):
 
 [Bruegmann; Monte Carlo Go] (Gobble):
 The computer only passes if either no legal move is available or all
 legal moves reduce the eye space of one of its groups from two to
 one. The (over-) simplification lies in the definition of an eye, 
 which
 is defined to be a field whose direct neighbors are all of the same
 color and whose diagonal neighbors contain no more than 1 stone
 of the opposite color (0 for border and corner fields). The reader
 may convince himself that this definition of an eye is correct for
 most situations, excluding sekis.
 .. the rule is necessary for technical reasons, and even though (if
 passing was implemented) the program could figure out the rule by
 itself, that would be very inefficient ..
 
 [Bouzy,Helmstetter; Monte-Carlo Go Developments] (Olga/Oleg)
 Without this rule, the random player would never make living groups
 and the games would never end. There are different ways to define
 eyes as precisely as possible with domain-dependent knowledge
 such as Fotland (2002) and Chen and Chen (1999). Our definitions
 are designed to be integrated into a random Go-playing program;
 they are simple and fast but not correct in some cases.
 In OLGA, an eye is an empty intersection 

Re: [computer-go] (early) termination of random playouts?

2008-10-09 Thread Michael Williams

I stand corrected.  Do you know if you were able to measure a strength increase?


Magnus Persson wrote:
Valkyria does, because is superheavy anyway! A lot of weird stuff can 
happen near the end of the game against programs that play randomly. I 
think I implemented it because I had to to make it play correctly in 
some positions. But it was a long time so I do not remember the details.


-Magnus

Quoting Michael Williams [EMAIL PROTECTED]:



While this may be true, I don't think anyone uses the superko rule in
the playouts.  It would slow them down too much and there would
probably not be much benefit beyond the theoretical.




___
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] (early) termination of random playouts?

2008-10-09 Thread Magnus Persson
No, if there was a serious problem it would perhaps only happen for 1  
in 1000 games. So it would be pointless trying to measure it. And some  
of these problems only happens against extremely weak programs. At  
least in my experience.


-Magnus

Quoting Michael Williams [EMAIL PROTECTED]:


I stand corrected.  Do you know if you were able to measure a strength
increase?




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


Re: [computer-go] (early) termination of random playouts?

2008-10-09 Thread Álvaro Begué
On Thu, Oct 9, 2008 at 9:26 AM, Don Dailey [EMAIL PROTECTED] wrote:
 If you use zobrist hashing, it is probably not ridiculously slow to do
 this.   And if your play-outs are pretty heavy anyway,  the cost will be
 negligible as you say.

Has anyone tried to use a Bloom filter (
http://en.wikipedia.org/wiki/Bloom_filter ) for this? It would very
quickly tell you that most positions are not repetitions, and leave
only a tiny fraction of positions to test in a deterministic way.

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


Re: [computer-go] (early) termination of random playouts?

2008-10-09 Thread Don Dailey
Álvaro,

I never tried it, but I once considered doing it.  It's an intriguing
idea.   Since speed is all important here I would probably try just a
single probe version (bloom filter with k = 1 where k is the number of
hash functions.)

You have to clear the filter before each playout of course, but the
filter could be quite tiny, perhaps 256 - 1024 bytes for 9x9.One
would of course measure the trade-offs and also test k=2, etc.My
intuition is that k=1 is best for speed but it should be tested.  

There is a cost involved in just maintaining a Zobrist hash key and I
wonder if this is the greatest cost anyway?  Even with the bloom filter
you have a lot of logic on top of an extremely simple move maker so I
never got motivated enough to try this.  Plus, I didn't feel that it
would actually make the program stronger.  

In my programs,  I don't maintain a key or do PSK in the playouts.  I
have 2 versions of everything involving move generation.  One make()
function tests for superko and builds a key, the other tries to be fast
and cheats.  

- Don



On Thu, 2008-10-09 at 09:36 -0400, Álvaro Begué wrote:
 On Thu, Oct 9, 2008 at 9:26 AM, Don Dailey [EMAIL PROTECTED] wrote:
  If you use zobrist hashing, it is probably not ridiculously slow to do
  this.   And if your play-outs are pretty heavy anyway,  the cost will be
  negligible as you say.
 
 Has anyone tried to use a Bloom filter (
 http://en.wikipedia.org/wiki/Bloom_filter ) for this? It would very
 quickly tell you that most positions are not repetitions, and leave
 only a tiny fraction of positions to test in a deterministic way.
 
 Álvaro.
 ___
 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] (early) termination of random playouts?

2008-10-09 Thread Don Dailey
If you use zobrist hashing, it is probably not ridiculously slow to do
this.   And if your play-outs are pretty heavy anyway,  the cost will be
negligible as you say.

I remember John Stanback, the Zarkov chess programmer used to say that
he could add anything he wanted to the evaluation function because it
was so slow already.   He had basically committed to heavy evaluation
and it worked for him,  the program was quite strong at the time.

- Don



On Thu, 2008-10-09 at 15:12 +0200, Magnus Persson wrote:
 Valkyria does, because is superheavy anyway! A lot of weird stuff can  
 happen near the end of the game against programs that play randomly. I  
 think I implemented it because I had to to make it play correctly in  
 some positions. But it was a long time so I do not remember the details.
 
 -Magnus
 
 Quoting Michael Williams [EMAIL PROTECTED]:
 
 
  While this may be true, I don't think anyone uses the superko rule in
  the playouts.  It would slow them down too much and there would
  probably not be much benefit beyond the theoretical.
 
 
 
 ___
 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] (early) termination of random playouts?

2008-10-09 Thread Álvaro Begué
I wrote a simple Bloom filter and I tried feeding it a sequence of
random numbers (which is what Zobrist keys would look like if there
are no repetitions), to see how many false positives I would get, with
different values for k. I tried using 128 bytes, 256 bytes and 512
bytes. In every case. It looks like k=2 is certainly better than k=1,
and overall I think 512 bytes with k=2 is probably what I would use
(probability of a false positive is about .01 after 200 moves, and
about .04 after 400 moves).

If you are interested in the details, I have some code and some graphs.

Álvaro.


On Thu, Oct 9, 2008 at 9:51 AM, Don Dailey [EMAIL PROTECTED] wrote:
 Álvaro,

 I never tried it, but I once considered doing it.  It's an intriguing
 idea.   Since speed is all important here I would probably try just a
 single probe version (bloom filter with k = 1 where k is the number of
 hash functions.)

 You have to clear the filter before each playout of course, but the
 filter could be quite tiny, perhaps 256 - 1024 bytes for 9x9.One
 would of course measure the trade-offs and also test k=2, etc.My
 intuition is that k=1 is best for speed but it should be tested.

 There is a cost involved in just maintaining a Zobrist hash key and I
 wonder if this is the greatest cost anyway?  Even with the bloom filter
 you have a lot of logic on top of an extremely simple move maker so I
 never got motivated enough to try this.  Plus, I didn't feel that it
 would actually make the program stronger.

 In my programs,  I don't maintain a key or do PSK in the playouts.  I
 have 2 versions of everything involving move generation.  One make()
 function tests for superko and builds a key, the other tries to be fast
 and cheats.

 - Don



 On Thu, 2008-10-09 at 09:36 -0400, Álvaro Begué wrote:
 On Thu, Oct 9, 2008 at 9:26 AM, Don Dailey [EMAIL PROTECTED] wrote:
  If you use zobrist hashing, it is probably not ridiculously slow to do
  this.   And if your play-outs are pretty heavy anyway,  the cost will be
  negligible as you say.

 Has anyone tried to use a Bloom filter (
 http://en.wikipedia.org/wiki/Bloom_filter ) for this? It would very
 quickly tell you that most positions are not repetitions, and leave
 only a tiny fraction of positions to test in a deterministic way.

 Álvaro.
 ___
 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/

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


Re: [computer-go] (early) termination of random playouts?

2008-10-09 Thread Jason House
You are incorrect that the following heuristics in random games lead  
to finite game length:

* no eye filling
* no suicide
* no simple ko violations

Consider two eyeless chains with 3 ko's connecting them... Two taken  
by black and it's white's move. Filling the one ko it has is suicide.  
It must take a ko. On black's turn, it can't fill a ko due to suicide  
and must take a ko. The cycle repeats infinitely.


Yes, this is a real bug found in a real CGOS game... I opted for the  
game length limit so my bot could remain online 24/7


Sent from my iPhone

On Oct 9, 2008, at 9:15 AM, Don Dailey [EMAIL PROTECTED] wrote:


Claus,

I think you have summarized things better than I am going to,  but  
here

goes anyway:

If the play-outs are uniformly random and you have eye rule, it is
guaranteed to terminate as long as you use simple ko.  It might even  
be

guaranteed to terminate if you don't, I don't know.  Although it's
guaranteed to terminate, it could be arbitrarily long (millions or
billions of moves) but that is not a practical consideration.   The  
odds

of it not terminating within a couple of hundred moves at 9x9 is
probably extremely low as long as you have eye and simple KO and do  
not

allow suicide.

If it's not uniformly random, all bets are off.

If you want to be paranoid, you can limit the number of moves but it's
not necessary.   Something like number of empty points times some
constant such as 2 or 3 might be good here.

There are several eye rules used, but I believe the vast majority of  
us

use the same one.   It is stated like this:

  1. An empty point surrounded by friendly stones.
  2. If edge,  no diagonal enemies allowed.
  3. If NOT edge, only 1 diagonal enemy allowed.

Some programs do these things in addition to simple ko, no suicide
allowed and eye rule:

 1.  Limit the number of moves. (not needed)
 2.  Stop game if one side has many more stones than the other.
 3.  Detect superko  (a waste of time)
 4.  Let pass move be one of the random moves tried. (bad)


You asked if people compared the eye rules.  This has been discussed  
on
this group before and the short answer seems to be that it probably  
does
not make too much of a difference if it's reasonably sound.   You  
might

get different opinions on this.

- Don





On Thu, 2008-10-09 at 13:31 +0100, Claus Reinke wrote:

Hi again, with yet another question:-)

Could someone please summarize the state-of-the art wrt the various  
ways

of limiting random playouts, and the their consequences?

There are several variations on the don't fill your own  
eyes (dfyoe) approach,
but the way this approach is often described tends to confuse me  
(eg, when
someone seems to claim that there is exactly one correct way of  
implementing
this, or when someone seems to claim that this guarantees  
termination, or when
the resulting biases are not even mentioned, let alone discussed or  
compared

against biases in alternative implementations, etc.).

I'll try to summarize my current understanding, in the hope that  
others will

fill in the missing pieces or point out misunderstandings:

- the only thing that guarantees termination of random playouts  
(with or
   without dfyoe) is the positional superko rule: no whole-board  
repetitions
   allowed. Waiting for this to kick in without taking other  
measures is not
   an option: it takes too long and the results don't tell us much  
about the

   value of the initial position.

- dfyoe variations share some motivations:
   - reduce the likelihood of unnaturally long playouts (but not to  
zero)
   - try to avoid disastrous endgame-situation mistakes that random  
playouts
   are otherwise prone to make (and that eliminate the value of  
playouts)
   - try to be simple (efficiently implementable), with low (but  
non-zero)
   probability of introducing errors (filling in when not  
filling in would be

   better, or vice versa)
   - aim to steer playouts to easily counted terminal positions  
that bear a
   quantifiable relationship to the estimated value of the  
initial position
   (perhaps a more suggestive name would be random legal fill- 
ins?)


- some variations of dfyoe have been reported (are there others?):

   [Bruegmann; Monte Carlo Go] (Gobble):
   The computer only passes if either no legal move is  
available or all
   legal moves reduce the eye space of one of its groups from  
two to
   one. The (over-) simplification lies in the definition of an  
eye, which
   is defined to be a field whose direct neighbors are all of  
the same
   color and whose diagonal neighbors contain no more than 1  
stone
   of the opposite color (0 for border and corner fields). The  
reader
   may convince himself that this definition of an eye is  
correct for

   most situations, excluding sekis.
   .. the rule is necessary for technical reasons, and even  
though (if
   passing was implemented) the program could figure 

Re: [computer-go] (early) termination of random playouts?

2008-10-09 Thread Don Dailey
You might be right.   I have a liberal game length limit on my play-outs
so I didn't notice this.

Another game limiting rule could be something based on counting the
number of consecutive 1 stone captures and terminating once this goes
beyond some reasonable limit such as 10.Would infinite games still
be possible with this rule?

- Don



On Thu, 2008-10-09 at 10:25 -0400, Jason House wrote:
 You are incorrect that the following heuristics in random games lead  
 to finite game length:
 * no eye filling
 * no suicide
 * no simple ko violations
 
 Consider two eyeless chains with 3 ko's connecting them... Two taken  
 by black and it's white's move. Filling the one ko it has is suicide.  
 It must take a ko. On black's turn, it can't fill a ko due to suicide  
 and must take a ko. The cycle repeats infinitely.
 
 Yes, this is a real bug found in a real CGOS game... I opted for the  
 game length limit so my bot could remain online 24/7
 
 Sent from my iPhone
 
 On Oct 9, 2008, at 9:15 AM, Don Dailey [EMAIL PROTECTED] wrote:
 
  Claus,
 
  I think you have summarized things better than I am going to,  but  
  here
  goes anyway:
 
  If the play-outs are uniformly random and you have eye rule, it is
  guaranteed to terminate as long as you use simple ko.  It might even  
  be
  guaranteed to terminate if you don't, I don't know.  Although it's
  guaranteed to terminate, it could be arbitrarily long (millions or
  billions of moves) but that is not a practical consideration.   The  
  odds
  of it not terminating within a couple of hundred moves at 9x9 is
  probably extremely low as long as you have eye and simple KO and do  
  not
  allow suicide.
 
  If it's not uniformly random, all bets are off.
 
  If you want to be paranoid, you can limit the number of moves but it's
  not necessary.   Something like number of empty points times some
  constant such as 2 or 3 might be good here.
 
  There are several eye rules used, but I believe the vast majority of  
  us
  use the same one.   It is stated like this:
 
1. An empty point surrounded by friendly stones.
2. If edge,  no diagonal enemies allowed.
3. If NOT edge, only 1 diagonal enemy allowed.
 
  Some programs do these things in addition to simple ko, no suicide
  allowed and eye rule:
 
   1.  Limit the number of moves. (not needed)
   2.  Stop game if one side has many more stones than the other.
   3.  Detect superko  (a waste of time)
   4.  Let pass move be one of the random moves tried. (bad)
 
 
  You asked if people compared the eye rules.  This has been discussed  
  on
  this group before and the short answer seems to be that it probably  
  does
  not make too much of a difference if it's reasonably sound.   You  
  might
  get different opinions on this.
 
  - Don
 
 
 
 
 
  On Thu, 2008-10-09 at 13:31 +0100, Claus Reinke wrote:
  Hi again, with yet another question:-)
 
  Could someone please summarize the state-of-the art wrt the various  
  ways
  of limiting random playouts, and the their consequences?
 
  There are several variations on the don't fill your own  
  eyes (dfyoe) approach,
  but the way this approach is often described tends to confuse me  
  (eg, when
  someone seems to claim that there is exactly one correct way of  
  implementing
  this, or when someone seems to claim that this guarantees  
  termination, or when
  the resulting biases are not even mentioned, let alone discussed or  
  compared
  against biases in alternative implementations, etc.).
 
  I'll try to summarize my current understanding, in the hope that  
  others will
  fill in the missing pieces or point out misunderstandings:
 
  - the only thing that guarantees termination of random playouts  
  (with or
 without dfyoe) is the positional superko rule: no whole-board  
  repetitions
 allowed. Waiting for this to kick in without taking other  
  measures is not
 an option: it takes too long and the results don't tell us much  
  about the
 value of the initial position.
 
  - dfyoe variations share some motivations:
 - reduce the likelihood of unnaturally long playouts (but not to  
  zero)
 - try to avoid disastrous endgame-situation mistakes that random  
  playouts
 are otherwise prone to make (and that eliminate the value of  
  playouts)
 - try to be simple (efficiently implementable), with low (but  
  non-zero)
 probability of introducing errors (filling in when not  
  filling in would be
 better, or vice versa)
 - aim to steer playouts to easily counted terminal positions  
  that bear a
 quantifiable relationship to the estimated value of the  
  initial position
 (perhaps a more suggestive name would be random legal fill- 
  ins?)
 
  - some variations of dfyoe have been reported (are there others?):
 
 [Bruegmann; Monte Carlo Go] (Gobble):
 The computer only passes if either no legal move is  
  available or all
 legal moves reduce the 

Re: [computer-go] (early) termination of random playouts?

2008-10-09 Thread Erik van der Werf
Sure, some long cycles have multi-stone captures.

Erik


On Thu, Oct 9, 2008 at 4:39 PM, Don Dailey [EMAIL PROTECTED] wrote:
 You might be right.   I have a liberal game length limit on my play-outs
 so I didn't notice this.

 Another game limiting rule could be something based on counting the
 number of consecutive 1 stone captures and terminating once this goes
 beyond some reasonable limit such as 10.Would infinite games still
 be possible with this rule?

 - Don



 On Thu, 2008-10-09 at 10:25 -0400, Jason House wrote:
 You are incorrect that the following heuristics in random games lead
 to finite game length:
 * no eye filling
 * no suicide
 * no simple ko violations

 Consider two eyeless chains with 3 ko's connecting them... Two taken
 by black and it's white's move. Filling the one ko it has is suicide.
 It must take a ko. On black's turn, it can't fill a ko due to suicide
 and must take a ko. The cycle repeats infinitely.

 Yes, this is a real bug found in a real CGOS game... I opted for the
 game length limit so my bot could remain online 24/7

 Sent from my iPhone

 On Oct 9, 2008, at 9:15 AM, Don Dailey [EMAIL PROTECTED] wrote:

  Claus,
 
  I think you have summarized things better than I am going to,  but
  here
  goes anyway:
 
  If the play-outs are uniformly random and you have eye rule, it is
  guaranteed to terminate as long as you use simple ko.  It might even
  be
  guaranteed to terminate if you don't, I don't know.  Although it's
  guaranteed to terminate, it could be arbitrarily long (millions or
  billions of moves) but that is not a practical consideration.   The
  odds
  of it not terminating within a couple of hundred moves at 9x9 is
  probably extremely low as long as you have eye and simple KO and do
  not
  allow suicide.
 
  If it's not uniformly random, all bets are off.
 
  If you want to be paranoid, you can limit the number of moves but it's
  not necessary.   Something like number of empty points times some
  constant such as 2 or 3 might be good here.
 
  There are several eye rules used, but I believe the vast majority of
  us
  use the same one.   It is stated like this:
 
1. An empty point surrounded by friendly stones.
2. If edge,  no diagonal enemies allowed.
3. If NOT edge, only 1 diagonal enemy allowed.
 
  Some programs do these things in addition to simple ko, no suicide
  allowed and eye rule:
 
   1.  Limit the number of moves. (not needed)
   2.  Stop game if one side has many more stones than the other.
   3.  Detect superko  (a waste of time)
   4.  Let pass move be one of the random moves tried. (bad)
 
 
  You asked if people compared the eye rules.  This has been discussed
  on
  this group before and the short answer seems to be that it probably
  does
  not make too much of a difference if it's reasonably sound.   You
  might
  get different opinions on this.
 
  - Don
 
 
 
 
 
  On Thu, 2008-10-09 at 13:31 +0100, Claus Reinke wrote:
  Hi again, with yet another question:-)
 
  Could someone please summarize the state-of-the art wrt the various
  ways
  of limiting random playouts, and the their consequences?
 
  There are several variations on the don't fill your own
  eyes (dfyoe) approach,
  but the way this approach is often described tends to confuse me
  (eg, when
  someone seems to claim that there is exactly one correct way of
  implementing
  this, or when someone seems to claim that this guarantees
  termination, or when
  the resulting biases are not even mentioned, let alone discussed or
  compared
  against biases in alternative implementations, etc.).
 
  I'll try to summarize my current understanding, in the hope that
  others will
  fill in the missing pieces or point out misunderstandings:
 
  - the only thing that guarantees termination of random playouts
  (with or
 without dfyoe) is the positional superko rule: no whole-board
  repetitions
 allowed. Waiting for this to kick in without taking other
  measures is not
 an option: it takes too long and the results don't tell us much
  about the
 value of the initial position.
 
  - dfyoe variations share some motivations:
 - reduce the likelihood of unnaturally long playouts (but not to
  zero)
 - try to avoid disastrous endgame-situation mistakes that random
  playouts
 are otherwise prone to make (and that eliminate the value of
  playouts)
 - try to be simple (efficiently implementable), with low (but
  non-zero)
 probability of introducing errors (filling in when not
  filling in would be
 better, or vice versa)
 - aim to steer playouts to easily counted terminal positions
  that bear a
 quantifiable relationship to the estimated value of the
  initial position
 (perhaps a more suggestive name would be random legal fill-
  ins?)
 
  - some variations of dfyoe have been reported (are there others?):
 
 [Bruegmann; Monte Carlo Go] (Gobble):
 The computer only passes if either no 

Re: [computer-go] (early) termination of random playouts?

2008-10-09 Thread Jason House
On Oct 9, 2008, at 10:41 AM, Erik van der Werf [EMAIL PROTECTED] 
 wrote:



Sure, some long cycles have multi-stone captures.


Can you provide an example? When I've thought about multi-stone  
captured before, I was unable to create a scenario that lead to  
infinite _random_ games. Many situations resolve themselves, even if  
it's a stupid result.


Of course, a perfect heuristic for random games can be fragile.  
Heavier playouts may avoid certain moves that would allow things to  
work out on their own.







Erik


On Thu, Oct 9, 2008 at 4:39 PM, Don Dailey [EMAIL PROTECTED] wrote:
You might be right.   I have a liberal game length limit on my play- 
outs

so I didn't notice this.

Another game limiting rule could be something based on counting the
number of consecutive 1 stone captures and terminating once this goes
beyond some reasonable limit such as 10.Would infinite games  
still

be possible with this rule?

- Don



On Thu, 2008-10-09 at 10:25 -0400, Jason House wrote:

You are incorrect that the following heuristics in random games lead
to finite game length:
* no eye filling
* no suicide
* no simple ko violations

Consider two eyeless chains with 3 ko's connecting them... Two taken
by black and it's white's move. Filling the one ko it has is  
suicide.
It must take a ko. On black's turn, it can't fill a ko due to  
suicide

and must take a ko. The cycle repeats infinitely.

Yes, this is a real bug found in a real CGOS game... I opted for the
game length limit so my bot could remain online 24/7

Sent from my iPhone

On Oct 9, 2008, at 9:15 AM, Don Dailey [EMAIL PROTECTED] wrote:


Claus,

I think you have summarized things better than I am going to,  but
here
goes anyway:

If the play-outs are uniformly random and you have eye rule, it is
guaranteed to terminate as long as you use simple ko.  It might  
even

be
guaranteed to terminate if you don't, I don't know.  Although it's
guaranteed to terminate, it could be arbitrarily long (millions or
billions of moves) but that is not a practical consideration.   The
odds
of it not terminating within a couple of hundred moves at 9x9 is
probably extremely low as long as you have eye and simple KO and do
not
allow suicide.

If it's not uniformly random, all bets are off.

If you want to be paranoid, you can limit the number of moves but  
it's

not necessary.   Something like number of empty points times some
constant such as 2 or 3 might be good here.

There are several eye rules used, but I believe the vast majority  
of

us
use the same one.   It is stated like this:

 1. An empty point surrounded by friendly stones.
 2. If edge,  no diagonal enemies allowed.
 3. If NOT edge, only 1 diagonal enemy allowed.

Some programs do these things in addition to simple ko, no suicide
allowed and eye rule:

1.  Limit the number of moves. (not needed)
2.  Stop game if one side has many more stones than the other.
3.  Detect superko  (a waste of time)
4.  Let pass move be one of the random moves tried. (bad)


You asked if people compared the eye rules.  This has been  
discussed

on
this group before and the short answer seems to be that it probably
does
not make too much of a difference if it's reasonably sound.   You
might
get different opinions on this.

- Don





On Thu, 2008-10-09 at 13:31 +0100, Claus Reinke wrote:

Hi again, with yet another question:-)

Could someone please summarize the state-of-the art wrt the  
various

ways
of limiting random playouts, and the their consequences?

There are several variations on the don't fill your own
eyes (dfyoe) approach,
but the way this approach is often described tends to confuse me
(eg, when
someone seems to claim that there is exactly one correct way of
implementing
this, or when someone seems to claim that this guarantees
termination, or when
the resulting biases are not even mentioned, let alone discussed  
or

compared
against biases in alternative implementations, etc.).

I'll try to summarize my current understanding, in the hope that
others will
fill in the missing pieces or point out misunderstandings:

- the only thing that guarantees termination of random playouts
(with or
  without dfyoe) is the positional superko rule: no whole-board
repetitions
  allowed. Waiting for this to kick in without taking other
measures is not
  an option: it takes too long and the results don't tell us much
about the
  value of the initial position.

- dfyoe variations share some motivations:
  - reduce the likelihood of unnaturally long playouts (but not to
zero)
  - try to avoid disastrous endgame-situation mistakes that random
playouts
  are otherwise prone to make (and that eliminate the value of
playouts)
  - try to be simple (efficiently implementable), with low (but
non-zero)
  probability of introducing errors (filling in when not
filling in would be
  better, or vice versa)
  - aim to steer playouts to easily counted terminal positions
that bear a
  quantifiable relationship to the 

Re: [computer-go] (early) termination of random playouts?

2008-10-09 Thread Erik van der Werf
On Thu, Oct 9, 2008 at 5:03 PM, Jason House [EMAIL PROTECTED] wrote:
 On Oct 9, 2008, at 10:41 AM, Erik van der Werf [EMAIL PROTECTED]
 wrote:
 Sure, some long cycles have multi-stone captures.

 Can you provide an example?

http://www.cs.cmu.edu/~wjh/go/rules/bestiary.html
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] (early) termination of random playouts?

2008-10-09 Thread Don Dailey
On Thu, 2008-10-09 at 09:15 -0400, Michael Williams wrote:
 I stand corrected.  Do you know if you were able to measure a strength 
 increase?

I think you almost have to have either superko or some limiting device
in a program with heavy play-outs.   I don't know what Magnus does, but
Lazarus with heavy play-outs would crash until I artificially limited
the length of the play-outs.   I probably could have also solved this
with a superko rule. 

So whether it actually helps his program play better may not be very
important although I'm interested to see what he says on this.   Maybe
Lazarus would be a little stronger if I did this too?

- Don
 


 
 Magnus Persson wrote:
  Valkyria does, because is superheavy anyway! A lot of weird stuff can 
  happen near the end of the game against programs that play randomly. I 
  think I implemented it because I had to to make it play correctly in 
  some positions. But it was a long time so I do not remember the details.
  
  -Magnus
  
  Quoting Michael Williams [EMAIL PROTECTED]:
  
 
  While this may be true, I don't think anyone uses the superko rule in
  the playouts.  It would slow them down too much and there would
  probably not be much benefit beyond the theoretical.
  
  
  
  ___
  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
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] (early) termination of random playouts?

2008-10-09 Thread Jason House

Which multi stone capture case still exists under random games?

Sent from my iPhone

On Oct 9, 2008, at 11:12 AM, Erik van der Werf [EMAIL PROTECTED] 
 wrote:


On Thu, Oct 9, 2008 at 5:03 PM, Jason House [EMAIL PROTECTED] 
 wrote:
On Oct 9, 2008, at 10:41 AM, Erik van der Werf [EMAIL PROTECTED] 


wrote:

Sure, some long cycles have multi-stone captures.


Can you provide an example?


http://www.cs.cmu.edu/~wjh/go/rules/bestiary.html
___
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] (early) termination of random playouts?

2008-10-09 Thread Jason House

On Oct 9, 2008, at 11:08 AM, Eric Boesch [EMAIL PROTECTED] wrote:


On Thu, Oct 9, 2008 at 10:25 AM, Jason House
[EMAIL PROTECTED] wrote:
You are incorrect that the following heuristics in random games  
lead to

finite game length:
* no eye filling
* no suicide
* no simple ko violations

Consider two eyeless chains with 3 ko's connecting them... Two  
taken by
black and it's white's move. Filling the one ko it has is suicide.  
It must
take a ko. On black's turn, it can't fill a ko due to suicide and  
must take

a ko. The cycle repeats infinitely.


If passing is always legal and two passes terminate the game, then the
expected game length is finite no matter how you limit the other
options. If you forbid passing early then I suppose you have good
reasons for that, but it could be the reason why you and Don reached
different conclusions.



Does anyone allow passing at random in their playouts??? A game  
stopped from two premature passes is tough to score, if not completely  
meaningless.


Once upon a time, I thought the simple playout rules led to finite  
games. Infinite cycles are really rare and went unnoticed by me for a  
very long time.





___
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] (early) termination of random playouts?

2008-10-09 Thread Erik van der Werf
Anything can exist in a random game :-) Sent-two-return-one may me the
biggest practical concern, but I would not be surprised if some day a
molasses ko would pop up as well, especially if your playouts are not
too stupid.

Erik



On Thu, Oct 9, 2008 at 5:24 PM, Jason House [EMAIL PROTECTED] wrote:
 Which multi stone capture case still exists under random games?

 Sent from my iPhone

 On Oct 9, 2008, at 11:12 AM, Erik van der Werf [EMAIL PROTECTED]
 wrote:

 On Thu, Oct 9, 2008 at 5:03 PM, Jason House [EMAIL PROTECTED]
 wrote:

 On Oct 9, 2008, at 10:41 AM, Erik van der Werf
 [EMAIL PROTECTED]
 wrote:

 Sure, some long cycles have multi-stone captures.

 Can you provide an example?

 http://www.cs.cmu.edu/~wjh/go/rules/bestiary.html
 ___
 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/

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


Re: [computer-go] (early) termination of random playouts?

2008-10-09 Thread Mark Boon


On 9-okt-08, at 10:15, Don Dailey wrote:



If the play-outs are uniformly random and you have eye rule, it is
guaranteed to terminate as long as you use simple ko.


I don't think this is quite correct. With using just simple ko  
there's a chance you end the game in a never-ending triple-ko. The  
side to move always has exactly one legal move, so randomization  
doesn't help. I think I saw it happen once in a hundred games (not  
playouts) or so, so it's common enough to need addressing.


For example, Black to move:

XXX
XOXOX.X
O.O.OXO
OOO

Mark

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

Re: [computer-go] (early) termination of random playouts?

2008-10-09 Thread Jason House
On Oct 9, 2008, at 11:46 AM, Erik van der Werf [EMAIL PROTECTED] 
 wrote:



Anything can exist in a random game :-)


Occur yes, repeat forever requires very special situations.



Sent-two-return-one may me the
biggest practical concern


This is naturally resolved in light random playouts since cycle  
breaking moves exist. This is far too academic to debate on this list,  
so I'm going to stop talking about this topic.




, but I would not be surprised if some day a
molasses ko would pop up as well, especially if your playouts are not
too stupid.

Erik



On Thu, Oct 9, 2008 at 5:24 PM, Jason House [EMAIL PROTECTED] 
 wrote:

Which multi stone capture case still exists under random games?

Sent from my iPhone

On Oct 9, 2008, at 11:12 AM, Erik van der Werf [EMAIL PROTECTED] 


wrote:

On Thu, Oct 9, 2008 at 5:03 PM, Jason House [EMAIL PROTECTED] 


wrote:


On Oct 9, 2008, at 10:41 AM, Erik van der Werf
[EMAIL PROTECTED]
wrote:


Sure, some long cycles have multi-stone captures.


Can you provide an example?


http://www.cs.cmu.edu/~wjh/go/rules/bestiary.html
___
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/


___
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] (early) termination of random playouts?

2008-10-09 Thread Álvaro Begué
On Thu, Oct 9, 2008 at 11:39 AM, Jason House
[EMAIL PROTECTED] wrote:
 On Oct 9, 2008, at 11:08 AM, Eric Boesch [EMAIL PROTECTED] wrote:
 [...]
 Does anyone allow passing at random in their playouts??? A game stopped from
 two premature passes is tough to score, if not completely meaningless.

I haben't done this, but I have a plan that includes passes at
random(with non-uniform probabilities). With the rules I use, a game
stopped by two premature passes is very easy to score, and it does
have some meaning. I'll explain.

For any move played during a playout we use some information (the 3x3
pattern around it, the location on the board, the number of liberties,
the number of stones captured...) to estimate its score. The sum of
the estimates of all the moves in a playout should come close to the
actual score at the end. We use the difference between those two
numbers to adjust some weights that were used in computing the
estimates. Over time this system will learn which moves are good and
which aren't. Now we can bias the playouts so moves with high
estimated scores are played more often (in some cases, much more
often). A system like that would learn that playing almost any move is
generally better than passing. The hope is that this would recognize
sekis because moves there would have scores that are much worse than
passing, so both players would pass without moving there. It is even
possible that we can remove the definition of what points look
eyeish, and have this algorithm figure out that moves with those 3x3
patterns are usually worse than passing.

I don't know how workable that is, but it's about the only plan I have
to get MC to handle sekis correctly.

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


Re: [computer-go] (early) termination of random playouts?

2008-10-09 Thread Claus Reinke
 Anything can exist in a random game :-)
 Occur yes, repeat forever requires very special situations.

That makes long repeats unlikely in any individual run, and infinite
runs infinitely unlikely, unless we run into one of those very special
situations. But how special do these actually need to be?

One popular way of scaling up Monte-Carlo based engines seems to
add more processing resources to explore more of the search space.
Now, if you have a loop that requires n specific steps with at most m
loop-breakers at each step, it isn't one of those very special cases that
would force a bot into the loop. But if your engine explores more than
(m+1)^n alternative runs, one of its simulations is going to run into the
loop, even if that isn't likely for each individual run, right? And if the
class of dangerous situations isn't quite as narrow as one might think
at first, then random simulations overall are more likely to run into
one of them, even if we don't use such a beast to start the simulation.

But even short of infinite loops, very few of those finite repetitions are
likely to occur in real games - some of them have and do, but most are
a sign of unrealistic simulations (unsupported claim;-), which are likely
to mess with the quality of evaluation results. Since finite bounds can
take care of infinite loops, such degradations in quality are more worrying,
at least to me. Especially if their origins are hidden somewhere inside
statistics gathered from a huge invisible (unrecorded for efficiency
reasons) set of random simulation runs (tuned via experiments).

Perhaps one could record a histogram of simulation lengths at least, and
stop worrying unless there happen to be lots of entries in the 361 area.
Otherwise, results might be influenced by whether the artifical bound on
simulation length happens to fall into a high or a low of overlength runs.

Claus




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