今天我的算法测验中的图论问题我想帮助理解

时间:2010-10-13 06:07:57

标签: algorithm math graph theory

今天我在这个学期进行了算法测验,我无法弄清楚这两个问题,他们整天都在困扰着我。我已经阅读了笔记和讲义,但我还是不确定。如果有人可以看看并提供一些有关这些问题的见解,我将不胜感激。这些不是作业,我已经参加了测验。

真或假的问题

1)[Paraphrased]具有n个顶点的二分图中的最大边数为n(n-1)/ 2.

我认为这是假的,我的逻辑是n个verticies意味着我们有两个n / 2行。第一个节点与第二行有n / 2个连接,第二个节点与第二行有n / 2个连接......等等......

因此,我计算了具有n个顶点的二分图中的最大边数(n ^ 2/4)。

2)[转述]是否有可能进行切割,这不一定是定向流图(Ford-Fulkerson算法)中的最小s-t切割,使得流量大于s-t切割能力?

我说错了,但我不明白这个问题......是否有可能采取s-t切割以使流量更大?我知道弱对偶定理和'最大流量=最小切割'所以我放下了假,但我不知道。

简答题:

1)解释测试图表连接天气的有效方法。

我建议进行广度优先搜索,如果图中的BFS算法找不到节点,则表示没有连接。我记下运行时间是O(m + n),因此它是一种有效的算法。它值得两分,这是最后一个问题,但我现在担心这是一个棘手的问题。

2)在图表中:

alt text

列出展示最小顶点覆盖的顶点集[释义]

我的答案是{A,D},{A,E},{B,C},{B,D},{C,E},但现在我担心它只是{A},{ B},{C},{D},{E} ......

感谢您花时间阅读! :)

3 个答案:

答案 0 :(得分:1)

我现在只有第一张图的答案,但你是对的。

在二分图中,必须有两组节点 - 比如第一组中的x和第二组中的(n - x)。

此图中的最大边数将为x(n-x)或nx - x ^ 2.

nx-x ^ 2的最大值是x =(n / 2)

所以图中的最大边数是(n / 2)*(n - (n / 2))=(n ^ 2)/ 4,正如你所指出的那样。

答案 1 :(得分:0)

图表连接:

你使用BFS是正确的。在BFS的一次迭代之后,如果访问了所有节点,那么我们可以得出结论图是连接的。

或者,也可以使用DFS完成此操作。方法保持不变。

答案 2 :(得分:0)

1)已经回答,我同意你是对的。

2):这个问题似乎含糊不清。

such that the flow capacity is greater than the s-t cut capacity
流量是什么?整个网络?或削减?

如果是后者,似乎可以问A> A,这显然是假的。 如果是前者,那么很明显答案是错误的。如果有可能找到这样的切割,则max-flow = min-cut将不成立:网络的最大流量将大于s-t切割的最小容量。

然而, 可以进行切割,使得切割的流量大于网络的最小切割容量example at the top of this article中,如果在s和网络的其余部分之间切换,则切割容量大于网络的最小s-t切割容量。

但即使这种解释似乎也不太可能,因为它非常微不足道......“最小”的含义是可能有更大的价值。

也许有必要看到确切的原始措辞。

简短回答:

1)已被回答,虽然我不明白m是什么(在O(m + n)中),除非你在讨论二分图?

2)我同意@glebm说你弄错了...抱歉。 “Vertex cover图形是一组顶点”,但你似乎写了一个边列表?后面跟着一组单例顶点?

  图表的

Vertex cover是一组   顶点的每个边缘   图表至少有一个事件   集合的顶点。

由于这是一个完整的图形,因此所有顶点都是可互换的。所以我们并不关心哪个顶点,而只是我们需要多少个顶点才能触及所有边缘。答案不难发现。如果我们选择任意三个顶点,则连接其他两个顶点的边缘不会被“覆盖”。 QED。

事实上,我们可以证明,对于n个顶点的任何完整图形,最小顶点覆盖需要n-1个顶点。