Dual of shortest path.

The dual of the shortest-path linear program is equivalent to the following:

1.3

eqnarray101

There is one variable tex2html_wrap_inline144 for each vertex u. An interpretation of this linear program is that the graph is being embedded on a line, with tex2html_wrap_inline144 representing the position of the vertex u on the line, subject to the constraints that for every edge (u,v), there is a ``string'' preventing vertex v from being put more than w(u,v) units further along the line than vertex u.

Dijskstra's shortest path algorithm has a nice interpretation this way: replace each edge in the graph by a string of the appropriate length, then, starting with all vertices in a pile on the table, gradually lift up the vertex s, letting the other vertices be pulled down towards the table by gravity. As s lifts, the strings will cause the other vertices to lift too. A vertex u will start lifting when the strings along the shortest path from s to u are all ``tight''.

Linear programming duality is often useful in designing algorithms for combinatorial optimization problems.



Neal Young
Sat May 24 18:06:27 EDT 1997