which are then used to compute the best path from
each source to each destination using the Dijkstra al-
gorithm (Dijkstra, 1959). The results are then used to
compute the routing tables in each node.
A number of studies have proposed TE procedures
which optimize the weights of intra-domain routing
protocols to achieve near optimal routing, taking as
input the expected traffic demands. This was the ap-
proach taken by Fortz and Thorup (2000) where this
task was viewed as an optimization problem by defin-
ing a cost function that measured network congestion.
The authors proved that this task is a NP-hard prob-
lem and proposed some local search heuristics that
compared well with the MPLS model. Another ap-
proach was the use of Evolutionary Algorithms (EAs)
to improve these results (Ericsson et al., 2002). Ad-
ditional research has been carried out with the objec-
tive of pursuing multiconstrained QoS optimization,
where both traffic demands and delay requirements
are considered in the optimization of routing configu-
rations for unicast traffic (Rocha et al., 2006).
In this paper, EAs are employed to reach OSPF
weights that optimize network congestion, taking into
account both unicast and multicast demands of a
given domain. This work is based on the reasoning
that in the optimization process both the unicast and
multicast demands should be considered simultane-
ously, in contrast with previous work where optimiza-
tion is performed in two distinct phases, the first for
unicast traffic and the second devoted to multicast op-
timization (Wang and Pavlou, 2007).
2 PROBLEM FORMULATION
2.1 Unicast Traffic
In this section, a model for a network only with uni-
cast traffic demands will de described. This is based
on the framework proposed in (Fortz and Thorup,
2000). The general routing problem (Ahuja et al.,
1993) that underpins this work represents routers and
links by a set of nodes (N) and arcs (A) in a directed
graph G = (N,A). In this model, c
a
represents the
capacity of each link a ∈ A. A demand matrix D is
available, where each element d
st
represents the traf-
fic demand between nodes s and t. For each arc a,
the variable f
(st)
a
represents how much of the traffic
demand between s and t travels over arc a. The to-
tal unicast load on each arc a (l
a
) can be defined as:
l
a
=
∑
(s,t)∈N×N
f
st
a
while the link utilization rate u
a
is given by: u
a
=
l
a
c
a
. It is then possible to define a
congestion measure for each link: Φ
a
= p(u
a
). us-
ing a penalty function p that has small values near 0,
but as the values approach the unity it becomes more
expensive and exponentially penalizes values above 1
(Fortz and Thorup, 2000).
In OSPF, all arcs have an integer weight, used by
each node to calculate the shortest paths to all other
nodes in the network, using the Dijkstra algorithm
(Dijkstra, 1959). The traffic from a given source to a
destination travels along the shortest path. If there are
two or more paths with equal length, traffic is evenly
dividedamong the arcs in these paths (load balancing)
(Moy, 1998). Let us assume a given a weight assign-
ment, and the correspondingvalues of u
a
. In this case,
the total routing cost is expressed by Φ =
∑
a∈A
Φ
a
for
the loads and penalties (Φ
a
) calculated based on the
given OSPF weights. In this way, the OSPF weight
setting problem is equivalent to finding the optimal
weight value for each link, in order to minimize Φ.
The congestion measure can be normalized (Φ
∗
) over
distinct scenarios to values in the range [1,5000]. It
is important to note that in the case when all arcs are
exactly full (l
a
= c
a
), the value of Φ
∗
is 10
2
3
, a value
that will be considered a threshold that bounds the ac-
ceptable working region of the network.
2.2 Multicast Demands
A model that considers only multicast traffic in the
network will be described, that is based on a the work
by Wang and Pavlou (2007) . If there are unicast and
multicast demands, this model can be used to perform
a two-step optimization process (explained in the next
section). Consider, as before, a network topology
G = (N,A), with arc capacities (c
a
). The multicast de-
mands are given for a set of G groups, where for each
group g ∈ G the following parameters are defined: a
root node r
g
, a bandwidth demand M
g
and a a set of
receivers (V
g
). The multicast optimization problem is
typically defined as the computation of a bandwidth
constrained Steiner tree, with the objective of mini-
mizing overall bandwidth consumption, using integer
programming. The target is to instantiate a number of
binary decision variables: y
g
a
, are equal to 1 if link a is
included in the multicast tree for group g; and x
g,k
a
are
equal to 1 if link a is included in the multicast tree for
group g, in the branch from the root node to receiver
k. The objective function is to minimize the overall
bandwidth consumption (L1):
L1 =
∑
g∈G
∑
a∈A
M
g
× y
g
a
(1)
The deployment of the obtained Steiner trees can
be enforced by using an explicit routing overlay,
through MPLS on a per-group basis. An alterna-
AN EVOLUTIONARY ALGORITHM FOR UNICAST/ MULTICAST TRAFFIC ENGINEERING
239