#algorithm #graph #links #page #rank #structure #web

bin+lib page_rank

A graph and pagerank algorithm implementation in Rust

1 unstable release

0.2.0 May 4, 2024
0.1.0 May 2, 2024

#993 in Algorithms

MIT license

7KB
71 lines

PageRank Algorithm Implementation

This project implements the PageRank algorithm in Rust using a graph data structure. PageRank is a link analysis algorithm used by Google Search to rank web pages in their search engine results. It assigns a numerical weighting to each element of a hyperlinked set of documents, such as the World Wide Web, with the purpose of measuring its relative importance within the set. This README provides an overview of the project structure and how to use it.

How to Use

To use this PageRank implementation, follow these steps:

  1. Clone the repository or copy the provided code into your Rust project.
  2. Ensure you have Rust installed on your system. If not, you can download it from the official Rust website.
  3. Import the necessary modules:
use page_rank::Graph;
  1. Define the main function and initialize the graph:
fn main() {
    let mut pages: Graph<char> = Graph::new();
    // Add pages and links here
}
  1. Add pages to the graph using the add_page method:
pages.add_page('A');
pages.add_page('B');
// Add more pages as needed
  1. Add links between pages using the add_link method:
pages.add_link('A', 'E');
pages.add_link('B', 'A');
// Add more links as needed
  1. Run the PageRank algorithm by calling the page_rank method:
pages.page_rank(40); // Specify the depth of the algorithm
  1. Retrieve and print the sorted PageRank scores:
for (page, score) in pages.get_sorted_scores() {
    println!("{page} => {score:.2}")
}

Project Structure

  • main function: Entry point of the program where the graph is initialized and the PageRank algorithm is executed.
  • Graph struct: Represents the graph data structure containing nodes and their connections.
  • Node struct: Represents a node in the graph, storing incoming and outgoing links along with their scores.
  • Methods:
    • new: Initializes a new graph or node.
    • add_page: Adds a page to the graph.
    • add_link: Adds a link between two pages.
    • page_rank: Executes the PageRank algorithm to calculate scores.
    • get_sorted_scores: Retrieves the sorted PageRank scores.

Dependencies

This project has no external dependencies beyond the standard Rust library.

About PageRank Algorithm

PageRank is an algorithm used by search engines to rank web pages in their search results. It works by counting the number and quality of links to a page to determine a rough estimate of the website's importance. Pages with higher PageRank are more likely to appear at the top of search results.

License

This project is licensed under the MIT License. Feel free to use and modify it according to your needs. If you find any issues or have suggestions for improvements, please create an issue or pull request on the GitHub repository.

No runtime deps