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 count. Does this sound correct?
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. Weston On 12/11/06, Łukasz Lew <[EMAIL PROTECTED]> wrote:
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/
_______________________________________________ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/