#!/usr/bin/perl

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

# Plain Heirarchical
# forward links
# a -> b     - 1 outgoing link  - home
# b -> a,c   - 2 outgoing links - doc page 1
# c -> b,a,d - 3 outgoing links - doc page 2
# d -> a,c   - 2 outgoing links - doc page 3

# i.e. "backward" links (what's pointing to me?)
# a <= b/2, c/3, d/2
# b <= a, c/3
# c <= b/2, d/2
# d <= c/3
while ($iterate--) {
	printf("a: %.5f b: %.5f c: %.5f d: %.5f\n", $a, $b, $c, $d);

	$a = 1 - $damp + $damp * ($b/2 + $c/3 + $d/2);
	$b = 1 - $damp + $damp * ($a + $c/3);
	$c = 1 - $damp + $damp * ($b/2 + $d/2);
	$d = 1 - $damp + $damp * ($c/3);
}
printf("Average pagerank = %.4f\n", ($a + $b + $c + $d) / 4); # to 4 decinal places!

Outputs

a: 0.00000 b: 0.00000 c: 0.00000 d: 0.00000
a: 0.15000 b: 0.27750 c: 0.26794 d: 0.22592
a: 0.43987 b: 0.59980 c: 0.50093 d: 0.29193
a: 0.67092 b: 0.86221 c: 0.64051 d: 0.33148
a: 0.83879 b: 1.04445 c: 0.73477 d: 0.35819
a: 0.95431 b: 1.16935 c: 0.79920 d: 0.37644
a: 1.03340 b: 1.25483 c: 0.84329 d: 0.38893
a: 1.08753 b: 1.31333 c: 0.87346 d: 0.39748
a: 1.12458 b: 1.35337 c: 0.89411 d: 0.40333
a: 1.14993 b: 1.38077 c: 0.90824 d: 0.40734
a: 1.16728 b: 1.39953 c: 0.91792 d: 0.41008
a: 1.17916 b: 1.41236 c: 0.92454 d: 0.41195
a: 1.18728 b: 1.42114 c: 0.92907 d: 0.41324
a: 1.19285 b: 1.42715 c: 0.93217 d: 0.41411
a: 1.19665 b: 1.43127 c: 0.93429 d: 0.41471
a: 1.19926 b: 1.43408 c: 0.93574 d: 0.41513
a: 1.20104 b: 1.43601 c: 0.93673 d: 0.41541
a: 1.20226 b: 1.43733 c: 0.93741 d: 0.41560
a: 1.20310 b: 1.43823 c: 0.93788 d: 0.41573
a: 1.20367 b: 1.43885 c: 0.93820 d: 0.41582
a: 1.20406 b: 1.43927 c: 0.93842 d: 0.41588
a: 1.20433 b: 1.43956 c: 0.93856 d: 0.41593
a: 1.20451 b: 1.43976 c: 0.93867 d: 0.41596
a: 1.20463 b: 1.43989 c: 0.93874 d: 0.41598
a: 1.20472 b: 1.43999 c: 0.93878 d: 0.41599
a: 1.20478 b: 1.44005 c: 0.93882 d: 0.41600
a: 1.20482 b: 1.44009 c: 0.93884 d: 0.41600
a: 1.20485 b: 1.44012 c: 0.93885 d: 0.41601
a: 1.20487 b: 1.44014 c: 0.93886 d: 0.41601
a: 1.20488 b: 1.44016 c: 0.93887 d: 0.41601
a: 1.20489 b: 1.44017 c: 0.93888 d: 0.41602
a: 1.20489 b: 1.44017 c: 0.93888 d: 0.41602
a: 1.20490 b: 1.44018 c: 0.93888 d: 0.41602
a: 1.20490 b: 1.44018 c: 0.93888 d: 0.41602
a: 1.20490 b: 1.44018 c: 0.93889 d: 0.41602
a: 1.20490 b: 1.44019 c: 0.93889 d: 0.41602
a: 1.20490 b: 1.44019 c: 0.93889 d: 0.41602
a: 1.20490 b: 1.44019 c: 0.93889 d: 0.41602
a: 1.20490 b: 1.44019 c: 0.93889 d: 0.41602
a: 1.20491 b: 1.44019 c: 0.93889 d: 0.41602
Average pagerank = 1.0000

This page and its contents are copyright © 2024, Ian Rogers. Theme derived from Prav