算法简介创造性方法练习5.25

时间:2014-02-16 02:07:41

标签: algorithm graph colors tree

以下是“算法简介,创造性方法”中的练习5.25。经过多次阅读后,我仍然无法理解它的含义。我可以使用它描述的方法非常容易地直接用2种颜色着色树,而不是1 + LogN颜色。

“开始” 本练习与确定图是否为二分图的错误算法有关,如第5.11节所述。在某种意义上,此练习表明,算法不仅错误,而且简单方法也不起作用。考虑图颜色的更普遍的问题:给定无向图G =(V,E),G的有效着色是对顶点的颜色分配,使得没有两个相邻顶点具有相同的颜色。问题是使用尽可能少的颜色找到有效的着色。 (一般来说,这是一个非常棘手的问题;第11章对此进行了讨论。)

因此,如果图表可以用两种颜色着色,则图表是二分的。

一个。通过归纳证明树木总是二分的。

B中。我们假设图是一棵树(这意味着图是二分的)。我们希望找到顶点到两个子集的分区,使得在一个子集内没有连接顶点的边。     再次考虑用于确定图是否为二分的错误算法,在5.11节中给出:我们采用任意顶点,移除它,为其余顶点着色(通过感应),然后以最佳方式为顶点着色。也就是说,我们使用最老的颜色为顶点着色,并且仅当顶点连接到所有旧颜色的顶点时才添加新颜色。证明,如果我们一次为一个顶点着色而不管全局连接,我们可能需要最多1 + logN颜色。     您应该设计一个结构,以最大化每个选择顶点顺序的颜色数。结构可以通过以下方式依赖于顺序。     算法选择一个顶点作为下一个顶点并开始检查顶点的边缘。此时,您可以根据需要添加入射到此顶点的边,前提是图形仍然是树,这样最终将需要最大数量的颜色。放入边缘后无法移除边缘(这将清理已经看到边缘的算法)。实现这种结构的最佳方式是通过感应。假设你知道一个构造需要< = k种颜色有很少的顶点,并构建一个需要k + 1种颜色而不添加太多新顶点的颜色。 “结束”

0 个答案:

没有答案
相关问题