Example: 'Minimum bottleneck utilization routing using a simulated annealing heuristic'

Brief description

Given a set of nodes and links, gith their capacities, an offered traffic, and a set of admissible paths for each demand (given by the k-shortest paths in km for each demand, being k a user-defined parameter), this algorithm uses a simulated annealing metaheuristic to find the non-bifurcated routing solution that minimizes the network congestion. Two solutions are considered neighbors if they differ the routing of one demand. The number of iterations in the inner (all with the same temperature) and outer loop (decreasing the temperature) are user-defined parameters

Algorithm description table

Algorithm inputs

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

Algorithm parameters:

  • k: Number of candidate paths per demand. Default: 100
  • san_numOuterIterations: Number of iterations in the outer loop (changing the temperature). Default: 50
  • san_numInnerIterations: Number of iterations in the inner loop (all with the same temperature). Default: 1000
Algorithm outputsRoutes are added to netPlan object. No protection segments are defined. Any previous routes are removed.
Required librariesNone
KeywordsFlow assignment (FA), Simulated annealing (SAN)
AuthorsPablo Pavón Mariño, José Luis Izquierdo Zaragoza
DateMarch 2013
CodeFA_SAN_minCongestion.java

Detailed description

The initial temperature is computed such that we accept a solution with a 5% of more congestion with 99% of probability. The last temperature is such that with accept a solution with a 5% of more congestion with a 0.01% of probability. Temperature decreases geometrically, the alpha factor of this progression is computed to match previous parameters