Re: [computer-go] Suicide question

2008-01-18 Thread Jacques Basaldúa

Hi Michael


Another cost is undo. Superko requires undo, unless
you want store a hash value with each chain of stones.
I am not sure exactly what undo costs, but lets say
5% to 10%.


Well, every implementation is different. In its slowest 
mode, my board stores information about neighbor stones 
in each cell. It has a stack of boards and each board has
a pointer to its parent. In that mode superko can be 
detected. There is also a faster mode for MC playouts
that does not support superko. But it could also be 
possible to maintain a stack of previous hashes i.o.

complete boards, that would not be very expensive.

Jacques.


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


Re: [computer-go] Some thoughts about Monte Carlo

2008-01-18 Thread Don Dailey


Mark Boon wrote:
 I'm fairly new on the subject of Monte Carlo and am in the process of
 catching up on reading, so I hope you guys have some patience with me
 while I get into this and ask a lot of questions. I got side-tracked
 away from computer-Go programming for quite a while for various
 reasons but have been at it again full-time recently.
Good! You are one of the best.

 Let me start by saying I haven't followed the whole Monte-Carlo / UCT
 story all that well. Although it was clear it did well on 9x9 I wasn't
 all that convinced it would scale up to 19x19. That it did well on 9x9
 didn't surprise me much as I've always felt 9x9 is susceptible to see
 strong play using some extreme brute-force method using today's
 computing power.
The surprise is that random play-outs without tree search actually plays
a reasonable (certainly not strong) game.   At least much better than
the toy programs.   I think this single fact was just enough to keep
people interested enough to try more sophisticated things like you
mention next.

 Combining Monte-Carlo methods with what's generally called heavy
 playouts changes things a lot however and this is where it piqued my
 interest. I often see reference to Monte-Carlo programs as opposed to
 traditional Go programs. But what I'm seeing with the heavy playouts
 is deja-vu all over again. It seems to me the evolution of the heavy
 playouts is following a similar course of that of the first rule-based
 Go programs in the early 1980's. To use another famous quote history
 doesn't repeat itself but it rhymes.
I see it the same way.   I have noticed this in other fields, at some
point the different methods start to actually converge - all borrowing
ideas from things that are known to work.


 So I wouldn't be surprised at all if at some point you'll see a
 marriage of the best ideas of traditional Go programs and Monte-Carlo
 / UCT. In fact, this is most likely already happening as these
 Monte-Carlo programs use algorithms / ideas from the traditional
 programs for tactics, pattern-matching and possibly others.. And I go
 out on a limb to predict that at some point heavy playouts will use
 information like territory, eye-space and group-strength to guide
 their playouts just like the traditional programs do. And that using
 fixed 3x3 patterns will be a passing fad.
I believe there is a knowledge bottleneck that cannot easily be passed
through.Even with patterns there is only so far you can go with 3x3
patterns for instance.I agree with you that play-outs will probably
continue to get thicker and thicker until the point of diminishing
returns makes it counter-productive. There comes a point where it
takes an incredible amount of effort to add a little bit of raw
knowledge that will actually translate to a stronger program.   

Of course this goes back to the argument of search vs knowledge.   One
can always be bought with the others.   Knowledge is so useful that a
piece of it can save enormous search effort.   But the converse is
equally true - some things are so difficult to discover statically that
you need to use imagination which is what I consider the closest A.I.
analogy to search -  i.e. search IS imagination,  we do it when we plan
our day, considering what we will do and how long it will take, who we
might talk to and what we will say.Go program do not have this if
they don't do use imagination (seeing in their minds what will happen
and imagining how they will response, having a dialogue with themselves
so to speak via search.)

I think what has made tree search combined with monte carlo so
successful is that is so dynamic.   Traditional programs have little
coping power - they either have the answer (in a pattern or a routine)
or they don't. Now of course it turns out that you can still help
them along signficantly by letting them have imagination,   but also
forcing them to be realistic with some knowledge so they don't go out of
control!



 Anyway, as it is I have made a few initial forrays into Monte-Carlo
 algorithms. I hereby thank Peter Drake on his work on Orego, which is
 a fine package to learn about Monte-Carlo. I used it to make my own
 implementation. Not that there was much wrong with Orego but the best
 way to understand and internalize a concept is to actually implement
 it. Moreover I felt I needed a framework that is a bit more
 generalized than Orego. Lastly I was convinced of course that I'd be
 able to make it faster. That last part didn't turn out to be true
 though. On my iMac, which is a 2Ghz Core Duo, I get a little under 30K
 playouts on 9x9. A little over 50K when using both cores. Orego is in
 the same ball-park. At least making a more generalized implementation
 didn't hurt performance so I'm OK with this first attempt. I think
 there's still room for optimizations, if I thought it was important at
 this stage.

 This comes to my first point. Optimizing early in a project is like
 listening to the devil. 

Re: [computer-go] Suicide question

2008-01-18 Thread Michael Williams
Self-atari is never referred to as suicide.  Let's not start now.  But you're right self-atari in the playouts is a more interesting topic.  You have to allow 
it sometimes because it is the correct move sometimes.




John Fan wrote:
A question on this topic. When we discuss about suicide, are we 
referring to the real suicide, or self-atari? I think in some 
discussions it is referring to the real suicide. In other discussions, 
seems to be referring to self-atarai.


If we are talking about real suicide, I do not see any point to allow 
the real suicide in the play out. What would be the gain if we allow the 
real suicide in the play out. I think its only effect is to introduces 
more board repetition and more moves in the playout. In very very rare 
cases a real suicide move is beneficial.


