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

Re: [computer-go] Pattern Matcher



----- Original Message ----- 
From: "Mark Boon" <tesuji@xxxxxxxxxxxxxxxxx>
To: "computer-go" <computer-go@xxxxxxxxxxxxxxxxx>
Sent: Saturday, November 06, 2004 5:27 PM
Subject: [computer-go] Pattern Matcher


> I translated the pattern-matcher I had from C++ to Java. This took me a
bit
> longer than expected. It's a fairly complex piece of code

My pattern matcher is horrendously complex code but it is very few lines so
easily translatable.


> The big question is if it's fast enough. There's no magic in there, so
maybe
> someone has something clever that works much faster. Franks
pattern-matcher
> appears to be faster, but it doesn't allow NoCare points,

I can handle no-care points as long as the patterns are explicitly added.
Because a pattern is only 44 bits and matching 5x5 patterns is done with the
speed of memory, adding tens of thousands or even millions of patterns
becomes no big deal. Any size pattern as long as their perimeter is
symmetric in X & Y axis. So it has to be a square, circle, diamond etc. Not
a rectangle or triangle unless you would translate it to



> that work much faster. Is there any comparable data available? I wouldn't
> mind putting out a $1,000 reward for anyone who can show or make something
> that's an order of magnitude faster. I know it's not a lot, but then again
> I'm not keeping it for myself, and maybe it's enough to stimulate some
> clever minds to come forward with something cool.


I consider my own matcher-code to be as precious as Thomas Wolf considers
his code. He alledgedly sold his code for around or more than 100,000 USD. I
would consider selling it for 100,000 USD but only when the source will
remain confidential.

I think mathers are quite personal things, they need to be geared towards
exactly what you want to do with them.
Some people like to put their own Go knowledge into patterns and my matcher
is badly suited for that. My matcher is ideally suited to extract million of
the most frequent patterns automatically and correlate those patterns so
that their relative whole-board value is known.

My matcher can look at a board, see hundreds of patterns and know that on
average, a pro prefers pattern X to pattern Y if both are on the board
simultaneously. That is much more than just a fast matcher, that's an expert
system based on statistical analysis.

I have made a system that needs only 100 msec or less (the only delay is
caused by disk seek time and the transfer time for a file of around 64 KB)
to find a list of pro games in which any pattern occurs.
So the system looks at a position, knows which patterns are most preferable
and it immediately shows references to games in which they occured. Not
useful in game play but very nice as a study tool.

It also can annotate a position in one second, finding the top-10 patterns
and providing the diagrams of the pro games in which they occured.

_______________________________________________
computer-go mailing list
computer-go@xxxxxxxxxxxxxxxxx
http://www.computer-go.org/mailman/listinfo/computer-go/