找到图表中的最小瓶颈路径

时间:2013-06-28 20:03:26

标签: algorithm graph

考虑我们有一个包含n个顶点的完整图形。每个顶点都有一个值。两个顶点i和j之间的边的权重等于值[i] xor或值[j] 问题是找到从顶点1到顶点n的路径,其中路径中边缘的最大权重最小。我已经修改了Dijkstra的算法并找到了一个O(n ^ 2 lg(n))的算法。有人可以帮我找到更有效的算法吗?

1 个答案:

答案 0 :(得分:1)

最小瓶颈值不能小于此值的最高位(M)确定的数字:value[1] XOR value[n]。如果您找到两个节点AB,那么M和更高位的节点1A相等且相等{{1}节点Mn的更高位,BA之间的边缘权重最小,最小瓶颈路径为1-ABn(或者可能是如果A = 1和/或B = n,则更短。

要选择具有最小边权重的B对,请为具有与节点A/B重合的高阶位(M和更高)的所有节点值构建二进制trie。然后,对于具有与节点1重合的高阶位的所有节点值,尝试在此特里结构中搜索这些值。如果未找到完全匹配,请选择最深部分匹配。

时间复杂度为O(n * M)。