Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public double PageRankForPage(int index, double dampeningFactor)
- {
- double result = 0.0;
- var parents = Parents[index];
- for (int i = 0; i < parents.Count; i++)
- {
- int parentIndex = parents[i];
- int outDegree = OutDegree[parentIndex];
- double parentPageRank = PageRanks[parentIndex];
- result += (parentPageRank / (double)outDegree);
- }
- result *= dampeningFactor;
- result += (1 - dampeningFactor);
- return result;
- }
- public void PageRank(int repeat = Int32.MaxValue, double dampeningFactor = 0.75)
- {
- bool stop = false;
- for (int i = 0; i < repeat && !stop; i++)
- {
- for (int j = 0; j < Nodes; j++)
- {
- double pageRank = PageRankForPage(j, dampeningFactor);
- if (PageRanks[j] == pageRank)
- {
- stop = true;
- break;
- }
- PageRanks[j] = pageRank;
- }
- }
- for (int i = 0; i < Nodes; i++)
- AveragePageRank += PageRanks[i];
- AveragePageRank /= (double)Nodes;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement