Perhaps 'implementation' is not the right word, but IIRC the fundamental
problem was that Antti Huima used a 4-segment scheme. With Zobrist hashing
(xor update) you need at least 8 segments (or 16 with colour symmetry).
Otherwise you get trivial collisions (where positions with only a small
number differences map to the same hash). Antoine de Maricourt claims to
have posted a proof on this in 2002 (
https://www.mail-archive.com/computer-go@computer-go.org/msg01748.html).
Nic Schraudolph designed a 6-segment scheme, but it is uses a different
update (non-Zobrist) (
https://www.mail-archive.com/computer-go@computer-go.org/msg01788.html). I
have a draft, but he asked me not to distribute. Not sure if it ever got
published... Better contact him directly.

Best,
Erik


On Tue, Sep 17, 2019 at 5:36 PM Stephen Martindale <
stephen.c.martind...@gmail.com> wrote:

> Thanks for the input, so far.
>
> Erik, is this the paper that you were referring to:
> http://fragrieu.free.fr/zobrist.pdf "A Group-Theoretic Zobrist Hash
> Function" Antti Huima.
>
> If so, do you have any sources on what's wrong with it? You say that his
> "implementation" was flawed -- does that mean that the theory in the paper
> is sound?
>
> I found the thread in the mailing list archives that you mentioned but
> most of the links are dead, by now, so it isn't totally helpful.
>
> I have yet to read the link that you posted a few minutes ago.
>
> *Stephen Martindale*
>
> +49 160 950 27545
> stephen.c.martind...@gmail.com
>
>
> On Tue, 17 Sep 2019 at 17:01, Erik van der Werf <erikvanderw...@gmail.com>
> wrote:
>
>> https://www.real-me.net/ddyer/go/signature-spec.html
>>
>> On Tue, Sep 17, 2019 at 4:16 PM Brian Sheppard via Computer-go <
>> computer-go@computer-go.org> wrote:
>>
>>> I remember a scheme (from Dave Dyer, IIRC) that indexed positions based
>>> on the points on which the 20th, 40th, 60th,... moves were made. IIRC it
>>> was nearly a unique key for pro positions.
>>>
>>> Best,
>>> Brian
>>>
>>> -----Original Message-----
>>> From: Erik van der Werf <erikvanderw...@gmail.com>
>>> To: computer-go <computer-go@computer-go.org>
>>> Sent: Tue, Sep 17, 2019 5:55 am
>>> Subject: Re: [Computer-go] Indexing and Searching Go Positions --
>>> Literature Wanted
>>>
>>> Hi Stephen,
>>>
>>> I'm not aware of recent published work. There is an ancient document by
>>> Antti Huima on hash schemes for easy symmetry detection/lookup.
>>> Unfortunately his implementation was broken, but other schemes have been
>>> proposed that solve the issue (I found one myself, but I think many others
>>> found the same or similar solutions). You may want to search the archives
>>> for "Zobrist hashing with easy transformation comparison". If you like math
>>> Nic Schrauolph has an interesting solution ;-)
>>>
>>> In Steenvreter I implemented a 16-segment scheme with a xor update (for
>>> rotation, mirroring and color symmetry). In GridMaster I have an
>>> experimental search feature which is somewhat similar except that I don't
>>> use hash keys (every possible point on the board simply gets its own bits),
>>> and I use 'or' instead of 'xor' (so stones that are added are never
>>> removed, which makes parsing game records extremely fast). This makes it
>>> very easy to filter positions/games that cannot match, and for the
>>> remainder (if needed, dealing with captures) it simply replays (which is
>>> fast enough because the number of remaining games is usually very small).
>>> I'm not sure what Kombilo does, but I wouldn't be surprised if it's
>>> similar. The only thing I haven't implemented yet is lookup of translated
>>> (shifted) local patterns. Still pondering what's most efficient for that,
>>> but I could simply run multiple searches with a mask.
>>>
>>> Best,
>>> Erik
>>>
>>>
>>> On Tue, Sep 17, 2019 at 10:17 AM Stephen Martindale <
>>> stephen.c.martind...@gmail.com> wrote:
>>> >
>>> > Dear Go programmers,
>>> >
>>> > I'm interested in experimenting with some new ideas for indexing and
>>> searching Goban positions and patterns and I want to stand on the shoulders
>>> of giants. Which papers, articles, blog posts or open-source code should I
>>> read to get concrete knowledge of the approaches used in the past?
>>> >
>>> > I know that Kombilo is (or used to be) the state of the art in this
>>> field. The source is available but, beyond reading the Libkombilo sources,
>>> are there any other, more human friendly resources out there?
>>> >
>>> > My new ideas are currently insubstantial and vague but I have done
>>> some work, in the past, with natural language embeddings and large-database
>>> image indexing and searching and concepts from those two domains keep
>>> bouncing around in my mind -- I can't help but feel that there must be
>>> something there that can be the "next big thing" in Go position indexing.
>>> >
>>> > Any leads would be appreciated.
>>> >
>>> > Stephen Martindale
>>> >
>>> > +49 160 950 27545
>>> > stephen.c.martind...@gmail.com
>>> > _______________________________________________
>>> > Computer-go mailing list
>>> > Computer-go@computer-go.org
>>> > http://computer-go.org/mailman/listinfo/computer-go
>>> _______________________________________________
>>> Computer-go mailing list
>>> Computer-go@computer-go.org
>>> http://computer-go.org/mailman/listinfo/computer-go
>>> _______________________________________________
>>> Computer-go mailing list
>>> Computer-go@computer-go.org
>>> http://computer-go.org/mailman/listinfo/computer-go
>>>
>> _______________________________________________
>> Computer-go mailing list
>> Computer-go@computer-go.org
>> http://computer-go.org/mailman/listinfo/computer-go
>>
> _______________________________________________
> Computer-go mailing list
> Computer-go@computer-go.org
> http://computer-go.org/mailman/listinfo/computer-go
>
_______________________________________________
Computer-go mailing list
Computer-go@computer-go.org
http://computer-go.org/mailman/listinfo/computer-go

Reply via email to