【问题标题】:Largest possible group of friends in common?最大可能的共同朋友群体?
【发布时间】:2012-10-30 07:01:12
【问题描述】:

我正在尝试找出尽可能多的理论上可以彼此相处的朋友,即,该组中的每个人都应该认识该组中至少 50% 的其他人。

我正在尝试为此提出一种算法,该算法不会花费很长时间; Facebook 的 API/跨服务器对话非常缓慢。

我在想我可以先从和我有最多共同朋友的朋友开始,然后一个一个地添加人到组中。但接下来我会选择谁呢?

只对理论感兴趣,不需要代码。


编辑:当我说“理论”时,我真正的意思是用简单的英语来说下一个合乎逻辑的步骤是什么:) 我希望我能在一个下午编写这个代码,但我想这是比我预想的要复杂一些,而且我不确定我是否愿意花数周时间深入研究繁重的图论。不过,也许其他人会觉得这很有趣。

【问题讨论】:

  • 这听起来像是一个 NP 完全问题,很像旅行推销员……但如果有人证明我错了,我会很兴奋!
  • 嗯……是这样吗?你认为它可以在一分钟内解决 300 个朋友吗?
  • 300 如果您缓存数据,则在一分钟内。一分钟内 300 个网络请求和处理可能会推动它,这取决于 grep 的难度。
  • 在旁注中,100% 的共同点会更容易吗?您可以更快地将人们排除在外...

标签: facebook language-agnostic theory


【解决方案1】:

MIT 不久前在社交图表方面做了一些工作。尽管它使用了手机数据,但聚类算法和其他系统仍应适用,即使它们是使用不同的输入和标准构建的。

目前有more MIT chatter 关于社交图谱。绝对是寻找这类事情的技术指针的地方。

虽然从给定节点到其边的图枚举问题对于大多数有用的问题都是 NP 完全的……但图遍历的应用和丰富的信息可能会帮助您提高效率:

  1. 对于任何节点(配置文件)N,您可以使用 Google 或其他工具进行数据抓取,以找到相关的边缘。这意味着您可以利用页面缓存和 Google 的搜索技术来减少自己遍历边缘的情况。

  2. 社交资料包含大量元数据。开发一种统计分析方法来计算 A 在没有直接路径的情况下知道 B 的可能性可能是有用的。毕竟朋友有a)相似的位置和b)相似的兴趣

  3. 其他看似无关的数据可以提供一种方法来定位可能彼此认识的人,然后您可以仔细检查边缘。诸如在董事会上谈论乐队或演出,或者当凯特打玛丽的嘴时人们提到“猫打架”。

只需以正确的方式查看数据,就像麻省理工学院通过手机查看地理统计数据来确定关系一样。

祝你好运

【讨论】:

  • 有趣的文章 :) 谢谢。我认为使用概率对于像这样的小型应用程序来说有点矫枉过正,但我​​可以看到这对更大的应用程序有什么用处。不会想到的。谢谢
【解决方案2】:

有一种称为 SCAN-Algorithm 的算法具有一些预先计算,该算法可以以良好的速度对网络进行聚类。

您可以在此处找到有关该算法的信息:SCAN:A Structural Clustering Algorithm for Networks

【讨论】:

    【解决方案3】:

    This 更“广泛”,但看看它是否有助于获得想法。

    【讨论】:

    • 哈哈..这是一个非常简洁的工具。我给了它几个我的网站,它找到了我的堆栈溢出帐户,即使它们都没有链接到它(但 SO 链接到它们)。我确信我可以将 FB 数据转换为正确的格式,但是这个 API 可以用来解决这个特殊问题吗?我不知道...我必须更深入地研究。感谢您的链接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多