我正在尝试在我的分布式算法课程中找到问题的答案,为此我想澄清一些问题。
如果您有兴趣,我试图找到答案的问题是:
就n(#节点)而言,使用的消息数(= diam * | E |) FloodMax算法很容易看出是O(n ^ 3)。制作一类 产品(diam * | E |)确实是Omega(n ^ 3)的有向图。
我想出的有向图是一个只有一个节点的图形,它有一个自定向边。那样| E |如果nm是1,那么它将是1,并且如果diam是1 ,它将满足第二个条件,其中diam = 1 = n。所以它给了我一类消息复杂度为Omega(n ^ 3)的有向图。
所以我的想法是正确的,在这样的图表中,直径是1?
答案 0 :(得分:0)
两件事:
根据this,它似乎是0,其中说:
换句话说,图表的直径是必须遍历的最大顶点数,以便在从回溯,绕行或循环排除的路径时从一个顶点移动到另一个顶点。
您对给定问题的解决方案应描述如何构建图形(或者更确切地说,已知图形具有该属性的类型,因为它表示“生成类”)具有n
个节点,而不是一个图表,无论你有多少节点手动找出解决方案。我可以为2个节点做同样的事情:
1 -- 2
|E| = 1 = (1/4)*2^2 = (1/4)*n^2 = O(n^2)
diam = 1 = 2 - 1 = n - 1 = O(n)
tada!
或者这就是我们如何使你的解决方案工作,即使直径是0:0 = 1 - 1 = n - 1 = O(n)=>你的解决方案仍然有效!
因此,即使您考虑使用循环路径,我仍然认为您的解决方案不正确。
答案 1 :(得分:0)
O(n ^ 3)和Omega(n ^ 3)并不意味着cn ^ 3,并且在有限多个非零值n为0(n ^ 3)且0的函数中,0没有问题。欧米加(N ^ 3)。例如,n ^ 3-100同时为n ^ 3-100n ^ 2。对于渐近线的目的,单个示例的直径是不重要的。你被要求找到一个具有足够大直径的无限图形族,并且图的单个例子不会影响无限族的渐近性。
也就是说,图形的直径(或强连通的有向图)可以用几种方式定义。一种可能性是从v到w并且回到所有对v和w的往返长度的最小值的一半的最大值,并且当v和w重合时为0。因此,具有一个顶点的图的直径为0。
同样,对于构建一个无限的家庭,这对你所拥有的练习毫无帮助。一个有一个节点且有许多边缘回归自己的家庭并不打算削减它。想一想如何为大直径的图形添加许多边缘,例如n循环或路径,而不会减小很多直径。