If we are talking about the self-atari, that's a more interesting topic. 
I find it is very hard to tune. A lot of games of my engine are lost due 
to completely insane self-atari moves in the early games. Even I have 
policy to disfavor the self-atari moves, those moves just keep surfacing 
out.


On Jan 18, 2008 9:28 AM, Michael Williams [EMAIL PROTECTED] 
mailto:[EMAIL PROTECTED] wrote:


So it's possible to create a triple-ko repetition, take that move
sequence and find a non-triple-ko situation that uses the exact same
repeated move sequence?


A van Kessel wrote:
  An alternative to matching board hashes is to test for repeated
move sequences.
  No. repeated position != repeated sequence.
 
  Since one stone is added to the board with each move,
  a repetition can only exist between two moves if exactly that number
  of stones was captured inbetween (+- pass moves)
  So you only have to check the positions in the game-stack
  where exactly the same number of black,white stones is on the board
  HTH,
  AvK
  ___
  computer-go mailing list
  computer-go@computer-go.org mailto:computer-go@computer-go.org
  http://www.computer-go.org/mailman/listinfo/computer-go/
 

___
computer-go mailing list
computer-go@computer-go.org mailto: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] Suicide question

2008-01-18 Thread A van Kessel
 So it's possible to create a triple-ko repetition, take that move sequence 
 and find
 a non-triple-ko situation that uses the exact same repeated move sequence ?

I am afraid I don't follow. Please rephrase.

In my words: you have a sequence of moves (M0) leading,
to a certain position (P0). After P0 , you continue with
a sequence of moves (M1) leading to position (P1)
Now if P0==P1, this means that the move leading to P1 (the last move of M1 is 
invalid.

If the sequence M1 would occur anywhere inside of M0, it would cause
no harm, EXCEPT when it would be the final part of M0. But in that case,
P0 would itself would be a repetition of some position length(M1) *before*
P0.
Am I missing something ?

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


Re: [computer-go] Some thoughts about Monte Carlo

2008-01-18 Thread Mark Boon


On 18-jan-08, at 12:47, Don Dailey wrote:

I recently read an interesting blog on this,  where it was claimed  
that

early optimization SHOULD be done when performance is actually a
consideration (and sometimes it isn't.) The idea is that if ignore
performance consideration early,  you basically box yourself into a
corner and suddenly it's very painful to fix a performance
problem.   The blog seemed fairly balanced to me,  he didn't claim
that you should go to herculean efforts to obfuscate your code with
optimizations but that you should always be thinking about  
performance,

especially early on when you can do something about it.  So I
understand the classical wisdom about early optimization but I believe
there needs to be some balance and I'm open minded on the subject.


Well, my own experience is that it helps a great deal to have  
performance in the back of your mind at all times when working on  
parts of code that you know are going to be critical when it comes to  
speed. But you don't need to do a great deal with it immediately.  
Only when there are easy decisions in terms of performance do you  
make them. This conforms nicely to the Agile Programming paradigm  
that one should never do more than strictly necessary. Don't program  
features that are not needed now for some possible future. Because  
more often than not that future never comes to pass (or is it past?).  
I think this also holds for performance to a great extent.


One other problem with focusing on performance early on is that one  
tends to become blind for completely different approaches that are  
much more efficient.


Not that I live strictly by this rule. Over the years I have acquired  
a large number of programming rules, but the only rule carved in  
stone is that no rule is to be carved in stone and that rules are for  
those who don't know what they're doing. There! ;-)


Mark

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

Re: [computer-go] Suicide question

2008-01-18 Thread John Fan
A question on this topic. When we discuss about suicide, are we referring to
the real suicide, or self-atari? I think in some discussions it is referring
to the real suicide. In other discussions, seems to be referring to
self-atarai.

If we are talking about real suicide, I do not see any point to allow the
real suicide in the play out. What would be the gain if we allow the real
suicide in the play out. I think its only effect is to introduces more board
repetition and more moves in the playout. In very very rare cases a real
suicide move is beneficial.

If we are talking about the self-atari, that's a more interesting topic. I
find it is very hard to tune. A lot of games of my engine are lost due to
completely insane self-atari moves in the early games. Even I have policy to
disfavor the self-atari moves, those moves just keep surfacing out.

On Jan 18, 2008 9:28 AM, Michael Williams [EMAIL PROTECTED]
wrote:

 So it's possible to create a triple-ko repetition, take that move sequence
 and find a non-triple-ko situation that uses the exact same repeated move
 sequence?


 A van Kessel wrote:
  An alternative to matching board hashes is to test for repeated move
 sequences.
  No. repeated position != repeated sequence.
 
  Since one stone is added to the board with each move,
  a repetition can only exist between two moves if exactly that number
  of stones was captured inbetween (+- pass moves)
  So you only have to check the positions in the game-stack
  where exactly the same number of black,white stones is on the board
  HTH,
  AvK
  ___
  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] Some thoughts about Monte Carlo

2008-01-18 Thread Gian-Carlo Pascutto

 So I wouldn't be surprised at all if at some point you'll see a
 marriage of the best ideas of traditional Go programs and Monte-
 Carlo / UCT. In fact, this is most likely already happening as these
 Monte-Carlo programs use algorithms / ideas from the traditional
 programs for tactics, pattern-matching and possibly others.. And I go
 out on a limb to predict that at some point heavy playouts will use
 information like territory, eye-space and group-strength to guide
 their playouts just like the traditional programs do. And that
 using fixed 3x3 patterns will be a passing fad.

You don't even have to go out on a limb ;-)

