C ++图形顶点着色库或源代码

时间:2011-03-28 13:01:58

标签: c++ algorithm graph graph-theory

是否有一个C ++(或任何其他语言)库,其中包含针对graph coloring问题的算法组合?

当然有天真贪婪的顶点着色算法,但我对更有趣的算法感兴趣,如:

  1. wiki
  2. 的“精确算法”部分中提到的算法
  3. 利用特殊图表属性的近似算法,例如图表为planarunit disk graph
  4. 查找图表fractional coloring的算法。
  5. 最后一个对我来说特别重要。

    到目前为止,我发现的是this page上的列表,但没有一个具有上述任何算法。此外,最好的一个是Joe Culberson's Graph Coloring code并且是在90年代后期实现的,因此在没有文档化的API方面已经过时了(不是这对于这个问题的重要性,但我认为我'提到它)。

    Koala graph coloring library具有我正在寻找的精神,但如果你看看他们的source code,它还没有兑现承诺。它似乎处于发展的早期阶段。

    this stackoverflow question中提到了其他一般图表库。它们包括:

    1. Graphviz
    2. Boost Graph Library
    3. Lemon
    4. igraph
    5. OGDF
    6. 我应该注意到我使用Boost Graph Library做了很多事情。实际上,它提供了一个天真的顶点着色实现。 Joe Culberson的代码(如上所述)做得更多。

      以下是图形着色代码的列表,我发现(并在大多数情况下进行了测试)但是它们在上述三种算法类别方面仍然大部分都不足。

      1. GraphCol - 文档不是英文,叹气。
      2. Planarity - 包含一种着色算法,可以保证平面图的颜色为5色或更好。
      3. Graph-Coloring - 似乎是Joe Culberson已经实施的少量算法的重新实现(上图)。

2 个答案:

答案 0 :(得分:1)

也许你可以帮助自己Boost Graph Library

答案 1 :(得分:0)

您可以试试 CXXGraph 库。它包含一些关于图的有用算法