com.net2plan.examples.ocnbook.offline

• Object
• All Implemented Interfaces:
com.net2plan.interfaces.networkDesign.IAlgorithm, com.net2plan.internal.IExternal

```public class Offline_tcfa_xdeFormulationsMinLinkCost
extends Object
implements com.net2plan.interfaces.networkDesign.IAlgorithm```
This algorithm gives access to several variants of full topology design problems.
 This algorithm gives access to several variants of full topology design problems. Given a set of nodes and a set of unicast demands with known offered traffic. The algorithm searches for (i) the set of links to deploy, (ii) the link capacities, and (iii) how the traffic is routed over the links. The objective function consists in minimizing the cost, given by the sum of the link costs. The cost of a link is the sum of a fixed cost (proportional to the link length) that applies if the link exists (whatever its capacity is), and a variable cost proportional to its capacity and distance. Different problem variants can be selected, with different constraints (e.g. constraint the topology to be bidirectional, to be a ring, a tree...). The solution is searched by solving several variants of flow-link formulations.
Keywords:
Input parameters:
 `topologyType`: Value to select within {arbitrary-mesh, bidirectional-mesh, unidirectional-ring, bidirectional-ring, bidirectional-tree} The constraints on the link topology: arbitrary topology (no specific constraint), arbitrary bidirectional topology (link from i to j exists iff it exists from j to i), unidirectional ring, bidirectional ring, bidirectional tree `solverName`: Value to select within {glpk, ipopt, xpress, cplex} The solver name to be used by JOM. GLPK and IPOPT are free, XPRESS and CPLEX commercial. GLPK, XPRESS and CPLEX solve linear problems w/w.o integer contraints. IPOPT is can solve nonlinear problems (if convex, returns global optimum), but cannot handle integer constraints `solverLibraryName`: Default: The solver library full or relative path, to be used by JOM. Leave blank to use JOM default. `maxSolverTimeInSeconds`: Default: -1.0 Maximum time granted to the solver to solve the problem. If this time expires, the solver returns the best solution found so far (if a feasible solution is found) `fixedCostFactorPerKm`: Default: 1.0 Fixed cost factor per km of a link (the cost of a link of d km and 0 capacity is d times this quantity) `linkPropagationSpeedInKmPerSecond`: Default: 200000.0 The propagation speed in km per second of the deployed links `U_max`: Default: -1.0 The maximum capacity a link can have. If non positive, there is not limit `variableCostFactorPerKmAndTrafficUnit`: Default: 1.0 Variable cost factor per km and traffic unit of a link (the cost of a link of 1 km and 1 unit of capacity, and 0 of fixed cost)
• ### Constructor Summary

Constructors
Constructor and Description
`Offline_tcfa_xdeFormulationsMinLinkCost()`
• ### Method Summary

All Methods
Modifier and Type Method and Description
`String` ```executeAlgorithm(com.net2plan.interfaces.networkDesign.NetPlan netPlan, Map<String,String> algorithmParameters, Map<String,String> net2planParameters)```
`String` `getDescription()`
`List<com.net2plan.utils.Triple<String,String,String>>` `getParameters()`
• ### Methods inherited from class Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
• ### Constructor Detail

`public Offline_tcfa_xdeFormulationsMinLinkCost()`
• ### Method Detail

• #### executeAlgorithm

```public String executeAlgorithm(com.net2plan.interfaces.networkDesign.NetPlan netPlan,
Map<String,String> algorithmParameters,
Map<String,String> net2planParameters)```
Specified by:
`executeAlgorithm` in interface `com.net2plan.interfaces.networkDesign.IAlgorithm`
• #### getDescription

`public String getDescription()`
Specified by:
`getDescription` in interface `com.net2plan.interfaces.networkDesign.IAlgorithm`
Specified by:
`getDescription` in interface `com.net2plan.internal.IExternal`
• #### getParameters

`public List<com.net2plan.utils.Triple<String,String,String>> getParameters()`
Specified by:
`getParameters` in interface `com.net2plan.interfaces.networkDesign.IAlgorithm`
Specified by:
`getParameters` in interface `com.net2plan.internal.IExternal`