One detriment to this is still that increasing the strength of playouts
does not make them necessarily better.

This might cause a schism in the kind of information that is needed
between classical approaches and Monte Carlo. So I do not think both
approaches will totally converge.

 This comes to my first point. Optimizing early in a project is like
 listening to the devil. It eats up a lot of time, the visible
 progress is gratifying but in the grand scheme of things it's not all
 that important to do early. I implemented it using pseudo-liberties
 because... uh, well, because that's what everyone seemed to be doing
 to get high numbers of playouts per second. But I already start to
 doubt using pseudo-liberties are all that useful. Is anybody still
 using pure-random playouts for anything? As soon as you start to do
 anything more, pseudo-liberties are pretty useless.

I agree here, and I made the same mistake.

 But the speed of the random playout becoms less and less important
 with heavy playouts.

This I don't understand at all. The improvement curve for being
faster isn't different with heavy than with light playouts.

 Next I was thinking about another subject that got some attention on
 this list, the mercy rule. It seems to save about 10% in the number
 of moves per game (on 19x19) and result in about 20% gain in
 performance. This discrepancy is most likely due to the fact that the
 administration, whether using pseudo-liberties or real, is much
 slower towards the end of the game because you have more moves that
 merge chains. And those 10% moves it saves are of course always at
 the end. So is it relevant? I don't know whether heavy playouts will
 be slower towards the end of the game or not. Possibly yes, as more
 moves made will have a small number of liberties that will need
 tactical analysis. I'd say that generally reducing the move-count is
 a good thing whichever method one uses. Possibly at a later stage
 more sophisticated methods can be developed to abort a game early.

Possibly the mercy rule is a premature optimization just like psuedo-
liberties :-)

 Next I allowed suicide only for White.

You allowed single-stone suicide too, I guess? This is obviously bad
since it will happen constinously near the end of an MC playout.
It will be like one side is forced to pass 50% of the time and the
other side not.

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


Re: [computer-go] Suicide question

2008-01-18 Thread Raymond Wold

Heikki Levanto wrote:

On Thu, Jan 17, 2008 at 10:36:09PM -0500, Michael Williams wrote:

I have not tried it myself, but I'm guessing it will not improve your
engine.  The cost of testing for simple ko is negligible and allowing it
will probably prolong the playouts.


I am not far enough with my engine to test yet, but my guess is that allowing
a simple ko can lead to pretty long endgames, if the ko has the only playable
moves left. It sounds that some sort of way to detect that would be good.

If we only test for a simple ko, it is possible to get into an endgame with
two kos on board, repeating for ever.


My own experience when experimenting with random playouts were that
without ko checking at all, around 30% of games ended in infinite loop
with both sides having one (non-eye-filling) move possible, to retake
the ko.

With simple ko checking, around 3% of games ended in infinite loop with
double ko.

As long as you have some cheap way (beyond doing ko checking) of getting
out of the infinite loop, either might be preferable.

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


[computer-go] KGS bot tournaments: poll

2008-01-18 Thread Nick Wedd
It is two years and six months since I chose the format that we use for 
the monthly bot tournaments on KGS.  Since then, things have changed: 
UCT has been invented, processing power has increased, pondering has 
been implemented in more programs, and CGOS is running.  I get 
occasional requests for changes to the format of the KGS tournaments;  I 
generally think, yes, that's a good idea, and then forget to do 
anything about it.  So I have decided to poll the members of this list, 
about what changes they think desirable.


HOW THINGS ARE NOW

The current settings for the tournaments are listed at
http://www.weddslist.com/kgs/future.html
Each event consists of two tournaments, one Formal (with entry 
restrictions) and one Open.  The events go in a cycle: 19x19+19x19, 
9x9+13x13, 13x13+9x9.  For each board size, the time limits (which are 
all sudden death) also cycle.  The cycles are: 19x19 - 58m, 28m, 18m; 
13x13: 13m, 18m, 28m;  9x9: 8m, 13m, 28m.


All events are Swiss, with fixed numbers of rounds.

WHY THEY ARE LIKE THIS

The Formal/Open restriction was created to encourage commercial programs 
to compete.  These programs' authors were wary of entering them in 
events in which they might have to play a whole bunch of GNU Go 
versions, so the Formal division was set up with the restriction that no 
more than one copy of GNU Go (or of anything else) could compete.  But 
this has had only limited success in attracting entries from commercial 
programs.


