Short algorithm, long-range consequences
web.mit.edu
web.mit.edu
Or did they? Here's my impression based on the article and a few minutes of refreshers:
Problem: Given a (weighted?) graph, output its Laplacian matrix, which represents (in the sense of being polynominal-time reducible to?) how much current would flow between any two nodes if voltage were applied across it.
New algorithm:
1) Find a (minimal?) spanning tree for the graph.
2) Calculate how much current would flow through that graph if it were so weighted and a unit voltage were applied through it, with the edges being resistors (and leaves presumably connected to ground?).
3) Create a loop restoring one of the edges in the original graph.
4) Update the currents your previously calculated by the amount needed to balance the circuit.
5) Repeat from Step 2) until you have the original graph.
6) The currents are your solution?
(Sorry, lots of edits to correct and clarify.)
Actually, I should add: one other tricky is coming up with (the probability distribution for) how you choose the order in which to restore edges.
To get an idea of how essential it is to quantify constants, recall that in 1964, Fedorenko rigorously proved that the number of iterations of multigrid required to reduce the residual of Poisson on a rectangular grid with n points by a factor of epsilon is O(n * |log epsilon|). He quantified the associated constant as
W(n, 0.01) <= 210000*n + W(10^6, 0.01)
Groundbreaking optimal asymptotics, but utterly useless (the proposed algorithm had the wrong idea about good coarse spaces) and nobody cared until Achi Brandt came along it 1973 and revolutionized implicit solvers by demonstrated that if you get the details right W(n, discretization error) <= 40 * n
(using only addition and shift operations).MIT, I expected more from you.
However, the paper gives a better definition:
When we refer to a nearly linear time SDD system solver we mean an an algorithm that computes such a x in time O(mlog^c(n)logε⁻¹) where m is the number of nonzero entries in A and c ≥ 0 ∈ ℝ is a fixed constant.
[removed: I was curious about the SDD requirement, but that's always the case for a graph Laplacian]