【问题标题】:Graph Partitioning图分区
【发布时间】:2014-04-08 04:23:22
【问题描述】:

假设我有一个包含 10,000 个节点的图表。现在我想在图中查找一定数量的节点。我想通过图形分区技术来实现这一点,这样如果在某个分区中找到合理数量的所需节点,我就可以停止搜索。那么如何进行分区呢?有哪些适合使用的算法或工具?

我的图表是矩阵格式。其中 mat[i][j] 给出了两个节点 'i' 和 'j' 之间的边权值。

找到一个分区后,我想要一个该分区中存在的所有节点的列表。

【问题讨论】:

  • 首先,您在对图进行分区时有哪些注意事项?节点值相似度?是否与其他节点接近?
  • 什么是分区?它是一组与图中所有其他节点断开连接的连接节点吗,如果是,那么您可以进行遍历

标签: algorithm graph graph-theory graph-algorithm


【解决方案1】:

图分区的算法太多。这些算法的最大目标是减少分区之间的削减。但是,如果您有另一个目标,则必须转换或建模以削减目标。 您可以使用“Graph Voronoi Diagram Partitioner”进行分区 另一个分区软件是 METIS(http://glaros.dtc.umn.edu/gkhome/metis/metis/overview) 和 Kaffpa(http://algo2.iti.kit.edu/documents/kahip/)

【讨论】:

    【解决方案2】:

    如果我对您的理解正确,您希望搜索一组与某个目标匹配的节点——同时在分区级别并行执行此搜索。在这种情况下,一个好的分区策略是平衡分区间“匹配节点”的数量。

    原因是如果那些匹配的节点是平衡的,那么在一个分区上独立工作的所有并行工作人员都有相同的机会找到/匹配顶点。

    根据我的经验,在使用随机分配顶点到分区时,您可以针对不同目标实现非常可靠的平衡——即使edge-cut 的大小不是最佳的。

    但是,如果不了解您的目标,就很难回答您的问题,所以也许您可以更新您的问题并提供更多详细信息。

    【讨论】:

      猜你喜欢
      • 2019-03-13
      • 2012-07-01
      • 2012-12-09
      • 1970-01-01
      • 1970-01-01
      • 2021-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多