Re: [computer-go] On average how many board updates/sec can top Go programs do these days?

2008-01-15 Thread dhillismail
Another possible reason could be for SIMD (vector) parallel processing. Years 
ago, I was a real-time image processing guy. Some time back, I did a 
back-of-the-envelope design for doing?light playouts on multiple go boards at 
once, on a dedicated parallel processing card. It meant?tiling all these boards 
into a large?image and using standard image processing-type operations. 
Avoiding single-stone suicide looked easy. Avoiding multi-stone suicide looked 
like a can of worms. 

If some one wanted to use, for instance, a graphics card to do fine grained 
parallel processing, permitting multi-stone suicides might be a tempting option.

- Dave Hillis

-Original Message-
From: Don Dailey <[EMAIL PROTECTED]>
To: computer-go 
Sent: Tue, 15 Jan 2008 1:43 pm
Subject: Re: [computer-go] On average how many board updates/sec can top Go 
programs do these days?



I think the only reasonable argument for suicide in the play-outs is
speed.  It's possible to improve the speed of play-outs significantly if
you avoid the suicide test.

But I'm convinced that it comes at a price.   Suicide is the best move
very rarely,  and in rule-sets that do not allow it,  it's NEVER the
best move and it makes no sense to include them in the play-outs.  

- Don


Christoph Birk wrote:
>
> On Jan 15, 2008, at 10:00 AM, [EMAIL PROTECTED] wrote:
>
>> Um, by easier I mean faster. Also, I think single point suicide is
>> more likely to lead to infinite loops, depending on your eye-filling
>> rule.
>> - Dave Hillis
>
> I don't understand why anyone would allow suicide in playouts. No
> commonly
> used (in particular CGOS) ruleset allows it.
>
> Christoph
>
> ___
> 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/



More new features than ever.  Check out the new AIM(R) Mail ! - 
http://webmail.aim.com
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] On average how many board updates/sec can top Go programs do these days?

2008-01-15 Thread Gian-Carlo Pascutto

Christoph Birk wrote:


On Jan 15, 2008, at 10:00 AM, [EMAIL PROTECTED] wrote:

Um, by easier I mean faster. Also, I think single point suicide is 
more likely to lead to infinite loops, depending on your eye-filling 
rule.

- Dave Hillis


I don't understand why anyone would allow suicide in playouts. No commonly
used (in particular CGOS) ruleset allows it.


Passing is not allowed in chess. Yet nullmove is quite popular.

There is no reason to follow the rules during playouts. If playing 10 
moves at once made my program stronger, I would do just that.


...and yes, I did try that.

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


Re: [computer-go] On average how many board updates/sec can top Go programs do these days?

2008-01-15 Thread Don Dailey

[EMAIL PROTECTED] wrote:
> How can you call it 'intelligence' if a person limits one's thoughts and 
> viewpoints to a narrow domain?
>   
Yes,  I agree.   It really took some imagination and open mindedness to
discover UCT and Monte Carlo since it breaks so sharply away from the
old traditional way of writing a go program.

It's still not clear to me what the ultimate approach is.   It could be
that a properly written classical program can compete - such as the
approach David Fotland is using where global search is an important
component to an already knowledge rich program.

These are all intelligent approach as far as I am concerned.You see
that the programs continue to expand to utilize resources better and
continue to improve slowly but surely.

It's not uncommon in computer science and mathematics to eventually see
many  methods as a special case of some generalization.   All approaches
that are producing farily strong programs have a search component and an
evaluation component mixed in different ratios.   We just like to get
hung up on the exact implementation details and imagine that different
approaches have nothing in common.


- Don


> DL
>
>
>
>  Although interesting, I would hardly call that 'intelligence' :-)
>
>
>
>
>
>
>
> 
> More new features than ever.  Check out the new AOL Mail ! - 
> http://webmail.aol.com
>
>   
> 
>
> ___
> 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] On average how many board updates/sec can top Go programs do these days?

2008-01-15 Thread Don Dailey
I think the only reasonable argument for suicide in the play-outs is
speed.  It's possible to improve the speed of play-outs significantly if
you avoid the suicide test.

But I'm convinced that it comes at a price.   Suicide is the best move
very rarely,  and in rule-sets that do not allow it,  it's NEVER the
best move and it makes no sense to include them in the play-outs.  

- Don


Christoph Birk wrote:
>
> On Jan 15, 2008, at 10:00 AM, [EMAIL PROTECTED] wrote:
>
>> Um, by easier I mean faster. Also, I think single point suicide is
>> more likely to lead to infinite loops, depending on your eye-filling
>> rule.
>> - Dave Hillis
>
> I don't understand why anyone would allow suicide in playouts. No
> commonly
> used (in particular CGOS) ruleset allows it.
>
> Christoph
>
> ___
> 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] On average how many board updates/sec can top Go programs do these days?

2008-01-15 Thread Christoph Birk


On Jan 15, 2008, at 10:00 AM, [EMAIL PROTECTED] wrote:

Um, by easier I mean faster. Also, I think single point suicide is  
more likely to lead to infinite loops, depending on your eye- 
filling rule.

- Dave Hillis


I don't understand why anyone would allow suicide in playouts. No  
commonly

used (in particular CGOS) ruleset allows it.

Christoph

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


Re: [computer-go] On average how many board updates/sec can top Go programs do these days?

2008-01-15 Thread compgo123
How can you call it 'intelligence' if a person limits one's thoughts and 
viewpoints to a narrow domain?

DL



 Although interesting, I would hardly call that 'intelligence' :-)








More new features than ever.  Check out the new AOL Mail ! - 
http://webmail.aol.com
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] On average how many board updates/sec can top Go programs do these days?

2008-01-15 Thread Gian-Carlo Pascutto

[EMAIL PROTECTED] wrote:
>
Um, by easier I mean faster. Also, I think single point suicide is more 
likely to lead to infinite loops, depending on your eye-filling rule.

- Dave Hillis


Yes.

Particularly near the end of the game there are zillions of bad single 
stone suicides, but not often multi-stone suicides.


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


Re: [computer-go] On average how many board updates/sec can top Go programs do these days?

2008-01-15 Thread Gian-Carlo Pascutto

Rémi Coulom wrote:


Gian-Carlo Pascutto wrote:

>

Multi-stone suicide is allowed, single stone not.


Strange. The reverse would make more sense to me.


I do not track liberties, so the speed penalty for doing it that way is 
too much.


I wrote my program to track psuedoliberties because this is very fast 
and I thought I could take a lot of shortcuts and early exits when I had 
to know the real amount of liberties.


Unfortunately the interesting cases seem to be the ones that don't allow 
for the shortcuts.


I am now convinced designing the program with psuedoliberties was a mistake.

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


Re: [computer-go] On average how many board updates/sec can top Go programs do these days?

2008-01-15 Thread dhillismail
Um, by easier I mean faster. Also, I think single point suicide is more likely 
to lead to infinite loops, depending on your eye-filling rule.
- Dave Hillis


-Original Message-
From: [EMAIL PROTECTED]
To: computer-go@computer-go.org
Sent: Tue, 15 Jan 2008 12:16 pm
Subject: Re: [computer-go] On average how many board updates/sec can top Go 
programs do these days?


Single stone suicide is much easier to test for. :)

- Dave Hillis


-Original Message-
From: Don Dailey <[EMAIL PROTECTED]>
To: computer-go 
Sent: Tue, 15 Jan 2008 12:11 pm
Subject: Re: [computer-go] On average how many board updates/sec can top Go 
programs do these days?



Surely he meant the opposite.
- Don

Rémi Coulom wrote:
 Gian-Carlo Pascutto wrote:
> Multi-stone suicide is allowed, single stone not.

 Strange. The reverse would make more sense to me.

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

__
omputer-go mailing list
[EMAIL PROTECTED]
ttp://www.computer-go.org/mailman/listinfo/computer-go/


More new features than ever. Check out the new AIM(R) Mail!




___
omputer-go mailing list
[EMAIL PROTECTED]
ttp://www.computer-go.org/mailman/listinfo/computer-go/



More new features than ever.  Check out the new AIM(R) Mail ! - 
http://webmail.aim.com
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] On average how many board updates/sec can top Go programs do these days?

2008-01-15 Thread compgo123

No, God creates all the rest, integers are just work of man.?

DL?


"God create integers, all the rest are just work of man" :-) 







More new features than ever.  Check out the new AOL Mail ! - 
http://webmail.aol.com
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] On average how many board updates/sec can top Go programs do these days?

2008-01-15 Thread Andrés Domínguez
2008/1/15, Rémi Coulom <[EMAIL PROTECTED]>:
> Gian-Carlo Pascutto wrote:
> > Multi-stone suicide is allowed, single stone not.
>
> Strange. The reverse would make more sense to me.

Multi-stone suicide is sometimes the best move (if the
rules allow  it). This is because multi-stone suicide is
sometimes a good ko thread (to kill a group).

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

