PageRank Explained Example 3

#!/usr/bin/perl

print "Content-Type: text/html\n\n<pre>\n";

$damp = 0.85;
$a = $b = $c = $d = $e = $f = $g = $h = 0;
$i = 40; # loop 40 times

# forward links
# a -> b,c,d        - 3 outgoing links    - home
# b -> a            - 1 outgoing link    - about
# c -> a            - 1 outgoing link    - products
# d -> a,e,f,g,h    - 5 outgoing links    - links
# e,f,g,h -> a        - 1 outgoing link   - regain the lost votes

# i.e. "backward" links (what's pointing to me?)
# a <= b, c, d
# b,c,d <= a
# e,f,g,h <= d
while ($i--) {
    printf(
        "a: %.5f b: %.5f c: %.5f d: %.5f e: %.5f f: %.5f g: %.5f h: %.5f\n",
        $a, $b, $c, $d, $e, $f, $g, $h
    );
    $a = 1 - $damp + $damp * ($b + $c + $d/5 + $e + $f + $g + $h);
    $b = 1 - $damp + $damp * ($a/3);
    $c = 1 - $damp + $damp * ($a/3);
    $d = 1 - $damp + $damp * ($a/3);
    $e = $f = $g = $h = 1 - $damp + $damp * ($d/5);
}
printf("Average pagerank = %.4f\n", ($a + $b + $c + $d + $e + $f + $g + $h) / 8);
print("</pre><a href=/google-page-rank/#ex3>Back to example 3</a>");

Run this program

Back to PageRank Explained Example 3