Example: 'Minimum bottleneck utilization routing with maximum bifurcation constraints, path formulation'

Brief description

Given a network topology, the capacities in the links and the offered traffic, this algorithm obtains the traffic routing that minimizes the worst link utilization using a flow-path formulation. For each demand, the set of admissible paths is composed of the ranking of (at most) k-shortest paths in number of hops, between the demand end nodes. k is a user-defined parameter. The fraction of the demand volume that is carried by a path that carries traffic, is constrained to be higher or equal than a user-defined parameter tMin. That is, a path ( p \) can carry no traffic, or an amount of traffic equal or greater than \( tMin \cdot h_{d(p)}\), where \( d(p) \) is the demand associated to path \( p \). Finally, the user-defined parameter BIFMAX sets the maximum number of paths of a demand that can carry traffic.

Algorithm description table

Algorithm inputs

Requires a topology (nodes and links) and a demand set within the netPlan object.

Algorithm parameters:

  • BIFMAX: Maximum number of paths in which the traffic of a demand can be bifurcated. Default: 2
  • k: Maximum number of admissible paths per demand. Default: 5
  • solverName: The solver name to be used by JOM. Default: "glpk"
  • solverLibraryName: The solver library full or relative path, to be used by JOM. Leave blank to use JOM default. Default: blank
  • tMin: Minimum fraction of traffic a path can carry. Default: 0.5
Algorithm outputsRoutes are added to netPlan object. No protection segments are defined. Any previous routes are removed.
Required librariesJOM library for solving the optimization problem
KeywordsFlow assignment (FA), JOM, MILP formulation
AuthorsPablo Pavón Mariño, José Luis Izquierdo Zaragoza
DateMay 2013
CodeFA_minBottleneckUtilizationBifurcationConstraints_xp.java

Detailed description

The algorithm solves the following formulation:

Given:

  • \( D \): The set of demands comprising the offered traffic. For each demand \( d \in D \), \( h_d \) is the demand volume, and \( a(d) \) and \( b(d) \) denote the input and output node of the demand.
  • \( G(N,E) \): The network topology, where \( N \) is the set of nodes, and \( E \) the set of unidirectional network links. For each link \( e \in E \), \( a(e) \) and \( b(e) \) denote its input and output nodes, \( u_e \) the link capacity (in the same units as the offered traffic). For each node \( n \in N \), \( \delta^+(n) \) and \( \delta^-(n) \) denote the set of links outgoing and incoming node \( n \), respectively.
  • \( P \): A list of candidate paths for each demand

Find:

  • \( x_{p}, p \in P \): Fraction \( \in [ 0 , 1 ] \) of the traffic of demand \( d \) that traverses path \( p \).
  • \( xx_{p}, p \in P \): Indicates whether or not path \( p \) carries traffic.
  • \( \rho \): Utilization in the bottleneck link.

\( \text{minimize } \left( \rho \right) \text{ subject to: } \\
\sum_{p \in P_{d}} x_{p} = 1 \quad \forall d \in D \\ \sum_{d\in D}h_{d} \sum_{p \in P_{e}\cap P_{d}} x_{p} \leq \rho\cdot u_{e} \quad \forall e \in E \\ \sum_{p \in P_{d}} xx_{p} <= BIFMAX \quad \forall d \in D \\ x_{p} \geq tMin\cdot xx_{p} \quad \forall p \in P \\ xx_{p} \in \lbrace 0 , 1 \rbrace \quad \forall p \in P \)