Re: [computer-go] On average how many board updates/sec can top Go programs do these days?

2008-01-15 Thread dhillismail
Single stone suicide is much easier to test for. :)

- Dave Hillis


-Original Message-
From: Don Dailey <[EMAIL PROTECTED]>
To: computer-go 
Sent: Tue, 15 Jan 2008 12:11 pm
Subject: Re: [computer-go] On average how many board updates/sec can top Go 
programs do these days?



Surely he meant the opposite.
- Don

Rémi Coulom wrote:
 Gian-Carlo Pascutto wrote:
> Multi-stone suicide is allowed, single stone not.

 Strange. The reverse would make more sense to me.

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

__
omputer-go mailing list
[EMAIL PROTECTED]
ttp://www.computer-go.org/mailman/listinfo/computer-go/



More new features than ever.  Check out the new AIM(R) Mail ! - 
http://webmail.aim.com
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] On average how many board updates/sec can top Go programs do these days?

2008-01-15 Thread Don Dailey
Surely he meant the opposite.

- Don



Rémi Coulom wrote:
> Gian-Carlo Pascutto wrote:
>> Multi-stone suicide is allowed, single stone not.
>
> Strange. The reverse would make more sense to me.
>
> Rémi
> ___
> 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] On average how many board updates/sec can top Go programs do these days?

2008-01-15 Thread Rémi Coulom

Gian-Carlo Pascutto wrote:

Multi-stone suicide is allowed, single stone not.


Strange. The reverse would make more sense to me.

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


Re: [computer-go] On average how many board updates/sec can top Go programs do these days?

2008-01-15 Thread Gian-Carlo Pascutto

Harri Salakoski wrote:

The *average* length of a 9x9 playout is roughly 100 moves.
The max length is much larger.

The *average* length of a 9x9 playout is roughly 100 moves.
The max length is much larger.
Hmm, sorry if this is old subject but does it effect much for playout 
quality if I cut playouts for example max 110 moves in 9*9 board?

Is that studied subject for almost random playouts.

Another thing, do you include random moves for playouts, after some 
number of playouts or when there is "K" number empty points or using 
some other way.


I play until there are only moves that put stones into a real eye, and 
then pass 2 times. I described my exact playout policy a few posts ago.


Multi-stone suicide is allowed, single stone not.

Light playouts (i.e. just random moves) were about as long, if I 
remember correctly the average playout length was 104 moves or so.


It's good practise to measure this regularly over say 1 million games. 
Sometimes you will find that the average shifts at a moment you didn't 
expect it => Oops, introduced a bug :)


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


Re: [computer-go] On average how many board updates/sec can top Go programs do these days?

2008-01-15 Thread Don Dailey


Harri Salakoski wrote:
>>> The *average* length of a 9x9 playout is roughly 100 moves.
>>> The max length is much larger.
>> The *average* length of a 9x9 playout is roughly 100 moves.
>> The max length is much larger.
> Hmm, sorry if this is old subject but does it effect much for playout
> quality if I cut playouts for example max 110 moves in 9*9 board?
Yes, that will significantly hurt your play-outs.Do you throw away
the results or score it as is?  

I have a very liberal cutoff on my program - from any position I play to
move 81*4 in 9x9  as long as I have played at least 20 moves.  

> Is that studied subject for almost random playouts.
What is commonly done is something called the "mercy" rule where you
stop the play-outs early if one side appears to have an overwhelming
advantage.Even this is somewhat risky if there is a large group with
no eyes. I don't use that rule but it's been reported to be anywhere
from no benefit to a minor benefit.I have not tested it,  but the
most you can hope for is a relatively small speedup for a small risk.

>
> Another thing, do you include random moves for playouts, after some
> number of playouts or when there is "K" number empty points or using
> some other way.
This is all a black art - you must try many different things and see
what works best for you. 

I haven't tried this,  but  it would be a major speedup to revert to
"light move strategy" after a few heavy moves are tried in each
play-out.My heavy play-outs are 3 - 4 times slower than the purely
random play-outs.   I suspect most of the benefit occurs in the first
few moves. Is this what you are suggesting?  

>
> By the wat made java board for random playouts it is currently 30
> games /13sec 9*9 board having max 110 moves(double core 4000+), I have
> no lightest clue how to make it faster as optimized it as much i can,
> using two threads it is 7 seconds/30 games. Have think that maybe
> somekind of state machine could be faster.
>
> t. Harri
>
>
>
>> On a 2.2Ghz Athlon64, I get about 10 000 playouts/second, at an
>> average of 100 moves per game this is 1 million updates/second.
>>
>> There are many programs that are much faster. On the same hardware
>> libego would be about 6 million updates/second.
>>
>> 19 x 19 is a bit slower, because strings are bigger on average.
>>
>>>
>>> This also explains that when I read the games MoGo against GNUGo,
>>> toward
>>> the
>>> end of the game, GNUGo would play PASS, but MoGo would continue to
>>> play at
>>> some very uncommon positions that a normal player would never consider.
>>
>> Pass behaviour has little to do with the playouts themselves.
>>
>> -- 
>> GCP
>> ___
>> 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] On average how many board updates/sec can top Go programs do these days?

2008-01-15 Thread Don Dailey


Gian-Carlo Pascutto wrote:
>>> Playing randomly like that shouldn't work, but when you play Mogo et al,
>>> you see that intelligent behaviour emerges.
>>>
>>>   
>> Although interesting, I would hardly call that 'intelligence' :-)
>> 
>
> Ah, the traditional flamewar topic: the definition of intelligence
> shifts whenever a computer achieves what was formerly considered
> intelligence.
>
>   
You could not have said that any better.If a program with Mogo's
strength had appeared 10 years ago,   I can imagine some very flattering
write-ups about it's incredible A.I.

- Don

>> And I suspect how far it can achieve on 19x19 board (compare to human
>> players of course).
>> 
>
> Perfect play, no need to suspect anything. The real question is how far
> humans are away from that :-)
>
>   
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] On average how many board updates/sec can top Go programs do these days?

2008-01-15 Thread Don Dailey

mingwu wrote:
>
>> Playing randomly like that shouldn't work, but when you play Mogo et al,
>> you see that intelligent behaviour emerges.
>>
>> 
>
> Although interesting, I would hardly call that 'intelligence' :-)  And I
> suspect how far it can achieve on 19x19 board (compare to human players of
> course).
>
>   
The explanations given were greatly simplified.   Actually, these
programs have a ton of research behind them are not just explained
simply by a a bunch of random games.  So the approach is quite
intelligence.

One breakthrough has been making the play-outs "less random" and so they
actually have been crafted to give the best results with a lot of
outside knowledge added.   Also, they are search based which means a
search tree is built in memory and a great deal of effort has been spent
on how to expand this tree in the most efficient way possible.  

This has already proved to be the best way forward (so far) as the 19x19
programs using the approach are playing the best go of all the programs.  

So you may worry about "how far it can achieve on 19x19",  but now it's
not the Monte Carlo approach that is really in question,  it's the OTHER
approaches that you should now be doubting.

With the current trend of Moores law to produce faster computers with
more cores and memory,  this is truly good news for go programs and
especially this technique which is guaranteed to improve with more
powerful hardware.  

- Don

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


Re: [computer-go] On average how many board updates/sec can top Go programs do these days?

2008-01-15 Thread Don Dailey
>
>   I'm sure many of us are surprised how well this stuff
> works.
>
>   
I'm not surprised because I knew a little about the principle 10 years
ago. I create a game based on English/British checkers but played on
a 6x6 board and a slightly different jump rule (you can only jump one
piece in a move.)   It was just for testing idea on searching and I
wanted to keep it simple.

I discovered that a monte/carlo based evaluation function is superior
compared to a simple hand crafted one.   It was better even at the same
time control. This game was small enough that I could search
incredibly deep and discover diminishing returns (which must happen in
all games but happens much more gradually than intuition would suggest.) 

I tried a naive version of this with GO and discovered that it could
easily beat my alpha/beta searcher which had a naive static evaluation
function (because I had just learned the rules and didn't understand the
strategy whatsoever.)  But it was still very  weak and I temporarily
lost interest in it.

Then I saw a paper on the web about "gobble",  a go program that evolved
a move list ordering using simulated annealing. My interest was
rekindled, I continued to tinker and eventually produced some simple MC
based programs which were predecessors of AnchorMan.  During this
period other papers started to appear which I followed closely and now
it's a common technique. 

Searching randomly is probably the quickest way to get an overview of
the landscape.   It's not very methodical,  but methodical methods are
much slower at quickly discovering the big picture. 

I'm thinking that the next big leap in computer go will be based on
generalizing the knowledge gained from the play-outs.   Right now,  we
structure this knowledge into a tree which is certainly an appropriate
representation but we are still throwing away a lot of useful (but
fuzzy) knowledge about the positions.(For instance we have to
discover over and over than a certain move is good, not just in one line
but probably in most lines of play.) There has been a lot of
progress in this direction but I'll bet there will be more.

I have tried some ideas that were failures so far - but I think this is
a productive direction in general.

- Don






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


Re: [computer-go] On average how many board updates/sec can top Go programs do these days?

2008-01-15 Thread Don Dailey






mingwu wrote:

  Hi,

I read on the web, and some other places that most Go programs can only
evaluate "a dozen" of moves per second.  Is this still true today on a
typical machine, say, single 2GHz CPU, 2GB memory?
  

This is highly dependent on the program.   You can evaluate fast if you
don't care about the quality of the evaluation and don't mind having a
crummy program.   There is a general feeling that GO requires much
smarter evaluation than what we have now and many are working on
improving that.  Of course this implies that current evaluation is much
slower than it should be because strength and speed are highly
correlated.

I don't really understand what a dozen evaluations per second really
means.    I think MFGO does a shallow global search but at end nodes
calls a special evaluation function that is relatively slow.   However,
this evaluation function has a search component inside of it - routines
that check for life and death by doing ladder searches and such.  

All programs do a global search with some kind of static evaluation at
end nodes.    It is customary in computer go not to call it "global
search"  if the
program just does a fixed 1 ply search.   Perhaps the feeling is that
if you don't actually call the evaluation function recursively it's not
a search,  but whatever the case it is just semantics.   There are many
who believe a 1 ply
fixed depth search is the only number that works (which is
nonsense.)    Nevertheless,  even the older classic programs do at 
least a 1 ply
search.    They call the search "selective" if you only consider a
subset of the moves.    However, even the subset not "considered" is
evaluated in some sense to determine that it should not be
considered!    It is just evaluated less thoroughly,  perhaps being
quickly rejected by a simple pattern lookup or some other system.



  
And if this is still true, how can we make it faster?

  

There is such a think called a "static evaluation function",  which is
a non-recursive version of an evaluation function.    Most programs
give their evaluation function a name like  "search()" or evaluate() or
something similar. A recursive evaluation function tries to
evaluate positions by moving pieces around on the board to see what
happens - more like what humans do.  

Since recursive functions must have a termination condition, at some
point you must stop and the general method is via a "static evaluation
function",   a routine that evaluates the position without moving
pieces around.  Having said that,   it's true that many programs
still move pieces around by further calling goal specific routines
designed to discover something about the position via a goal specific
search, such as determining if a specific group will live or die.  

To answer your question about how to make it faster,   I think the
answer is to find ways to replace the recursive components with static
components.    This falls into many categories:


  Routines that discover life and death statically.
  Routines that are effective at identifying moves not worthy of
consideration.
  Any static or fast routine that can discover something useful
about the position without having to recurse.

Of course general optimizations will help,  but cannot replace gains in
the above areas.   Same with faster computers.   

At some point we all have to stop thinking of evaluation and search as
two different things.   This in my opinion is the biggest stumbling
block in our way. You can find heated arguments going back 30 years
or more on the subject of search vs evaluation showing how most people
have partitioned these two things into separate unrelated concepts.

In some ways, computer go is ahead of chess in this regard.   Chess
programmers think the two things are different but many good go
programs use local searches to discover things about the position -
nicely and properly blurring the distinction between the two.

You can look at ANY good game playing program and easily see that it's
all about doing as much useful work as you can, in as little time as
possible.    

Probably the biggest source of misconceptions are articles you can find
on the web that claim search is out of the question for computer
go. These well-meaning articles are misleading and imply that
searching 1 ply with an incredible static evaluation function is the
"one true way."   They generally make the all or nothing assumption
that you either don't use search at all,  or you must design a program
with a brain-dead but super-fast static evaluation function and then
try to search 100 full-width ply deep to make up for this. So these
articles have kept computer go in the dark ages longer than necessary
and are written in an incredibly naive style showing a lack of
understanding of the general principles of how to evaluate a
position.  

Of course you can now see strong programs based on using the search
component much more heavily in the evaluation process. 

Re: [computer-go] On average how many board updates/sec can top Go programs do these days?

2008-01-15 Thread Harri Salakoski

The *average* length of a 9x9 playout is roughly 100 moves.
The max length is much larger.

The *average* length of a 9x9 playout is roughly 100 moves.
The max length is much larger.
Hmm, sorry if this is old subject but does it effect much for playout 
quality if I cut playouts for example max 110 moves in 9*9 board?

