支配边界(dominance frontier)

451 阅读1分钟

定义

支配边界是指在支配树中,一个节点的所有非直接支配的子节点集合

具体来说,对于支配树中的一个节点(n),其支配边界(DF(n)) 是这样的节点集合

  • 这些节点被(n)支配,但它们有一个或多个子节点不被(n)支配

例子


entry

| \

A B

| \

C D

在这个图中,假设节点(A)和(B)是从入口节点(entry)分支出来的,而(C)和(D)是(A)的子节点,(A) 支配(C) 和 (D)

在这个例子中

  • DF(entry) = {A, B}. 因为 entry 支配 A 和 B,但是 A 和 B 有各自的子节点(C, D),这些子节点不被 entry 支配

  • DF(A) = {C, D}. 因为 A 支配 C 和 D,但 C 和 D 没有子节点,所以它们没有支配边界

  • B、C 和 D 没有支配边界,因为它们没有子节点或者没有其他节点支配它们

代码例子


function calculateDominanceFrontier(node n):

    frontier = empty set

    for each child c of n:

        if c has a descendant that is not dominated by n:

    add c to frontier

    return frontier