Ga naar hoofdinhoud

13.9 Zelf bouwen — de random surfer

Leerdoel: je bouwt de andere kijk op PageRank — een random surfer die eindeloos doorklikt — en ziet dat die dezelfde ranks oplevert als de iteratieve formule.

Het idee

Tot nu toe rekende je PageRank exact uit met een formule. Maar het begon als een verhaal: een surfer die willekeurig klikt. Simuleer dat:

  • Begin op een willekeurige pagina.
  • Herhaal heel vaak: tel de huidige pagina, en ga dan verder. Met kans d volg je een willekeurige uitgaande link; met kans 1 − d (of als de pagina geen links heeft) spring je naar een willekeurige pagina.
  • De PageRank is de fractie van de tijd die je op elke pagina was.

Met genoeg klikken benadert dit de exacte ranks. We vergelijken jouw simulatie met de iteratieve pagerank (hieronder al gegeven).

Bouw en test

Python
Code-omgeving wordt voorbereid…
Antwoord
if links and random.random() < d:
huidig = random.choice(links)
else:
huidig = random.choice(paginas)

De simulatie en de formule zijn twee kanten van dezelfde medaille: de formule rekent precies uit waar de random surfer op de lange termijn terechtkomt.

Door naar stap 10: fouten →.