However running two tournaments at once is not a bad idea.  While I am 
running a bot tournament, I am forced to be sitting at my computer and 
watching what is happening on KGS, but I am rarely overworked.  So it 
quite suits me to be also running another bot tournament.  I imagine 
that competitors may feel the same way.
A snag with running two tournaments at once is that people may wish 
to enter both, but have access to only limited processing power.  This 
involves a time hit on both programs.  If the programs do not ponder, 
the time hit is only about 25% (assuming their opponents play at they 
same speed as they do;  but if they ponder it is 50%.


Absolute time settings are used so that I can know when each round will 
begin, and when the event will end.  For shorter events (fewer rounds, 
or faster time limits) these issues are less important.


My presence to administer these events is, unfortunately, still 
necessary, though I am required to intervene much less than in the early 
days.  In the most recent event, I had to score the SimpleBot vs. 
scottbot game manually, and then terminate the game:  I believe that if 
I had not done so, these bots would never have left the game, and would 
have failed to play in the next round.  I am not willing to devote more 
than eight continuous hours to an event.  However, for an event with 
slow time limits, I only really need to be present around the start and 
end of each round, so I could manage a 16-hour event (it would have to 
start at about 09:00 GMT)


ISSUES TO VOTE ON

(1.)
Do we want to keep separate Formal and Open divisions?
  Keep two divisions []
  Just have one  []
(I might restrict entry to the Formal division, to programs that have 
already competed in the Open division, behaved well, and won at least 
one game there.)


(2.)
Do we want to keep three board sizes?  Or to get rid of 13x13?
  Keep 19x19, 13x13, and 9x9 []
  Just have 19x19 and 9x9[]

(3.)
Do we want to continue with three different time settings for each board 
size?

  Keep three time settings []
  Just have two settings   []

(4.)
Do we want the time settings to be
  as they are now []
  faster  []
  slower  []
Note that faster time settings give more flexibility.  They allow more 
rounds, and they reduce the need for a pre-established schedule, 
allowing time systems other than absolute time.


(5.)
Should we
  continue to use Absolute (sudden death) time []
  change to using Canadian []
  change to using byo-yomi []

(6.)
Do we want the events to
  take longer  []
  be about as long as they are now []
  be over sooner   []

(7.)
Do we want to
  stay with fixed-length Swiss []
  switch to Round Robin[]

HOW TO VOTE

You can vote by responding here, if you want everyone to read your 
opinions;  or by email to me, at the address this message was posted 
from.  I shall not reveal the way anyone voted, nor who made the 
comments and suggestions made in emails to me;  but I will report on the 
total votes, and on the comments and suggestions.


As well as simply voting (by indicating your order of preference for 
each set of alternatives), you may explain your reasons, and suggest 
other possibilities.  I promise to read these, and to put all the 
responses into a folder where I won't lose them.


Nick
--
Nick Wedd[EMAIL PROTECTED]

Re: [computer-go] Suicide question

2008-01-18 Thread Gian-Carlo Pascutto

John Fan wrote:

If we are talking about real suicide, I do not see any point to allow 
the real suicide in the play out. What would be the gain if we allow the 
real suicide in the play out. 


The answer to this question has been given at least 3 times:

Speed.

It can take time to disallow a certain kind of move.

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


[computer-go] Some thoughts about Monte Carlo

2008-01-18 Thread Mark Boon
I'm fairly new on the subject of Monte Carlo and am in the process of  
catching up on reading, so I hope you guys have some patience with me  
while I get into this and ask a lot of questions. I got side-tracked  
away from computer-Go programming for quite a while for various  
reasons but have been at it again full-time recently.


Let me start by saying I haven't followed the whole Monte-Carlo / UCT  
story all that well. Although it was clear it did well on 9x9 I  
wasn't all that convinced it would scale up to 19x19. That it did  
well on 9x9 didn't surprise me much as I've always felt 9x9 is  
susceptible to see strong play using some extreme brute-force method  
using today's computing power.


Combining Monte-Carlo methods with what's generally called heavy  
playouts changes things a lot however and this is where it piqued my  
interest. I often see reference to Monte-Carlo programs as opposed to  
traditional Go programs. But what I'm seeing with the heavy  
playouts is deja-vu all over again. It seems to me the evolution of  
the heavy playouts is following a similar course of that of the first  
rule-based Go programs in the early 1980's. To use another famous  
quote history doesn't repeat itself but it rhymes.


So I wouldn't be surprised at all if at some point you'll see a  
marriage of the best ideas of traditional Go programs and Monte- 
Carlo / UCT. In fact, this is most likely already happening as these  
Monte-Carlo programs use algorithms / ideas from the traditional  
programs for tactics, pattern-matching and possibly others.. And I go  
out on a limb to predict that at some point heavy playouts will use  
information like territory, eye-space and group-strength to guide  
their playouts just like the traditional programs do. And that  
using fixed 3x3 patterns will be a passing fad.


Anyway, as it is I have made a few initial forrays into Monte-Carlo  
algorithms. I hereby thank Peter Drake on his work on Orego, which is  
a fine package to learn about Monte-Carlo. I used it to make my own  
implementation. Not that there was much wrong with Orego but the best  
way to understand and internalize a concept is to actually implement  
it. Moreover I felt I needed a framework that is a bit more  
generalized than Orego. Lastly I was convinced of course that I'd be  
able to make it faster. That last part didn't turn out to be true  
though. On my iMac, which is a 2Ghz Core Duo, I get a little under  
30K playouts on 9x9. A little over 50K when using both cores. Orego  
is in the same ball-park. At least making a more generalized  
implementation didn't hurt performance so I'm OK with this first  
attempt. I think there's still room for optimizations, if I thought  
it was important at this stage.


This comes to my first point. Optimizing early in a project is like  
listening to the devil. It eats up a lot of time, the visible  
progress is gratifying but in the grand scheme of things it's not all  
that important to do early. I implemented it using pseudo-liberties  
because... uh, well, because that's what everyone seemed to be doing  
to get high numbers of playouts per second. But I already start to  
doubt using pseudo-liberties are all that useful. Is anybody still  
using pure-random playouts for anything? As soon as you start to do  
anything more, pseudo-liberties are pretty useless. Yes, using real  
liberties slows things down a lot. But the speed of the random  
playout becoms less and less important with heavy playouts.


Next I was thinking about another subject that got some attention on  
this list, the mercy rule. It seems to save about 10% in the number  
of moves per game (on 19x19) and result in about 20% gain in  
performance. This discrepancy is most likely due to the fact that the  
administration, whether using pseudo-liberties or real, is much  
slower towards the end of the game because you have more moves that  
merge chains. And those 10% moves it saves are of course always at  
the end. So is it relevant? I don't know whether heavy playouts will  
be slower towards the end of the game or not. Possibly yes, as more  
moves made will have a small number of liberties that will need  
tactical analysis. I'd say that generally reducing the move-count is  
a good thing whichever method one uses. Possibly at a later stage  
more sophisticated methods can be developed to abort a game early.


Lastly (for this post anyway) I looked at the multiple-suicide  
question. Whether allowing it or not seems to have negligable effect  
on performance. What I did first was to tune the komi until the win- 
ratio for Black and White is as close to 50% as possible using random  
playouts. The number ended up being 2. Next I allowed suicide only  
for White. This pushed Black's winning percentage up to 65%. I think  
this pretty much settles the matter and it's clear allowing suicide  
is very detrimental to quality of play in a Monte-Carlo program.


That's all for today :)


Re: [computer-go] KGS bot tournaments: poll

2008-01-18 Thread Rémi Coulom

Hi,

My vote would be to keep everything like it is. Maybe use round robin 
when the number of participants is close to the number of planned 
rounds. Also, don't hesitate to make the time control shorter if it 
would be necessary to fit enough rounds within a reasonable time, so we 
can play round-robin instead of Swiss.


Swiss would be good if Bill Shubert could fix it. Main problems that 
need fixing are: in the last round, if the two top players have not yet 
played against each other, they must play against each other. Also, use 
seeding in the first round. This would improve a lot.


Thanks for organizing these tournaments. I am not sure I will 
participate in February, but I will participate in March.


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


Re: [computer-go] Suicide question (Repost)

2008-01-18 Thread Hideki Kato
I'm sorry but I have no fixed global ip (my pcs are at my home, not 
at univ).  But I strongly believe 32 bit applications can run on 64 
bit OS.

I will try to run currently running four bots and your clients 
as many as possible simultaneously because I've just built up an 
additional 2 core pc.  Now I have 4+4+2 cores of Intel Core2 at 
3GHz and one Athlon64 boxes in total, all running 64bit Linux.

Could you send me the tar ball?  Thanks.

Hideki

Don Dailey: [EMAIL PROTECTED]:
Can you give me a login account on your machine? Then I could
compile the binaries and get everything working on 64 bit linux. 
The you can revoke the account if you wish - I just want to build a 64
bit version.

But I have it all complete (at least for 32 bit linux).   All you do is
unpack the tarball and run a script from the unpacked directory and
everything else is automatic - including hourly upload of whatever data
is produced. There is even a kill script for when you want your
computer back.

I would prioritize running bots on CGOS.   I will eventually get the
data.   Right now I'm running 2 copies on my core 2 duo.   

I will have an automatic update soon.   Hopefully by tonight but I will
be in and out today and probably won't be able to work on it for a while.

- Don


Hideki Kato wrote:
 Yes, Fedora Core 5-64bit for AMD and Ubuntu 7.10-64bit for Intel.

 Which is better do you think, however, to stop current running bots on 
 cgos and run your clients instead OR to keep current bots runnig?  
 As Terry already answered to you.

 -Hideki

 Don Dailey: [EMAIL PROTECTED]:
   
 Do you run linux? 

 I already have a tarball which has almost everything you need - and it
 includes the binaries and has each player set up in the registry.   

 The only thing missing is an automated scheme to get the result files to
 me.   I'm looking to see if I can get an ftp server working.

 It will be flexible enough that you can run multiple instances if you
 want - and stop them when you want and restart without hassle.   
 However,   if one of the long players is playing,  you might lose
 several hours if you kill it!   

 Of course you can use nice to run these at low priority.

 Are you willing?I can send you a test package now which will
 determine if it will run without hassle.

 - Don




 Hideki Kato wrote:
 
 Hi Don,

 I'm now running mogo-pr-1cpu on my quad core box, Intel Q6600 3GHz 
 with 4GB RAM and gnugo-3.7.11-l10F, gnugo-3.7.10-l10F and FatMan-1 
 on an AMD athlon64 2GHz with 1GB RAM, as reference programs on cgos 
 9x9.  I can provide these two boxes for your experiment.  Then, how 
 long will it take?

 Hideki

 Don Dailey: [EMAIL PROTECTED]:
   
   
 Michael Williams wrote:
 
 
 It is a very nice graph.  I wish we could see the next 11 doublings.
   
   
 With some help,  I could redo this experiment and add:

   1 or 2 more levels.
   A version of gnugo with known strength.
   and/or some fixed version of mogo - which we could simultaneously
 test on CGOS.

 I would need an enormous amount of power to complete this with a good
 sample in less than a few months.  

 Anybody have any linux machines lying around? They need to be
 relatively powerful and probably need at least 1 gig of memory due to
 the large tree size I would have to set up.

 - Don




 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/
 
 
 --
 [EMAIL PROTECTED] (Kato)
 ___
 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/
 
 --
 [EMAIL PROTECTED] (Kato)
 ___
 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/
--
[EMAIL PROTECTED] (Kato)
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Suicide question

2008-01-18 Thread Raymond Wold

Jason House wrote:

On Jan 18, 2008 11:30 AM, Raymond Wold wrote:

With simple ko checking, around 3% of games ended in infinite loop with
double ko.



Double ko's should not have an infinite loop.  black takes ko A.  White 
takes ko B.  Black can't retake ko B, so must fill ko A.  White then 
fills ko B.  No infinite loop...


The only time I've had issues with this stuff was when my 
anti-eye-filling rule was broken.


Hmm, you're right, must have been triple ko actually. That fits with the 
percentages better as well. Perhaps there were other possible looping 
situations as well, I didn't actually check what it was that looped, 
only that it did, and that my idea for breaking-the-loop (stopping 
playouts after X moves) was on average slower than just always checking 
for superko in a hash table.

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


