删除加权有向图中的循环

时间:2015-05-08 16:11:50

标签: algorithm graph cluster-analysis

这是我的其他帖子的后续问题。

Algorithm for clustering with size constraints

我正在研究一种聚类算法, 在一些重新复制之后,现在我有了这一组点,它们都没有在它们的最佳簇中但是不能单独重新分配,因为它违反了约束。

我尝试使用图形结构来解决问题但遇到了一些实施问题。

我是初学者,如果我错了,请告诉我。

Per @ Kittsil的回答

  

构建一个以簇为节点的有向图,这样如果全局解将被A中的某个点移动到B,则边缘(A,B)存在。在此图中查找周期将允许您找到潜力移动(移动包括移动循环中的每个顶点)。

我修改了图表,增加了权重,作为从A到B的点数之和。

以下是一些我不确定如何决定重新分配的情况。

场景1 。对于如下的循环。有两个点可以从A移动到B,三个从B移动到C.在这种情况下,我应该选择哪一点重新分配?

enter image description here

场景2 。对于如下的循环。让所有边权重为1.对于集群A中的点,可以将其重新分配给集群B或D.在这种情况下。我应该如何进行重新分配?

enter image description here

场景3 与场景2类似。让所有边权重为1.在较大周期中有两个小周期。群集A中的点可以重新分配给B和E,在这种情况下如何决定重新分配?

enter image description here

欢迎任何一种情况的想法!

考虑到上述情况,还有关于实施算法的任何建议吗?使用伪代码更好。谢谢!

1 个答案:

答案 0 :(得分:1)

如果边缘权重与通过重新组合点获得的益处成比例,那么一个不错的启发式方法是选择具有最高总重量的循环。我认为这可以解决你所有的三种情况:只要你有选择,就选择能做得最好的那种情况。

<强>讨论:

Algorithm for clustering with size constraints中描述的算法是一种贪婪算法,用于查找局部最小值。因此,无论您在这些情况下如何选择,都无法保证找到最佳解决方案,任何选择都会让您更接近当地最低标准。

由于与约束排序的类似问题的关系,我的直觉是最小的问题将是NP难的。如果不是这种情况,那么存在比我之前描述的算法好得多的算法。但是,这种贪心算法似乎是解决最小问题的快速解决方案。