如何以有效的方式找到两个概念的最低上位? 分类中两个概念的最低上级意味着这两个概念中最具体的共同祖先。例如,在下面的分类图中,如何找到感觉1和感觉2的最常见的祖先?
顺便说一下,我在Roberto Navigli的词义消歧调查中发现了这个问题。他没有提到如何计算上级。
答案 0 :(得分:1)
您可以从Sense 1
侧上升层次结构,并将所有这些节点标记为Sense 1
的祖先。然后向上Sense 2
侧检查每个祖先,看看你是否将其标记为Sense 1
的祖先。您找到的第一个将是最低级别或最具体的共同祖先。
在你的图片中,无论你从哪个感觉开始,它都是根节点。
答案 1 :(得分:0)
http://en.wikipedia.org/wiki/Lowest_common_ancestor包含指向我们有树的(通常)情况下最不常见的祖先问题的更有效算法的指针,因此每个节点都有一个父节点,除了根节点,它没有父节点。在树的线性时间预处理之后,这些算法可以在恒定时间内回答查询。
我不知道这些算法是否会推广到您可以拥有多个父级的情况。看起来明显的概括将等于删除树中的链接,以确保在连接时,每个节点最多只有一个父节点。