CISS Princeton, March 2008 1 Optimization via Communication Networks Matthew Andrews Alcatel-Lucent Bell Labs
Jan 21, 2016
CISS Princeton, March 2008 1
Optimization via Communication Networks
Matthew AndrewsAlcatel-Lucent Bell Labs
2
Packet Scheduling in Communication Networks
Suppose we want to route and schedule packets in a wireline/wireless network so that queues are stable whenever possible
One way to do this is…
3
At each time, for each open edge (v,u), choose d such that
is maximized (as long as resulting differential is non-negative)
Send one packet over the edge from to .
MaxWeight (Backpressure) Algorithm
),( dvQ
)},({)},({ duqdvq
),( duQ
4
Why does this work?
Given network routing problem…
… can write down multicommodity-flow problem
… then show that packet dynamics track solution to multicommodity-flow problem
Thm: Multicommodity-flow problem is feasible iff queues are stable
Proof: Quadratic Lyapunov function
5
But what if we want to go the other way??
Support we want to solve a multicommodity-flow problem …
… we could construct a network, inject packets and run Max-Weight
Thm: If queues are stable, we obtain approximate solution to original multicommodity-flow problem
Running time often much better than generic LP algorithms
6
History Max-Weight was studied
independently in two separate communities
Networking community – scheduling in wireless networks e.g.
L. Tassiulas, A. Ephremides, IEEE Transactions on Information theory 1992.
Theoretical Computer Science community – distributed algorithm for solving multicommodity flow problems e.g.
B. Awerbuch, T. Leighton, STOC 1994.
7
Outline
Present Max-Weight approach for multi-commodity flow probs
“Additive weight method”
Present another iterative method – Garg-Konemann algorithm
“Multiplicative weight method”
Investigate running time In particular, dependence on the error
8
Multicommodity Flow Routing problem
Find routes that satisfy the following (assuming they exist)
(Typically, want to find max such flow rates are feasible. However, won’t worry about that here. We will assume that we know the maximum feasible )
..
0
)(
wo
dv
sv
f
f
xx
cx
i
i
ui
iiuv
ivu
vui
ivu
9
Packing problems Everything in this talk generalizes to packing problems Let P be a polytope and let A be a matrix s.t. Ax ≥0 for all x in P Packing problem: find an x that satisfies,
using calls to an oracle that can minimize c‧x over P for any vector c
(Dantzig-Wolfe algorithm)
Px
bAx
10
Multicommodity Flow Routing problem
Find routes that satisfy the following (assuming they exist)
(Typically, want to find max such flow rates are feasible. However, won’t worry about that here)
..
0
)(
wo
dv
sv
f
f
xx
cx
i
i
ui
iiuv
ivu
vui
ivu
11
1
1
2
2
2
3
2
11
31
21
2
1
21
22
11
e
e
ee
ee
ee
x
x
xx
xx
xx
Example
cap=2 cap=2e1 e2
12
Example
1
1
2
2
2
3
2
11
31
21
2
1
21
22
11
e
e
ee
ee
ee
x
x
xx
xx
xx
cap=2 cap=2e1 e2
13
Example
1
1
2
2
2
3
2
11
31
21
2
1
21
22
11
e
e
ee
ee
ee
x
x
xx
xx
xx
cap=2 cap=2e1 e2
14
Example
1
1
2
2
2
3
2
11
31
21
2
1
21
22
11
e
e
ee
ee
ee
x
x
xx
xx
xx
cap=2 cap=2e1 e2
15
Example
1
1
2
2
2
3
2
11
31
21
2
1
21
22
11
e
e
ee
ee
ee
x
x
xx
xx
xx
cap=2 cap=2e1 e2
16
Example
1
1
2
2
2
3
2
11
31
21
2
1
21
22
11
e
e
ee
ee
ee
x
x
xx
xx
xx
cap=2 cap=2e1 e2
17
Max-Weight Analysis Run Max-Weight with injection rates = (1 – ε/2) fi
After t time steps Data injected on flow i = t (1 – ε/2) fi
Aggregate queue size = poly(n, cuv )/ ε (use quadratic Lyapunov function)
Flow i data that has reached destination = t (1 – ε/2) fi - poly(n, cuv )/ ε
Create solution from routes of packets that have reached dest After time poly(n, fi , cuv , )/ ε2, have solution that routes flow i data at rate ′fi =(1 - ε) fi
..
0
)(
wo
dv
sv
f
f
xx
cx
i
i
ui
iiuv
ivu
vui
ivu
18
Garg-Konemann Alternative approach:
Find solution using a path routing algorithm, rather than a packet scheduling algorithm
Have set of link weights
Route according to shortest path
Update weights multiplicatively!!!
Algorithm parametrized by call it GK()
19
Example
1
1
2
2
2
3
2
11
31
21
2
1
21
22
11
e
e
ee
ee
ee
x
x
xx
xx
xx
c(e1)=1 c(e2)=1
20
Example
1
1
2
2
2
3
2
11
31
21
2
1
21
22
11
e
e
ee
ee
ee
x
x
xx
xx
xx
c(e1) *=1+() c(e2) *=(1+())*
(1+)
21
Example
1
1
2
2
2
3
2
11
31
21
2
1
21
22
11
e
e
ee
ee
ee
x
x
xx
xx
xx
c(e2) *=1+()c(e1) *=(1+())*
(1+)
22
Example
1
1
2
2
2
3
2
11
31
21
2
1
21
22
11
e
e
ee
ee
ee
x
x
xx
xx
xx
c(e1) *=1+() c(e2) *=(1+())*
(1+)
23
Garg-Konemann Analysis
Run GK(ε)
Create solution from all flow routes, normalized to fit link capacities
After time poly(n)/ ε2, GK() gives solution that routes flow i at rate ′fi =(1 - ε) fi
..
0
)(
wo
dv
sv
f
f
xx
cx
i
i
ui
iiuv
ivu
vui
ivu
24
Recap
Running time for (1 - ε) approx Max-Weight
poly(n, fi , cuv , )/ ε2
Garg-Konemann, GK() poly(n)/ ε2
..
0
)(
wo
dv
sv
f
f
xx
cx
i
i
ui
iiuv
ivu
vui
ivu
25
Question
Is the O(1/ ε2) factor real?
Could we get a simple iterative algorithm with running time O(1/ ε)?
..
0
)(
wo
dv
sv
f
f
xx
cx
i
i
ui
iiuv
ivu
vui
ivu
26
Garg-Konemann What about Garg-Konemann?
There exist instances where GK() never achieves flow rates better than (1 - ε) fi
Moreover, time taken to achieve this solution is Ω (1/ ε2)
Two reasons why convergence time is quadratic in 1 Initial edges weights may be far from optimal
Optimal solution may not increase edge weights uniformly due to 2 nd order terms
27
Example
1
2
1
2
2
3
2
11
31
21
2
1
21
22
11
e
e
ee
ee
ee
x
x
xx
xx
xx
c(e1)=1 c(e2)=1
c=1 c=1
c=1
c=1
c=1
28
Example
1
2
1
2
2
3
2
11
31
21
2
1
21
22
11
e
e
ee
ee
ee
x
x
xx
xx
xx
c(e2) *=1+()c(e1) *=(1+())*
(1+)
29
Example
1
2
1
2
2
3
2
11
31
21
2
1
21
22
11
e
e
ee
ee
ee
x
x
xx
xx
xx
c(e2) *=(1+())* (1+())
c(e1) *=(1+)
30
Max-Weight
What about Max-Weight?
31
Standard Max-Weight Analysis Run Max-Weight with injection rates = (1 - ε) fi
Aggregate queue size = poly(n, cuv )/ ε , running time = poly(n, fi , cuv , )/ ε2
Standard quadratic Lyapunov function argument does not imply stability at critical loads
“q(t+1) ‧q(t+1) = q(t) ‧ q(t) + 2q(t) ‧(a(t)-s(t)) + (a(t)-s(t)) ‧(a(t)-s(t))”
..
0
)(
wo
dv
sv
f
f
xx
cx
i
i
ui
iiuv
ivu
vui
ivu
32
Alternative Max-Weight Analysis Joint work with Sasha Stolyar
Run Max-Weight with injection rates = fi
Aggregate queue size = F(n, fi , cuv , ) “Queues are stable at critical loads”
After time F(n, fi , cuv , )/ ε, have solution that routes flow i data at rate ′fi =(1 - ε) fi
..
0
)(
wo
dv
sv
f
f
xx
cx
i
i
ui
iiuv
ivu
vui
ivu
33
Stability at Critical Loads
Q (t ) = queue vector at time t R = rate region (set of all possible changes to queue vector) C = “normal cone” to rate region (equiv. to opt dual solution)
)(tQ
queuespace
rate region
C
34
Stability at Critical Loads
Q (t ) = queue vector at time t
C = “normal cone”
Q* (t ) = closest point in C to Q (t )
)(tQ
)(* tQqueuespace
C
35
Stability at Critical Loads
Lemma: Q (t ) is bounded distance from Q*(t )
If Q (t ) is unstable Q*(t ) grows sublinearly. Q*(t ) is constant for arbitrarily long periods. Q (t ) must cycle. (Contradiction)
)(tQ
)(* tQ
C
36
Summary Running time for (1 - ε) approx
Max-Weight min ( poly(n, fi , cuv , )/ ε2 , F(n, fi , cuv , )/ ε )
Garg-Konemann poly(n)/ ε2
Key question, what is the function F ? Alas, can be exponential in n
Hence F/ ε running time only dominates when ε is exponentially small However F is intimately connected with geometry of problem Polynomial for randomly perturbed instances?