Is that studied subject for almost random playouts.

Another thing, do you include random moves for playouts, after some number 
of playouts or when there is "K" number empty points or using some other 
way.


By the wat made java board for random playouts it is currently 30 games 
/13sec 9*9 board having max 110 moves(double core 4000+), I have no lightest 
clue how to make it faster as optimized it as much i can, using two threads 
it is 7 seconds/30 games. Have think that maybe somekind of state 
machine could be faster.


t. Harri




On a 2.2Ghz Athlon64, I get about 10 000 playouts/second, at an
average of 100 moves per game this is 1 million updates/second.

There are many programs that are much faster. On the same hardware
libego would be about 6 million updates/second.

19 x 19 is a bit slower, because strings are bigger on average.



This also explains that when I read the games MoGo against GNUGo, toward
the
end of the game, GNUGo would play PASS, but MoGo would continue to play 
at

some very uncommon positions that a normal player would never consider.


Pass behaviour has little to do with the playouts themselves.

--
GCP
___
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] On average how many board updates/sec can top Go programs do these days?

2008-01-15 Thread Gian-Carlo Pascutto

>> Playing randomly like that shouldn't work, but when you play Mogo et al,
>> you see that intelligent behaviour emerges.
>>
>
> Although interesting, I would hardly call that 'intelligence' :-)

Ah, the traditional flamewar topic: the definition of intelligence
shifts whenever a computer achieves what was formerly considered
intelligence.

> And I suspect how far it can achieve on 19x19 board (compare to human
> players of course).

Perfect play, no need to suspect anything. The real question is how far
humans are away from that :-)

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


Re: [computer-go] On average how many board updates/sec can top Go programs do these days?

2008-01-15 Thread Gian-Carlo Pascutto

> No wonder it plays so well at 9x9, because the max length of playout is
> only
> 81, it can 'see' what the board look like when the game ends.

The *average* length of a 9x9 playout is roughly 100 moves.
The max length is much larger.

On a 2.2Ghz Athlon64, I get about 10 000 playouts/second, at an
average of 100 moves per game this is 1 million updates/second.

There are many programs that are much faster. On the same hardware
libego would be about 6 million updates/second.

19 x 19 is a bit slower, because strings are bigger on average.

>
> This also explains that when I read the games MoGo against GNUGo, toward
> the
> end of the game, GNUGo would play PASS, but MoGo would continue to play at
> some very uncommon positions that a normal player would never consider.

Pass behaviour has little to do with the playouts themselves.

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


RE: [computer-go] On average how many board updates/sec can top Go programs do these days?

2008-01-15 Thread David Fotland
Many Faces is a strong traditional program.  It evaluates about 100 to 150
positions/sec in the middle game, and up to 500 positions/sec in the
endgame.  This is on one processor of a 2.3 GHz core duo.  It's for version
12 (not released).  Version 11 is slower.

 

I plan to make it faster, but right now I'm working on making the search
more efficient. 

 

Here is output from a middle game position against gnugo (at move 80).  Each
iteration only takes about twice as long as the previous one.  This one is
125 evaluations per second.  The tactical search evaluates 220377 nodes per
second.

 

Search 18-36 seconds (1 max evals),   0.3 secs in life reading level 5,
life reading 35 life()

New best 2432 (strat 352)d16  d16 d18 e18 c19 

New best 2691 (strat 497)d18  d18 

New best 2741 (strat 447)m13  m13 d18 b17 

New best 2994 (strat 151)q11  q11 q12 

Iteration 1 complete 20 moves in  2.46 secs.  Total evals 304, search life()
269, 

Final value is 2994 for q11 : q11 q12 

New best 2994 (strat 151)q11  q11 q12 

Iteration 2 complete 20 moves in  5.59 secs.  Total evals 698, search life()
663, 

Final value is 2994 for q11 : q11 q12 

New best 2898 (strat 151)q11  q11 q12 m13 o16 

Iteration 3 complete 20 moves in 11.56 secs.  Total evals 1420, search
life() 1385, 

Final value is 2898 for q11 : q11 q12 m13 o16 

New best 2831 (strat 151)q11  q11 q12 p10 o12 

Iteration 4 complete 20 moves in 25.74 secs.  Total evals 3223, search
life() 3188, 

Final value is 2831 for q11 : q11 q12 p10 o12 

Pass val 40.2, best val 56.6

 25.7 secs. life() 3223 (125/s), searchevals 1124, Nodes 1851 ( 72/s), full
