[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Please Help] Pattern Matching Comparison




I use 8x8 bitmaps with an 8 bit hash to limit the pattern matching
to a subset of the patterns.  This is fast enough for a few thousand
patterns.  I've published details elsewhere.  You should be able to 
find them.

David

At 12:40 AM 3/12/99 -0800, Mousheng Xu wrote:
>Dear All,
>
>    I am now working hard on pattern matching, but find myself very dumb.
So I
>want some help from you guys.
>    There are serveral ways to do pattern matching, currently I am
comparing the
>following 4:
>    1. PAT Tree: guess all of you guys know what it is. If not, go read some
>algorithm books.
>    2. Zobrish hasing: guess all of you guys know what it is. If not, go
read the
>previous discussions of this list.
>    3. Silly Number hashing: the hash key is just a numerical
representation of
>the board of interest. If you use 0 for empty, 1 for black, 2 for white, 3
for
>jie, then you can use 2 bits to represent one poisiton on the board.
>    4. Pattern tree: just an ordinary tree. Basically you can view it as a
SGF
>tree.
>
>    Here is what I think we want from patterns:
>    1. exact pattern matching. Obviously, you find an exact pattern match,
get the
>move.
>    2. subpattern matching. If you want to match the whole board with the
whole
>pattern base, most of time you won't find a match except at the beginning
of the
>game. You want to match a portion of the board against the pattern base.
In this
>case, you won't to do subpattern matching.
>    Any other use of patterns???
>
>    Besides the above capabilities, you also want to consider space &
time. Given
>a board size 100 (positions), pattern size 20 (consecutive moves), and
roughly
>1000 patterns, here are my brief thoughts:
>
>     PAT Tree: easy to do exact & sub pattern matching. The problem is
space. It
>takes about 4 ^ 100 = 10^60 tree nodes. You know how terribly big 10^60
is. Some
>of you on this list (Mark the Ph.D.?) was using PAT, I don't know how he
could
>handle so big a PAT tree.
>    Zobrist hashing: it's space & time wise. The problem is subpattern
matching. I
>don't see a convenient way to do a subpattern matching. Many of you on
this list
>are using Zorist hashing, how do you guys do subpattern matching?
>    Silly Number hashing: very similar to Zobrist hashing. It's space & time
>efficient & it can do both exact & subpattern matching. Why people are not
using
>it often?
>    Pattern tree: space & time is not a problem. But it's not efficient for
>subpattern matching. You cannot efficiently get into the internal nodes
without
>starting from the root.
>
>    Any disucssion? Tutoring? Hints? ...
>    Thanks a lot.
>
>-- Mousheng Xu
>
>