【问题标题】:Explain 0-extension algorithm解释 0-extension 算法
【发布时间】:2011-08-12 04:35:32
【问题描述】:

我正在尝试实现 0 扩展算法。

它用于为具有多种颜色的图形着色,其中某些节点已经分配了颜色并且每条边都有距离。该算法计算颜色的分配,使具有相同颜色的相邻节点之间的距离尽可能远。

我找到了这篇解释算法的论文:http://citeseer.ist.psu.edu/viewdoc/download;jsessionid=1FBA2D22588CABDAA8ECF73B41BD3D72?doi=10.1.1.100.8049&rep=rep1&type=pdf 但我不明白我需要如何实现它。

我已经在“理论计算机科学”网站上问过这个问题,但讨论到一半我们就超出了网站的范围: https://cstheory.stackexchange.com/questions/6163/explain-0-extension-algorithm

谁能用外行的方式解释这个算法? 我打算在 jgrapht 包中将最终代码开源。

【问题讨论】:

    标签: algorithm graph labels approximation


    【解决方案1】:

    0-extension 的目标是最小化具有不同颜色端点的边的总加权成本,而不是最大化它,因此 0-extension 实际上是一个聚类问题而不是着色问题。我通常怀疑使用聚类算法进行着色会产生良好的结果。如果您想要有理论保证的东西,您可以研究 MAXCUT 问题的近似值(如果有两种以上颜色,则实际上是一种概括),但我怀疑局部搜索算法在实践中会更好地工作。

    【讨论】:

    • 我认为 MAXCUT 算法无法处理预着色节点,还是只需要更通用的算法版本?我目前在 brute fore 中的实现(使用 branche skoping 优化)在 12 分钟内计算 35 个节点和 3 种颜色,我需要在 10 分钟内租用 64 个节点
    • 对于两种颜色,您只需要强制执行与预着色节点对应的向量具有点积-1的约束。通常,对于 k 种颜色,您需要 -1/(k-1),但舍入变得更加棘手。我会尝试分隔预着色节点的 ceil(lg k) 随机超平面。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-10
    • 2015-06-11
    相关资源
    最近更新 更多