Académique Documents
Professionnel Documents
Culture Documents
1 MPM Algorithm
The algorithm called MPM due to Malhotra, Pramod-kumar and Maheswari.
This algorithm has some improvement over the Dinic’s algorithm .This algo-
rithm is based on the computing the blocking flows of the graphs, where as in
the Dinic’s algorithm, updating the residual graph ,computing the level graph
and finding a blocking flow comprise one phase of the algorithm before going
into details of the algorithm we will look into some initial definitions required
to know the algorithm i.e. the Finding a blocking flow from the level graph L
and throughput.
X X
throughput(v) = min{ c(u, v), c(v, u)}
u∈V u∈V
Finding a blocking flow from the level graph L can be described as follows
First find the vertex v such that g= throughput(v) is minimum among the
all other vertices in L and then push the g units of flow from v to t and pull
the g units from s to v.
When pushing a flow out of a vertex v ,saturate some of its outgoing edges
to their capacity and leave at most one edge partially saturated .Then delete
1
all incoming edges to their capacity and leave at most one edge partially sat-
urated. Either all incoming edges or all outgoing edges will be saturated.
Consequently, vertex v and all its adjacent edges are removed from the level
graph L and residual graph R updated accordingly . The flow out of graph v is
pushed through its outgoing edges to its adjacent vertices and so on until t is
reached .As v is minimum throughput its outgoing edges among the all other
edges vertices in the current level graph .Similarly, the flow into the v is prop-
agated backward until s is reached. Another vertex of minimum throughput is
found and the above procedure is repeated.
Algorithm:
Time Complexity:
To find the level graph L is O(m) using thee breadth first search . Then
finding a vertex of throughput minimum takes O(n). Since it can be done at
most n − 1 times, the total time required by the step is O(n2 ). Deleting all
saturated edges takes O(m) time. Since at most one edge is partially saturated
for each vertex, the time required to partially saturated edges in each iteration
of the inner while loop, the total time required to partially saturated edges is
O(n2 ). It follows that the total time required to push flow from v to t and
to pull flow from s to v is O(n2 ).To update the flow function f and pull flows
2
,i.e. O(n2 ).As a result the overall time required by each phases O(n2 + m) as
there are at most n phases ,then the overall time bounded by this algorithm is
O(n3 ). After computing the n-1 level graphs ,there are no more augumenting
paths in the residual graph .By the max flow min cut theorem we can say that
this is a maximum flow.
References
[1] T.H.Coreman, C.E. Leiserson, R.L.Rivest and C. Stein, Introduction to Algo-
rithms - Second Edition, Prentice-Hall India, 2006.