二分图中的最佳边染色

时间:2016-06-27 18:50:00

标签: algorithm graph graph-coloring

我遇到了以下问题:在二分图中找到最佳边染色。我知道贪婪的着色算法有时候不会返回最佳颜色数。通过'贪婪着色算法',我的意思是:选择具有最高度数的第一个顶点并在颜色1 ...度上将其边缘着色,然后选择具有度数< =到先前度数的顶点并且在其上的每个事件边缘上着色第一个可用数字(其邻居未使用的最小数字),选择下一个顶点等。

但是我引入了一个修改:第一个选择顶点的边缘I按降序排列(度数... 1),下一个顶点的边缘如前面的1 ...度。这个修改产生了一些例子,我已经提出了我有最佳数量的颜色。但我不确定它总是一个规则。有人知道这个版本的边缘着色算法是否是最优的,或者是否有人能够显示任何反例?

1 个答案:

答案 0 :(得分:1)

您可以采用“天真”贪婪算法的反例,并将其转化为“复杂”贪婪算法的反例。只需插入具有适当程度的虚拟节点即可“吸收”向后的色彩。可以始终在图的任意部分中构建具有度n的新节点:只需在另一部分中插入n个新节点,并通过单个边将它们连接到所需的新节点。 / p>

由于所有以降序颜色着色的节点都是新插入的,原始反例中的所有节点都按升序着色,因此获得与原始“天真”贪婪算法中相同的颜色。由于最佳着色至少具有与原始图形的程度一样多的颜色,并且新插入的节点都具有比原始图形的最大程度更小的程度,因此新图形不需要比原始图形更多的颜色。因此,“复杂”算法产生的着色 - 仍然会有比原始图形所需的颜色更多的颜色 - 对于新图形而言不是最佳的。

例如,采用下面评论中描述的图表,其左侧是节点B,C,D,右侧是E,F,G,H。它有这些边缘:

B connects to E, F, and G
C connects to E, F, and G
D connects to G and H

目前,我假设您触摸的第一个节点按降序排列。 (对于其他节点,甚至不清楚“降序”可能意味着什么 - 从最大值下降?节点的程度可能不够高。)

因此,我们在左边插入一个新节点A,在右边插入三个节点I,J和K;连接现在是

A connects to I, J, and K
B connects to E, F, and G
C connects to E, F, and G
D connects to G and H

复杂的贪婪算法因此会为AI-3,AJ-2,AK-1着色,然后在其余节点上继续作为天真的贪婪算法。