The matrix that is a graph

A ranking whose order is not determined

Of the fourteen adjacent comparisons in a top-fifteen, fourteen survive perturbing the arithmetic at the rounding level, eleven survive moving the teleportation parameter across its usual range, and three survive removing one link. The computation is the strongest part of the answer.

Worth reading first: A ranking that is an eigenvector · The exact answer to a nearby problem · Choosing without knowing.

Nobody reads a stationary distribution. What is read is the order — which page is first, which is second, which made the top ten — and an order is a set of pairwise comparisons rather than a vector of numbers.

That changes what “accurate” means. Two entries differing by 10⁻⁸ are ordered by digits far below anything else in the pipeline, and no amount of iterating settles a comparison the data does not settle. So the question worth asking is not how accurate the entries are; it is how many of the comparisons are decided by the problem, and by which part of it.

14 of 14 places survive the arithmetic and 3 survive one missing linkThe top 15 of a PageRank ranking on an eighty-page link graph, and how many of its 14 adjacent comparisons keep their order under three kinds of doubt. Perturbing the teleport vector at the rounding level moves every entry by at most 4.05·10⁻¹¹ and settles 14 of them. Moving α across the range everybody uses moves entries by 0.00123 and settles 11. Removing a single arc — one link that might or might not have been crawled — moves entries by 0.00443 and settles 3. The gaps between consecutive entries run from 6.28·10⁻⁵ to 0.00241, so the ordering is decided by the data at a scale ten orders above anything the arithmetic does. This is the one field on the site where the computation is not the weakest part of the answer.places settled, of 14the arithmetic14 of 14one missing link3 of 14α from 0.80 to 0.9011 of 14entries move by 4.05·10⁻¹¹entries move by 0.00443entries move by 0.00123three kinds of doubtcomparisons14smallest gap6.3·10⁻⁵largest gap0.0024arithmetic band4.1·10⁻¹¹one-link band0.0044α band0.0012the arithmetic settles nearly all of themthe data settles three
Fig. 1 The fourteen adjacent comparisons in a top-fifteen, and how many of them keep their order under three kinds of doubt. The arithmetic settles all of them; one missing link settles three.

Three kinds of doubt, measured on one graph

An eighty-page link graph with six dead ends, PageRank at α = 0.85, top fifteen. Fourteen adjacent comparisons. Each source of doubt is applied ten times and a comparison counts as settled if it never reverses:

source of doubt                     entries move by     comparisons settled
the arithmetic (teleport ±10⁻¹⁰)      4.1·10⁻¹¹            14 of 14
α across 0.80 to 0.90                 1.2·10⁻³            11 of 14
one arc removed                       4.4·10⁻³             3 of 14

The gaps between consecutive entries in that top fifteen run from 6.3·10⁻⁵ to 2.3·10⁻³.

Nothing the arithmetic does comes within seven orders of magnitude of the smallest gap. One missing link moves entries by seventy times the smallest gap and reorders eleven of the fourteen places.

This is the opposite of the site’s usual finding

It is worth stopping on how unusual that is here.

Almost every essay in this collection finds that the computation is the fragile part: a Gram–Schmidt that loses orthogonality, a normal-equations route that squares a condition number, a rank that depends on the thread count, twenty-one answers from one program. The recurring lesson is that the algebra is exact and the arithmetic is not, and the difference is measurable and often large.

Here the difference is measurable and negligible. The computation is backward stable, the problem is well conditioned — 1/(1 − α) is about seven at the usual parameter — and the answer’s entries are settled to eleven digits. Every place in the leaderboard survives it.

What does not survive is the data, and the reason is the shape of the answer rather than the quality of the computation. A ranking’s adjacent gaps are small by construction: entries that are close in value are close in rank, and any list of length k has k − 1 comparisons of which the smallest is very small. So a ranking amplifies whatever uncertainty is in its input into a discrete disagreement, and the input’s uncertainty is not a rounding.

The one-link perturbation deserves precision, because it is the honest model of what a link graph is.

A crawl is a sample. A page’s outgoing links are whatever was on it when it was fetched, which may be weeks old; a link may have been added, removed, or missed by a parser; a redirect may or may not have been followed. Removing a single arc from an eighty-page graph is a small version of that — one link in two hundred and fifty-three — and it moves the answer by 4.4·10⁻³, seventy times the smallest gap in the top fifteen.

That is not a criticism of PageRank. It is a statement about the conditioning of a ranking with respect to its input, and the number to compare it against is the backward error of the crawl rather than the backward error of the arithmetic. The machine field’s reframing applies directly: the variation a computation commits is equivalent to a perturbation of the data of a certain size, and the useful question is how that size compares with the data’s own uncertainty. Here the arithmetic’s equivalent perturbation is 10⁻¹¹ and the data’s is 10⁻² — nine orders apart.

Which places, and not just how many

The count hides something the per-position table shows plainly: the comparisons that survive are not the ones with the largest gaps.

