The dual of the shortest-path linear program is equivalent to the following:
1.3
There is one variable for each vertex u.
An interpretation of this linear program is that the graph is being embedded on
a line, with
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.