【问题标题】:Looking for an algorithm to evaluate nodes of a graph寻找一种算法来评估图的节点
【发布时间】:2013-07-04 15:23:24
【问题描述】:

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

1.

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

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

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

2.

有两种类型的边:

  • 不同,
  • 一样,

表示应为相关节点分配不同/相同的值(表示不相等/相等的字符串)。

3.

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

  • 不同于(x),
  • 等于(x),

意味着给定节点应该被分配一个不同于或等于给定值的值。


我希望算法要么报告不一致(如果不存在这样的评估),要么返回任何符合标准的评估(理想情况下是一个小的,即分配的值由少量字符组成的) (否则)。


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

【问题讨论】:

    标签: algorithm graph


    【解决方案1】:

    一些建议:

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

    • 简化后的问题似乎与graph colouring 非常相似,因为您需要为每个节点选择标签,以便连接节点的标签不同。

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

    图形着色在计算上很困难。决定是否是 NP 完全的 给定的图允许给定 k 的 k 着色,但情况 k 除外 = 1 和 k = 2。特别是,计算色数是 NP 难的。即使在平面上,三色问题仍然是 NP 完全的 4度图

    【讨论】:

    • 感谢您的帮助。加 1,分配给新节点的集合真的是原始约束集合的交集,还是并集?
    • 你说的很对,联合是正确的术语而不是交集,我会编辑答案。
    猜你喜欢
    • 2013-08-26
    • 2014-05-04
    • 1970-01-01
    • 2013-12-03
    • 1970-01-01
    • 1970-01-01
    • 2014-05-16
    • 2023-03-29
    • 2011-05-04
    相关资源
    最近更新 更多