Algorithm 求图直径的近似算法

Algorithm 求图直径的近似算法,algorithm,graph,graph-algorithm,Algorithm,Graph,Graph Algorithm,给定图G=(V,E),无向且无重量,我们想要求图G的直径D的值。演示如何找到一个值X,使得X60%似乎对前面的算法有点苛刻TA——您给出了正确的算法,并确定了这两个不等式的极值情况。然而,我同意阿米特的观点,你需要给出一个正式的证明。如果你的评分员特别严格,你可能还需要说一两句为什么你的算法是线性时间 这是正式证明的开始。设d(v,w)为顶点v和w之间路径的最小长度。直径定义为D=max_{v,w}D(v,w)。您的算法选择任意顶点s并输出X=max_{w}d(s,w) 你需要做一点代数来说明两

给定图G=(V,E),无向且无重量,我们想要求图G的直径D的值。演示如何找到一个值X,使得X60%似乎对前面的算法有点苛刻TA——您给出了正确的算法,并确定了这两个不等式的极值情况。然而,我同意阿米特的观点,你需要给出一个正式的证明。如果你的评分员特别严格,你可能还需要说一两句为什么你的算法是线性时间

这是正式证明的开始。设d(v,w)为顶点v和w之间路径的最小长度。直径定义为D=max_{v,w}D(v,w)。您的算法选择任意顶点s并输出X=max_{w}d(s,w)


你需要做一点代数来说明两个事实:X
现在,要找到图的实际直径,你只需要运行BFS两次。一次从任意节点开始,然后从最远的节点开始。这对树有用。假设任意图的直径是它的最长路径-这个问题被称为最长路径问题,是NP完全的,这就是为什么你只需要一个近似值。我不知道,谢谢。但它仍然不能帮助我找出我的答案的错误。直径是两个顶点之间的最长最短路径,而不是最长路径;它在多项式时间内是可解的,可能不是NP完全的。我认为你得到了15/25,因为你没有提供正式的证明,你只证明了它在两种情况下是正确的,而没有证明算法也适用于所有其他情况。每一种情况都肯定在图的中心和周长之间