Re: [computer-go] Fast Board implementation

2007-01-23 Thread dhillismail
Here is another MC speedup trick. I think it may have been mentioned before but it's worth repeating. This applies to the case where my program is going to run N playout games and then select the most visited node as its move for that turn (which will not always be the node with the

Re: [computer-go] Fast Board implementation

2007-01-16 Thread Łukasz Lew
You just can try few, and look whether the percentage of playout wins doesn't change too much. You probably need more that one starting position to test the rule. Lukasz On 1/15/07, George Dahl <[EMAIL PROTECTED]> wrote: What should the mercy threshold be for other board sizes than 9 by 9, part

Re: [computer-go] Fast Board implementation

2007-01-15 Thread dhillismail
>-Original Message- >From: [EMAIL PROTECTED] >To: computer-go@computer-go.org >Sent: Sun, 14 Jan 2007 11:08 PM >Subject: Re: [computer-go] Fast Board implementation > >What should the mercy threshold be for other board sizes than 9 by 9, >particularly 1

Re: [computer-go] Fast Board implementation

2007-01-14 Thread George Dahl
What should the mercy threshold be for other board sizes than 9 by 9, particularly 19 by 19? - George Dahl > > Here are a few speedup tricks that have helped me. > > 1. The mercy rule. Since I'm incrementally keeping track of a list of empty > points, it's no real extra pain to keep track of the

Re: C const (RE: [computer-go] Fast Board implementation)

