我相信这是对的,但都未能获得正式证明。但是,通过应用Kruskal算法,是否可以达到任何最小生成树?同样,Prim算法是否正确?
编辑:更准确地说,我想知道是否为一个已连接的,无向的,加权的图指定了MST,是否可以保证使用Kruskal或Prim生成该MST的步骤是连续的。例如,当多个边缘具有相同的权重时,Kruskal有不同的选择。对于Prim也是如此。
我相信这是对的,但都未能获得正式证明。但是,通过应用Kruskal算法,是否可以达到任何最小生成树?同样,Prim算法是否正确?
编辑:更准确地说,我想知道是否为一个已连接的,无向的,加权的图指定了MST,是否可以保证使用Kruskal或Prim生成该MST的步骤是连续的。例如,当多个边缘具有相同的权重时,Kruskal有不同的选择。对于Prim也是如此。
Answers:
如Raphael的评论和j_random_hacker的评论所示,答案是肯定的。实际上,任何MST算法都可以达到任何MST,但有一些次要例外。
对于图,如果我们可以将由任一权重函数引起的边上的严格弱排序扩展到相同的严格,则将所有边上(对实数)的两个权函数定义为(弱)(彼此比较)总订单。也就是说,我们可以为每个权重函数设计一致的打破平局规则,以便通过一个权重函数及其平局决胜规则对任意两个边进行比较的结果与通过另一个权重函数及其平局而定的结果相同。违反规则。
引理1:令和是两个权重函数。以下五个语句彼此等效。w 2
- w 2和是比较兼容的。
- 在任何一组边中,和有一个共同的最边。w 2
- 在任何一组边中,存在共同的最重边,即和。w 2
- 存在一个权重函数该分配不同的权重不同的边缘,使得是比较兼容的和。w 3 w 1 w 2
- 对于任何边缘和,以使比一个权重函数的轻,等于或小于另一个权重函数的。e 2 e 1 e 2 e 1 e 2
引理1的证明可以轻松完成。
引理2:设两个权重函数和使得如果,则。然后它们是可比较的。w 2 e 1 < w 1 e 2 e 1 < w 2 e 2
(提示)证明:一种方法是验证引理1的条件5。另一种方法是通过证明在任意一组边中,的最边也是的最边来验证引理1的条件2。,w 1
如果对于所有边上的任意两个(弱)比较兼容加权函数,我们可以使用一个加权函数以一种无需重复即可重复的方式运行该算法,则将图上基于比较的算法定义为比较兼容与其他重量功能。特别是,算法的这两次运行将具有相同的输出。
请注意,大多数(如果不是全部)MST算法可以用两种形式陈述。第一种口味假定不同边缘具有不同的权重,当主要关注点是查找一个MST(实际上也是唯一的MST)时,将使用该特征。第二种风味使不同边缘具有相同的权重。当然,在这个答案中,主要关注的是找到所有MST,我们只关心第二种MST算法。摹
为了证明上述主张,我们只需要在计算 MST 数量时稍微修改“ Kruskal可以找到每个MST” 这一节。对于具有权重函数的任何MST,选择一个正权重,该正权重小于任意一对不等边权重之间的绝对差。如果我们从以为单位的每个边的权重中减去该权重而不更改其他边的权重,获得一个新的权重函数,即。如果边缘比轻由,必须大于轻由也一样 通过引理2,和是比较兼容的。请注意,是的唯一MST 。(显示这种唯一性的一种方法是证明,只要减少一个MST边的权重,任何具有新权重函数的MST都必须包含该边。)因此,在上进行算法的任何运算将找到。因为该算法是比较兼容的,所以我们可以使用或以相同的方式运行该算法。由于该运行会发现独特的MST,与,它会找到以及与。
上述主张听起来过于宽泛。好吧,对于每种MST算法,我指的是我所见过的任何基于比较的通用MST算法,但不包括那些明显的病态算法,例如错误的步骤或不必要的步骤。由于比较兼容的MST算法可以找到所有MST,因此每种MST算法都可以找到所有MST。特别是,每四个经典的MST算法,即Borůvka的,普里姆的,克鲁斯卡的和反删除算法可以找到所有MSTS。
这是另外三种比较兼容的MST算法。
下面的MST算法不兼容。
请注意,上述所有八种MST算法都是基于比较的。
我将以Kruskal算法为例。这是加权无向连通图上的Kruskal算法(第二种形式)的描述。
令和是上的两个比较兼容的权重函数。Kruskal算法仅在“从选择具有最小权重的边”的步骤中涉及权重函数。引理1的条件2告诉我们,我们可以在此步骤中选择一个共同的最亮边。然后,我们可以通过归纳轻松检查我们可以使用和以相同的方式运行所有步骤。因此,Kruskal的算法是比较兼容的。w 2 G S w 1 w 2
如果从广义上讲,可以用三种步骤来描述算法,则该算法是比较兼容的。
这个足够的条件涵盖了Borůvka,Prim,Kruskal,反向删除,delete-heavy-edge和add-non-heavy-edge算法。请注意,为了满足此充分条件,我们可能必须更改算法的某些描述,而不会影响可到达的MST集合。由于度偏的Kruskal算法是比较兼容的例外,让我强调一下,此充分条件是用宽松术语描述的