# How Hyperlinks Become Votes: The PageRank Algorithm

> A hyperlink is a vote, but not every vote is worth the same. This lecture builds PageRank from the ground up on a web of six pages. A random surfer clicks links forever, and the fraction of time it spends on each page becomes that page's rank, settling from an even share into six stable numbers. The same computation is then rewritten as repeated multiplication of a probability vector by a sparse link matrix, which is how it is really done at scale, and named as the power method. Finally the model is broken on purpose: a page with no outgoing links drains the whole ranking to zero, and a pair of pages linking only to each other swallows all of it. One damping factor, read as a bored surfer teleporting to a random address, repairs both and gives the ranking the lecture finishes on.

- Canonical watch page: [How Hyperlinks Become Votes: The PageRank Algorithm](https://academa.ai/lectures/pagerank-the-random-surfer)
- Publisher: [Academa, Inc.](https://academa.ai)
- Subject: Computer Science
- Published: 2026-08-28T18:51:49.805Z
- Updated: 2026-08-28T18:51:49.805Z
- Duration: PT681S (11 minutes 21 seconds)
- Chapters: 3
- Views: 1
- Language: en-US
- Access: Free
- Video stream: [HLS content](https://academa.ai/media/l/01M14TXJEYMJ7SQEJYRCTTSZRP/0/dark/master.m3u8)
- Audiovisual record: [Semantic JSON](https://academa.ai/media/l/01M14TXJEYMJ7SQEJYRCTTSZRP/0/semantic.json)
- Thumbnail: [Image](https://academa.ai/media/l/01M14TXJEYMJ7SQEJYRCTTSZRP/0/dark/poster.jpg)

## Description

Build PageRank from a random surfer on six pages: link matrix, power iteration, damping factor, dangling pages and rank sinks.

## Chapters

- [00:00–03:36.946 · A Surfer on a Small Web](https://academa.ai/lectures/pagerank-the-random-surfer?t=0)
- [03:36.946–07:27.838 · The Same Walk as a Matrix](https://academa.ai/lectures/pagerank-the-random-surfer?t=216.94554166666663)
- [07:27.838–11:21 · Dangling Pages, Traps, and the Bored Surfer](https://academa.ai/lectures/pagerank-the-random-surfer?t=447.83802083333325)

## Transcript

### [00:00 · A Surfer on a Small Web](https://academa.ai/lectures/pagerank-the-random-surfer?t=0)

Nineteen ninety eight. The web has millions of pages on it, and somebody has to put them in order. Counting the words on a page is easy to fake. What is much harder to fake is what everybody else links to. So treat a hyperlink as a vote. Here is a web with six pages on it. Call them A through F, and every arrow is one hyperlink, pointing from the page that casts the vote to the page that receives it. A links to B and to C. B links to C and to D. C links back to A. D links to A and to E. E links to A and to F. And F links only to A. The crude way to use that is simply to count. Four arrows point at A. Two point at C. And B, D, E and F have one each. So A wins, and four pages are tied for last, which is not much of a ranking. And it is trivially cheatable. Every vote counted the same, so a link from a page nobody has ever read is worth exactly as much as a link from the front page of a newspaper. So here is the fix, and the lovely thing about it is that it stops talking about voting altogether. Imagine somebody sitting at page A who does nothing but click links at random. A has two links out, so flip a coin. It comes up C. C has only one link, so the surfer goes back to A. From A the coin says B this time. B has two links out and picks C again. C takes it back to A. Nobody is choosing anything clever there. It is all coin flips. And the surfer never arrives anywhere, because it never stops, so the question to ask is not where it ends up. It is what fraction of its time it spends on each page. Before the walk starts we know nothing at all, so give every page an equal share of the credit: one sixth each, about zero point one six seven. Now let the surfer run for a hundred steps and count where it landed. A took about forty one percent of the visits, C about twenty five, B about seventeen, and D, E and F share what little is left. Ten thousand steps, and the numbers steady. A million, and they stop moving altogether. This is what the walk settles on. A holds about thirty seven percent of the surfer's time, C twenty eight, B nineteen, and then it falls away sharply: nine, five and two percent for D, E and F. Those six numbers are the PageRank of this little web. And look at what those numbers are not. They are not the link count. B and D have exactly one arrow pointing at each of them, and yet B ends up worth twice as much as D. Look at where each of those single votes comes from. The one pointing at B comes from A, the most visited page on this web, and A splits its rank between two links. So B gets half of A. The one pointing at D comes from B, split two ways again, so D gets half of B. The same halving carries on down the chain. D hands half of what it has to E, and E hands half of that to F. That is why the last four numbers are each exactly half the one before them. So a vote from a heavily visited page is worth more than a vote from a quiet one, and a page that links to everything gives less to each. That is the whole idea, and it came out of a coin flip. What we do not have yet is a way to compute it without walking for a million steps.

### [03:36.946 · The Same Walk as a Matrix](https://academa.ai/lectures/pagerank-the-random-surfer?t=216.94554166666663)

The surfer's rule is short. Take whatever rank you have, divide it equally among your outgoing links, and hand it on. Let's write that down one page at a time, calling the new numbers y and the old ones x. Start with B, because B is the easy one. Exactly one page points at it, and that is A. A has two links out, so A hands over half of what it has. The new value of B is half the old value of A. C is fed by two pages, A and B, and both of them have two links out, so both hand over half of theirs. The new C is half of A, plus half of B. A is fed by four pages. C and F have only one link each, so they hand over everything they have. D and E have two links each, so they hand over half. The new A is C, plus half of D, plus half of E, plus F. There are six of these, one per page, and every one of them has the same shape: a weighted sum of the old numbers, with the weights read straight off the links. Which is precisely what a matrix is for. Here is the whole web as one matrix. Six rows and six columns, one of each per page, in the order A, B, C, D, E, F. A column tells you what one page does with its rank. The column for A has two entries of one half, sitting in the B row and the C row, because A splits its vote between B and C. The column for C has a single one in it, up in the A row, because C has one link and gives everything to A. And every column adds up to exactly one, which is the bookkeeping that says rank is never created and never destroyed. Read across instead of down and you get what a page receives. The A row has four non zero entries, and they are exactly the four terms we wrote a minute ago: C, half of D, half of E, and F. So one step of the walk is one matrix times one vector. Call the numbers at step k, x sub k. Then the next lot is H times x sub k. And then you do it again. Start from the vector that knows nothing at all: one sixth on every page. Multiply once, and watch what A collects. All of C, which is zero point one six seven. Half of D, and then half of E, which is zero point zero eight three apiece. And all of F, another zero point one six seven. Rule a line under those four and add them up. A comes out at exactly one half. Which is a wildly lopsided first step: everything that pointed at A has dumped its whole share in at once. Multiply again and it swings back the other way. A gives half of that pile to B and half to C, so those two jump up, and A itself drops to a third. Do it a third time, and the numbers swing again. And a fourth, and again. They wobble, and every time round the wobble is a little smaller than it was. By about the twelfth multiplication they have stopped changing in the third decimal place, and they are the same six numbers the surfer found by walking. Three seven two on A, two seven nine on C, one eight six on B. This is the power method. Multiplying by H over and over drives any starting vector towards the one vector that H leaves alone. An eigenvector of the link matrix, with eigenvalue one. And that is genuinely how it is done. On a web of a billion pages the matrix is almost entirely zeros, so a single multiplication is cheap, and a few dozen of them is the whole computation. There is only one problem. All of that assumes the walk can always carry on.

### [07:27.838 · Dangling Pages, Traps, and the Bored Surfer](https://academa.ai/lectures/pagerank-the-random-surfer?t=447.83802083333325)

Real webs are not that tidy. Plenty of pages have no outgoing links at all: a PDF, an image, a page that simply never links anywhere. So take our web and delete the single link out of F. Now the surfer walks into F and stops dead, because there is nothing there to click on. In the matrix, that column is all zeros. F takes rank in, and hands none of it back out. Watch what that does to the numbers. At every step, whatever share is sitting on F simply vanishes. After one multiplication the total has already fallen to zero point eight three. Again, and it is down to three quarters. Again, and it keeps slipping away. Twenty steps in, there is essentially nothing left anywhere, and it is still falling. Which ranks nothing against anything. Every page has been driven towards zero, and the ordering has gone with it. Now the opposite failure. Give F a link out again, but point it at E rather than at A, and cut the link from E to A. Set the numbers back to an even sixth each. The surfer wanders in, and then it bounces between the two of them forever. There is no way out at all. That pattern has a name: a rank sink, or a spider trap. And the numbers go the other way. Instead of draining out of the web, everything piles into the pair. After enough steps E and F hold the whole thing between them, and A, B, C and D are all heading for zero. Two pages that nobody else even links to have taken the entire ranking. And both failures come from the same place: the walk cannot carry on properly. So set the numbers level again, and let's fix it. Both of them have the same one line cure, and it is the nicest idea in the whole algorithm. The surfer gets bored. Eighty five times out of a hundred, click a random link, exactly as before. The other fifteen times, stop clicking altogether: type an address straight into the bar, and jump to a page picked uniformly at random from the entire web. So the update gains a second term. Zero point eight five times H times x, which is the clicking, plus zero point one five over n on every page, which is the jumping. That first constant is the damping factor. Watch it undo both problems. From a dead end, jumping is the only move there is, so the walk carries on and nothing leaks away. From inside the trap, the surfer escapes fifteen times in a hundred, so it can never be held there forever. And every page in the web now receives at least zero point one five over n, no matter who links to it. So no rank is ever exactly zero, and the ordering always exists, whatever the link structure happens to look like. So put the original web back, with F pointing at A once more and E linking out again, and run the damped iteration on it. These are the numbers it settles on. A lands at about zero point three five, C at zero point two five, B at zero point one eight, and then D, E and F at a tenth, seven hundredths and five hundredths. Same order as the undamped walk gave us, but everything has been pulled a little way towards the flat one sixth. A has given some back, and F has more than doubled. That is the fifteen percent of ignorance mixing itself back in. So that is PageRank. A link is a vote. A vote is worth the rank of the page casting it, divided between all the links that page casts. And the ranking is the vector that stops changing when you multiply it by the damped link matrix.

## About Academa, Inc.

Academa makes technical knowledge easier to understand through visual lectures and lets learners request new lecture videos on the topics they need.

## Complete audiovisual record

Immutable source: [semantic.json](https://academa.ai/media/l/01M14TXJEYMJ7SQEJYRCTTSZRP/0/semantic.json)

Record version: 1. Render attempt: 0.

### How to read this timeline

Each scene owns its object identifiers. A beat's board is the complete board when listed, empty when marked empty, and unchanged from the nearest earlier listed board in the same scene when marked unchanged. Action times are absolute positions in the published video.

### Scene 1: [A Surfer on a Small Web](https://academa.ai/lectures/pagerank-the-random-surfer?t=0)

Span: 00:00–03:36.946 (0s–216.94554166666663s).

#### Objects

- bar\_a: a Vector \[green\] labelled "0.167" drawn in chart (start=(0.7, 0.0), end=(0.7, \<VariableNumber p\_a = 0.372\>))
- bar\_b: a Vector \[green\] labelled "0.167" drawn in chart (start=(1.7, 0.0), end=(1.7, \<VariableNumber p\_b = 0.186\>))
- bar\_c: a Vector \[green\] labelled "0.167" drawn in chart (start=(2.7, 0.0), end=(2.7, \<VariableNumber p\_c = 0.279\>))
- bar\_d: a Vector \[green\] labelled "0.167" drawn in chart (start=(3.7, 0.0), end=(3.7, \<VariableNumber p\_d = 0.093\>))
- bar\_e: a Vector \[green\] labelled "0.167" drawn in chart (start=(4.7, 0.0), end=(4.7, \<VariableNumber p\_e = 0.047\>))
- bar\_f: a Vector \[green\] labelled "0.167" drawn in chart (start=(5.7, 0.0), end=(5.7, \<VariableNumber p\_f = 0.023\>))
- baseline: a Line \[gray\] drawn in chart (start=(0.15, 0.0), end=(6.45, 0.0))
- card: a Title that says "Algorithms — How Hyperlinks Become Votes: The PageRank Algorithm"
- chart: a Figure (x\_range=(0.0, 6.6), y\_range=(-0.16, 0.56), aspect=(6.6, 3.6))
- edge\_ab: a Vector \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 5.75), trim\_tip=True)
- edge\_ac: a CurvedArrow \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 1.25), bend=0.35)
- edge\_bc: a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(4.3, 1.25), trim\_tip=True)
- edge\_bd: a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(6.9, 5.75), trim\_tip=True)
- edge\_ca: a CurvedArrow \[gray\] drawn in web (start=(4.3, 1.25), end=(3.0, 3.5), bend=0.35)
- edge\_da: a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(3.0, 3.5), trim\_tip=True)
- edge\_de: a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(8.2, 3.5), trim\_tip=True)
- edge\_ea: a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(3.0, 3.5), trim\_tip=True)
- edge\_ef: a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(6.9, 1.25), trim\_tip=True)
- edge\_fa: a Vector \[gray\] drawn in web (start=(6.9, 1.25), end=(3.0, 3.5), trim\_tip=True)
- head\_walk: a Heading that says "Where Does the Surfer Spend Its Time?"
- head\_web: a Heading that says "Six Pages and the Links Between Them"
- idea: a Panel that says "A hyperlink from one page to another is a vote. The whole question is what a single vote is worth."
- node\_a: a Point \[blue\] labelled "A" drawn in web (location=(3.0, 3.5), marker\_radius=0.15)
- node\_b: a Point \[blue\] labelled "B" drawn in web (location=(4.3, 5.75), marker\_radius=0.15)
- node\_c: a Point \[blue\] labelled "C" drawn in web (location=(4.3, 1.25), marker\_radius=0.15)
- node\_d: a Point \[blue\] labelled "D" drawn in web (location=(6.9, 5.75), marker\_radius=0.15)
- node\_e: a Point \[blue\] labelled "E" drawn in web (location=(8.2, 3.5), marker\_radius=0.15)
- node\_f: a Point \[blue\] labelled "F" drawn in web (location=(6.9, 1.25), marker\_radius=0.15)
- p\_a: a VariableNumber (initial\_value=0.16666666666666666, format\_spec='.3f')
- p\_b: a VariableNumber (initial\_value=0.16666666666666666, format\_spec='.3f')
- p\_c: a VariableNumber (initial\_value=0.16666666666666666, format\_spec='.3f')
- p\_d: a VariableNumber (initial\_value=0.16666666666666666, format\_spec='.3f')
- p\_e: a VariableNumber (initial\_value=0.16666666666666666, format\_spec='.3f')
- p\_f: a VariableNumber (initial\_value=0.16666666666666666, format\_spec='.3f')
- point: a Point \[yellow\] drawn in web (location=(6.9, 1.25))
- point\_2: a Point \[yellow\] drawn in web (location=(3.0, 3.5))
- point\_3: a Point \[yellow\] drawn in web (location=(4.3, 5.75))
- point\_4: a Point \[yellow\] drawn in web (location=(6.9, 5.75))
- tag\_a: a Math \[text\] that says "$A$" drawn in chart
- tag\_b: a Math \[text\] that says "$B$" drawn in chart
- tag\_c: a Math \[text\] that says "$C$" drawn in chart
- tag\_d: a Math \[text\] that says "$D$" drawn in chart
- tag\_e: a Math \[text\] that says "$E$" drawn in chart
- tag\_f: a Math \[text\] that says "$F$" drawn in chart
- walker: a Point \[yellow\] drawn in web (location=(\<VariableNumber wx = 3.0\>, \<VariableNumber wy = 3.5\>), marker\_radius=0.09)
- web: a Figure (x\_range=(1.6, 9.6), y\_range=(0.2, 7.0), aspect=(8.0, 6.8))
- wx: a VariableNumber (initial\_value=3.0)
- wy: a VariableNumber (initial\_value=3.5)

#### Beats

##### [00:00](https://academa.ai/lectures/pagerank-the-random-surfer?t=0)

Narration: Nineteen ninety eight. The web has millions of pages on it, and somebody has to put them in order. Counting the words on a page is easy to fake. What is much harder to fake is what everybody else links to. So treat a hyperlink as a vote.

Board: Empty.

