有没有人知道在任何一个图形处理系统(Giraph,Pregel或Graphchi)中是否存在广度(来自多个来源)的实现。
或者请告诉我们在任何一个系统上更容易实现。
答案 0 :(得分:4)
在Giraph用户邮件列表中,我们可以找到一些BFS实施的讨论 - 我想也是一个实现。
我过去曾对Giraph进行过这种搜索,可以在以下网址找到:
https://github.com/MarcoLotz/GiraphBFSSO
https://github.com/MarcoLotz/GiraphBFSTO
它们之间的区别在于,一个是面向目标的,另一个是面向结构的。
虽然它们不是来自多个起始顶点,但可以轻松修改代码以支持它:)
答案 1 :(得分:0)
您正在寻找多种子广度优先搜索(BFS)算法。
对于Giraph来说,这仍然是一个悬而未决的问题,可以在这里阅读 feature request
对于Pregel,您不能指望找到任何开放式算法,因为Pregel是Google的闭源图形系统。
我想最简单的方法是使用Github中的代码并分别为每个源执行代码。优化算法运行时复杂性的一个想法是为第一个种子顶点执行BFS并将结果重用于后续顶点种子(第一个BFS结果生成树,可以很容易地转换为任何给定的BFS顺序种子顶点)。
尽管如此,KISS建议简单地为k种子顶点执行k次BFS,直到遇到性能问题(这不太可能是由于BFS的线性运行时复杂性)。