public class Offline_tcfa_wdmPhysicalDesign_graspAndILP extends Object implements com.net2plan.interfaces.networkDesign.IAlgorithm
This algorithm is devoted to solve the several network planning problems appearing in the case study in Section 12.10 of the book mentioned below. The context is the planning of a WDM optical network, given a set of node locations, and a set of end-to-end optical connections (lightpaths) to establish. The algorithm should decide on the fibers to deploy, and the routing of the lightpaths on the fibers, minimizing the total network cost. The cost model includes the fiber renting cost (paid to a dark fiber provider), OADM cost (separating between OADMs of degree two, and degree higher than two), and the cost of the transponders. The network must be tolerant to a set of user-defined failures (defined by SRGs). The algorithm permits choosing between two recovery types: 1+1, and shared protection. In the latter, the number of lightpaths between two nodes that survive to any of the failures is at least the number of optical connections requested for that node pair. For solving the problem, the algorithm uses a GRASP heuristic, to govern the iterative search that is performed using small ILPs solved with JOM in each iteration. |
|
Constructor and Description |
---|
Offline_tcfa_wdmPhysicalDesign_graspAndILP() |
Modifier and Type | Method and Description |
---|---|
String |
executeAlgorithm(com.net2plan.interfaces.networkDesign.NetPlan netPlan,
Map<String,String> algorithmParameters,
Map<String,String> net2planParameters)
Execute the algorithm.
|
String |
getDescription()
Returns the description.
|
List<com.net2plan.utils.Triple<String,String,String>> |
getParameters()
Returns the list of required parameters, where the first item of each element
is the parameter name, the second one is the parameter value, and the third
one is the parameter description.
|
public Offline_tcfa_wdmPhysicalDesign_graspAndILP()
public String executeAlgorithm(com.net2plan.interfaces.networkDesign.NetPlan netPlan, Map<String,String> algorithmParameters, Map<String,String> net2planParameters)
com.net2plan.interfaces.networkDesign.IAlgorithm
executeAlgorithm
in interface com.net2plan.interfaces.networkDesign.IAlgorithm
netPlan
- A network plan which serves as input and outputalgorithmParameters
- A key-value map with specific algorithm parameters.Important: The algorithm developer is responsible to convert values from String to their respective type, and to check that values
net2planParameters
- A key-value map with Net2Plan
-wide configuration optionsString
public String getDescription()
com.net2plan.interfaces.networkDesign.IAlgorithm
getDescription
in interface com.net2plan.interfaces.networkDesign.IAlgorithm
getDescription
in interface com.net2plan.internal.IExternal
public List<com.net2plan.utils.Triple<String,String,String>> getParameters()
com.net2plan.interfaces.networkDesign.IAlgorithm
Returns the list of required parameters, where the first item of each element is the parameter name, the second one is the parameter value, and the third one is the parameter description.
It is possible to define type-specific parameters if the default value is set according to the following rules (but user is responsible of checking in its own code):
.class
or .jar
file where the code is located, the class name,
and a set of parameters (pair of key-values separated by commas, where individual
key and value are separated with an equal symbol. The same applies to reports (#report#),
event generators (#eventGenerator#) and event processors (#eventProcessor#).getParameters
in interface com.net2plan.interfaces.networkDesign.IAlgorithm
getParameters
in interface com.net2plan.internal.IExternal