Re: [Computer-go] Congratulations to Zen!

2011-05-10 Thread Fuming Wang
I found the game between Zen19 (white) v.s pachi2 (black) in round 8
quite interesting. A big pachi2 group (left side) was killed and
pachi2 kept adding stones to the dead group, while Zen19 seemed to
understood the situation and played only to prevent eye forming moves.
However, Zen19 failed two chances to prevent pachi2 from making the
group into seki. With this group alive, pachi2 should have won the
game, however, the official result is white (Zen19) win over resign.
Am I missing something? Why didn't Zen19 see the seki situation? and
why didn't pachi2 know that its group is already dead?

Best,
Fuming
___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go


Re: [Computer-go] Congratulations to Zen!

2011-05-10 Thread Fuming Wang

 Here is my understanding of it:

 The group is on the right side, not the left.

 White killed it, probably before move 170.

 Black wasted four moves (177, 261, 265, 281) enlarging it and leaving it
 dead in gote.

 At the end of the game it was still dead: White can kill by playing q6
 to make the coolie's hat shape.


That's right. Since it's lefted on the board, I just thought it was
seki, and I counted wrong as well. Without killing the black group,
the score is B=178, W=183 (splitting the two remaining points). So all
is well, and Zen19 was in control all the time. Still, I'm wondering
what's inside Zen19's head, removing all other dead stones while
leaving just that big group, and predicting all those wasted moves by
pachi2 leading to just 2 points win :)

Best,
Fuming
___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go


Re: [Computer-go] Pachi Mailing List

2011-04-17 Thread Fuming Wang

  (Also, we have finally set up a real (though simple) homepage for
 Pachi at http://pachi.or.cz/.)

  Happy go research,


According to information on Pachi's homepage, Pachi won a 7h game against
Zhou Junxun 9p, who is an active 9p player and has won at least one world
title. I would say this put Pachi at top amature or beginning pro level. On
the other hand, Pachi is around 3d on KGS, which I am not very familar, but
I am guessing that it only proves that Pachi is at about median amature
level. What's your assessment, and thinkings about this difference (if there
is a difference in your assessment)?

Best,
Fuming
___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

Re: [Computer-go] Computing CFG distance in practice

2011-01-25 Thread Fuming Wang
I think I understand what CFG is. CFG distance between two string is the
shortest distance between any stones of the two strings, is that right?

Thanks,
Fuming

