2016-11-20 3 views
0

필자는 Python에서 igraph를 여러 자체 루프가있는 가중 직접 네트워크로 작업합니다. 나는 각각의 가중치와 directed = True를 고려하여 igraph로 노드의 PageRank를 계산했다. 문헌에서 나는 PageRank의 계산이 자신의 "random walk"(http://www.math.ryerson.ca/~abonato/webgraph.html)에 대한 노드의 outdegree를 고려하고 있지만, 자기 루프로 무엇이 이루어 졌는지는 명시 적으로 밝히지 않았다.PageRank의 igraph (python) 구현에 자체 루프가 있습니까?

igraph는 PageRank 계산에서 자체 루프를 고려한다고 가정할까요?

+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] 

예.

코드 간결하게 편집되었습니다.