匹配和完美的数学

时间:2013-04-20 17:25:51

标签: java c algorithm graph

从Skiena的书中,这不是HW,而只是我准备面试。

鉴于这个问题,

无向图的匹配G =(V,E)是一组边,其中没有两个边具有共同的顶点。完美匹配是匹配所有顶点的匹配。

(a)构造一个具有2n个顶点和n ^ 2个边的图G,使得G具有一个完全匹配的指数。

(b)构造一个具有2n个顶点和n ^ 2个边的图G,使得G只有一个唯一的完美匹配。

我只是不知道如何开始。对于a,我选择n = 3,所以我现在知道我有6个顶点和9个边缘,并尝试连接它们,但我不知道它是否是完美的匹配。

2 个答案:

答案 0 :(得分:1)

  1. 对于a):在2n个顶点上取一个完整的二分图,两个分区各有n个顶点。这些图有n!完美匹配,对于n> 2> n ^ n 2。
  2. 对于b):我们在(n,n)个顶点上构建类似于完全二分图的东西。调用分区A =(1,2,3,...,n)和B =(n + 1,n + 2,n + 3,... 2n)。

    成为一个集团。

    对于B中的每个顶点n + i,为A中的每个顶点j添加边(n + i,j),其中j <= i。例如,顶点n + 1仅入射到边缘(n + 1,1);顶点n + 2入射到(n + 2,1)和(n + 2,2);顶点n + 3入射到(n + 3,1)(n + 3,2)(n + 3,3)。

    这迫使唯一的完美匹配为{e in E |对于[1; n]}中的某些i,e =(n + i,i)(试图证明这是实践归纳)。

    由于A是n个顶点上的一个团,因此它具有n ^ 2/2-n / 2个边。在A和B之间运行的边是总共sum from 1 to n,它是n ^ 2/2 + n / 2,所以我们一起得到了n ^ 2/2 - n / 2 + n ^ 2 / 2 + n / 2 = n ^ 2个边缘。

答案 1 :(得分:0)

这个图表可能会帮助您(a):

V = {1,2,A,B}

E = {(1,A),(1,B),(2,A),(2,B)}

2 * 2顶点

2 ^ 2个边缘