Link-Path Formulation

Design of Resilient
Multi-layer Core Networks
Multi-commodity Flow Networks Approach
to Modelling and Design
Michał Pióro
Institute of Telecommunications
Warsaw University of Technology (Poland)
and
Department of Communication Systems
Lund University (Sweden)
Michał Pióro
1
Purpose
m
To present basic approachs in network modeling
and optimization
n multi-commodity flow networks
n routing/reslience/multi-layering
Michał Pióro
2
Network – the main object
3
1
10
Telecommunication
technologies:
Warsaw
2
8
-
IP/OSPF
MPLS
IDN
ATM
SDH
DWDM
11
7
6
12
4
5
9
Networks can be really large (50-100 nodes)
Michał Pióro
3
Based on:
Michał Pióro and Deepankar Medhi
Routing, Flow, and Capacity Design in
Communication and Computer Networks
Morgan Kaufmann Publishers (Elsevier), 2004
770 pages, ISBN 0125571895
n
Michał Pióro
www.mkp.com
4
Auxiliary literature
m
m
m
m
m
m
m
R.K.Ahuja et al.: Network Flows: Theory, Algorithms and
Applications, Prentice Hall, 1993
D.P.Bertsekas: Network Optimization: Continuous and Discrete
Models, Athena Scientific, 1998
W.K.Chen: Theory of Nets Flows in Networks, J.Wiley,1990
R.Bhandari: Survivable Networks Algorithms for Diverse
Routing, Kluwer, 1999.
L.Wosley: Integer Programming, J.Wiley, 1998
M.Minoux: Mathematical Programming: Theory and Algorithms,
J.Wiley, 1986.
and tons of papers ...
Michał Pióro
5
CONTENTS
1. Basic formulations. Dimensioning vs. allocation problems.
Link-path vs. node-link formulation. Non-bifurcated flows and
other routing restrictions. Modular link capacities and topological
design. Importance of LP/MIP/IP models.
2. Shortest path routing (OSPF). MIP formulations. Direct
and two-phase approach.
3. Basic resilience mechanisms and related design problems (path
diversity, hot-standby, path protection, link protection). LP and MIP
formulations.
4. Multi-layer modeling. One-state design problems. Design problems
involving reconfiguration on different resource layers.
Michał Pióro
6
Dimensioning problem - Link-Path Formulation
m
m
indices
n e=1,2,…,E
n d=1,2,…,D
n p=1,2,…,Pd
constants
n δedp
n
n
n
hd
ξe
M
Michał Pióro
links
demands
paths for flows realizing demand d
( Pdp ⊆ {1,2,...,E} – subset of the set of links indices )
= 1 if e belongs to path p realizing demand d; 0, otherwise
( δedp = 1 iff e ∈ Pdp )
volume of demand d
unit (marginal) cost of link e
module size of the link capacity
7
Dimensioning problem – MIP
variables
n xdp
n ye
continuous flow realizing demand d on path p
integer capacity of link e
m
objective
minimize F(y) = Σe ξeye
m
constraints
n Σp xdp = hd
d=1,2,…,D
n Σd Σp δedpxdp ≤ Mye
e=1,2,…,E
n all variables are non-negative
m
How to solve this NP-hard problem?
Michał Pióro
8
Simple dimensioning problem – LP relaxation
variables
n xdp
n ye
flow realizing demand d on path p
capacity of link e
m
objective
minimize F(y) = Σe ξeye
m
constraints
n Σp xdp = hd
d=1,2,…,D
n Σd Σp δedpxdp ≤ ye
e=1,2,…,E
n all variables are continuous and non-negative
m
(=)
How to solve this problem?
Michał Pióro
9
LP relaxation - solution
m
m
constraints
n Σp xdp = hd
n Σd Σp δedpxdp = ye
d=1,2,…,D
e=1,2,…,E
F = Σe ξe Σd Σp δedpxdp = Σd Σp (Σe ξe δedp)xdp = Σd Σp κdpxdp = Σd ζdhd
where
κdp - cost of path p of demand d
ζd – cost of the cheapest (shortest with respect to ξe) path of demand d
m
solution: put the whole demand on the shortest path(s)
Michał Pióro
10
(Capacitated) flow allocation problem
m
m
indices
n d=1,2,…,D
n p=1,2,…,Pd
n e=1,2,…,E
demands
paths for flows realizing demand d
links
constants
n hd
n ce
n δedp
volume of demand d
capacity of link e
= 1 if e belongs to path p realizing demand d; 0, otherwise
Michał Pióro
11
Capacitated flow allocation problem – Link-Path formulation
m
m
variables
n xdp
flow realizing demand d on path p
constraints
n Σp xdp = hd
d=1,2,…,D
n Σd Σp δedpxdp ≤ ce
e=1,2,…,E
n flow variables are continuous and non-negative
D+E property:
If the problem is feasible then there exists a
solution with at most D+E non-zero flows.
Michał Pióro
12
Node-link formulation
so far we have been using link-path formulation
applicable for both undirected and directed graphs
indices
n d=1,2,…,D
demands
n v=1,2,... ,V
nodes
n e=1,2,...,E
links (directed arcs)
m constants
n hd
volume of demand d
n sd, td
source, sink node of demand d
n aev
= 1 if link e originates at node v; 0, otherwise
n bev
= 1 if link e terminates in node v; 0, otherwise
n ce
capacity of link e
for directed graphs (applicable to undirected graphs after some transformation)
Michał Pióro
13
Node-link formulation
m
m
variables
n xed ≥ 0
flow of demand d on link e
constraints
n
Σe aev xed - Σe bev xed
=
=
=
hd
0
- hd
if v = sd
if v ≠ sd,td
if v = td
v=1,2,...,V
n
Σd xed ≤ ce
Michał Pióro
d=1,2,…,D
e=1,2,…,E
14
Aggregated node-link formulation
m
m
indices
n v,w=1,2,... ,V
nodes
n e=1,2,...,E
arcs
constants
n hvw
volume of demand d originating at node v
and terminating at node w
n Hv
= Σw≠v hvw total demand volume originating at node v
n aev
= 1 if link e originates at node v; 0, otherwise
n bev
= 1 if link e terminates in node v; 0, otherwise
n ce
capacity of link e
Michał Pióro
15
Aggregated node-link formulation
m
m
variables
n xev ≥ 0
flow realizing all demands originating at node v
on link e
constraints
n Σe aev xev = Hv
v=1,2,...,V
(redundant)
v≠w
n
Σe aew xev - Σe bew xev = - hvw
v,w=1,2,...,V
n
Σv xev ≤ ce
e=1,2,…,E
Michał Pióro
16
Number of variables and constraints
#variables
#constraints
L-P
P×V(V-1) = O(V2)
V(V-1) + (k×V)/2 = O(V2)
N-L
(k×V ×V(V-1))/2 = O(V3)
V ×V(V-1) + (k×V)/2 = O(V3)
A/N-L (k×V×V)/2 = O(V2)
V×V + (k×V)/2 = O(V2)
Remarks
1. Still N-L can be faster than A/N-L.
2. There must be a way for path generation in L-P formulations.
Michał Pióro
17
Path generation
m
m
m
m
m
m
note that in the link-path formulation the lists of paths are predefined
using of full lists is not realistic (exponential number of paths)
fortunately, path generation method can be applied (general method
called „column generation” in LP, related to revised Simplex)
optimal dual multipliers πe assocoated with capacity constraints are
used to generate new shortest paths
the paths can be generated using Dijkstra, or some other shortest path
algorithm, e.g., with limited number of hops
link-path formulation with PG can be superior to using the node-link
formulation:
n
n
n
less variables and constraints
a limited number of non-zero flows is used in a Simplex (basic) solution
(e.g., at most D+E for the allocation problem)
in the N-L formulation we do not control the paths – have to use them all; in
the L-P formulation we can control the paths
Michał Pióro
18
Path generation:
Flow allocation problem – LP formulation
m
m
variables
n xdp
flow realizing demand d on path p
constraints
n Σp xdp = hd
d=1,2,…,D
n Σd Σp δedpxdp ≤ ce
e=1,2,…,E
n flow variables are continuous and non-negative
m
D+E non-zero flows at most
n depending on the number of saturated links
n if all links unsaturated: D flows only!
m
How to define the proper lists of paths? By path generation.
Michał Pióro
19
Capacitated flow allocation problem
– adjusted formulation
variables
n xdp
n z
flow realizing demand d on path p
auxiliary variable
m
objective
minimize z
m
constraints
n Σp xdp = hd
d=1,2,…,D
(λd - unconstrained)
n Σd Σp δedpxdp ≤ ce+ z
e=1,2,…,E
(πe ≥ 0)
n flow variables are continuous and non-negative, z is continuous
m
Michał Pióro
20
Dual
m
m
m
L(x,z; π,λ) = z + Σd λd(hd - Σp xdp) + Σe πe(Σd Σp δedpxdp - ce- z)
n xdp ≥ 0
for all (d,p)
W(π,λ) = minx≥0,z L(x,z; π,λ)
Dual
n maximize W(π,λ) = Σd λdhd - Σe πece
n subject to
o Σe πe = 1
o λd ≤ Σe δedpπe
d=1,2,…,D
o πe ≥ 0
e=1,2,...,E
Michał Pióro
p=1,2,...,Pd
21
Path generation - the reason
m
m
m
Dual
n maximize Σd λdhd - Σe πece
n subject to
o Σe πe = 1
o λd ≤ Σe δedpπe
d=1,2,…,D
o πe ≥ 0
e=1,2,...,E
p=1,2,...,Pd
if we can find a path shorter than Σe δedpπe* then we will get a
more constrained dual problem and hence have a chance to
improve (decrease) the optimal dual value
shortest path algorithm can be used for finding shortest paths with
respect to π*
Michał Pióro
22
Path generation - how it works
m
We can start with only one single path on the list for each demand
(Pd = 1 for all d).
m
Then we solve the extended problem and add one shortest path for
each demand d (if such a path, i.e., a path shorter than all teh paths
on the current list for demand d, exists).
m
This process will terminate typically after only several steps.
m
Cycling may occur, so it is better not to remove paths.
Section 5.4.2
Michał Pióro
23
Path diversity (works for disjoint paths)
m
m
variables
n xdp
n ye
flow realizing demand d on path p
capacity of link e
constraints
n Σp xdp = hd
d=1,2,…,D
n xdp ≤ hd / nd
d=1,2,…,D, p=1,2,…,Pd
n Σd Σp δedpxdp = ye
e=1,2,…,E
n all variables non-negative
In node-link formulation?
Michał Pióro
24
Generalized path diversity
variables
n xdp
n ye
m
flow realizing demand d on path p
capacity of link e
constraints
n Σp xdp = hd
d=1,2,…,D
n Σp δedpxdp ≤ hd / nd
e=1,2,…,E, d=1,2,…,D
n Σd Σp δedpxdp = ye
e=1,2,…,E
n all variables non-negative
In node-link formulation:
xed ≤ hd / nd
e=1,2,…,E, d=1,2,…,D
Michał Pióro
25
Single path allocation (non-bifurcated flows)
NP-hard
m
m
variables
n udp
binary flow variable corresponding to demand d and path p
constraints
n Σp udp = 1
n Σd Σp δedp(hdudp) ≤ ce
n u binary
d=1,2,…,D
e=1,2,…,E
In node-link formulation?
Michał Pióro
26
Single-path allocation: N-L formulation
m
m
variables
n ued ≥ 0
binary variable associated with flow of demand d on link e
constraints
n
Σe aev ued - Σe bev ued
=
=
=
1
0
-1
if v = sd
if v ≠ sd,td
if v = td
v=1,2,...,V
n
Σd hdued ≤ ce
d=1,2,…,D
e=1,2,…,E
Now, hop limit can be introduced (how?).
Very easy in the L-P formulation.
Michał Pióro
27
Other extensions
m
m
m
There are many other extensions (Chapter 4)
n lower-bounded non-zero flows
n equal split to at most k paths
n limited number of hops.
Not all of them can be expressed in node-link
formulation.
Think what is the essential diffrence between N-L
and L-P formulations. (Hint: only paths with certain
properties can be used, e.g., limited number of
hops.)
Michał Pióro
28
Dimensioning problem – MIP variants (NP-hard)
m
m
m
Modular capacities
n minimize F(y) = Σe ξeye
n Σd Σp δedpxdp ≤ M⋅ye
n Σd Σp δedpxdp ≤ M⋅ye
e=1,2,…,E
e=1,2,…,E
Multiple modules
n minimize F(y) = Σe Σk ξek yek
n Σd Σp δedpxdp ≤ Σk Mk⋅yek
e=1,2,…,E
Incremental modular capacities
n minimize F(y) = Σe ξekuek
n Σd Σp δedpxdp ≤ Σk mk⋅uek
e=1,2,…,E
n ue1 ≥ ue2 ≥ ... ≥ ueK
e=1,2,…,E
Michał Pióro
ye
integer - MIP
xdp, ye integer – IP
yek
integer – MIP
uek
binary – MIP
29
Dimensioning problem – convex and concave variants
m
objective
minimize F(y) = Σe ξef(ye)
n ye = Σd Σp δedpxdp
n f(z) – convex (penalty, delay) - CXP
n f(z) – concave (dimensioning function) – CVP
Convex – LP approximation (easy)
Concave – MIP approximation (difficult)
Michał Pióro
30
Benders’ decomposition:
Dimensioning problem (LP or MIP)
variables
n xdp
n ye
flow realizing demand d on path p (continuous)
link capacities, continuous (LP) or integer (MIP)
m
objective
minimize Σe ξeye
m
constraints
n Σp xdp = hd
n Σd Σp δedpxdp ≤ ye
m
Michał Pióro
d=1,2,…,D
e=1,2,…,E
31
Benders’ decomposition
m
iterative process
n
n
eliminate flow variables x
introduce new constraints on y
Section 5.4.3
Michał Pióro
32
BD scheme
m
m
m
m
Step 0
n Ω := { ye ≥ 0 : e=1,2,...,E }
(set of inequality constraints on y)
Step 1: solve master problem (y*)
n minimize Σe ξeye
n subject to Ω
Step 2: perform the feasibility test (π*,λ*)
n maximize W(π,λ) = Σd λdhd - Σe πeye*
n subject to
o Σe πe = 1
o λd ≤ Σe δedpπe
d=1,2,…,D p=1,2,...,Pd
o πe ≥ 0
e=1,2,...,E
if W(π*,λ*) > 0 then add inequality Σd λd*hd - Σe πe* ye ≤ 0 to Ω
Step 3: if new inequality is added then go to Step 1,
otherwise STOP
Michał Pióro
33
BD scheme - remarks
m
m
m
In MP there are no flow variables
FT is a dual to the flow allocation problem:
n objective
minimize z
n constraints
o Σp xdp = hd
d=1,2,…,D
(λd - unconstrained)
o Σd Σp δedpxdp ≤ ye*+ z e=1,2,…,E
(πe ≥ 0)
o flow variables are continuous and non-negative, z is
continuous
Can be much effective than the direct approach for the MIP
version
Michał Pióro
34
Topological design – fixed charge model
NP-hard
variables
n xdp
n ye
n ue
flow of demand d on path p
capacity of link e
=1 if link e is installed; 0, otherwise
m
objective
minimize F = Σe ξeye + Σe κeue
m
constraints
n Σp xdp = hd
d=1,2,…,D
n Σd Σp δedpxdp = ye
e=1,2,…,E
n ye ≤ Meue
e=1,2,…,E
n y and x non-negative, and u binary
m
Michał Pióro
35
Why LPs, MIPs, and IPs are so important?
m
in practice only LP guarantees efficient solutions
m
decomposition methods are available for LPs
m
m
MIPs and IPs can be solved by general solvers by the branchand-cut method, based on LP
n CPLEX, XPRESS
n sometimes very efficiently
otherwise, we have to use (frequently) unreliable stochastic
meta-heuristics (sometimes specialized heuristics)
Michał Pióro
36
Shortest Path Routing (IP/OSPF)
m
Links are assigned admistrative weights (simplest we = 1)
n we weight (metric) of link e, w = (w1,w2,...,wE).
m
Suppose that for each demand d there is only one shortest path with
respect to w.
m
Then, this path is used to carry the whole demand volume hd.
Michał Pióro
37
Shortest Path Routing
m
m
indices
n d=1,2,…,D
demands
n p=1,2,…,Pd
paths for flows realizing demand d
n e=1,2,…,E
links
constants
n hd
volume of demand d
n ce
capacity of link e
n δedp
= 1 if e belongs to path p realizing demand d; 0, otherwise
Chapter 7
Michał Pióro
38
Shortest Path Routing
NP-hard
m
m
variables
n we
n xdp(w)
weight (metric) of link e, w = (w1,w2,...,wE)
ECMP flow induced by metric system w on path (d,p)
constraints
n Σp xdp(w) = hd
n Σd Σp δedpxdp(w) ≤ ce
n w ∈W
d=1,2,…,D
e=1,2,…,E
(*)
Penalty function can be used instead of (*).
Michał Pióro
39
ECMP (Equal Cost Multi-Path) rule
s
m
b
a
c
e
d
ECMP flow
n flow to a destination outgoing
from a node is equally split
into the outgoing links
belonging to the shortest
paths to this destination
t
ECMP (Equal-split rule)
m
m
Michał Pióro
all link weights we equal to 1
ECMP flow
n from s to t
n from t to s
40
How to compute ECMP flows for given weights?
m
m
indices
n d=1,2,…,D
n p=1,2,...,Pd
n e=1,2,…,E
n s,t,v=1,2,...,V
constants
n hvt
n we
n i(d), j(d)
n i(e), j(e)
demands
paths of demand d
links
nodes
demand volume from node v to node t
link weights
end nodes of d
starting and terminating node of link e
can be done algorithmically
(Algorithm 7.1, Section 7.3.3)
Michał Pióro
41
ECMP flows for given weights
m
variables
n rd
n zet
n xet
n yvt
Michał Pióro
lenght of the shortest path of demand d
= 0 if link e is on a shortest path to node t (1, otherwise)
flow to node t on link e
common value of non-zero flow from node v to node t assigned
to links outgoing from v
42
ECMP flows for given weights - LP
E Σd rd + Σe Σt zet
m
maximize
m
constraints
n rd ≤ Σe δedp we
n zet ≤ Σe δedpwe - rd
n 0 ≤ zet ≤ 1
n Σ{e: j(e)=t} xet = Σs≠t hst
n Σ{e: i(e)=v} xet − Σ{e: j(e)=v} xet =
n
n
0 ≤ yi(e)t – xet ≤ zetΣv hvt
xet ≤ (1-zet)(Σv hvt)
d=1,2,…,E, p=1,2,...,Pd
d=1,2,…,E, p=1,2,...,Pd , t=j(d), e ∈ (d,p)
e=1,2,…,E, t=1,2,...,V
t=1,2,...,V
hvt
t,v=1,2,…,V, t≠v
t=1,2,…,V, e=1,2,…,E
t=1,2,…,V, e=1,2,…,E
we assume that if two paths have different length then they differ by at least one
Michał Pióro
43
ECMP flows for given weight - N-L formulation
VΣs Σt rst + Σe Σt zet
m
maximize
m
constraints
n rst ≤ we + rj(e)t
n zet ≤ we + rj(e)t - ri(e)t
n 0 ≤ zet ≤ 1
n Σ{e: j(e)=t} xet = Σs≠t hst
n Σ{e: i(e)=v} xet − Σ{e: j(e)=v} xet =
n
n
Michał Pióro
0 ≤ yi(e)t – xet ≤ zetΣv hvt
xet ≤ (1-zet)(Σv hvt)
s=1,2,…,V, t=1,2,...,V, i(e) = s
s=1,2,…,V, t=1,2,...,V
e=1,2,…,E, t=1,2,...,V
t=1,2,...,V
hvt
t,v=1,2,…,V, t≠v
t=1,2,…,V, e=1,2,…,E
t=1,2,…,V, e=1,2,…,E
44
Shortest Path Routing – MIP aggregated node-link formulation
m
m
Michał Pióro
indices
n t,v,s=1,2,…,V
n e=1,2,…,E
constants
n hvt
n i(e), j(e)
n M
n ce
nodes
links
demand from node v to node t
starting and terminating node of link e
large number
capacity of link e
45
Shortest Path Routing – MIP formulation
m
variables
n we
n rvt
n xet
n yvt
n
m
uet
weight (metric) of link e, w = (w1,w2,...,wE)
length of the shortest path from v to t (rvv = 0)
flow to node t on link e
common value of non-zero flow from node v to node t assigned
to links outgoing from v
binary variable equal to 1 iff link e is on the shortest path to
node t (uet = 1 - zet)
no objective
(can be added – e.g., minimization of maximal link utilization)
Michał Pióro
46
Shortest Path Routing – MIP formulation
m
constraints
n Σ{e: j(e)=t} xet = Σs≠t hst
n Σ{e: i(e)=v} xet − Σ{e: j(e)=v} xet = hvt
n Σt xet ≤ ce
n 0 ≤ yi(e)t – xet ≤ (1 - uet)Σv hvt
n xet ≤ uet Σv hvt
n 0 ≤ rj(e)t + we – ri(e)t ≤ (1 - uet)M
n 1 – uet ≤ rj(e)t + we – ri(e)t
n we ≥ 1
n w ∈W
Michał Pióro
t=1,2,…,V
t,v=1,2,…,V, t≠v
e=1,2,…,E
t=1,2,…,V, e=1,2,…,E
t=1,2,…,V, e=1,2,…,E
t=1,2,…,V, e=1,2,…,E
t=1,2,…,V, e=1,2,…,E
e=1,2,…,E
47
MIP formulation - extensions
m
m
m
m
Michał Pióro
limited split
n Σ{e: i(e)=t} uet ≤ n
t,v=1,2,…,V, t≠v
auxiliary objective function
n minimize
t
n subject to
t ≥ (Σt xet) / ce
e=1,2,…,E
dimensioning problem
n minimize F = Σe ξeye
n use variables ye instead of ce
installation costs κe – as well
48
Approaches
m
m
m
m
m
Michał Pióro
Dual approach
Two-phase approach
Iterative approach
Direct MIP formulation + branch and cut
(Holmberg and Yuan, Ben Ameur and E.
Gourdin, Tomaszewski and Pioro)
Heuristics (SAN)
49
Direct approachs
m
Branch-and-cut with the direct MIP formulation
m
SAN (and other meta-heuristics)
m
Dual approach
m
Other B&C approaches (Holmberg and Yuan, Ben Ameur and E.
Gourdin, Bley)
Michał Pióro
50
Simulated Annealing – neighbourhood for ECMP
ECMP Optimisation Problem
solution space: W
evaluation function: maximal overload F(w) = max {ye(w)/ce : e=1,2,...,E}
find w ∈ W with minimizing F(w)
N(w) ⊆ W – change one weight by ±1 (or some more drastic change)
One must compute the ECMP flows.
Michał Pióro
51
Two-phase approach
a
m
Phase 1:
Solve capacitated single-path allocation
problem (MIP).
b
c
d
m
Phase 2:
Find (continuous, ≥ 1) weights generating
the paths used in the solution of Phase 1
(easy to find using an LP when exist) and
convert them to integers.
e
g
f
Infeasible paths
Michał Pióro
52
Dual approach
m
Skip weights and find single path routing:
variables
xdp continuous flow on path (d,p)
maximize F = Σe (ce - Σd Σp δedpxdp)
constraints
Σp udp = 1
Σd Σp δedpxdp ≤ ce
m
Michał Pióro
d=1,2,…,D
e=1,2,…,E
(πe)
Solve the dual problem and use weights we = 1 + πe.
53
Dual approach – dual problem
m
variables
n λd
n πe
unrestricted in sign
non-negative
m
objective
maximize G = Σd λd hd - Σe (1 + πe)ce
m
constraints
n λd ≤ Σe δedp(1 + πe)
d=1,2,…,E, p=1,2,…,Pd
When optimal π determine single paths for all demands we are done!
n we = 1 + πe are the optimal weights (can be easily made integer)
Michał Pióro
54
Two-phase approach for single shortest paths
m
Phase 1:
Solve capacitated single-path allocation problem (MIP).
m
Phase 2:
Find (continuous, ≥ 1) weights generating the paths used in the
solution of Phase 1 (easy to find using an LP when exist) and
convert them to integers.
Michał Pióro
55
Phase 1 – single path routing
m
m
variables
n udp
binary flow variable for demand d and path p
constraints
n Σp udp = 1
n Σd hd Σp δedpudp ≤ ce
Michał Pióro
d=1,2,…,D
e=1,2,…,E
56
Phase 1 – single path routing
m
m
It can happen that Phase 1 results in infeasible paths.
The chance for feasible paths can be increased by finding a solution
fulfilling the necessary condition (see Section 7.4.2 and the use of SAL).
a
b
c
a
b
c
d
e
e
g
f
Infeasible paths
Michał Pióro
d
g
f
Feasible paths
57
Phase 2 – inverse shortest path problem
m
indices
n d=1,2,…,D
n p=0,1,…,Pd
n
m
m
m
m
(p=0 path that is supposed to be the
unique shortest path)
e=1,2,…,E
variables
n we
weights
constraints
n Σe δed0we + 1 ≤ Σe δedpwe
n we ≥ 1
the shortest path differs by
at least 1 from the other paths
d=1,2,…,D, p=1,2,…,Pd
e=1,2,…,E
Simple generation of two shortest paths applied to account for all paths
n If there are paths that make ths current path system infeasible – add
them to the lists and continue
Weights can be made integer.
Michał Pióro
58
Phase 1 – revisited
m
Path graph:
m
Find maximal cliques C in the graph
m
m
vertices G = {Pdp: d=1,2,...,D, p=1,2,...,Pd}
links: between paths which do not fulfill the necessary condition
If C ⊆ G is such a clique, add a constraint:
n ΣPdp ∈C udp ≤ 1
to the problem of Phase 1
Use heuristics to find maximal cliques (NP-complete itself)
Michał Pióro
59
Phase 2 – revisited
m
If Phase 2 is infeasible then find the minimal subset C of infeasible rows in the
problem dual to the Phase 2 problem (i.e., a hyperlink in the path-graph) and
add
n
ΣPdp ∈C udp ≤ C - 1
n
a function in CPLEX
to the problem of Phase 1
and iterate
m
It is well known that there may be a set of n paths with any (n-1)-element subset
realizeable (e.g., for n=4)
m
Some other, much stronger, necessary conditions exist (Holmberg and
Broström)
Michał Pióro
60
A remark
m
Single path allocation problem is NP-complete itself
m
In practice, however, much easier to solve by branch-and-cut that the direct MIP
Michał Pióro
61
Resilient (robust) design
m
Failures of links and nodes are taken into
account at the design stage
n failure scenarios are assumed
n spare capacity (on top of normal capacity)
is provided in a cost effective way
n demands (flows) are restored when failure
occurs
Chapter 9
Michał Pióro
62
Resilient design: indices and constants
m
m
indices
n d=1,2,…,D
n p=1,2,…,Pd
n e=1,2,…,E
n s=0,1,…,S
constants
n hds
n ξe
n δedp
n αes
n
θdps
Michał Pióro
demands
paths for flows realizing demand d
links
failure situations ( 0 - nominal state )
volume of demand d to be realized in situation s
unit cost of link e
= 1 if e belongs to path p realising demand d; 0, otherwise
link failure coefficient of link e in situation s
(binary: αes ∈ {0,1}, or fractional: 0 ≤ αes ≤ 1)
= ∏ {e: δedp=1} αes = min{ αes: e ∈ Pdp } (for binary αes)
63
Robust network design through path diversity
variables
n xdp0
n ye
flow realising demand d on path j in nominal state 0
capacity of link e
m
objective
minimize F(y) = Σe ξeye
m
constraints
n Σp θdpsxdp0 ≥ hds
d=1,2,…,D , s=0,1,…,S
n Σd Σp δedpxdp0 ≤ ye
e=1,2,…,E
n all variables non-negative (some integer)
m
θdps = ∏ {e: δedp =1} αes
Michał Pióro
64
Robust network design problem DR-U:
unrestricted flow reallocation
variables
n xdps
n ye
flow realising demand d on path p in situation s
capacity of link e
m
objective
minimize F(y) = Σe ξeye
m
constraints
n Σp xdps = hds
d=1,2,…,D, s=0,1,…,S
n Σd Σp δedpxdps ≤ αesye
e=1,2,…,E, s=0,1,…,S
n all variables non-negative (some can be integer)
m
Michał Pióro
Σd Σp δedpxdps ≤ αesMye
shared protection capacity,
reused released capacity
65
There are two failure situations: s=1,2
in situation s=1 the first path is failed
in situation s=2 the second path is failed
the third path is available in both situations
An issue
This example illustrates that the following extension of the LP
allocation rule (all variables continuous, identity dim. function):
in situation s allocate all the demanded capacity
hds to its cheapest available path
demand
hds = 10
failure situation #1
does not work. It would cost us 20 (allocate hds=10 to path 2 in
s=1 and to path 1 in s=2). Allocating hds=10 to path 3 in both
situations costs us only 15.
path #1 of length (cost) 1
failure situation #2
equipment
This is because the available capacity of
the Layer 1 links is shared among flows
in different situations!
path #2 of length (cost) 1
path #3 of length (cost) 1.5
Michał Pióro
66
Another issue:
bifurcated optimal
flows
demands
In general the optimal flows for some demands
have to be split among more than one path.
1
s=1
s=2
2
demands
1
equipment
1
1
1
1
1
1 (1)
capacities
and costs ( )
Michał Pióro
s=2
1
s=1
1
1
1
capacities
and flows
1
minimal cost F(y) = 4
1 (1) (non-bifurcated flows: F(y) = 5)
1 (1)
1 (1)
67
Another issue - cntd.
Optimal flow is bifurcated: optimal cost of links = 5
(minimal cost with non-bifurcated flow = 6).
link marginal costs are all equal to 1
link capacities: (ye)
flows:
xdps
Layer 1
(2)
(1)
(2)
(2)
1
1
(1)
(2)
(2)
1
0
2
(1)
(2)
(2)
1
2
0
(1)
(2)
1
1
2
0
demand hd1=3
demand hd2=3
demand hd3=3
demand dd4=3
s=1
s=2
s=3
s=4
Michał Pióro
integer flows; for continuous flows cost = 4.5
68
Protection/restoration mechanisms
Michał Pióro
m
protection (passive)
n diversity
n hot-standby
n usually no shared capacity
m
Restotration (active)
n typically hared capacity
n flow restoration
o unrestricted (theoretical)
o restricted
o single back-up paths
n link restoration
n released capacity
69
Robust network design problem DR-U:
Benders’ decomposition
m
situation dependent path lists
n p=1,2,…,Pds
n δedps
path is identified by (d,p,s)
m
objective
m
constraints
n Σp xdps = hds
n Σd Σp δedpsxdps ≤ αesye
Michał Pióro
minimize F(y) = Σe ξeye
d=1,2,…,D, s=1,2,…,S
e=1,2,…,E, s=1,2,…,S
70
Robust network design problem DR-U:
Benders’ decomposition (Section 10.3.1)
Proposition 10.1
Link capacity vector is globally feasible iff for each vector π = ( πe ≥ 0: e=1,2,…,E)
such that Σe πe = 1 and for each situation s=1,2,…,S, the inequality
Σe πeαesye ≥ Σd λd(π)hds
holds, where λd(π) is the length of the π–shortest path for demand d.
m
m
Using this result we can get gradually get rid of the flow variables, and use only
link capacities as variables.
This is a sequential procedure involving a master problem and feasibility tests.
Michał Pióro
71
Benders’ decomposition
m
m
m
m
Step 1: Initialize Ω
Step 2: Solve the Master Problem (in variables y)
n minimize
F(y) = Σe ξeye
n subject to
all inequalities from Ω and y ≥ 0
Step 3: For each situation s=1,2,…,S solve the feasibility test (in variables π and λ)
n maximize W(λ,π) = Σd λdhds - Σe πeαesye
n subject to
π≥0
Σe πe = 1
λd ≤ Σe δedpπe
d=1,2,…,D, p=1,2,…,Pds
If optimal W* is > 0 then add the following inequality to Ω :
(π1*α1s )y1 + (π2*α2s )y2 + … + (πE*αEs )yE ≥ Σd λd*hds.
Step 4: If all feasibility tests are positive then STOP: current y is globally optimal.
Otherwise go to Step 2.
invented for modular links
Michał Pióro
72
Robust network design problem DR-U:
path generation
m
situation dependent path lists
n p=1,2,…,Pds
n δedps
path is identified by (d,p,s)
m
objective
m
constraints
n Σp xdps = hds
n Σd Σp δedpsxdps ≤ αesye
Michał Pióro
minimize F(y) = Σe ξeye
d=1,2,…,D, s=1,2,…,S
e=1,2,…,E, s=1,2,…,S
73
Path generation (Section 10.1.1)
m
m
m
m
L(x,y;λ,π) = Σd Σs λdshds + Σs Σd Σp (Σe δedpsπes - λds) xdps + Σe (ξe - Σs αesπes)ye
maximize
subject to
W(λ,π) = Σd Σs λdshds
λds ≤ Σe δedpsπes
Σs αesπes = ξe
αes = 0 → πes = +∞
π≥0
d=1,2,…,D, p=1,2,…,Pds, s=1,2,...,S
e=1,2,…,E
e=1,2,…,E, s=1,2,…,S
If for at least one situation s we find a path shortest than λds* then we
can possibly improve the solution!
The rate of possible improvement: the difference.
Michał Pióro
74
Robust network design problem DR-R:
restricted flow reallocation
variables
n xdps
n ye
flow realising demand d on path p in situation s,
capacity of link e
m
objective
minimise F(y) = Σe ξeye
m
constraints
n Σp xdps = hds
n xdps ≥ θdpsxdp0
n Σd Σp δedpxdps ≤ αesye
n all variables non-negative
m
θdps = ∏ {e: δedp =1} αes
d=1,2,…,D , s=0,1,…,S
d=1,2,…,D , p=1,2,…,Pd , s=1,2,…,S
e=1,2,…,E , s=0,1,…,S
Another formulation with less constraints can be used – think about it.
Michał Pióro
75
Robust network design problem DR-R:
alternative formulation
variables
n xdps
n ye
flow realising demand d on path p in situation s,
capacity of link e
m
objective
minimise F(y) = Σe ξeye
m
constraints
n Σp xdp0 = hd
n Σd Σp δedpxdp0 ≤ ye
n Σp xdps + Σp θdps xdp0 ≥ hd
n Σd Σp δedpxdps ≤ αes(ye - Σd Σp δedpθdpsxdp0)
n all variables non-negative
m
Michał Pióro
θdps = ∏ {e: δedp =1} αes
d=1,2,…,D
e=1,2,…,E
d=1,2,…,D , s=1,2,…,S
e=1,2,…,E , s=1,2,…,S
76
Benders’ decomposition for DR-R (Section 10.3.2)
m
m
m
m
Step 1: Initialize Ω
Step 2: Solve the Master Problem (in variables y and x0)
n minimize
F(y) = Σe ξeye
n subject to
all inequalities from Ω, y,x0 ≥ 0, and
o Σp xdp0 = hd
d=1,2,…,D
o Σd Σp δedpxdp0 ≤ ye
e=1,2,…,E
Step 3: For each situation s=1,2,…,S solve the feasibility test (in variables π and λ)
n maximize W(λ,π) = Σd λd(hd - Σp θdps xdp0*) - Σe πeαes(ye* - Σd Σp δedpθdpsxdp0*)
n subject to
π≥0
Σe πe = 1
λd ≤ Σe δedpπe
d=1,2,…,D, p=1,2,…,Pd
If optimal W* is > 0 then add the appropriate inequality to Ω:
Σd λd*(hd - Σp θdps xdp0) - Σe π*αes(ye - Σd Σp δedpθdpsxdp0) ≥ 0.
Step 4: If all feasibility tests are positive then STOP: current y* and x0* are globally
optimal. Otherwise go to Step 2.
Michał Pióro
77
Path generation for DR-R (Section 10.1.2)
m
For s =1,2,...,S the link metrics are just optimal dual variables πes*.
m
For s =0, however, it is not that simple:
n
πe’ = Σs∈S(d,p)∪{0} πes*
where S(d,p) – situations for which path (d,p) works.
Can be copmuted easily for a given list, but not in general (no Dijkstra).
Michał Pióro
78
Robust network design problem DR-F:
single normal path + backup path
m
indices
n d=1,2,…,D
n p=1,2,…,Pd
e=1,2,…,E
n s=0,1,…,S
constants
n hd
n ξe
n δedp
n βedp
n αes
n θdps
n
m
Michał Pióro
demands
candidate pairs (Pdp,Qdp) of situation disjoint paths for
demand d; Pdp - normal path, Qdp – backup path
links
failure situations ( 0 - nominal state )
volume of demand d (in all states)
unit cost of link e
= 1 if e belongs to normal path Pdp; 0, otherwise
= 1 if e belongs to backup path Qdp; 0, otherwise
link failure coefficient of link e in situation s (αes ∈ {0,1})
= ∏ {e: δedp=1} αes (for binary αes)
79
Robust network design problem DR-F:
single normal path + backup path
variables
n udp
n ye
binary flow variable selecting pair (Pdp,Qdp)
capacity of link e (continuous)
m
objective
minimize F(y) = Σe ξeye
m
constraints
n Σp udp = 1
n Σd Σp (δedpθdps + β edp(1 - θdps))⋅hdudp ≤ αesye
m
shared protection capacity
Michał Pióro
d=1,2,…,D
e=1,2,…,E , s=0,1,…,S
θdps = ∏ {e: δedp =1} αes
80
Robust network design problem DR-HS:
single normal path + HS backup path
variables
n udp
n ye
binary flow variable selecting pair (Pdp,Qdp)
capacity of link e (continuous)
m
objective
minimize F(y) = Σe ξeye
m
constraints
n Σp udp = 1
n Σd Σp (δedp + β edp)⋅hdudp ≤ αesye
m
d=1,2,…,D
e=1,2,…,E , s=0,1,…,S
dedicated protection capacity
Michał Pióro
81
Link restoration - notation
m
m
indices
n d=1,2,…,D
n p=1,2,…,Pd
n e,l=1,2,…,E
n q=1,2,…,Qe
constants
n hd
n ξe
n δedp
n βleq
Michał Pióro
demands
candidate paths for demand d
links
candidate paths for restoring link e
volume of demand d (in all states)
unit cost of link e
= 1 if e belongs to Pdp; 0, otherwise
= 1 if l belongs to path Qdprestoring link e; 0, otherwise
82
Link restoration – problem formulation
variables
n xdp0
n ye
n zeq
n ye′
normal flow on path Pdp
normal capacity of link e
flow restoring normal capacity of link e on path Qeq
protection capacity of link e
m
objective
minimize F(y) = Σe ξe (ye + ye′)
m
constraints
n Σp xdp0 = hd
n Σd Σp δedpxdp0 = ye
n Σq zeq = ye
n Σq β leqzeq ≤ yl′
m
Michał Pióro
d=1,2,…,D
e=1,2,…,E
e=1,2,…,E
e,l=1,2,…,E, e ≠ l (e – restored in l)
83
Other protection/restoration mechanisms
and related design problems
Path protection (already discussed)
n shared spare capacity, reused released capacity
n situation-dependent backup paths
n single-path allocation
m
Link protection
n shared spare capacity, capacity not reused
n capacity of a failed link is restored
m
Hot-Standby
n dedicated protection capacity
m
Modular links, flows, single-path allocation
Michał Pióro
Chapter 9
84
Multi-layer networks
m
m
Networks do have multiple layers of resources
n traffic (demand) layer
n trunk groups layer
n transmission layer with sublayers
n optical fibres layer
n cable layer
n duct layer
Common rule
n capacity of the links of the upper layer are
demands for the lower layer below
n these capacities are realized by means of
path flows in the lower layer
Chapter 12
Michał Pióro
85
Two-layer design problem (TLDP)
m
m
indices
n d=1,2,…,D
n p=1,2,…,Pd
n e=1,2,…,E
n q=1,2,…,Qe
n g=1,2,…,G
constants
n hd
n κg
n δedp
n γgeq
Michał Pióro
demands
paths for flows realizing demand d
links in layer 2 (upper layer)
paths for flows realizing capacity of link e
links in layer 1 (lower layer)
volume of demand d
unit cost of link g
= 1 if e belongs to path p realising demand d; 0, otherwise
= 1 if g belongs to path q realising link e; 0, otherwise
86
Two-layer design problem (TLDP)
4
demands
1
3
2
demand d = 1with given volume h1 = 10
Layer 2
4
1
3
link e = 1 with capacity ye = 20
2
flow x11
5
flow x12
∑p xdp = hd demand d must be realised
flow through link e cannot exceed its capacity ye
4
Layer 1
1
3
6
flow z12
flow z11
5
2
link g = 1 with marginal cost kg = 1 and capacity ug
∑q zeq = ye link e must be realised
flow through link g cannot exceed its capacity ug
Two-layer network
Michał Pióro
87
Two-layer design problem (TLDP)
m
m
m
variables
n xdp
upper layer flow realizing demand d on path p
n zeq
lower layer flow realizing link e on path q
n ye
capacity of upper layer link e
n ug
capacity of lower layer link g
objective
minimize F(u) = Σg κgug
constraints
n Σp xdp = hd
d=1,2,…,D
n Σd Σp δedpxdp = ye
e=1,2,…,E
n Σq zeq = ye
e=1,2,…,E
n Σe Σq γgeqzeq ≤ ug
g=1,2,…,G
n all variables non-negative
Michał Pióro
88
Two-layer design problem (TLDP) - solution
m
Shortest path allocation rules applies:
n Step 1:
Compute the length ξe of the shortest path for each link e with
respect to lower layer link costs κg; let Qe be such a path.
n Step 2:
Compute the length λd of the shortest path for each demand d
with respect to upper layer link costs ξe; let Pd be such a path.
n Step 3:
For each demand d allocate the whole demand volume hd to
path Pd. For each link e compute the resulting load ye.
n Step 4:
For each link e allocate the whole link capacity ye to
path Qe. For each link g compute the resulting load ug.
m
Extensions:
n single-path allocation
n modular links
n modular flows
n node-link formulation
Michał Pióro
Σe Σq γgeqzeq ≤ Mug
89
Two-layer allocation problem (TLAP)
m
variables
n xdp
n zeq
n ye
upper layer flow realizing demand d on path p
lower layer flow realizing link e on path q
capacity of upper layer link e
(cg capacity of lower layer link g – constant)
m
constraints
n Σp xdp = hd
d=1,2,…,D
n Σd Σp δedpxdp = ye
e=1,2,…,E
n Σq zeq = ye
e=1,2,…,E
n Σe Σq γgeqzeq ≤ cg
g=1,2,…,G
n all variables non-negative
Michał Pióro
90
Two-layer robust design problem
(TLDP-U)
m
m
indices
n d=1,2,…,D
n p=1,2,…,Pd
n e=1,2,…,E
n q=1,2,…,Qe
n g=1,2,…,G
n s=0,1,…,S
constants
n hds
n κg
n δedp
n γgeq
n αgs
Michał Pióro
demands
paths for flows realizing demand d
links in layer 2 (upper layer)
paths for flows realizing capacity of link e
links in layer 1 (lower layer)
failure situations ( 0 - nominal state )
volume of demand d to be realised in situation s
unit cost of link g
= 1 if e belongs to path p realising demand d; 0, otherwise
= 1 if g belongs to path q realising link e; 0, otherwise
binary link failure coefficient for link g in situation s
91
TLDP-U
demand
demand d with volume hds
Layer 2
flow xd2s
flow xd1s
link e with capacity yes
in situation s
link g with marginal
cost κg and capacity ug
Layer 1
flow ze2s = 0
flow ze3s
flow ze1s = 0
Two-layer network with failures
Michał Pióro
92
Two-layer robust design problem
(TLRDP-U)
m
variables
n xdps
n
zeqs
yes
n ug
objective
constraints
n Σp xdps = hds
d=1,2,…,D , s=0,1,…,S
n Σd Σp δedpxdps = yes
e=1,2,…,E , s=0,1,…,S
n Σq zeqs = yes
e=1,2,…,E , s=0,1,…,S
n Σe Σq γgeqzeqs ≤ αgsug
g=1,2,…,G , s=0,1,…,S
n all variables are non-negative
n
m
m
upper layer flow realizing demand d on path p in
situation s
lower layer flow realizing link e on path q in
situation s
capacity of upper layer link e in situation s
capacity of lower layer link g
minimize F(u) = Σg κgug
Michał Pióro
93
Two-layer robust design problem
(TLRDP-LLR)
m
variables
n xdp
n zeqs
ye
n ug
objective
constraints
n Σp xdp = hd
d=1,2,…,D
n Σd Σp δedpxdp = ye
e=1,2,…,E
n Σq zeqs = ye
e=1,2,…,E , s=0,1,…,S
n Σe Σq γgeqzeqs ≤ αgsug
g=1,2,…,G , s=0,1,…,S
n all variables are non-negative
n
m
m
upper layer flow realizing demand d on path p
lower layer flow realizing link e on path q in
situation s
capacity of upper layer link e
capacity of lower layer link g
minimize F(u) = Σg κgug
Michał Pióro
94
Two-layer robust design problem
(TLRDP-ULR)
m
variables
n xdps
zeq
n yes
n ug
objective
constraints
n Σp xdps = hds
d=1,2,…,D , s=0,1,…,S
n Σd Σp δedpxdps = yes
e=1,2,…,E , s=0,1,…,S
n Σq θeqszeq ≥ yes
e=1,2,…,E , s=0,1,…,S
n Σe Σq γgeqzeq ≤ ug
g=1,2,…,G
n all variables are non-negative
θeqs = ∏ {g: γgeq =1} αgs
n
m
m
upper layer flow realizing demand d on path p in
situation s
lower layer flow realizing link e on path q
capacity of upper layer link e in situation s
capacity of lower layer link g
minimize F(u) = Σg κgug
Michał Pióro
95
Two-layer robust design problems:
remarks, extensions, solutions
m
m
m
m
Networks can have many layers
n IP over ATM over WDM over cable infrustracture (4 layers)
Extensions
n restricted reconfiguration, single backup paths, hot-standby
n single-path allocation
n modular links, modular flows
n node-link formulations
Solution methods
n LP, MIP, IP
n iterative approximate
n stochastic metaheuristics
Decomposition approach (different operators in different layers)
Michał Pióro
96
Two-layer modular design problem (TLDP/M)
- iterative approximate solution
m
Step 0:
m
Step 1:
m
Step 2:
m
Step 3:
m
Step 4:
m
Step 5:
m
Step 6:
Michał Pióro
Perform the single path allocation with respect to
κ = (κ1,κ2,..., κG). Compute the resulting lower layer link loads
ug and link capacities ug, g=1,2,...,G.
Compute the lower layer link metrics:
ρg:= κg × (ug / ug), g=1,2,...,G.
Compute the length ξe of the shortest path for each link e with
respect to lower layer link costs ρ; let Qe be such a path.
Compute the length λd of the shortest path for each demand d
with respect to upper layer link costs ξ; let Pd be such a path.
For each demand d allocate the whole demand volume hd to
path Pd. For each link e compute the resulting load ye.
For each link e allocate the whole link capacity ye to
path Qe. For each link g compute the resulting link load ug and
link capacity ug.
Coverged? If yes, stop. If not, go to Step 1.
Σe Σq γgeqzeq ≤ Mug
97
Two-layer allocation problem (TLAP)
- iterative approximate solution
m
Step 0:
m
Step 1:
m
Step 2:
m
Step 3:
m
Step 4:
m
Step 5:
m
Step 6:
Michał Pióro
Perform the single path allocation with respect to
ρ = (1,1,...,1). Compute the resulting lower layer link loads
ug and link capacities ug, g=1,2,...,G.
Compute the lower layer link metrics:
ρg:= (ug / cg), g=1,2,...,G.
Compute the length ξe of the shortest path for each link e with
respect to lower layer link costs ρ; let Qe be such a path.
Compute the length λd of the shortest path for each demand d
with respect to upper layer link costs ξ; let Pd be such a path.
For each demand d allocate the whole demand volume hd to
path Pd. For each link e compute the resulting load ye.
For each link e allocate the whole link capacity ye to
path Qe. For each link g compute the resulting link load ug.
Coverged? If yes, stop. If not, go to Step 1.
Σe Σq γgeqzeq ≤ cg
98
Concluding remarks I
m
Multicommodity flow approach to network modelling
n
captures most of important cases
traffic issues elimnated through the use of a proper demand matrix
n
powerful optimization methods developed
n
m
Most of the problems are NP-hard
n
n
n
n
IP methods: branch and cut
decomposition
stochastic heusristics
o evolutionary algorithms
o simulated allocation
approximate methods (shortest path allocation)
Michał Pióro
99
Concluding remarks II
m
New, challanging problems appear all the time
n shortest-path routing
n modelling of muti-layer networks (grooming, GMPLS)
n enhancements of branch and cut
n ...
Michał Pióro
100