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 incrementally.
The games are longer, because I allow ko recaptures (i.e. any board repetition).



- Don

P.S.  30K on 1.4 Celeron is almost too good to be true.   If this is
correct that's very impressive and I am interested in looking at the
code.   I can
believe it it's possible with a few tricks I haven't thought of - but I
want
to see for myself!

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, then can I change the licence when I want to?

But If You want to take look at the code, I will send it to You.
Here I give all tricks:

Efficient board summary:

Board:
- all objects (color, intersection) are int s
- one dimensional board with guards (9x9 => 121 ints)
- pseudo liberties at top of union-set tree
- very lightweight set-union with lightweight path compression
- no explicit liberties
- next_stone array
- black, white, empty, neighbour counters on one int for eye checking

Monte-Carlo:
- memcopy before playout with pointer correction (union-set currently
on pointers)
- randomized array of empty intersections
- (NEW! :) ) non-legal intersections moved to "rejected" array, used
at the end of the playout
- no ko handling
- only single-stone suicide forbidden (detected after play => try again)
- limit on playout length

Technical:
- all functions inlined
- assertions everywhere
- consistency function on assert
- precise profiling with oprofile and rdtsc
- no assembler :)

The most important are:
- pseudo liberties at top of union-set tree
- very lightweight set-union with lightweight path compression

Hope this help :)
Lukasz


I wonder if it is the random list selection tricks you are using?

Not any more :)

Rejected array (the NEW one) improved speed to 33pps (distribution
slightly non uniform)





On Fri, 2006-12-08 at 11:26 +0100, Łukasz Lew wrote:
> Hi!
>
> Many people are spending a lot of effort on creating fast board 
implementation.
>
> I am considering releasing the one written by me.
> I get 30 k playouts / s (112 moves on avg) on Celeron M 1.4Ghz. So I
> consider it quite good.
> If there is an interest in joint development, then I will do it.
>
> What say You ? :)
>
> Łukasz Lew
> _______________________________________________
> 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/

Reply via email to