Re: [computer-go] KGS bot tournaments: poll

2008-01-18 Thread David Doshay

Hello All,

First, Thanks to Nick for doing these tournaments and for asking what  
we would like.


Sticking with most of the replies I have seen so far, I will send my  
votes on the form directly to Nick, but will comment here on a few  
points.


First, I am wondering about the 2-out-of-3 bias for smaller boards.  
Given that CGOS is now a regularly used resource, could simple back  
and forth 19x19 one month, and the 9-13 parings the next be a better  
choice? With so many stronger programs are we now ready for more  
regular 19x19 tournaments? I think so.


The Formal/Open structure has always had a distinct possibility of  
impacting us because SlugGo is a GNU Go wrapper (not the much feared  
clone) which significantly uses GNU Go code, but often makes moves  
that GNU Go would not (for better and for worse). So far it has not  
been a problem sharing the Formal division with the GNU folks. I have  
asked them a few days in advance of the tournament if I can take the  
Formal spot and except for a few times when I did not get any answer  
in a timely way (it happens on open source projects) they said OK, or  
if they wanted the Formal spot to check something new, SlugGo went  
into the Open division. It has worked fine for us. But the reason for  
the divide (what if there are a whole slew of GNU clones?) never did  
materialize.


SlugGo has not been in a KGS tournament in a while, but we hope to  
get some things done and be able to bring some new software to a  
tournament soon.



Cheers,
David



On 18, Jan 2008, at 9:41 AM, Nick Wedd wrote:

It is two years and six months since I chose the format that we use  
for the monthly bot tournaments on KGS.  Since then, things have  
changed: UCT has been invented, processing power has increased,  
pondering has been implemented in more programs, and CGOS is  
running.  I get occasional requests for changes to the format of  
the KGS tournaments;  I generally think, yes, that's a good idea,  
and then forget to do anything about it.  So I have decided to poll  
the members of this list, about what changes they think desirable.


HOW THINGS ARE NOW

The current settings for the tournaments are listed at
http://www.weddslist.com/kgs/future.html
Each event consists of two tournaments, one Formal (with entry  
restrictions) and one Open.  The events go in a cycle: 19x19+19x19,  
9x9+13x13, 13x13+9x9.  For each board size, the time limits (which  
are all sudden death) also cycle.  The cycles are: 19x19 - 58m,  
28m, 18m; 13x13: 13m, 18m, 28m;  9x9: 8m, 13m, 28m.




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


[computer-go] New scalability study progress report

2008-01-18 Thread Don Dailey
The new scalability study is in progress.  It will be very slow going, 
only a few games a day can be played but we are trying to get more
computers utilized. 

I will update the data a few times a day for all to see.   This includes
a crosstable and ratings graphs.   The games will be made available for
anyone who wants them.

Although it's not on the graph itself,  Gnugo-3.7.11 level 10 is set to
be 1800.0 ELO.The bayeselo program is used to calculate ratings.

Results can be found here:

http://cgos.boardspace.net/study/index.html

bayeslo assumes all players are equal strength until significant
evidence proves otherwise,  and with only a few games played each,  the
graph will look truly strange, but this will correct itself in time.

Each data point in the x axis represent a doubling in power.   There are
13 doublings represented and mogo was set to approximate FatMan in
strength at each point - at least at the lower level but only with a
very crude and rough estimate. Since I don't know how well mogo
scales compared to FatMan, we can only wait and see how this works out
at the top levels.

- Don

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


Re: [computer-go] Suicide question

2008-01-18 Thread Jason House
On Jan 18, 2008 11:30 AM, Raymond Wold [EMAIL PROTECTED] wrote:

 My own experience when experimenting with random playouts were that
 without ko checking at all, around 30% of games ended in infinite loop
 with both sides having one (non-eye-filling) move possible, to retake
 the ko.


My experience is that without simple ko checking, games ended in infinite
loops where the ko was the only move left.  They'd just go back and forth
capturing the lone stone...



 With simple ko checking, around 3% of games ended in infinite loop with
 double ko.


Double ko's should not have an infinite loop.  black takes ko A.  White
takes ko B.  Black can't retake ko B, so must fill ko A.  White then fills
ko B.  No infinite loop...

The only time I've had issues with this stuff was when my anti-eye-filling
rule was broken.
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] Suicide question

2008-01-18 Thread A van Kessel
 An alternative to matching board hashes is to test for repeated move 
 sequences.
No. repeated position != repeated sequence.

Since one stone is added to the board with each move,
a repetition can only exist between two moves if exactly that number
of stones was captured inbetween (+- pass moves)
So you only have to check the positions in the game-stack
where exactly the same number of black,white stones is on the board
HTH,
AvK
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Some thoughts about Monte Carlo

2008-01-18 Thread Mark Boon


On 18-jan-08, at 12:01, Gian-Carlo Pascutto wrote:



But the speed of the random playout becoms less and less important
with heavy playouts.


This I don't understand at all. The improvement curve for being
faster isn't different with heavy than with light playouts.


I see I didn't word this very clearly. I mean the speed of updating  
the administration during playout, like liberties or pseudo-liberties  
becomes less important.




Possibly the mercy rule is a premature optimization just like psuedo-
liberties :-)


I don't know yet...




Next I allowed suicide only for White.


You allowed single-stone suicide too, I guess? This is obviously bad
since it will happen constinously near the end of an MC playout.
It will be like one side is forced to pass 50% of the time and the
other side not.