Actions:
- [00:00](https://academa.ai/lectures/pagerank-the-random-surfer?t=0): card is shown on the screen, written out.
- [00:1.5](https://academa.ai/lectures/pagerank-the-random-surfer?t=1.5): card: enter:write-left-to-right.
- [00:14.989](https://academa.ai/lectures/pagerank-the-random-surfer?t=14.9885): card is hidden from the screen — left the board.

##### [00:16.189](https://academa.ai/lectures/pagerank-the-random-surfer?t=16.1885)

Narration: Here is a web with six pages on it. Call them A through F, and every arrow is one hyperlink, pointing from the page that casts the vote to the page that receives it.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [00:16.189](https://academa.ai/lectures/pagerank-the-random-surfer?t=16.1885): head\_web is shown on the screen, written out.
- [00:16.189](https://academa.ai/lectures/pagerank-the-random-surfer?t=16.1885): web is shown on the screen, written out.
- [00:17.361](https://academa.ai/lectures/pagerank-the-random-surfer?t=17.361000000000004): node\_a is shown on the screen, written out.
- [00:17.481](https://academa.ai/lectures/pagerank-the-random-surfer?t=17.481000000000005): node\_b is shown on the screen, written out.
- [00:17.601](https://academa.ai/lectures/pagerank-the-random-surfer?t=17.601000000000003): node\_c is shown on the screen, written out.
- [00:17.721](https://academa.ai/lectures/pagerank-the-random-surfer?t=17.721000000000004): node\_d is shown on the screen, written out.
- [00:17.841](https://academa.ai/lectures/pagerank-the-random-surfer?t=17.841000000000005): node\_e is shown on the screen, written out.
- [00:17.961](https://academa.ai/lectures/pagerank-the-random-surfer?t=17.961000000000006): node\_f is shown on the screen, written out.
- [00:21.216](https://academa.ai/lectures/pagerank-the-random-surfer?t=21.216): edge\_ab is shown on the screen, drawn.
- [00:21.326](https://academa.ai/lectures/pagerank-the-random-surfer?t=21.326): edge\_ac is shown on the screen, drawn.
- [00:21.436](https://academa.ai/lectures/pagerank-the-random-surfer?t=21.436): edge\_bc is shown on the screen, drawn.
- [00:21.546](https://academa.ai/lectures/pagerank-the-random-surfer?t=21.546): edge\_bd is shown on the screen, drawn.
- [00:21.656](https://academa.ai/lectures/pagerank-the-random-surfer?t=21.656000000000002): edge\_ca is shown on the screen, drawn.
- [00:21.766](https://academa.ai/lectures/pagerank-the-random-surfer?t=21.766000000000002): edge\_da is shown on the screen, drawn.
- [00:21.876](https://academa.ai/lectures/pagerank-the-random-surfer?t=21.876): edge\_de is shown on the screen, drawn.
- [00:21.986](https://academa.ai/lectures/pagerank-the-random-surfer?t=21.986): edge\_ea is shown on the screen, drawn.
- [00:22.096](https://academa.ai/lectures/pagerank-the-random-surfer?t=22.096): edge\_ef is shown on the screen, drawn.
- [00:22.206](https://academa.ai/lectures/pagerank-the-random-surfer?t=22.206): edge\_fa is shown on the screen, drawn.
- [00:24.408](https://academa.ai/lectures/pagerank-the-random-surfer?t=24.408): web moves to a new place on the board.
- [00:24.408](https://academa.ai/lectures/pagerank-the-random-surfer?t=24.408): idea is shown on the screen, written out.

##### [00:27.156](https://academa.ai/lectures/pagerank-the-random-surfer?t=27.156)

Narration: A links to B and to C. B links to C and to D. C links back to A. D links to A and to E. E links to A and to F. And F links only to A.

Board: idea — a Panel that says "A hyperlink from one page to another is a vote. The whole question is what a single vote is worth."; web — a Figure (x\_range=(1.6, 9.6), y\_range=(0.2, 7.0), aspect=(8.0, 6.8)); head\_web — a Heading that says "Six Pages and the Links Between Them"; node\_a — a Point \[blue\] labelled "A" drawn in web (location=(3.0, 3.5), marker\_radius=0.15); node\_b — a Point \[blue\] labelled "B" drawn in web (location=(4.3, 5.75), marker\_radius=0.15); node\_c — a Point \[blue\] labelled "C" drawn in web (location=(4.3, 1.25), marker\_radius=0.15); node\_d — a Point \[blue\] labelled "D" drawn in web (location=(6.9, 5.75), marker\_radius=0.15); node\_e — a Point \[blue\] labelled "E" drawn in web (location=(8.2, 3.5), marker\_radius=0.15); node\_f — a Point \[blue\] labelled "F" drawn in web (location=(6.9, 1.25), marker\_radius=0.15); edge\_ab — a Vector \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 5.75), trim\_tip=True); edge\_ac — a CurvedArrow \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 1.25), bend=0.35); edge\_bc — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(4.3, 1.25), trim\_tip=True); edge\_bd — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(6.9, 5.75), trim\_tip=True); edge\_ca — a CurvedArrow \[gray\] drawn in web (start=(4.3, 1.25), end=(3.0, 3.5), bend=0.35); edge\_da — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(3.0, 3.5), trim\_tip=True); edge\_de — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(8.2, 3.5), trim\_tip=True); edge\_ea — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(3.0, 3.5), trim\_tip=True); edge\_ef — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(6.9, 1.25), trim\_tip=True); edge\_fa — a Vector \[gray\] drawn in web (start=(6.9, 1.25), end=(3.0, 3.5), trim\_tip=True)

Actions:
- [00:28.062](https://academa.ai/lectures/pagerank-the-random-surfer?t=28.061999999999998): edge\_ab is emphasized.
- [00:28.77](https://academa.ai/lectures/pagerank-the-random-surfer?t=28.769999999999996): edge\_ab is no longer emphasized.
- [00:28.77](https://academa.ai/lectures/pagerank-the-random-surfer?t=28.769999999999996): edge\_ac is emphasized.
- [00:30.36](https://academa.ai/lectures/pagerank-the-random-surfer?t=30.36): edge\_ac is no longer emphasized.
- [00:30.36](https://academa.ai/lectures/pagerank-the-random-surfer?t=30.36): edge\_bc is emphasized.
- [00:30.976](https://academa.ai/lectures/pagerank-the-random-surfer?t=30.976): edge\_bc is no longer emphasized.
- [00:30.976](https://academa.ai/lectures/pagerank-the-random-surfer?t=30.976): edge\_bd is emphasized.
- [00:32.52](https://academa.ai/lectures/pagerank-the-random-surfer?t=32.519999999999996): edge\_bd is no longer emphasized.
- [00:32.52](https://academa.ai/lectures/pagerank-the-random-surfer?t=32.519999999999996): edge\_ca is emphasized.
- [00:34.064](https://academa.ai/lectures/pagerank-the-random-surfer?t=34.064): edge\_ca is no longer emphasized.
- [00:34.064](https://academa.ai/lectures/pagerank-the-random-surfer?t=34.064): edge\_da is emphasized.
- [00:34.912](https://academa.ai/lectures/pagerank-the-random-surfer?t=34.912): edge\_da is no longer emphasized.
- [00:34.912](https://academa.ai/lectures/pagerank-the-random-surfer?t=34.912): edge\_de is emphasized.
- [00:36.479](https://academa.ai/lectures/pagerank-the-random-surfer?t=36.479): edge\_de is no longer emphasized.
- [00:36.479](https://academa.ai/lectures/pagerank-the-random-surfer?t=36.479): edge\_ea is emphasized.
- [00:37.187](https://academa.ai/lectures/pagerank-the-random-surfer?t=37.187): edge\_ea is no longer emphasized.
- [00:37.187](https://academa.ai/lectures/pagerank-the-random-surfer?t=37.187): edge\_ef is emphasized.
- [00:38.743](https://academa.ai/lectures/pagerank-the-random-surfer?t=38.742999999999995): edge\_ef is no longer emphasized.
- [00:38.743](https://academa.ai/lectures/pagerank-the-random-surfer?t=38.742999999999995): edge\_fa is emphasized.
- [00:39.887](https://academa.ai/lectures/pagerank-the-random-surfer?t=39.887): edge\_fa is no longer emphasized.

##### [00:40.487](https://academa.ai/lectures/pagerank-the-random-surfer?t=40.486999999999995)

Narration: The crude way to use that is simply to count. Four arrows point at A. Two point at C. And B, D, E and F have one each. So A wins, and four pages are tied for last, which is not much of a ranking.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [00:43.523](https://academa.ai/lectures/pagerank-the-random-surfer?t=43.522999999999996): edge\_ca is emphasized.
- [00:43.523](https://academa.ai/lectures/pagerank-the-random-surfer?t=43.522999999999996): edge\_da is emphasized.
- [00:43.523](https://academa.ai/lectures/pagerank-the-random-surfer?t=43.522999999999996): edge\_ea is emphasized.
- [00:43.523](https://academa.ai/lectures/pagerank-the-random-surfer?t=43.522999999999996): edge\_fa is emphasized.
- [00:45.508](https://academa.ai/lectures/pagerank-the-random-surfer?t=45.507999999999996): edge\_ca is no longer emphasized.
- [00:45.508](https://academa.ai/lectures/pagerank-the-random-surfer?t=45.507999999999996): edge\_da is no longer emphasized.
- [00:45.508](https://academa.ai/lectures/pagerank-the-random-surfer?t=45.507999999999996): edge\_ea is no longer emphasized.
- [00:45.508](https://academa.ai/lectures/pagerank-the-random-surfer?t=45.507999999999996): edge\_fa is no longer emphasized.
- [00:45.508](https://academa.ai/lectures/pagerank-the-random-surfer?t=45.507999999999996): edge\_ac is emphasized.
- [00:45.508](https://academa.ai/lectures/pagerank-the-random-surfer?t=45.507999999999996): edge\_bc is emphasized.
- [00:48.968](https://academa.ai/lectures/pagerank-the-random-surfer?t=48.96799999999999): edge\_ac is no longer emphasized.
- [00:48.968](https://academa.ai/lectures/pagerank-the-random-surfer?t=48.96799999999999): edge\_bc is no longer emphasized.

##### [00:55.744](https://academa.ai/lectures/pagerank-the-random-surfer?t=55.74399999999999)

Narration: And it is trivially cheatable. Every vote counted the same, so a link from a page nobody has ever read is worth exactly as much as a link from the front page of a newspaper.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [01:1.085](https://academa.ai/lectures/pagerank-the-random-surfer?t=61.08499999999999): point is shown on the screen, grown.
- [01:3.085](https://academa.ai/lectures/pagerank-the-random-surfer?t=63.08499999999999): point is hidden from the screen.
- [01:5.113](https://academa.ai/lectures/pagerank-the-random-surfer?t=65.113): point\_2 is shown on the screen, grown.

##### [01:6.642](https://academa.ai/lectures/pagerank-the-random-surfer?t=66.642)

Narration: So here is the fix, and the lovely thing about it is that it stops talking about voting altogether. Imagine somebody sitting at page A who does nothing but click links at random. A has two links out, so flip a coin. It comes up C.

Board: idea — a Panel that says "A hyperlink from one page to another is a vote. The whole question is what a single vote is worth."; web — a Figure (x\_range=(1.6, 9.6), y\_range=(0.2, 7.0), aspect=(8.0, 6.8)); head\_web — a Heading that says "Six Pages and the Links Between Them"; node\_a — a Point \[blue\] labelled "A" drawn in web (location=(3.0, 3.5), marker\_radius=0.15); node\_b — a Point \[blue\] labelled "B" drawn in web (location=(4.3, 5.75), marker\_radius=0.15); node\_c — a Point \[blue\] labelled "C" drawn in web (location=(4.3, 1.25), marker\_radius=0.15); node\_d — a Point \[blue\] labelled "D" drawn in web (location=(6.9, 5.75), marker\_radius=0.15); node\_e — a Point \[blue\] labelled "E" drawn in web (location=(8.2, 3.5), marker\_radius=0.15); node\_f — a Point \[blue\] labelled "F" drawn in web (location=(6.9, 1.25), marker\_radius=0.15); edge\_ab — a Vector \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 5.75), trim\_tip=True); edge\_ac — a CurvedArrow \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 1.25), bend=0.35); edge\_bc — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(4.3, 1.25), trim\_tip=True); edge\_bd — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(6.9, 5.75), trim\_tip=True); edge\_ca — a CurvedArrow \[gray\] drawn in web (start=(4.3, 1.25), end=(3.0, 3.5), bend=0.35); edge\_da — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(3.0, 3.5), trim\_tip=True); edge\_de — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(8.2, 3.5), trim\_tip=True); edge\_ea — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(3.0, 3.5), trim\_tip=True); edge\_ef — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(6.9, 1.25), trim\_tip=True); edge\_fa — a Vector \[gray\] drawn in web (start=(6.9, 1.25), end=(3.0, 3.5), trim\_tip=True); point\_2 — a Point \[yellow\] drawn in web (location=(3.0, 3.5))

Actions:
- [01:7.113](https://academa.ai/lectures/pagerank-the-random-surfer?t=67.113): point\_2 is hidden from the screen.
- [01:13.028](https://academa.ai/lectures/pagerank-the-random-surfer?t=73.02799999999999): walker is shown on the screen, written out.
- [01:19.959](https://academa.ai/lectures/pagerank-the-random-surfer?t=79.95899999999999): walker is redrawn as the numbers it depends on change.
- [01:19.959](https://academa.ai/lectures/pagerank-the-random-surfer?t=79.95899999999999): wx ticks to 4.3.
- [01:19.959](https://academa.ai/lectures/pagerank-the-random-surfer?t=79.95899999999999): wy ticks to 1.25.

##### [01:21.081](https://academa.ai/lectures/pagerank-the-random-surfer?t=81.08149999999999)

Narration: C has only one link, so the surfer goes back to A. From A the coin says B this time. B has two links out and picks C again. C takes it back to A.

Board: idea — a Panel that says "A hyperlink from one page to another is a vote. The whole question is what a single vote is worth."; web — a Figure (x\_range=(1.6, 9.6), y\_range=(0.2, 7.0), aspect=(8.0, 6.8)); head\_web — a Heading that says "Six Pages and the Links Between Them"; node\_a — a Point \[blue\] labelled "A" drawn in web (location=(3.0, 3.5), marker\_radius=0.15); node\_b — a Point \[blue\] labelled "B" drawn in web (location=(4.3, 5.75), marker\_radius=0.15); node\_c — a Point \[blue\] labelled "C" drawn in web (location=(4.3, 1.25), marker\_radius=0.15); node\_d — a Point \[blue\] labelled "D" drawn in web (location=(6.9, 5.75), marker\_radius=0.15); node\_e — a Point \[blue\] labelled "E" drawn in web (location=(8.2, 3.5), marker\_radius=0.15); node\_f — a Point \[blue\] labelled "F" drawn in web (location=(6.9, 1.25), marker\_radius=0.15); edge\_ab — a Vector \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 5.75), trim\_tip=True); edge\_ac — a CurvedArrow \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 1.25), bend=0.35); edge\_bc — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(4.3, 1.25), trim\_tip=True); edge\_bd — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(6.9, 5.75), trim\_tip=True); edge\_ca — a CurvedArrow \[gray\] drawn in web (start=(4.3, 1.25), end=(3.0, 3.5), bend=0.35); edge\_da — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(3.0, 3.5), trim\_tip=True); edge\_de — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(8.2, 3.5), trim\_tip=True); edge\_ea — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(3.0, 3.5), trim\_tip=True); edge\_ef — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(6.9, 1.25), trim\_tip=True); edge\_fa — a Vector \[gray\] drawn in web (start=(6.9, 1.25), end=(3.0, 3.5), trim\_tip=True); walker — a Point \[yellow\] drawn in web (location=(\<VariableNumber wx = 3.0\>, \<VariableNumber wy = 3.5\>), marker\_radius=0.09)

Actions:
- [01:24.181](https://academa.ai/lectures/pagerank-the-random-surfer?t=84.18099999999998): walker is redrawn as the numbers it depends on change.
- [01:24.181](https://academa.ai/lectures/pagerank-the-random-surfer?t=84.18099999999998): wx ticks to 3.0.
- [01:24.181](https://academa.ai/lectures/pagerank-the-random-surfer?t=84.18099999999998): wy ticks to 3.5.
- [01:26.225](https://academa.ai/lectures/pagerank-the-random-surfer?t=86.22499999999998): walker is redrawn as the numbers it depends on change.
- [01:26.225](https://academa.ai/lectures/pagerank-the-random-surfer?t=86.22499999999998): wx ticks to 4.3.
- [01:26.225](https://academa.ai/lectures/pagerank-the-random-surfer?t=86.22499999999998): wy ticks to 5.75.
- [01:29.336](https://academa.ai/lectures/pagerank-the-random-surfer?t=89.33599999999998): walker is redrawn as the numbers it depends on change.
- [01:29.336](https://academa.ai/lectures/pagerank-the-random-surfer?t=89.33599999999998): wx ticks to 4.3.
- [01:29.336](https://academa.ai/lectures/pagerank-the-random-surfer?t=89.33599999999998): wy ticks to 1.25.
- [01:31.774](https://academa.ai/lectures/pagerank-the-random-surfer?t=91.77399999999999): walker is redrawn as the numbers it depends on change.
- [01:31.774](https://academa.ai/lectures/pagerank-the-random-surfer?t=91.77399999999999): wx ticks to 3.0.
- [01:31.774](https://academa.ai/lectures/pagerank-the-random-surfer?t=91.77399999999999): wy ticks to 3.5.

##### [01:33.14](https://academa.ai/lectures/pagerank-the-random-surfer?t=93.14049999999999)

Narration: Nobody is choosing anything clever there. It is all coin flips. And the surfer never arrives anywhere, because it never stops, so the question to ask is not where it ends up. It is what fraction of its time it spends on each page.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [01:47.723](https://academa.ai/lectures/pagerank-the-random-surfer?t=107.72299999999998): walker is hidden from the screen.
- [01:47.723](https://academa.ai/lectures/pagerank-the-random-surfer?t=107.72299999999998): head\_web is hidden from the screen — left the board.
- [01:47.723](https://academa.ai/lectures/pagerank-the-random-surfer?t=107.72299999999998): idea is hidden from the screen — left the board.

##### [01:48.323](https://academa.ai/lectures/pagerank-the-random-surfer?t=108.323)

Narration: Before the walk starts we know nothing at all, so give every page an equal share of the credit: one sixth each, about zero point one six seven.

Board: web — a Figure (x\_range=(1.6, 9.6), y\_range=(0.2, 7.0), aspect=(8.0, 6.8)); node\_a — a Point \[blue\] labelled "A" drawn in web (location=(3.0, 3.5), marker\_radius=0.15); node\_b — a Point \[blue\] labelled "B" drawn in web (location=(4.3, 5.75), marker\_radius=0.15); node\_c — a Point \[blue\] labelled "C" drawn in web (location=(4.3, 1.25), marker\_radius=0.15); node\_d — a Point \[blue\] labelled "D" drawn in web (location=(6.9, 5.75), marker\_radius=0.15); node\_e — a Point \[blue\] labelled "E" drawn in web (location=(8.2, 3.5), marker\_radius=0.15); node\_f — a Point \[blue\] labelled "F" drawn in web (location=(6.9, 1.25), marker\_radius=0.15); edge\_ab — a Vector \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 5.75), trim\_tip=True); edge\_ac — a CurvedArrow \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 1.25), bend=0.35); edge\_bc — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(4.3, 1.25), trim\_tip=True); edge\_bd — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(6.9, 5.75), trim\_tip=True); edge\_ca — a CurvedArrow \[gray\] drawn in web (start=(4.3, 1.25), end=(3.0, 3.5), bend=0.35); edge\_da — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(3.0, 3.5), trim\_tip=True); edge\_de — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(8.2, 3.5), trim\_tip=True); edge\_ea — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(3.0, 3.5), trim\_tip=True); edge\_ef — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(6.9, 1.25), trim\_tip=True); edge\_fa — a Vector \[gray\] drawn in web (start=(6.9, 1.25), end=(3.0, 3.5), trim\_tip=True)

Actions:
- [01:48.323](https://academa.ai/lectures/pagerank-the-random-surfer?t=108.323): head\_walk is shown on the screen, written out.
- [01:48.323](https://academa.ai/lectures/pagerank-the-random-surfer?t=108.323): chart is shown on the screen, written out.
- [01:49.089](https://academa.ai/lectures/pagerank-the-random-surfer?t=109.08899999999998): baseline is shown on the screen, written out.
- [01:49.089](https://academa.ai/lectures/pagerank-the-random-surfer?t=109.08899999999998): tag\_a is shown on the screen, written out.
- [01:49.169](https://academa.ai/lectures/pagerank-the-random-surfer?t=109.16899999999998): tag\_b is shown on the screen, written out.
- [01:49.249](https://academa.ai/lectures/pagerank-the-random-surfer?t=109.24899999999998): tag\_c is shown on the screen, written out.
- [01:49.329](https://academa.ai/lectures/pagerank-the-random-surfer?t=109.32899999999998): tag\_d is shown on the screen, written out.
- [01:49.409](https://academa.ai/lectures/pagerank-the-random-surfer?t=109.40899999999998): tag\_e is shown on the screen, written out.
- [01:49.489](https://academa.ai/lectures/pagerank-the-random-surfer?t=109.48899999999999): tag\_f is shown on the screen, written out.
- [01:52.665](https://academa.ai/lectures/pagerank-the-random-surfer?t=112.66499999999998): bar\_a is shown on the screen, written out.
- [01:52.785](https://academa.ai/lectures/pagerank-the-random-surfer?t=112.78499999999998): bar\_b is shown on the screen, written out.
- [01:52.905](https://academa.ai/lectures/pagerank-the-random-surfer?t=112.90499999999997): bar\_c is shown on the screen, written out.
- [01:53.025](https://academa.ai/lectures/pagerank-the-random-surfer?t=113.02499999999998): bar\_d is shown on the screen, written out.
- [01:53.145](https://academa.ai/lectures/pagerank-the-random-surfer?t=113.14499999999998): bar\_e is shown on the screen, written out.
- [01:53.265](https://academa.ai/lectures/pagerank-the-random-surfer?t=113.26499999999997): bar\_f is shown on the screen, written out.

##### [01:58.246](https://academa.ai/lectures/pagerank-the-random-surfer?t=118.246)

Narration: Now let the surfer run for a hundred steps and count where it landed. A took about forty one percent of the visits, C about twenty five, B about seventeen, and D, E and F share what little is left.

Board: web — a Figure (x\_range=(1.6, 9.6), y\_range=(0.2, 7.0), aspect=(8.0, 6.8)); node\_a — a Point \[blue\] labelled "A" drawn in web (location=(3.0, 3.5), marker\_radius=0.15); node\_b — a Point \[blue\] labelled "B" drawn in web (location=(4.3, 5.75), marker\_radius=0.15); node\_c — a Point \[blue\] labelled "C" drawn in web (location=(4.3, 1.25), marker\_radius=0.15); node\_d — a Point \[blue\] labelled "D" drawn in web (location=(6.9, 5.75), marker\_radius=0.15); node\_e — a Point \[blue\] labelled "E" drawn in web (location=(8.2, 3.5), marker\_radius=0.15); node\_f — a Point \[blue\] labelled "F" drawn in web (location=(6.9, 1.25), marker\_radius=0.15); edge\_ab — a Vector \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 5.75), trim\_tip=True); edge\_ac — a CurvedArrow \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 1.25), bend=0.35); edge\_bc — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(4.3, 1.25), trim\_tip=True); edge\_bd — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(6.9, 5.75), trim\_tip=True); edge\_ca — a CurvedArrow \[gray\] drawn in web (start=(4.3, 1.25), end=(3.0, 3.5), bend=0.35); edge\_da — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(3.0, 3.5), trim\_tip=True); edge\_de — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(8.2, 3.5), trim\_tip=True); edge\_ea — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(3.0, 3.5), trim\_tip=True); edge\_ef — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(6.9, 1.25), trim\_tip=True); edge\_fa — a Vector \[gray\] drawn in web (start=(6.9, 1.25), end=(3.0, 3.5), trim\_tip=True); chart — a Figure (x\_range=(0.0, 6.6), y\_range=(-0.16, 0.56), aspect=(6.6, 3.6)); head\_walk — a Heading that says "Where Does the Surfer Spend Its Time?"; baseline — a Line \[gray\] drawn in chart (start=(0.15, 0.0), end=(6.45, 0.0)); tag\_a — a Math \[text\] that says "$A$" drawn in chart; tag\_b — a Math \[text\] that says "$B$" drawn in chart; tag\_c — a Math \[text\] that says "$C$" drawn in chart; tag\_d — a Math \[text\] that says "$D$" drawn in chart; tag\_e — a Math \[text\] that says "$E$" drawn in chart; tag\_f — a Math \[text\] that says "$F$" drawn in chart; bar\_a — a Vector \[green\] labelled "0.167" drawn in chart (start=(0.7, 0.0), end=(0.7, \<VariableNumber p\_a = 0.372\>)); bar\_b — a Vector \[green\] labelled "0.167" drawn in chart (start=(1.7, 0.0), end=(1.7, \<VariableNumber p\_b = 0.186\>)); bar\_c — a Vector \[green\] labelled "0.167" drawn in chart (start=(2.7, 0.0), end=(2.7, \<VariableNumber p\_c = 0.279\>)); bar\_d — a Vector \[green\] labelled "0.167" drawn in chart (start=(3.7, 0.0), end=(3.7, \<VariableNumber p\_d = 0.093\>)); bar\_e — a Vector \[green\] labelled "0.167" drawn in chart (start=(4.7, 0.0), end=(4.7, \<VariableNumber p\_e = 0.047\>)); bar\_f — a Vector \[green\] labelled "0.167" drawn in chart (start=(5.7, 0.0), end=(5.7, \<VariableNumber p\_f = 0.023\>))

Actions:
- [02:3.366](https://academa.ai/lectures/pagerank-the-random-surfer?t=123.36599999999999): bar\_a is redrawn as the numbers it depends on change.
- [02:3.366](https://academa.ai/lectures/pagerank-the-random-surfer?t=123.36599999999999): p\_a ticks to 0.41.
- [02:5.572](https://academa.ai/lectures/pagerank-the-random-surfer?t=125.57199999999999): bar\_c is redrawn as the numbers it depends on change.
- [02:5.572](https://academa.ai/lectures/pagerank-the-random-surfer?t=125.57199999999999): p\_c ticks to 0.25.
- [02:7.22](https://academa.ai/lectures/pagerank-the-random-surfer?t=127.22): bar\_b is redrawn as the numbers it depends on change.
- [02:7.22](https://academa.ai/lectures/pagerank-the-random-surfer?t=127.22): p\_b ticks to 0.17.
- [02:9.391](https://academa.ai/lectures/pagerank-the-random-surfer?t=129.391): bar\_d is redrawn as the numbers it depends on change.
- [02:9.391](https://academa.ai/lectures/pagerank-the-random-surfer?t=129.391): bar\_e is redrawn as the numbers it depends on change.
- [02:9.391](https://academa.ai/lectures/pagerank-the-random-surfer?t=129.391): bar\_f is redrawn as the numbers it depends on change.
- [02:9.391](https://academa.ai/lectures/pagerank-the-random-surfer?t=129.391): p\_d ticks to 0.09.
- [02:9.391](https://academa.ai/lectures/pagerank-the-random-surfer?t=129.391): p\_e ticks to 0.05.
- [02:9.391](https://academa.ai/lectures/pagerank-the-random-surfer?t=129.391): p\_f ticks to 0.03.

##### [02:11.709](https://academa.ai/lectures/pagerank-the-random-surfer?t=131.7095)

Narration: Ten thousand steps, and the numbers steady. A million, and they stop moving altogether. This is what the walk settles on.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [02:15.564](https://academa.ai/lectures/pagerank-the-random-surfer?t=135.564): bar\_a is redrawn as the numbers it depends on change.
- [02:15.564](https://academa.ai/lectures/pagerank-the-random-surfer?t=135.564): bar\_b is redrawn as the numbers it depends on change.
- [02:15.564](https://academa.ai/lectures/pagerank-the-random-surfer?t=135.564): bar\_c is redrawn as the numbers it depends on change.
- [02:15.564](https://academa.ai/lectures/pagerank-the-random-surfer?t=135.564): bar\_d is redrawn as the numbers it depends on change.
- [02:15.564](https://academa.ai/lectures/pagerank-the-random-surfer?t=135.564): bar\_e is redrawn as the numbers it depends on change.
- [02:15.564](https://academa.ai/lectures/pagerank-the-random-surfer?t=135.564): bar\_f is redrawn as the numbers it depends on change.
- [02:15.564](https://academa.ai/lectures/pagerank-the-random-surfer?t=135.564): p\_a ticks to 0.372.
- [02:15.564](https://academa.ai/lectures/pagerank-the-random-surfer?t=135.564): p\_b ticks to 0.186.
- [02:15.564](https://academa.ai/lectures/pagerank-the-random-surfer?t=135.564): p\_c ticks to 0.279.
- [02:15.564](https://academa.ai/lectures/pagerank-the-random-surfer?t=135.564): p\_d ticks to 0.093.
- [02:15.564](https://academa.ai/lectures/pagerank-the-random-surfer?t=135.564): p\_e ticks to 0.047.
- [02:15.564](https://academa.ai/lectures/pagerank-the-random-surfer?t=135.564): p\_f ticks to 0.023.

##### [02:21.493](https://academa.ai/lectures/pagerank-the-random-surfer?t=141.493)

Narration: A holds about thirty seven percent of the surfer's time, C twenty eight, B nineteen, and then it falls away sharply: nine, five and two percent for D, E and F. Those six numbers are the PageRank of this little web.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [02:22.573](https://academa.ai/lectures/pagerank-the-random-surfer?t=142.57299999999998): bar\_a is indicated — a transient flash.
- [02:24.987](https://academa.ai/lectures/pagerank-the-random-surfer?t=144.98699999999997): bar\_c is indicated — a transient flash.
- [02:25.974](https://academa.ai/lectures/pagerank-the-random-surfer?t=145.97399999999996): bar\_b is indicated — a transient flash.
- [02:28.842](https://academa.ai/lectures/pagerank-the-random-surfer?t=148.84199999999996): bar\_d is indicated — a transient flash.
- [02:29.399](https://academa.ai/lectures/pagerank-the-random-surfer?t=149.39899999999997): bar\_e is indicated — a transient flash.
- [02:29.956](https://academa.ai/lectures/pagerank-the-random-surfer?t=149.95599999999996): bar\_f is indicated — a transient flash.

##### [02:36.5](https://academa.ai/lectures/pagerank-the-random-surfer?t=156.5005)

Narration: And look at what those numbers are not. They are not the link count. B and D have exactly one arrow pointing at each of them, and yet B ends up worth twice as much as D.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [02:42.062](https://academa.ai/lectures/pagerank-the-random-surfer?t=162.06199999999995): point\_3 is shown on the screen, grown.
- [02:42.062](https://academa.ai/lectures/pagerank-the-random-surfer?t=162.06199999999995): point\_4 is shown on the screen, grown.
- [02:44.062](https://academa.ai/lectures/pagerank-the-random-surfer?t=164.06199999999995): point\_3 is hidden from the screen.
- [02:44.062](https://academa.ai/lectures/pagerank-the-random-surfer?t=164.06199999999995): point\_4 is hidden from the screen.
- [02:45.162](https://academa.ai/lectures/pagerank-the-random-surfer?t=165.16199999999995): bar\_b is indicated — a transient flash.
- [02:45.162](https://academa.ai/lectures/pagerank-the-random-surfer?t=165.16199999999995): bar\_d is indicated — a transient flash.

##### [02:47.399](https://academa.ai/lectures/pagerank-the-random-surfer?t=167.399)

Narration: Look at where each of those single votes comes from. The one pointing at B comes from A, the most visited page on this web, and A splits its rank between two links. So B gets half of A. The one pointing at D comes from B, split two ways again, so D gets half of B.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [02:51.683](https://academa.ai/lectures/pagerank-the-random-surfer?t=171.683): edge\_ab is emphasized.
- [03:1.133](https://academa.ai/lectures/pagerank-the-random-surfer?t=181.13299999999998): edge\_ab is no longer emphasized.
- [03:1.133](https://academa.ai/lectures/pagerank-the-random-surfer?t=181.13299999999998): edge\_bd is emphasized.
- [03:5.702](https://academa.ai/lectures/pagerank-the-random-surfer?t=185.702): edge\_bd is no longer emphasized.

##### [03:6.302](https://academa.ai/lectures/pagerank-the-random-surfer?t=186.302)

Narration: The same halving carries on down the chain. D hands half of what it has to E, and E hands half of that to F. That is why the last four numbers are each exactly half the one before them.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [03:9.268](https://academa.ai/lectures/pagerank-the-random-surfer?t=189.26799999999997): bar\_d is indicated — a transient flash.
- [03:10.87](https://academa.ai/lectures/pagerank-the-random-surfer?t=190.86999999999998): bar\_e is indicated — a transient flash.
- [03:12.995](https://academa.ai/lectures/pagerank-the-random-surfer?t=192.99499999999998): bar\_f is indicated — a transient flash.

##### [03:18.889](https://academa.ai/lectures/pagerank-the-random-surfer?t=198.88899999999998)

Narration: So a vote from a heavily visited page is worth more than a vote from a quiet one, and a page that links to everything gives less to each. That is the whole idea, and it came out of a coin flip. What we do not have yet is a way to compute it without walking for a million steps.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): chart is hidden from the screen — left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): baseline is hidden from the screen — chart left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): tag\_a is hidden from the screen — chart left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): tag\_b is hidden from the screen — chart left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): tag\_c is hidden from the screen — chart left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): tag\_d is hidden from the screen — chart left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): tag\_e is hidden from the screen — chart left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): tag\_f is hidden from the screen — chart left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): bar\_a is hidden from the screen — chart left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): bar\_b is hidden from the screen — chart left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): bar\_c is hidden from the screen — chart left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): bar\_d is hidden from the screen — chart left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): bar\_e is hidden from the screen — chart left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): bar\_f is hidden from the screen — chart left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): head\_walk is hidden from the screen — left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): web is hidden from the screen — left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): node\_a is hidden from the screen — web left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): node\_b is hidden from the screen — web left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): node\_c is hidden from the screen — web left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): node\_d is hidden from the screen — web left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): node\_e is hidden from the screen — web left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): node\_f is hidden from the screen — web left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): edge\_ab is hidden from the screen — web left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): edge\_ac is hidden from the screen — web left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): edge\_bc is hidden from the screen — web left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): edge\_bd is hidden from the screen — web left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): edge\_ca is hidden from the screen — web left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): edge\_da is hidden from the screen — web left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): edge\_de is hidden from the screen — web left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): edge\_ea is hidden from the screen — web left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): edge\_ef is hidden from the screen — web left the board.
- [03:35.904](https://academa.ai/lectures/pagerank-the-random-surfer?t=215.90387499999997): edge\_fa is hidden from the screen — web left the board.

### Scene 2: [The Same Walk as a Matrix](https://academa.ai/lectures/pagerank-the-random-surfer?t=216.94554166666663)

Span: 03:36.946–07:27.838 (216.94554166666663s–447.83802083333325s).

#### Objects

- H\_math: a Math \[text\] that says "$H = mat(0, 0, 1, 1/2, 1/2, 1;1/2, 0, 0, 0, 0, 0;1/2, 1/2, 0, 0, 0, 0;0, 1/2, 0, 0, 0, 0;0, 0, 0, 1/2, 0, 0;0, 0, 0, 0, 1/2, 0)$"
- bar\_a: a Vector \[green\] labelled "0.167" drawn in chart (start=(0.7, 0.0), end=(0.7, \<VariableNumber p\_a = 0.372\>))
- bar\_b: a Vector \[green\] labelled "0.167" drawn in chart (start=(1.7, 0.0), end=(1.7, \<VariableNumber p\_b = 0.186\>))
- bar\_c: a Vector \[green\] labelled "0.167" drawn in chart (start=(2.7, 0.0), end=(2.7, \<VariableNumber p\_c = 0.279\>))
- bar\_d: a Vector \[green\] labelled "0.167" drawn in chart (start=(3.7, 0.0), end=(3.7, \<VariableNumber p\_d = 0.093\>))
- bar\_e: a Vector \[green\] labelled "0.167" drawn in chart (start=(4.7, 0.0), end=(4.7, \<VariableNumber p\_e = 0.047\>))
- bar\_f: a Vector \[green\] labelled "0.167" drawn in chart (start=(5.7, 0.0), end=(5.7, \<VariableNumber p\_f = 0.023\>))
- baseline: a Line \[gray\] drawn in chart (start=(0.15, 0.0), end=(6.45, 0.0))
- chart: a Figure (x\_range=(0.0, 6.6), y\_range=(-0.16, 0.56), aspect=(6.6, 3.6))
- edge\_ab: a Vector \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 5.75), trim\_tip=True)
- edge\_ac: a CurvedArrow \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 1.25), bend=0.35)
- edge\_bc: a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(4.3, 1.25), trim\_tip=True)
- edge\_bd: a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(6.9, 5.75), trim\_tip=True)
- edge\_ca: a CurvedArrow \[gray\] drawn in web (start=(4.3, 1.25), end=(3.0, 3.5), bend=0.35)
- edge\_da: a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(3.0, 3.5), trim\_tip=True)
- edge\_de: a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(8.2, 3.5), trim\_tip=True)
- edge\_ea: a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(3.0, 3.5), trim\_tip=True)
- edge\_ef: a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(6.9, 1.25), trim\_tip=True)
- edge\_fa: a Vector \[gray\] drawn in web (start=(6.9, 1.25), end=(3.0, 3.5), trim\_tip=True)
- eigen\_eq: a Math \[text\] that says "$H x = x$"
- eq\_a: a Math \[text\] that says "$y\_A = x\_C + frac(1, 2) x\_D + frac(1, 2) x\_E + x\_F$"
- eq\_b: a Math \[text\] that says "$y\_B = frac(1, 2) x\_A$"
- eq\_c: a Math \[text\] that says "$y\_C = frac(1, 2) x\_A + frac(1, 2) x\_B$"
- head\_matrix: a Heading that says "Every Link, in One Matrix"
- head\_power: a Heading that says "Multiply, and Multiply Again"
- head\_step: a Heading that says "One Step of the Walk, as Arithmetic"
- node\_a: a Point \[blue\] labelled "A" drawn in web (location=(3.0, 3.5), marker\_radius=0.15)
- node\_b: a Point \[blue\] labelled "B" drawn in web (location=(4.3, 5.75), marker\_radius=0.15)
- node\_c: a Point \[blue\] labelled "C" drawn in web (location=(4.3, 1.25), marker\_radius=0.15)
- node\_d: a Point \[blue\] labelled "D" drawn in web (location=(6.9, 5.75), marker\_radius=0.15)
- node\_e: a Point \[blue\] labelled "E" drawn in web (location=(8.2, 3.5), marker\_radius=0.15)
- node\_f: a Point \[blue\] labelled "F" drawn in web (location=(6.9, 1.25), marker\_radius=0.15)
- p\_a: a VariableNumber (initial\_value=0.16666666666666666, format\_spec='.3f')
- p\_b: a VariableNumber (initial\_value=0.16666666666666666, format\_spec='.3f')
- p\_c: a VariableNumber (initial\_value=0.16666666666666666, format\_spec='.3f')
- p\_d: a VariableNumber (initial\_value=0.16666666666666666, format\_spec='.3f')
- p\_e: a VariableNumber (initial\_value=0.16666666666666666, format\_spec='.3f')
- p\_f: a VariableNumber (initial\_value=0.16666666666666666, format\_spec='.3f')
- step\_eq: a Math \[text\] that says "$x\_(k+1) = H x\_k$"
- tag\_a: a Math \[text\] that says "$A$" drawn in chart
- tag\_b: a Math \[text\] that says "$B$" drawn in chart
- tag\_c: a Math \[text\] that says "$C$" drawn in chart
- tag\_d: a Math \[text\] that says "$D$" drawn in chart
- tag\_e: a Math \[text\] that says "$E$" drawn in chart
- tag\_f: a Math \[text\] that says "$F$" drawn in chart
- web: a Figure (x\_range=(1.6, 9.6), y\_range=(0.2, 7.0), aspect=(8.0, 6.8))
- work: an Arithmetic \[text\] that says "$0.167 0.083 0.083 0.167 0.500$" (operator='+', operands=('0.167', '0.083', '0.083', '0.167'), result='0.500')

#### Beats

##### [03:36.946](https://academa.ai/lectures/pagerank-the-random-surfer?t=216.94554166666663)

Narration: The surfer's rule is short. Take whatever rank you have, divide it equally among your outgoing links, and hand it on. Let's write that down one page at a time, calling the new numbers y and the old ones x.

Board: Empty.

Actions:
- [03:36.946](https://academa.ai/lectures/pagerank-the-random-surfer?t=216.94554166666663): head\_step is shown on the screen, written out.
- [03:36.946](https://academa.ai/lectures/pagerank-the-random-surfer?t=216.94554166666663): web is shown on the screen, written out.
- [03:36.946](https://academa.ai/lectures/pagerank-the-random-surfer?t=216.94554166666663): node\_a is shown on the screen, written out.
- [03:37.046](https://academa.ai/lectures/pagerank-the-random-surfer?t=217.04554166666662): node\_b is shown on the screen, written out.
- [03:37.146](https://academa.ai/lectures/pagerank-the-random-surfer?t=217.14554166666662): node\_c is shown on the screen, written out.
- [03:37.246](https://academa.ai/lectures/pagerank-the-random-surfer?t=217.24554166666664): node\_d is shown on the screen, written out.
- [03:37.346](https://academa.ai/lectures/pagerank-the-random-surfer?t=217.34554166666663): node\_e is shown on the screen, written out.
- [03:37.446](https://academa.ai/lectures/pagerank-the-random-surfer?t=217.44554166666663): node\_f is shown on the screen, written out.
- [03:37.486](https://academa.ai/lectures/pagerank-the-random-surfer?t=217.48554166666662): edge\_ab is shown on the screen, drawn.
- [03:37.576](https://academa.ai/lectures/pagerank-the-random-surfer?t=217.57554166666662): edge\_ac is shown on the screen, drawn.
- [03:37.666](https://academa.ai/lectures/pagerank-the-random-surfer?t=217.66554166666663): edge\_bc is shown on the screen, drawn.
- [03:37.756](https://academa.ai/lectures/pagerank-the-random-surfer?t=217.75554166666663): edge\_bd is shown on the screen, drawn.
- [03:37.846](https://academa.ai/lectures/pagerank-the-random-surfer?t=217.84554166666663): edge\_ca is shown on the screen, drawn.
- [03:37.936](https://academa.ai/lectures/pagerank-the-random-surfer?t=217.93554166666664): edge\_da is shown on the screen, drawn.
- [03:38.026](https://academa.ai/lectures/pagerank-the-random-surfer?t=218.02554166666664): edge\_de is shown on the screen, drawn.
- [03:38.116](https://academa.ai/lectures/pagerank-the-random-surfer?t=218.11554166666662): edge\_ea is shown on the screen, drawn.
- [03:38.206](https://academa.ai/lectures/pagerank-the-random-surfer?t=218.20554166666662): edge\_ef is shown on the screen, drawn.
- [03:38.296](https://academa.ai/lectures/pagerank-the-random-surfer?t=218.29554166666662): edge\_fa is shown on the screen, drawn.

##### [03:50.131](https://academa.ai/lectures/pagerank-the-random-surfer?t=230.13054166666663)

Narration: Start with B, because B is the easy one. Exactly one page points at it, and that is A. A has two links out, so A hands over half of what it has. The new value of B is half the old value of A.

Board: web — a Figure (x\_range=(1.6, 9.6), y\_range=(0.2, 7.0), aspect=(8.0, 6.8)); head\_step — a Heading that says "One Step of the Walk, as Arithmetic"; node\_a — a Point \[blue\] labelled "A" drawn in web (location=(3.0, 3.5), marker\_radius=0.15); node\_b — a Point \[blue\] labelled "B" drawn in web (location=(4.3, 5.75), marker\_radius=0.15); node\_c — a Point \[blue\] labelled "C" drawn in web (location=(4.3, 1.25), marker\_radius=0.15); node\_d — a Point \[blue\] labelled "D" drawn in web (location=(6.9, 5.75), marker\_radius=0.15); node\_e — a Point \[blue\] labelled "E" drawn in web (location=(8.2, 3.5), marker\_radius=0.15); node\_f — a Point \[blue\] labelled "F" drawn in web (location=(6.9, 1.25), marker\_radius=0.15); edge\_ab — a Vector \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 5.75), trim\_tip=True); edge\_ac — a CurvedArrow \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 1.25), bend=0.35); edge\_bc — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(4.3, 1.25), trim\_tip=True); edge\_bd — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(6.9, 5.75), trim\_tip=True); edge\_ca — a CurvedArrow \[gray\] drawn in web (start=(4.3, 1.25), end=(3.0, 3.5), bend=0.35); edge\_da — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(3.0, 3.5), trim\_tip=True); edge\_de — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(8.2, 3.5), trim\_tip=True); edge\_ea — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(3.0, 3.5), trim\_tip=True); edge\_ef — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(6.9, 1.25), trim\_tip=True); edge\_fa — a Vector \[gray\] drawn in web (start=(6.9, 1.25), end=(3.0, 3.5), trim\_tip=True)

Actions:
- [03:56.169](https://academa.ai/lectures/pagerank-the-random-surfer?t=236.1685416666666): edge\_ab is emphasized.
- [03:59.628](https://academa.ai/lectures/pagerank-the-random-surfer?t=239.62754166666662): web moves to a new place on the board.
- [03:59.628](https://academa.ai/lectures/pagerank-the-random-surfer?t=239.62754166666662): eq\_b is shown on the screen, written out.
- [04:4.667](https://academa.ai/lectures/pagerank-the-random-surfer?t=244.66654166666663): edge\_ab is no longer emphasized.

##### [04:5.267](https://academa.ai/lectures/pagerank-the-random-surfer?t=245.26654166666663)

Narration: C is fed by two pages, A and B, and both of them have two links out, so both hand over half of theirs. The new C is half of A, plus half of B.

Board: eq\_b — a Math \[text\] that says "$y\_B = frac(1, 2) x\_A$"; web — a Figure (x\_range=(1.6, 9.6), y\_range=(0.2, 7.0), aspect=(8.0, 6.8)); head\_step — a Heading that says "One Step of the Walk, as Arithmetic"; node\_a — a Point \[blue\] labelled "A" drawn in web (location=(3.0, 3.5), marker\_radius=0.15); node\_b — a Point \[blue\] labelled "B" drawn in web (location=(4.3, 5.75), marker\_radius=0.15); node\_c — a Point \[blue\] labelled "C" drawn in web (location=(4.3, 1.25), marker\_radius=0.15); node\_d — a Point \[blue\] labelled "D" drawn in web (location=(6.9, 5.75), marker\_radius=0.15); node\_e — a Point \[blue\] labelled "E" drawn in web (location=(8.2, 3.5), marker\_radius=0.15); node\_f — a Point \[blue\] labelled "F" drawn in web (location=(6.9, 1.25), marker\_radius=0.15); edge\_ab — a Vector \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 5.75), trim\_tip=True); edge\_ac — a CurvedArrow \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 1.25), bend=0.35); edge\_bc — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(4.3, 1.25), trim\_tip=True); edge\_bd — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(6.9, 5.75), trim\_tip=True); edge\_ca — a CurvedArrow \[gray\] drawn in web (start=(4.3, 1.25), end=(3.0, 3.5), bend=0.35); edge\_da — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(3.0, 3.5), trim\_tip=True); edge\_de — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(8.2, 3.5), trim\_tip=True); edge\_ea — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(3.0, 3.5), trim\_tip=True); edge\_ef — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(6.9, 1.25), trim\_tip=True); edge\_fa — a Vector \[gray\] drawn in web (start=(6.9, 1.25), end=(3.0, 3.5), trim\_tip=True)

Actions:
- [04:5.987](https://academa.ai/lectures/pagerank-the-random-surfer?t=245.98654166666662): edge\_ac is emphasized.
- [04:5.987](https://academa.ai/lectures/pagerank-the-random-surfer?t=245.98654166666662): edge\_bc is emphasized.
- [04:13.092](https://academa.ai/lectures/pagerank-the-random-surfer?t=253.09154166666661): eq\_c is shown on the screen, written out.
- [04:13.092](https://academa.ai/lectures/pagerank-the-random-surfer?t=253.09154166666661): edge\_ac is no longer emphasized.
- [04:13.092](https://academa.ai/lectures/pagerank-the-random-surfer?t=253.09154166666661): edge\_bc is no longer emphasized.

##### [04:16.501](https://academa.ai/lectures/pagerank-the-random-surfer?t=256.50104166666665)

Narration: A is fed by four pages. C and F have only one link each, so they hand over everything they have. D and E have two links each, so they hand over half. The new A is C, plus half of D, plus half of E, plus F.

Board: eq\_b — a Math \[text\] that says "$y\_B = frac(1, 2) x\_A$"; eq\_c — a Math \[text\] that says "$y\_C = frac(1, 2) x\_A + frac(1, 2) x\_B$"; web — a Figure (x\_range=(1.6, 9.6), y\_range=(0.2, 7.0), aspect=(8.0, 6.8)); head\_step — a Heading that says "One Step of the Walk, as Arithmetic"; node\_a — a Point \[blue\] labelled "A" drawn in web (location=(3.0, 3.5), marker\_radius=0.15); node\_b — a Point \[blue\] labelled "B" drawn in web (location=(4.3, 5.75), marker\_radius=0.15); node\_c — a Point \[blue\] labelled "C" drawn in web (location=(4.3, 1.25), marker\_radius=0.15); node\_d — a Point \[blue\] labelled "D" drawn in web (location=(6.9, 5.75), marker\_radius=0.15); node\_e — a Point \[blue\] labelled "E" drawn in web (location=(8.2, 3.5), marker\_radius=0.15); node\_f — a Point \[blue\] labelled "F" drawn in web (location=(6.9, 1.25), marker\_radius=0.15); edge\_ab — a Vector \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 5.75), trim\_tip=True); edge\_ac — a CurvedArrow \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 1.25), bend=0.35); edge\_bc — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(4.3, 1.25), trim\_tip=True); edge\_bd — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(6.9, 5.75), trim\_tip=True); edge\_ca — a CurvedArrow \[gray\] drawn in web (start=(4.3, 1.25), end=(3.0, 3.5), bend=0.35); edge\_da — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(3.0, 3.5), trim\_tip=True); edge\_de — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(8.2, 3.5), trim\_tip=True); edge\_ea — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(3.0, 3.5), trim\_tip=True); edge\_ef — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(6.9, 1.25), trim\_tip=True); edge\_fa — a Vector \[gray\] drawn in web (start=(6.9, 1.25), end=(3.0, 3.5), trim\_tip=True)

Actions:
- [04:20.298](https://academa.ai/lectures/pagerank-the-random-surfer?t=260.29754166666663): edge\_ca is emphasized.
- [04:20.298](https://academa.ai/lectures/pagerank-the-random-surfer?t=260.29754166666663): edge\_fa is emphasized.
- [04:24.698](https://academa.ai/lectures/pagerank-the-random-surfer?t=264.6975416666666): edge\_ca is no longer emphasized.
- [04:24.698](https://academa.ai/lectures/pagerank-the-random-surfer?t=264.6975416666666): edge\_fa is no longer emphasized.
- [04:24.698](https://academa.ai/lectures/pagerank-the-random-surfer?t=264.6975416666666): edge\_da is emphasized.
- [04:24.698](https://academa.ai/lectures/pagerank-the-random-surfer?t=264.6975416666666): edge\_ea is emphasized.
- [04:27.589](https://academa.ai/lectures/pagerank-the-random-surfer?t=267.58854166666663): eq\_a is shown on the screen, written out.
- [04:27.589](https://academa.ai/lectures/pagerank-the-random-surfer?t=267.58854166666663): edge\_da is no longer emphasized.
- [04:27.589](https://academa.ai/lectures/pagerank-the-random-surfer?t=267.58854166666663): edge\_ea is no longer emphasized.

##### [04:32.519](https://academa.ai/lectures/pagerank-the-random-surfer?t=272.5190416666666)

Narration: There are six of these, one per page, and every one of them has the same shape: a weighted sum of the old numbers, with the weights read straight off the links. Which is precisely what a matrix is for.

Board: eq\_b — a Math \[text\] that says "$y\_B = frac(1, 2) x\_A$"; eq\_c — a Math \[text\] that says "$y\_C = frac(1, 2) x\_A + frac(1, 2) x\_B$"; eq\_a — a Math \[text\] that says "$y\_A = x\_C + frac(1, 2) x\_D + frac(1, 2) x\_E + x\_F$"; web — a Figure (x\_range=(1.6, 9.6), y\_range=(0.2, 7.0), aspect=(8.0, 6.8)); head\_step — a Heading that says "One Step of the Walk, as Arithmetic"; node\_a — a Point \[blue\] labelled "A" drawn in web (location=(3.0, 3.5), marker\_radius=0.15); node\_b — a Point \[blue\] labelled "B" drawn in web (location=(4.3, 5.75), marker\_radius=0.15); node\_c — a Point \[blue\] labelled "C" drawn in web (location=(4.3, 1.25), marker\_radius=0.15); node\_d — a Point \[blue\] labelled "D" drawn in web (location=(6.9, 5.75), marker\_radius=0.15); node\_e — a Point \[blue\] labelled "E" drawn in web (location=(8.2, 3.5), marker\_radius=0.15); node\_f — a Point \[blue\] labelled "F" drawn in web (location=(6.9, 1.25), marker\_radius=0.15); edge\_ab — a Vector \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 5.75), trim\_tip=True); edge\_ac — a CurvedArrow \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 1.25), bend=0.35); edge\_bc — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(4.3, 1.25), trim\_tip=True); edge\_bd — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(6.9, 5.75), trim\_tip=True); edge\_ca — a CurvedArrow \[gray\] drawn in web (start=(4.3, 1.25), end=(3.0, 3.5), bend=0.35); edge\_da — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(3.0, 3.5), trim\_tip=True); edge\_de — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(8.2, 3.5), trim\_tip=True); edge\_ea — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(3.0, 3.5), trim\_tip=True); edge\_ef — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(6.9, 1.25), trim\_tip=True); edge\_fa — a Vector \[gray\] drawn in web (start=(6.9, 1.25), end=(3.0, 3.5), trim\_tip=True)

Actions:
- [04:44.327](https://academa.ai/lectures/pagerank-the-random-surfer?t=284.3265416666666): eq\_a moves to a new place on the board.
- [04:44.327](https://academa.ai/lectures/pagerank-the-random-surfer?t=284.3265416666666): eq\_b is hidden from the screen — left the board.
- [04:44.327](https://academa.ai/lectures/pagerank-the-random-surfer?t=284.3265416666666): eq\_c is hidden from the screen — left the board.
- [04:44.327](https://academa.ai/lectures/pagerank-the-random-surfer?t=284.3265416666666): head\_step is hidden from the screen — left the board.

##### [04:45.527](https://academa.ai/lectures/pagerank-the-random-surfer?t=285.5265416666666)

Narration: Here is the whole web as one matrix. Six rows and six columns, one of each per page, in the order A, B, C, D, E, F.

Board: eq\_a — a Math \[text\] that says "$y\_A = x\_C + frac(1, 2) x\_D + frac(1, 2) x\_E + x\_F$"; web — a Figure (x\_range=(1.6, 9.6), y\_range=(0.2, 7.0), aspect=(8.0, 6.8)); node\_a — a Point \[blue\] labelled "A" drawn in web (location=(3.0, 3.5), marker\_radius=0.15); node\_b — a Point \[blue\] labelled "B" drawn in web (location=(4.3, 5.75), marker\_radius=0.15); node\_c — a Point \[blue\] labelled "C" drawn in web (location=(4.3, 1.25), marker\_radius=0.15); node\_d — a Point \[blue\] labelled "D" drawn in web (location=(6.9, 5.75), marker\_radius=0.15); node\_e — a Point \[blue\] labelled "E" drawn in web (location=(8.2, 3.5), marker\_radius=0.15); node\_f — a Point \[blue\] labelled "F" drawn in web (location=(6.9, 1.25), marker\_radius=0.15); edge\_ab — a Vector \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 5.75), trim\_tip=True); edge\_ac — a CurvedArrow \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 1.25), bend=0.35); edge\_bc — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(4.3, 1.25), trim\_tip=True); edge\_bd — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(6.9, 5.75), trim\_tip=True); edge\_ca — a CurvedArrow \[gray\] drawn in web (start=(4.3, 1.25), end=(3.0, 3.5), bend=0.35); edge\_da — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(3.0, 3.5), trim\_tip=True); edge\_de — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(8.2, 3.5), trim\_tip=True); edge\_ea — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(3.0, 3.5), trim\_tip=True); edge\_ef — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(6.9, 1.25), trim\_tip=True); edge\_fa — a Vector \[gray\] drawn in web (start=(6.9, 1.25), end=(3.0, 3.5), trim\_tip=True)

Actions:
- [04:45.527](https://academa.ai/lectures/pagerank-the-random-surfer?t=285.5265416666666): head\_matrix is shown on the screen, written out.
- [04:47.28](https://academa.ai/lectures/pagerank-the-random-surfer?t=287.2795416666666): H\_math is shown on the screen, written out.

##### [04:55.984](https://academa.ai/lectures/pagerank-the-random-surfer?t=295.9835416666666)

Narration: A column tells you what one page does with its rank. The column for A has two entries of one half, sitting in the B row and the C row, because A splits its vote between B and C.

Board: eq\_a — a Math \[text\] that says "$y\_A = x\_C + frac(1, 2) x\_D + frac(1, 2) x\_E + x\_F$"; web — a Figure (x\_range=(1.6, 9.6), y\_range=(0.2, 7.0), aspect=(8.0, 6.8)); node\_a — a Point \[blue\] labelled "A" drawn in web (location=(3.0, 3.5), marker\_radius=0.15); node\_b — a Point \[blue\] labelled "B" drawn in web (location=(4.3, 5.75), marker\_radius=0.15); node\_c — a Point \[blue\] labelled "C" drawn in web (location=(4.3, 1.25), marker\_radius=0.15); node\_d — a Point \[blue\] labelled "D" drawn in web (location=(6.9, 5.75), marker\_radius=0.15); node\_e — a Point \[blue\] labelled "E" drawn in web (location=(8.2, 3.5), marker\_radius=0.15); node\_f — a Point \[blue\] labelled "F" drawn in web (location=(6.9, 1.25), marker\_radius=0.15); edge\_ab — a Vector \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 5.75), trim\_tip=True); edge\_ac — a CurvedArrow \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 1.25), bend=0.35); edge\_bc — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(4.3, 1.25), trim\_tip=True); edge\_bd — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(6.9, 5.75), trim\_tip=True); edge\_ca — a CurvedArrow \[gray\] drawn in web (start=(4.3, 1.25), end=(3.0, 3.5), bend=0.35); edge\_da — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(3.0, 3.5), trim\_tip=True); edge\_de — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(8.2, 3.5), trim\_tip=True); edge\_ea — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(3.0, 3.5), trim\_tip=True); edge\_ef — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(6.9, 1.25), trim\_tip=True); edge\_fa — a Vector \[gray\] drawn in web (start=(6.9, 1.25), end=(3.0, 3.5), trim\_tip=True); H\_math — a Math \[text\] that says "$H = mat(0, 0, 1, 1/2, 1/2, 1;1/2, 0, 0, 0, 0, 0;1/2, 1/2, 0, 0, 0, 0;0, 1/2, 0, 0, 0, 0;0, 0, 0, 1/2, 0, 0;0, 0, 0, 0, 1/2, 0)$"; head\_matrix — a Heading that says "Every Link, in One Matrix"

Actions:
- [04:59.896](https://academa.ai/lectures/pagerank-the-random-surfer?t=299.89554166666665): H\_math (the "column=1" part) is emphasized.
- [05:7.152](https://academa.ai/lectures/pagerank-the-random-surfer?t=307.1520416666666): H\_math (the "column=1" part) is no longer emphasized.

##### [05:7.752](https://academa.ai/lectures/pagerank-the-random-surfer?t=307.7520416666666)

Narration: The column for C has a single one in it, up in the A row, because C has one link and gives everything to A. And every column adds up to exactly one, which is the bookkeeping that says rank is never created and never destroyed.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [05:9.042](https://academa.ai/lectures/pagerank-the-random-surfer?t=309.0415416666666): H\_math (the "column=3" part) is emphasized.
- [05:14.684](https://academa.ai/lectures/pagerank-the-random-surfer?t=314.6835416666666): H\_math (the "column=3" part) is no longer emphasized.
- [05:17.389](https://academa.ai/lectures/pagerank-the-random-surfer?t=317.3885416666666): H\_math is indicated — a transient flash.

##### [05:21.599](https://academa.ai/lectures/pagerank-the-random-surfer?t=321.5990416666666)

Narration: Read across instead of down and you get what a page receives. The A row has four non zero entries, and they are exactly the four terms we wrote a minute ago: C, half of D, half of E, and F.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [05:26.534](https://academa.ai/lectures/pagerank-the-random-surfer?t=326.5335416666666): H\_math (the "row=1" part) is emphasized.
- [05:30.098](https://academa.ai/lectures/pagerank-the-random-surfer?t=330.09754166666664): eq\_a is indicated — a transient flash.
- [05:34.405](https://academa.ai/lectures/pagerank-the-random-surfer?t=334.4050416666666): H\_math (the "row=1" part) is no longer emphasized.

##### [05:35.005](https://academa.ai/lectures/pagerank-the-random-surfer?t=335.0050416666666)

Narration: So one step of the walk is one matrix times one vector. Call the numbers at step k, x sub k. Then the next lot is H times x sub k. And then you do it again.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [05:37.908](https://academa.ai/lectures/pagerank-the-random-surfer?t=337.9075416666666): step\_eq is shown on the screen, written out.
- [05:46.813](https://academa.ai/lectures/pagerank-the-random-surfer?t=346.8125416666666): step\_eq moves to a new place on the board.
- [05:46.813](https://academa.ai/lectures/pagerank-the-random-surfer?t=346.8125416666666): H\_math is hidden from the screen — left the board.
- [05:46.813](https://academa.ai/lectures/pagerank-the-random-surfer?t=346.8125416666666): eq\_a is hidden from the screen — left the board.
- [05:46.813](https://academa.ai/lectures/pagerank-the-random-surfer?t=346.8125416666666): head\_matrix is hidden from the screen — left the board.
- [05:46.813](https://academa.ai/lectures/pagerank-the-random-surfer?t=346.8125416666666): web is hidden from the screen — left the board.
- [05:46.813](https://academa.ai/lectures/pagerank-the-random-surfer?t=346.8125416666666): node\_a is hidden from the screen — web left the board.
- [05:46.813](https://academa.ai/lectures/pagerank-the-random-surfer?t=346.8125416666666): node\_b is hidden from the screen — web left the board.
- [05:46.813](https://academa.ai/lectures/pagerank-the-random-surfer?t=346.8125416666666): node\_c is hidden from the screen — web left the board.
- [05:46.813](https://academa.ai/lectures/pagerank-the-random-surfer?t=346.8125416666666): node\_d is hidden from the screen — web left the board.
- [05:46.813](https://academa.ai/lectures/pagerank-the-random-surfer?t=346.8125416666666): node\_e is hidden from the screen — web left the board.
- [05:46.813](https://academa.ai/lectures/pagerank-the-random-surfer?t=346.8125416666666): node\_f is hidden from the screen — web left the board.
- [05:46.813](https://academa.ai/lectures/pagerank-the-random-surfer?t=346.8125416666666): edge\_ab is hidden from the screen — web left the board.
- [05:46.813](https://academa.ai/lectures/pagerank-the-random-surfer?t=346.8125416666666): edge\_ac is hidden from the screen — web left the board.
- [05:46.813](https://academa.ai/lectures/pagerank-the-random-surfer?t=346.8125416666666): edge\_bc is hidden from the screen — web left the board.
- [05:46.813](https://academa.ai/lectures/pagerank-the-random-surfer?t=346.8125416666666): edge\_bd is hidden from the screen — web left the board.
- [05:46.813](https://academa.ai/lectures/pagerank-the-random-surfer?t=346.8125416666666): edge\_ca is hidden from the screen — web left the board.
- [05:46.813](https://academa.ai/lectures/pagerank-the-random-surfer?t=346.8125416666666): edge\_da is hidden from the screen — web left the board.
- [05:46.813](https://academa.ai/lectures/pagerank-the-random-surfer?t=346.8125416666666): edge\_de is hidden from the screen — web left the board.
- [05:46.813](https://academa.ai/lectures/pagerank-the-random-surfer?t=346.8125416666666): edge\_ea is hidden from the screen — web left the board.
- [05:46.813](https://academa.ai/lectures/pagerank-the-random-surfer?t=346.8125416666666): edge\_ef is hidden from the screen — web left the board.
- [05:46.813](https://academa.ai/lectures/pagerank-the-random-surfer?t=346.8125416666666): edge\_fa is hidden from the screen — web left the board.

##### [05:48.013](https://academa.ai/lectures/pagerank-the-random-surfer?t=348.0125416666666)

Narration: Start from the vector that knows nothing at all: one sixth on every page.

Board: step\_eq — a Math \[text\] that says "$x\_(k+1) = H x\_k$"

Actions:
- [05:48.013](https://academa.ai/lectures/pagerank-the-random-surfer?t=348.0125416666666): head\_power is shown on the screen, written out.
- [05:48.013](https://academa.ai/lectures/pagerank-the-random-surfer?t=348.0125416666666): chart is shown on the screen, written out.
- [05:48.013](https://academa.ai/lectures/pagerank-the-random-surfer?t=348.0125416666666): baseline is shown on the screen, written out.
- [05:48.013](https://academa.ai/lectures/pagerank-the-random-surfer?t=348.0125416666666): tag\_a is shown on the screen, written out.
- [05:48.093](https://academa.ai/lectures/pagerank-the-random-surfer?t=348.09254166666665): tag\_b is shown on the screen, written out.
- [05:48.173](https://academa.ai/lectures/pagerank-the-random-surfer?t=348.1725416666666): tag\_c is shown on the screen, written out.
- [05:48.253](https://academa.ai/lectures/pagerank-the-random-surfer?t=348.2525416666666): tag\_d is shown on the screen, written out.
- [05:48.333](https://academa.ai/lectures/pagerank-the-random-surfer?t=348.3325416666666): tag\_e is shown on the screen, written out.
- [05:48.413](https://academa.ai/lectures/pagerank-the-random-surfer?t=348.4125416666666): tag\_f is shown on the screen, written out.
- [05:51.264](https://academa.ai/lectures/pagerank-the-random-surfer?t=351.2635416666666): bar\_a is shown on the screen, written out.
- [05:51.384](https://academa.ai/lectures/pagerank-the-random-surfer?t=351.3835416666666): bar\_b is shown on the screen, written out.
- [05:51.504](https://academa.ai/lectures/pagerank-the-random-surfer?t=351.5035416666666): bar\_c is shown on the screen, written out.
- [05:51.624](https://academa.ai/lectures/pagerank-the-random-surfer?t=351.6235416666666): bar\_d is shown on the screen, written out.
- [05:51.744](https://academa.ai/lectures/pagerank-the-random-surfer?t=351.7435416666666): bar\_e is shown on the screen, written out.
- [05:51.864](https://academa.ai/lectures/pagerank-the-random-surfer?t=351.8635416666666): bar\_f is shown on the screen, written out.

##### [05:53.709](https://academa.ai/lectures/pagerank-the-random-surfer?t=353.7090416666666)

Narration: Multiply once, and watch what A collects. All of C, which is zero point one six seven. Half of D, and then half of E, which is zero point zero eight three apiece. And all of F, another zero point one six seven.

Board: step\_eq — a Math \[text\] that says "$x\_(k+1) = H x\_k$"; chart — a Figure (x\_range=(0.0, 6.6), y\_range=(-0.16, 0.56), aspect=(6.6, 3.6)); head\_power — a Heading that says "Multiply, and Multiply Again"; baseline — a Line \[gray\] drawn in chart (start=(0.15, 0.0), end=(6.45, 0.0)); tag\_a — a Math \[text\] that says "$A$" drawn in chart; tag\_b — a Math \[text\] that says "$B$" drawn in chart; tag\_c — a Math \[text\] that says "$C$" drawn in chart; tag\_d — a Math \[text\] that says "$D$" drawn in chart; tag\_e — a Math \[text\] that says "$E$" drawn in chart; tag\_f — a Math \[text\] that says "$F$" drawn in chart; bar\_a — a Vector \[green\] labelled "0.167" drawn in chart (start=(0.7, 0.0), end=(0.7, \<VariableNumber p\_a = 0.372\>)); bar\_b — a Vector \[green\] labelled "0.167" drawn in chart (start=(1.7, 0.0), end=(1.7, \<VariableNumber p\_b = 0.186\>)); bar\_c — a Vector \[green\] labelled "0.167" drawn in chart (start=(2.7, 0.0), end=(2.7, \<VariableNumber p\_c = 0.279\>)); bar\_d — a Vector \[green\] labelled "0.167" drawn in chart (start=(3.7, 0.0), end=(3.7, \<VariableNumber p\_d = 0.093\>)); bar\_e — a Vector \[green\] labelled "0.167" drawn in chart (start=(4.7, 0.0), end=(4.7, \<VariableNumber p\_e = 0.047\>)); bar\_f — a Vector \[green\] labelled "0.167" drawn in chart (start=(5.7, 0.0), end=(5.7, \<VariableNumber p\_f = 0.023\>))

Actions:
- [05:57.576](https://academa.ai/lectures/pagerank-the-random-surfer?t=357.5755416666666): work is shown on the screen, written out.
- [06:0.815](https://academa.ai/lectures/pagerank-the-random-surfer?t=360.8145416666666): work is shown on the screen, written out.
- [06:1.79](https://academa.ai/lectures/pagerank-the-random-surfer?t=361.7895416666666): work is shown on the screen, written out.
- [06:5.482](https://academa.ai/lectures/pagerank-the-random-surfer?t=365.4815416666666): work is shown on the screen, written out.

##### [06:8.357](https://academa.ai/lectures/pagerank-the-random-surfer?t=368.3570416666666)

Narration: Rule a line under those four and add them up. A comes out at exactly one half. Which is a wildly lopsided first step: everything that pointed at A has dumped its whole share in at once.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [06:8.462](https://academa.ai/lectures/pagerank-the-random-surfer?t=368.46154166666656): work is shown on the screen, drawn.
- [06:9.262](https://academa.ai/lectures/pagerank-the-random-surfer?t=369.2615416666666): work is shown on the screen, drawn.
- [06:13.199](https://academa.ai/lectures/pagerank-the-random-surfer?t=373.1985416666666): work is shown on the screen, written out.
- [06:15.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=375.7525416666666): bar\_a is redrawn as the numbers it depends on change.
- [06:15.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=375.7525416666666): bar\_b is redrawn as the numbers it depends on change.
- [06:15.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=375.7525416666666): bar\_c is redrawn as the numbers it depends on change.
- [06:15.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=375.7525416666666): bar\_d is redrawn as the numbers it depends on change.
- [06:15.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=375.7525416666666): bar\_e is redrawn as the numbers it depends on change.
- [06:15.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=375.7525416666666): bar\_f is redrawn as the numbers it depends on change.
- [06:15.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=375.7525416666666): p\_a ticks to 0.5.
- [06:15.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=375.7525416666666): p\_b ticks to 0.083.
- [06:15.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=375.7525416666666): p\_c ticks to 0.167.
- [06:15.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=375.7525416666666): p\_d ticks to 0.083.
- [06:15.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=375.7525416666666): p\_e ticks to 0.083.
- [06:15.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=375.7525416666666): p\_f ticks to 0.083.

##### [06:21.159](https://academa.ai/lectures/pagerank-the-random-surfer?t=381.15854166666657)

Narration: Multiply again and it swings back the other way. A gives half of that pile to B and half to C, so those two jump up, and A itself drops to a third.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [06:22.97](https://academa.ai/lectures/pagerank-the-random-surfer?t=382.9695416666666): bar\_a is redrawn as the numbers it depends on change.
- [06:22.97](https://academa.ai/lectures/pagerank-the-random-surfer?t=382.9695416666666): bar\_b is redrawn as the numbers it depends on change.
- [06:22.97](https://academa.ai/lectures/pagerank-the-random-surfer?t=382.9695416666666): bar\_c is redrawn as the numbers it depends on change.
- [06:22.97](https://academa.ai/lectures/pagerank-the-random-surfer?t=382.9695416666666): bar\_d is redrawn as the numbers it depends on change.
- [06:22.97](https://academa.ai/lectures/pagerank-the-random-surfer?t=382.9695416666666): bar\_e is redrawn as the numbers it depends on change.
- [06:22.97](https://academa.ai/lectures/pagerank-the-random-surfer?t=382.9695416666666): bar\_f is redrawn as the numbers it depends on change.
- [06:22.97](https://academa.ai/lectures/pagerank-the-random-surfer?t=382.9695416666666): p\_a ticks to 0.333.
- [06:22.97](https://academa.ai/lectures/pagerank-the-random-surfer?t=382.9695416666666): p\_b ticks to 0.25.
- [06:22.97](https://academa.ai/lectures/pagerank-the-random-surfer?t=382.9695416666666): p\_c ticks to 0.292.
- [06:22.97](https://academa.ai/lectures/pagerank-the-random-surfer?t=382.9695416666666): p\_d ticks to 0.042.
- [06:22.97](https://academa.ai/lectures/pagerank-the-random-surfer?t=382.9695416666666): p\_e ticks to 0.042.
- [06:22.97](https://academa.ai/lectures/pagerank-the-random-surfer?t=382.9695416666666): p\_f ticks to 0.042.

##### [06:32.022](https://academa.ai/lectures/pagerank-the-random-surfer?t=392.0220416666666)

Narration: Do it a third time, and the numbers swing again. And a fourth, and again. They wobble, and every time round the wobble is a little smaller than it was.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [06:32.614](https://academa.ai/lectures/pagerank-the-random-surfer?t=392.6135416666666): bar\_a is redrawn as the numbers it depends on change.
- [06:32.614](https://academa.ai/lectures/pagerank-the-random-surfer?t=392.6135416666666): bar\_b is redrawn as the numbers it depends on change.
- [06:32.614](https://academa.ai/lectures/pagerank-the-random-surfer?t=392.6135416666666): bar\_d is redrawn as the numbers it depends on change.
- [06:32.614](https://academa.ai/lectures/pagerank-the-random-surfer?t=392.6135416666666): bar\_e is redrawn as the numbers it depends on change.
- [06:32.614](https://academa.ai/lectures/pagerank-the-random-surfer?t=392.6135416666666): bar\_f is redrawn as the numbers it depends on change.
- [06:32.614](https://academa.ai/lectures/pagerank-the-random-surfer?t=392.6135416666666): p\_a ticks to 0.375.
- [06:32.614](https://academa.ai/lectures/pagerank-the-random-surfer?t=392.6135416666666): p\_b ticks to 0.167.
- [06:32.614](https://academa.ai/lectures/pagerank-the-random-surfer?t=392.6135416666666): p\_c ticks to 0.292.
- [06:32.614](https://academa.ai/lectures/pagerank-the-random-surfer?t=392.6135416666666): p\_d ticks to 0.125.
- [06:32.614](https://academa.ai/lectures/pagerank-the-random-surfer?t=392.6135416666666): p\_e ticks to 0.021.
- [06:32.614](https://academa.ai/lectures/pagerank-the-random-surfer?t=392.6135416666666): p\_f ticks to 0.021.
- [06:35.656](https://academa.ai/lectures/pagerank-the-random-surfer?t=395.65554166666664): bar\_a is redrawn as the numbers it depends on change.
- [06:35.656](https://academa.ai/lectures/pagerank-the-random-surfer?t=395.65554166666664): bar\_b is redrawn as the numbers it depends on change.
- [06:35.656](https://academa.ai/lectures/pagerank-the-random-surfer?t=395.65554166666664): bar\_c is redrawn as the numbers it depends on change.
- [06:35.656](https://academa.ai/lectures/pagerank-the-random-surfer?t=395.65554166666664): bar\_d is redrawn as the numbers it depends on change.
- [06:35.656](https://academa.ai/lectures/pagerank-the-random-surfer?t=395.65554166666664): bar\_e is redrawn as the numbers it depends on change.
- [06:35.656](https://academa.ai/lectures/pagerank-the-random-surfer?t=395.65554166666664): bar\_f is redrawn as the numbers it depends on change.
- [06:35.656](https://academa.ai/lectures/pagerank-the-random-surfer?t=395.65554166666664): p\_a ticks to 0.385.
- [06:35.656](https://academa.ai/lectures/pagerank-the-random-surfer?t=395.65554166666664): p\_b ticks to 0.188.
- [06:35.656](https://academa.ai/lectures/pagerank-the-random-surfer?t=395.65554166666664): p\_c ticks to 0.271.
- [06:35.656](https://academa.ai/lectures/pagerank-the-random-surfer?t=395.65554166666664): p\_d ticks to 0.083.
- [06:35.656](https://academa.ai/lectures/pagerank-the-random-surfer?t=395.65554166666664): p\_e ticks to 0.063.
- [06:35.656](https://academa.ai/lectures/pagerank-the-random-surfer?t=395.65554166666664): p\_f ticks to 0.01.

##### [06:42.177](https://academa.ai/lectures/pagerank-the-random-surfer?t=402.1770416666666)

Narration: By about the twelfth multiplication they have stopped changing in the third decimal place, and they are the same six numbers the surfer found by walking. Three seven two on A, two seven nine on C, one eight six on B.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [06:43.048](https://academa.ai/lectures/pagerank-the-random-surfer?t=403.04754166666663): bar\_a is redrawn as the numbers it depends on change.
- [06:43.048](https://academa.ai/lectures/pagerank-the-random-surfer?t=403.04754166666663): bar\_b is redrawn as the numbers it depends on change.
- [06:43.048](https://academa.ai/lectures/pagerank-the-random-surfer?t=403.04754166666663): bar\_c is redrawn as the numbers it depends on change.
- [06:43.048](https://academa.ai/lectures/pagerank-the-random-surfer?t=403.04754166666663): bar\_d is redrawn as the numbers it depends on change.
- [06:43.048](https://academa.ai/lectures/pagerank-the-random-surfer?t=403.04754166666663): bar\_e is redrawn as the numbers it depends on change.
- [06:43.048](https://academa.ai/lectures/pagerank-the-random-surfer?t=403.04754166666663): bar\_f is redrawn as the numbers it depends on change.
- [06:43.048](https://academa.ai/lectures/pagerank-the-random-surfer?t=403.04754166666663): p\_a ticks to 0.372.
- [06:43.048](https://academa.ai/lectures/pagerank-the-random-surfer?t=403.04754166666663): p\_b ticks to 0.186.
- [06:43.048](https://academa.ai/lectures/pagerank-the-random-surfer?t=403.04754166666663): p\_c ticks to 0.279.
- [06:43.048](https://academa.ai/lectures/pagerank-the-random-surfer?t=403.04754166666663): p\_d ticks to 0.093.
- [06:43.048](https://academa.ai/lectures/pagerank-the-random-surfer?t=403.04754166666663): p\_e ticks to 0.047.
- [06:43.048](https://academa.ai/lectures/pagerank-the-random-surfer?t=403.04754166666663): p\_f ticks to 0.023.
- [06:50.595](https://academa.ai/lectures/pagerank-the-random-surfer?t=410.5945416666666): bar\_a is indicated — a transient flash.
- [06:52.487](https://academa.ai/lectures/pagerank-the-random-surfer?t=412.48654166666665): bar\_c is indicated — a transient flash.
- [06:54.403](https://academa.ai/lectures/pagerank-the-random-surfer?t=414.40254166666665): bar\_b is indicated — a transient flash.

##### [06:56.523](https://academa.ai/lectures/pagerank-the-random-surfer?t=416.5230416666666)

Narration: This is the power method. Multiplying by H over and over drives any starting vector towards the one vector that H leaves alone. An eigenvector of the link matrix, with eigenvalue one.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [07:3.896](https://academa.ai/lectures/pagerank-the-random-surfer?t=423.89554166666665): eigen\_eq is shown on the screen, written out.

##### [07:9.465](https://academa.ai/lectures/pagerank-the-random-surfer?t=429.4650416666666)

Narration: And that is genuinely how it is done. On a web of a billion pages the matrix is almost entirely zeros, so a single multiplication is cheap, and a few dozen of them is the whole computation. There is only one problem. All of that assumes the walk can always carry on.

Board: step\_eq — a Math \[text\] that says "$x\_(k+1) = H x\_k$"; eigen\_eq — a Math \[text\] that says "$H x = x$"; chart — a Figure (x\_range=(0.0, 6.6), y\_range=(-0.16, 0.56), aspect=(6.6, 3.6)); head\_power — a Heading that says "Multiply, and Multiply Again"; baseline — a Line \[gray\] drawn in chart (start=(0.15, 0.0), end=(6.45, 0.0)); tag\_a — a Math \[text\] that says "$A$" drawn in chart; tag\_b — a Math \[text\] that says "$B$" drawn in chart; tag\_c — a Math \[text\] that says "$C$" drawn in chart; tag\_d — a Math \[text\] that says "$D$" drawn in chart; tag\_e — a Math \[text\] that says "$E$" drawn in chart; tag\_f — a Math \[text\] that says "$F$" drawn in chart; bar\_a — a Vector \[green\] labelled "0.167" drawn in chart (start=(0.7, 0.0), end=(0.7, \<VariableNumber p\_a = 0.372\>)); bar\_b — a Vector \[green\] labelled "0.167" drawn in chart (start=(1.7, 0.0), end=(1.7, \<VariableNumber p\_b = 0.186\>)); bar\_c — a Vector \[green\] labelled "0.167" drawn in chart (start=(2.7, 0.0), end=(2.7, \<VariableNumber p\_c = 0.279\>)); bar\_d — a Vector \[green\] labelled "0.167" drawn in chart (start=(3.7, 0.0), end=(3.7, \<VariableNumber p\_d = 0.093\>)); bar\_e — a Vector \[green\] labelled "0.167" drawn in chart (start=(4.7, 0.0), end=(4.7, \<VariableNumber p\_e = 0.047\>)); bar\_f — a Vector \[green\] labelled "0.167" drawn in chart (start=(5.7, 0.0), end=(5.7, \<VariableNumber p\_f = 0.023\>))

Actions:
- [07:26.796](https://academa.ai/lectures/pagerank-the-random-surfer?t=446.79635416666656): chart is hidden from the screen — left the board.
- [07:26.796](https://academa.ai/lectures/pagerank-the-random-surfer?t=446.79635416666656): baseline is hidden from the screen — chart left the board.
- [07:26.796](https://academa.ai/lectures/pagerank-the-random-surfer?t=446.79635416666656): tag\_a is hidden from the screen — chart left the board.
- [07:26.796](https://academa.ai/lectures/pagerank-the-random-surfer?t=446.79635416666656): tag\_b is hidden from the screen — chart left the board.
- [07:26.796](https://academa.ai/lectures/pagerank-the-random-surfer?t=446.79635416666656): tag\_c is hidden from the screen — chart left the board.
- [07:26.796](https://academa.ai/lectures/pagerank-the-random-surfer?t=446.79635416666656): tag\_d is hidden from the screen — chart left the board.
- [07:26.796](https://academa.ai/lectures/pagerank-the-random-surfer?t=446.79635416666656): tag\_e is hidden from the screen — chart left the board.
- [07:26.796](https://academa.ai/lectures/pagerank-the-random-surfer?t=446.79635416666656): tag\_f is hidden from the screen — chart left the board.
- [07:26.796](https://academa.ai/lectures/pagerank-the-random-surfer?t=446.79635416666656): bar\_a is hidden from the screen — chart left the board.
- [07:26.796](https://academa.ai/lectures/pagerank-the-random-surfer?t=446.79635416666656): bar\_b is hidden from the screen — chart left the board.
- [07:26.796](https://academa.ai/lectures/pagerank-the-random-surfer?t=446.79635416666656): bar\_c is hidden from the screen — chart left the board.
- [07:26.796](https://academa.ai/lectures/pagerank-the-random-surfer?t=446.79635416666656): bar\_d is hidden from the screen — chart left the board.
- [07:26.796](https://academa.ai/lectures/pagerank-the-random-surfer?t=446.79635416666656): bar\_e is hidden from the screen — chart left the board.
- [07:26.796](https://academa.ai/lectures/pagerank-the-random-surfer?t=446.79635416666656): bar\_f is hidden from the screen — chart left the board.
- [07:26.796](https://academa.ai/lectures/pagerank-the-random-surfer?t=446.79635416666656): eigen\_eq is hidden from the screen — left the board.
- [07:26.796](https://academa.ai/lectures/pagerank-the-random-surfer?t=446.79635416666656): head\_power is hidden from the screen — left the board.
- [07:26.796](https://academa.ai/lectures/pagerank-the-random-surfer?t=446.79635416666656): step\_eq is hidden from the screen — left the board.
- [07:26.796](https://academa.ai/lectures/pagerank-the-random-surfer?t=446.79635416666656): work is hidden from the screen — left the board.

### Scene 3: [Dangling Pages, Traps, and the Bored Surfer](https://academa.ai/lectures/pagerank-the-random-surfer?t=447.83802083333325)

Span: 07:27.838–11:20.795 (447.83802083333325s–680.7949583333332s).

#### Objects

- bar\_a: a Vector \[green\] labelled "0.167" drawn in chart (start=(0.7, 0.0), end=(0.7, \<VariableNumber p\_a = 0.354\>))
- bar\_b: a Vector \[green\] labelled "0.167" drawn in chart (start=(1.7, 0.0), end=(1.7, \<VariableNumber p\_b = 0.175\>))
- bar\_c: a Vector \[green\] labelled "0.167" drawn in chart (start=(2.7, 0.0), end=(2.7, \<VariableNumber p\_c = 0.25\>))
- bar\_d: a Vector \[green\] labelled "0.167" drawn in chart (start=(3.7, 0.0), end=(3.7, \<VariableNumber p\_d = 0.1\>))
- bar\_e: a Vector \[green\] labelled "0.167" drawn in chart (start=(4.7, 0.0), end=(4.7, \<VariableNumber p\_e = 0.067\>))
- bar\_f: a Vector \[green\] labelled "0.167" drawn in chart (start=(5.7, 0.0), end=(5.7, \<VariableNumber p\_f = 0.054\>))
- baseline: a Line \[gray\] drawn in chart (start=(0.15, 0.0), end=(6.45, 0.0))
- chart: a Figure (x\_range=(0.0, 6.6), y\_range=(-0.16, 0.56), aspect=(6.6, 3.6))
- damp\_eq: a Math \[text\] that says "$x\_(k+1) = 0.85 thin H x\_k + frac(0.15, n) bold(1)$"
- dead\_note: a Tex \[text\] that says "$F$ has no links out, so its column of $H$ is all zeros."
- edge\_ab: a Vector \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 5.75), trim\_tip=True)
- edge\_ac: a CurvedArrow \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 1.25), bend=0.35)
- edge\_bc: a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(4.3, 1.25), trim\_tip=True)
- edge\_bd: a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(6.9, 5.75), trim\_tip=True)
- edge\_ca: a CurvedArrow \[gray\] drawn in web (start=(4.3, 1.25), end=(3.0, 3.5), bend=0.35)
- edge\_da: a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(3.0, 3.5), trim\_tip=True)
- edge\_de: a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(8.2, 3.5), trim\_tip=True)
- edge\_ea: a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(3.0, 3.5), trim\_tip=True)
- edge\_ef: a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(6.9, 1.25), trim\_tip=True)
- edge\_fa: a Vector \[gray\] drawn in web (start=(6.9, 1.25), end=(3.0, 3.5), trim\_tip=True)
- edge\_fe: a Vector \[red\] drawn in web (start=(6.9, 1.25), end=(8.2, 3.5), trim\_tip=True)
- head\_damp: a Heading that says "The Surfer Gets Bored"
- head\_dangling: a Heading that says "A Page With No Way Out"
- head\_final: a Heading that says "The Ranking, With Damping On"
- head\_trap: a Heading that says "A Pair That Keeps It All"
- node\_a: a Point \[blue\] labelled "A" drawn in web (location=(3.0, 3.5), marker\_radius=0.15)
- node\_b: a Point \[blue\] labelled "B" drawn in web (location=(4.3, 5.75), marker\_radius=0.15)
- node\_c: a Point \[blue\] labelled "C" drawn in web (location=(4.3, 1.25), marker\_radius=0.15)
- node\_d: a Point \[blue\] labelled "D" drawn in web (location=(6.9, 5.75), marker\_radius=0.15)
- node\_e: a Point \[blue\] labelled "E" drawn in web (location=(8.2, 3.5), marker\_radius=0.15)
- node\_f: a Point \[blue\] labelled "F" drawn in web (location=(6.9, 1.25), marker\_radius=0.15)
- p\_a: a VariableNumber (initial\_value=0.16666666666666666, format\_spec='.3f')
- p\_b: a VariableNumber (initial\_value=0.16666666666666666, format\_spec='.3f')
- p\_c: a VariableNumber (initial\_value=0.16666666666666666, format\_spec='.3f')
- p\_d: a VariableNumber (initial\_value=0.16666666666666666, format\_spec='.3f')
- p\_e: a VariableNumber (initial\_value=0.16666666666666666, format\_spec='.3f')
- p\_f: a VariableNumber (initial\_value=0.16666666666666666, format\_spec='.3f')
- point: a Point \[yellow\] drawn in web (location=(6.9, 1.25))
- point\_2: a Point \[yellow\] drawn in web (location=(6.9, 5.75))
- readout: a Point \[text\] labelled "upright("total") = 1.000" drawn in chart (location=(3.3, 0.5), show\_marker=False)
- tag\_a: a Math \[text\] that says "$A$" drawn in chart
- tag\_b: a Math \[text\] that says "$B$" drawn in chart
- tag\_c: a Math \[text\] that says "$C$" drawn in chart
- tag\_d: a Math \[text\] that says "$D$" drawn in chart
- tag\_e: a Math \[text\] that says "$E$" drawn in chart
- tag\_f: a Math \[text\] that says "$F$" drawn in chart
- teleport\_note: a Panel that says "With probability $0.85$ the surfer clicks a random link. With probability $0.15$ it stops clicking and jumps to a page chosen uniformly at random. Here $bold(1)$ is the vector of all ones and $n$ is the number of pages."
- total: a VariableNumber (initial\_value=1.0, format\_spec='.3f')
- trap\_note: a Tex \[text\] that says "$E$ and $F$ link only to each other: a rank sink."
- walker: a Point \[yellow\] drawn in web (location=(\<VariableNumber wx = 3.0\>, \<VariableNumber wy = 3.5\>), marker\_radius=0.09)
- web: a Figure (x\_range=(1.6, 9.6), y\_range=(0.2, 7.0), aspect=(8.0, 6.8))
- wx: a VariableNumber (initial\_value=8.2)
- wy: a VariableNumber (initial\_value=3.5)

#### Beats

##### [07:27.838](https://academa.ai/lectures/pagerank-the-random-surfer?t=447.83802083333325)

Narration: Real webs are not that tidy. Plenty of pages have no outgoing links at all: a PDF, an image, a page that simply never links anywhere. So take our web and delete the single link out of F.

Board: Empty.

Actions:
- [07:27.838](https://academa.ai/lectures/pagerank-the-random-surfer?t=447.83802083333325): head\_dangling is shown on the screen, written out.
- [07:27.838](https://academa.ai/lectures/pagerank-the-random-surfer?t=447.83802083333325): web is shown on the screen, written out.
- [07:27.838](https://academa.ai/lectures/pagerank-the-random-surfer?t=447.83802083333325): node\_a is shown on the screen, written out.
- [07:27.938](https://academa.ai/lectures/pagerank-the-random-surfer?t=447.93802083333327): node\_b is shown on the screen, written out.
- [07:28.038](https://academa.ai/lectures/pagerank-the-random-surfer?t=448.03802083333323): node\_c is shown on the screen, written out.
- [07:28.138](https://academa.ai/lectures/pagerank-the-random-surfer?t=448.13802083333326): node\_d is shown on the screen, written out.
- [07:28.238](https://academa.ai/lectures/pagerank-the-random-surfer?t=448.2380208333332): node\_e is shown on the screen, written out.
- [07:28.338](https://academa.ai/lectures/pagerank-the-random-surfer?t=448.33802083333325): node\_f is shown on the screen, written out.
- [07:28.378](https://academa.ai/lectures/pagerank-the-random-surfer?t=448.37802083333327): edge\_ab is shown on the screen, drawn.
- [07:28.468](https://academa.ai/lectures/pagerank-the-random-surfer?t=448.46802083333324): edge\_ac is shown on the screen, drawn.
- [07:28.558](https://academa.ai/lectures/pagerank-the-random-surfer?t=448.5580208333333): edge\_bc is shown on the screen, drawn.
- [07:28.648](https://academa.ai/lectures/pagerank-the-random-surfer?t=448.64802083333325): edge\_bd is shown on the screen, drawn.
- [07:28.738](https://academa.ai/lectures/pagerank-the-random-surfer?t=448.7380208333332): edge\_ca is shown on the screen, drawn.
- [07:28.828](https://academa.ai/lectures/pagerank-the-random-surfer?t=448.82802083333326): edge\_da is shown on the screen, drawn.
- [07:28.918](https://academa.ai/lectures/pagerank-the-random-surfer?t=448.91802083333323): edge\_de is shown on the screen, drawn.
- [07:29.008](https://academa.ai/lectures/pagerank-the-random-surfer?t=449.00802083333326): edge\_ea is shown on the screen, drawn.
- [07:29.098](https://academa.ai/lectures/pagerank-the-random-surfer?t=449.09802083333324): edge\_ef is shown on the screen, drawn.
- [07:29.188](https://academa.ai/lectures/pagerank-the-random-surfer?t=449.18802083333327): edge\_fa is shown on the screen, drawn.
- [07:38.438](https://academa.ai/lectures/pagerank-the-random-surfer?t=458.43802083333327): edge\_fa is hidden from the screen.

##### [07:41.105](https://academa.ai/lectures/pagerank-the-random-surfer?t=461.10452083333325)

Narration: Now the surfer walks into F and stops dead, because there is nothing there to click on. In the matrix, that column is all zeros. F takes rank in, and hands none of it back out.

Board: web — a Figure (x\_range=(1.6, 9.6), y\_range=(0.2, 7.0), aspect=(8.0, 6.8)); head\_dangling — a Heading that says "A Page With No Way Out"; node\_a — a Point \[blue\] labelled "A" drawn in web (location=(3.0, 3.5), marker\_radius=0.15); node\_b — a Point \[blue\] labelled "B" drawn in web (location=(4.3, 5.75), marker\_radius=0.15); node\_c — a Point \[blue\] labelled "C" drawn in web (location=(4.3, 1.25), marker\_radius=0.15); node\_d — a Point \[blue\] labelled "D" drawn in web (location=(6.9, 5.75), marker\_radius=0.15); node\_e — a Point \[blue\] labelled "E" drawn in web (location=(8.2, 3.5), marker\_radius=0.15); node\_f — a Point \[blue\] labelled "F" drawn in web (location=(6.9, 1.25), marker\_radius=0.15); edge\_ab — a Vector \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 5.75), trim\_tip=True); edge\_ac — a CurvedArrow \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 1.25), bend=0.35); edge\_bc — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(4.3, 1.25), trim\_tip=True); edge\_bd — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(6.9, 5.75), trim\_tip=True); edge\_ca — a CurvedArrow \[gray\] drawn in web (start=(4.3, 1.25), end=(3.0, 3.5), bend=0.35); edge\_da — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(3.0, 3.5), trim\_tip=True); edge\_de — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(8.2, 3.5), trim\_tip=True); edge\_ea — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(3.0, 3.5), trim\_tip=True); edge\_ef — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(6.9, 1.25), trim\_tip=True)

Actions:
- [07:41.105](https://academa.ai/lectures/pagerank-the-random-surfer?t=461.10452083333325): walker is shown on the screen, written out.
- [07:43.067](https://academa.ai/lectures/pagerank-the-random-surfer?t=463.06702083333323): walker is redrawn as the numbers it depends on change.
- [07:43.067](https://academa.ai/lectures/pagerank-the-random-surfer?t=463.06702083333323): wx ticks to 6.9.
- [07:43.067](https://academa.ai/lectures/pagerank-the-random-surfer?t=463.06702083333323): wy ticks to 1.25.
- [07:48.117](https://academa.ai/lectures/pagerank-the-random-surfer?t=468.11702083333324): web moves to a new place on the board.
- [07:48.117](https://academa.ai/lectures/pagerank-the-random-surfer?t=468.11702083333324): dead\_note is shown on the screen, written out.

##### [07:53.245](https://academa.ai/lectures/pagerank-the-random-surfer?t=473.24502083333323)

Narration: Watch what that does to the numbers. At every step, whatever share is sitting on F simply vanishes. After one multiplication the total has already fallen to zero point eight three.

Board: dead\_note — a Tex \[text\] that says "$F$ has no links out, so its column of $H$ is all zeros."; web — a Figure (x\_range=(1.6, 9.6), y\_range=(0.2, 7.0), aspect=(8.0, 6.8)); head\_dangling — a Heading that says "A Page With No Way Out"; node\_a — a Point \[blue\] labelled "A" drawn in web (location=(3.0, 3.5), marker\_radius=0.15); node\_b — a Point \[blue\] labelled "B" drawn in web (location=(4.3, 5.75), marker\_radius=0.15); node\_c — a Point \[blue\] labelled "C" drawn in web (location=(4.3, 1.25), marker\_radius=0.15); node\_d — a Point \[blue\] labelled "D" drawn in web (location=(6.9, 5.75), marker\_radius=0.15); node\_e — a Point \[blue\] labelled "E" drawn in web (location=(8.2, 3.5), marker\_radius=0.15); node\_f — a Point \[blue\] labelled "F" drawn in web (location=(6.9, 1.25), marker\_radius=0.15); edge\_ab — a Vector \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 5.75), trim\_tip=True); edge\_ac — a CurvedArrow \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 1.25), bend=0.35); edge\_bc — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(4.3, 1.25), trim\_tip=True); edge\_bd — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(6.9, 5.75), trim\_tip=True); edge\_ca — a CurvedArrow \[gray\] drawn in web (start=(4.3, 1.25), end=(3.0, 3.5), bend=0.35); edge\_da — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(3.0, 3.5), trim\_tip=True); edge\_de — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(8.2, 3.5), trim\_tip=True); edge\_ea — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(3.0, 3.5), trim\_tip=True); edge\_ef — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(6.9, 1.25), trim\_tip=True); walker — a Point \[yellow\] drawn in web (location=(\<VariableNumber wx = 3.0\>, \<VariableNumber wy = 3.5\>), marker\_radius=0.09)

Actions:
- [07:53.245](https://academa.ai/lectures/pagerank-the-random-surfer?t=473.24502083333323): chart is shown on the screen, written out.
- [07:53.245](https://academa.ai/lectures/pagerank-the-random-surfer?t=473.24502083333323): baseline is shown on the screen, written out.
- [07:53.245](https://academa.ai/lectures/pagerank-the-random-surfer?t=473.24502083333323): readout is shown on the screen, written out.
- [07:53.245](https://academa.ai/lectures/pagerank-the-random-surfer?t=473.24502083333323): tag\_a is shown on the screen, written out.
- [07:53.325](https://academa.ai/lectures/pagerank-the-random-surfer?t=473.32502083333327): tag\_b is shown on the screen, written out.
- [07:53.405](https://academa.ai/lectures/pagerank-the-random-surfer?t=473.40502083333325): tag\_c is shown on the screen, written out.
- [07:53.485](https://academa.ai/lectures/pagerank-the-random-surfer?t=473.48502083333324): tag\_d is shown on the screen, written out.
- [07:53.565](https://academa.ai/lectures/pagerank-the-random-surfer?t=473.5650208333332): tag\_e is shown on the screen, written out.
- [07:53.645](https://academa.ai/lectures/pagerank-the-random-surfer?t=473.64502083333326): tag\_f is shown on the screen, written out.
- [07:53.845](https://academa.ai/lectures/pagerank-the-random-surfer?t=473.84502083333325): bar\_a is shown on the screen, written out.
- [07:53.945](https://academa.ai/lectures/pagerank-the-random-surfer?t=473.9450208333332): bar\_b is shown on the screen, written out.
- [07:54.045](https://academa.ai/lectures/pagerank-the-random-surfer?t=474.04502083333324): bar\_c is shown on the screen, written out.
- [07:54.145](https://academa.ai/lectures/pagerank-the-random-surfer?t=474.14502083333326): bar\_d is shown on the screen, written out.
- [07:54.245](https://academa.ai/lectures/pagerank-the-random-surfer?t=474.24502083333323): bar\_e is shown on the screen, written out.
- [07:54.345](https://academa.ai/lectures/pagerank-the-random-surfer?t=474.34502083333325): bar\_f is shown on the screen, written out.
- [08:2.382](https://academa.ai/lectures/pagerank-the-random-surfer?t=482.38202083333323): readout is redrawn as the numbers it depends on change.
- [08:2.382](https://academa.ai/lectures/pagerank-the-random-surfer?t=482.38202083333323): bar\_a is redrawn as the numbers it depends on change.
- [08:2.382](https://academa.ai/lectures/pagerank-the-random-surfer?t=482.38202083333323): bar\_b is redrawn as the numbers it depends on change.
- [08:2.382](https://academa.ai/lectures/pagerank-the-random-surfer?t=482.38202083333323): bar\_c is redrawn as the numbers it depends on change.
- [08:2.382](https://academa.ai/lectures/pagerank-the-random-surfer?t=482.38202083333323): bar\_d is redrawn as the numbers it depends on change.
- [08:2.382](https://academa.ai/lectures/pagerank-the-random-surfer?t=482.38202083333323): bar\_e is redrawn as the numbers it depends on change.
- [08:2.382](https://academa.ai/lectures/pagerank-the-random-surfer?t=482.38202083333323): bar\_f is redrawn as the numbers it depends on change.
- [08:2.382](https://academa.ai/lectures/pagerank-the-random-surfer?t=482.38202083333323): p\_a ticks to 0.333.
- [08:2.382](https://academa.ai/lectures/pagerank-the-random-surfer?t=482.38202083333323): p\_b ticks to 0.083.
- [08:2.382](https://academa.ai/lectures/pagerank-the-random-surfer?t=482.38202083333323): p\_c ticks to 0.167.
- [08:2.382](https://academa.ai/lectures/pagerank-the-random-surfer?t=482.38202083333323): p\_d ticks to 0.083.
- [08:2.382](https://academa.ai/lectures/pagerank-the-random-surfer?t=482.38202083333323): p\_e ticks to 0.083.
- [08:2.382](https://academa.ai/lectures/pagerank-the-random-surfer?t=482.38202083333323): p\_f ticks to 0.083.
- [08:2.382](https://academa.ai/lectures/pagerank-the-random-surfer?t=482.38202083333323): total ticks to 0.833.

##### [08:5.037](https://academa.ai/lectures/pagerank-the-random-surfer?t=485.03702083333326)

Narration: Again, and it is down to three quarters. Again, and it keeps slipping away. Twenty steps in, there is essentially nothing left anywhere, and it is still falling.

Board: dead\_note — a Tex \[text\] that says "$F$ has no links out, so its column of $H$ is all zeros."; chart — a Figure (x\_range=(0.0, 6.6), y\_range=(-0.16, 0.56), aspect=(6.6, 3.6)); web — a Figure (x\_range=(1.6, 9.6), y\_range=(0.2, 7.0), aspect=(8.0, 6.8)); head\_dangling — a Heading that says "A Page With No Way Out"; node\_a — a Point \[blue\] labelled "A" drawn in web (location=(3.0, 3.5), marker\_radius=0.15); node\_b — a Point \[blue\] labelled "B" drawn in web (location=(4.3, 5.75), marker\_radius=0.15); node\_c — a Point \[blue\] labelled "C" drawn in web (location=(4.3, 1.25), marker\_radius=0.15); node\_d — a Point \[blue\] labelled "D" drawn in web (location=(6.9, 5.75), marker\_radius=0.15); node\_e — a Point \[blue\] labelled "E" drawn in web (location=(8.2, 3.5), marker\_radius=0.15); node\_f — a Point \[blue\] labelled "F" drawn in web (location=(6.9, 1.25), marker\_radius=0.15); edge\_ab — a Vector \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 5.75), trim\_tip=True); edge\_ac — a CurvedArrow \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 1.25), bend=0.35); edge\_bc — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(4.3, 1.25), trim\_tip=True); edge\_bd — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(6.9, 5.75), trim\_tip=True); edge\_ca — a CurvedArrow \[gray\] drawn in web (start=(4.3, 1.25), end=(3.0, 3.5), bend=0.35); edge\_da — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(3.0, 3.5), trim\_tip=True); edge\_de — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(8.2, 3.5), trim\_tip=True); edge\_ea — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(3.0, 3.5), trim\_tip=True); edge\_ef — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(6.9, 1.25), trim\_tip=True); walker — a Point \[yellow\] drawn in web (location=(\<VariableNumber wx = 3.0\>, \<VariableNumber wy = 3.5\>), marker\_radius=0.09); baseline — a Line \[gray\] drawn in chart (start=(0.15, 0.0), end=(6.45, 0.0)); readout — a Point \[text\] labelled "upright("total") = 1.000" drawn in chart (location=(3.3, 0.5), show\_marker=False); tag\_a — a Math \[text\] that says "$A$" drawn in chart; tag\_b — a Math \[text\] that says "$B$" drawn in chart; tag\_c — a Math \[text\] that says "$C$" drawn in chart; tag\_d — a Math \[text\] that says "$D$" drawn in chart; tag\_e — a Math \[text\] that says "$E$" drawn in chart; tag\_f — a Math \[text\] that says "$F$" drawn in chart; bar\_a — a Vector \[green\] labelled "0.167" drawn in chart (start=(0.7, 0.0), end=(0.7, \<VariableNumber p\_a = 0.354\>)); bar\_b — a Vector \[green\] labelled "0.167" drawn in chart (start=(1.7, 0.0), end=(1.7, \<VariableNumber p\_b = 0.175\>)); bar\_c — a Vector \[green\] labelled "0.167" drawn in chart (start=(2.7, 0.0), end=(2.7, \<VariableNumber p\_c = 0.25\>)); bar\_d — a Vector \[green\] labelled "0.167" drawn in chart (start=(3.7, 0.0), end=(3.7, \<VariableNumber p\_d = 0.1\>)); bar\_e — a Vector \[green\] labelled "0.167" drawn in chart (start=(4.7, 0.0), end=(4.7, \<VariableNumber p\_e = 0.067\>)); bar\_f — a Vector \[green\] labelled "0.167" drawn in chart (start=(5.7, 0.0), end=(5.7, \<VariableNumber p\_f = 0.054\>))

Actions:
- [08:7.127](https://academa.ai/lectures/pagerank-the-random-surfer?t=487.12702083333323): readout is redrawn as the numbers it depends on change.
- [08:7.127](https://academa.ai/lectures/pagerank-the-random-surfer?t=487.12702083333323): bar\_a is redrawn as the numbers it depends on change.
- [08:7.127](https://academa.ai/lectures/pagerank-the-random-surfer?t=487.12702083333323): bar\_b is redrawn as the numbers it depends on change.
- [08:7.127](https://academa.ai/lectures/pagerank-the-random-surfer?t=487.12702083333323): bar\_c is redrawn as the numbers it depends on change.
- [08:7.127](https://academa.ai/lectures/pagerank-the-random-surfer?t=487.12702083333323): bar\_d is redrawn as the numbers it depends on change.
- [08:7.127](https://academa.ai/lectures/pagerank-the-random-surfer?t=487.12702083333323): bar\_e is redrawn as the numbers it depends on change.
- [08:7.127](https://academa.ai/lectures/pagerank-the-random-surfer?t=487.12702083333323): bar\_f is redrawn as the numbers it depends on change.
- [08:7.127](https://academa.ai/lectures/pagerank-the-random-surfer?t=487.12702083333323): p\_a ticks to 0.25.
- [08:7.127](https://academa.ai/lectures/pagerank-the-random-surfer?t=487.12702083333323): p\_b ticks to 0.167.
- [08:7.127](https://academa.ai/lectures/pagerank-the-random-surfer?t=487.12702083333323): p\_c ticks to 0.208.
- [08:7.127](https://academa.ai/lectures/pagerank-the-random-surfer?t=487.12702083333323): p\_d ticks to 0.042.
- [08:7.127](https://academa.ai/lectures/pagerank-the-random-surfer?t=487.12702083333323): p\_e ticks to 0.042.
- [08:7.127](https://academa.ai/lectures/pagerank-the-random-surfer?t=487.12702083333323): p\_f ticks to 0.042.
- [08:7.127](https://academa.ai/lectures/pagerank-the-random-surfer?t=487.12702083333323): total ticks to 0.75.
- [08:9.542](https://academa.ai/lectures/pagerank-the-random-surfer?t=489.54202083333325): readout is redrawn as the numbers it depends on change.
- [08:9.542](https://academa.ai/lectures/pagerank-the-random-surfer?t=489.54202083333325): bar\_b is redrawn as the numbers it depends on change.
- [08:9.542](https://academa.ai/lectures/pagerank-the-random-surfer?t=489.54202083333325): bar\_d is redrawn as the numbers it depends on change.
- [08:9.542](https://academa.ai/lectures/pagerank-the-random-surfer?t=489.54202083333325): bar\_e is redrawn as the numbers it depends on change.
- [08:9.542](https://academa.ai/lectures/pagerank-the-random-surfer?t=489.54202083333325): bar\_f is redrawn as the numbers it depends on change.
- [08:9.542](https://academa.ai/lectures/pagerank-the-random-surfer?t=489.54202083333325): p\_a ticks to 0.25.
- [08:9.542](https://academa.ai/lectures/pagerank-the-random-surfer?t=489.54202083333325): p\_b ticks to 0.125.
- [08:9.542](https://academa.ai/lectures/pagerank-the-random-surfer?t=489.54202083333325): p\_c ticks to 0.208.
- [08:9.542](https://academa.ai/lectures/pagerank-the-random-surfer?t=489.54202083333325): p\_d ticks to 0.083.
- [08:9.542](https://academa.ai/lectures/pagerank-the-random-surfer?t=489.54202083333325): p\_e ticks to 0.021.
- [08:9.542](https://academa.ai/lectures/pagerank-the-random-surfer?t=489.54202083333325): p\_f ticks to 0.021.
- [08:9.542](https://academa.ai/lectures/pagerank-the-random-surfer?t=489.54202083333325): total ticks to 0.708.
- [08:12.804](https://academa.ai/lectures/pagerank-the-random-surfer?t=492.80402083333325): readout is redrawn as the numbers it depends on change.
- [08:12.804](https://academa.ai/lectures/pagerank-the-random-surfer?t=492.80402083333325): bar\_a is redrawn as the numbers it depends on change.
- [08:12.804](https://academa.ai/lectures/pagerank-the-random-surfer?t=492.80402083333325): bar\_b is redrawn as the numbers it depends on change.
- [08:12.804](https://academa.ai/lectures/pagerank-the-random-surfer?t=492.80402083333325): bar\_c is redrawn as the numbers it depends on change.
- [08:12.804](https://academa.ai/lectures/pagerank-the-random-surfer?t=492.80402083333325): bar\_d is redrawn as the numbers it depends on change.
- [08:12.804](https://academa.ai/lectures/pagerank-the-random-surfer?t=492.80402083333325): bar\_e is redrawn as the numbers it depends on change.
- [08:12.804](https://academa.ai/lectures/pagerank-the-random-surfer?t=492.80402083333325): bar\_f is redrawn as the numbers it depends on change.
- [08:12.804](https://academa.ai/lectures/pagerank-the-random-surfer?t=492.80402083333325): p\_a ticks to 0.018.
- [08:12.804](https://academa.ai/lectures/pagerank-the-random-surfer?t=492.80402083333325): p\_b ticks to 0.009.
- [08:12.804](https://academa.ai/lectures/pagerank-the-random-surfer?t=492.80402083333325): p\_c ticks to 0.013.
- [08:12.804](https://academa.ai/lectures/pagerank-the-random-surfer?t=492.80402083333325): p\_d ticks to 0.005.
- [08:12.804](https://academa.ai/lectures/pagerank-the-random-surfer?t=492.80402083333325): p\_e ticks to 0.003.
- [08:12.804](https://academa.ai/lectures/pagerank-the-random-surfer?t=492.80402083333325): p\_f ticks to 0.002.
- [08:12.804](https://academa.ai/lectures/pagerank-the-random-surfer?t=492.80402083333325): total ticks to 0.05.

##### [08:16.179](https://academa.ai/lectures/pagerank-the-random-surfer?t=496.17902083333325)

Narration: Which ranks nothing against anything. Every page has been driven towards zero, and the ordering has gone with it.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [08:20.254](https://academa.ai/lectures/pagerank-the-random-surfer?t=500.25402083333324): readout is indicated — a transient flash.
- [08:22.936](https://academa.ai/lectures/pagerank-the-random-surfer?t=502.93602083333326): dead\_note is hidden from the screen — left the board.
- [08:22.936](https://academa.ai/lectures/pagerank-the-random-surfer?t=502.93602083333326): head\_dangling is hidden from the screen — left the board.

##### [08:23.536](https://academa.ai/lectures/pagerank-the-random-surfer?t=503.5360208333332)

Narration: Now the opposite failure. Give F a link out again, but point it at E rather than at A, and cut the link from E to A. Set the numbers back to an even sixth each.

Board: chart — a Figure (x\_range=(0.0, 6.6), y\_range=(-0.16, 0.56), aspect=(6.6, 3.6)); web — a Figure (x\_range=(1.6, 9.6), y\_range=(0.2, 7.0), aspect=(8.0, 6.8)); node\_a — a Point \[blue\] labelled "A" drawn in web (location=(3.0, 3.5), marker\_radius=0.15); node\_b — a Point \[blue\] labelled "B" drawn in web (location=(4.3, 5.75), marker\_radius=0.15); node\_c — a Point \[blue\] labelled "C" drawn in web (location=(4.3, 1.25), marker\_radius=0.15); node\_d — a Point \[blue\] labelled "D" drawn in web (location=(6.9, 5.75), marker\_radius=0.15); node\_e — a Point \[blue\] labelled "E" drawn in web (location=(8.2, 3.5), marker\_radius=0.15); node\_f — a Point \[blue\] labelled "F" drawn in web (location=(6.9, 1.25), marker\_radius=0.15); edge\_ab — a Vector \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 5.75), trim\_tip=True); edge\_ac — a CurvedArrow \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 1.25), bend=0.35); edge\_bc — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(4.3, 1.25), trim\_tip=True); edge\_bd — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(6.9, 5.75), trim\_tip=True); edge\_ca — a CurvedArrow \[gray\] drawn in web (start=(4.3, 1.25), end=(3.0, 3.5), bend=0.35); edge\_da — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(3.0, 3.5), trim\_tip=True); edge\_de — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(8.2, 3.5), trim\_tip=True); edge\_ea — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(3.0, 3.5), trim\_tip=True); edge\_ef — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(6.9, 1.25), trim\_tip=True); walker — a Point \[yellow\] drawn in web (location=(\<VariableNumber wx = 3.0\>, \<VariableNumber wy = 3.5\>), marker\_radius=0.09); baseline — a Line \[gray\] drawn in chart (start=(0.15, 0.0), end=(6.45, 0.0)); readout — a Point \[text\] labelled "upright("total") = 1.000" drawn in chart (location=(3.3, 0.5), show\_marker=False); tag\_a — a Math \[text\] that says "$A$" drawn in chart; tag\_b — a Math \[text\] that says "$B$" drawn in chart; tag\_c — a Math \[text\] that says "$C$" drawn in chart; tag\_d — a Math \[text\] that says "$D$" drawn in chart; tag\_e — a Math \[text\] that says "$E$" drawn in chart; tag\_f — a Math \[text\] that says "$F$" drawn in chart; bar\_a — a Vector \[green\] labelled "0.167" drawn in chart (start=(0.7, 0.0), end=(0.7, \<VariableNumber p\_a = 0.354\>)); bar\_b — a Vector \[green\] labelled "0.167" drawn in chart (start=(1.7, 0.0), end=(1.7, \<VariableNumber p\_b = 0.175\>)); bar\_c — a Vector \[green\] labelled "0.167" drawn in chart (start=(2.7, 0.0), end=(2.7, \<VariableNumber p\_c = 0.25\>)); bar\_d — a Vector \[green\] labelled "0.167" drawn in chart (start=(3.7, 0.0), end=(3.7, \<VariableNumber p\_d = 0.1\>)); bar\_e — a Vector \[green\] labelled "0.167" drawn in chart (start=(4.7, 0.0), end=(4.7, \<VariableNumber p\_e = 0.067\>)); bar\_f — a Vector \[green\] labelled "0.167" drawn in chart (start=(5.7, 0.0), end=(5.7, \<VariableNumber p\_f = 0.054\>))

Actions:
- [08:23.536](https://academa.ai/lectures/pagerank-the-random-surfer?t=503.5360208333332): head\_trap is shown on the screen, written out.
- [08:27.298](https://academa.ai/lectures/pagerank-the-random-surfer?t=507.2980208333332): edge\_fe is shown on the screen, written out.
- [08:29.538](https://academa.ai/lectures/pagerank-the-random-surfer?t=509.53802083333323): edge\_ea is hidden from the screen.
- [08:29.538](https://academa.ai/lectures/pagerank-the-random-surfer?t=509.53802083333323): trap\_note is shown on the screen, written out.
- [08:32.034](https://academa.ai/lectures/pagerank-the-random-surfer?t=512.0340208333332): readout is redrawn as the numbers it depends on change.
- [08:32.034](https://academa.ai/lectures/pagerank-the-random-surfer?t=512.0340208333332): bar\_a is redrawn as the numbers it depends on change.
- [08:32.034](https://academa.ai/lectures/pagerank-the-random-surfer?t=512.0340208333332): bar\_b is redrawn as the numbers it depends on change.
- [08:32.034](https://academa.ai/lectures/pagerank-the-random-surfer?t=512.0340208333332): bar\_c is redrawn as the numbers it depends on change.
- [08:32.034](https://academa.ai/lectures/pagerank-the-random-surfer?t=512.0340208333332): bar\_d is redrawn as the numbers it depends on change.
- [08:32.034](https://academa.ai/lectures/pagerank-the-random-surfer?t=512.0340208333332): bar\_e is redrawn as the numbers it depends on change.
- [08:32.034](https://academa.ai/lectures/pagerank-the-random-surfer?t=512.0340208333332): bar\_f is redrawn as the numbers it depends on change.
- [08:32.034](https://academa.ai/lectures/pagerank-the-random-surfer?t=512.0340208333332): p\_a ticks to 0.16666666666666666.
- [08:32.034](https://academa.ai/lectures/pagerank-the-random-surfer?t=512.0340208333332): p\_b ticks to 0.16666666666666666.
- [08:32.034](https://academa.ai/lectures/pagerank-the-random-surfer?t=512.0340208333332): p\_c ticks to 0.16666666666666666.
- [08:32.034](https://academa.ai/lectures/pagerank-the-random-surfer?t=512.0340208333332): p\_d ticks to 0.16666666666666666.
- [08:32.034](https://academa.ai/lectures/pagerank-the-random-surfer?t=512.0340208333332): p\_e ticks to 0.16666666666666666.
- [08:32.034](https://academa.ai/lectures/pagerank-the-random-surfer?t=512.0340208333332): p\_f ticks to 0.16666666666666666.
- [08:32.034](https://academa.ai/lectures/pagerank-the-random-surfer?t=512.0340208333332): total ticks to 1.0.

##### [08:34.585](https://academa.ai/lectures/pagerank-the-random-surfer?t=514.5850208333333)

Narration: The surfer wanders in, and then it bounces between the two of them forever. There is no way out at all. That pattern has a name: a rank sink, or a spider trap.

Board: chart — a Figure (x\_range=(0.0, 6.6), y\_range=(-0.16, 0.56), aspect=(6.6, 3.6)); web — a Figure (x\_range=(1.6, 9.6), y\_range=(0.2, 7.0), aspect=(8.0, 6.8)); node\_a — a Point \[blue\] labelled "A" drawn in web (location=(3.0, 3.5), marker\_radius=0.15); node\_b — a Point \[blue\] labelled "B" drawn in web (location=(4.3, 5.75), marker\_radius=0.15); node\_c — a Point \[blue\] labelled "C" drawn in web (location=(4.3, 1.25), marker\_radius=0.15); node\_d — a Point \[blue\] labelled "D" drawn in web (location=(6.9, 5.75), marker\_radius=0.15); node\_e — a Point \[blue\] labelled "E" drawn in web (location=(8.2, 3.5), marker\_radius=0.15); node\_f — a Point \[blue\] labelled "F" drawn in web (location=(6.9, 1.25), marker\_radius=0.15); edge\_ab — a Vector \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 5.75), trim\_tip=True); edge\_ac — a CurvedArrow \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 1.25), bend=0.35); edge\_bc — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(4.3, 1.25), trim\_tip=True); edge\_bd — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(6.9, 5.75), trim\_tip=True); edge\_ca — a CurvedArrow \[gray\] drawn in web (start=(4.3, 1.25), end=(3.0, 3.5), bend=0.35); edge\_da — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(3.0, 3.5), trim\_tip=True); edge\_de — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(8.2, 3.5), trim\_tip=True); edge\_ef — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(6.9, 1.25), trim\_tip=True); walker — a Point \[yellow\] drawn in web (location=(\<VariableNumber wx = 3.0\>, \<VariableNumber wy = 3.5\>), marker\_radius=0.09); baseline — a Line \[gray\] drawn in chart (start=(0.15, 0.0), end=(6.45, 0.0)); readout — a Point \[text\] labelled "upright("total") = 1.000" drawn in chart (location=(3.3, 0.5), show\_marker=False); tag\_a — a Math \[text\] that says "$A$" drawn in chart; tag\_b — a Math \[text\] that says "$B$" drawn in chart; tag\_c — a Math \[text\] that says "$C$" drawn in chart; tag\_d — a Math \[text\] that says "$D$" drawn in chart; tag\_e — a Math \[text\] that says "$E$" drawn in chart; tag\_f — a Math \[text\] that says "$F$" drawn in chart; bar\_a — a Vector \[green\] labelled "0.167" drawn in chart (start=(0.7, 0.0), end=(0.7, \<VariableNumber p\_a = 0.354\>)); bar\_b — a Vector \[green\] labelled "0.167" drawn in chart (start=(1.7, 0.0), end=(1.7, \<VariableNumber p\_b = 0.175\>)); bar\_c — a Vector \[green\] labelled "0.167" drawn in chart (start=(2.7, 0.0), end=(2.7, \<VariableNumber p\_c = 0.25\>)); bar\_d — a Vector \[green\] labelled "0.167" drawn in chart (start=(3.7, 0.0), end=(3.7, \<VariableNumber p\_d = 0.1\>)); bar\_e — a Vector \[green\] labelled "0.167" drawn in chart (start=(4.7, 0.0), end=(4.7, \<VariableNumber p\_e = 0.067\>)); bar\_f — a Vector \[green\] labelled "0.167" drawn in chart (start=(5.7, 0.0), end=(5.7, \<VariableNumber p\_f = 0.054\>)); trap\_note — a Tex \[text\] that says "$E$ and $F$ link only to each other: a rank sink."; head\_trap — a Heading that says "A Pair That Keeps It All"; edge\_fe — a Vector \[red\] drawn in web (start=(6.9, 1.25), end=(8.2, 3.5), trim\_tip=True)

Actions:
- [08:36.953](https://academa.ai/lectures/pagerank-the-random-surfer?t=516.9530208333332): walker is redrawn as the numbers it depends on change.
- [08:36.953](https://academa.ai/lectures/pagerank-the-random-surfer?t=516.9530208333332): wx ticks to 8.2.
- [08:36.953](https://academa.ai/lectures/pagerank-the-random-surfer?t=516.9530208333332): wy ticks to 3.5.
- [08:38.153](https://academa.ai/lectures/pagerank-the-random-surfer?t=518.1530208333332): walker is redrawn as the numbers it depends on change.
- [08:38.153](https://academa.ai/lectures/pagerank-the-random-surfer?t=518.1530208333332): wx ticks to 6.9.
- [08:38.153](https://academa.ai/lectures/pagerank-the-random-surfer?t=518.1530208333332): wy ticks to 1.25.
- [08:39.353](https://academa.ai/lectures/pagerank-the-random-surfer?t=519.3530208333332): walker is redrawn as the numbers it depends on change.
- [08:39.353](https://academa.ai/lectures/pagerank-the-random-surfer?t=519.3530208333332): wx ticks to 8.2.
- [08:39.353](https://academa.ai/lectures/pagerank-the-random-surfer?t=519.3530208333332): wy ticks to 3.5.
- [08:40.553](https://academa.ai/lectures/pagerank-the-random-surfer?t=520.5530208333332): walker is redrawn as the numbers it depends on change.
- [08:40.553](https://academa.ai/lectures/pagerank-the-random-surfer?t=520.5530208333332): wx ticks to 6.9.
- [08:40.553](https://academa.ai/lectures/pagerank-the-random-surfer?t=520.5530208333332): wy ticks to 1.25.

##### [08:45.368](https://academa.ai/lectures/pagerank-the-random-surfer?t=525.3675208333332)

Narration: And the numbers go the other way. Instead of draining out of the web, everything piles into the pair. After enough steps E and F hold the whole thing between them, and A, B, C and D are all heading for zero.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [08:50.069](https://academa.ai/lectures/pagerank-the-random-surfer?t=530.0690208333333): bar\_a is redrawn as the numbers it depends on change.
- [08:50.069](https://academa.ai/lectures/pagerank-the-random-surfer?t=530.0690208333333): bar\_b is redrawn as the numbers it depends on change.
- [08:50.069](https://academa.ai/lectures/pagerank-the-random-surfer?t=530.0690208333333): bar\_c is redrawn as the numbers it depends on change.
- [08:50.069](https://academa.ai/lectures/pagerank-the-random-surfer?t=530.0690208333333): bar\_d is redrawn as the numbers it depends on change.
- [08:50.069](https://academa.ai/lectures/pagerank-the-random-surfer?t=530.0690208333333): bar\_e is redrawn as the numbers it depends on change.
- [08:50.069](https://academa.ai/lectures/pagerank-the-random-surfer?t=530.0690208333333): bar\_f is redrawn as the numbers it depends on change.
- [08:50.069](https://academa.ai/lectures/pagerank-the-random-surfer?t=530.0690208333333): p\_a ticks to 0.001.
- [08:50.069](https://academa.ai/lectures/pagerank-the-random-surfer?t=530.0690208333333): p\_b ticks to 0.001.
- [08:50.069](https://academa.ai/lectures/pagerank-the-random-surfer?t=530.0690208333333): p\_c ticks to 0.001.
- [08:50.069](https://academa.ai/lectures/pagerank-the-random-surfer?t=530.0690208333333): p\_d ticks to 0.001.
- [08:50.069](https://academa.ai/lectures/pagerank-the-random-surfer?t=530.0690208333333): p\_e ticks to 0.498.
- [08:50.069](https://academa.ai/lectures/pagerank-the-random-surfer?t=530.0690208333333): p\_f ticks to 0.498.

##### [08:58.425](https://academa.ai/lectures/pagerank-the-random-surfer?t=538.4245208333332)

Narration: Two pages that nobody else even links to have taken the entire ranking. And both failures come from the same place: the walk cannot carry on properly. So set the numbers level again, and let's fix it.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [09:8.804](https://academa.ai/lectures/pagerank-the-random-surfer?t=548.8040208333332): bar\_a is redrawn as the numbers it depends on change.
- [09:8.804](https://academa.ai/lectures/pagerank-the-random-surfer?t=548.8040208333332): bar\_b is redrawn as the numbers it depends on change.
- [09:8.804](https://academa.ai/lectures/pagerank-the-random-surfer?t=548.8040208333332): bar\_c is redrawn as the numbers it depends on change.
- [09:8.804](https://academa.ai/lectures/pagerank-the-random-surfer?t=548.8040208333332): bar\_d is redrawn as the numbers it depends on change.
- [09:8.804](https://academa.ai/lectures/pagerank-the-random-surfer?t=548.8040208333332): bar\_e is redrawn as the numbers it depends on change.
- [09:8.804](https://academa.ai/lectures/pagerank-the-random-surfer?t=548.8040208333332): bar\_f is redrawn as the numbers it depends on change.
- [09:8.804](https://academa.ai/lectures/pagerank-the-random-surfer?t=548.8040208333332): p\_a ticks to 0.16666666666666666.
- [09:8.804](https://academa.ai/lectures/pagerank-the-random-surfer?t=548.8040208333332): p\_b ticks to 0.16666666666666666.
- [09:8.804](https://academa.ai/lectures/pagerank-the-random-surfer?t=548.8040208333332): p\_c ticks to 0.16666666666666666.
- [09:8.804](https://academa.ai/lectures/pagerank-the-random-surfer?t=548.8040208333332): p\_d ticks to 0.16666666666666666.
- [09:8.804](https://academa.ai/lectures/pagerank-the-random-surfer?t=548.8040208333332): p\_e ticks to 0.16666666666666666.
- [09:8.804](https://academa.ai/lectures/pagerank-the-random-surfer?t=548.8040208333332): p\_f ticks to 0.16666666666666666.
- [09:11.323](https://academa.ai/lectures/pagerank-the-random-surfer?t=551.3230208333332): bar\_a is hidden from the screen.
- [09:11.323](https://academa.ai/lectures/pagerank-the-random-surfer?t=551.3230208333332): bar\_b is hidden from the screen.
- [09:11.323](https://academa.ai/lectures/pagerank-the-random-surfer?t=551.3230208333332): bar\_c is hidden from the screen.
- [09:11.323](https://academa.ai/lectures/pagerank-the-random-surfer?t=551.3230208333332): bar\_d is hidden from the screen.
- [09:11.323](https://academa.ai/lectures/pagerank-the-random-surfer?t=551.3230208333332): bar\_e is hidden from the screen.
- [09:11.323](https://academa.ai/lectures/pagerank-the-random-surfer?t=551.3230208333332): bar\_f is hidden from the screen.
- [09:11.323](https://academa.ai/lectures/pagerank-the-random-surfer?t=551.3230208333332): tag\_a is hidden from the screen.
- [09:11.323](https://academa.ai/lectures/pagerank-the-random-surfer?t=551.3230208333332): tag\_b is hidden from the screen.
- [09:11.323](https://academa.ai/lectures/pagerank-the-random-surfer?t=551.3230208333332): tag\_c is hidden from the screen.
- [09:11.323](https://academa.ai/lectures/pagerank-the-random-surfer?t=551.3230208333332): tag\_d is hidden from the screen.
- [09:11.323](https://academa.ai/lectures/pagerank-the-random-surfer?t=551.3230208333332): tag\_e is hidden from the screen.
- [09:11.323](https://academa.ai/lectures/pagerank-the-random-surfer?t=551.3230208333332): tag\_f is hidden from the screen.
- [09:11.323](https://academa.ai/lectures/pagerank-the-random-surfer?t=551.3230208333332): baseline is hidden from the screen.
- [09:11.323](https://academa.ai/lectures/pagerank-the-random-surfer?t=551.3230208333332): readout is hidden from the screen.
- [09:11.323](https://academa.ai/lectures/pagerank-the-random-surfer?t=551.3230208333332): chart is hidden from the screen.
- [09:11.323](https://academa.ai/lectures/pagerank-the-random-surfer?t=551.3230208333332): head\_trap is hidden from the screen — left the board.
- [09:11.323](https://academa.ai/lectures/pagerank-the-random-surfer?t=551.3230208333332): trap\_note is hidden from the screen — left the board.

##### [09:12.523](https://academa.ai/lectures/pagerank-the-random-surfer?t=552.5230208333332)

Narration: Both of them have the same one line cure, and it is the nicest idea in the whole algorithm. The surfer gets bored.

Board: web — a Figure (x\_range=(1.6, 9.6), y\_range=(0.2, 7.0), aspect=(8.0, 6.8)); node\_a — a Point \[blue\] labelled "A" drawn in web (location=(3.0, 3.5), marker\_radius=0.15); node\_b — a Point \[blue\] labelled "B" drawn in web (location=(4.3, 5.75), marker\_radius=0.15); node\_c — a Point \[blue\] labelled "C" drawn in web (location=(4.3, 1.25), marker\_radius=0.15); node\_d — a Point \[blue\] labelled "D" drawn in web (location=(6.9, 5.75), marker\_radius=0.15); node\_e — a Point \[blue\] labelled "E" drawn in web (location=(8.2, 3.5), marker\_radius=0.15); node\_f — a Point \[blue\] labelled "F" drawn in web (location=(6.9, 1.25), marker\_radius=0.15); edge\_ab — a Vector \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 5.75), trim\_tip=True); edge\_ac — a CurvedArrow \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 1.25), bend=0.35); edge\_bc — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(4.3, 1.25), trim\_tip=True); edge\_bd — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(6.9, 5.75), trim\_tip=True); edge\_ca — a CurvedArrow \[gray\] drawn in web (start=(4.3, 1.25), end=(3.0, 3.5), bend=0.35); edge\_da — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(3.0, 3.5), trim\_tip=True); edge\_de — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(8.2, 3.5), trim\_tip=True); edge\_ef — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(6.9, 1.25), trim\_tip=True); walker — a Point \[yellow\] drawn in web (location=(\<VariableNumber wx = 3.0\>, \<VariableNumber wy = 3.5\>), marker\_radius=0.09); edge\_fe — a Vector \[red\] drawn in web (start=(6.9, 1.25), end=(8.2, 3.5), trim\_tip=True)

Actions:
- [09:12.523](https://academa.ai/lectures/pagerank-the-random-surfer?t=552.5230208333332): head\_damp is shown on the screen, written out.

##### [09:20.682](https://academa.ai/lectures/pagerank-the-random-surfer?t=560.6815208333333)

Narration: Eighty five times out of a hundred, click a random link, exactly as before. The other fifteen times, stop clicking altogether: type an address straight into the bar, and jump to a page picked uniformly at random from the entire web.

Board: web — a Figure (x\_range=(1.6, 9.6), y\_range=(0.2, 7.0), aspect=(8.0, 6.8)); node\_a — a Point \[blue\] labelled "A" drawn in web (location=(3.0, 3.5), marker\_radius=0.15); node\_b — a Point \[blue\] labelled "B" drawn in web (location=(4.3, 5.75), marker\_radius=0.15); node\_c — a Point \[blue\] labelled "C" drawn in web (location=(4.3, 1.25), marker\_radius=0.15); node\_d — a Point \[blue\] labelled "D" drawn in web (location=(6.9, 5.75), marker\_radius=0.15); node\_e — a Point \[blue\] labelled "E" drawn in web (location=(8.2, 3.5), marker\_radius=0.15); node\_f — a Point \[blue\] labelled "F" drawn in web (location=(6.9, 1.25), marker\_radius=0.15); edge\_ab — a Vector \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 5.75), trim\_tip=True); edge\_ac — a CurvedArrow \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 1.25), bend=0.35); edge\_bc — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(4.3, 1.25), trim\_tip=True); edge\_bd — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(6.9, 5.75), trim\_tip=True); edge\_ca — a CurvedArrow \[gray\] drawn in web (start=(4.3, 1.25), end=(3.0, 3.5), bend=0.35); edge\_da — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(3.0, 3.5), trim\_tip=True); edge\_de — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(8.2, 3.5), trim\_tip=True); edge\_ef — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(6.9, 1.25), trim\_tip=True); walker — a Point \[yellow\] drawn in web (location=(\<VariableNumber wx = 3.0\>, \<VariableNumber wy = 3.5\>), marker\_radius=0.09); edge\_fe — a Vector \[red\] drawn in web (start=(6.9, 1.25), end=(8.2, 3.5), trim\_tip=True); head\_damp — a Heading that says "The Surfer Gets Bored"

Actions:
- [09:20.937](https://academa.ai/lectures/pagerank-the-random-surfer?t=560.9370208333332): teleport\_note is shown on the screen, written out.

##### [09:36.165](https://academa.ai/lectures/pagerank-the-random-surfer?t=576.1650208333333)

Narration: So the update gains a second term. Zero point eight five times H times x, which is the clicking, plus zero point one five over n on every page, which is the jumping. That first constant is the damping factor.

Board: web — a Figure (x\_range=(1.6, 9.6), y\_range=(0.2, 7.0), aspect=(8.0, 6.8)); node\_a — a Point \[blue\] labelled "A" drawn in web (location=(3.0, 3.5), marker\_radius=0.15); node\_b — a Point \[blue\] labelled "B" drawn in web (location=(4.3, 5.75), marker\_radius=0.15); node\_c — a Point \[blue\] labelled "C" drawn in web (location=(4.3, 1.25), marker\_radius=0.15); node\_d — a Point \[blue\] labelled "D" drawn in web (location=(6.9, 5.75), marker\_radius=0.15); node\_e — a Point \[blue\] labelled "E" drawn in web (location=(8.2, 3.5), marker\_radius=0.15); node\_f — a Point \[blue\] labelled "F" drawn in web (location=(6.9, 1.25), marker\_radius=0.15); edge\_ab — a Vector \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 5.75), trim\_tip=True); edge\_ac — a CurvedArrow \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 1.25), bend=0.35); edge\_bc — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(4.3, 1.25), trim\_tip=True); edge\_bd — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(6.9, 5.75), trim\_tip=True); edge\_ca — a CurvedArrow \[gray\] drawn in web (start=(4.3, 1.25), end=(3.0, 3.5), bend=0.35); edge\_da — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(3.0, 3.5), trim\_tip=True); edge\_de — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(8.2, 3.5), trim\_tip=True); edge\_ef — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(6.9, 1.25), trim\_tip=True); walker — a Point \[yellow\] drawn in web (location=(\<VariableNumber wx = 3.0\>, \<VariableNumber wy = 3.5\>), marker\_radius=0.09); edge\_fe — a Vector \[red\] drawn in web (start=(6.9, 1.25), end=(8.2, 3.5), trim\_tip=True); teleport\_note — a Panel that says "With probability $0.85$ the surfer clicks a random link. With probability $0.15$ it stops clicking and jumps to a page chosen uniformly at random. Here $bold(1)$ is the vector of all ones and $n$ is the number of pages."; head\_damp — a Heading that says "The Surfer Gets Bored"

Actions:
- [09:37.802](https://academa.ai/lectures/pagerank-the-random-surfer?t=577.8020208333332): damp\_eq is shown on the screen, written out.
- [09:42.69](https://academa.ai/lectures/pagerank-the-random-surfer?t=582.6900208333333): damp\_eq (the "0.85 thin H x\_k" part) is emphasized.
- [09:47.253](https://academa.ai/lectures/pagerank-the-random-surfer?t=587.2530208333333): damp\_eq (the "0.85 thin H x\_k" part) is no longer emphasized.
- [09:47.253](https://academa.ai/lectures/pagerank-the-random-surfer?t=587.2530208333333): damp\_eq (the "frac(0.15, n) bold(1)" part) is emphasized.
- [09:50.19](https://academa.ai/lectures/pagerank-the-random-surfer?t=590.1900208333333): damp\_eq (the "0.85" part) is indicated — a transient flash.
- [09:50.19](https://academa.ai/lectures/pagerank-the-random-surfer?t=590.1900208333333): damp\_eq (the "frac(0.15, n) bold(1)" part) is no longer emphasized.

##### [09:52.265](https://academa.ai/lectures/pagerank-the-random-surfer?t=592.2650208333332)

Narration: Watch it undo both problems. From a dead end, jumping is the only move there is, so the walk carries on and nothing leaks away. From inside the trap, the surfer escapes fifteen times in a hundred, so it can never be held there forever.

Board: web — a Figure (x\_range=(1.6, 9.6), y\_range=(0.2, 7.0), aspect=(8.0, 6.8)); node\_a — a Point \[blue\] labelled "A" drawn in web (location=(3.0, 3.5), marker\_radius=0.15); node\_b — a Point \[blue\] labelled "B" drawn in web (location=(4.3, 5.75), marker\_radius=0.15); node\_c — a Point \[blue\] labelled "C" drawn in web (location=(4.3, 1.25), marker\_radius=0.15); node\_d — a Point \[blue\] labelled "D" drawn in web (location=(6.9, 5.75), marker\_radius=0.15); node\_e — a Point \[blue\] labelled "E" drawn in web (location=(8.2, 3.5), marker\_radius=0.15); node\_f — a Point \[blue\] labelled "F" drawn in web (location=(6.9, 1.25), marker\_radius=0.15); edge\_ab — a Vector \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 5.75), trim\_tip=True); edge\_ac — a CurvedArrow \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 1.25), bend=0.35); edge\_bc — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(4.3, 1.25), trim\_tip=True); edge\_bd — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(6.9, 5.75), trim\_tip=True); edge\_ca — a CurvedArrow \[gray\] drawn in web (start=(4.3, 1.25), end=(3.0, 3.5), bend=0.35); edge\_da — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(3.0, 3.5), trim\_tip=True); edge\_de — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(8.2, 3.5), trim\_tip=True); edge\_ef — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(6.9, 1.25), trim\_tip=True); walker — a Point \[yellow\] drawn in web (location=(\<VariableNumber wx = 3.0\>, \<VariableNumber wy = 3.5\>), marker\_radius=0.09); edge\_fe — a Vector \[red\] drawn in web (start=(6.9, 1.25), end=(8.2, 3.5), trim\_tip=True); teleport\_note — a Panel that says "With probability $0.85$ the surfer clicks a random link. With probability $0.15$ it stops clicking and jumps to a page chosen uniformly at random. Here $bold(1)$ is the vector of all ones and $n$ is the number of pages."; damp\_eq — a Math \[text\] that says "$x\_(k+1) = 0.85 thin H x\_k + frac(0.15, n) bold(1)$"; head\_damp — a Heading that says "The Surfer Gets Bored"

Actions:
- [09:56.711](https://academa.ai/lectures/pagerank-the-random-surfer?t=596.7110208333332): walker is redrawn as the numbers it depends on change.
- [09:56.711](https://academa.ai/lectures/pagerank-the-random-surfer?t=596.7110208333332): wx ticks to 4.3.
- [09:56.711](https://academa.ai/lectures/pagerank-the-random-surfer?t=596.7110208333332): wy ticks to 1.25.
- [10:3.759](https://academa.ai/lectures/pagerank-the-random-surfer?t=603.7590208333332): walker is redrawn as the numbers it depends on change.
- [10:3.759](https://academa.ai/lectures/pagerank-the-random-surfer?t=603.7590208333332): wx ticks to 3.0.
- [10:3.759](https://academa.ai/lectures/pagerank-the-random-surfer?t=603.7590208333332): wy ticks to 3.5.

##### [10:8.724](https://academa.ai/lectures/pagerank-the-random-surfer?t=608.7240208333333)

Narration: And every page in the web now receives at least zero point one five over n, no matter who links to it. So no rank is ever exactly zero, and the ordering always exists, whatever the link structure happens to look like.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [10:11.023](https://academa.ai/lectures/pagerank-the-random-surfer?t=611.0230208333332): point is shown on the screen, grown.
- [10:13.023](https://academa.ai/lectures/pagerank-the-random-surfer?t=613.0230208333332): point is hidden from the screen.
- [10:13.423](https://academa.ai/lectures/pagerank-the-random-surfer?t=613.4230208333333): point\_2 is shown on the screen, grown.
- [10:15.423](https://academa.ai/lectures/pagerank-the-random-surfer?t=615.4230208333333): point\_2 is hidden from the screen.
- [10:21.728](https://academa.ai/lectures/pagerank-the-random-surfer?t=621.7275208333333): damp\_eq is hidden from the screen — left the board.
- [10:21.728](https://academa.ai/lectures/pagerank-the-random-surfer?t=621.7275208333333): head\_damp is hidden from the screen — left the board.
- [10:21.728](https://academa.ai/lectures/pagerank-the-random-surfer?t=621.7275208333333): teleport\_note is hidden from the screen — left the board.

##### [10:22.328](https://academa.ai/lectures/pagerank-the-random-surfer?t=622.3275208333332)

Narration: So put the original web back, with F pointing at A once more and E linking out again, and run the damped iteration on it.

Board: web — a Figure (x\_range=(1.6, 9.6), y\_range=(0.2, 7.0), aspect=(8.0, 6.8)); node\_a — a Point \[blue\] labelled "A" drawn in web (location=(3.0, 3.5), marker\_radius=0.15); node\_b — a Point \[blue\] labelled "B" drawn in web (location=(4.3, 5.75), marker\_radius=0.15); node\_c — a Point \[blue\] labelled "C" drawn in web (location=(4.3, 1.25), marker\_radius=0.15); node\_d — a Point \[blue\] labelled "D" drawn in web (location=(6.9, 5.75), marker\_radius=0.15); node\_e — a Point \[blue\] labelled "E" drawn in web (location=(8.2, 3.5), marker\_radius=0.15); node\_f — a Point \[blue\] labelled "F" drawn in web (location=(6.9, 1.25), marker\_radius=0.15); edge\_ab — a Vector \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 5.75), trim\_tip=True); edge\_ac — a CurvedArrow \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 1.25), bend=0.35); edge\_bc — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(4.3, 1.25), trim\_tip=True); edge\_bd — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(6.9, 5.75), trim\_tip=True); edge\_ca — a CurvedArrow \[gray\] drawn in web (start=(4.3, 1.25), end=(3.0, 3.5), bend=0.35); edge\_da — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(3.0, 3.5), trim\_tip=True); edge\_de — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(8.2, 3.5), trim\_tip=True); edge\_ef — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(6.9, 1.25), trim\_tip=True); walker — a Point \[yellow\] drawn in web (location=(\<VariableNumber wx = 3.0\>, \<VariableNumber wy = 3.5\>), marker\_radius=0.09); edge\_fe — a Vector \[red\] drawn in web (start=(6.9, 1.25), end=(8.2, 3.5), trim\_tip=True)

Actions:
- [10:22.328](https://academa.ai/lectures/pagerank-the-random-surfer?t=622.3275208333332): head\_final is shown on the screen, written out.
- [10:22.328](https://academa.ai/lectures/pagerank-the-random-surfer?t=622.3275208333332): walker is hidden from the screen.
- [10:25.369](https://academa.ai/lectures/pagerank-the-random-surfer?t=625.3690208333333): edge\_fe is hidden from the screen.
- [10:25.369](https://academa.ai/lectures/pagerank-the-random-surfer?t=625.3690208333333): edge\_fa is shown on the screen, written out.
- [10:27.471](https://academa.ai/lectures/pagerank-the-random-surfer?t=627.4710208333332): edge\_ea is shown on the screen, written out.
- [10:29.224](https://academa.ai/lectures/pagerank-the-random-surfer?t=629.2240208333333): chart is shown on the screen, written out.
- [10:29.224](https://academa.ai/lectures/pagerank-the-random-surfer?t=629.2240208333333): baseline is shown on the screen, written out.
- [10:29.224](https://academa.ai/lectures/pagerank-the-random-surfer?t=629.2240208333333): readout is shown on the screen, written out.
- [10:29.224](https://academa.ai/lectures/pagerank-the-random-surfer?t=629.2240208333333): tag\_a is shown on the screen, written out.
- [10:29.304](https://academa.ai/lectures/pagerank-the-random-surfer?t=629.3040208333333): tag\_b is shown on the screen, written out.
- [10:29.384](https://academa.ai/lectures/pagerank-the-random-surfer?t=629.3840208333332): tag\_c is shown on the screen, written out.
- [10:29.464](https://academa.ai/lectures/pagerank-the-random-surfer?t=629.4640208333333): tag\_d is shown on the screen, written out.
- [10:29.544](https://academa.ai/lectures/pagerank-the-random-surfer?t=629.5440208333332): tag\_e is shown on the screen, written out.
- [10:29.624](https://academa.ai/lectures/pagerank-the-random-surfer?t=629.6240208333332): tag\_f is shown on the screen, written out.
- [10:29.824](https://academa.ai/lectures/pagerank-the-random-surfer?t=629.8240208333333): bar\_a is shown on the screen, written out.
- [10:29.924](https://academa.ai/lectures/pagerank-the-random-surfer?t=629.9240208333333): bar\_b is shown on the screen, written out.
- [10:30.024](https://academa.ai/lectures/pagerank-the-random-surfer?t=630.0240208333332): bar\_c is shown on the screen, written out.
- [10:30.124](https://academa.ai/lectures/pagerank-the-random-surfer?t=630.1240208333332): bar\_d is shown on the screen, written out.
- [10:30.224](https://academa.ai/lectures/pagerank-the-random-surfer?t=630.2240208333333): bar\_e is shown on the screen, written out.
- [10:30.324](https://academa.ai/lectures/pagerank-the-random-surfer?t=630.3240208333333): bar\_f is shown on the screen, written out.

##### [10:31.589](https://academa.ai/lectures/pagerank-the-random-surfer?t=631.5885208333332)

Narration: These are the numbers it settles on. A lands at about zero point three five, C at zero point two five, B at zero point one eight, and then D, E and F at a tenth, seven hundredths and five hundredths.

Board: chart — a Figure (x\_range=(0.0, 6.6), y\_range=(-0.16, 0.56), aspect=(6.6, 3.6)); web — a Figure (x\_range=(1.6, 9.6), y\_range=(0.2, 7.0), aspect=(8.0, 6.8)); node\_a — a Point \[blue\] labelled "A" drawn in web (location=(3.0, 3.5), marker\_radius=0.15); node\_b — a Point \[blue\] labelled "B" drawn in web (location=(4.3, 5.75), marker\_radius=0.15); node\_c — a Point \[blue\] labelled "C" drawn in web (location=(4.3, 1.25), marker\_radius=0.15); node\_d — a Point \[blue\] labelled "D" drawn in web (location=(6.9, 5.75), marker\_radius=0.15); node\_e — a Point \[blue\] labelled "E" drawn in web (location=(8.2, 3.5), marker\_radius=0.15); node\_f — a Point \[blue\] labelled "F" drawn in web (location=(6.9, 1.25), marker\_radius=0.15); edge\_ab — a Vector \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 5.75), trim\_tip=True); edge\_ac — a CurvedArrow \[gray\] drawn in web (start=(3.0, 3.5), end=(4.3, 1.25), bend=0.35); edge\_bc — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(4.3, 1.25), trim\_tip=True); edge\_bd — a Vector \[gray\] drawn in web (start=(4.3, 5.75), end=(6.9, 5.75), trim\_tip=True); edge\_ca — a CurvedArrow \[gray\] drawn in web (start=(4.3, 1.25), end=(3.0, 3.5), bend=0.35); edge\_da — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(3.0, 3.5), trim\_tip=True); edge\_de — a Vector \[gray\] drawn in web (start=(6.9, 5.75), end=(8.2, 3.5), trim\_tip=True); edge\_ea — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(3.0, 3.5), trim\_tip=True); edge\_ef — a Vector \[gray\] drawn in web (start=(8.2, 3.5), end=(6.9, 1.25), trim\_tip=True); edge\_fa — a Vector \[gray\] drawn in web (start=(6.9, 1.25), end=(3.0, 3.5), trim\_tip=True); baseline — a Line \[gray\] drawn in chart (start=(0.15, 0.0), end=(6.45, 0.0)); readout — a Point \[text\] labelled "upright("total") = 1.000" drawn in chart (location=(3.3, 0.5), show\_marker=False); tag\_a — a Math \[text\] that says "$A$" drawn in chart; tag\_b — a Math \[text\] that says "$B$" drawn in chart; tag\_c — a Math \[text\] that says "$C$" drawn in chart; tag\_d — a Math \[text\] that says "$D$" drawn in chart; tag\_e — a Math \[text\] that says "$E$" drawn in chart; tag\_f — a Math \[text\] that says "$F$" drawn in chart; bar\_a — a Vector \[green\] labelled "0.167" drawn in chart (start=(0.7, 0.0), end=(0.7, \<VariableNumber p\_a = 0.354\>)); bar\_b — a Vector \[green\] labelled "0.167" drawn in chart (start=(1.7, 0.0), end=(1.7, \<VariableNumber p\_b = 0.175\>)); bar\_c — a Vector \[green\] labelled "0.167" drawn in chart (start=(2.7, 0.0), end=(2.7, \<VariableNumber p\_c = 0.25\>)); bar\_d — a Vector \[green\] labelled "0.167" drawn in chart (start=(3.7, 0.0), end=(3.7, \<VariableNumber p\_d = 0.1\>)); bar\_e — a Vector \[green\] labelled "0.167" drawn in chart (start=(4.7, 0.0), end=(4.7, \<VariableNumber p\_e = 0.067\>)); bar\_f — a Vector \[green\] labelled "0.167" drawn in chart (start=(5.7, 0.0), end=(5.7, \<VariableNumber p\_f = 0.054\>)); head\_final — a Heading that says "The Ranking, With Damping On"

Actions:
- [10:32.819](https://academa.ai/lectures/pagerank-the-random-surfer?t=632.8190208333333): bar\_a is redrawn as the numbers it depends on change.
- [10:32.819](https://academa.ai/lectures/pagerank-the-random-surfer?t=632.8190208333333): bar\_b is redrawn as the numbers it depends on change.
- [10:32.819](https://academa.ai/lectures/pagerank-the-random-surfer?t=632.8190208333333): bar\_c is redrawn as the numbers it depends on change.
- [10:32.819](https://academa.ai/lectures/pagerank-the-random-surfer?t=632.8190208333333): bar\_d is redrawn as the numbers it depends on change.
- [10:32.819](https://academa.ai/lectures/pagerank-the-random-surfer?t=632.8190208333333): bar\_e is redrawn as the numbers it depends on change.
- [10:32.819](https://academa.ai/lectures/pagerank-the-random-surfer?t=632.8190208333333): bar\_f is redrawn as the numbers it depends on change.
- [10:32.819](https://academa.ai/lectures/pagerank-the-random-surfer?t=632.8190208333333): p\_a ticks to 0.354.
- [10:32.819](https://academa.ai/lectures/pagerank-the-random-surfer?t=632.8190208333333): p\_b ticks to 0.175.
- [10:32.819](https://academa.ai/lectures/pagerank-the-random-surfer?t=632.8190208333333): p\_c ticks to 0.25.
- [10:32.819](https://academa.ai/lectures/pagerank-the-random-surfer?t=632.8190208333333): p\_d ticks to 0.1.
- [10:32.819](https://academa.ai/lectures/pagerank-the-random-surfer?t=632.8190208333333): p\_e ticks to 0.067.
- [10:32.819](https://academa.ai/lectures/pagerank-the-random-surfer?t=632.8190208333333): p\_f ticks to 0.054.
- [10:34.201](https://academa.ai/lectures/pagerank-the-random-surfer?t=634.2010208333332): bar\_a is indicated — a transient flash.
- [10:37.231](https://academa.ai/lectures/pagerank-the-random-surfer?t=637.2310208333333): bar\_c is indicated — a transient flash.
- [10:40.273](https://academa.ai/lectures/pagerank-the-random-surfer?t=640.2730208333332): bar\_b is indicated — a transient flash.
- [10:43.176](https://academa.ai/lectures/pagerank-the-random-surfer?t=643.1760208333333): bar\_d is indicated — a transient flash.
- [10:43.698](https://academa.ai/lectures/pagerank-the-random-surfer?t=643.6980208333333): bar\_e is indicated — a transient flash.
- [10:44.128](https://academa.ai/lectures/pagerank-the-random-surfer?t=644.1280208333333): bar\_f is indicated — a transient flash.

##### [10:48.292](https://academa.ai/lectures/pagerank-the-random-surfer?t=648.2920208333333)

Narration: Same order as the undamped walk gave us, but everything has been pulled a little way towards the flat one sixth. A has given some back, and F has more than doubled. That is the fifteen percent of ignorance mixing itself back in.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [10:55.745](https://academa.ai/lectures/pagerank-the-random-surfer?t=655.7450208333332): bar\_a is indicated — a transient flash.
- [10:58.125](https://academa.ai/lectures/pagerank-the-random-surfer?t=658.1250208333332): bar\_f is indicated — a transient flash.
- [10:59.936](https://academa.ai/lectures/pagerank-the-random-surfer?t=659.9360208333333): readout is indicated — a transient flash.

##### [11:3.706](https://academa.ai/lectures/pagerank-the-random-surfer?t=663.7055208333333)

Narration: So that is PageRank. A link is a vote. A vote is worth the rank of the page casting it, divided between all the links that page casts. And the ranking is the vector that stops changing when you multiply it by the damped link matrix.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): chart is hidden from the screen — left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): baseline is hidden from the screen — chart left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): readout is hidden from the screen — chart left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): tag\_a is hidden from the screen — chart left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): tag\_b is hidden from the screen — chart left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): tag\_c is hidden from the screen — chart left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): tag\_d is hidden from the screen — chart left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): tag\_e is hidden from the screen — chart left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): tag\_f is hidden from the screen — chart left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): bar\_a is hidden from the screen — chart left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): bar\_b is hidden from the screen — chart left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): bar\_c is hidden from the screen — chart left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): bar\_d is hidden from the screen — chart left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): bar\_e is hidden from the screen — chart left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): bar\_f is hidden from the screen — chart left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): head\_final is hidden from the screen — left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): web is hidden from the screen — left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): node\_a is hidden from the screen — web left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): node\_b is hidden from the screen — web left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): node\_c is hidden from the screen — web left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): node\_d is hidden from the screen — web left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): node\_e is hidden from the screen — web left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): node\_f is hidden from the screen — web left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): edge\_ab is hidden from the screen — web left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): edge\_ac is hidden from the screen — web left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): edge\_bc is hidden from the screen — web left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): edge\_bd is hidden from the screen — web left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): edge\_ca is hidden from the screen — web left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): edge\_da is hidden from the screen — web left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): edge\_de is hidden from the screen — web left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): edge\_ea is hidden from the screen — web left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): edge\_ef is hidden from the screen — web left the board.
- [11:19.753](https://academa.ai/lectures/pagerank-the-random-surfer?t=679.7532916666665): edge\_fa is hidden from the screen — web left the board.
