友情关系跟踪算法

时间:2008-10-25 19:23:01

标签: algorithm social-networking

我正在考虑一个应用程序,它试图用一组属于社交网络的用户来证明“Six degrees of separation”理论。

我会有这些元素:

  1. 我想证明六度理论的几个用户
  2. 对于每个用户,我都知道社交网络中的朋友列表
  3. 哪个是最好的算法来查看两个用户是否已连接,具有哪种程度并显示连接中的最终步骤?

2 个答案:

答案 0 :(得分:4)

在社交网络中查找两个人之间的分离程度只是在图表中找到两个点之间的最短路径的特殊情况。最常见的方法是Dijkstra's algorithm,但另请参阅对Shortest path problem的详细讨论。

此外,通过运行全对最短路径算法,您可以找出整个网络的最小,最大和平均分离度数。

答案 1 :(得分:3)

一些其他背景材料:

为了解决这个问题,您需要避免网络抓取和其他特定于一个社交网络的特殊技术。相反,您可能希望查看XHTML Friends Network (XFN),这是一种使用超链接的rel =“”属性来指示该超链接的目标与您之间的关系的方法。还有一个名为FOAF的竞争标准,它使用RDF

这些microformats已经存在了一段时间,但最近才对它们提供了大量支持。 StackOverflow在您的个人资料页面上的链接中使用“我”。 WordPress博客在blogroll的编辑界面中提供了一种简单的方法来添加这些标签。许多社交网站在朋友之间的链接中使用这些网站来表示关系。

正因如此,谷歌对此感兴趣,并开始挖掘这些数据。他们有Social Graph API可以挖掘XFN和FOAF数据来完成你想要做的一些事情。我建议你从那里开始。关于Google API的优点在于,因为他们正在整个网络中挖掘这些内容,您可以将搜索范围扩展到您想到的特定社交网络之外。