public
Description: Code from RailsConf '09 pres: Building Mini Google in Ruby
Homepage:
Clone URL: git://github.com/igrigorik/rb-pagerank.git
README.rdoc

Computing PageRank in Ruby

Notes & code from RailsConf 2009 presentation: en.oreilly.com/rails2009/public/schedule/detail/7966

Slides: bit.ly/railsconf-pagerank

Example:

    # page 1 -> page 2  (0.33)
    # page 2 -> page 3  (0.33)
    # page 3 -> page 1  (0.33)
    puts "Circular: ", pagerank(Matrix[[0,0,1], [0,0,1], [1,0,0]])

    # page 1 -> page 3  (0.05)    # page 1 & page 2 have minimal postrank values
    # page 2 -> page 3  (0.05)    # min value = min(t * Teleport Vector)
    # page 3 -> page 3  (0.09)    # for uniform teleport vector, min = t * (1/N)
    puts "Star: ", pagerank(Matrix[[0,0,0], [0,0,0], [1,1,1]])

    # page 1 -> page 2, page 3  (0.05)
    # page 2 -> page 3          (0.07)
    # page 3 -> page 3, page 3  (0.87)
    puts "Converge: ", pagerank(Matrix[[0,0,0], [0.5,0,0], [0.5,1,1]])

    # page 1 -> page 1, page 2  (0.18)
    # page 2 -> page 1, page 3  (0.13)
    # page 3 -> page 3          (0.69)
    puts "Linked:", pagerank(Matrix[[0.5,0.5,0], [0.5,0,0], [0,0.5,1.0]])