贪心算法如下

时间:2013-04-18 12:40:39

标签: algorithm greedy

我正在尝试使用Greedy Algorithm解决以下问题,

我们有n位朋友,我们希望为每位朋友提供礼物。但我们不想给两个相互认识的人提供同样的礼物。 (如果x知道y,则y知道x)。不认识对方的人可能会得到同样的礼物,没关系。我们希望尽量减少给出的不同礼物的数量。

这就是我的想法,我们试图让那些彼此不认识的人,给他们所有相同的礼物。但我不确定这是否是一个贪婪的算法。此外,我们可能希望找到最多的人群,其中没有人知道任何其他人,所以我们可以给予同样的礼物。但我们可以这样做吗?我们能找到彼此不认识的最大群体吗?

有人可以为这个问题提出一个贪婪的算法吗?

2 个答案:

答案 0 :(得分:1)

这是图形着色问题,greedy algorithm for it is straightforward

a greedy coloring is a coloring of the vertices of a graph formed by
a greedy algorithm that considers the vertices of the graph in sequence
and assigns each vertex its first available color

答案 1 :(得分:1)

您提到的问题是对Graph Coloring问题的重述。您必须使用颜色标记图形的顶点,以使共享相同边的两个顶点不具有相同的颜色。下面给出的链接是Greedy Coloring Algorithm

http://en.wikipedia.org/wiki/Greedy_coloring