place   gap        reversals under one link   under α
 1      1.13·10⁻³            1                   0
 2      3.14·10⁻⁴            1                   0
 3      2.29·10⁻³            0                   0
 4      2.41·10⁻³            0                   0
 5      1.21·10⁻⁴            4                   1
 6      4.26·10⁻⁴            3                   0
 9      1.09·10⁻³            0                   0
10      6.28·10⁻⁵            3                   1
14      9.01·10⁻⁵            5                   0

Places three, four and nine survive; places one and two do not, although their gaps are larger than place fourteen’s, which also does not. The correlation between gap and survival is real and it is weak.

The reason is that a perturbation is not isotropic. Removing an arc does not move every entry by the same amount; it moves the pages near that arc a great deal and the rest hardly at all. So a comparison between two pages that both depend on the removed link can reverse even with a large gap, and a comparison between two pages far from it survives a small one.

That has a practical consequence. A determinacy cut cannot be computed from the gaps alone. It needs the perturbation actually applied, because which places move depends on where in the graph the uncertainty is. Estimating it from a gap threshold — the obvious cheap approach — gets places one and two wrong in the table above.

The parameter sits between them

α is the middle row and that is the interesting part of the table.

Moving it from 0.80 to 0.90 — a range nobody would argue about, and narrower than the range in actual use — moves entries by 1.2·10⁻³ and reorders three of the fourteen places. So the choice of teleportation parameter is worth more than the entire arithmetic by eight orders of magnitude, and less than one uncrawled link by a factor of four.

That ordering is the practical content of this essay. A team worried about the reproducibility of a ranking should worry about the crawl first, the parameter second, and the arithmetic not at all — and the usual allocation of attention is the reverse, because the arithmetic is the part that is visible in the code.

23 of 23 places survive the arithmetic and 4 survive one missing linkThe top 24 of a PageRank ranking on an eighty-page link graph, and how many of its 23 adjacent comparisons keep their order under three kinds of doubt. Perturbing the teleport vector at the rounding level moves every entry by at most 4.05·10⁻¹¹ and settles 23 of them. Moving α across the range everybody uses moves entries by 0.00123 and settles 15. Removing a single arc — one link that might or might not have been crawled — moves entries by 0.00443 and settles 4. The gaps between consecutive entries run from 3.78·10⁻⁶ to 0.00241, so the ordering is decided by the data at a scale ten orders above anything the arithmetic does. This is the one field on the site where the computation is not the weakest part of the answer.places settled, of 23the arithmetic23 of 23one missing link4 of 23α from 0.80 to 0.9015 of 23entries move by 4.05·10⁻¹¹entries move by 0.00443entries move by 0.00123three kinds of doubtcomparisons23smallest gap3.8·10⁻⁶largest gap0.0024arithmetic band4.1·10⁻¹¹one-link band0.0044α band0.0012the arithmetic settles nearly all of themthe data settles three
Fig. 2 A longer leaderboard, where the gaps are smaller and fewer of the places are settled by anything.

Further down, less is settled

Reading twenty-four places instead of fifteen does not add nine more settled comparisons; it adds nine more comparisons, most of which nothing settles.

The reason is that the gaps shrink as the list is read down. The top two or three entries are separated by an order of magnitude and nothing moves them. Places ten to twenty are separated by less than one link’s worth of doubt, and their order is decided by whichever version of the crawl was used.

So a ranking is not uniformly determined — its top is and its middle is not — and publishing it as a numbered list says otherwise. The honest presentation is a list with a cut in it: these places are determined, and below this line the order is not a property of the data.

That is exactly the presentation this site argues for elsewhere. Rank is a decision makes the case for printing the gap beside the integer; an estimate that can be fooled makes it for printing the spread beside the estimate. A leaderboard with a determinacy cut in it is the same move.

How to compute the cut

It costs a small multiple of one PageRank run and needs no theory.

Run the computation several times with the input perturbed the way the input is actually uncertain — arcs dropped at the rate the crawl misses them, or two crawls a week apart. Record, for each adjacent pair in the region of interest, whether the order ever reverses. The first pair that reverses is the cut.

The three-column table above is that procedure with three different perturbations, and the only judgement in it is what perturbation to apply. That judgement is the modelling question, and it is the one worth arguing about — an arc dropped uniformly at random is a crude model of a crawl’s error, and a better one would drop arcs from pages that were fetched longest ago.

What is not worth arguing about is the arithmetic’s contribution, which is measurable, is 4.1·10⁻¹¹, and can be reported once and then ignored.

It does not improve with size

A reasonable hope is that this is a small-graph effect: eighty pages is not a web, the gaps are large in relative terms, and a real graph with billions of entries would concentrate its top so sharply that one link could not move it.

The measurement goes the other way.

pages   arcs   settled by arithmetic   by one link   by α   smallest gap
 40     113          14 of 14              4           10     3.7·10⁻⁴
 80     237          14 of 14              3           11     6.3·10⁻⁵
160     441          14 of 14              3            8     4.1·10⁻⁵

The arithmetic settles everything at every size, as it must — its equivalent perturbation is 10⁻¹¹ and the gaps shrink much more slowly than that. What one link settles does not improve, and what α settles gets worse, from ten of fourteen to eight.

