Facebook “寻找”的启发式方法;“令人惊讶”;共同的朋友

Facebook “寻找”的启发式方法;“令人惊讶”;共同的朋友,facebook,facebook-graph-api,cluster-analysis,hierarchical-clustering,Facebook,Facebook Graph Api,Cluster Analysis,Hierarchical Clustering,我有我的Facebook好友的无向好友图,G即G[I][j]=G[j][I]=true如果我的朋友I和朋友j是彼此的朋友。我想找到“令人惊讶的”共同的朋友,也就是我通常不希望认识的一对朋友。我可以应用哪些好的启发法/算法?我最初的想法是运行一个聚类算法(不确定哪一个是最好的),看看是否能找到穿过聚类的边。还有其他想法吗?我可以使用什么样的好的聚类算法来接收G并吐出聚类。以下是我的想法。友谊是一种优势。令人惊讶的友谊是一条边,如果你去掉这条边,两个节点之间的距离就会变得很大。这是我的想法。友谊是一

我有我的Facebook好友的无向好友图,
G
G[I][j]=G[j][I]=true
如果我的朋友
I
和朋友
j
是彼此的朋友。我想找到“令人惊讶的”共同的朋友,也就是我通常不希望认识的一对朋友。我可以应用哪些好的启发法/算法?我最初的想法是运行一个聚类算法(不确定哪一个是最好的),看看是否能找到穿过聚类的边。还有其他想法吗?我可以使用什么样的好的聚类算法来接收G并吐出聚类。

以下是我的想法。友谊是一种优势。令人惊讶的友谊是一条边,如果你去掉这条边,两个节点之间的距离就会变得很大。

这是我的想法。友谊是一种优势。令人惊讶的友谊是一种优势,因此,如果删除该优势,两个节点之间的距离将变得非常大。

吴永正的答案可以与现有的网络概念联系在一起,这是一种稳健且可能更敏感的测量方法,即对节点之间的距离进行定量测量将变得非常大。这个概念是边介数。在这种情况下,我们将计算一个估计版本。参见示例和。

吴永正的答案可以与现有的网络概念联系起来,这是一种稳健且可能更为敏感的测量方法,即对节点之间距离的定量测量变得非常大。这个概念是边介数。在这种情况下,我们将计算一个估计版本。请参见例如和。

这似乎是一个很好的方法,但如果涉及到大量的人和友谊,则可能不实用,因为这需要计算最短路径的e |倍,每个路径的长度都可能达到V |长,因此,定义一段令人惊讶的友谊的实际距离可能是很好的。通过设置所需距离的上限,可以设置算法最坏情况下性能的上限。虽然,这可能不是什么大问题,所以+1。这个算法是O(E(V+E)),也就是说,对于每条边,做bfs。还有更快的方法吗?这似乎是一个很好的方法,但如果涉及到大量的人和友谊,则可能不实用,因为这需要计算最短路径的E |倍,每一次都可能达到V |长,因此,定义一段令人惊讶的友谊的实际距离可能是很好的。通过设置所需距离的上限,可以设置算法最坏情况下性能的上限。虽然,这可能不是什么大问题,所以+1。这个算法是O(E(V+E)),也就是说,对于每条边,做bfs。还有更快的吗?