If anyone could implement the algorithm in Java, it would be very much appreciated.
The goal of this project is to analyze the performance of the Google PageRank algorithm, which we will discuss in detail in class when we discuss graphs. This algorithm assigns a rank to a web page based on how often a web user can arrive at a page by clicking on links from other pages. The higher the rank of a web page, the higher its relevance, which the search engine can use in displaying the results of a search.
PageRank is a probability function defined as PR: S -> [0,1], where S is the set of web pages of interest and PR(s) = 1. Let every page in S be represented as a vertex in a directed graph (S,E), where edge (u,v) indicates there is a link from page u to page v. Then the rank function satisfies the relation: (1-d) * PR() = PR(u) / outDegree(u), where "d" is a damping factor usually around 0.85, which indicates that the user will stop surfing after clicking through some series of links. You will be using an iterative algorithm to find a solution to the above recurrence equations. In this algorithm, we start with some initial rank values for the vertices and then modify them iteratively using the above equation.
In the first part of the project, you will be implementing this algorithm, for which the input will consist of: i) a directed graph, ii) a damping factor, iii) iteration limit, and iv) error limit. You will terminate the algorithm if either the new rank values differ from the values in the previous iteration within the error limit or the number of iterations exceeds the iteration limit. In the latter case, we will deem that there is no solution. You can start with an initial value of 1/n for the rank of each vertex. You should have your own implementation of this algorithm (not borrowed from any website or anyone else).