【问题标题】:how can i re-use previous results of a pagerank calculation in python-igraph如何在 python-igraph 中重用以前的 pagerank 计算结果
【发布时间】:2014-11-17 23:51:27
【问题描述】:
我有一个不断变化的图表。随着时间的推移,添加了一些顶点并出现了一些新边(节点没有被删除)。如果我有以前的 pagerank 计算结果,我该如何重复使用它以提高速度?
python igraph 模块看起来很漂亮,但我找不到任何相关的东西。
指定的改进应该是有用的,因为 pr 是一种随机算法。我有一个用 python 编写的原型,但我真的很想为此使用 C 库包装器。还有其他人经历过吗?
【问题讨论】:
标签:
python
graph-theory
igraph
pagerank
【解决方案1】:
首先,PageRank 不是一种随机算法。 PageRank 方程归结为计算稀疏矩阵的主要特征向量(嗯,不完全是稀疏矩阵,而是稀疏矩阵加上一些其他矩阵的总和,我们可以像稀疏矩阵一样快速计算向量积),所以这是完全确定的。
其次,不幸的是,没有办法告诉 PageRank 算法的内部实现结果应该“接近”之前的 PageRank 向量,尽管理论上它可能有用,因为特征向量计算可能 如果从已经接近真实特征向量的向量开始,则收敛速度更快。
但是,igraph 从 0.7 版本开始使用PRPACK 计算 PageRank 向量,并且 PRPACK 已经高度优化,因此即使您没有提前指定“特征向量提示”,它在您的图上也可能很快.我会先试一试,看看效果如何。