No, I did not allow single-stone suicide for either side as I see no  
reason to allow it and it would lead to lots of potential problems  
(like many board repetitions). Just allowing multiple-suicide for  
White is enough to push up Black's winning percentage that much.


Mark

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


Re: [computer-go] New scalability study progress report

2008-01-18 Thread Jeff Nowakowski
On Fri, 2008-01-18 at 20:31 -0500, Don Dailey wrote:
 Although it's not on the graph itself,  Gnugo-3.7.11 level 10 is set to
 be 1800.0 ELO.

On the web page it says you are using --min-level 8 --max-level 8.

 Each data point in the x axis represent a doubling in power.   There are
 13 doublings represented

This is a bit confusing.  I think it's clearer to say there is 1
baseline and 12 doublings.  It's also confusing on the web page that
Mogo_01 actually corresponds to 0 doublings in the graph.

So if I understand correctly:

Mogo_13 = 64 * 2^12 = 262,144 simulations
FatMan_13 = 1024 * 2^12 = 4,194,304 simulations

Sorry for the minor nitpicks.  Looking forward to the results!

-Jeff

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


Re: [computer-go] KGS bot tournaments: poll

2008-01-18 Thread Christoph Birk

On Jan 18, 2008, at 9:41 AM, Nick Wedd wrote:
The Formal/Open restriction was created to encourage commercial  
programs to compete.  These programs' authors were wary of entering  
them in events in which they might have to play a whole bunch of  
GNU Go versions, so the Formal division was set up with the  
restriction that no more than one copy of GNU Go (or of anything  
else) could compete.  But this has had only limited success in  
attracting entries from commercial programs.


So the commercial programs are not showing anyway, what about
the 2nd reason of having 2 division: how many GNUGO-clones are
there typically; would it really be a problem?

Christoph

ps. Like Jason I will send my vote separately, after the weekend.
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] New scalability study progress report

2008-01-18 Thread Don Dailey
I wish I had named the weakest players _00 instead of _01 and expressed
everything as you are suggesting, it would indeed be clearer. 

I could actually fix this by reprogramming the scripts without changing
the running programs.   If I get a burst of energy perhaps ...

The tarball is slightly interesting.   I have it so that you untar into
a directory,  run a script and there is nothing left to have to do -
every hour a summary of the results so far is ftp'd to my computer. 
This is so others can help me with the study.You can stop or restart
the script at any time.  

So far, I am running two instances and I am running another instance on
a friends computer remotely.   

Here is a simple riddle which I had to solve but made me think for a
moment:

It involves how to keep track of various versions of the result files
which each user would send me every hour.   Do you put a version number
on it?   How do you track which file belongs to which user and which is
the latest version without mixing things up and duplicating data?  

My first reaction was to somehow label or stamp each file, perhaps with
the hostname or something and a version number.But none of this is
necessary.

- Don





Jeff Nowakowski wrote:
 On Fri, 2008-01-18 at 20:31 -0500, Don Dailey wrote:
   
 Although it's not on the graph itself,  Gnugo-3.7.11 level 10 is set to
 be 1800.0 ELO.
 

 On the web page it says you are using --min-level 8 --max-level 8.

   
 Each data point in the x axis represent a doubling in power.   There are
 13 doublings represented
 

 This is a bit confusing.  I think it's clearer to say there is 1
 baseline and 12 doublings.  It's also confusing on the web page that
 Mogo_01 actually corresponds to 0 doublings in the graph.

 So if I understand correctly:

 Mogo_13 = 64 * 2^12 = 262,144 simulations
 FatMan_13 = 1024 * 2^12 = 4,194,304 simulations

 Sorry for the minor nitpicks.  Looking forward to the results!

 -Jeff

 ___
 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] Suicide question

2008-01-18 Thread Michael Williams
An alternative to matching board hashes is to test for repeated move sequences.  You need a separate test for each sequence length, but the most common one 
should be the shortest one.



Heikki Levanto wrote:

On Thu, Jan 17, 2008 at 10:36:09PM -0500, Michael Williams wrote:

I have not tried it myself, but I'm guessing it will not improve your
engine.  The cost of testing for simple ko is negligible and allowing it
will probably prolong the playouts.


I am not far enough with my engine to test yet, but my guess is that allowing
a simple ko can lead to pretty long endgames, if the ko has the only playable
moves left. It sounds that some sort of way to detect that would be good.

If we only test for a simple ko, it is possible to get into an endgame with
two kos on board, repeating for ever.

It might make sense to test for (super)ko only in the endgame, when there are 
not so
many possible moves left. As long as there are many choices, a random playout
will not get stuck in a loop anyway. Then again, testing for the game state
may be as expensive as testing for ko... 


I guess it is early for me to speculate on that, as my engine isn't even
playing legal moves yet... Premature optimizing, and all that.

  - Heikki



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


Re: [computer-go] Some thoughts about Monte Carlo

2008-01-18 Thread Magnus Persson

So I wouldn't be surprised at all if at some point you'll see a
marriage of the best ideas of traditional Go programs and Monte-Carlo /
UCT. In fact, this is most likely already happening as these
Monte-Carlo programs use algorithms / ideas from the traditional
programs for tactics, pattern-matching and possibly others.. And I go
out on a limb to predict that at some point heavy playouts will use
information like territory, eye-space and group-strength to guide their
playouts just like the traditional programs do. And that using fixed
3x3 patterns will be a passing fad.


My first MC-Program actually used the code from my knowledge intensive  
program Viking. Then I rewrote everything from scratch which is  
Valkyria2.7. And I am now working with rewriting the search part in  
order to allow threaded search and that is Valkyria3.


