Search code examples
algorithmdata-structuresgraphnetwork-flow

What exactly is augmenting path?


When talking about computing network flows, the Algorithm Design Manual says:

Traditional network flow algorithms are based on the idea of augmenting paths, and repeatedly finding a path of positive capacity from s to t and adding it to the flow. It can be shown that the flow through a network is optimal if and only if it contains no augmenting path.

I don't understand what is augmenting paths. I have googled, and found:

but they all reference to the quote above.

Can anyone please really clearly explain what is an augmenting path?


Solution

  • An augmenting path is a simple path - a path that does not contain cycles - through the graph using only edges with positive capacity from the source to the sink.

    So the statement above is somehow obvious - if you can not find a path from the source to the sink that only uses positive capacity edges, then the flow can not be increased.

    By the way the proof of that statement is not that easy.