我们知道我们可以在图上使用邻接列表或邻接矩阵进行算法。对于小图表来说,它非常简单直接。但是当图形非常大时,例如社交网络图,哪种数据结构最适合实现最短路径查找等传统算法。由于高内存要求,邻接矩阵或列表不起作用,对吧?社交网络引擎使用什么方法?
答案 0 :(得分:1)
在我找到的来源中使用了邻接列表。对于非常大的数据大小,您可能最终将数据保存在磁盘上或使用多台计算机来解决问题 - 因此我建议添加关键字,例如"外部存储器"或Hadoop搜索。我尝试添加Hadoop并找到一些关于通过并行广度优先搜索来解决单一来源最短路径的论文 - http://www.cs.kent.edu/~jin/Cloud12Spring/GraphAlgorithms.pptx,http://courses.cs.washington.edu/courses/cse490h/08au/lectures/algorithms.pdf,Hadoop MapReduce implementation of shortest PATH in a graph, not just the distance
此外,http://researcher.watson.ibm.com/researcher/files/us-heq/Large%20Scale%20Graph%20Processing%20with%20Apache%20Giraph.pdf并未涵盖最短路径,但是使用Hadoop顶部的层解决连接组件的一个有趣示例可能会让生活更轻松。