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. 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. 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 : 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}: revenue) • Objective function: • Three parameters for each arc: [l, u, c] – Lower bound l – Upper bound u – Cost per unit of flow c (if it is negative, then it is Diagram vs linear program 1: 1 relation We will henceforth think of a properly marked diagram equivalently as of a linear program formulation. 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 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) 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. Assignment problem • 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. 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 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. 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. 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. Max flow / Min cut problem • 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 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