Download Idan Maor

Document related concepts

Perturbation theory wikipedia , lookup

Lateral computing wikipedia , lookup

Three-phase traffic theory wikipedia , lookup

Genetic algorithm wikipedia , lookup

Computational electromagnetics wikipedia , lookup

Inverse problem wikipedia , lookup

Knapsack problem wikipedia , lookup

Computational complexity theory wikipedia , lookup

Dynamic programming wikipedia , lookup

Multi-objective optimization wikipedia , lookup

Rental harmony wikipedia , lookup

Computational fluid dynamics wikipedia , lookup

Travelling salesman problem wikipedia , lookup

Mathematical optimization wikipedia , lookup

Weber problem wikipedia , lookup

Multiple-criteria decision analysis wikipedia , lookup

Transcript
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).
1
(π‘ˆπ‘–π‘— , 𝐢𝑖𝑗
,
example
𝐢𝑖𝑗2 )
(5,-1,4)
𝑠1
𝑑1
(7,-2,-4)
1
(10,-6,-3)
(10,0,0)
2
(4,0,0)
(7,-4,-2)
𝑠2
(5,4,-1)
𝑑2
1
(π‘ˆπ‘–π‘— , 𝐢𝑖𝑗
,
example
𝐢𝑖𝑗2 )
|𝑓𝑖𝑗1 | = 5
𝑠1
𝑑1
(7,-2,-4)
1
(10,-6,-3)
(10,0,0)
2
(4,0,0)
(7,-4,-2)
𝑠2
(5,4,-1)
𝑑2
1
(π‘ˆπ‘–π‘— , 𝐢𝑖𝑗
,
example
𝐢𝑖𝑗2 )
|𝑓𝑖𝑗1 | = 5
𝑠1
𝑑1
(7,-2,-4)
1
(10,-6,-3)
(10,0,0)
2
(4,0,0)
(7,-4,-2)
𝑠2
|𝑓𝑖𝑗2 | = 5
𝑑2
1
(π‘ˆπ‘–π‘— , 𝐢𝑖𝑗
,
example
𝐢𝑖𝑗2 )
𝑠1
|𝑓𝑖𝑗1 | = 5
|𝑓𝑖𝑗1 |
=7
𝑑1
|𝑓𝑖𝑗1 | = 7
1
|𝑓𝑖𝑗1 | = 7
(3,-6,-3)
2
(3,0,0)
(4,0,0)
(7,-4,-2)
𝑠2
|𝑓𝑖𝑗2 | = 5
𝑑2
1
(π‘ˆπ‘–π‘— , 𝐢𝑖𝑗
,
example
𝐢𝑖𝑗2 )
𝑠1
|𝑓𝑖𝑗1 | = 5
|𝑓𝑖𝑗1 |
=7
|𝑓𝑖𝑗1 | = 7
1
|𝑓𝑖𝑗2 | = 3
(4,-4,-2)
𝑠2
𝑑1
|𝑓𝑖𝑗1 | = 7
2
|𝑓𝑖𝑗2 | = 3
|𝑓𝑖𝑗2 | = 3
|𝑓𝑖𝑗2 | = 3
|𝑓𝑖𝑗2 | = 5
𝑑2
1
(π‘ˆπ‘–π‘— , 𝐢𝑖𝑗
,
example
𝐢𝑖𝑗2 )
𝑠1
(5,-1,4)
𝑓𝑖𝑗1 = 5
|𝑓𝑖𝑗1 |
=7
|𝑓𝑖𝑗1 |
(7,-2,-4)
1
|𝑓𝑖𝑗2 | = 3
=7
(10,-6,-3)
|𝑓𝑖𝑗2 | = 3
𝑑1
|𝑓𝑖𝑗1 | = 7
2
(10,0,0)
|𝑓𝑖𝑗2 | = 3
|𝑓𝑖𝑗2 | = 3
(4,0,0)
(7,-4,-2)
𝑠2
(5,4,-1)
|𝑓𝑖𝑗2 | = 5
π‘˜ π‘˜
π‘π‘œπ‘ π‘‘ = 1β‰€π‘˜β‰€πΎ (𝑖,𝑗)∈𝐸 π‘₯𝑖𝑗
𝑐𝑖𝑗 =(5*-1)+(7*-2)+(7*-6)+(7*0)+
(5*-1)+(3*-2)+(3*-3)+(3*0)+(3*0)=-85
𝑑2
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.
𝑠1
𝑠2
β€’
The solution is 0.
(∞,-1,-1)
(∞,-1,-1)
𝑑2
𝑑1
Some observations
𝑠1
(∞,-1)
𝑑2
(∞,0)
(∞,0)
𝑠0
𝑠2
(∞,0)
(∞,0)
𝑠2
β€’
The solution is - ∞.
(∞,-1)
𝑑1
the flow can be fractional, Even if the cost and
capacities are integers
β€’ Unit Capacity.
β€’ Cost is -1
𝑑3
𝑆1
1
𝑠2
2
𝑑1
𝑑2
3
𝑠3
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.
𝑑3
𝑆1
1
𝑠2
2
𝑑1
𝑑2
3
𝑠3
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.
𝑑3
𝑆1
1
𝑠2
2
𝑑1
𝑑2
3
𝑠3
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.
𝑑3
𝑆1
1
𝑠2
2
𝑑1
𝑑2
3
𝑠3
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.
𝑑3
𝑆1
1
𝑠2
2
𝑑1
𝑑2
3
𝑠3
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
1β‰€π‘˜β‰€πΎ
π‘˜ π‘˜
π‘₯
(𝑖,𝑗)∈𝐴 𝑖𝑗 𝑐𝑖𝑗
β€’ Subject to :
–
π‘˜
π‘₯
π‘˜ 𝑖𝑗 ≀ π‘ˆπ‘–π‘— βˆ€ (i,j) Ο΅A
–
π‘˜
π‘₯
𝑖 𝑖𝑗 βˆ’
π‘˜
π‘₯
𝑖 𝑗𝑖 = 𝑏 𝑖
π‘˜
π‘˜
– π‘₯𝑖𝑗
β‰₯ 0 βˆ€π‘˜Ο΅πΎ βˆ€ (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
incapacitated min cost flow problem :
Partial dualization
β€’ In the min cost flow problem a solution x* is
an optimal solution if and only if there exits a
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
𝑀𝑖,𝑗 are optimal.
π‘˜
𝑦𝑖𝑗
and
Partial dualization
Ο€
π‘˜
β€’ 𝑐𝑖𝑗
=(𝑐𝑖𝑗
+𝑀𝑖,𝑗 ) βˆ’ πœ‹ π‘˜ (i)+πœ‹ π‘˜ (j).
2)
β€’ The correctness is due to the fact that
𝑀𝑖,𝑗 are optimal.
π‘˜
𝑦𝑖𝑗
and
Partial dualization
Ο€
π‘˜
β€’ 𝑐𝑖𝑗
=(𝑐𝑖𝑗
+𝑀𝑖,𝑗 ) βˆ’ πœ‹ π‘˜ (i)+πœ‹ π‘˜ (j).
3)
β€’ The correctness is due to the fact that
𝑀𝑖,𝑗 are optimal.
π‘˜
𝑦𝑖𝑗
and
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:
β€’ Or equivalently :
β€’ 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
1. Solve the min cost flow problem for each of the
commodity's, for a fixed lagrangian multiplier, with cost
2. 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:
o if the total flow we use is greater then the
capacity, we raise the arc price.
o Otherwise we lower the arc price(but keep it non
negative).
Lagrangian Relaxation
procedure
β€’ Advantages:
o Using this procedure lets us exploit the underlying network
flow structure.
o The updating of the lagrange multipliers is simple.
o We can use it partly, for getting a good base for the
simplex algorithm.
β€’ Disadvantages:
o In order to ensure that the method converge, we need to take small
step sizes, and as result it does not converge fast.
o 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:
π‘˜
π‘₯𝑖𝑗
= π‘βˆˆπ‘ƒπ‘˜ 𝛿𝑖,𝑗 (p)f(p).
β€’
So we can represent the objective function in the terms of path flows:
π‘˜ π‘˜
1β‰€π‘˜β‰€πΎ (𝑖,𝑗)∈𝐴 π‘₯𝑖𝑗 𝑐𝑖𝑗 =
π‘˜
(𝑖,𝑗)∈𝐴 𝑐𝑖𝑗 [ π‘βˆˆπ‘ƒπ‘˜ 𝛿𝑖,𝑗 (p)f(p)]=
𝐢 π‘˜ (p)𝑓(𝑝)
1β‰€π‘˜β‰€πΎ (𝑖,𝑗)∈𝐴
.
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
category
Arc formulation
Path formulation
Number of constraints
m + n*K
m+K
Number of variables
m*n*k
exponential
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 of
the simplex algorithm
1. Select a basis B that defines a bfs(basic feasible solution).
2. Calculate the objective function value of this bfs.
3. If there exits a variable that is not in the basis and can lower
the objective function value
a.
b.
then chose it, and increase it until a variable that is the base reach to
zero.
Stop and return the solution.
Some observations about
the 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.
Column Generation Solution Procedure
β€’ To use the Colum generation approach we need to show, how
to enter a non basic variable to the basis without examine
every Colum.
β€’ Since the simplex algorithm maintain the multipliers 𝜎 π‘˜ and
𝑀𝑖,𝑗 such the reduce cost of every basic variable is zero 𝑐𝑝σ,𝑀 =0
, we just need to check if there exits a path that it cost with
π‘˜
respect to the modified costs (𝑐𝑖𝑗
+𝑀𝑖,𝑗 ) is negative.
β€’ if there exits such a path we can return the path and enter it
to the base, otherwise the solution is optimal.
Column Generation Solution Procedure
β€’ We can find such path easily by running a shortest path
algorithm for each commodity k, with respect to the modified
π‘˜
costs (𝑐𝑖𝑗
+𝑀𝑖,𝑗 ) .
β€’ If there is no path that it’s length is negative then we are
done, else we found a path and we will enter it as the new
variable and recalculate the appropriate new multipliers 𝜎 π‘˜
and 𝑀𝑖,𝑗 such the reduce cost of every basic variable is zero
𝑐𝑝σ,𝑀 =0 .
β€’ The rest of the steps are the same as in the simplex algorithm.
Column Generation Solution Procedure
β€’ Claim: the solution is optimal if all the paths length in the
π‘˜
network with respect to the modified costs (𝑐𝑖𝑗
+𝑀𝑖,𝑗 ) are non
negative.
β€’ Proof : the solution is optimal if it stratify the complementary
slackness.
Column Generation Solution Procedure
β€’ it’s easy to see that this condition is satisfied since the reduce
cost (𝑐𝑝σ,𝑀 )of all paths in the base is zero, and the flow(f(p)) on
the paths that are not in the base is zero.
β€’ This is the assumption of the claim.
Column Generation Solution Procedure
β€’ Let look on the slack variable 𝑠𝑖,𝑗 , this variable state how
much of the capacity of the edge is used, i.e. 𝑠𝑖,𝑗
= [ 1β‰€π‘˜β‰€πΎ π‘βˆˆπ‘ƒπ‘˜ 𝛿𝑖,𝑗 (p)f(p) βˆ’ 𝑒𝑖,𝑗 ].
β€’ If 𝑠𝑖,𝑗 is not the base then 𝑠𝑖,𝑗 = 0(variables that are not in the
base are equal to 0).
β€’ otherwise 𝑠𝑖,𝑗 is in the base and its reduce cost is 0-𝑀𝑖,𝑗 equal
to 0, so we get that 𝑀𝑖,𝑗 =0.
Resource-Directive Decomposition
β€’ In The resource directive decomposition approach, we will
allocate an individual capacity for each commodity per arc.
the resulting resource directive problem:
Resource-Directive Decomposition
π‘˜
β€’ Lets define r=(π‘Ÿπ‘–,𝑗
) to be the resource allocation vector.
β€’ The resource directive problem is equivalent to the multi
commodity problem in the sense that :
– If (x,r) is feasible in the resource directive problem then x is a feasible
solution for the multi commodity problem and both problems has the
same objective function value.
– If x is a feasible solution for the original problem and we set r=x, we
will get a solution at least as good as in the resource directive
problem.
Resource-Directive Decomposition
π‘˜
β€’ r=(π‘Ÿπ‘–,𝑗
) to be the resource allocation vector.
β€’ Let’s define the resource allocation problem using r:
Resource-Directive Decomposition
β€’ It’s easy to see that for a fixed value of resource vector r, the
resource directive problem decompose to K independent
network min cost max flow problems.
β€’ z(r) =min π‘˜βˆˆπΎ 𝑧 π‘˜ (π‘Ÿ π‘˜ )
β€’ The value of 𝑧 π‘˜ (π‘Ÿ π‘˜ ) of the k sub problem :
Resource-Directive Decomposition
β€’ The resource directive problem to the resource allocation
problem in the sense that :
1.
If (x,r) is feasible in the resource directive problem , then r is feasible
in the resource allocation problem and 𝑧 π‘Ÿ ≀ 𝑐π‘₯.
2.
If r is a feasible in the resource allocation problem then for some
vector x, (x,r) is a feasible solution for the resource directive problem
and z(r)=cx.
Resource-Directive Decomposition
If (x,r) is feasible in the resource directive problem , then r is feasible in
the resource allocation problem and 𝑧 π‘Ÿ ≀ 𝑐π‘₯.
Proof:
it’s easy to see that if (x,r) is feasible in the resource directive problem
then r is also feasible in the resource allocation problem, since the
problems share the same resources contrarians
For the second part since x is feasible for every commodity we get :
z(r) = π‘˜βˆˆπΎ 𝑧 π‘˜ (π‘Ÿ π‘˜ )≀ 1β‰€π‘˜β‰€πΎ 𝑐 π‘˜ π‘₯ π‘˜ .
According to the definition of the recourse allocation problem.
Resource-Directive Decomposition
If r is a feasible in the resource allocation problem then for
some vector x, (x,r) is a feasible solution for the resource
directive problem and z(r)=cx.
Proof:
If r is a feasible solution for the resource allocation problem
then by the definition of 𝑧 π‘˜ (π‘Ÿ π‘˜ )=cx for some vector x.
So x there a vector x that satisfies z(r)=c(x).
Resource-Directive Decomposition
β€’ From the previous property we can conclude that instead of solving the
multi commodity problem we can solve the resource allocation problem
by having a problem with simple constrains but a complex objective
function z(r).
β€’ Although the objective function z(r) is complicated it’s easy to calculate,
for a fixed vector r we only need to compute the K min cost max flow
problems.
β€’ The objective function of the resource allocation problem z(r) is piecewise
linear convex function of r.
β€’ Both properties(the convexity and the piecewise linearity), derived from
the fact that the resource allocation is a special case of linear programing.
Solving the Resource-Directive Model
β€’ Since the objective function is non differentiable we can not
use gradient optimization methods.
β€’ Instead we could use heuristic methods such as β€œone arc at a
π‘˜β€²
time”, i.e. adding 1 unit to π‘Ÿπ‘–,𝑗
and subtracting 1 unit from
π‘˜β€²β€²
π‘Ÿπ‘–,𝑗
, This is a simple approach but it’s does not promise
convergence.
β€’ We can view the changing of the resource allocation of r as:
π‘˜
r=r+ΞΈΟ’. that is a step size ΞΈ in a direction Ο’=(π‘Ÿπ‘–,𝑗
).
Solving the Resource-Directive Model
β€’ Similar to sub gradient optimization we would like to choose a
step size ΞΈ in a direction Ο’ such that promise :
– Feasibility.
– Convergence to the optimal solution.
β€’
in order to achieve this goals we will use a two steps
approach:
– We will find a sub gradient direction and a step size that will ensure
convergence.
– If moving to r+ΞΈΟ’, will make solution non feasible we will transform it
to a point r’ that will be feasible.
Finding a sub gradient of z(r).
a sub gradient Ο’ of z(r) at point r=π‘Ÿ is any vector that satisfies
𝑧 π‘Ÿ β‰₯ 𝑧(π‘Ÿ)+ Ο’(r-π‘Ÿ).
For all π‘Ÿ = π‘Ÿ1 , π‘Ÿ 2 … . , π‘Ÿ 𝐾 with π‘Ÿ π‘˜ ∈ π‘…π‘˜ .
π‘…π‘˜ - the set of all resource allocations for commodity k, such that
the sub problem is feasible .
Finding a sub gradient of z(r).
Claim :
let 𝛾 π‘˜ π‘“π‘œπ‘Ÿ 1 ≀ π‘˜ ≀ 𝐾 be a sub gradient of 𝑧 π‘˜ π‘Ÿ π‘˜ at the point π‘Ÿ π‘˜ ,
then 𝛾=(𝛾 1 , 𝛾 2 ,…., 𝛾 𝐾 ) is a sub gradient of z(r) at π‘Ÿ=(π‘Ÿ1 , π‘Ÿ 2 , ….
π‘Ÿ 𝐾 ).
Proof:
1. Since 𝛾 π‘˜ is a sub gradient of 𝑧 π‘˜ π‘Ÿ π‘˜ , 𝑧 π‘˜ π‘Ÿ π‘˜ β‰₯ 𝑧 π‘˜ (π‘Ÿ π‘˜ )+
𝛾 π‘˜ (π‘Ÿ π‘˜ -π‘Ÿ π‘˜ ), βˆ€π‘Ÿ π‘˜ ∈ 𝑅𝐾 .
2. z(r) = π‘˜βˆˆπΎ 𝑧 π‘˜ (π‘Ÿ π‘˜ )
3. Ο’(rβˆ’π‘Ÿ) =
π‘˜βˆˆπΎ 𝛾
π‘˜ (π‘Ÿ π‘˜ βˆ’π‘Ÿ π‘˜ )
Finding a sub gradient of 𝑧
π‘˜
π‘˜
π‘Ÿ .
Lets look on the network flow problem:
𝑧 π‘ž = min 𝑐π‘₯: 𝑁π‘₯ = 𝑏, 0 ≀ π‘₯ ≀ π‘ž , q is a vector of upper
bounds on the arc flows.
π‘₯ βˆ— βˆ’the optimal solution when π‘ž βˆ— =q.
βˆ—
βˆ—
π‘₯𝑖,𝑗
< π‘žπ‘–,𝑗
πœ‡π‘–,𝑗 ={ βˆ—
βˆ—
π‘₯𝑖,𝑗 = π‘žπ‘–,𝑗
0
πœ‹
𝑐𝑖,𝑗
Claim:
For any non negative vector q’, for which the problem is feasible,
𝑧 π‘ž β€² β‰₯ 𝑧 π‘ž βˆ— + πœ‡(q’-π‘ž βˆ— ).
i.e. πœ‡ is a sub gradient of the objective function.
Finding a sub gradient of 𝑧
π‘˜
Proof:
According to the definition of reduce cost cx=𝑐 πœ‹ π‘₯ βˆ’ πœ‹π‘
𝑧 π‘ž βˆ— =𝑐 πœ‹ π‘₯ βˆ— βˆ’ πœ‹π‘= πœ‡π‘ž βˆ— βˆ’πœ‹π‘.
The last equality follows from the optimality condition :
πœ‹
βˆ—
βˆ—
𝑐𝑖,𝑗
=0 if 0 < π‘₯𝑖,𝑗
< π‘žπ‘–,𝑗
, And the definition of πœ‡.
βˆ—
βˆ—
π‘₯𝑖,𝑗
< π‘žπ‘–,𝑗
πœ‡π‘–,𝑗 ={ βˆ—
βˆ—
π‘₯𝑖,𝑗 = π‘žπ‘–,𝑗
0
πœ‹
𝑐𝑖,𝑗
π‘˜
π‘Ÿ .
Finding a sub gradient of 𝑧
Proof:
Let x’ be the solution of the problem when q=q’.
Then 𝑧 π‘žβ€² =𝑐 πœ‹ π‘₯ β€² βˆ’ πœ‹π‘ β‰₯ πœ‡q’ βˆ’πœ‹π‘.
Since 𝑐 πœ‹ β‰₯ πœ‡ and 0 ≀ π‘₯ β€² ≀ π‘žβ€².
We got :
𝑧 π‘žβ€² β‰₯ πœ‡q’ βˆ’πœ‹π‘
𝑧 π‘ž βˆ— =πœ‡π‘ž βˆ— βˆ’πœ‹π‘
𝑧 π‘žβ€² +πœ‡π‘ž βˆ— βˆ’πœ‹π‘ β‰₯ 𝑧 π‘ž βˆ— +πœ‡q’ βˆ’πœ‹π‘
𝑧 π‘žβ€² β‰₯ 𝑧 π‘ž βˆ— +πœ‡(q’ βˆ’π‘ž βˆ— ).
π‘˜
π‘˜
π‘Ÿ .
Converting a non feasible solution
After receiving the new resource allocation vector r, we need to
verify the feasibility.
If it’s not feasible we need to move to another point r’ in order
to preserve the feasibility.
one approach that ensures that the algorithm converges is to
choose the closet point to r, in the sense to minimize
π‘˜
π‘Ÿπ‘–,𝑗
1β‰€π‘˜β‰€πΎ (𝑖,𝑗)∈𝐴
βˆ’
π‘˜
π‘Ÿ β€² 𝑖,𝑗
2
Conclusion
We can solve the problem in the following way :
β€’ Solve the k min cost max flow problem with the current
resource allocation.
β€’ Find the sub gradient of the resource allocation according to
the sub gradient of each of the min cost max flow problems.
β€’ Update the resource allocation according to r=r+Ο’ΞΈ.
β€’ If the new resource allocation is feasible, continue with it,
otherwise move to the point r’ that is closet feasible point to
r.
The
End