目前我在一个应用程序上工作,我有大量的哈希值(字符串) 当给出查询哈希值(字符串)时,搜索过程将遍历这些字符串并返回查询字符串与结果字符串之间的Hamming Distance小于给定阈值的字符串。
1000302014771944008
" t>25
)且可以变化。我想使用有效的算法而不是使用蛮力方法来实现此搜索过程 我已经阅读了一些研究论文(如this& this),但它们用于二进制字符串或低阈值。我也试过Locality-sensitive hashing,但我发现的实现都集中在二进制字符串上。
是否有任何算法或数据结构可以解决这个问题? 任何建议也欢迎。提前谢谢。
其他信息
Hamming非二进制字符串之间的距离
string 1: 0014479902266110001131133
string 2: 0014409902226110001111133
-------------------------
1 1 1 = 3 <-- hamming distance
考虑蛮力方法
答案 0 :(得分:1)
阅读论文的第7部分:
&#34; HmSearch:一种高效的汉明距离查询处理算法&#34;。
d-query问题的最新结果可以在以下网址找到:
&#34;字典匹配和索引错误而不关心&#34;,它使用空间O(n * log)解决时间O(m + log(nm)^ d + occ)中的d查询问题(nm)^ d),其中 occ是查询结果的数量。
如果阈值不小,则可以在HmSearch上找到二进制字符串的实用解决方案。
我认为可以在HmSearch上使用相同的实用解决方案来处理任意字符串,但我从未见过这些解决方案。
答案 1 :(得分:0)