Link-demand-path-identifier

L11. Link-path formulation
D. Moltchanov, TUT, Spring 2015
Outline
Reminder of link-path formulation
Node-identifier notation
Link-demand-path-identifier notation
Network dimensioning problems
Shortest-path routing problems
Fair networks
Topological design
Restoration design
Problem formulation
Simplest problem: given
Network topology with links and rates
Traffic demands between nodes
Get the best routing minimizing something (e.g. cost)
There are two common problem formulations
Link-path formulation
Node-link formulation
Within one formulation there are different notations
Link-path: node-identifier-based
Link-path: link-demand-path-identifier-based
Link-path: node-identifier
Demands: bidirectional
1-2: 5 hˆ12  5
1-3: 7 hˆ13  7
2-3: 8 hˆ23  8
Routing of demands
Two path for each demand
Demand hˆ12  5 paths 1-2 and 1-3-2
We see that flows over paths
xˆ12  xˆ132  hˆ12 ( 5)
For other demands
xˆ13  xˆ123  hˆ13 ( 7)
xˆ  xˆ  hˆ ( 8)
23
213
23
Another concern: how much to put over those paths
Link-path: node-identifier
Are there limitation on how much we put over paths?
Yes! Link bandwidth! (we assume bidirectional links)
We will denote links by 1-2, 2-3, 1-3 and capacities
cˆ12  10, cˆ13  10, cˆ23  15
First important note:
Demand: between any two nodes
Link: connects two nodes directly
Second important note:
Same units must be used for demands and link rates
You need to convert: pps/pps, Mbps/Mbps
E.g. to get pps: link rate in Mbps / average packet size
Link capacity unit (LCU)
Demand volume unit (DVU)
Link-path: node-identifier
So which demands are using links, what are implications
For link 1-2
xˆ12  xˆ123  xˆ213  cˆ12
Similarly for links 1-3 and 2-3 we have
xˆ132  xˆ13  xˆ213  cˆ13
xˆ132  xˆ123  xˆ23  cˆ22
What we got? (demands constraints + capacity constraints)
xˆ12 
 5
xˆ132
xˆ13 
 7
xˆ123
xˆ23 
xˆ12 
xˆ123 
xˆ132 
xˆ132 
xˆ13 
xˆ123 
xˆ23
xˆ213
 8
xˆ213
xˆ213
 10
 10
 15
and of course non-negativity of allocations: xˆ12 , xˆ132 , xˆ13 , xˆ123 , xˆ23 , xˆ213  0
Link-path: node-identifier
So what we got so far?
A system of equalities/inequalities
Gives feasible solutions to allocations
Possibly no solutions exist, possibly infinitely many
Which of these solutions are of interest
Depends on our objective!
Question: what is the goal of your network design?
Minimize the routing cost? Minimize congestion? Something else?
Objective function! (AKA Utility function)
Example: minimizing the total routing cost
Let the cost of transmission of a unit flow over any link be 1
F  xˆ12  2 xˆ132  xˆ13  2 xˆ123  xˆ23  2 xˆ213
Can you tell me why coefficient 2?
Link-path: node-identifier
So the whole problem now looks as
Minimize routing cost (routing cost over any link is 1)
F  xˆ12  2 xˆ132  xˆ13  2 xˆ123  xˆ23  2 xˆ213
subject to demand constraints
xˆ12 
 5
xˆ132
xˆ13 
and capacity constraints
xˆ12 
xˆ132 
xˆ132 
 7
xˆ123
xˆ23 
xˆ123 
xˆ13 
xˆ123 
xˆ213
 8
xˆ213
xˆ213
 10
xˆ23
And positivity constraints
xˆ12 , xˆ132 , xˆ13 , xˆ123 , xˆ23 , xˆ213  0
 10
 15
What’s wrong with node-identifier?
Why? Recall link-path notation
Demands volumes: hˆij, where i,j are nodes… we are OK
Links capacities : cˆij, where i,j are nodes… we are OK
Paths for demand (1->2): we used nodes as indices, e.g. xˆ12 , xˆ123
Paths for demands
It was OK for three nodes
What’s about paths for networks having N nodes? xˆ1,3,6,4,7,9,5,2 ?
What we used is called node-identifier-based notation
Additional shortcomings
Some nodes may not have demands: we still need to hˆij  0
Not all nodes are directly connected cˆij  0
Flow variables have indices of different length
More than one link between two nodes is also a problem
Simply put: we have a problem modeling large networks
Link-path: link-demand-path
Link-demand-path-identifier-based notation 
Compact
Allows to list only necessary objects
Good for moderate-to-large networks
Seem strange for small networks at the first glance though…
1. Start with demands
Enumerate from 1 to D
Only those that are non-zero
Three nodes example
Demand (1->2): demand ID 1
Demand (1->3): demand ID 2
Demand (2->3): demand ID 3
We have d=1,2,3 demands
In general: d=1,2,..,D demands
Link-path: link-demand-path
2. Continue with links
Enumerate from 1 to E
Only those that exist
Three nodes example
Link 1->2: link ID 1
Link 1->3: link ID 2
Link 2->3: link ID 3
We have e=1,2,3 links
In general e=1,2,…,E links
Can perform mapping of
Demand volumes
Link capacities
Link-path: link-demand-path
3. Continue with candidate paths for demand
There could be more than one
Enumerate from 1 to Pd for demand d
Note! paths have to be found prior to the solution of the task
Example: demand pair (1->2) ID 1
There exist two paths, P1= 2
These are 1-2, 1-3-2
Path 1-2: path ID 1
Path 1-3-2: path ID 2
Link-path: link-demand-path
Finish with path-flow variables
Demand paid ID: first index
Path ID for demand: second index
Node-identifier
Vs.
Link-demand-path
Note the following:
Previously: we saw which path is taken from indices xˆ12 , xˆ123 , xˆ213 , etc.
Now: it is implicitly given
Link-path: link-demand-path
The allocation task now reads as
Minimize routing cost (routing over any link costs 1)
F  x11  2 x12  x21  2 x22  x31  2 x32
subject to demands constraints
x11 
 h1  5
x12
x21 
x31 
and capacity constraints
x11 
 h2  7
x22
x22 
x12 
x12 
x21 
x22 
x31
x32
 h3  8
x32
 c1  10
x32
 c2  10
 c3  15
and positivity constraints
xij  0
Paths must be given explicitly prior to formulation
Link-demand-path
General procedure
Demands d = 1,2,..,D, and their volumes hd
Links e = 1,2,…,E, and their rates ce
Paths for each demand p = 1,2,…,Pd
Flow variables xdp, d = 1,2,…,D, p=1,2,…, Pd
Useful for moderate-to-large networks
Solution: optimization algorithms
Objective function
One more look at objective function
F  x11  2 x12  x21  2 x22  x31  2 x32
Sum of links costs
Link cost: link load  link cost unit
Link load: sum of all flows crossing it
One alternative: minimize delay on the most congested link
Changing objective function
May affect the optimal solution
May dramatically affect how we find the optimal solution
Sometimes the most complex thing
We considered link-path formulation
It also valid for directed links/demands
Optimization software
You must get familiar with at least one package
Matlab (commercial)
Mathematica (commercial)
Maple (commercial)
MathCad (commercial)
CPLEX (reduced version is free)
GNU linear programming kit (free)
AMPL (reduced version is free)
Choose one and get yourself familiar!