繁体   English   中英

查找具有最小边的交叉分区的图分区

[英]Finding Graph Partitions with Minimum Edges Crossing Partitions

我最近一直在研究一些算法,并且遇到了以下问题:

给定未定向的未加权可能断开的图G(V,E)找到G的k个分区,使得每个分区具有相同数量的顶点(假设顶点的总数是k的倍数)并且存在最小数量的边在G中连接不同分区中的顶点。

我不是在寻找这个问题的多项式时间算法(因为它可能是NP-Hard),而是一种算法,可以在24小时内找到150个顶点和1200个边缘的解。 虽然任何好的近似算法都会受到高度赞赏,但我更倾向于一个精确的解决方案。

我保持问题尽可能简单,但是定向加权图的一般解决方案也会很好。

感谢您的帮助!

更新:我刚做了一些研究,并意识到这可以被重新解释为修改后的连接问题。 也许沿着这条思路有一个解决方案?

这确实是NP难题。 如果你方便凸优化或者可以学习,我的本能是将这个问题表达为一个精确的覆盖 整数程序,包含许多变量(每个| V | / k顶点的子集一个)然后通过生成列来实际解决该程序一个整数程序求解器,用于查找具有许多内边的分区。 子问题的表述看起来像

maximize sum_{vertices v} w_v x_v + sum_{edges uv} y_{uv}
subject to
sum_{vertices v} x_v = |V|/k
y_{uv} <= x_u for all edges uv
y_{uv} <= x_v for all edges uv
x_v in {0, 1} for all vertices v
y_{uv} in {0, 1} for all edges uv

其中w_v是由主问题的双重解决方案确定的权重,直观地理解为特定顶点需要覆盖的紧急程度。

一种方法是使用聚类算法。 您不会获得最佳解决方案,而是快速的半最优解决方案。

你可以通过各种方式解决这个问题。 例如,您可以使用双聚类。 或者您可以进行主成分分析,选择一些组件并运行修改的k-means算法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM