max-flow/min-cut theorem

15
Max-flow/min-cut theorem Theorem: For each network with one source and one sink, the maximum flow from the source to the destination is equal to the minimal cut of this network. Intuition: – Maximal flow is determined by the bottleneck of the sysetm of pipes. – Minimal cut is a kind of a distributed bottleneck for the whole network.

Upload: kevina

Post on 23-Feb-2016

111 views

Category:

Documents


0 download

DESCRIPTION

Max-flow/min-cut theorem. Theorem : For each network with one source and one sink , the maximum flow from the source to the destination is equal to the minimal cut of this network . Intui tion : Maximal flow is determined by the bottleneck of the sysetm of pipes . - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Max-flow/min-cut theorem

Max-flow/min-cut theorem• Theorem: For each network

with one source and one sink, the maximum flow from the source to the destination is equal to the minimal cut of this network.

• Intuition: – Maximal flow is determined by

the bottleneck of the sysetm of pipes.

– Minimal cut is a kind of a distributed bottleneck for the whole network.

Page 2: Max-flow/min-cut theorem

Max flow and min cut

• Min cut for the network has a value of 14.• 4 paths B-E, D-E, F-E and F-G is a bottleneck of the network and they

should be widened first– But it is possible that you don’t get 1 unit flow increase per 1 unit of increased

capacity for the selected paths. – It is because an increased flow may activate a new bottleneck down or up the

„river”.• Flow capacities may denote costs. Then minimal cut is a minimal cost of

blocking the flow in the whole river.

Page 3: Max-flow/min-cut theorem

Network flow programming

• Formulating and solving network problems by linear programming is called network flow programming.

• Every network flow program may be presented as minimum-cost network flow program:

• Variables: unknown flows for every arc in the network• Flow conservation constraint:

• Source Sink :

Page 4: Max-flow/min-cut theorem

Network flow programming

• Flow bounds for each arc: may be lower (minimal prodction level in a factory) {default value is 0} or upper bounds (maximal flow through a pipe) {default value +∞}– Flows should not be negative (we lose transparency)

• Cost per unit of flow {default value 0}: (if it is negative, then it is revenue)

• Objective function:

• Three parameters for each arc: [l, u, c]– Lower bound l– Upper bound u– Cost per unit of flow c

Page 5: Max-flow/min-cut theorem

Diagram vs linear program

1: 1 relationWe will henceforth think of a properly marked diagram equivalently as of a linear program formulation.

Page 6: Max-flow/min-cut theorem

Properties

• Coefficients on the LHS of the constraints take values -1,0 or 1• All pivot operations in the simplex algorithm consist therefore of addition

and subtraction (no need for multiplication or division)• Even better: addition and subtraction operations may be replaced by

logical opeartions (based on Boolean algebra) in the Network simplex algorithm

• If there are only integer values on the RHS of all the constraints and all pivot operations are addition and subtraction operations, then the decision variables in the optimal solution will all be integers as well – unimodularity property– This property is very useful in case of solving many integer programs, e.g. assignment

problems

Page 7: Max-flow/min-cut theorem

Transportation problem

• Simple, yet very useful in practice• Consists of product sources (e.g. factories), which are directly connected

with destination points (e.g. markets in different cities). For each connection there is a unit flow cost. – Supply not greater than capacity of a given factory– Demand is equal to the supplied products– Each arc has a default value for upper and lower bound and a unit flow cost (in

brackets)

Page 8: Max-flow/min-cut theorem

Assignment problem

• It also appears as an integer program.• Assigning elmenets of the set of people to the elments of the set of tasks

so that the total completion time for all the tasks is minimized. – Each person needs certain amount of time for the task or cannot complete a task at all. – Each person should be assigned with exactly one task.

Page 9: Max-flow/min-cut theorem

• Assignment problem may be formulated as a transportation problem:– Each person is a source node, which introduces exactly one unit of flow into the network (if there are more

persons than tasks: not more than one unit)– Each task is a destaintion node, which removes exactly one unit of flow from the network– The cost of flow on each arc is the time for each person to complete a given task

• The optimal flow on the arcs will be equal to 0 or 1– Due to the unimodularity property, the solution will be integer-valued,– Since sources and destination points have inflows and outflows equal to exactly 1.

Assignment problem

Page 10: Max-flow/min-cut theorem

Transshipment problem

• The same as transportation problem, but additionally:– There are nodes which conserve flow [flow conserving nodes] – the transshipment points – The source and destination points may serve as transshipment points as well.

– B is a source and a transshipment point – G is a destanation and a transshipment point– D and E are transshipments point

Page 11: Max-flow/min-cut theorem

The shortest route problem

• Instead of applying Dijkstra algorithm we can solve it by network programming program

• The procedure is as follows:– Draw network diagram – Arc labels: lower bound 0, upper bound +∞, cost = arc length, e.g. [0, ∞,12]– Starting point is a source node with exactly one unit of flow without a cost [1,1,0]– Final point is a destination node with exactly one unit of flow without a cost [1,1,0]

• Arcs with positive flow will be on the shortest route.• Due to the unimodularity property the optimal flow on each arc will be

either 0 or 1.

Page 12: Max-flow/min-cut theorem

The shortest route tree problem

• The same as the shortest route problem, but there may be many (if not all) destination nodes.

• Problem is to find the shortest path from the starting point to each of the final points

• We could solve many shortest route problems, changing the final point. It is easire however to do it in one problem.

• Assume there are many destaintion nodes. Procedure:– Draw network diagram – Arc labels: lower bound 0, upper bound +∞, cost = arc length, e.g. [0, ∞,12]– Starting point is a source node with exactly n unit of flow without a cost [n,n,0]– Final point is a destination node with exactly one unit of flow without a cost [1,1,0]

• In the optimum, ther will be only integer values (unimodularity). One should mark all arcs which have positive flow. The shortest path is found backwards.

Page 13: Max-flow/min-cut theorem

Max flow/ Min cut problem

• Instead of applying Ford-Fulkerson algorithm, we can apply minimum cost network flow program

• Procedure:– Draw network diagram – Arc labels: lower bound 0, upper bound maximal flow on this arc, cost = 0, e.g. [0, 25,0]– Starting point is a source node with a very big upper bound without a cost: [0,M,0],

where M is very big– Final point is a destination node with a very big upper bound with a cost of -1: [0,M,-1],

where M is very big

• In the optimum: Consider destination node. Cost per unit of flow is -1. Objective is to minimize cost, hence the program will try to let as many units of flow through this node. In the source node it will try to let as many units of flow as well. Upper bounds for the flow on each arc will be the only limit.

Page 14: Max-flow/min-cut theorem

• The solution will provide us with the following information:– The outflow in the destination node. Is equal to the maximal flow of the network. – The flows on each arc will give the flow pattern of the maximum flow problem

• The minimum cut is found the same way, as after termination of the Ford-Fulkerson algorithm.

• What is a good value for M?– Not too small – has to be not smaller than the maximum flow which we search for– Not too large – to avoid numerical problems– Good suggestion – a random cut value in the network; we know from the max flow/min

cut theorem, that the cut value will be not smaller than tha maximum flow in the network

Max flow / Min cut problem

Page 15: Max-flow/min-cut theorem

Generalized networks, network with side constraints, processing networks

• In a generalized network, arcs have gain factors: these are the numbers by which we multiply the entering flow to get the outflow:– E.g. the increase/decrease coefficient 0.9 may denote the leaking pipeline– E.g. the increase coefficient of 1.1 may denote value inrease of the object

• Networks with side constraints – it may be necessary to introduce additional constraints which are not network constraints, e.g.

– Specialized algorithms which solve the network part via network simplex algorithms and the rest with a normal simplex and then the solutions are combined.

• Processing networks – very useful to model engineering systems: additional processing nodes, in which flows in the neighbouring nodes should appear in a specified proportions