[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [computer-go] Pattern Matcher (was M.Boon-Library)
From: "Chris Fant" <fantius75@xxxxxxxxxxxxxxxxx>
Subject: Re: [computer-go] Pattern Matcher (was M.Boon-Library)
> I have said I think our approaches are very similar, but one way that my
> pattern matcher differes from other peoples' (but probably not yours) is
> that I cannot represent any type of wildcard in the pattern. Can you do
> that in your 44 bits? I suspect not. If so, please enlighten me.
No, the system is not designed to use wildcards, only exact patterns with
constraints on chain liberties and nr. of stones. This is to give some info
on chains that lie partially outside smaller patterns, it is to make the
pattern a bit more "tactical".
The 44 bits, as explained before, are in fact 64 "full" bits, but because I
use 1024x1024 = 2^20 slots with each 8 hashes, the block address of the hash
is identical to its 20 LSB.
A 64-bit hash with a good spread is able to hash millions of patterns plus
many more parameters like liberty count & stone count of adjacent chains and
if you want other stuff.
I do not use wildcards, my strategy is to collect simply ALL variations and
that enables me to match much faster.
In those "44 bits" you can really put everything and the kitchen sink. As
long as your "everything and the kitchen sink" is limited to, say
10,000,000,000,000,000 maximum combinations, a 64-bit hash works very well.
Yet I could envision a way to include wildcards in the system, but I don't
think it's interesting at the moment. Wildcards are nice for tiny pattern
collections of a few thousand patterns, they in fact very greatly "explode"
the pattern collection.
Pattern collections in the millions already include most "wildcarded"
patterns.
But GNU Go's pattern system is very much more advanced than mine. Their
pattern system has Go knowledge rules in patterns like: "Can I attack this
chain" etc.
I would call it a "condition matcher" instead of a "pattern matcher".
_______________________________________________
computer-go mailing list
computer-go@xxxxxxxxxxxxxxxxx
http://www.computer-go.org/mailman/listinfo/computer-go/