2016-11-20 4 views
0

Ich arbeite auf einem Python mit einem gewichteten gerichteten Netzwerk mit mehreren Selbstschleifen. Ich habe den Pagerank der Knoten mit igraph unter Berücksichtigung ihrer jeweiligen Gewichte berechnet und gerichtet = Wahr. In der Literatur fand ich die Berechnung von PageRank berücksichtigt die outdegree von Knoten für seine "Random Walk" (http://www.math.ryerson.ca/~abonato/webgraph.html), aber es sagt nicht explizit, was mit Selbst-Schleifen getan wird.Enthält die Implementierung von PageRank in igraph (python) Selbst-Schleifen?

Habe ich recht, wenn ich annehme, dass igraph Selbst-Schleifen in der Berechnung von PageRank berücksichtigt?

+1

Sie könnten zwei identische Grafiken erstellen, aber einen mit Schleifen und einen ohne. Dann können Sie die Ergebnisse vergleichen. Der ursprüngliche Page Rank-Algorithmus erlaubt keine Selbst-Schleifen. Es gibt jedoch einige Variationen, die entweder explizit Eigenschleifen hinzufügen oder die in der Verbindungsstruktur vorhandenen berücksichtigen. – sera

Antwort

1

Testen dies:

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] 

Ja.

zur Kürze des Codes überarbeitet.

Verwandte Themen