Parallel processing 带加权边的图的Pagerank公式(序列或BSP)

Parallel processing 带加权边的图的Pagerank公式(序列或BSP),parallel-processing,graph-algorithm,bigdata,pagerank,Parallel Processing,Graph Algorithm,Bigdata,Pagerank,Pagerank算法(我知道)假设边没有权重。因此,标准公式是: PR(A) = (1 - d)/N + d*\sigma PR(E)/L(E) 其中L(E)是E页的传出链接数,其中E是指向A页的每一页 正如您在这里看到的,公式中不考虑进入A的边的权重 两个问题: a)如果我们考虑每一个边的权重都是A的,那么调整后的公式是什么呢?假设权重越高越好(Python中的NETWorkX包确实考虑加权边,但是代码比上面的公式更为复杂,我更愿意检查是否有一个更简单的解决方案) b) 实际上,我希望这是

Pagerank算法(我知道)假设边没有权重。因此,标准公式是:

PR(A) = (1 - d)/N + d*\sigma PR(E)/L(E)
其中L(E)是E页的传出链接数,其中E是指向A页的每一页

正如您在这里看到的,公式中不考虑进入A的边的权重

两个问题:

a)如果我们考虑每一个边的权重都是A的,那么调整后的公式是什么呢?假设权重越高越好(Python中的NETWorkX包确实考虑加权边,但是代码比上面的公式更为复杂,我更愿意检查是否有一个更简单的解决方案)


b) 实际上,我希望这是一个类似BSP Pregel的框架。有一个,但是你可以看到,它不考虑边缘上的重量。如果你能提出一个建议,那就太好了

我建议你首先将所有边权重加在邻居上,然后将节点等级的百分比发送给邻居

例如: 节点的秩为10。他有两个邻居,他们的边缘有70和30的重量。
总的来说,这将是100。对于边权重为70的第一个节点,发出秩7,而对于另一个节点,发出秩3。

有一个WeightedPageRank的Java实现。我没有尝试过,但在快速阅读了源代码后,它似乎符合您的要求。

谢谢:),我将从merando提供的简单方法开始