gigasquid / vsa-clj

VSA Computing Experiments in Clojure
Eclipse Public License 1.0
55 stars 1 forks source link

Implement a tie strategy for bundle? #3

Open benjamin-asdf opened 8 months ago

benjamin-asdf commented 8 months ago

Currently the bundle / clip implementation leaves the zeros, if there is a tie in bundle.

Afaik there are multiple candidates to resolve ties and which one has some pros and cons I'm not sure about.

gigasquid commented 8 months ago

Hi @benjamin-asdf !

The are quite a few implementations of VSA that handle these: With Kanerva's BSC implementation, you can add a random vector while summing to break ties. In other implementations like Plate's real value HRR, zero is a perfectly valid value and no one cares - it will happen infrequently enough.

I've gone with the Gayler MAP system, that initializes the vectors at -1 and 1, but after that clips the magnitudes and ignores ties in summation - you still could inject a low magnitude noise vector if you want. I found it unneeded for what I was doing, but it might be useful in your case.