Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 按相似性排序的位字符串哈希_Algorithm_Sorting_Hash_Similarity - Fatal编程技术网

Algorithm 按相似性排序的位字符串哈希

Algorithm 按相似性排序的位字符串哈希,algorithm,sorting,hash,similarity,Algorithm,Sorting,Hash,Similarity,问题描述: 我们有很多相同大小的位字符串。位字符串的数量和大小都是巨大的。例如:10100101和000011111 现在有一个距离函数,它只计算相同位位置的数量。在本例中:距离为2-因为最后三位和最后一位是由两个位字符串设置的 ->现在我们可以使用最大距离遍历位字符串,因为每个位字符串都可以转换为一个顶点,该顶点连接到所有其他位字符串(通过距离函数) 目标 然而,这具有O(N²)的复杂性。我的想法是使用散列函数,它保留了相似性,而不是对散列值进行简单排序。这将导致接近最大行程。当然这不是最好的

问题描述:

我们有很多相同大小的位字符串。位字符串的数量和大小都是巨大的。例如:10100101和000011111

现在有一个距离函数,它只计算相同位位置的数量。在本例中:距离为2-因为最后三位和最后一位是由两个位字符串设置的

->现在我们可以使用最大距离遍历位字符串,因为每个位字符串都可以转换为一个顶点,该顶点连接到所有其他位字符串(通过距离函数)

目标

然而,这具有O(N²)的复杂性。我的想法是使用散列函数,它保留了相似性,而不是对散列值进行简单排序。这将导致接近最大行程。当然这不是最好的结果,但应该是一个不错的结果

当前问题

我自己的哈希函数对左位的评分高于左位。因此,它们对排序有更显著的影响

实际问题

  • 这样的算法存在吗
  • 是否可以使用局部敏感哈希(LSH)来实现该目标,如果可以,您能否制定相应的算法。(我现在不懂算法)

谢谢大家

popcount(A&B)+Stanford bithacksCan您可以进一步解释一下您的评论吗?将A和B之间的
1
位按位和A和B之间的
1>位共同对应。popcount():=计算
1
位数的函数。到位字符串的距离不是问题所在。我想用散列函数对它们进行排序,这样可以保持相似性。