【问题标题】:Optimal clusterization最优聚类
【发布时间】:2017-04-28 12:50:39
【问题描述】:

有一个图(E,V)。对于每条边 (i,j),都有一个支付 P[i,j],它可以是正数、零或负数。我们按簇划分顶点。每次两个相邻顶点 v1 和 v2 属于不同的簇时,我们都会收到支付 P[v1,v2]。如何最大化总付款?这个问题是 NP 难的吗?

【问题讨论】:

  • 您正在寻找multi-cut
  • 如果没有进一步的限制(例如,结果集群的数量必须是给定的 M),是什么阻止我迭代边缘并用正支付切断所有?诚然,它可能会导致图仍然是连续的(没有分区),但是由于问题没有施加任何限制,因此单个集群作为结果是可以接受的,不是吗?
  • @Adrian Colomitchi 我们不能任意切割某些边缘而不切割其他边缘。我们只能从不同的簇中切割边缘。如果我们切 A-B,但不切 B-C,我们也应该切 A-C。
  • "我们不能任意切割一些边缘而不切割其他边缘。"这些限制的解释在哪里?
  • @AdrianColomitchi - 在我的问题中。

标签: algorithm cluster-analysis graph-algorithm


【解决方案1】:

不要寻找聚类,而是寻找cuts

最大化边缘切割的权重通常称为“最大切割”。更常见的问题是最小割,有一些聚类算法用最小割问题来表示。削减也与流网络有关。

如 cmets 中所述,您需要指定一些边界条件。比如点必须被切割成两个标签,只有标签不同的边才会被切割。

是的,这种削减通常是 NP 难的。

https://en.wikipedia.org/wiki/Maximum_cut

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-16
    • 2013-04-27
    • 2014-01-02
    • 1970-01-01
    • 2019-01-03
    • 2014-12-06
    • 2020-09-11
    • 2012-10-26
    相关资源
    最近更新 更多