You are on page 1of 3

Topic: MPM Algorithm

CS60001 Advances in Algorithms


Scribe: K V N kishore Date of lecture: 31st october, 2006

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.

The throughput of a vertex can be defined as minimum of the total capac-


ity of incoming edges and the total capacity of outgoing edges. This is for
v ∈V−{s,t}

X X
throughput(v) = min{ c(u, v), c(v, u)}
u∈V u∈V

where as for the source s is


X
throughput(s) = c(s, v)
v∈V −{s}

and for the sink t is


X
throughput(t) = c(v, t)
v∈V −{t}

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:

for each edge (u,v) ∈ E


f (u,v) ← 0
end for
initialize the residual graph : set R=G.

Find the level graph L for R


while t is a vertex in L
while t is reachable label from s in L
Find a vertex v of minimum throughput = g.
push g units of flow from v to t
pull g units of flow from s to v
update f ,L and R.
end while
use the residual graph R to compute a new level graph L.
end while.

Time Complexity:

The time required by each phase of the algorithm described as follows:

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.

[2] Udi Manber, Introduction to Algorithms - A Creative Approach, Addison-Wesley


Publishing Company, October, 1989.

[3] M. H. Alsuwaiyel, Algorithms - Design Techniques and Analysis, World Scien-


tific, 1999.

You might also like