790 likes | 1.04k Views
Multi commodity flows. Idan Maor Tel Aviv University. interdiction. G=(N,A) is a directed graph capacity for every i,j V: If (i,j) A then = 0 . k pairs of distinguished vertices, (s1, t1),…(sk, tk). the cost of sending 1 unit of commodity k over ( i ,j).
E N D
Multi commodity flows Idan Maor Tel Aviv University
interdiction • G=(N,A) is a directed graph • capacity for every i,j V: If (i,j) A then = 0 . • k pairs of distinguished vertices, (s1, t1),…(sk, tk). • the cost of sending 1 unit of commodity k over (i,j). • the flow of commodity k over (i,j).
example (, ,) (5,-1,4) (7,-2,-4) (10,0,0) (10,-6,-3) (4,0,0) (7,-4,-2) (5,4,-1)
example (, ,) | (7,-2,-4) (10,0,0) (10,-6,-3) (4,0,0) (7,-4,-2) (5,4,-1)
example (, ,) | (7,-2,-4) (10,0,0) (10,-6,-3) (4,0,0) (7,-4,-2) |
example (, ,) | | | | (3,0,0) (4,0,0) (3,-6,-3) (7,-4,-2) |
example (, ,) | | | | | | | | (4,-4,-2) |
example (, ,) (5,-1,4) | | | (7,-2,-4) | (10,-6,-3) (10,0,0) (4,0,0) | | | (7,-4,-2) (5,4,-1) | =(5*-1)+(7*-2)+(7*-6)+(7*0)+ (5*-1)+(3*-2)+(3*-3)+(3*0)+(3*0)=-85
Some observations • If there is only one commodity the problem is min-cost max flow. • We can not use the simple reduction to min cost max flow by adding a super source and a super sink . • the flow can be fractional, Even if the cost and capacities are integers. • If there is a demand that the flow will be integer, then the problem is NP –Complete. • Even for unit capacities, and 2 commodities.
Some observations • We can not use the simple reduction to min cost max flow by adding a super source and a super sink, even if the all the costs are the same. • The solution is 0. (∞,-1,-1) (∞,-1,-1)
Some observations • The solution is - ∞. (∞,-1) (∞,0) (∞,0) (∞,0) (∞,0) (∞,-1)
the flow can be fractional, Even if the cost and capacities are integers • Unit Capacity. • Cost is -1
the flow can be fractional, Even if the cost and capacities are integers • Unit Capacity. • Cost is -1. • Option 1: 1 unit flow From s1 to t1. Result -4.
the flow can be fractional, Even if the cost and capacities are integers • Unit Capacity. • Cost is -1. • Option 2: 1 unit flow From s2 to t2. Result -4.
the flow can be fractional, Even if the cost and capacities are integers • Unit Capacity. • Cost is -1. • Option 3: 1 unit flow From s3 to t3. Result -4.
the flow can be fractional, Even if the cost and capacities are integers • Unit Capacity. • Cost is -1. • Option 4: 1/2 unit flow From s1 to t1 From s2 to t2 From s3 to t3 Result -6.
Assumptions • Homogeneous goods, Each unit of flow of commodity k over (i,j) consume one unit of capacity. • No congestion, there is no interaction between the goods meaning the cost is linear in the flow. • Indivisible goods, flow can be fractional.
Formal definition • Min • Subject to : • (i,j) ϵA • (i,j) ϵA
Solution approaches • Good news : We can solve the problem using linear programming. • Bad News: up to date, there is no other way to solve the problem precisely without using linear programming. • All the approaches will be based on linear programming.
Solution approaches • Price-directive decomposition. • This approach will remove the bundle constraints( (i,j) ϵA), and by that we decompose the problem to K separated min-cost flow problems. • Instead of the constraints this approach “charge“ some price from each commodity for using the arc.
Solution approaches • Resource-directive decomposition. • This approach will be based, that every optimal solution for the problem will result by flow on each arc. • So we can consider the problem as a resource allocation problem, we will allocate a capacity for each arc and commodity. • The problem decompose to K separated min-cost flow problems. • This approach start with initial capacity's, and the improve them iteratively.
Optimality conditions • Since the multi commodity flow problem is a linear programming problem we can use the linear programming optimality conditions. • The linear programming problem has two constraints: • A bundle constraint for every arc. (i,j) ϵA. • A mass balance constraint for every node. • The dual linear has two types of variables: • A price on each arc. • A node potential (i) for each node and commodity.
Optimality conditions Using the dual variables the Reduce cost for the problem • =+(i)+(j). • - is the arc price, it provide linkage between the different reduced costs. • (i)- then i node potential for commodity k.
Optimality conditions The dual linear program is :
Multi commodity flow complementary slackness conditions • Using the dual theorem of linear programming, We get that : • The commodity flow optimal if and only if, there exists node potentials (i), and non negataive arc prices such that:
Multi commodity flow complementary slackness conditions • The arc prices are the linkage between the different commodity's, if some arc is not saturated then can be equal to 0.
Partial dualization • If are optimal flow and are optimal arc prices for the multi commodity problem then for each commodity k, are also the optimal solution for the following incapacitatedmin cost flow problem :
Partial dualization • In the min cost flow problem a solution x* is an optimal solution if and only if there exitsa set of node potentials π, such the reduced costs and flow values satisfy :
Partial dualization • =+(i)+(j). 1) • The correctness is due to the fact that and are optimal.
Partial dualization • =+(i)+(j). 2) • The correctness is due to the fact that and are optimal.
Partial dualization • =+(i)+(j). 3) • The correctness is due to the fact that and are optimal.
Partial dualization • The property of partial dualization, give us a an approach for solving the problem. • We first find optimal arc prices and then attempt to find the optimal node potentials and flows by solving the single-commodity minimum cost flow problems. • This approach is the Price-directive decomposition.
Lagrangian Relaxation • The multi commodity flow problem: • Subject to :
Lagrangian Relaxation • In order to apply the Lagrangian Relaxation on the multi commodity flow problem , we associate non negative multipliers and create the Lagrangian sub problem: • Orequivalently: • Subject to :
Lagrangian Relaxation • Since the sub problem is defined for a given multipliers, the term is constant and we can formulate the sub problem as : • The resulting objective function has a cost of associated with every flow variable . • Since the constraints contains only one flow variable per commodity, we can decompose the problem to K min cost flow problems.
Lagrangian Relaxation procedure • Solve the min cost flow problem for each of the commodity's, for a fixed lagrangian multiplier, with cost • Update the multipliers in the following way: • the optimal solution of the min cost flow problem of the last iteration. • Max(0, α)
Lagrangian Relaxation procedure • The scalar is the step size, and it specifies how far we move from the current solution. • Notice that the arc prices change the following way: • if the total flow we use is greater then the capacity, we raise the arc price. • Otherwise we lower the arc price(but keep it non negative).
Lagrangian Relaxation procedure • Advantages: • Using this procedure lets us exploit the underlying network flow structure. • The updating of the lagrange multipliers is simple. • We can use it partly, for getting a good base for the simplex algorithm. • Disadvantages: • In order to ensure that the method converge, we need to take small step sizes, and as result it does not converge fast. • Since the method is dual based then even if we find the optimal multipliers , is does not promise us that the flow variables are optimal.
Column generation approach In order to simplify the problem, in this part will add a new assumptions: • Each commodity k has a single source and single sink , and a flow requirement . • There are no negative cycles in the network. • Since there are no negative cycles, there exits an optimal solution such that the flow on each cycle is zero.
Reformulation with Path Flows • - the collection of all paths from to , in the network. • f(p) – the flow on path pϵ • (p) - an arc path indicator variable, that is (p)=1, if arc (i,j)ϵp and (p)=0 otherwise. • (p)- the cost of unit flow on path pϵ.
formulation with Path Flows • Let notice that : (p)=(p) = • We can write each flow variable as decomposition of path flow: =. • So we can represent the objective function in the terms of path flows: = []= .
formulation with Path Flows • The path flow linear program:
formulation with Path Flows • The path flow formulation has one constraint per arc : • The path flow formulation has one constraint for each commodity: • The path flow can have an exponential number of variables, since there is a variable for each path in the graph.
Arc formulation Vs Path formulation The exponential number of variables are not a pitfall for this approach, since the linear pogromming structure promise us that there exits an optimal solution with at most m+ K paths . there is no need to represents all the columns (paths), all the time we can use lazy approach and generate only when nodded.
Optimality conditions • We will use the linear programming problem optimality conditions. • the path flow formulation has one bundle constraint for each arc, the dual linear program will have The arc price . • the path flow formulation has one demand constraint for each commodity, the dual linear program will have for each commodity. • Using the dual variables we can define the reduce cost for the path flow formulation as : =+
Path flow complementary slackness conditions • The commodity path flow f(p) optimal if and only if, there exists commodity prices and arc prices such that:
Path flow complementary slackness conditions • The condition: Just state that if we don’t use the total capacity of some arc, then the arc price can be zero. • From ,we can understand that every path p in the basis satisfies =0. Since • So we get every path p in the basis :
Path flow complementary slackness conditions From , we get that : • is the shortest path from node to with respect to the modified costs . • in the optimal solution every path p that carries a flow from node to must be the shortest path with respect to the modified costs. • With this result we can decompose the multi commodity problem to independent shortest path problems.
High level description ofthe simplex algorithm • Select a basis B that defines a bfs(basic feasible solution). • Calculate the objective function value of this bfs. • If there exits a variable that is not in the basis and can lower the objective function value • then chose it, and increase it until a variable that is the base reach to zero. • Stop and return the solution.
Some observations aboutthe simplex algorithm • The simplex method maintains a basis B at each iteration. • Using the basis B it defines a set of multipliers π(in our case they are and ), such that πB = (matrix notion). • The method define the simplex multipliers so the reduce cost of the basic variables will be equal to zero(=- πB). • It’s easy to see that we don’t require information about variables that are not in the base in order to calculate the multipliers.