Since Viking used territory, eye-space etc to compute groupstrength, I  
guess I could comment on what I believe can and cannot be used in  
heavy playouts.


Valkyria uses eye-space calculations, which prunes really bad moves in  
the playouts. My board representation keeps track of all liberties,  
and surrounding stones for all chains. It is designed for playouts  
(undo is not possible) but a lot of information is computed so that at  
it is easy to write knowledge-algorithms. It is faster than my old  
Vikingcode but still it is much easier to work with.


Valkyria does not do explicit 3x3 patternmatching, but uses handcoded  
patternmatching which often are equivalent to 3x3 patterns. But  
sometimes the code will look at a larger area. It also computes  
ladders in playouts. The ladders are fast and sloppy, that is, in some  
situations they make mistakes, but in the playouts one makes (and  
should make) compromises with correctness all the time. It is the  
UCT-search that should find out how to play correctly not the playouts.


My program as a consequence is probably the slowest in terms of  
playouts/second. It does about 1200/sec on 9x9 on Pentium-M 1.4Ghz.


The good thing is that the code is so bloated I do not slow it down so  
much when I add new stuff to the playouts. I recently found a lot of  
bugs working with version 3 so I added that to the 2.7.8 which has  
been rated about 40-60 Elo higher than 2.7.7.


I do not think that territory and groupstrength will ever be included  
into heavy playouts. Because this is implicitly computet by the  
MC-evaluation. Several MC-programs today collects statistics such as  
the probability that each position on the board is assigned to black  
in the end of playouts. I recently added a colored graph of such  
statistics to Valkyria3 and it looks really pretty. You can easily see  
what is safe territory or not and which groups are weak and not.  
Actually this visualisation is good to hunt for bugs in the playouts.  
If a groups is almost dead despite having plenty of eyspace then  
something can probably be fixed in the playouts. These kind of  
statistics looke quite nice already after as little as 100 playouts,  
and are in my opinion better than what  I ever achieved with Viking  
evaluation function. Most importantly one sees that although  
MC-evaluation often misjudges positions, the effect of moves is almost  
always goes in the right directions. Traditional statical evaluation  
has the problem of being brittle. It does 90% right but 10% completely  
wrong. MC-eval does 80 % right and 20% slightly wrong. (I made up  
those numbers of course but hope you get the idea)


So computing territory and groups strength in playouts appears to me  
as reinventing the wheel because this is what MC-eval actually is  
doing implicitely. An open question is to what extent these statistcs  
can be used to improve performance in UCT-search or biasing playouts.  
I have no clear idea about it because, in some versions of my programs  
it was good and sometime it did not. It may be that UCT-search itself  
is so efficient that whenever you have reliable statistics for a  
position the search does not benefit from that knowledge anymore.


I also agree that some really old techniques do come back. In my first  
goporgram for the Amiga I wrote 18 years ago approximately I first  
implemented the following pattern


?B?
W+W
?B?

and variations thereof. When I first made the playouts heave this was  
the first patterns I added, and it worked really well. So the irony is  
that my current programs have more in common with my very first  
completely stupid program than the versions in between...


-Magnus


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


Re: [computer-go] Some thoughts about Monte Carlo

2008-01-18 Thread Gian-Carlo Pascutto

Mark Boon wrote:


On 18-jan-08, at 12:01, Gian-Carlo Pascutto wrote:



But the speed of the random playout becoms less and less
important with heavy playouts.


This I don't understand at all. The improvement curve for being 
faster isn't different with heavy than with light playouts.


I see I didn't word this very clearly. I mean the speed of updating
the administration during playout, like liberties or pseudo-liberties
becomes less important.


I agree.


No, I did not allow single-stone suicide for either side as I see no
 reason to allow it and it would lead to lots of potential problems
(like many board repetitions). Just allowing multiple-suicide for
White is enough to push up Black's winning percentage that much.


Thanks for the info. I guess I need to retest to see if the tradeoff I 
made still makes sense.


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


Re: [computer-go] New scalability study progress report

2008-01-18 Thread Don Dailey


Jeff Nowakowski wrote:
 On Fri, 2008-01-18 at 20:31 -0500, Don Dailey wrote:
   
 Although it's not on the graph itself,  Gnugo-3.7.11 level 10 is set to
 be 1800.0 ELO.
 

 On the web page it says you are using --min-level 8 --max-level 8.
   
I realized after I started the study that I was using the wrong level -
I had intended to start with level 10 but it's actually level 8. I
kicked myself for that - but I don't want to change it now. It's
just a point of reference anyway.


   
 Each data point in the x axis represent a doubling in power.   There are
 13 doublings represented
 

 This is a bit confusing.  I think it's clearer to say there is 1
 baseline and 12 doublings.  It's also confusing on the web page that
 Mogo_01 actually corresponds to 0 doublings in the graph.

 So if I understand correctly:

 Mogo_13 = 64 * 2^12 = 262,144 simulations
 FatMan_13 = 1024 * 2^12 = 4,194,304 simulations
   
I'm still tweaking the web page.Take a look at it now and tell me
what you think.

Your formula is correct,  Mogo_01 is 64 simulation and FatMan_01 is 1024
simulations.   I ran off a few fast games before I started to get a
rough idea of equivalence and it's an amazing 16 to 1 at the low
levels.Have no idea how each programs scales to higher levels.   It
will take many games for the ratings to have any meaning. 

- Don


 Sorry for the minor nitpicks.  Looking forward to the results!

 -Jeff

 ___
 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/