找到图表中的最大边数

时间:2012-04-08 10:29:25

标签: algorithm graph edge-detection

  

无向图有'n'个顶点和0个边。我们可以绘制的最大边数可以使图形保持断开状态。

我已经解决了我们可以排除一个顶点并且可以找到无向图的n-1个顶点之间的最大边数,这样图形仍然保持断开状态。

对于n个顶点是n(n-1)/ 2,对于n-1个顶点将是(n-1)(n-2)/ 2。  可以有更好的解决方案吗?

3 个答案:

答案 0 :(得分:7)

您可以使用分析解决此问题。接受你的想法并概括它。您将n个顶点分为两组,大小为xn-x。 现在边数是x的函数,由

表示
  f(x)= x(x-1)/2 + (n-x)(n-x-1)/2
  f(x) = 1/2(2x^2 - 2nx +n^2 - n)

最大化此功能的值是您想要的分区大小。如果您进行计算,您会发现它从x=0减少到x=n/2,然后增加到x=n。当x = 0或x = n表示收集图表时,您将获取下一个最大值x=1。所以你的直觉是最佳的。

答案 1 :(得分:3)

您的解决方案应该是最佳解决方案。

因为添加的任何新边必须在一端具有第n个顶点。

答案 2 :(得分:0)

如果图形可以有多个边缘,则对于n> = 3,答案是无穷大 如果它也可以包含自循环,则对于n> = 2,

,答案是无穷大

如果没有这些解决方案是正确的。