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

时间:2013-05-28 03:06:06

标签: algorithm graph graph-theory graph-algorithm

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

在整个图形无法加载到单个机器中的情况下会出现问题 因为没有足够的记忆。所以另一个要求是分区有 不知何故,顶点数量相等。

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

此处的用例是:您希望从您知道将需要最大k遍历的初始顶点开始执行查询。具有包含此查询的所有顶点的零件将导致零 网络利用率。 因此问题是减少这种分区的内存开销。

我应该阅读的任何书籍?

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

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

1 个答案:

答案 0 :(得分:1)

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

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