|
From: | Tamas Nepusz |
Subject: | Re: [igraph] pagerank implementation questions |
Date: | Mon, 5 Mar 2007 15:09:24 +0100 |
As I see, you only modified the niter value and did not take into account that it is used only as an upper bound on the number of iterations. In most of the cases, the algorithm converges earlier ("converges" = "the difference between the vectors in the last two iterations are less than eps"). In the examples found in igraph_pagerank.c, it converges in 34 and 39 iterations, respectively - this can easily be checked by printing the value of the variable niter inside igraph_pagerank's implementation after the main loop. At that point, niter holds the number of _unused_ iteration possibilities (since niter starts from the value supplied when invoking igraph_pagerank and is decremented by one during each iteration).One more question on the converge speed, I tried:
I also don't know which variant of the PageRank algorithm (the normalized or the unnormalized one) did the original authors use in their paper, but it might also happen that the normalized version converges faster than the unnormalized one - or they might have used a different eps value.
Not yet, it is initialized to a uniform distribution (all PageRanks equal).and is there an API in igraph to set the initial value?
-- Tamas Nepusz <address@hidden> MTA RMKI, BME MIT
[Prev in Thread] | Current Thread | [Next in Thread] |