[英]Minimum Spanning Tree Algorithm
您好,我是算法的新手,正在尝试了解最小生成树。
我研究了Cormen,Leiserson,Rivest和Stein撰写的“算法简介”。 我在理解以下句子时遇到了一个难题:“如果A中的任何边都没有穿过切口,则切口将尊重一组A边。”
让我通过给出给定示例中的图片来清除我的理解。 连接图的最小生成树。
所以我的问题是,当我们按第二个图所示切割图形时,是否不应该对边缘(d,e)进行阴影处理,因为它没有穿过切割?
如果您为我澄清这一点,我将不胜感激。
我认为这是kruskal的MST算法。 从其余子树只剪切每个子树的分区。 我们需要使用cut的想法,因为当我们连接两个子树时,我们既不需要循环,也不需要在这两个子树之间具有最小成本的边。
在您的图像中, (d,e)的成本为9,因此它不是子树。 您可以将其视为未评估的优势。 您的子树是(a,b)和(i,c,f,g,h),因此剪切必须将这些子树与其他边缘区分开。
阴影边缘意味着它们在MST中是确定的,因为它们具有最低的成本。
这只是您的算法的示意图:
在第一个迭代中,由于边缘(g,h)的成本最低,因此您首先要切成黑色 。 然后,您将获得红色剪切,因为在(g,h) gf具有最小成本之后,并且由于这两个子树相互连接,因此我们使用一个剪切。 等等...我希望您可以进一步执行它。您可以在此处看到可视化Kruskal算法的工作原理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.