On Tue, Jan 25, 2011 at 1:58 PM, Aja ajahu...@gmail.com wrote:

  Common Fate Graph (CFG) was proposed in the paper Learning on Graphs in
 the Game of Go (
 http://research.microsoft.com/apps/pubs/default.aspx?id=65629).

 In the game of Go, Except location proximity, I think liberty proximity is
 also important. That is to say, it's good to play proximity to the previous
 move, and also good to play proximity to the liberty points of the string
 that contains the previous move.

 Aja

 - Original Message -
 *From:* Fuming Wang fuming...@gmail.com
 *To:* computer-go@dvandva.org
 *Sent:* Tuesday, January 25, 2011 1:38 PM
 *Subject:* Re: [Computer-go] Computing CFG distance in practice

 how to calculate CFG distance?

 Fuming

 On Tue, Jan 25, 2011 at 3:49 AM, Brian Sheppard sheppar...@aol.comwrote:

 I use CFG distance only in the tree. The playout uses the concept
 adjacent
 which is trivial to compute.

 The only distance I am concerned about is the distance to the last move,
 and
 there are only 4 classes: distance 1,2,3, and 3. So it is cheap.

 The advantage is in semeais. Moves at CFG distance 3 are the outside
 liberties of the opponent's string.

 There was not a big difference compared to the other two heuristics. I
 found
 that

 - CFG is best
 - max(dx, dy) + (dx + dy)/2 is second best
 - Manhattan is third.

 Brian

 -Original Message-
 From: computer-go-boun...@dvandva.org
 [mailto:computer-go-boun...@dvandva.org] On Behalf Of Jacques Basaldúa
 Sent: Monday, January 24, 2011 2:41 PM
 To: computer-go@dvandva.org
 Subject: [Computer-go] Computing CFG distance in practice

 Hi,

 I got a lot of improvement recently (something you all
 did long time ago) with proximity heuristics. I am using

 Manhattan distance:
   d = max(dx, dy)

 and
   d = max(dx, dy) + (dx + dy)/2

 where dx = abs(ex - ox) and dy = abs(ey - oy)

 But many people report CFG distance to be superior.

 What do you do:

 a. Compute it in root. Then build a lookup table and
 use the LUT during playouts and tree search.

 b. Compute the shortest path from (ox, oy) to (ex, ey)
 connected by the stones on the board each time you need
 to evaluate a distance.

 I don't like a because it looks inefficient as the
 board changes a lot during the search.

 I don't like b because it looks computing intense
 unless there is some smart idea I am missing.


 Jacques.







 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go


  --

 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go


 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

Re: [Computer-go] Computing CFG distance in practice

2011-01-25 Thread Fuming Wang
Hi Brain,

Thanks for the explanation. I understand the procedure would give a more
meaningfull distance between an empty site and the last move. I went through
the original paper again, and still could not figure out how this
caluculation procedure is derived from that paper. CFG is a graph as defined
in the paper, and it is used to train some neuro-network for Go playing.
Could you or anyone point me to the place that CFG distance is first used?

Best,
Fuming

On Tue, Jan 25, 2011 at 10:41 PM, Brian Sheppard sheppar...@aol.com wrote:

  CFG distance:



 1) Start at the last move. That is the full set of points at distance 0.



 2) Iterate, starting at N=1. Calculate the points at distance N by:



 3) If an empty point is not at distance  N and is adjacent to a point at
 distance  N, then it is at distance N.



 4) If an occupied point is not at distance  N and is adjacent to a point
 at distance  N, then all of the points on that string are at distance N.



 5) I stop iterating at N=3. I have not checked whether there is useful
 information at higher N.



 Brian



 *From:* computer-go-boun...@dvandva.org [mailto:
 computer-go-boun...@dvandva.org] *On Behalf Of *Fuming Wang
 *Sent:* Tuesday, January 25, 2011 5:22 AM
 *To:* Aja; computer-go@dvandva.org

 *Subject:* Re: [Computer-go] Computing CFG distance in practice



 I think I understand what CFG is. CFG distance between two string is the
 shortest distance between any stones of the two strings, is that right?

 Thanks,
 Fuming

 On Tue, Jan 25, 2011 at 1:58 PM, Aja ajahu...@gmail.com wrote:

 Common Fate Graph (CFG) was proposed in the paper Learning on Graphs in
 the Game of Go (
 http://research.microsoft.com/apps/pubs/default.aspx?id=65629).



 In the game of Go, Except location proximity, I think liberty proximity is
 also important. That is to say, it's good to play proximity to the previous
 move, and also good to play proximity to the liberty points of the string
 that contains the previous move.



 Aja

  - Original Message -

 *From:* Fuming Wang fuming...@gmail.com

 *To:* computer-go@dvandva.org

 *Sent:* Tuesday, January 25, 2011 1:38 PM

 *Subject:* Re: [Computer-go] Computing CFG distance in practice



 how to calculate CFG distance?

 Fuming

 On Tue, Jan 25, 2011 at 3:49 AM, Brian Sheppard sheppar...@aol.com
 wrote:

 I use CFG distance only in the tree. The playout uses the concept
 adjacent
 which is trivial to compute.

 The only distance I am concerned about is the distance to the last move,
 and
 there are only 4 classes: distance 1,2,3, and 3. So it is cheap.

 The advantage is in semeais. Moves at CFG distance 3 are the outside
 liberties of the opponent's string.

 There was not a big difference compared to the other two heuristics. I
 found
 that

 - CFG is best
 - max(dx, dy) + (dx + dy)/2 is second best
 - Manhattan is third.

 Brian


 -Original Message-
 From: computer-go-boun...@dvandva.org
 [mailto:computer-go-boun...@dvandva.org] On Behalf Of Jacques Basaldúa
 Sent: Monday, January 24, 2011 2:41 PM
 To: computer-go@dvandva.org
 Subject: [Computer-go] Computing CFG distance in practice

 Hi,

 I got a lot of improvement recently (something you all
 did long time ago) with proximity heuristics. I am using

 Manhattan distance:
   d = max(dx, dy)

 and
   d = max(dx, dy) + (dx + dy)/2

 where dx = abs(ex - ox) and dy = abs(ey - oy)

 But many people report CFG distance to be superior.

 What do you do:

 a. Compute it in root. Then build a lookup table and
 use the LUT during playouts and tree search.

 b. Compute the shortest path from (ox, oy) to (ex, ey)
 connected by the stones on the board each time you need
 to evaluate a distance.

 I don't like a because it looks inefficient as the
 board changes a lot during the search.

 I don't like b because it looks computing intense
 unless there is some smart idea I am missing.


 Jacques.







 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go


   --

 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go


 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go



 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

Re: [Computer-go] Computing CFG distance in practice

2011-01-25 Thread Fuming Wang
Got it. Thanks!

Best,
Fuming

On Wed, Jan 26, 2011 at 4:51 AM, Brian Sheppard sheppar...@aol.com wrote:

  I believe it was a suggestion of the Mogo team.



 One of their papers refers to a topological distance defined as the
 Manhattan distance but where all points on the same string are at the same
 distance. it should be clear how this definition leads to the algorithm
 below.



 Brian



 *From:* computer-go-boun...@dvandva.org [mailto:
 computer-go-boun...@dvandva.org] *On Behalf Of *Fuming Wang
 *Sent:* Tuesday, January 25, 2011 3:42 PM

 *To:* computer-go@dvandva.org
 *Subject:* Re: [Computer-go] Computing CFG distance in practice



 Hi Brain,

 Thanks for the explanation. I understand the procedure would give a more
 meaningfull distance between an empty site and the last move. I went through
 the original paper again, and still could not figure out how this
 caluculation procedure is derived from that paper. CFG is a graph as defined
 in the paper, and it is used to train some neuro-network for Go playing.
 Could you or anyone point me to the place that CFG distance is first used?

 Best,
 Fuming

 On Tue, Jan 25, 2011 at 10:41 PM, Brian Sheppard sheppar...@aol.com
 wrote:

 CFG distance:



 1) Start at the last move. That is the full set of points at distance 0.



 2) Iterate, starting at N=1. Calculate the points at distance N by:



 3) If an empty point is not at distance  N and is adjacent to a point at
 distance  N, then it is at distance N.



 4) If an occupied point is not at distance  N and is adjacent to a point
 at distance  N, then all of the points on that string are at distance N.



 5) I stop iterating at N=3. I have not checked whether there is useful
 information at higher N.



 Brian



 *From:* computer-go-boun...@dvandva.org [mailto:
 computer-go-boun...@dvandva.org] *On Behalf Of *Fuming Wang
 *Sent:* Tuesday, January 25, 2011 5:22 AM
 *To:* Aja; computer-go@dvandva.org


 *Subject:* Re: [Computer-go] Computing CFG distance in practice



 I think I understand what CFG is. CFG distance between two string is the
 shortest distance between any stones of the two strings, is that right?

 Thanks,
 Fuming

 On Tue, Jan 25, 2011 at 1:58 PM, Aja ajahu...@gmail.com wrote:

 Common Fate Graph (CFG) was proposed in the paper Learning on Graphs in
 the Game of Go (
 http://research.microsoft.com/apps/pubs/default.aspx?id=65629).



 In the game of Go, Except location proximity, I think liberty proximity is
 also important. That is to say, it's good to play proximity to the previous
 move, and also good to play proximity to the liberty points of the string
 that contains the previous move.



 Aja

  - Original Message -

 *From:* Fuming Wang fuming...@gmail.com

 *To:* computer-go@dvandva.org

 *Sent:* Tuesday, January 25, 2011 1:38 PM

 *Subject:* Re: [Computer-go] Computing CFG distance in practice



 how to calculate CFG distance?

 Fuming

 On Tue, Jan 25, 2011 at 3:49 AM, Brian Sheppard sheppar...@aol.com
 wrote:

 I use CFG distance only in the tree. The playout uses the concept
 adjacent
 which is trivial to compute.

 The only distance I am concerned about is the distance to the last move,
 and
 there are only 4 classes: distance 1,2,3, and 3. So it is cheap.

 The advantage is in semeais. Moves at CFG distance 3 are the outside
 liberties of the opponent's string.

 There was not a big difference compared to the other two heuristics. I
 found
 that

 - CFG is best
 - max(dx, dy) + (dx + dy)/2 is second best
 - Manhattan is third.

 Brian


 -Original Message-
 From: computer-go-boun...@dvandva.org
 [mailto:computer-go-boun...@dvandva.org] On Behalf Of Jacques Basaldúa
 Sent: Monday, January 24, 2011 2:41 PM
 To: computer-go@dvandva.org
 Subject: [Computer-go] Computing CFG distance in practice

 Hi,

 I got a lot of improvement recently (something you all
 did long time ago) with proximity heuristics. I am using

 Manhattan distance:
   d = max(dx, dy)

 and
   d = max(dx, dy) + (dx + dy)/2

 where dx = abs(ex - ox) and dy = abs(ey - oy)

 But many people report CFG distance to be superior.

 What do you do:

 a. Compute it in root. Then build a lookup table and
 use the LUT during playouts and tree search.

 b. Compute the shortest path from (ox, oy) to (ex, ey)
 connected by the stones on the board each time you need
 to evaluate a distance.

 I don't like a because it looks inefficient as the
 board changes a lot during the search.

 I don't like b because it looks computing intense
 unless there is some smart idea I am missing.


 Jacques.







 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

Re: [Computer-go] Computing CFG distance in practice

2011-01-24 Thread Fuming Wang
how to calculate CFG distance?

Fuming

On Tue, Jan 25, 2011 at 3:49 AM, Brian Sheppard sheppar...@aol.com wrote:

 I use CFG distance only in the tree. The playout uses the concept
 adjacent
 which is trivial to compute.

 The only distance I am concerned about is the distance to the last move,
 and
 there are only 4 classes: distance 1,2,3, and 3. So it is cheap.

 The advantage is in semeais. Moves at CFG distance 3 are the outside
 liberties of the opponent's string.

 There was not a big difference compared to the other two heuristics. I
 found
 that

 - CFG is best
 - max(dx, dy) + (dx + dy)/2 is second best
 - Manhattan is third.

 Brian

 -Original Message-
 From: computer-go-boun...@dvandva.org
 [mailto:computer-go-boun...@dvandva.org] On Behalf Of Jacques Basaldúa
 Sent: Monday, January 24, 2011 2:41 PM
 To: computer-go@dvandva.org
 Subject: [Computer-go] Computing CFG distance in practice

 Hi,

 I got a lot of improvement recently (something you all
 did long time ago) with proximity heuristics. I am using

 Manhattan distance:
   d = max(dx, dy)

 and
   d = max(dx, dy) + (dx + dy)/2

 where dx = abs(ex - ox) and dy = abs(ey - oy)

 But many people report CFG distance to be superior.

 What do you do:

 a. Compute it in root. Then build a lookup table and
 use the LUT during playouts and tree search.

 b. Compute the shortest path from (ox, oy) to (ex, ey)
 connected by the stones on the board each time you need
 to evaluate a distance.

 I don't like a because it looks inefficient as the
 board changes a lot during the search.

 I don't like b because it looks computing intense
 unless there is some smart idea I am missing.


 Jacques.







 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

Re: [Computer-go] Fwd: News on Tromp-Cook ?

2011-01-02 Thread Fuming Wang
Hi Aja,


On Sun, Jan 2, 2011 at 1:29 AM, Aja ajahu...@gmail.com wrote:

  Hi Fuming,

  C*RAVE+(1-C)*UCT

 C is computed dynamically in search, but not set to a fixed value. Maybe
 you mean UCT_C,

 UCT=UCT_mean+UCT_C*exploration_term

 What Petr and Olivier do, I think, is set UCT_C to 0, to disable the
 exploration_term, not the weight of RAVE.


Without the exploring term, the UCT is just mean win rate, so there's no
point in calling it UCT or UCB. Basically, what people have been saying is
that currently the tree search is based on combination of sequence dependent
rate (average win rate) and sequence independent/almost independent (rave
rate) instead of combination of exploitation (win rate) and exploration (UCB
term). Is this understanding close?

Fuming
___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

Re: [Computer-go] Fwd: [computer-go] Experiments with UCT

2011-01-01 Thread Fuming Wang
Got it. Thx.

Fuming

On Fri, Dec 31, 2010 at 10:25 PM, Go Fast fas...@gmail.com wrote:



 -- Forwarded message --
 From: Rémi Coulom remi.cou...@free.fr
 Date: Tue, Jul 25, 2006 at 8:22 AM
 Subject: [computer-go] Experiments with UCT
 To: computer-go computer...@computer-go.org


 Hi,

 I mentioned UCT in one of my previous messages to the list:
 http://zaphod.aml.sztaki.hu/papers/ecml06.pdf

 I tried it in Crazy Stone. I found that the algorithm described in the
 paper does not work well, but I managed to improve it a lot with a small
 change: I used 1/sqrt(20) instead of 1/sqrt(2) for the C_p constant. It now
 seems to work very well.

 Here is a summary of how it works:
  - Use probability of winning as score, not territory
  - Use the average outcome as position value
  - Select the move that maximizes v + sqrt((2*log(t))/(10*n))

 v is the value of the move (average outcome, between 0 and 1), n the number
 of simulations of this move, and t the total number of simulations at the
 current position. In case a move has n = 0, it is selected first.

 Here are experiment results with Crazy Stone. 170 games are played against
 GNU Go 3.6 at level 10, from 85 different starting positions, alternating
 colors, at various time control (time per game), 1 CPU at 2.2 GHz.

version 0005  UCT
  2 min  40%   46.7%
  4 min  48.2% 56.6%
  8 min  52.9% 64.7%
 16 min  57.4% 67.6%
 32 min  66.6% 71.6%

 I have tried hard to improve it, but it seems very difficult. Using a more
 clever backup operator may help, but I have not managed to measure a
 significant difference yet.

 I thank Yizao for letting me know about UCT. His program, MoGo, seems to be
 doing very well on CGOS. Maybe Yizao can tell us more about his experiments.

 Rémi

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


 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

Re: [Computer-go] How to Research Brilliantly?

2010-12-31 Thread Fuming Wang
On Fri, Dec 31, 2010 at 3:49 PM, David Fotland fotl...@smart-games.comwrote:

 Monte Carlo go was around for a long time.  See Bouzy's papers for example.

 The UCT formula for balancing exploration and exploitation came from
 research on the one-armed bandit problem, not related to go.

 Mogo and Crazystone's contributions were to show that monte carlo go could
 be competitive with traditional programs, after a decade or more when monte
 carlo was weaker.


 Exactly, without Mogo and Crazystone, we would still be just as good as
traditional programs, i.e. not as good as today's strong programs.

Regards,
Fuming
___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

Re: [Computer-go] Fwd: News on Tromp-Cook ?

2010-12-31 Thread Fuming Wang
Hi Remi,

Thanks for the suggestions. Sorry for inaccuracies in my previous
statements. Now I have read your paper more carefully, I find in the
appendex many discussions related to improvements on playout move
selections. On another note, I find that formula you gave on variance
calculation very interesting. I am a little confused on the meaning of
symble sigma in the formula, is it the number of wins of S trials? If that's
the case, then the meaning of sigma_sup(2) can not be easily understood.

Best regards,

Fuming

On Fri, Dec 31, 2010 at 8:31 PM, Rémi Coulom remi.cou...@free.fr wrote:

 Hi,

 I'd like to advise against using the exact algorithm I described in my 2006
 paper. I compared it to UCT at that time, and UCT performed better. I am
 sorry I don't have a reference to my data any more. I posted the results to
 the mailing list. It used to be archived at that link:
 http://computer-go.org/pipermail/computer-go/2006-July/005737.html
 I hope somebody kept an archive an can forward it to the list. The title of
 that message was Experiments with UCT. It is too bad that the archive of
 that time is gone. Is it available anywhere? The google archive starts
 later.

 The biggest difference between the general MCTS idea I proposed and the
 UCT-like algorithms everybody is using today is that the backup operator was
 not the mean of playouts. I tried to consider selectivity and backup
 independently. I still believe it is a powerful idea. My feeling is that a
 good backup operator should be able to make a good decision independently of
 selectivity. That is to say, even if all the moves are explored uniformly,
 the backup operator should converge to min/max. Backing up the mean forces
 current programs to be extremely selective so that they rapidly converges to
 min/max.

 The only part of the tree where it is not important to converge rapidly to
 min/max is the root. I am aware of some experiments that indicate that being
 less selective at the root may improve strength. The efficiency of root
 parallelization may also be an indication that current algorithms are too
 selective at the root. So my vague intuition is that it may be worth trying
 to find a good backup operator that works with less selective search.

 Anyway, tweaking the MCTS formula you are using will never make your
 program very strong. Clever playouts are immensely more important,
 especially for 19x19.

 Rémi

 On 31 déc. 2010, at 07:02, Fuming Wang wrote:

 
 
  -- Forwarded message --
  From: Fuming Wang fuming...@gmail.com
  Date: Fri, Dec 31, 2010 at 1:50 PM
  Subject: Re: [Computer-go] News on Tromp-Cook ?
  To: Aja ajahu...@gmail.com
 
 
  Hi Aja,
 
  Remi and S. Gelly's paper both come out in 2006,and I just checked that
 they did not reference each other. I just read Remi's paper again, and
 realized that CrazyStone's tree search approach is actually different from
 the popular UCT method. Similar to you, I haven't been able to get good
 results from the popular UCT method, so I might try CrazyStone's method for
 a change. In Remi's paper, CrazyStone is only having around 30% winning rate
 against Gnu Go 3.6, and now Erica is winning world competitions,this
 actually proves that high quality MC simulation (realized for the first time
 in MoGo) is more important than tree search algorithms.
 
  Best regards,
  Fuming
 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

Re: [Computer-go] News on Tromp-Cook ?

2010-12-31 Thread Fuming Wang
That was such an amazingly crazy period. I am sure some day, some one will
write a book (or two) about all of this, so that latecomers get to know all
the details.

Best Wishes!
Fuming

On Sat, Jan 1, 2011 at 12:22 AM, Ingo Althöfer 3-hirn-ver...@gmx.dewrote:

  ... but
  championship events are relatively poor predictors of skill because of
  their limited number of sample points. something like cgos ranking
  over time (among those who participate) is a pretty good way to
  compare computer go playing programs.

 Both types of competition do have their justification.
 It is similar to sports:
 the one with the best average 100 meter speed (taking over the summer)
 will be top in a list, and the winner of the olympic gold medal
 will have lots of prestige.

 At least some programmers use CGOS and KGS simply for testing
 this and that, and only at the big events (like computer olympiads)
 their seemingly strongest version (including opening book, pattern
 data bases and so on) is presented.

 My list was meant in a slightly different sense:
 MoGo as a Go program simply was not there in 2006,
 when Crazy Stone started to run up the charts.
 And it is typically easier (also psychologically)
 to attack some goal when someone else has shown before
 that it is in principle possible to achieve.

 Happy new year,
 Ingo.


 --
 GMX DSL Doppel-Flat ab 19,99 Euro/mtl.! Jetzt auch mit
 gratis Notebook-Flat! http://portal.gmx.net/de/go/dsl
 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

Re: [Computer-go] News on Tromp-Cook ?

2010-12-30 Thread Fuming Wang
This is certainly a good time to sit back and look at what got us here. The
following key ideas have been mentioned so far: UCB, MCTS, RAVE, Pattern and
Go knowledge during MC simulation.These ideas are all essential to a strong
MC based Go program.If we want to pick the most important idea that got us
here, I would say it is the realization that adding Go Pattern and Go
Knowledge to MC simulation can significantly improve the quality of board
evaluation. This is amount to the important sampling concept in MC
integration, which is very import for Monte Carlo applications in many
fields. MC simulation with importance sampling give us for the first time a
reasonablly accurate evaluation function for Go. UCB, MCTS, RAVE are
certainly very important, however, it is still possible that new approaches
that can achieve good results with just importantly samples MC simulation.
So, I think MoGo is the most important break-through.

Happy New Year, everyone!
Fuming



On Fri, Dec 31, 2010 at 9:20 AM, Aja ajahu...@gmail.com wrote:

 Hi Jeff,

 When, do you think, did Mogo started dominating all the KGS computer
 events and CGOS, and also was the first to extend that dominance from 9x9 to
 19x19.?

 In Computer Olympiad 2007, Steenvreter was gold medal on 9x9. At the final
 match of 19x19, it's easily to see that Mogo and Crazy Stone were close
 (finally Mogo 1st and CS 2ed). But, at the end of 2007, Crazy Stone defeated
 Mogo and won the UEC Cup (19x19). Afterwards, Many Faces won 9x9 and 19x19
 on 2008. Zen and Erica won 2009 and 2010, both continuing Crazy Stone
 thread.

 Mogo's biggest contributions, so far, in my view, are
 1.Applied UCT to computer Go, and such application came from the idea
 MCTS that proposed in 2006 by Remi Coulom. Crazy Stone was using MCTS to
 win 9x9 in 2006 Computer Olympiad.
 2.See 3x3 patterns around the previous move.
 3.RAVE (strictly speaking, it is invented by David Silver).

 UCT and RAVE are for both for the tree search. I think Crazy tone's
 contribution for the playout is of same/or more important, because the
 quality of simulations decide the playing strength much. From this view, we
 should give Crazy Stone more and more credit.

 I don't mean to raise any debate. Mogo does has important contributions,
 but it's not so hard to assign credit to Crazy Stone. By the way, we should
 not forget Fuego and MyGoFriend. Anyway, I think SenSei's description is
 out-of-date.

 Aja


 -原始郵件- From: Jeff Nowakowski
 Sent: Friday, December 31, 2010 5:43 AM
 To: computer...@computer-go.org

 Subject: Re: [Computer-go] News on Tromp-Cook ?

 On 12/30/2010 01:58 PM, David Fotland wrote:

 You should also give more credit to CrazyStone as an early strong program
 that contributed many ideas, comparable to Mogo.  Remi is Aja's advisor,
 so
 Erica continues the CrazyStone thread.


 I did mention CrazyStone, and the Sensei's page lists it first as the
 program that started the new wave of MCTS programs by winning the 9x9
 gold medal at the ICGA Computer Olympiad, in 2006.  Like I said in my
 first message, though, it's hard to assign credit, and I don't mean to
 slight other programs.

 However, MoGo was the program that really got people to sit up and take
 notice, because it started dominating all the KGS computer events and
 CGOS, and also was the first to extend that dominance from 9x9 to 19x19.
 I believe the biggest breakthroughs were made with MoGo (building, of
 course, on earlier ideas). This is easily verified by going back to the
 archives and seeing how many people patterned their program after MoGo.

 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go
 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

[Computer-go] Fwd: News on Tromp-Cook ?

2010-12-30 Thread Fuming Wang
-- Forwarded message --
From: Fuming Wang fuming...@gmail.com
Date: Fri, Dec 31, 2010 at 1:50 PM
Subject: Re: [Computer-go] News on Tromp-Cook ?
To: Aja ajahu...@gmail.com


Hi Aja,

Remi and S. Gelly's paper both come out in 2006,and I just checked that they
did not reference each other. I just read Remi's paper again, and realized
that CrazyStone's tree search approach is actually different from the
popular UCT method. Similar to you, I haven't been able to get good results
from the popular UCT method, so I might try CrazyStone's method for a
change. In Remi's paper, CrazyStone is only having around 30% winning rate
against Gnu Go 3.6, and now Erica is winning world competitions,this
actually proves that high quality MC simulation (realized for the first time
in MoGo) is more important than tree search algorithms.

Best regards,
Fuming


On Fri, Dec 31, 2010 at 12:41 PM, Aja ajahu...@gmail.com wrote:

   Hi Fuming,

 The idea of improving the quality of simulation is more earlier, than
 Mogo’s paper, in the Appendix A of Remi Coulom’s CG2006 paper “Efficient
 Selectivity and Backup Operators in Monte-Carlo Tree Search”(
 http://remi.coulom.free.fr/CG2006/CG2006.pdf):

 The choice of a more clever probability distribution can improve the
 quality of the Monte-Carlo estimation

 I am not sure if Remi was the first one proposing this concept in Computer
 Go field, but Mogo definitely was not.

 I was in Amstertam attending Computer Olympiad 2007, in the team of Chinese
 chess program “Deep Elephant”. I played with Crazy Stone, Mogo and was very
 surprised to see they beat me. Afterwards, Mogo’s paper is so easy to
 understand/implement for me that trigger me to work on Computer Go. Indeed,
 Mogo has huge contributions, especially in the popularization of MCTS. I
 don’t mean to weaken or deny it, but just want to point out Crazy Stone’s
 great contributions. In Erica, I use CrazyStone-like simulations
 successfully. Mogo-type simulation almost does not help Erica at all.

 If we want to numerate the strongest programs, we cannot forget Fuego(2010
 UEC Cup winner) and MyGoFriend(Computer Olympiad 2010, 9x9 winner). For
 academic progress, we cannot forget Crazy Stone. For practical development
 usage, we cannot forget GnuGo and GoGui released by Fuego team. There were
 really too many contributors in the past.

 Happy New Years to all.

 Aja

  *From:* Fuming Wang fuming...@gmail.com
 *Sent:* Friday, December 31, 2010 10:16 AM
 *To:* Aja ajahu...@gmail.com ; computer-go@dvandva.org
  *Subject:* Re: [Computer-go] News on Tromp-Cook ?

 This is certainly a good time to sit back and look at what got us here. The
 following key ideas have been mentioned so far: UCB, MCTS, RAVE, Pattern and
 Go knowledge during MC simulation.These ideas are all essential to a strong
 MC based Go program.If we want to pick the most important idea that got us
 here, I would say it is the realization that adding Go Pattern and Go
 Knowledge to MC simulation can significantly improve the quality of board
 evaluation. This is amount to the important sampling concept in MC
 integration, which is very import for Monte Carlo applications in many
 fields. MC simulation with importance sampling give us for the first time a
 reasonablly accurate evaluation function for Go. UCB, MCTS, RAVE are
 certainly very important, however, it is still possible that new approaches
 that can achieve good results with just importantly samples MC simulation.
 So, I think MoGo is the most important break-through.

 Happy New Year, everyone!
 Fuming



 On Fri, Dec 31, 2010 at 9:20 AM, Aja ajahu...@gmail.com wrote:

 Hi Jeff,

 When, do you think, did Mogo started dominating all the KGS computer
 events and CGOS, and also was the first to extend that dominance from 9x9 to
 19x19.?

 In Computer Olympiad 2007, Steenvreter was gold medal on 9x9. At the final
 match of 19x19, it's easily to see that Mogo and Crazy Stone were close
 (finally Mogo 1st and CS 2ed). But, at the end of 2007, Crazy Stone defeated
 Mogo and won the UEC Cup (19x19). Afterwards, Many Faces won 9x9 and 19x19
 on 2008. Zen and Erica won 2009 and 2010, both continuing Crazy Stone
 thread.

 Mogo's biggest contributions, so far, in my view, are
 1.Applied UCT to computer Go, and such application came from the idea
 MCTS that proposed in 2006 by Remi Coulom. Crazy Stone was using MCTS to
 win 9x9 in 2006 Computer Olympiad.
 2.See 3x3 patterns around the previous move.
 3.RAVE (strictly speaking, it is invented by David Silver).

 UCT and RAVE are for both for the tree search. I think Crazy tone's
 contribution for the playout is of same/or more important, because the
 quality of simulations decide the playing strength much. From this view, we
 should give Crazy Stone more and more credit.

 I don't mean to raise any debate. Mogo does has important contributions,
 but it's not so hard to assign credit to Crazy Stone. By the way, we should
 not forget Fuego and MyGoFriend

Re: [Computer-go] intel i5 760 vs amd Phenom II X6 1055T

2010-12-08 Thread Fuming Wang
I have bought a AMD phenom II x4 965 with 4 cores at 3.6 GHz. I have tested
against intel i5 760 with 4 core at 2.8 GHz. I made two tests, one with pure
integer operation (MC Go simulation), another with some floating point
operation (some other type of MC simulation). The result is quite
interesting. The intel cpu is 20% faster on simulation containing some
floating point operation, while the AMD cpu is 20% faster on pure integer
operation (MC Go simulation). So, basically, what i found is that intel i5
and AMD phenom II of same frequency has similar performanc(5% slower) on
pure integer operation. So amd 1090T with six cores would have about 50%
performance gain on i5 760 with 4 cores.

Hope this is helpful to people who building Go playing clusters.

Best,
Fuming

On Tue, Nov 30, 2010 at 7:49 PM, Fuming Wang fuming...@gmail.com wrote:

 I have settled on i5 760, but I'm thinking of purchasing a 1090T soon, so
 hopefully, I will have a report soon.

 Fuming

 On Tue, Nov 30, 2010 at 10:46 AM, Petr Baudis pa...@ucw.cz wrote:

 On Tue, Nov 30, 2010 at 10:30:49AM +0800, Fuming Wang wrote:
  I am not doing any tree updates, just pure MC simulation.

 Ok, I see!

  1090T has 6 core and i5 has 4 core, however i5 is better at level 3
  caching (I've been told), so don't know which factor dominates.

 I do not think you really need L3 for anything in case of just pure MC
 simulation, unless your board structure is prohibitively large?

  i7 920 with 6 core should definitely better than 1090T.

 i7-920 has just four cores. And the benchmarks I have seen had been
 _far_ from clearly in favor even of the i7 iterations newer than 920.
 Overally, it seems to boil down to the particular workload. So I'm
 really curious.

Petr Pasky Baudis
 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go



___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

Re: [Computer-go] Congratulations to Zen!

2010-12-06 Thread Fuming Wang
Thanks Nick. Sorry for the delay caused by sf9x9bot. I think I have got the
kgs-genmove_cleanup command handled correctly after the last round. The
followings are some tips that may be helpful for new comers of kgs
tournaments:

(1)I read the kgsGtp document, but failed to realize that
kgs-genmove_cleanrup actually has an arguement instead of just the command
itself. So instead one token from 'kgs-genmove_cleanup', I got two tokens
from 'kgs-genmove_cleanup b', with the argument stating the color of my
engine. This messed up my gtp processing code, and it took a while for me to
found this cause.

(2)kgsGtp sends a 'quit' command to engine after a game. Initially, I
ignored this command, then stuff happens, like resigning at the first move,
or sending ridiculous moves at the beginning of the game (first or second
move on edge). I think the reason is that kgsGtp send multiple copies of a
message to the server, and when the next game starts immediately after the
previous one, messages from the previous one can be delivered to the next
game. I fixed this by terminate the engine process after receiving the
'quit' command, and causing either kgsGtp to restart the engine again or
kgsGtp itself get restarted again, this seems to have fixed the problem.

There are other issues are mainly relate to my engine implementation.

Anyway, thanks a lot for making this happen, and I'm already looking forward
to the next tournament.

Fuming


On Tue, Dec 7, 2010 at 5:51 AM, Nick Wedd n...@maproom.co.uk wrote:

 Congratulations to Zen9, winner of yesterday's KGS 9x9 bot tournament!

 My report is now at http://www.weddslist.com/kgs/past/66/index.html

 Nick
 --
 Nick Weddn...@maproom.co.uk
 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

Re: [Computer-go] intel i5 760 vs amd Phenom II X6 1055T

2010-11-30 Thread Fuming Wang
I have settled on i5 760, but I'm thinking of purchasing a 1090T soon, so
hopefully, I will have a report soon.

Fuming

On Tue, Nov 30, 2010 at 10:46 AM, Petr Baudis pa...@ucw.cz wrote:

 On Tue, Nov 30, 2010 at 10:30:49AM +0800, Fuming Wang wrote:
  I am not doing any tree updates, just pure MC simulation.

 Ok, I see!

  1090T has 6 core and i5 has 4 core, however i5 is better at level 3
  caching (I've been told), so don't know which factor dominates.

 I do not think you really need L3 for anything in case of just pure MC
 simulation, unless your board structure is prohibitively large?

  i7 920 with 6 core should definitely better than 1090T.

 i7-920 has just four cores. And the benchmarks I have seen had been
 _far_ from clearly in favor even of the i7 iterations newer than 920.
 Overally, it seems to boil down to the particular workload. So I'm
 really curious.

Petr Pasky Baudis
 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

[Computer-go] intel i5 760 vs amd Phenom II X6 1055T

2010-11-28 Thread Fuming Wang
These two has simular prices. Any one know which cpu is better for Go MC
simulation?
___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

Re: [Computer-go] XMU-FPGA

2010-11-19 Thread Fuming Wang
No, I am not familar with Zeon-FPGA. Could you post a link? Google search is
not very informative.

Thanks,
Fuming

On Fri, Nov 19, 2010 at 5:47 AM, terry mcintyre terrymcint...@yahoo.comwrote:

 I am curious, what sort of hardware was used for XMU-FPGA?

 Are you familiar with Convey's Zeon-FPGA hybrids, which use an FPGA as a
 coprocessor?

 Terry McIntyre terrymcint...@yahoo.com

 Unix/Linux Systems Administration
 Taking time to do it right saves having to do it twice.





 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

Re: [Computer-go] XMU-FPGA

2010-11-19 Thread Fuming Wang
Found it. Convey Computer Corporation. There is quite a difference though.
They are providing a general computing platform with customizable
instructions, while we just designed a circuit for a specific application.

Fuming

On Fri, Nov 19, 2010 at 8:46 PM, Michael Williams 
michaelwilliam...@gmail.com wrote:

 Try the correct spelling instead -- Convey Xeon FPGA.


 On Fri, Nov 19, 2010 at 6:45 AM, Fuming Wang fuming...@gmail.com wrote:
  No, I am not familar with Zeon-FPGA. Could you post a link? Google search
 is
  not very informative.
 
  Thanks,
  Fuming
 
  On Fri, Nov 19, 2010 at 5:47 AM, terry mcintyre terrymcint...@yahoo.com
 
  wrote:
 
  I am curious, what sort of hardware was used for XMU-FPGA?
  Are you familiar with Convey's Zeon-FPGA hybrids, which use an FPGA as a
  coprocessor?
 
  Terry McIntyre terrymcint...@yahoo.com
 
  Unix/Linux Systems Administration
  Taking time to do it right saves having to do it twice.
 
 
 
 
  ___
  Computer-go mailing list
  Computer-go@dvandva.org
  http://dvandva.org/cgi-bin/mailman/listinfo/computer-go
 
 
  ___
  Computer-go mailing list
  Computer-go@dvandva.org
  http://dvandva.org/cgi-bin/mailman/listinfo/computer-go
 
 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

Re: [Computer-go] 9x9 opening data (was: XMU-FPGA)

2010-11-12 Thread Fuming Wang
Darren,

I was able to parse the file without any problem. I considered all board
configurations in file as GOOD positions, so that any move that can reach
any board position in the file is considered a good move or a hit. I was
testing against GNU Go,and wasn't get much hit after 2 moves, which is about
the same as my small open book build out of 100 professional games, which
seems strange to me. Anyway, I could have made a mistake here or there in
rush of time because I was preparing for the competition. I will test it
again, now I have more time.

Fuming

On Fri, Nov 12, 2010 at 9:01 AM, Darren Cook dar...@dcook.org wrote:

  By the way, I tried to use the game record data you posted on the
  web, but has pretty low hit-rate during tests. So I had to use my own
  calculated one for the competition. It seems strange to me that you
  have so many games recorded and has such low hit-rate.

 Can you tell me how you used it? Did you have any trouble with the format?

 Perhaps you have some advice for other people starting to look at it?
 (It is difficult to write documentation as the author, as everything is
 obvious.)

 I imagine it is difficult to use it as-is for an opening book, without
 some processing. (E.g. putting all the positions into an alpha-beta tree
 and scoring all nodes that way, then storing the joint-best moves from
 each node.) Did you do anything like that?

 Poor hit rate could be due to weak opponents who play bad moves and
 leave the book early? It is also quite focused on the tengen-opening.
 (E.g. roughly 30,000 games (*) from 5,5; 10,000 from 3,4, 5000 for each
 of 4,4 and 3,4.)

 Darren

 *: where a game is defined as the first 12 moves of the game.

___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

Re: [Computer-go] XMU-FPGA

2010-11-11 Thread Fuming Wang
Here is a link that has information about the competition event we
participated. It is in Chinese, but has a few pictures.

http://caai.cn/contents/15/2335.html

Fuming

On Tue, Nov 9, 2010 at 8:42 PM, Fuming Wang fuming...@gmail.com wrote:


 Our FPGA implementation of 9x9 Go, XMU-FPGA, had just participated a
 national Computer games competition event in Beijing, China. There are 6
 participant in 9x9 Go category, with one of them quite strong (Lingo), while
 3 others with reasonable strengths,including XMU-FPGA (about as strong as
 gnu go 3.8). XMU-FPGA did quite well, and finished second place after Lingo.
 Details of our FPGA implementation has been published at a recent
 conference, and people interested can send me email in private for a copy of
 the paper.

 Best regards,

 Fuming Wang


___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

Re: [Computer-go] XMU-FPGA

2010-11-11 Thread Fuming Wang
Other than Beili Cup, which is better than google's North Li Cup, the
google's translation is slightly more understandable than Bing's.

Fuming

On Thu, Nov 11, 2010 at 11:01 PM, Brian Sheppard sheppar...@aol.com wrote:

  To my surprise, Bing translated that page to quite understandable
 English.



 *From:* computer-go-boun...@dvandva.org [mailto:
 computer-go-boun...@dvandva.org] *On Behalf Of *Fuming Wang
 *Sent:* Thursday, November 11, 2010 5:33 AM
 *To:* computer-go@dvandva.org
 *Subject:* Re: [Computer-go] XMU-FPGA



 Here is a link that has information about the competition event we
 participated. It is in Chinese, but has a few pictures.

 http://caai.cn/contents/15/2335.html


 Fuming

 On Tue, Nov 9, 2010 at 8:42 PM, Fuming Wang fuming...@gmail.com wrote:


 Our FPGA implementation of 9x9 Go, XMU-FPGA, had just participated a
 national Computer games competition event in Beijing, China. There are 6
 participant in 9x9 Go category, with one of them quite strong (Lingo), while
 3 others with reasonable strengths,including XMU-FPGA (about as strong as
 gnu go 3.8). XMU-FPGA did quite well, and finished second place after Lingo.
 Details of our FPGA implementation has been published at a recent
 conference, and people interested can send me email in private for a copy of
 the paper.

 Best regards,

 Fuming Wang



 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

[Computer-go] XMU-FPGA

2010-11-09 Thread Fuming Wang
Our FPGA implementation of 9x9 Go, XMU-FPGA, had just participated a
national Computer games competition event in Beijing, China. There are 6
participant in 9x9 Go category, with one of them quite strong (Lingo), while
3 others with reasonable strengths,including XMU-FPGA (about as strong as
gnu go 3.8). XMU-FPGA did quite well, and finished second place after Lingo.
Details of our FPGA implementation has been published at a recent
conference, and people interested can send me email in private for a copy of
the paper.

Best regards,

Fuming Wang
___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

Re: [Computer-go] monte carlo weakness

2010-09-08 Thread Fuming Wang
I am amazed at the rating that Valk3.5_100 got with just 100 playouts/move.
There are usually around 50 candidate move, and 100 playouts would give each
candidate just 2 playouts. It still amazes me how you can get reasonable
statistics with just 2 playouts. Statistically, this is unthinkable. I am
guessing that your playout engine has a lot of Go ability in itself, so that
every playout gives meaningful feedback, instead of relying on the
statistics of lots of playouts. Please enlight me.

Regards,
Fuming

On Wed, Sep 8, 2010 at 5:37 AM, valky...@phmp.se wrote:

 Quoting Dave Dyer dd...@real-me.net:


  But you have never (to my knowledge) layed out what way that is.


 You're quite right here.  I'm  not advocating a specific change,  just
 pointing out that all the effort going into building faster  monte carlo
 engines may be irrelevant, because the programs actually  need better
 steering.


 I have been working on Valkyria since 2006. Everytime I do something it
 becomes slower. Meanwhile it has become about 1000 Elo points stronger (Only
 200 Elo is due to faster computer). If you talk about people on running
 their programs on as large clusters as possible, then I may agree, but
 otherwise I think you misunderstand completely what people are doing to
 improve their programs.


  I know we disagree on this point, but I believe chess has reached  it's
 current state of success MOSTLY because of Moore's law.

 It always was believed that Go was would have to be solved by other
  means, perhaps even (gasp!) understanding the game.   Monte carlo  has
 given some credibility to the theory that Moores law may be  enough after
 all.  I'm arguing not.


 Monte-carlo search *is* the other means. Random exploration is exactly
 what I do when I play go. The only difference is that my search is goal
 directed so many playouts is just a 3-10 ply deep locally. As consequence I
 am weaker than MC-program in actually evaluating the whole board position.
 This weakness means I have to painfully compensate for it by counting
 territory to set the ambition for the goals I search. I sometime have a
 great intutions about playing some vital point. This caused by nothing else
 but the human variant of AMAF.

 Sure I do have a rich set of concepts that pop up in my thinking. But I am
 afraid that this are just labels that I attach to my search results. I think
 higher level concepts are very important for communicating about go, but
 they are irrelevant for actually playing well.

 The kind of knowledge about go that actally is essential for computers and
 humans is the ability to play tactically correct quick and without error.
 This means undrstanding LD, seki, semeai, ladders and so on. And this is
 also what makes Valkyria strong.

 The reason Valkyria is not yet unbeatable is that the knowledge the
 playouts have is still on a kyu level and very fragmented. There are
 situations where I see the obious move in an instant where Valkyria needs to
 search using several 100 playouts to get it right. In many cases it plays
 perfect 100% of the time.

 Get the fundmental knowledge right + MCTS = strong go

 This has nothing to do with Moores Law. Valk3.5_100 is rated 1881  for 9x9
 which is stronger than Gnugo. It only plays 100 playouts. When I started
 doing MC evaluation with Viking5 in 2005 I had to spend 10 playouts to
 get close to beating gnugo.

 Just another perspective
 Magnus




  ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go



 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

Re: [Computer-go] Fuego 04 native Windows

2010-06-23 Thread Fuming Wang
Rene,

On Tue, Jun 22, 2010 at 9:58 AM, René van de Veerdonk 
rene.vandeveerd...@gmail.com wrote:

 Fuming and Petr,

 I was giving the tree-search some thought over the weekend and made some
 crude estimates based on my own MCTS implementation. I did not make fresh
 timing measurements, just added/subtracted some numbers to get to where I
 want to be. Assuming you want to maintain RAVE and win-rate information, I
 am guesstimating that for my quasi-heavy playouts I find an overhead of
 about 17% for the tree-search part (50,000 playouts total). My quasi-heavy
 playouts run at 20,000 playouts/second, and I am estimating that if you
 appropriately break the tree-search portion in descend, update, copy, and
 misc threads, you can get the overhead to come down to, say, 5%. Then, if
 you completely outsource the playouts to the FPGA, i.e., you make them
 cost-free (ignoring communication costs), you would be able to boost the
 playouts twenty-fold, to 400,000, at which point you become CPU limited.
 Assume further that my coding can be further improved by another 2x (not
 unreasonable at all), and you get to 800,000.


I it is feasible to send playouts out to the FPGA, because playouts are
dynamic, depending on the structure of the tree, therefore, FPGA has to run
simulations on small number of playouts very fast, which FPGA is not good
at, It is good at running playouts of one board position for thousands of
times quickly (at least our implementation is like this).


 Fuming, are you planning to run a version of your program on KGS/CGOS at
 some time in the future? Than we can all see it in action.


We have not such plans. Right now, the system requires human intervention to
start and end a game.  We went to a national computer go event in Shenzhen,
China, but performed poorly. We have made improvements since, maybe it will
do better this year.

Best,
Fuming
___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

Re: [Computer-go] Fuego 04 native Windows

2010-06-17 Thread Fuming Wang
Petr,


 Do all the games have to start synchonously?


Games are started one clock at a time.


 I think it would still be much better than alpha-beta with MC to do a
 UCT search with m * n playouts where you run m parallel descends with
 n playouts evaluated in the leaf. It is probably good idea to spread
 the descends using virtual loss, not sure if adding 1 or n losses would
 be better, perhaps a depth-dependent fraction rounded up would be
 best... Of course, having strongly pre-biased node values would help
 a lot here, I guess.

 m would be tuned so that you could pre-descend m times for next set of
 playouts while FPGA would walk the first m. The disadvantage of course
 is that you are descending on a tree that is missing (2*m-1)*n samples
 (you are doing basically 2*m samples in parallel). If the FPGA supports
 asynchronous game queuing, it would be of course much better as you
 could queue next set of games right after the descent, so the
 obsolescence factor would be just m*n (m+1 samples in parallel).


I do not quite understand your description.  I'm guessing that you mean to
have n playouts at a time instead of one playout at a time like the regular
UCT algorithm. Nonetheless, FPGA based method are very static in structure,
and can not adapt easily to the dynamic changes of a game tree like a
software implemented tree structure. So I don't know how to implement UCT
type dynamic tree search algorithms in FPGA right now.

Fuming
___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

Re: [Computer-go] Fuego 04 native Windows

2010-06-17 Thread Fuming Wang
Hi Rene,

You guesses about our FPGA implementation are quite to the point. The 167
games are moving through the 167 pipelined stages of one module instead of
167 modules.

As this material is a cross between digital circuit design and computer
gaming, not quite sure which refereed journal is most suitable for this
material. Do you or any readers of this list has any suggestions?

Thanks,
Fuming


On Thu, Jun 17, 2010 at 8:09 AM, René van de Veerdonk 
rene.vandeveerd...@gmail.com wrote:

 Hi Fuming,

 Thanks for your answer, it makes much more sense to me now.

 We are using pipelining in different ways. When I referred to it for a
 CPU-based single-threaded application, I was thinking about speculative
 execution. If I understand it correctly, that does not exist in FPGA's, as
 these are advertised as deterministic in their execution and process flow.
 In the FPGA case, I imagine that pipelining refers to unrolling the
 program, and having different boards physically move across the chip from
 module to module, as if they are on a production line, all in various states
 of simulation (board #...@module #101: black to move; board #12@ module
 #100: white to move; etc.).

 How you have designed your program in detail would be an interesting read,
 there are a lot of high-level design trade-offs that you must have dealt
 with. These will be very different from how you would do it for a CPU-based
 program. One difference that I imagine, for instance, is the length of the
 simulation. A CPU-based program stops when the game ends (or you exceed some
 limit, or you force an early decision, or ...), whereas for FPGA you may end
 up with a fixed game-length (ready or not, i.e., no early out option) and
 you may have to simulate pass moves until you reach the end of the
 production line in case the game ended early (is this what you do?). In
 any case, your impressive numbers suggest that this can be done very
 efficiently. How you harness all this raw simulation power in a tree-search
 is yet another research topic that is very interesting and almost
 orthogonal. Do you think your approach could be mapped to a GPU as well? In
 any case, I hope you will make a pre-print available to this list when the
 time is there.

 In another response in this thread, you mention that you are simulating 167
 board in parallel. Does that mean that you unrolled your program for 167
 moves, moving a board between 167 separate modules every cycle and
 seed/harvest one complete board per cycle? Or do you have multiple
 (shorter) production lines in parallel? Or something else entirely?

 As you may have noticed, I am looking forward to your paper,

 René

 On Tue, Jun 15, 2010 at 7:03 PM, Fuming Wang fuming...@gmail.com wrote:

 Hi Rene,

 Our design is fully pipelined, so we are able to simulate multiple games
 simultaneously. The way way in which simulations are run in FPGA and in CPU
 is quite different, so direct comparison is not easy. If we want to simulate
 just one game, FPGA implementation is not 10x faster, however, if we want
 thousands of games simulated for a single board position, than FPGA is 10x
 faster. So, we are getting 1500k GAMES/sec, but only in the second sense.
 The clock rate of our FPGA board is only 125 MHz, so with better board/chip,
 we will still have 10-100 times improvement over the current result.

 best,
 Fuming


 On Wed, Jun 16, 2010 at 1:28 AM, René van de Veerdonk 
 rene.vandeveerd...@gmail.com wrote:

 Fuming,

 Could you please explain your approach a little bit? From the numbers you
 quote, this sounds extreme positive, but I have a hard time understanding
 how you achieve them. Taking 100k playouts/sec for 9x9 on my 2.4 GHz labtop
 for my single-threaded bitmap based light-playout implementation as an
 example, with 110 moves/playout, this results in a little less than 240
 clock-cycle/move. When I quickly looked up the Cyclone III specification, I
 saw that the clock-speed for this FPGA tops out around 240 MHz, yet you
 achieve 15x the throughput, i.e., you are 150x more efficient. This means
 1.8 clock-cycle/move. Without being able to make use of pipe-lining inside
 the CPU (someone measured ~2 assembly instructions/clock-cycle for my bitmap
 approach), this leads me to questions. First, are you running a single
 threaded application, or playing on multiple boards at once? Second, are you
 just replaying moves, or also generating them on the fly (about half of the
 time is spend there in my implementation, more if you include updating the
 data-structure to make that possible)? Third, are we using the same
 definitions?

 For instance, I would find it much more comprehensible to believe that
 you achieved to do 1500k moves/second instead of 1500k playouts/sec (with
 each playout being ~110 moves). 200 clock-cycles/move sounds do-able if you
 can avoid branching, memory lookups, or miscellaneous calculations by
 creating fine-level parallelism in your FPGA-code and specializing functions

Re: [Computer-go] Fuego 04 native Windows

2010-06-16 Thread Fuming Wang
We are able to run 167 games in parallel.  Unfortunately, it is not easy to
incorporate FPGA based simulation into UCT based MCTS scheme. So, we are
trying the traditional alpha-beta type tree search method to try to evaluate
the usefulness of our FPGA based MC simulation.

Best,
Fuming

On Wed, Jun 16, 2010 at 11:21 AM, Mark Boon tesujisoftw...@gmail.comwrote:

 I must admit I had completely misread this. I thought it said 1500
 playouts/sec. and didn't give it a second glance, thinking this is
 just a first effort. 1500K playouts/sec. is a completely different
 ball-game.

 I suppose the question is: how many games do you need to compute in
 parallel to achieve this speed? And would you still be able to collect
 AMAF information on the playouts?

 Interesting...

Mark

 On Tue, Jun 15, 2010 at 4:03 PM, Fuming Wang fuming...@gmail.com wrote:
  Hi Rene,
 
  Our design is fully pipelined, so we are able to simulate multiple games
  simultaneously. The way way in which simulations are run in FPGA and in
 CPU
  is quite different, so direct comparison is not easy. If we want to
 simulate
  just one game, FPGA implementation is not 10x faster, however, if we want
  thousands of games simulated for a single board position, than FPGA is
 10x
  faster. So, we are getting 1500k GAMES/sec, but only in the second sense.
  The clock rate of our FPGA board is only 125 MHz, so with better
 board/chip,
  we will still have 10-100 times improvement over the current result.
 
  best,
  Fuming
 
  On Wed, Jun 16, 2010 at 1:28 AM, René van de Veerdonk
  rene.vandeveerd...@gmail.com wrote:
 
  Fuming,
  Could you please explain your approach a little bit? From the numbers
 you
  quote, this sounds extreme positive, but I have a hard time
 understanding
  how you achieve them. Taking 100k playouts/sec for 9x9 on my 2.4 GHz
 labtop
  for my single-threaded bitmap based light-playout implementation as an
  example, with 110 moves/playout, this results in a little less than 240
  clock-cycle/move. When I quickly looked up the Cyclone III
 specification, I
  saw that the clock-speed for this FPGA tops out around 240 MHz, yet you
  achieve 15x the throughput, i.e., you are 150x more efficient. This
 means
  1.8 clock-cycle/move. Without being able to make use of pipe-lining
 inside
  the CPU (someone measured ~2 assembly instructions/clock-cycle for my
 bitmap
  approach), this leads me to questions. First, are you running a single
  threaded application, or playing on multiple boards at once? Second, are
 you
  just replaying moves, or also generating them on the fly (about half of
 the
  time is spend there in my implementation, more if you include updating
 the
  data-structure to make that possible)? Third, are we using the same
  definitions?
  For instance, I would find it much more comprehensible to believe that
 you
  achieved to do 1500k moves/second instead of 1500k playouts/sec (with
 each
  playout being ~110 moves). 200 clock-cycles/move sounds do-able if you
 can
  avoid branching, memory lookups, or miscellaneous calculations by
 creating
  fine-level parallelism in your FPGA-code and specializing functions on a
 per
  grid-point basis. In a CPU-based application, this results in code-bloat
  that will become counter-productive at some stage, may not be feasible
 in
  all instances, and is more difficult to maintain. For an FPGA-based
  application, however, this sounds entirely possible (not knowing
 anything
  about FPGA's).
  Thanks,
  René van de Veerdonk
 
  On Sat, Jun 12, 2010 at 10:37 AM, Fuming Wang fuming...@gmail.com
 wrote:
 
  Cyclone III
  120,000 logical elements
  cycle time is linear to the number of moves to finish a game, which is
  approximately linear to the square of the board size.
 
  Fuming
 
 
  - What FPGA? Virtex-6? Spartan-6?
  - What size is the core in LUT's?
  - Is your cycle time linear in the board size or in the number of
  squares (i.e. quadratic in board size)? Or something else?
 
  --
  GCP
  ___
  Computer-go mailing list
  Computer-go@dvandva.org
  http://dvandva.org/cgi-bin/mailman/listinfo/computer-go
 
 
 
  ___
  Computer-go mailing list
  Computer-go@dvandva.org
  http://dvandva.org/cgi-bin/mailman/listinfo/computer-go
 
 
  ___
  Computer-go mailing list
  Computer-go@dvandva.org
  http://dvandva.org/cgi-bin/mailman/listinfo/computer-go
 
 
  ___
  Computer-go mailing list
  Computer-go@dvandva.org
  http://dvandva.org/cgi-bin/mailman/listinfo/computer-go
 
 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

Re: [Computer-go] Fuego 04 native Windows

2010-06-11 Thread Fuming Wang
My understandings is that light playout should implement Bruegmann's
original proposal, which is Go rule plus basic patterns that avoid self-eye
filling. Our FPGA implementation does this while cutting 2 corners, (1)ko
violations are not checked; (2)suicides are allowed. We have tested in
software,and found no significant difference in MC's ability to evaluate
board positions with or without these 2 corners.  I wonder what corners did
libego cut?

Gathering pieces of information in this thread, it seems that the light
playout implementation on CPU is between 90k-170k/core on the latest
hardware i7 3.2 GHz.

(1) libego: 40k/GHz  - 40k x 3.2= 130k @ 3.2GHz
(2) libego: 130k @ 2.5GHz - 170k @ 3.2GHz
(3) Mark boon's implementation: 70k @ 2.6 - 90k @ 3.2GHz

Thanks for the responses.
Fuming

On Sat, Jun 12, 2010 at 2:52 AM, Mark Boon tesujisoftw...@gmail.com wrote:

 On Thu, Jun 10, 2010 at 11:09 PM, Erik van der Werf
 erikvanderw...@gmail.com wrote:
  Lukasz Lew's libego used to have the fastest light playouts. IIRC some
  years ago it already got over 100k playouts per second for 9x9 on one
  core. I guess it should now be possible to get over 200k light
  playouts per second. Others on this list may have more accurate
  numbers.

 Cores didn't really get much faster recently, so what makes you think
 it could be twice as fast now?

 A while ago I took a peek at his code, but I found it hard to
 understand. In a logical sense I saw some places that seem sub-optimal
 from an algorithmic point of view. But I figured the numbers speak for
 themselves. At the time it was reported it did something like 40K
 playouts per Ghz. But I didn't manage to verify this as I never got
 his code to compile. It's probably a bit too Linux specific in its
 setup. The main reason I didn't look into it further (apart from lack
 of time) is that AFAIK it doesn't keep liberties. But I think it does
 keep a few other useful things.

 People refer to 'light' playouts but may mean different things. I like
 to at least make the distinction between playouts that keeps correct
 liberty counts and playouts with pseudo liberties. In my personal
 code, pseudo liberties is only marginally faster than real liberties
 so I find it highly preferable to keep real liberties so it can be
 used by a tactical module. But I didn't spend nearly as much time as
 Lukasz trying to optimize it.

 The other thing that needs care when touting playout speeds is whether
 this is purely measuring playouts, or playouts while building a MCTS
 tree (or hashtable).

 My Java implementation of light playouts with liberties does something
 like 30K-35K per second on one core. I think it's similar on a 2.6Ghz
 i5 as on an older 2.8Ghz. The same code directly translated to C is
 about twice as fast.

 Mark
 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

[Computer-go] Fuego 04 native Windows

2010-06-10 Thread Fuming Wang
Hello Ernest,

Thanks for making the binary.  Could you tell me whether the 40-60k
games/sec results is for a single core in your overclocked i7, or is it for
all 4 cores in your i7 cpu.

Thanks,
Fuming

* The binary does around 36k games/sec in the opening rising to 50-60k
** later. Which is a lot
** more than the 23.5K of the cygwin version. AFAIK it works Ok with
** multithreading with
** and without locking. It is also much smaller and has no .dll dependencies.
*
___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

Re: [Computer-go] Fuego 04 native Windows

2010-06-10 Thread Fuming Wang
Not yet, we are working on it.

Fuming.

On Fri, Jun 11, 2010 at 9:41 AM, Broccard, Frederic fbrocc...@ucsd.eduwrote:

 hi, I recently begun working on machine learning and computer Go and I'm
 new to the list.

 We have implemented 9x9 light playout on a FPGA chip, and we are getting
 1500k playouts/sec, so I am interested in how this compares with speeds on
 the latest cpu, which I don't have right now.

 Did you publish somewhere the work on the FPGA chip ? Couldn't find
 anything online and would be interested on it.

 Thanks,

 fred

 ___
 Computer-go mailing list
 Computer-go@dvandva.orgmailto:Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go


 ___
 Computer-go mailing list
 Computer-go@dvandva.orgmailto:Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

 ___
 Computer-go mailing list
 Computer-go@dvandva.org
 http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

___
Computer-go mailing list
Computer-go@dvandva.org
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go