gen 72, Q gen 1603, Moves 1848( 72/s), tree nodes 114/114, list 11472/11472,
tac nodes 5672726 (220377/s), evalopj 483514 (  9%), life 5153443 ( 91%) [
fixgralive 13538182 (239%) miai 3823111 ( 67%) tvpot 3669677 ( 65%), group
270464 (  5%), conn 342851 (  6%), eye 604303 ( 11%) ]

 

David

 

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of mingwu
Sent: Monday, January 14, 2008 5:45 PM
To: computer-go@computer-go.org
Subject: [computer-go] On average how many board updates/sec can top Go
programs do these days?

 

Hi,

I read on the web, and some other places that most Go programs can only
evaluate "a dozen" of moves per second.  Is this still true today on a
typical machine, say, single 2GHz CPU, 2GB memory?

And if this is still true, how can we make it faster?

To make the question more precise, I define a board updates as: suppose the
program places a new move on an existing board, and then update all the
blocks, dragons, eyes, connections, territory ... info, and output the
evaluation as a score ( e.g. B leads by 15.5 points).

I also read that UTC programs choose a move by running lots of simulations,
are their update speed any faster? Or they evaluation lots of boards, but
for each move they only calculate some very simple information (to me, it
will still be a surprise, because to evaluate a Go board, one at least have
to know the life/death of each dragon, that would require lots of
computation, which I think is the primary reason that why Go programs is
slow compared to Chess programs that can evaluate thousands or even millions
of boards per second). 

I'm just curious, any info / thoughts / comments is appreciated.






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

Re: [computer-go] On average how many board updates/sec can top Go programs do these days?

2008-01-14 Thread mingwu
>
> It does this by generating random legal moves. A string of legal moves, to
> the end, is one "playout."
>

OK, now I understand it generates a sequence of moves, all the way to the
game end; which means a playout typically contains 200 (from middle game) ~
300 (from opening) moves, and the so-called 'evaluation' becomes just
counting the stones.

Very interesting!

Then it doesn't need to know anything about those secondary, or 3rd-ary,
4th-ary ... concepts like 'eyes', 'connections', ...; it only need to know
the very basic game rules that any stone un-capturable is alive. Haha. "God
create integers, all the rest are just work of man" :-)

No wonder it plays so well at 9x9, because the max length of playout is only
81, it can 'see' what the board look like when the game ends. This is kind
of similar to the exhaustive search approach (depth-first in this case).

This also explains that when I read the games MoGo against GNUGo, toward the
end of the game, GNUGo would play PASS, but MoGo would continue to play at
some very uncommon positions that a normal player would never consider.



> Playing randomly like that shouldn't work, but when you play Mogo et al,
> you see that intelligent behaviour emerges.
>

Although interesting, I would hardly call that 'intelligence' :-)  And I
suspect how far it can achieve on 19x19 board (compare to human players of
course).
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] On average how many board updates/sec can top Go programs do these days?

2008-01-14 Thread David Doshay
The problem here is that you asked mutually contradictory things. You  
defined what you meant by a board update, in which you specified a  
list of things, and you also asked about "top programs." The top  
programs do not do the kinds of evaluations you specify, although  
older conventional programs do. The newer programs that are now the  
strongest are variations of the Monte Carlo method, which does  
statistical sampling, not the kinds of evaluation you specify.


Cheers,
David



On 14, Jan 2008, at 7:41 PM, mingwu wrote:

On Jan 14, 2008 6:15 PM, Jason House <[EMAIL PROTECTED]>  
wrote:


slow.  UCT (or generically Monte Carlo) can "evaluate" a position  
fairly

quickly (maybe 1k-100k per second depending on how heavy the playout
is), they don't give a reliable estimate.  To improve this, they  
end up


1K ~ 100 K / sec is much faster than "a dozen" / sec of a  
conventional program.


Do they calculate dragon safety (eyes, connections, patterns ...)?  
if not, the estimate will be VERY unreliable.
But if they do, how can they be this fast compared to the more  
conventional programs?


reevaluating positions more than once (maybe 100 times?) to get a more
reliable estimate.

why "reevaluating" the same position?

Sorry, I didn't go into their papers, can people who knows UCT, or  
actually working on UCT programs explain in a way that a layman can  
understand.  Thanks.


___
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] On average how many board updates/sec can top Go programs do these days?

2008-01-14 Thread Darren Cook
> 1K ~ 100 K / sec is much faster than "a dozen" / sec of a conventional
> program.
> 
> Do they calculate dragon safety (eyes, connections, patterns ...)? if not,
> the estimate will be VERY unreliable.

No, because they play the game out to the end where everything is as
safe as it can be. Then, because they had to guess what the best move is
at each point when playing it out, they play it out many thousands of
time, and see what percentage of those playouts led to a win for each side.

Playing randomly like that shouldn't work, but when you play Mogo et al,
you see that intelligent behaviour emerges.

> Sorry, I didn't go into their papers, can people who knows UCT, or actually
> working on UCT programs explain in a way that a layman can understand.

Sensei's has something.
  http://senseis.xmp.net/?UCT

Searching the archives to this list would also give explanations (though
you'll be overwhelmed by the noise I guess).

Darren


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


Re: [computer-go] On average how many board updates/sec can top Go programs do these days?

2008-01-14 Thread Jason House

On Mon, 2008-01-14 at 19:41 -0800, mingwu wrote:

> 1K ~ 100 K / sec is much faster than "a dozen" / sec of a conventional
> program.
> 
> Do they calculate dragon safety (eyes, connections, patterns ...)? if
> not, the estimate will be VERY unreliable. 

That's just it, they don't.  They play a *random* game and get a win or
loss (0 or 1) out of it.  Random games in better positions tend to win
more frequently.


> reevaluating positions more than once (maybe 100 times?) to
> get a more
> reliable estimate.
> 
> 
> 
> why "reevaluating" the same position?

It's like flipping a weighted coin... It takes many flips to figure out
how frequently it comes up heads or tails.


> Sorry, I didn't go into their papers, can people who knows UCT, or
> actually working on UCT programs explain in a way that a layman can
> understand.  Thanks.

That's really the basics of how monte carlo go works.  UCT is a method
of choosing which coins to flip and how to combine results deep in the
search tree.  I'm sure many of us are surprised how well this stuff
works.

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


Re: [computer-go] On average how many board updates/sec can top Go programs do these days?

2008-01-14 Thread mingwu
On Jan 14, 2008 6:15 PM, Jason House <[EMAIL PROTECTED]> wrote:


> slow.  UCT (or generically Monte Carlo) can "evaluate" a position fairly
> quickly (maybe 1k-100k per second depending on how heavy the playout
> is), they don't give a reliable estimate.  To improve this, they end up
>

1K ~ 100 K / sec is much faster than "a dozen" / sec of a conventional
program.

Do they calculate dragon safety (eyes, connections, patterns ...)? if not,
the estimate will be VERY unreliable.
But if they do, how can they be this fast compared to the more conventional
programs?


> reevaluating positions more than once (maybe 100 times?) to get a more
> reliable estimate.
>

why "reevaluating" the same position?

Sorry, I didn't go into their papers, can people who knows UCT, or actually
working on UCT programs explain in a way that a layman can understand.
Thanks.
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] On average how many board updates/sec can top Go programs do these days?

2008-01-14 Thread Jason House
I think your question boils down to answering what is meant by
"evaluate".  Chess has a heuristic that is easy to compute and gives a
good evaluation.  Go lacks this.  While probably an inferior evaluator,
the Bouzy 5/21 score estimator is an example from go that can be quite
slow.  UCT (or generically Monte Carlo) can "evaluate" a position fairly
quickly (maybe 1k-100k per second depending on how heavy the playout
is), they don't give a reliable estimate.  To improve this, they end up
reevaluating positions more than once (maybe 100 times?) to get a more
reliable estimate.

On Mon, 2008-01-14 at 17:44 -0800, mingwu wrote:
> Hi,
> 
> I read on the web, and some other places that most Go programs can
> only evaluate "a dozen" of moves per second.  Is this still true today
> on a typical machine, say, single 2GHz CPU, 2GB memory?
> 
> And if this is still true, how can we make it faster?
> 
> To make the question more precise, I define a board updates as:
> suppose the program places a new move on an existing board, and then
> update all the blocks, dragons, eyes, connections, territory ... info,
> and output the evaluation as a score ( e.g. B leads by 15.5 points).
> 
> I also read that UTC programs choose a move by running lots of
> simulations, are their update speed any faster? Or they evaluation
> lots of boards, but for each move they only calculate some very simple
> information (to me, it will still be a surprise, because to evaluate a
> Go board, one at least have to know the life/death of each dragon,
> that would require lots of computation, which I think is the primary
> reason that why Go programs is slow compared to Chess programs that
> can evaluate thousands or even millions of boards per second). 
> I'm just curious, any info / thoughts / comments is appreciated.
> 
> 
> ___
> 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/