The mechanism is the one above. Growing the graph shrinks the gaps in the top fifteen, because there are more pages competing for those places, and it shrinks the effect of one link roughly in proportion — one arc of 441 matters less than one of 113. The two effects nearly cancel, and neither of them helps the parameter, whose contribution is a fixed relative change to the whole vector.

So a bigger crawl does not buy a more determined leaderboard. It buys a longer one with the same number of settled places at the top, which is worth knowing before an engineering effort is spent on the crawl’s size rather than on its freshness.

The one thing the arithmetic can still ruin

There is a way to lose the eleven digits, and it is the stopping test.

The power iteration’s change between iterates underestimates the remaining error by 1/(1 − α), which at α = 0.85 is about seven and at α = 0.99 is a hundred. A run stopped when the change falls below 10⁻⁸ at α = 0.99 is 10⁻⁶ from the answer — which is larger than every gap in the top fifteen above, and would reorder the whole list.

So the arithmetic is negligible provided the iteration was actually converged, and whether it was is not something the stopping test reports. That is the one number from this field’s earlier essays that a ranking pipeline genuinely needs: convert the change to an error before comparing it against a tolerance, and the conversion is one division by 1 − α.

What a determinacy cut looks like in an output

It is worth being concrete about the deliverable, because “report the uncertainty” is easy to agree with and easy to skip.

The output of the procedure above is a list with a horizontal rule in it. Above the rule, the places are a property of the data: they survived every perturbation applied. Below it, the entries are ordered because a sort has to order them, and the order is not information.

Two details make the difference between that being useful and being decorative.

The rule’s position depends on the perturbation, so the perturbation has to be named. “Determined against one dropped link” and “determined against two crawls a week apart” are different statements, and a rule with no caption is an assertion about robustness in general, which nothing supports.

And the entries below the rule should still be shown. Truncating the list at the cut throws away the information that these pages are in the top fifty and merely not orderable within it, which is usually the useful statement. The failure mode to avoid is a list that looks precise, not a list that is short.

This is the same presentation the rank essays argue for: print the integer and print the gap beside it, so that a reader can see whether the integer was read off or decided. A leaderboard with a determinacy cut is that, applied to fourteen comparisons instead of one.

What this says about the field

The graph field’s characteristic shape is that the answer is discrete, so an error has no continuum to be small in. This essay is the case where that shape produces a reassuring result rather than an alarming one.

The discreteness is still there — a reordered pair is a different answer, not a slightly wrong one — and the amplification is still there, because adjacent gaps in a ranking are small by construction. What is different is where the perturbation comes from. In the partition essays the graph was exact and the perturbation was the arithmetic’s, so the answer was decided by rounding. Here the graph is a sample and the perturbation is the sample’s, so the answer is decided by the data — which is the situation anybody would prefer, because a sample can be improved and a rounding cannot.

The general statement, and it is worth carrying past this field: when an answer is a discrete function of a continuous computation, ask what the computation’s variation is equivalent to as a perturbation of the data, and compare it against the data’s own uncertainty. If it is smaller, the computation is not the problem. Here it is smaller by nine orders, and saying so is more useful than another digit of accuracy would be.

The comparison the site has a name for

There is one more way to read the table, and it is the reading the machine field supplies.

That field’s actionable measurement is: the run-to-run variation a machine commits is equivalent to a perturbation of the data of a stated size, so a regression tolerance can be chosen — larger than the machine’s equivalent perturbation, smaller than the smallest defect worth catching, and the window between them is a factor of 1.42 on the problem measured there.

The same arithmetic applies here and the window is enormous. The arithmetic’s equivalent perturbation is 4.1·10⁻¹¹ in the entries. One link’s is 4.4·10⁻³. The window is a factor of 10⁸, which means a test that asks whether two runs of the ranking pipeline agree can be set at almost any tolerance in eight orders of magnitude and will pass on correct work while catching any change to the crawl.

That is an unusually comfortable position and it is worth saying so, because the rest of this essay is about a fragility. The ranking is fragile with respect to its input and completely robust with respect to its implementation, and those two facts together make the regression testing of a ranking pipeline easy while making the interpretation of its middle places impossible.

At other settings

