public interface IAlgorithm
Contract that must be fulfilled such that an algorithm can be run in Net2Plan
.
In practical network design different variables can be involved: link capacities, the traffic routing, the topological design of the network, the storage capacity at each node, and so on. Usually, network design problems receive some of this information as input parameters (e.g. traffic demand, and network topology) and try optimize the rest (e.g. capacities in the links and traffic routing) according to a performance merit of interest. Clearly, the number of possible variants and subtypes of network design problems is infinite. Moreover, different technologies add their own particular aspects to network design. For this reason, network design has become a mixture of art and engineering.
In an attempt to provide a (somehow) systematic criteria to cathegorize network design problems, in Net2Plan
we adopted the following scheme, which is just an extension of the network design problems' taxonomy in Kleinrock's book [1]:
According to this naming scheme, combinations of these problems are named combining the acronyms. For example, a capacity and flow assignment (CFA) problem involves the joint computation of routing and link capacities. We remark that this taxonomy should be considered as an attempt to give a didactic organization to the utmost diversity of planning problems that arise in communication networks.
[1] L. Kleinrock, Queueing Systems, Volume 2: Computer Applications, John Wiley & Sons, 1976
Modifier and Type | Method and Description |
---|---|
String |
executeAlgorithm(NetPlan netPlan,
Map<String,String> algorithmParameters,
Map<String,String> net2planParameters)
Execute the algorithm.
|
String |
getDescription()
Returns the description.
|
List<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.
|
String getDescription()
List<Triple<String,String,String>> getParameters()
String executeAlgorithm(NetPlan netPlan, Map<String,String> algorithmParameters, Map<String,String> net2planParameters)
netPlan
- A network plan which serves as input and outputalgorithmParameters
- A key-value map with specific algorithm parameters.net2planParameters
- A key-value map with Net2Plan
-wide configuration optionsString