2006-12-23 Thread Don Dailey
ad the value from the array again -- another memory > reference. > > Edmund. > > > -Original Message----- > > From: [EMAIL PROTECTED] > > [mailto:[EMAIL PROTECTED] Behalf Of Don Dailey > > Sent: 19 December 2006 13:13 > > To: House, Jason J. > &g

Re: [computer-go] Fast Board implementation

2006-12-22 Thread Łukasz Lew
On 12/11/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: Hello all. I've been lurking on the list for a few years now. In amongst the usual musings on the meaning of AI and social justice, etc., there's been a sharp increase in the amount of useful information posted here of late. I'll try to

RE: [computer-go] Fast Board implementation

2006-12-19 Thread Don Dailey
On Tue, 2006-12-19 at 02:21 -0500, House, Jason J. wrote: > The const keyword has been completely removed from the language and > makes it hard to force such restrictions on "library users". I use const all the time in my C code but only for myself - almost like a comment in the source code sayi

RE: [computer-go] Fast Board implementation

2006-12-19 Thread Don Dailey
On Tue, 2006-12-19 at 02:21 -0500, House, Jason J. wrote: > On the down side, I noticed a significant lack of documentation and > difficult to find get it at my fingertips. Yes, I had this problem too - you do have to do a lot of digging to figure out some things. I actually had quite a bit o

RE: [computer-go] Fast Board implementation

2006-12-18 Thread House, Jason J.
library was up to date, I probably would have kept playing around. For now I decided to stop... :( -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Don Dailey Sent: Friday, December 15, 2006 9:17 PM To: Łukasz Lew Cc: computer-go Subject: Re: [computer-go] Fast

Re: [computer-go] Fast Board implementation

2006-12-15 Thread Don Dailey
On Fri, 2006-12-15 at 16:28 -0800, steve uurtamo wrote: > > I should be able to get close to > > 25,000 games per > > second if > > I get the 1.5 X improvement going to C. This is > > only about 3K of code > > that will > > have to be written in C, where much of the code is > > identical to C >

Re: [computer-go] Fast Board implementation

2006-12-15 Thread Don Dailey
> missing that simplifies things? > > > > > > > > By the way, stone count field is helpful but not necessary. But it's > > > > trivial to keep updated and it's convenient. > > > > > > > > Using the compact representa

Re: [computer-go] Fast Board implementation

2006-12-15 Thread Łukasz Lew
n > > > > > > > > > > > > > > > > On Mon, 2006-12-11 at 20:00 +0100, Łukasz Lew wrote: > >> At the time of Your post I've had it already implemented and regarded > >> it like "my sweet secret" :) , so I was expecting tha

Re: [computer-go] Fast Board implementation

2006-12-15 Thread steve uurtamo
> I should be able to get close to > 25,000 games per > second if > I get the 1.5 X improvement going to C. This is > only about 3K of code > that will > have to be written in C, where much of the code is > identical to C > anyway. is this that much easier than just starting and finishing in C?

Re: [computer-go] Fast Board implementation

2006-12-15 Thread Don Dailey
e: > >> At the time of Your post I've had it already implemented and regarded > >> it like "my sweet secret" :) , so I was expecting that when You > >> published it everybody will appreciate, and start using. But I guess > >> it wasn't eas

Re: [computer-go] Fast Board implementation

2006-12-15 Thread steve uurtamo
> Oh, sorry I forgot. > > static bool is_player (t color) { return (color & > (~1)) == 0; } > > This is 1 CC so I don't think so. :) :) i guess that since the entries of color_at had to be looked up for each v (presumably), the pred_br_eq (or whatever the x86 version is called) instruction coul

Re: [computer-go] Fast Board implementation

2006-12-15 Thread Łukasz Lew
On 12/15/06, steve uurtamo <[EMAIL PROTECTED]> wrote: > if (is_player (color_at[v])) > chain_at[v].find_root ()->inc_lib_cnt (); > > I removed the if > > chain_at[v].find_root ()->inc_lib_cnt (); > > And added some code elsewhere to make it correct. so it wasn't the "is_player"? Oh, sorry I

Re: [computer-go] Fast Board implementation

2006-12-15 Thread steve uurtamo
> if (is_player (color_at[v])) > chain_at[v].find_root ()->inc_lib_cnt (); > > I removed the if > > chain_at[v].find_root ()->inc_lib_cnt (); > > And added some code elsewhere to make it correct. so it wasn't the "is_player"? s. __ Do You Yaho

Re: [computer-go] Fast Board implementation

2006-12-15 Thread Łukasz Lew
if (is_player (color_at[v])) chain_at[v].find_root ()->inc_lib_cnt (); I removed the if chain_at[v].find_root ()->inc_lib_cnt (); And added some code elsewhere to make it correct. this code is executed for every neighbour intersection (v) of intersection that just turned into empty (was captu

Re: [computer-go] Fast Board implementation

2006-12-15 Thread steve uurtamo
> I confirm branches are most costly. > Removing 1 not needed "if" gave me speedup of 5%. do you mean that the 'if' was never evaluated, or that it always evaluated the same way, or that it was handled elsewhere? i'm stunned that a single 'if' was 5% of the execution time of your code. it might

Re: [computer-go] Fast Board implementation

2006-12-15 Thread Łukasz Lew
Thanks :) I will stick to GPL and use Bazar model (The Cathedral and the Bazaar). I will provide tarball and darcs repository :) Best regards, Lukasz Lew On 12/15/06, Urban Hafner <[EMAIL PROTECTED]> wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On Dec 11, 2006, at 19:22 , Łukasz Lew w

Re: [computer-go] Fast Board implementation

2006-12-15 Thread Łukasz Lew
how many really good ideas came through this list unnoticed. >> >> Best Regards, >> Lukasz >> >> >> On 12/11/06, House, Jason J. <[EMAIL PROTECTED]> wrote: >> > Wow. Did some of my early posts on liberties/chains actually get used >>

Re: [computer-go] Fast Board implementation

2006-12-15 Thread Łukasz Lew
rties at the time of my post. > > > > -Original Message----- > > From: [EMAIL PROTECTED] > > [mailto:[EMAIL PROTECTED] On Behalf Of Lukasz Lew > > Sent: Monday, December 11, 2006 1:31 PM > > To: [EMAIL PROTECTED] > > Cc: computer-go > > Subject

Re: [computer-go] Fast Board implementation

2006-12-15 Thread Zach Wegner
I could pack all of the information into a single array. Here is one possible scheme which fits in 32 bits and accommodates all board sizes: 3 bits to identify white/black/empty/off-board 9 bits for the hash key (the reference stone) 9 bits for pseudo liberty count 9 bits for stone count

Re: [computer-go] Fast Board implementation

2006-12-15 Thread Urban Hafner
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On Dec 11, 2006, at 19:22 , Łukasz Lew wrote: Soon I will publish the code on my web page. But I don't have a web page yet. :) The second issue is a licence. Can I use my Go Board implementation in commercial program if I publish it on Gnu? If no,

Re: [computer-go] Fast Board implementation

2006-12-14 Thread Don Dailey
uot; :) , so I was expecting that when You > >> published it everybody will appreciate, and start using. But I guess > >> it wasn't easy to see benefits. > >> I wonder how many really good ideas came through this list unnoticed. > >> > >> Best Regar

RE: [computer-go] Fast Board implementation

2006-12-14 Thread David Fotland
Handtalk has a clever trick. He uses the LSB of the string number as the color of the string. Even strings are black and odd strings are white. So he only needs one array for the board which has both color and string number. David > > 1. A 10x11 board (actually 10x11 plus 1 for diagonal

Re: [computer-go] Fast Board implementation

2006-12-14 Thread Don Dailey
gt; > > > > > > > > > On Mon, 2006-12-11 at 20:00 +0100, Łukasz Lew wrote: > >> At the time of Your post I've had it already implemented and regarded > >> it like "my sweet secret" :) , so I was expecting that when You > >> published it everybody will

Re: [computer-go] Fast Board implementation

2006-12-14 Thread Luke Gustafson
st(s) on the topic? I remember a lot of negative feedback > on pseudo-liberties at the time of my post. > > -Original Message- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Lukasz Lew > Sent: Monday, December 11, 2006 1:31 PM > To: [EMAIL PROTECTED]

Re: [computer-go] Fast Board implementation

2006-12-14 Thread Don Dailey
st > > before my post(s) on the topic? I remember a lot of negative feedback > > on pseudo-liberties at the time of my post. > > > > -Original Message----- > > From: [EMAIL PROTECTED] > > [mailto:[EMAIL PROTECTED] On Behalf Of Lukasz Lew > > Sent: Mo

Re: [computer-go] Fast Board implementation

2006-12-11 Thread Łukasz Lew
Big thanks for claryfying that. Łukasz On 12/11/06, Antoine de Maricourt <[EMAIL PROTECTED]> wrote: Incidentally, Łukasz, if it is _your_ code, then you may do whatever you like with it, regardless of how you have licensed that code to other people. The only issue that I can see would

Re: [computer-go] Fast Board implementation

2006-12-11 Thread Antoine de Maricourt
Incidentally, ?ukasz, if it is _your_ code, then you may do whatever you like with it, regardless of how you have licensed that code to other people. The only issue that I can see would be whether or not you are permitted to use chages, etc., that have been contributed by other people.

Re: [computer-go] Fast Board implementation

2006-12-11 Thread Antoine de Maricourt
Maricourt Sent: Monday, December 11, 2006 3:20 PM To: computer-go Subject: Re: [computer-go] Fast Board implementation When was your first post? The pseudo-liberty principle has been described perhaps 15 years ago on this list. Possibly before, but I wasn't there... Antoine. Wow.

Re: [computer-go] Fast Board implementation

2006-12-11 Thread John Tromp
On 12/11/06, House, Jason J. <[EMAIL PROTECTED]> wrote: It certainly pre-dates me then! My post was within the last 2 years. Our of curiosity, did it have the name pseudo-liberties back then too? I call them liberty-edges, since in graph theoretic terms, you're counting the edges between a s

RE: [computer-go] Fast Board implementation

2006-12-11 Thread House, Jason J.
: computer-go Subject: Re: [computer-go] Fast Board implementation When was your first post? The pseudo-liberty principle has been described perhaps 15 years ago on this list. Possibly before, but I wasn't there... Antoine. > Wow. Did some of my early posts on liberties/chains actually

Re: [computer-go] Fast Board implementation

2006-12-11 Thread Antoine de Maricourt
When was your first post? The pseudo-liberty principle has been described perhaps 15 years ago on this list. Possibly before, but I wasn't there... Antoine. Wow. Did some of my early posts on liberties/chains actually get used by someone? Or did the idea of pseudo-liberties and union set

Re: [computer-go] Fast Board implementation

2006-12-11 Thread dhillismail
I should clarify here //4. At every move, I update the pseudo liberties, group membership, stone counts, //and empty spaces list. When a stone is removed due to capture, I place that position //at the end of the empty spaces list. When a stone is added, the space it's about to // occupy is

Re: [computer-go] Fast Board implementation

2006-12-11 Thread dhillismail
Hello all. I've been lurking on the list for a few years now. In amongst the usual musings on the meaning of AI and social justice, etc., there's been a sharp increase in the amount of useful information posted here of late. I'll try to contribute. My engine is AntIgo. It's been a speed bump

Re: [computer-go] Fast Board implementation

2006-12-11 Thread Łukasz Lew
a lot of negative feedback on pseudo-liberties at the time of my post. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Lukasz Lew Sent: Monday, December 11, 2006 1:31 PM To: [EMAIL PROTECTED] Cc: computer-go Subject: Re: [computer-go] Fast Board implementat

Re: [computer-go] Fast Board implementation

2006-12-11 Thread Łukasz Lew
ukasz Lew > Sent: Monday, December 11, 2006 1:31 PM > To: [EMAIL PROTECTED] > Cc: computer-go > Subject: Re: [computer-go] Fast Board implementation > > Pseudo liberties of a group is a sum of liberties of each stone, > example: > > O > OXXXO > OX.XO > OXXX

RE: [computer-go] Fast Board implementation

2006-12-11 Thread House, Jason J.
On 12/11/06, House, Jason J. <[EMAIL PROTECTED]> wrote: Wow. Did some of my early posts on liberties/chains actually get used by someone? Or did the idea of pseudo-liberties and union sets exist before my post(s) on the topic? I remember a lot of negative feedback

Re: [computer-go] Fast Board implementation

2006-12-11 Thread John Tromp
On 12/11/06, House, Jason J. <[EMAIL PROTECTED]> wrote: Wow. Did some of my early posts on liberties/chains actually get used by someone? Or did the idea of pseudo-liberties and union sets exist before my post(s) on the topic? I remember a lot of negative feedback on pseudo-liberties at the t

RE: [computer-go] Fast Board implementation

2006-12-11 Thread House, Jason J.
PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Lukasz Lew Sent: Monday, December 11, 2006 1:31 PM To: [EMAIL PROTECTED] Cc: computer-go Subject: Re: [computer-go] Fast Board implementation Pseudo liberties of a group is a sum of liberties of each stone, example: O OXXXO OX.XO OXXXO O &q

Re: [computer-go] Fast Board implementation

2006-12-11 Thread Łukasz Lew
On 12/11/06, Weston Markham <[EMAIL PROTECTED]> wrote: I did a bit of investigation over the weekend: I get an average of 110.7 turns, using the usual eye avoidance rule, counting pass moves, disallowing all suicide, and disallowing "simple ko" repetitions. I believe that the 107.3 number is fo

Re: [computer-go] Fast Board implementation

2006-12-11 Thread Łukasz Lew
Pseudo liberties of a group is a sum of liberties of each stone, example: O OXXXO OX.XO OXXXO O "X" group have 4 pseudo liberties. If You merge two groups just add pseudo liberties. If PL = 0 then group should be removed. This is simple and sufficient :) Lukasz On 12/11/06, Don Dailey

Re: [computer-go] Fast Board implementation

2006-12-11 Thread Don Dailey
On Mon, 2006-12-11 at 18:22 +0100, Łukasz Lew wrote: > - pseudo liberties at top of union-set tree Refresh my memory on this. I remember talking about this a long time ago. A psuedo liberty is an upper bound on how many liberties there are for a given string, correct? Sometimes a liberty g

Re: [computer-go] Fast Board implementation

2006-12-11 Thread Don Dailey
On Mon, 2006-12-11 at 12:56 -0500, Weston Markham wrote: > I did a bit of investigation over the weekend: I get an average of > 110.7 turns, using the usual eye avoidance rule, counting pass moves, > disallowing all suicide, and disallowing "simple ko" repetitions. I > believe that the 107.3 numb

Re: [computer-go] Fast Board implementation

2006-12-11 Thread Weston Markham
I did a bit of investigation over the weekend: I get an average of 110.7turns, using the usual eye avoidance rule, counting pass moves, disallowing all suicide, and disallowing "simple ko" repetitions. I believe that the 107.3 number is for the same simulations, but excluding passes from the cou

Re: [computer-go] Fast Board implementation

2006-12-11 Thread Łukasz Lew
On 12/8/06, Don Dailey <[EMAIL PROTECTED]> wrote: 112 moves on average in a 9x9 game? You are doing something a little different than I am and others have reported the same number I get, about 107.3 - 107.4 What is your eye avoid rule? Normal, i.e. local on 8 intersections, updated incremen

Re: [computer-go] Fast Board implementation

2006-12-08 Thread Don Dailey
112 moves on average in a 9x9 game? You are doing something a little different than I am and others have reported the same number I get, about 107.3 - 107.4 What is your eye avoid rule? - Don P.S. 30K on 1.4 Celeron is almost too good to be true. If this is correct that's very impressive a

Re: [computer-go] Fast Board implementation

2006-12-08 Thread Eduardo Sabbatella
I found myself doing not simple or obvious elections on the board/game implementation. I found a couple of places where different approaches would impact on perfomance: - Liberties: maintain a list of chains, and liberties. "Union set" when a stone is placed in the board. Floodfill is another ap