Python
Advanced
Estimated Duration: 25 min
Python: Mathematical PageRank Vector Convergence
Implement the core Google PageRank power-iteration algorithm over a web graph using damping factors.
The Mathematics of PageRank
PageRank models a random web surfer navigating through hyperlinks:
$$\text{PR}(A) = \frac{1 - d}{N} + d \sum_{i \in M(A)} \frac{\text{PR}(i)}{L(i)}$$
Where:
- $d = 0.85$ is the damping factor (85% probability of following a link, 15% probability of jumping to a random page).
- $N$ is the total number of pages in the graph.
- $L(i)$ is the number of outbound links from page $i$.
The algorithm runs iterative vector updates until the rank delta drops below an epsilon threshold (e.g. $10^{-6}$).
Target Output
{'A': 0.3878, 'B': 0.2148, 'C': 0.3974}
Need a Hint?
- Initialize each node rank to (1 - d) / N
- Distribute d * ranks[node] / len(out_links) to each destination
- Update ranks dictionary at the end of each iteration
solution.py
Terminal Output
Ready
Click "Run Code & Test" to execute your solution.