Advertisement
Guest User

Untitled

a guest
Aug 3rd, 2015
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.15 KB | None | 0 0
  1. public HashMap<String,Double> pageRank() {
  2. HashMap<String,Double> ranks = new HashMap<String,Double>();
  3. boolean converged = false;
  4.  
  5. for(String s : sortedNodes) {
  6. ranks.put(s, (1/sortedNodes.size()));
  7. }
  8.  
  9. while(!converged) {
  10. HashMap<String,Double> newRanks = new HashMap<String,Double>();
  11. for(String s : sortedNodes) {
  12. LinkedList<String> incomingEdges = reverseAdjacencyList.get(s);
  13. Iterator i = incomingEdges.iterator();
  14. double sum = 0;
  15.  
  16. while(i.hasNext()) {
  17. String curr = i.next();
  18. sum += (double)(ranks.get(curr) / outDegreeOfNode(curr));
  19. }
  20.  
  21. double newPageRank = ( ((1-this.d)/sortedNodes.size()) + (this.d * sum) );
  22. newRanks.put(s,newPageRank);
  23.  
  24. converged = checkConvergence();
  25. }
  26. ranks = newRanks;
  27. }
  28.  
  29.  
  30. return ranks;
  31. }
  32.  
  33. private boolean checkConvergence(HashMap<String,Double> oldRanks, HashMap<String,Double> newRanks) {
  34. boolean converged = true;
  35.  
  36. for(String s : sortedNodes) {
  37. Double diff = Math.abs(newRanks.get(s) - oldRanks.get(s));
  38. Double num = diff / oldRanks.get(s);
  39.  
  40. if(!(num<this.theta)) {
  41. converged = false;
  42. }
  43. }
  44.  
  45. return converged
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement