
2.2 Queue management
The main goal of a queue management algorithm is
to maximize throughput and minimize queue delays
in a network. In this case it is highly desirable to have
a distributed queue management algorithm since it is
impossible to coordinate all source nodes in a large
network.
Our routing strategy will optimize average queue
sizes, and therefore implement a dynamic routing
strategy with active queue management.
2.3 Problem formulation
General joint dynamic routing and queue manage-
ment problems can be formulated as a convex opti-
mization problem constrained by a linear dynamical
system and feasibility constraints. This problem is an
instance of the optimal control problem, where our
objective (performance) function can be any convex
function. Using a discrete time queuing model, and
a single user traffic on a connected directed network
with n nodes and p links, we obtain the following
problem
minimize
P
t
f
t=t
i
h
P
p
j=1
φ
j
(x
j
(t))
+
P
n
i=1
ψ
i
(q
i
(t)) − U (s(t)) ]
subject to q(t + 1) = q(t) + s(t) − Ax(t),
−c ¹ x(t) ¹ c,
0 ¹ q(t) ¹ Q
max
,
S
min
¹ s(t) ¹ S
max
.
Problem variables are: traffic flows x(t) ∈ R
p
,
which can have negative components since we allow
reverse flow on the network links (i.e., the links are
bi-directional); queue lengths q(t) ∈ R
n
represent
amount of packets waiting to be processed at each
node’s queue; source rates s(t) ∈ R
n
is a vector of
incoming and removed network traffic at each node,
such that
P
n
i=1
s
i
(t) = 0. The flows are restricted
by the given link capacities c
j
> 0, the queues size
limit is Q
max
, and the source-sink rates can be varied
between S
min
and S
max
. The matrix A ∈ R
n×p
is the
node incidence matrix for the given directed graph.
The function φ
j
: R → R is the flow cost function
for link j, ψ
i
: R → R is the queue size penalty
function for node i, and U : R
n
→ R is the utility
measure function for a given source-sink rate vector
s.
Typically encountered flow cost functions are
φ
j
(x
j
(t)) =
|x
j
(t)|
c
j
− |x
j
(t)|
, (1)
φ(x(t)) = max
j
½
|x
j
(t)|
c
j
¾
where the domain of φ is dom φ
j
= (−c
j
, c
j
).
The first function gives the expected waiting time in
M/M/1 queue, while the second function gives the
maximum link utilization, see (Bertsekas and Gal-
lager, 1991).
Typical queue penalty functions ψ
i
are linear or
quadratic functions, where later one heavily penalizes
buildup of very large queues.
Utility functions U represent the user utility for dif-
ferent source-sink flows. They show willingness of
the user to pay for an additional amount of network
bandwidth.
An equivalent (relaxed) formulation of the general
problem will be considered in this paper. We will
assume that each customer (node) has an exact net-
work rate agreement, and therefore we can remove
utilization functions from our objective and eliminate
source rate constraints. We will choose the flow cost
functions φ
j
such that they act as barrier functions for
x
j
(t) feasibility. For example, the flow cost functions
from equation (1) can be defined to be finite inside of
their domain (−c, c) and infinite outside. Therefore,
if we start in the feasible flow region, we will always
stay feasible, and the link capacity constraints will
be automatically enforced. Final relaxation is that
we will not limit queue sizes, since we want to ob-
serve queues behavior especially when they become
unbounded. In practical systems, queues will be fi-
nite and they will start dropping packets when they
become over-saturated. Therefore, our final problem
formulation is
minimize
P
t
f
t=t
i
h
P
p
j=1
φ
j
(x
j
(t))
+
P
n
i=1
ψ
i
(q
i
(t)) ]
subject to q(t + 1) = q(t) + s(t) − Ax(t),
q(t) º 0.
(2)
Since we will only consider convex flow cost and
queue size penalty functions, this is a convex
optimization problem; convex optimization topics
are beautifully treated in (Boyd and Vandenberghe,
2003). Since we have a convex optimization prob-
lem, there exists a global optimal solution which we
will seek to find using a dynamical and distributed al-
gorithm.
3 DUAL METHODS
In order to gain some insight into problem (2) in dy-
namical settings, we will first investigate its solution
in a static case. We formulate the static-time optimal
network flow problem by setting all queues to zero
for all the time (basically removing queues from the
system) and thus only enforcing the flow conservation
DYNAMIC ROUTING AND QUEUE MANAGEMENT VIA BUNDLE SUBGRADIENT METHODS
13