The algorithm keeps a length function at every iteration where we a flow F(i). The amount of flow that we route is the following: we select the shortest path between a pair of vertices, and we route on this path a flow equal to the minimum capacity of an edge on this path . Then we update the length function that is increased by a factor 1+e c/c(e) where c is the flow that we route through this path and epsilon depends from the approximation that we get. We stop when the length function is bigger or equal than 1. This means that we actually get a feasible solution for the dual problem and then the solution we get is also an upper bound to the best solution for the multi-commodity flow problem. | ![]() |