0

如何将图划分为可能重叠的部分,以使任何顶点都包含在与边界至少距离为 k 的部分中?

在由于内存不足而无法将整个图形加载到单台机器中的情况下,就会出现问题。所以另一个要求是分区具有相同数量的顶点。

是否有任何算法试图最小化零件之间的公共顶点?

这里的用例是这样的:您想从一个初始顶点开始执行查询,您知道该顶点需要最多 k 次遍历。拥有包含此查询的所有顶点的部分会导致网络利用率为零。因此,问题是减少这种分区的内存开销。

我应该读什么书?

我发现这看起来很有希望:http: //grafia.cs.ucsb.edu/sedge/docs/sedge-sigmod12-slides.pdf

最后编辑:谷歌决定使用哈希分区并非巧合。找到一个好的分区是很困难的。我也将使用哈希分区,并希望数据中心具有良好的网络带宽。

4

1 回答 1

1

您可以使用广度优先搜索来获取距离相关节点仅 k 距离的所有节点,从节点本身开始。当距离原点 k 处时,可以结束搜索。

编辑: 使用深度优先搜索来分配从边界属性到每个节点的最小距离。完成深度优先搜索后,通过节点的简单迭代应提供分区。例如,您可以创建一个表,将距边界的最小距离存储为键,将节点向量存储为表示分区的值。

于 2013-05-28T03:13:12.483 回答