PageRank on undirected and weighted graph
Jimmy
posted @ 2012年3月03日 16:29
in Java Programming
, 10129 阅读
最近需要用PageRank算法实现无向带权图节点的ranking,具体的PageRank算法介绍可以参考维基百科http://en.wikipedia.org/wiki/Pagerank
最初的PageRank算法是针对有向图的,迭代方程为:,其中是顶点的PageRank值,是顶点的出度。
在无向带权图中,改进迭代方程: 其中是边的权重,是顶点的度数。
在实际迭代计算式,选择好的数据结构很重要,上面迭代公式中主要的计算就是边的权重与顶点的度数。使用Map<String, ArrayList<MapEntry>> 来表示边(node1, <node2, weight>),这样计算权重与度数是都很方便。
实现代码与测试数据可在github上下载:https://github.com/jia1546/PageRank
2015年4月12日 19:34
你好,我透過github下載了您的程式,但是我不瞭解輸入該放甚麼。
我今天有undirected的關係圖如:
1 2 //代表1 & 2 有關連
1 3 //代表1 & 3 有關連
2 3
3 4 ...等等的關係文件,但是因為沒有weight值不能運算。
不知道能不能請教您"1 2" 的weight要放多少又或是該如何計算weight值,謝謝您。