算法 – 以概率最大化社交网络中的预期收益

我需要解决一个具体问题.

我有一个社交网络的代表.

每个节点都是一个人,每个边缘是两个人之间的连接.图表是无向的(如您所料).

每个人都有购买产品的个人“亲和力”(简化事情,假设只有一个产品涉及整个问题).

在每个“步骤”中,每个人独立地选择是否购买产品.
有可能在这里进行调查.一些参数被考虑在内:

>他个人对产品的亲和力,
>他已经购买该产品的朋友的百分比

购买该产品的人的收益是1美元.

问题是指出将在步骤0中接收产品的X人(比如5人),并且在Y步之后将最大化增益的总预期值(比方说,10步)

网络非常大.以天真的方式模拟所有选项是不可能的.

我应该使用什么工具/库/算法?

谢谢.

附:
在谷歌和维基百科上调查此事时,一些条款不断涌现:

>动态网络分析
>流行病模型

但它没有帮助我找到答案

最佳答案 一般来说,拥有最多邻居的人在购买东西时影响最大.

因此,我的启发式方法是先按照他们拥有的邻居数量(按降序排列),然后按每个邻居的邻居数量(按从高到低的顺序)排序,依此类推.您将需要最多Y级别的邻居计数,但在实践中可能更少.然后只需在此列表中选择第一个X人.

这只是一种启发式方法,因为例如如果一个人有很多邻居,但他们中的大部分或全部可能已经通过其他联系购买了产品,那么它可能会更高的期望选择一个拥有较少邻居的不同的人,但其邻居不太可能已经拥有产品.

您不需要构建整个列表然后对其进行排序;你可以构建列表然后将每个项目插入到heap中,然后只提取得分最高的X人.如果X很小,这将快得多.

如果X和Y与你建议的一样低,那么这个计算将非常快,所以值得做的是重复运行,而不是从拥有该产品的前X人开始,每次运行你随机选择最初的X所有者根据取决于它们在列表中的位置的概率(在列表的下方,概率越低).

点赞