An example where the Java Optimization Modeler (JOM) library is used
Network design - Algorithms
Example name | Description |
---|---|
CA_minDelayConcaveCost.java | Find link capacities which minimizes the average network delay under a given budget Keywords: Capacity assignment (CA), Convex formulation, JOM Given a network topology, a known amount of traffic carried in each link, and an available budget, this algorithm computes the capacities in the links that minimize the average network delay (considering only queuing and transmission delays in the links, using the M/M/1 model), with the constraint that the cost does not exceeds the available budget. The total network cost is given by the sum of the costs of the links, where the cost in each link is given by \( u_e ^ \alpha \), being \( \alpha \) a positive parameter. If \( \alpha \) is between 0 and 1, the link cost function is concave respect to the capacities. We solve the problem using a convex formulation, where the decision variables are the utilizations \( \rho_e \) in the links. Note that thanks to this change of variable, the problem is convex (in the variables \( \rho_e \) ) even if it was not originally convex (in the variables \( u_e \) ). |
CFA_minCostModularCapacities_xde.java | Find (modular) link capacities and traffic routing which minimizes the total link cost Keywords: Capacity assignment (CA), Flow assignment (FA), JOM, MILP formulation Given a network topology, and the offered traffic, this algorithm obtains the traffic routing and the (modular) capacities in the links that minimizes the link costs. The capacity of a link is constrained to be the aggregation of integer multiples of modules of capacities {0.15, 0.6, 2.4, 9.6} Gbps, and prices {1, 2, 4, 8} monetary units. Link utilization is limited by the user-defined parameter rhoMax |
CFA_WDM_basicRWA.java | Solve the routing and wavelength assignment problem assuming no wavelength conversion capabilities Keywords: Capacity assignment (CA), Flow assignment (FA), JOM, MILP formulation, WDM Given a network topology of OADM optical nodes connected by WDM fiber links, and a traffic demand of lightpath requests, this algorithm optimally computes the RWA (Routing and Wavelength Assignment) that carries all the lightpaths minimizing the average propagation delay, solving an Integer Linear Program (ILP). Wavelength conversion is not allowed. Only those routes with a length below a user-defined threshold maxLightpathLengthInKm are accepted. All the channels are of the same binaryRatePerChannel_Gbps capacity. The offered traffic demand is supposed to be measured in Gbps, and is rounded up to a multiple of binaryRatePerChannel_Gbps. |
FA_maxBottleneckIdleCapacity_xde_11pathProtection.java | Keywords: Flow assignment (FA), JOM, MILP formulation, Protection algorithm Given a network topology, the capacities in the links and the offered traffic, this algorithm obtains a link-disjoint or a SRG-disjoint (depending on user's choice) primary and backup path for the traffic of each demand, that minimizes the network congestion, with the constraint of non-bifurcated routing. For that it solves an ILP flow-link formulation (more complex in the SRG-disjoint case). In this algorithm, congestion is minimized by maximizing the idle link capacity in the bottleneck (the link with less idle capacity). |
FA_maxBottleneckIdleCapacity_xde.java | Maximum idle bottleneck capacity routing, flow-link formulation Keywords: Flow assignment (FA), JOM, LP formulation, MILP formulation Given a network topology, the capacities in the links and the offered traffic, this algorithm obtains the traffic routing that minimizes the network congestion, with or without the constraint of non-bifurcated routing. In this algorithm, congestion is minimized by maximizing the idle link capacity in the bottleneck (the link with less idle capacity). |
FA_minAvNetBlocking_xde.java | Minimum average network blocking probability routing, flow-link formulation Keywords: Convex formulation, Flow assignment (FA), JOM Given a network topology, the capacities in the links and the offered traffic, this algorithm obtains the traffic routing that minimizes the average network blocking \(B\), estimated according to the formula: \(B = \frac{1}{\sum_d h_d} \sum_e y_e B_e\), where \( h_d \) is the traffic offered by demand \( d \) (in Erlangs), and \(B_e\) is the Erlang-B blocking for link \(e\), assuming that the offered traffic in the link \( y_e \) is all the traffic routed to \( e \) (traffic does not shrink because of the blockings in the rest of the links) |
FA_minAvNetDelay_xde.java | Minimum average network delay routing, flow-link formulation Keywords: Convex formulation, Flow assignment (FA), JOM Given a network topology, the capacities in the links and the offered traffic, this algorithm obtains the traffic routing that minimizes the average network delay T, estimated according to the formula: \( T = \frac{1}{\sum_d h_d} \sum_e y_e T_e \), where \( h_d \) is the offered traffic by demand \( d \) (in bps), and \( T_e \) is the average link delay estimated for link \( e \), given by \( d_e + \frac{L}{u_e - y_e} \). For each link \( e \), \( d_e \) is the propagation delay, \( y_e \) is the average traffic in the link and \( u_e \) is the link capacity (both in bps). \(L\) is the average packet length in bits. |
FA_minAvNumHops_xp.java | Minimum average hop count routing, path formulation Keywords: Flow assignment (FA), JOM, LP formulation, MILP formulation Given a network topology, the capacities in the links and the offered traffic, this algorithm obtains the traffic routing that minimizes the average number of hops 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 km, between the demand end nodes. k is a user-defined parameter. Paths for which its propagation time sums more than maxPropDelayMs, a user-defined parameter, are considered not admissible. The routing may be constrained to be non-bifurcated setting the user-defined parameter nonBifurcated to true |
FA_minAvNumHops_xte.java | Minimum average hop count routing, destination-based routing Keywords: Destination-based routing, Flow assignment (FA), JOM, LP formulation Given a network topology, the capacities in the links and the offered traffic, this algorithm obtains the destination-based traffic routing that minimizes the average number of hops. Destination-based routing means that the routing could be implemented i.e. in an IP network. |
FA_minBottleneckUtilization_xde.java | Minimum bottleneck utilization routing, flow-link formulation Keywords: Flow assignment (FA), JOM, LP formulation, MILP formulation Given a network topology, the capacities in the links and the offered traffic, this algorithm obtains the traffic routing that minimizes the network congestion, with or without the constraint of non-bifurcated routing. In this algorithm, congestion is minimized by minimizing the utilization in the bottleneck (the link with highest utilization). |
FA_minBottleneckUtilization_xp.java | Minimum bottleneck utilization routing, path formulation Keywords: Flow assignment (FA), JOM, LP formulation, MILP formulation 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 km, between the demand end nodes. k is a user-defined parameter. Paths for which its propagation time sums more than maxPropDelayMs, a user-defined parameter, are considered not admissible. The routing may be constrained to be non-bifurcated setting the user-defined parameter nonBifurcated to true. |
FA_minBottleneckUtilizationBifurcationConstraints_xp.java | Minimum bottleneck utilization routing with maximum bifurcation constraints, path formulation Keywords: Flow assignment (FA), JOM, MILP formulation 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. |
FA_OSPF_fastIGPMetric.java | Route traffic with ECMP getting link weights obtained from a heuristic Keywords: Flow assignment (FA), JOM, LP formulation, OSPF This algorithm provides two heuristic methods, presented in [Umit2009], to deal with the IGP weight setting problem with the ECMP rule (NP-hard). These heuristics are based on dual properties of multi-commodity flow (MCF) problems to obtain link metrics in a fast and efficient manner. |
FBA_maxAlphaFairness.java | Solve the Network Utility Maximization (NUM) problem Keywords: Bandwidth assignment (BA), Convex formulation, Flow assignment (FA), JOM Given a network topology and the capacities in the links, this algorithm creates one demand of traffic for each input-output node pair, routes the traffic of each demand through the shortest path in number of hops, and obtains the offered traffic for each demand (that is, assigns bandwidth) to each demand, so that global assignment is \(\alpha\)-fair, with the constraint that no network link is over-congested. According to the Mo & Walrand paper (see reference below), the \(\alpha\)-fairness assignment is obtained by solving the NUM model (Network Utility Maximization) where the utility of a demand \(d\) which is assigned a bandwidth \(h_d\) is given by: \((r^{(1-\alpha)} / (1-\alpha))\), and the target is to maximize the sum of the utilities in all the demands in the network. Reference: J. Mo, J. Walrand, "Fair end-to-end window-based congestion control," IEEE/ACM Transactions on Networking, vol. 8, no. 5, pp. 556–567, October 2000 |
TCA_minLengthBidirectionalRingILP.java | Computes the optimal bidirectional ring for the network Keywords: Capacity assignment (CA), JOM, MILP formulation, Topology assignment (TA) Given a set of nodes \( N \), this algorithm computes the bidirectional ring with the minimum length (in km) in all its nodes, solving with an ILP (Integer Linear Program) the associated Traveling Salesman Problem (TSP) instance. All the links are set to have the capacity passed as input parameter. |
TCA_nodeLocationILP.java | Computes the optimal minimum cost access-to-core network Keywords: Capacity assignment (CA), JOM, MILP formulation, Topology assignment (TA) Given a set of access nodes, this algorithm computes the subset of access nodes which have a core node located next to it (in the same place), and the links access-to-core nodes, so that the network cost is minimized. This cost is given by a cost per core node (always 1) plus a cost per link, given by the product of link distance and the user-defined parameter linkCostPerKm. Access-core link capacities are fixed to the user-defined parameter linkCapacities. A core node cannot be connected to more than K_max access nodes, a user-defined parameter. This problem is modeled as a ILP and optimally solved using a solver. |
TCFA_minLinkCost.java | Computes a minimum cost network with optimized capacities and traffic routing, path-link formulation Keywords: Capacity assignment (CA), Flow assignment (FA), JOM, MILP formulation, Topology assignment (TA) Given a set of nodes \( N \), and a traffic demand, this algorithm computes the set of links, their capacities and the routing of traffic that optimally minimizes the network cost given by a fixed cost per link, plus a variable cost with link capacities. Between two nodes, at most one link can exist. The maximum link capacity is U_max, a user-defined parameter. Link fixed cost is given by link distance by fixedCostFactorPerKm, a user-defined parameter. Link variable cost is given by link distance, by link capacity, by variableCostFactorPerKmAndTrafficUnit, a user-defined parameter. The problem is modeled with JOM as a MILP, and optimally solved by a external solver. |