5 of 5 places survive the arithmetic and 2 survive one missing linkThe top 6 of a PageRank ranking on an eighty-page link graph, and how many of its 5 adjacent comparisons keep their order under three kinds of doubt. Perturbing the teleport vector at the rounding level moves every entry by at most 4.05·10⁻¹¹ and settles 5 of them. Moving α across the range everybody uses moves entries by 0.00123 and settles 4. Removing a single arc — one link that might or might not have been crawled — moves entries by 0.00443 and settles 2. The gaps between consecutive entries run from 1.21·10⁻⁴ to 0.00241, so the ordering is decided by the data at a scale ten orders above anything the arithmetic does. This is the one field on the site where the computation is not the weakest part of the answer.places settled, of 5the arithmetic5 of 5one missing link2 of 5α from 0.80 to 0.904 of 5entries move by 4.05·10⁻¹¹entries move by 0.00443entries move by 0.00123three kinds of doubtcomparisons5smallest gap1.2·10⁻⁴largest gap0.0024arithmetic band4.1·10⁻¹¹one-link band0.0044α band0.0012the arithmetic settles nearly all of themthe data settles three
Fig. 3 The top six, where the gaps are largest and nearly everything is settled.
9 of 9 places survive the arithmetic and 3 survive one missing linkThe top 10 of a PageRank ranking on an eighty-page link graph, and how many of its 9 adjacent comparisons keep their order under three kinds of doubt. Perturbing the teleport vector at the rounding level moves every entry by at most 4.05·10⁻¹¹ and settles 9 of them. Moving α across the range everybody uses moves entries by 0.00123 and settles 8. Removing a single arc — one link that might or might not have been crawled — moves entries by 0.00443 and settles 3. The gaps between consecutive entries run from 1.21·10⁻⁴ to 0.00241, so the ordering is decided by the data at a scale ten orders above anything the arithmetic does. This is the one field on the site where the computation is not the weakest part of the answer.places settled, of 9the arithmetic9 of 9one missing link3 of 9α from 0.80 to 0.908 of 9entries move by 4.05·10⁻¹¹entries move by 0.00443entries move by 0.00123three kinds of doubtcomparisons9smallest gap1.2·10⁻⁴largest gap0.0024arithmetic band4.1·10⁻¹¹one-link band0.0044α band0.0012the arithmetic settles nearly all of themthe data settles three
Fig. 4 The top ten, where one link still reorders most of the middle.
19 of 19 places survive the arithmetic and 3 survive one missing linkThe top 20 of a PageRank ranking on an eighty-page link graph, and how many of its 19 adjacent comparisons keep their order under three kinds of doubt. Perturbing the teleport vector at the rounding level moves every entry by at most 4.05·10⁻¹¹ and settles 19 of them. Moving α across the range everybody uses moves entries by 0.00123 and settles 13. Removing a single arc — one link that might or might not have been crawled — moves entries by 0.00443 and settles 3. The gaps between consecutive entries run from 3.78·10⁻⁶ to 0.00241, so the ordering is decided by the data at a scale ten orders above anything the arithmetic does. This is the one field on the site where the computation is not the weakest part of the answer.places settled, of 19the arithmetic19 of 19one missing link3 of 19α from 0.80 to 0.9013 of 19entries move by 4.05·10⁻¹¹entries move by 0.00443entries move by 0.00123three kinds of doubtcomparisons19smallest gap3.8·10⁻⁶largest gap0.0024arithmetic band4.1·10⁻¹¹one-link band0.0044α band0.0012the arithmetic settles nearly all of themthe data settles three
Fig. 5 Twenty places, where the gaps have shrunk and the parameter starts to matter more.
Contracting by 0.7668 where the folk rate says 0.85The PageRank power iteration on a connected fifty-vertex graph, at α = 0.85, plotted as the change between successive iterates. The upper dashed line is αᵏ, the rate every account of the method quotes. The lower one is (α·λ₂(P))ᵏ, which is what the second eigenvalue of the Google matrix actually is: λ₂(P) = 0.90238 here. The measured contraction over the run is 0.76683. The two agree exactly when λ₂(P) = 1, which happens exactly when the link graph has more than one closed communicating class — which every real one does, and which is why a statement that is false of connected graphs has never been noticed to be. The answer is checked against one elimination of I − αP̃, which agrees to 1.04·10⁻¹⁶.01428425670849810⁻¹⁶10⁻¹⁴10⁻¹²10⁻¹⁰10⁻⁸10⁻⁶10⁻⁴10⁻²iterationchange between iteratestwo rates, one curveα0.85λ₂(P)0.9predicted rate0.77measured0.77iterations108against the solve10⁻¹⁶the upper dashed line is αᵏthe curve is on the other one
Fig. 6 The iteration that produced the ranking, with the two rates it might have.
Contracting by 0.8933 where the folk rate says 0.99The PageRank power iteration on a connected fifty-vertex graph, at α = 0.99, plotted as the change between successive iterates. The upper dashed line is αᵏ, the rate every account of the method quotes. The lower one is (α·λ₂(P))ᵏ, which is what the second eigenvalue of the Google matrix actually is: λ₂(P) = 0.90238 here. The measured contraction over the run is 0.89332. The two agree exactly when λ₂(P) = 1, which happens exactly when the link graph has more than one closed communicating class — which every real one does, and which is why a statement that is false of connected graphs has never been noticed to be. The answer is checked against one elimination of I − αP̃, which agrees to 2.84·10⁻¹⁶.032649612816019222410⁻¹⁶10⁻¹⁴10⁻¹²10⁻¹⁰10⁻⁸10⁻⁶10⁻⁴10⁻²iterationchange between iteratestwo rates, one curveα0.99λ₂(P)0.9predicted rate0.89measured0.89iterations253against the solve2.8·10⁻¹⁶the upper dashed line is αᵏthe curve is on the other one
Fig. 7 At α = 0.99, where the stopping test underestimates the error by a hundred.
4 entries of a strictly positive vector are negativeThe Perron eigenvector of a twelve-vertex clique with a tail of 24, normalised to its largest entry, plotted as absolute values on a logarithmic axis. Perron–Frobenius says every entry of this vector is strictly positive, and it is a theorem about a connected nonnegative matrix rather than a statement about a good day. Each step along the tail divides the entry by about the Perron root 11.0077, so the entries fall by a decade a step and reach the rounding level after sixteen. Beyond it 4 of them are negative — the smallest at -1.507·10⁻²⁰ — and they are drawn as open circles. The bracket printed beside it is Collatz–Wielandt: for any strictly positive x, the Perron root lies between the smallest and largest of (Ax)ᵢ/xᵢ, so it is a two-sided bound that is proved, from one product, and after forty steps it is 1.2·10⁻⁴ wide.1611162126313610⁻²²10⁻¹⁹10⁻¹⁶10⁻¹³10⁻¹⁰10⁻⁷10⁻⁴10⁻¹vertex, clique first then tail|entry| relative to the largestone rounding of the largest entrya bound that is provedPerron root11bracket, low11bracket, high11bracket width1.2·10⁻⁴smallest entry-1.5·10⁻²⁰entries below zero4every entry is positiveand the picture disagrees
Fig. 8 The vector the ranking is read from, where its smallest entries are noise.
122 steps to forget where it started, and λ₂ said 131A random walk on a sixty-vertex graph with two blocks joined at a density of 0.03, started at one vertex, measured as the total variation distance from its stationary distribution. It reaches 10⁻⁶ after 122 steps. The dashed line is |λ₂|ᵏ with λ₂ = 0.900071 from the walk matrix, and the number of steps that predicts is 131. The distance is not the eigenvalue: for the first several steps the walk is leaving one block and the decay is faster than the asymptote, and the two curves become parallel only once the slowest mode is all that is left. The eigenvalue is a rate, not a schedule, and the difference between them is 9.22 steps.0173451688510211910⁻⁶10⁻⁵10⁻⁴10⁻³10⁻²10⁻¹1steps of the walkdistance from stationarya rate read as a timeλ₂ of the walk0.9steps measured122steps predicted131ratio0.93the dashed line is the eigenvaluethe curve is the walk
Fig. 9 The rate at which the iteration approaches the vector being ranked.
The smallest defect a regression test can catch, on a machine that will not repeat itselfA 150 × 150 system with κ = 10⁴, solved by conjugate gradients to 10⁻¹⁰ on six partitionings. The shaded band is how far the answer moves across those six when nothing at all is wrong: 3.24·10⁻¹², relative. Each pair of dots is one defect — a single entry of the matrix changed by a relative δ, an assembly slip or a stale coefficient — solved on the same six machines, showing its nearest and furthest run. A defect is catchable only when its nearest run clears the band, because a test whose threshold sits inside the band fails a correct build. Everything at or below 10⁻¹³ overlaps and is invisible; 10⁻¹² is the smallest that separates, at 4.61·10⁻¹². So the tolerance exists, it is bracketed between 3.24·10⁻¹² and 4.61·10⁻¹² — a factor of 1.42 — and it is neither zero nor the 10⁻⁸ that usually gets typed.-15-13-11-910⁻¹³10⁻¹¹10⁻⁹10⁻⁷log₁₀ of the defect, relative to the entry it sits inhow far the answer movedthe machine, on its owna tolerance with two sidesmachine band3.2·10⁻¹²smallest caught10⁻¹²its nearest run4.6·10⁻¹²defects hidden3window, factor1.4below the band nothing is visibleand above it everything is
Fig. 10 The machine field’s version of this measurement, where a tolerance is chosen between two bands.
The backward error of a hierarchical solve, against the error of the representation it usedSolve A_H x = b exactly and the residual against the matrix that was wanted is b − Ax = (A_H − A)x, so ‖b − Ax‖ ⁄ ‖A‖‖x‖ cannot be anything but the representation's own error. Measured across six accuracies spanning ten decades, the two track at a slope of 0.994 and sit a constant 6.7× apart, which is the difference between a norm of a matrix and a norm of that matrix applied to one vector. The reading is the one this field is built on: the accuracy knob is not an accuracy, it is a backward error chosen in advance. Everywhere else on this site a backward error is something an algorithm produced and somebody then measured; here it is a line in the program, and its size is known before the solve starts.10⁻¹⁵10⁻¹²10⁻⁹10⁻⁶10⁻³10⁻¹⁵10⁻¹²10⁻⁹10⁻⁶10⁻³‖A − A_H‖ ⁄ ‖A‖, the representation‖b − Ax‖ ⁄ ‖A‖‖x‖, the solveequala backward error, chosenslope0.99representation at 10⁻⁸1.2·10⁻⁹backward error there1.3·10⁻¹⁰representation at 10⁻¹²1.2·10⁻¹³backward error there2.5·10⁻¹⁴the compression is not an approximationit is a perturbation of the problem
Fig. 11 A backward error chosen rather than incurred, which a crawl’s uncertainty is.
Backward error with and without the structure, for Levinson and for elimination, n = 12Both solvers are backward stable on this family by the usual measure: the smallest perturbation of any kind that explains either answer stays below 3.1·10⁻¹⁷ at every ρ, and the two curves are indistinguishable. Insisting the perturbation be a symmetric Toeplitz matrix — the kind of object the problem was posed with — lifts both by orders, and at ρ = 0.999 Levinson's rises by a factor of 2.48·10⁶. Neither number is alarming in absolute terms; what is worth carrying is that the reassuring one is the one that is reported, and the two are not measuring the same thing.10⁻³10⁻²10⁻¹110⁻¹⁹10⁻¹⁷10⁻¹⁵10⁻¹³10⁻¹¹10⁻⁹1 − ρbackward errorLevinson, Toeplitzelimination, ToeplitzLevinson, any kindelimination, any kindat ρ = 0.999Levinson, any perturbation3.1·10⁻¹⁷Levinson, Toeplitz only7.6·10⁻¹¹the ratio between them2.5·10⁶diagonal defect of the first0.97the number that is reportedand the number that is asked about
Fig. 12 A backward error measured against a structure rather than against a matrix.
Backward and forward error against the condition numberA log–log plot over twelve decades of condition number. The backward error is a flat line at ten to the minus sixteen; the forward error rises in proportion to the condition number.110²10⁴10⁶10⁸10¹⁰10¹²10¹⁴10⁻¹⁷10⁻¹⁴10⁻¹¹10⁻⁸10⁻⁵10⁻²10¹condition number κ(A)relative errorforward errorbackward errorpredicted: κ · u8×8, 20 seeds per κ; dashed is the worstthe problem worsens, not the method
Fig. 13 The two errors, of which this essay measures a third thing entirely.
How much a perturbation of the right-hand side is amplified, κ = 10⁶The cumulative distribution of the amplification factor over two hundred random perturbation directions, with the condition number marked as the upper limit.110¹10²10³10⁴10⁵10⁶10⁷00.250.50.751amplification of the input perturbationfraction of directions at or belowκ = 10·10⁵worst found 7.6·10⁵6×6, 200 directionsmedian reaches 0.29 of κ
Fig. 14 The amplifier belonging to the problem, which for a ranking is the reciprocal of a gap.
Singular values of a rank-4 matrix with noise of relative size 10⁻⁸Ten singular values on a logarithmic axis. The first four sit near one; the rest sit at the noise level, and the vertical distance between the two groups is the evidence for the rank.1234567891010⁻¹⁸10⁻¹⁵10⁻¹²10⁻⁹10⁻⁶10⁻³1indexsingular valuecutoff, σ₁ · 10⁻¹⁰numerical rank 10gap 8.2·10⁶an opiniontrue rank 410×10, built with 4 nonzero valuesrank is a decision
Fig. 15 A threshold deciding an integer, with the gap printed beside it.
A randomised rank-k solve, 4 seeds a rankRelative error against the rank kept, on a logarithmic vertical axis, with a vertical bar at each rank spanning the seeds. The band is 1.68 wide at rank 8, where the method is at its worst, and 1.004 wide at rank 20, where it is at its best. The same computation on the same data returns a different answer each time.0481216202428321rank keptrelative errormedianthe answer movesspread at rank 81.7spread at rank 201best median error0.15widest where the method is worstand the bound does not say so
Fig. 16 A rank reported as a band rather than as a number, which a leaderboard should be.
How close Hager's estimate is to the true κ₁, over 200 seeded 8×8 matricesFive bars. The estimate is exactly the true condition number on 81% of the sample and inside ten per cent on 87%; the worst underestimate in the whole sample returns 38% of the truth. The last bar is the matrix built to defeat it, at 7.7%, well below anything the random sample reached.each bar is a percentage — of the sample, or of the true condition numberexactly right80.5%inside 10%87.0%inside a factor of 287.0%worst in the sample, ×10037.7%the constructed matrix, ×1007.7%usually exactexact share0.81worst of the sample0.38the constructed matrix0.077a routine that is right most of the timeand never wrong in the safe direction
Fig. 17 An estimate reported with its spread.
The same 4096 numbers, added up 26 ways, 21 different answersEach dot is one reduction of one vector of 4096 binary64 numbers whose summation condition number is 1.01·10⁸: the vector is cut into p contiguous pieces, each piece summed left to right, and the pieces combined in a tree. The vertical position is the distance from the exactly rounded sum, relative. Filled dots are the static split a fixed thread count gives; open dots are unequal splits, which is what a work-stealing scheduler produces at the same p. 21 of the 26 runs returned distinct values, spanning 1.55·10⁻¹³ — 2.3·10⁷ ulps of the answer. The dashed line is the classical bound γ₍ₙ₋₁₎Σ|xᵢ|, which every one of them satisfies with 2.58·10⁴ to spare, and which is the same number for all of them: it contains n and Σ|xᵢ| and nothing about the order.110¹10⁻¹¹10⁻⁸10⁻⁵pieces the vector was divided intodistance from the exact sum, relativethe published boundκ · uone vector, one algorithmdistinct answers21runs26spread, in ulps2.3·10⁷κ of the sum10⁸bound ÷ worst error2.6·10⁴nobody chose pand no answer is the answer
Fig. 18 Twenty-one answers from one program, which is what the arithmetic does when it does matter.
One system, one tolerance, and 11 different amounts of workConjugate gradients on a 200 × 200 symmetric positive definite matrix with κ = 10⁴, stopped when the relative residual falls below 10⁻¹⁰, run at each of 13 partition counts. The only thing that differs between the runs is how many pieces the two global inner products were summed in — which on a real machine is the number of workers. Iteration counts run from 674 to 690, 11 of them distinct, a spread of 2.4% of the work. Every run converged and every answer is right to the accuracy asked for; the forward errors span 6.31·10⁻¹¹ to 1.08·10⁻¹⁰, a factor of 1.72. What differs is not a digit at the end of an answer — it is the bill, and it is an integer.110¹670673676679682685688691694pieces the inner products were summed initerations to the tolerance674, the cheapest run690, the dearestthe same solve, pricedpartitionings run13distinct counts11spread, per cent2.4best forward error6.3·10⁻¹¹worst1.1·10⁻¹⁰one matrix, one toleranceand the cost is the machine's
Fig. 19 One solve with thirteen bills, in the field about answers that are not unique.
The accuracy asked for, against the accuracy obtained, for two kernels on one partitionε is applied to each block against that block's own largest singular value; the error is then reported against the whole matrix's norm. The two are not the same number and the dashed diagonal is where they would be. For 1/r the obtained error is 29 times smaller than the tolerance asked for; for log r on the identical partition it is 13 times smaller. Both curves are straight and parallel to the diagonal, so the knob does what a knob should — a decade in buys a decade out — and neither of them sits on it. The factor is how much of the matrix's mass lives off the diagonal, which is a property of the kernel; it is not the number of blocks, which is 112 and would put the curves on the other side of the diagonal.10⁻¹³10⁻¹⁰10⁻⁷10⁻⁴10⁻¹10⁻¹⁵10⁻¹²10⁻⁹10⁻⁶10⁻³ε asked for, per block‖A − A_H‖ ⁄ ‖A‖ obtainedasked = obtainedlog r1 ⁄ rtwo numbers, not one1/r, obtained at 10⁻⁸3.4·10⁻¹⁰log r, obtained at 10⁻⁸7.8·10⁻¹⁰1/r, obtained ⁄ asked0.034log r, obtained ⁄ asked0.078blocks in the partition112the tolerance is per blockand the error is per matrix
Fig. 20 A tolerance asked for against one obtained.
What the solver reported, and what it achievedFinal relative residual and final relative error against the working precision, on a logarithmic vertical axis. The residual sits at the stopping tolerance at every precision — the method converged, by every test available to it. The error runs from 1.4·10⁻¹³ at 53 bits to 0.00597 at 8, tracking the unit roundoff, which is drawn beside it.614223038465410⁻¹³10⁻¹⁰10⁻⁷10⁻⁴working significand bitsrelative sizeerrorresidualuthe gap the solver cannot seeerror ÷ residual at 24 bits1.5·10⁶error ÷ residual at 16 bits2.3·10⁷error ÷ residual at 8 bits2.4·10¹⁰every convergence test passesand the answer is wrong in proportion to u
Fig. 21 A residual that says nothing about the error.
One graph, nudged by 10⁻¹², and 3 different partitionsThree seven-vertex cliques joined in a triangle by three single edges, one of whose conductances is raised by 0. When all three are equal the graph has a three-fold symmetry, λ₂ and λ₃ coincide — measured here at a gap of 1.72·10⁻¹⁵ — and there is no Fiedler vector: there is a plane, and every unit vector in it is an exact eigenvector. Eight runs on this graph with its edge weights nudged by a relative 10⁻¹² — four orders above the rounding, and far below anything anybody would call a difference in the data — return 3 distinct partitions, at conductances 0.0455. All of them are correct answers to the relaxation, and on a symmetric graph they are equally good ones. Which one a library returns is decided by its starting vector, and the site has an essay about a plane surviving what its vectors do not.14710131619110¹indexeigenvalue of Lan eigenvalue with no vectorλ₂0.35λ₃0.35gap1.7·10⁻¹⁵partitions found3best conductance0.045worst0.045two eigenvalues, one valueand the answer is not a function of the graph
Fig. 22 The other kind of undetermined answer in this field, where the graph is exact and the rounding is not.
The lower bound is attained and the upper one is out by 37.3×Cheeger's inequality on nine graphs of about 40 vertices each: for the normalised Laplacian's λ₂, λ₂/2 ≤ φ ≤ √(2λ₂), where φ is the conductance the sweep cut actually achieves. Each row shows the two bounds as a bar and the measured conductance as a dot inside it. The lower bound is tight on the complete at a ratio of 1. The upper bound is loosest on the barbell — by a factor of 37.3 — which is the graph in the census with a real bottleneck, and therefore the shape the inequality is always quoted about. The square root is what makes it loose: it is the price of turning a spectral quantity into a combinatorial guarantee, and it is paid where the guarantee is wanted.10⁻³10⁻²10⁻¹110¹12345678910conductance, and the two bounds on itpathcyclegridbarbelltwo blockshypercubepreferentialstarcompletethe bar is the inequalitythe dot is the graph
Fig. 23 A bracket that certifies an answer, which a ranking has no analogue of.
preferential 60: 60 vertices, 117 edges, and a matrix built from themThe preferential 60 laid out at its own second and third Laplacian eigenvectors, so the picture is the same object the measurements are about. The Laplacian L = D − A is built by subtraction of integers, so every row sums to exactly zero — measured at 0, not at the rounding level — and L·1 is the zero vector with no arithmetic error anywhere in it. Its 1 zero eigenvalue counts the connected components, which breadth-first search also puts at 1; the smallest non-zero eigenvalue is 0.5861 and the largest computed zero is 4.82·10⁻¹⁷, a gap of 1.22·10¹⁶. The quadratic form xᵀLx is Σ over edges of (xᵢ − xⱼ)², which at the alternating vector is 248.the matrix, measuredvertices60edges117‖L·1‖∞0zero eigenvalues1components, by search1λ₂0.59laid out at its own eigenvectorsand the row sums are exactly zero
Fig. 24 A degree-skewed graph, whose centrality scores span several orders.
The exact solution of a 13×13 Hilbert system beside the computed oneTwo columns of numbers: the exact answer, which is the integers one to thirteen, and the answer double-precision elimination returns, with the number of correct digits beside each.H13 x = b, b formed exactly so that x = (1, 2, …, 13)12345678910111213exact1.00002.00003.00133.97865.18864.993010.46720.048921.2657-2.575319.21478.906013.5113computed6.6 correct digits4.8 correct digits3.4 correct digits2.3 correct digits1.4 correct digit0.8 correct digitno correct digitsno correct digitsno correct digitsno correct digitsno correct digits0.6 correct digit1.4 correct digitbackward error2.2·10⁻¹⁷κ = 1.7·10¹⁸The algorithm solved a neighbouring problem perfectly. That problem's answer is this one.right-hand side built in BigInt rationalsthe truth is known
Fig. 25 An answer that is known, which a ranking of real data never has.
Backward error, forward error and the condition number, with measured valuesTwo boxes at the top — the problem posed and the nearby problem the algorithm answered exactly — and two answers below them, with the distances between all four labelled by numbers from a Hilbert solve.the problem you posedA = H10b = A·(1, 2, …, 10)the problem it answered exactlyA + δA, b + δb‖δ‖ / ‖A‖ = 2.3·10⁻¹⁷the answer you wantedx = (1, 2, …, 10), exactlythe answer you gotx̂, wrong by 2.7·10⁻⁴ relativebackward error 2.3·10⁻¹⁷forward error 2.7·10⁻⁴κ = 1.6·10¹³κ · η = 3.6·10⁻⁴, and the measured forward error is 2.7·10⁻⁴.The algorithm is not at fault. The problem is.H10, LU with partial pivotingresidual and error differ
Fig. 26 The identity every measurement here is read against.
Forward error of a 6×6 Hilbert solve at eight precisionsA bar for each significand width from 12 to 53 bits showing the relative error in the computed solution, with the condition number times the unit roundoff marked as a prediction.κ = 1.5·10⁷ · the exact answer is (1, 2, …, 6)12 bits3.316 bits0.8620 bits4.324 bits0.09330 bits7.6·10⁻⁴36 bits6.2·10⁻⁶43 bits2·10⁻⁷53 bits4.5·10⁻¹¹dashed: κ · unit roundoffone matrix, eight arithmeticsmeasured against a known answer
Fig. 27 The precision knob, which this essay argues buys nothing.
Growth factor under partial pivoting to n = 40: the bound, the worst case, and realityGrowth factor against matrix size on a logarithmic vertical axis. The two-to-the-n bound rises as a straight line; Wilkinson's matrix sits exactly on it; random matrices stay near one.0816243240110²10⁴10⁶10⁸10¹⁰10¹²10¹⁴matrix size ngrowth factor max|u| / max|a|the 2ⁿ⁻¹ boundworst of 30 randommedian randomWilkinson's matrix sits on the bound30 Gaussian matrices per sizeat n = 40: bound 5.5·10¹¹, worst 4.8
Fig. 28 A bound never attained, in the field that measured it first.

What links here

Computed from the collection, not written here: the essays that point at this one.

Shares its objects with

Essays that name at least two of the same things, and that neither author linked.

Named objects

A flat tag is an object no other essay names yet.

Backward errorCentralityConditioningPagerankParameter choiceRankingRun-to-run variationStationary distributionTeleportation