This repository contains a project on Google's PageRank algorithm, exploring its mathematical foundations and comparing different Python implementations. It was developed for the Mathematics 1b course at DTU.
-
pagerank.pdf: The main project report. It covers the theory behind PageRank, modeling web networks as directed graphs, Markov matrices, eigenvalues, and explains how the damping factor solves convergence issues like disconnected components and periodic cycles. -
page_rank.ipynb: A Jupyter Notebook containing all the Python code. It includes four different ways to calculate PageRank:- Random surfer simulation (with and without damping)
- Recursive PageRank
- Eigenvector PageRank
- Matrix Iteration PageRank
The notebook also includes a runtime analysis to compare the performance and execution speeds of these different methods.
The core idea of the project is to treat web surfing as a probability model. By comparing simple random surfer simulations against deterministic linear algebra approaches (like finding the stationary vector of a Markov matrix), the project demonstrates how damping makes the ranking well-defined and computable.