Link-demand-path-identifier

advertisement

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

1-3: 7

2-3: 8 h

ˆ

ˆ

12

 h

ˆ

13 h

23

5

7

8

Routing of demands

Two path for each demand

Demand paths 1-2 and 1-3-2

12

5

We see that flows over paths x

ˆ

12

 x

ˆ

132

 h

ˆ

12

( 5)

For other demands x

ˆ

13

 x

ˆ

123

 h

ˆ

13

( 7) x

ˆ

23

 ˆ

213

 h

ˆ

23

( 8)

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,

First important note:

Demand: between any two nodes

Link: connects two nodes directly c

ˆ

23

15

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

ˆ

12

 x

ˆ

132 x

ˆ

132

 x

ˆ

13

 x

ˆ

213

 c

ˆ

13 x

ˆ

132

 x

ˆ

123

 x

ˆ

23

 c

ˆ

22

What we got? (demands constraints + capacity constraints)

5 x

ˆ

13

 x

ˆ

123

7 x

ˆ

23

 x

ˆ

213

8 x

ˆ

12

 x

ˆ

132 x

ˆ

132

 x

ˆ

13

 x x

ˆ

ˆ

123

123

 x

ˆ

23 x

ˆ

213 x

ˆ

213

10

10

15 and of course non-negativity of allocations: x

ˆ ˆ

, x

ˆ ˆ

, x

ˆ

, x

ˆ

12 132 13 123 23 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

 x

ˆ

132 x

ˆ

13

 x

ˆ

123 x

ˆ

23 and capacity constraints x

ˆ

12

 x

ˆ

132

 x

13

 x

ˆ

132

 x x

ˆ

ˆ

123

123

 x

ˆ

23 x

ˆ

213 x

ˆ

213 x

ˆ

213

10

10

15

5

7

8

And positivity constraints x

ˆ ˆ

, x

ˆ ˆ

, x

ˆ

, x

ˆ

12 132 13 123 23 213

0

What’s wrong with node-identifier?

Why?

Recall link-path notation c

ˆ ij h

ˆ ij

Paths for demand (1->2): we used nodes as indices, e.g.

x

ˆ ˆ

12 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

Not all nodes are directly connected c

ˆ 

0 ij

Flow variables have indices of different length

0

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 P d 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, P

1

= 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 123 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

 x

11

2 x

12

 x

21

2 x

22

 x

31

2 x

32 subject to demands constraints x

11

 x

12 x

21

 x

22 x

31

 and capacity constraints x

11

 x

22

 x

12

 x

12

 x

21

 x

22

 x

31 x

32 x

32 x

32

 h

1

 h

2

 h

3

5

7

8

 c

1

10

 c

2

10

 c

3

15 and positivity constraints

  ij

0

Paths must be given explicitly prior to formulation

Link-demand-path

General procedure

Demands d = 1,2,..,D, and their volumes h d

Links e = 1,2,…,E, and their rates c e

Paths for each demand p = 1,2,…,P d

Flow variables x dp

, d = 1,2,…,D, p=1,2,…, P d

Useful for moderate-to-large networks

Solution: optimization algorithms

Objective function

One more look at objective function

F

 x

11

2 x

12

 x

21

2 x

22

 x

31

2 x

32

Sum of links costs

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!

Download