2016-11-20 1 views
0

私はいくつかの自己ループを持つ重み付き有向ネットワークを使ってPythonでigraphを処理します。私はigraphを使ってノードのページランクをそれぞれの重みとdirected = Trueを考慮して計算しました。 文献では、PageRankの計算で「ランダムウォーク」(http://www.math.ryerson.ca/~abonato/webgraph.html)のノードの外出を考慮していますが、自己ループで何が行われているかは明示的には言いません。PageRankのigraph(python)実装には自己ループが含まれていますか?

igraphはPageRankの計算で自己ループを考慮していますか?

+1

2つの同一のグラフを作成できますが、1つはループを使用し、もう1つを作成しません。次に、結果を比較することができます。オリジナルのページランクアルゴリズムは自己ループを許可しません。しかし、明示的に自己ループを追加するか、リンク構造内に存在するものを考慮するバリエーションがあります。 – sera

答えて

1

このテスト:

edges1 = [(0,1),(1,2),(2,3),(1,1)] 
edges2 = [(0,1),(1,2),(2,3)] 

test1 = Graph(directed = True) 
test2 = Graph(directed = True) 
for i in xrange(4): 
    test1.add_vertex(i) 
    test2.add_vertex(i) 

test1.add_edges(edges1) 
test2.add_edges(edges2)  

print(test1.pagerank()) 
#[0.10419852083404119, 0.33524741485734993, 0.24667867214841493, 0.3138753921601939] 
print(test2.pagerank()) 
#[0.11615582303660361, 0.2148882726177167, 0.29881085476166275, 0.37014504958401695] 

はい。

コードシンプルさのために編集されました。

関連する問題