【问题标题】:What are the practical applications of the lowest common ancestor algorithms? [closed]最低共同祖先算法的实际应用是什么? [关闭]
【发布时间】:2010-08-22 17:19:30
【问题描述】:

我查看了this question,然后阅读了Tarjan's least common ancestors algorithm。我以前从未接触过任何 LCA 算法的应用。

这样的 LCA 算法常用在哪里?

【问题讨论】:

  • 科学计算中的空间数据结构树,计算生物学中字符串的后缀树等。细节忘记了,抱歉,但绝对有用。

标签: algorithm tree least-common-ancestor


【解决方案1】:

在编译器中,两个基本块的 LCA 是您可以放置​​计算的地方,因此两者都可以使用。这对于消除常见的子表达式或插入 phi 节点以进行 SSA 转换可能很有用。但是,这些算法经过了很好的改进和高度优化,因此 LCA 本身可能很难看到,例如 SSAPRE

【讨论】:

    【解决方案2】:

    不知道它在哪里使用,但我有几个想法可能会在哪里使用:

    • 计算机图形:通常 3D 场景被分割成立方体,形成树状结构。如果您有一个包含在两个这样的立方体中的对象,则 LCA 算法会为您提供最小的包含较大的立方体。

    • 分析氏族以发现物种与其最低共同祖先之间的关系

    • 版本控制系统的合并算法

    【讨论】:

    【解决方案3】:

    我刚刚写了一篇博客文章,介绍了如何在宏基因组学的背景下为分类树实现我自己的算法(扩展到一组任意长度的节点):

    http://blog.bio4j.com/2012/02/finding-the-lowest-common-ancestor-of-a-set-of-ncbi-taxonomy-nodes-with-bio4j/

    干杯,

    巴勃罗

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-24
      • 1970-01-01
      • 2013-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-03
      • 2011-07-28
      相关资源
      最近更新 更多