用最小的颜色着色图形

时间:2013-04-12 03:01:44

标签: algorithm graph

如果它们之间有n条路径,我想为任何顶点v 1 和v 2 着色图形:< / p>

p 1 =(v 1 ,p 11 ,p 12 ,v 2 < / sub>)
p 2 =(v 1 ,p 21 ,p 22 ,v 2 ) ...
p n =(v 1 ,p n1 ,p n2 ,v 2

(p 11 ,p 12 是路径的顶点,路径有四个顶点)

p i 表示路径,p i1 ,p i2 是v 1 之间的两个顶点v <子> 2

必须不存在两条路径p i 和p j ,使得c(p i1 )= c(p j1 )和c(p i2 )= c(p j2 ),其中c(v)表示顶点v的颜色。

简单来说,v 1 和v 2 之间的路径应该是可区分的。

我们的目标是尽量减少颜色数量。

是否有满足上述条件的着色算法?明星着色绝对满足条件,但需要更多颜色。

1 个答案:

答案 0 :(得分:1)

这是我的答案,因为我理解你的问题。您正在尝试找出可用于连接 N 2个顶点路径的最小颜色数。

尝试解决相反问题:给定 x 颜色可以生成多少个唯一路径。从问题不清楚第一个和第二个顶点是否可以是相同的颜色,所以我将采取两种可能性:

  1. 允许相同的颜色(置换替换)

    给定 x 颜色可以生成最大 x 2 排列。所以 N 路径至少需要√N颜色。

    对于colors = RGB 顶点= RR,RG,RB,GR,GG,GB,BR,BG,BB

  2. 不允许相同的颜色(无替换的排列)

    给定 x 颜色可以生成max x P 2 排列。那是 x 2 -x≥N。求解二次不等式将给你

    x ≥(1±√(1 + 4 N ))/ 2

    x = floor((1 +√(1 + 4 N ))/ 2)

    对于colors = RGB vertices = RG,RB,GR,GB,BR,BG (给出7条路径,你需要4种颜色)