寻找一种算法来评估图的节点

时间:2013-07-03 17:17:32

标签: algorithm graph

假设我有一个无向多图,即一个(G,E)对,其中G是一组有限的节点,E是一组有限的边。我正在寻找一种算法,它将在以下约束下为每个节点分配一个字符串值。

1

每个节点都有一组限制允许值的约束(可能为空)。我想支持至少以下类型的值约束:

  • min-length(x)(该值至少是给定的字符长度数),
  • max-length(x)(该值最多为给定的字符长数),
  • regexp(x)(该值符合给定的正则表达式),
  • numeric(该值仅由数字组成)。

理想情况下,应该可以在将来添加对新类型约束的支持。

2

有两种类型的边:

  • 不同,
  • 相同,

意味着应该为相关节点分配不同/相同的值(意味着不相等/相等的字符串)。

3

最后,可以为每个节点分配一组(可能为空)以下类型的约束:

  • 不同-从(x)的
  • 等于(x)中,

意味着应为给定节点分配不同于或等于给定节点的值。


我希望算法要么报告不一致(如果不存在这样的评估),要么返回符合条件的评估中的任何一个(理想情况下是一个小的,即指定值由少量字符组成的一个) (其他方式)。


请注意,我不希望您为我提供算法的详细说明。我很感激你能提供的任何暗示让我走上正轨。

1 个答案:

答案 0 :(得分:1)

一些建议:

  • 您可以通过将“相同”边连接的所有节点组合到一个节点中来简化问题。 (请注意,此单个节点的约束将是所有单个约束的并集。)

  • 减少的问题似乎与graph colouring非常相似,因为您需要为每个节点选择标签,使连接的节点的标签不同。

  • 不幸的是,图形着色是NP完全的,因此除非节点数量非常小,否则您很难获得有效的算法

  

图形着色在计算上很难。确定是否完全是NP完全的   除了情况k之外,给定图表允许给定k的k着色   = 1且k = 2.特别是,计算色数是NP难的。即使在平面上,三色问题仍然是NP完全的   4级图表

相关问题