0

除了我在这里提到的原始球和篮子问题:球和篮子问题算法?

有一个稍微不同的问题。

仍然有N个人,他们有无限的球,但这次他们没有篮子。

问题是:

有N个人无限球和M个不同的篮子。人们把球扔到篮子里。

我想找到向同一个篮子扔球的人群。

A 人投篮 1 , 2, 4, ,6,7, 14, 51, 32 B 人投篮 3, 4, 6, 7, 14,15, 16, 64,43 C 人投篮 3, 4、6、7、5、87、42、32、52、55。. . 等等

在这个例子中,人 A 和 B 可能有很好的联系(比如说朋友)(4,6,7,14 常见),C 也可能与他们有联系,但联系不太好。(4、6,7常见)

我想在一个非常大的人员数据库中找到这样的 4-5 人组。

4

2 回答 2

0

好的,我最初的想法;将此建模为加权图。使人们成为顶点并在他们共享篮子时创建链接。如果他们共享多个购物篮,则增加他们共享的每个购物篮的链接权重。因此,在您的示例中,A 和 B 之间的边的权重为 4。

然后,您可以决定组中每个人的友好程度,修剪权重小于该值的边,然后在结果图中寻找派系。

于 2009-12-22T20:37:19.707 回答
0

杰克逊的想法是开始。

找到派系后,通过所有 egdes 的篮子的交集为每个派系定义公共篮子集。(其中一条边的篮子是这条边的节点所代表的人共有的篮子)。只有当公共篮子集大于 X 时,这个集团才代表一个真正连通的群。

例如,在原始问题中,边缘将是:

A-B:  weight=4, baskets=[4,6,7,14]
A-C:  weight=3, baskets=[4,6,7]
B-C:  weight=4, baskets=[3,4,6,7]

如果你在小于 3 处修剪,你会得到这是一个集团,共同的篮子集 = [4,6,7]。

在您在杰克逊回答的评论中给出的示例中,常见的篮子集是空的,所以您知道这些人并没有真正的联系。

于 2009-12-23T13:59:45.237 回答