Advertisement
Guest User

Untitled

a guest
May 29th, 2016
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.31 KB | None | 0 0
  1. public double PageRankForPage(int index, double dampeningFactor)
  2.         {
  3.             double result = 0.0;
  4.             var parents = Parents[index];
  5.             for (int i = 0; i < parents.Count; i++)
  6.             {
  7.                 int parentIndex = parents[i];
  8.                 int outDegree = OutDegree[parentIndex];
  9.                 double parentPageRank = PageRanks[parentIndex];
  10.  
  11.                 result += (parentPageRank / (double)outDegree);
  12.             }
  13.  
  14.             result *= dampeningFactor;
  15.             result += (1 - dampeningFactor);
  16.  
  17.             return result;
  18.         }
  19. public void PageRank(int repeat = Int32.MaxValue, double dampeningFactor = 0.75)
  20.         {
  21.             bool stop = false;
  22.             for (int i = 0; i < repeat && !stop; i++)
  23.             {
  24.                 for (int j = 0; j < Nodes; j++)
  25.                 {
  26.                     double pageRank = PageRankForPage(j, dampeningFactor);
  27.                     if (PageRanks[j] == pageRank)
  28.                     {
  29.                         stop = true;
  30.                         break;
  31.                     }
  32.  
  33.                     PageRanks[j] = pageRank;
  34.                 }
  35.             }
  36.  
  37.             for (int i = 0; i < Nodes; i++)
  38.                 AveragePageRank += PageRanks[i];
  39.  
  40.             AveragePageRank /= (double)Nodes;
  41.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement