【问题标题】:how to find the nearest signature in a bit Trie, given a bit array?给定位数组,如何在位特里找到最近的签名?
【发布时间】:2013-06-16 13:04:00
【问题描述】:

给定一个位的 Trie,以及作为位数组/向量的输入,我如何在 Trie 中找到输入向量的最近邻?

我正在尝试执行的算法如下: 给定一个位向量 V 和一个置换函数 F,执行以下操作:

1- F(V) = V_;其中 V_ 是 V 的签名。

2- 在 trie 中插入 V_;

一段时间后...给定一个位向量 U,执行以下操作:

1- F(U) = U_;

2- 在 trie 中找到最近的签名。

最近的签名由汉明距离定义。

【问题讨论】:

  • 你如何定义“最近的邻居”?
  • @templatetypedef 最近的签名由汉明距离定义。
  • 这里一定要用trie吗?有更好的数据结构。
  • @templatetypedef 是的,我正在阅读一篇论文,我试图了解他们为什么要采取措施,为此我需要了解这一点。

标签: java algorithm tree trie


【解决方案1】:

您可以使用Branch and bound 依次缩小搜索空间。在树上进行深度优先搜索,并跟踪到目前为止有多少位未匹配。当您找到更接近目标的叶子时,您会更新当前上限。当你进入一个比当前上限更远的子树时,你会修剪它。如果有匹配的子树,总是先进入匹配的子树。

【讨论】:

    猜你喜欢
    • 2011-04-24
    • 2021-11-27
    • 2021-08-14
    • 1970-01-01
    • 2019-10-09
    • 1970-01-01
    • 2018-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多