Package | Description |
---|---|
com.net2plan.interfaces.networkDesign |
Provides a set of classes and interfaces for the network design tool.
|
com.net2plan.interfaces.networkDesign.dynamicSrgs | |
com.net2plan.interfaces.simulation |
Provides a set of classes for the online simulator tool.
|
com.net2plan.libraries |
Provides a set of useful libraries to develop algorithms and reports.
|
com.net2plan.research.niw.networkModel |
Modifier and Type | Method and Description |
---|---|
Link |
NetPlan.addLink(Node originNode,
Node destinationNode,
double capacity,
double lengthInKm,
double propagationSpeedInKmPerSecond,
Map<String,String> attributes,
NetworkLayer... optionalLayerParameter)
Adds a new link.
|
Link |
Demand.coupleToNewLinkCreated(NetworkLayer newLinkLayer)
Creates a new link in the given layer with same end nodes, and couples it to this demand.
|
Link |
Link.createBidirectionalPair()
Creates a link in the opposite direction as this, and with the same attributes, and associate both as bidirectional pairs.
|
Link |
Link.getBidirectionalPair()
If the link was added using addLinkBidirectional()
returns the link in the opposite direction (if it was not previously removed).
|
Link |
Demand.getCoupledLink()
Returns the link this demand is coupled to.
|
Link |
MulticastTree.getIngressLinkOfNode(Node n)
|
Link |
NetPlan.getLink(int index,
NetworkLayer... optionalLayerParameter)
Returns the link with the given index in the given layer.
|
Link |
NetPlan.getLinkFromId(long uid)
Returns the link with the given unique identifier.
|
Modifier and Type | Method and Description |
---|---|
Pair<Link,Link> |
NetPlan.addLinkBidirectional(Node originNode,
Node destinationNode,
double capacity,
double lengthInKm,
double propagationSpeedInKmPerSecond,
Map<String,String> attributes,
NetworkLayer... optionalLayerParameter)
Adds two links, one in each direction.
|
Pair<Link,Link> |
NetPlan.addLinkBidirectional(Node originNode,
Node destinationNode,
double capacity,
double lengthInKm,
double propagationSpeedInKmPerSecond,
Map<String,String> attributes,
NetworkLayer... optionalLayerParameter)
Adds two links, one in each direction.
|
SortedMap<MulticastDemand,List<SortedSet<Link>>> |
NetPlan.computeMulticastCandidatePathList(DoubleMatrix1D costs,
String solverName,
String solverLibraryName,
double maxSolverTimeInSecondsPerTree,
String... candidateTreeListParamValuePairs)
The same as
computeMulticastCandidatePathList for the default layer |
SortedMap<MulticastDemand,List<SortedSet<Link>>> |
NetPlan.computeMulticastCandidatePathList(NetworkLayer layer,
DoubleMatrix1D linkCosts,
String solverName,
String solverLibraryName,
double maxSolverTimeInSecondsPerTree,
String... candidateTreeListParamValuePairs)
Adds multicast trees specified by those trees that satisfy the options described below.
|
static SortedMap<Pair<Node,Node>,List<Pair<List<Link>,List<Link>>>> |
NetPlan.computeUnicastCandidate11PathList(Map<Pair<Node,Node>,List<List<Link>>> cpl,
int disjointType)
Computes a list of disjoint path pairs for each node pair, using the paths in the input candidate path list given.
|
static SortedMap<Pair<Node,Node>,List<Pair<List<Link>,List<Link>>>> |
NetPlan.computeUnicastCandidate11PathList(Map<Pair<Node,Node>,List<List<Link>>> cpl,
int disjointType)
Computes a list of disjoint path pairs for each node pair, using the paths in the input candidate path list given.
|
SortedMap<Pair<Node,Node>,List<List<Link>>> |
NetPlan.computeUnicastCandidatePathList(DoubleMatrix1D linkCosts,
int K,
double maxLengthInKm,
int maxNumHops,
double maxPropDelayInMs,
double maxRouteCost,
double maxRouteCostFactorRespectToShortestPath,
double maxRouteCostRespectToShortestPath,
SortedSet<Pair<Node,Node>> nodePairs,
NetworkLayer... optionalLayerParameter)
Computes for all the node pairs, a candidate path list in the given layer, composed of the k shortest paths according with the options indicated below.
|
SortedSet<Link> |
MulticastDemand.coupleToNewLinksCreated(NetworkLayer newLinkLayer)
Creates new links in the given layer, from the demand ingress node to each one of the demand egress nodes, and couples these newly created links to the multicast demand.
|
SortedSet<Link> |
SharedRiskGroup.getAffectedLinks(NetworkLayer layer)
Returns all the links affected by this SRG, but only those at a particular layer.
|
SortedSet<Link> |
SharedRiskGroup.getAffectedLinksAllLayers()
Returns all the links affected by the SRG at all the layers: the links affected, and the input and output links of the affected nodes
|
SortedMap<Link,SortedMap<String,Pair<Double,Double>>> |
NetPlan.getAllLinksPerQosOccupationAndQosViolationMap(NetworkLayer... optionalLayerParameter)
For each link in the given layer, returns a map, with key the QoS types traversing it, and two
associated values: (i) the total traffic occupied of such Qos type, (ii) the amount out of that traffic that is violating the QoS
|
SortedSet<Link> |
MulticastDemand.getCoupledLinks()
Returns the
SortedSet of Links this demand is coupled to, or an empty SortedSet if this demand is not coupled. |
SortedMap<Pair<Demand,Link>,Double> |
Link.getForwardingRules()
Returns the non zero forwarding rules that are defined in the link.
|
SortedMap<Pair<Demand,Link>,Double> |
Demand.getForwardingRules()
Returns the non zero forwarding rules as a map of pairs demand-link, and its associated splitting factor (between 0 and 1).
|
SortedMap<Pair<Demand,Link>,Double> |
Node.getForwardingRules(Demand demand)
Returns the set of forwarding rules of links initiated in the node and associated to the given demand (the links are then in the same layer
as the demand), that have a non-zero splitting factor
|
SortedMap<Pair<Demand,Link>,Double> |
NetPlan.getForwardingRules(NetworkLayer... optionalLayerParameter)
Returns the forwarding rules for the given layer.
|
SortedMap<Pair<Demand,Link>,Double> |
Node.getForwardingRules(NetworkLayer... optionalLayerParameter)
Returns the set of forwarding rules of links initiated in the node of the given layer,
which have a non-zero splitting factor.
|
SortedSet<Link> |
Node.getIncomingLinks(NetworkLayer... optionalLayerParameter)
Returns the set of links ending in the node, in the given layer.
|
SortedSet<Link> |
Node.getIncomingLinksAllLayers()
Returns the set of links ending in the node at any layer.
|
Set<Link> |
MulticastTree.getInitialLinkSet()
Returns the initial
Set of Links of the tree when it was created. |
SortedMap<Link,InterLayerPropagationGraph.IPGNode> |
InterLayerPropagationGraph.getLink2IGPVertexMap() |
List<Link> |
NetPlan.getLinks(NetworkLayer... optionalLayerParameter)
Return a list of all the links in the given layer.
|
SortedSet<Link> |
SharedRiskGroup.getLinks(NetworkLayer layer)
Returns the set of links associated to the SRG (fail, when the SRG is in failure state), but only those belonging to the given layer.
|
SortedSet<Link> |
SharedRiskGroup.getLinksAllLayers()
Returns the set of links associated to the SRG (fail, when the SRG is in failure state).
|
abstract SortedSet<Link> |
DynamicSrgImplementation.getLinksAllLayers() |
SortedSet<Link> |
NetPlan.getLinksAreBottleneck(NetworkLayer... optionalLayerParameter)
Returns the set of links that are a bottleneck, i.e the fraction of occupied capacity respect to the total
is highest.
|
SortedSet<Link> |
NetPlan.getLinksCoupledToMulticastDemands(NetworkLayer... optionalLayerParameter)
Returns the set of links that are coupled to a multicast demand in the given layer.
|
SortedSet<Link> |
NetPlan.getLinksCoupledToUnicastDemands(NetworkLayer... optionalLayerParameter)
Returns the set of links that are couple to a unicast demand in the given layer.
|
SortedSet<Link> |
NetPlan.getLinksDown(NetworkLayer... optionalLayerParameter)
Returns the set of links that are down in the given layer.
|
SortedSet<Link> |
NetPlan.getLinksDownAllLayers()
Returns the set of links that are down in all layers.
|
Triple<SortedMap<Demand,SortedSet<Link>>,SortedMap<Demand,SortedSet<Link>>,SortedMap<Pair<MulticastDemand,Node>,SortedSet<Link>>> |
Link.getLinksDownPropagationPotentiallyCarryingTrafficTraversingThisLink()
Returns the set of links in lower layers carry the traffic that traverses this link, before and after traversing it,
according to the routes/forwarding rules defined.
|
Triple<SortedMap<Demand,SortedSet<Link>>,SortedMap<Demand,SortedSet<Link>>,SortedMap<Pair<MulticastDemand,Node>,SortedSet<Link>>> |
Link.getLinksDownPropagationPotentiallyCarryingTrafficTraversingThisLink()
Returns the set of links in lower layers carry the traffic that traverses this link, before and after traversing it,
according to the routes/forwarding rules defined.
|
Triple<SortedMap<Demand,SortedSet<Link>>,SortedMap<Demand,SortedSet<Link>>,SortedMap<Pair<MulticastDemand,Node>,SortedSet<Link>>> |
Link.getLinksDownPropagationPotentiallyCarryingTrafficTraversingThisLink()
Returns the set of links in lower layers carry the traffic that traverses this link, before and after traversing it,
according to the routes/forwarding rules defined.
|
Set<Link> |
MulticastTree.getLinkSet()
Returns the
Set of Links of the tree |
SortedSet<Link> |
InterLayerPropagationGraph.getLinksInGraph() |
Pair<SortedSet<Link>,SortedSet<Link>> |
Demand.getLinksNoDownPropagationPotentiallyCarryingTraffic()
Returns the set of links in this layer that could potentially carry traffic of this demand, according to the routes/forwarding rules defined,
if the routes had carried traffic / (hop-by-hop) the demand had offered traffic different to zero.
|
Pair<SortedSet<Link>,SortedSet<Link>> |
Demand.getLinksNoDownPropagationPotentiallyCarryingTraffic()
Returns the set of links in this layer that could potentially carry traffic of this demand, according to the routes/forwarding rules defined,
if the routes had carried traffic / (hop-by-hop) the demand had offered traffic different to zero.
|
SortedSet<Link> |
MulticastDemand.getLinksNoDownPropagationPotentiallyCarryingTraffic(Node egressNode)
Returns the set of links in this layer that could potentially carry traffic of this multicast demand,
when flowing from the origin node to the given egress node, according to the multicast trees defined.
|
SortedSet<Link> |
NetPlan.getLinksOversubscribed(NetworkLayer... optionalLayerParameter)
Returns the set of links oversuscribed: the total occupied capacity exceeds the link capacity.
|
Triple<SortedMap<Demand,SortedSet<Link>>,SortedMap<Demand,SortedSet<Link>>,SortedMap<Pair<MulticastDemand,Node>,SortedSet<Link>>> |
Link.getLinksThisLayerPotentiallyCarryingTrafficTraversingThisLink()
Returns the set of links in this layer (including this) that carry the traffic that traverses this link, before and after traversing it,
according to the routes/forwarding rules defined.
|
Triple<SortedMap<Demand,SortedSet<Link>>,SortedMap<Demand,SortedSet<Link>>,SortedMap<Pair<MulticastDemand,Node>,SortedSet<Link>>> |
Link.getLinksThisLayerPotentiallyCarryingTrafficTraversingThisLink()
Returns the set of links in this layer (including this) that carry the traffic that traverses this link, before and after traversing it,
according to the routes/forwarding rules defined.
|
Triple<SortedMap<Demand,SortedSet<Link>>,SortedMap<Demand,SortedSet<Link>>,SortedMap<Pair<MulticastDemand,Node>,SortedSet<Link>>> |
Link.getLinksThisLayerPotentiallyCarryingTrafficTraversingThisLink()
Returns the set of links in this layer (including this) that carry the traffic that traverses this link, before and after traversing it,
according to the routes/forwarding rules defined.
|
SortedSet<Link> |
NetPlan.getLinksUp(NetworkLayer... optionalLayerParameter)
Returns the set of links that are up in the given layer.
|
SortedSet<Link> |
NetPlan.getLinksUpAllLayers()
Returns the set of links that are up in all layers.
|
SortedSet<Link> |
Demand.getLinksWithNonZeroForwardingRules()
Returns the set of links in this layer, with non zero forwarding rules defined for them.
|
SortedSet<Link> |
NetPlan.getLinksWithZeroCapacity(NetworkLayer... optionalLayerParameter)
Returns the set of links that have zero capacity in the given layer.
|
SortedSet<Link> |
NetPlan.getNodePairLinks(Node originNode,
Node destinationNode,
boolean returnLinksInBothDirections,
NetworkLayer... optionalLayerParameter)
Gets the set of links at the given layer from the given nodes (if
returnLinksInBothDirections is true , also the reversed links are included). |
SortedSet<Link> |
Node.getOutgoingLinks(NetworkLayer... optionalLayerParameter)
Returns the set of links initiated in the node, in the given layer.
|
SortedSet<Link> |
Node.getOutgoingLinksAllLayers()
Returns the set of links initiated in the node in all layer.
|
Set<Link> |
MulticastTree.getOutputLinkOfNode(Node n)
|
List<Link> |
Route.getSeqLinks()
Returns the route current sequence of traversed links (without any resource traversed).
|
static List<Link> |
Route.getSeqLinks(List<? extends NetworkElement> seqLinksAndResources)
Given a path, composed of a sequence of links and resources, extracts the list of links, filtering out the resources
|
List<Link> |
MulticastTree.getSeqLinksToEgressNode(Node egressNode)
Given an egress node, returns the unique sequence of tree links from the ingress node to it, or null if the egress
node is not part of the tree, or the node passed is not an egress node of the multicast demand.
|
SortedSet<Link> |
NetPlan.getTaggedLinks(String tag,
NetworkLayer... optionalLayerParameter)
Returns the set of links in the given layer with the given tag.
|
SortedMap<Link,Double> |
Demand.getTraversedLinksAndCarriedTraffic(boolean normalizedToOfferedTraffic)
Returns a map with an entry for each traversed link, and associated to it the demand's traffic carried in that link.
|
SortedMap<Link,Double> |
MulticastDemand.getTraversedLinksAndCarriedTraffic(boolean normalizedToOfferedTraffic)
Returns a map with an entry for each traversed link, and associated to it the demand's traffic carried in that link.
|
Modifier and Type | Method and Description |
---|---|
void |
SharedRiskGroup.addLink(Link link)
Adds a link to the SRG.
|
void |
Demand.coupleToUpperOrSameLayerLink(Link link)
Couples this demand to a link in an upper layer.
|
double |
NetPlan.getForwardingRuleCarriedTraffic(Demand demand,
Link link)
Returns the traffic that is carried using a forwarding rule, in the given layer.
|
double |
NetPlan.getForwardingRuleSplittingFactor(Demand demand,
Link link)
Returns the splitting factor of the forwarding rule of the given demand and link, which must be of the same layer.
|
double |
Demand.getOccupiedCapacity(Link e)
Returns the amount of occupied capacity of the demand in a particular link
|
void |
SharedRiskGroup.removeLink(Link e)
Removes a link from the set of links of the SRG.
|
void |
Link.setBidirectionalPair(Link e)
Sets the given link as the bidirectional pair of this link.
|
double |
NetPlan.setForwardingRule(Demand demand,
Link link,
double splittingRatio)
Adds a new forwarding rule (or override an existing one), to the layer of the demand and link (must be in the same layer).
|
Modifier and Type | Method and Description |
---|---|
MulticastTree |
NetPlan.addMulticastTree(MulticastDemand demand,
double carriedTraffic,
double occupiedLinkCapacity,
Set<Link> linkSet,
Map<String,String> attributes)
Adds a new traffic multicast tree.
|
void |
NetPlan.addMulticastTreesFromCandidateTreeList(SortedMap<MulticastDemand,List<SortedSet<Link>>> cpl)
Adds multiple multicast trees from a Candidate Tree list.
|
Route |
NetPlan.addRoute(Demand demand,
double carriedTraffic,
double occupiedLinkCapacity,
List<Link> sequenceOfLinks,
Map<String,String> attributes)
Adds a new traffic route
|
void |
NetPlan.addRoutesAndBackupRoutesFromCandidate11PathList(SortedMap<Pair<Node,Node>,List<Pair<List<Link>,List<Link>>>> cpl11,
NetworkLayer... optionalLayer)
For each demand in the map, adds a number of route pairs with the given paths, where each route pair has a primary route and one backup to it.
|
void |
NetPlan.addRoutesAndBackupRoutesFromCandidate11PathList(SortedMap<Pair<Node,Node>,List<Pair<List<Link>,List<Link>>>> cpl11,
NetworkLayer... optionalLayer)
For each demand in the map, adds a number of route pairs with the given paths, where each route pair has a primary route and one backup to it.
|
void |
NetPlan.addRoutesFromCandidatePathList(SortedMap<Pair<Node,Node>,List<List<Link>>> cpl,
NetworkLayer... optionalLayer)
Adds multiples routes for each demand of the given layer, using the paths in an input Candidate Path List.
|
NetworkLayer |
NetPlan.checkContiguousPath(List<Link> links,
NetworkLayer layer,
Node originNode,
Node destinationNode)
Checks that the input sequence of links belong to the same layer and follow a contiguous path.
|
static SortedMap<Pair<Node,Node>,List<Pair<List<Link>,List<Link>>>> |
NetPlan.computeUnicastCandidate11PathList(Map<Pair<Node,Node>,List<List<Link>>> cpl,
int disjointType)
Computes a list of disjoint path pairs for each node pair, using the paths in the input candidate path list given.
|
void |
MulticastDemand.couple(Set<Link> links)
Couples this demand to the given
SortedSet of Links in the upper layer. |
void |
NetPlan.setForwardingRules(Collection<Demand> demands,
Collection<Link> links,
Collection<Double> splittingFactors,
boolean removePreviousRulesAffectedDemands)
Adds a set of forwarding rules (or override existing ones).
|
void |
MulticastTree.setLinks(Set<Link> newLinkSet)
Sets the new set of
Links of the multicast tree. |
void |
NetPlan.setLinksAndNodesFailureState(Collection<Link> linksToSetAsUp,
Collection<Link> linksToSetAsDown,
Collection<Node> nodesToSetAsUp,
Collection<Node> nodesToSetAsDown)
Changes the failure state of the links and updates the routes/trees (they do not carry traffic nor occupy capacity), and hop-by-hop routing
(no traffic is forwarded in links down)
|
void |
NetPlan.setLinksAndNodesFailureState(Collection<Link> linksToSetAsUp,
Collection<Link> linksToSetAsDown,
Collection<Node> nodesToSetAsUp,
Collection<Node> nodesToSetAsDown)
Changes the failure state of the links and updates the routes/trees (they do not carry traffic nor occupy capacity), and hop-by-hop routing
(no traffic is forwarded in links down)
|
void |
Route.setSeqLinks(List<Link> seqLinks)
Sets the new sequence of links traversed by the route.
|
Constructor and Description |
---|
InterLayerPropagationGraph(SortedSet<Demand> initialDemands,
SortedSet<Link> initialLinks,
SortedSet<Pair<MulticastDemand,Node>> initialMDemands,
boolean upWards) |
Modifier and Type | Method and Description |
---|---|
SortedSet<Link> |
DynamicSrgAllBidiLinksTwoNodes.getLinksAllLayers() |
Modifier and Type | Field and Description |
---|---|
Link |
SimEvent.LinkRemove.link |
Link |
SimEvent.LinkModify.link |
Link |
SimEvent.LinkAdd.linkAddedToFillByProcessor |
Modifier and Type | Field and Description |
---|---|
Collection<Link> |
SimEvent.NodesAndLinksChangeFailureState.linksToDown |
Collection<Link> |
SimEvent.NodesAndLinksChangeFailureState.linksToUp |
List<Link> |
SimEvent.RouteAdd.seqLinks |
List<Link> |
SimEvent.RouteModify.seqLinks |
Constructor and Description |
---|
LinkModify(Link link,
double newCapacity)
Default constructor
|
LinkRemove(Link link)
Default constructor
|
Constructor and Description |
---|
NodesAndLinksChangeFailureState(Collection<Node> nodesToUp,
Collection<Node> nodesToDown,
Collection<Link> linksToUp,
Collection<Link> linksToDown)
Default constructor.
|
NodesAndLinksChangeFailureState(Collection<Node> nodesToUp,
Collection<Node> nodesToDown,
Collection<Link> linksToUp,
Collection<Link> linksToDown)
Default constructor.
|
RouteAdd(Demand demand,
List<Link> seqLinks,
double carriedTraffic,
double occupiedLinkCapacity)
Default constructor.
|
RouteModify(Route route,
List<Link> seqLinks,
double carriedTraffic,
double occupiedLinkCapacity)
Default constructor.
|
Modifier and Type | Field and Description |
---|---|
List<Link> |
WDMUtils.RSA.seqLinks
The sequence of traversed fibers
|
Modifier and Type | Method and Description |
---|---|
static edu.uci.ics.jung.graph.Graph<Node,Link> |
GraphUtils.JUNGUtils.buildAuxiliaryNodeDisjointGraph(edu.uci.ics.jung.graph.Graph<Node,Link> graph,
Node originNode,
Node destinationNode)
Builds an auxiliary graph for the application of edge-disjoint shortest-path pair algorithms to node-disjoint problems.
|
static Pair<edu.uci.ics.jung.graph.Graph<Node,Link>,org.apache.commons.collections15.Transformer<Link,Double>> |
GraphUtils.JUNGUtils.buildAuxiliaryNodeDisjointGraph(edu.uci.ics.jung.graph.Graph<Node,Link> graph,
org.apache.commons.collections15.Transformer<Link,Double> nev,
Node originNode,
Node destinationNode)
Builds an auxiliary graph for the application of edge-disjoint shortest-path pair algorithms to node-disjoint problems.
|
static Pair<edu.uci.ics.jung.graph.Graph<Node,Link>,org.apache.commons.collections15.Transformer<Link,Double>> |
GraphUtils.JUNGUtils.buildAuxiliaryNodeDisjointGraph(edu.uci.ics.jung.graph.Graph<Node,Link> graph,
org.apache.commons.collections15.Transformer<Link,Double> nev,
Node originNode,
Node destinationNode)
Builds an auxiliary graph for the application of edge-disjoint shortest-path pair algorithms to node-disjoint problems.
|
static Triple<List<Demand>,List<Link>,List<Double>> |
IPUtils.computeECMPForwardinRules(List<Node> nodes,
List<Link> links,
List<Demand> demands,
DoubleMatrix1D linkWeightVector)
Computes the forwarding rules according to an OSPF/ECMP scheme, for the given demands.
|
static Triple<DoubleMatrix2D,Map<Link,Set<Node>>,Map<Node,Set<Link>>> |
WirelessUtils.computeInterferenceMap(List<Node> nodes,
List<Link> links,
boolean simultaneousTxAndRxPossible)
Given a wireless network where a node cannot simultanously receive signals from two different nodes (or a collision would be produced and no signal is correctly received), this function computes the cases in which a node transmission interferes with a link reception,
and returns this information in several structures.
|
static Triple<DoubleMatrix2D,Map<Link,Set<Node>>,Map<Node,Set<Link>>> |
WirelessUtils.computeInterferenceMap(List<Node> nodes,
List<Link> links,
boolean simultaneousTxAndRxPossible)
Given a wireless network where a node cannot simultanously receive signals from two different nodes (or a collision would be produced and no signal is correctly received), this function computes the cases in which a node transmission interferes with a link reception,
and returns this information in several structures.
|
static Map<List<Link>,WDMUtils.ModulationFormat> |
WDMUtils.computeModulationFormatPerPath(Map<Pair<Node,Node>,List<List<Link>>> cpl,
Set<WDMUtils.ModulationFormat> availableModulationFormats)
Returns the modulation format with the maximum spectral efficiency, while
the optical reach constraint is fulfilled, for each path in the list of candidate paths (
cpl ) |
static SortedMap<Demand,SortedMap<Link,Double>> |
GraphUtils.convert_xp2fdeMap(Collection<Route> routes)
Given a path-based routing, returns the forwarding rules map: fraction of traffic for each demand incoming to the link
initial node (or produced in it) forwarded to the link.
|
static List<List<Link>> |
GraphUtils.getAllLooplessShortestPaths(List<Node> nodes,
List<Link> links,
Node originNode,
Node destinationNode,
SortedMap<Link,Double> linkCostMap)
Returns all the loopless shortest paths between two nodes.
|
static List<Link> |
GraphUtils.getCapacitatedShortestPath(Collection<Node> nodes,
Collection<Link> links,
Node originNode,
Node destinationNode,
SortedMap<Link,Double> linkCostMap,
SortedMap<Link,Double> linkSpareCapacityMap,
double capacityGoal) |
static edu.uci.ics.jung.graph.Graph<Node,Link> |
GraphUtils.JUNGUtils.getGraphFromLinkMap(Collection<Node> nodes,
Collection<Link> links)
Obtains a
JUNG graph from a given set of links. |
static List<List<Link>> |
GraphUtils.getKLooplessShortestPaths(List<Node> nodes,
List<Link> links,
Node originNode,
Node destinationNode,
Map<Link,Double> linkCostMap,
int K,
double maxLengthInKm,
int maxNumHops,
double maxPropDelayInMs,
double maxRouteCost,
double maxRouteCostFactorRespectToShortestPath,
double maxRouteCostRespectToShortestPath)
Returns the K-loopless shortest paths between two nodes, satisfying some user-defined constraints.
|
static List<SortedSet<Link>> |
GraphUtils.getKMinimumCostMulticastTrees(NetworkLayer layer,
Node originNode,
SortedSet<Node> destinationNodes,
DoubleMatrix2D Aout_ne,
DoubleMatrix2D Ain_ne,
DoubleMatrix1D linkCost,
String solverName,
String solverLibraryName,
double maxSolverTimeInSecondsPerTree,
int K,
int maxCopyCapability,
double maxE2ELengthInKm,
int maxE2ENumHops,
double maxE2EPropDelayInMs,
double maxTreeCost,
double maxTreeCostFactorRespectToMinimumCostTree,
double maxTreeCostRespectToMinimumCostTree)
Returns the K-minimum cost multicast trees starting in the originNode and ending in the set destinationNodes, satisfying some user-defined constraints.
|
static SortedSet<Link> |
GraphUtils.getMinimumCostMulticastTree(NetworkLayer layer,
DoubleMatrix2D Aout_ne,
DoubleMatrix2D Ain_ne,
DoubleMatrix1D linkCost,
Node originNode,
Set<Node> destinationNodes,
int maxCopyCapability,
int maxE2ENumHops,
double maxE2ELengthInKm,
double maxE2EPropDelayInMs,
String solverName,
String solverLibraryName,
double maxSolverTimeInSeconds,
String... solverParam) |
static Pair<Map<Pair<Link,Integer>,List<Route>>,Map<Node,List<Route>>> |
WDMUtils.getNetworkSlotOccupancyMap(NetPlan netPlan,
boolean countFailedLightpaths,
NetworkLayer... optionalLayerParameter)
Returns two maps, showing the frequency slots in the links and signal regenerator in the nodes occupancies.
|
static List<Link> |
GraphUtils.getShortestPath(Collection<Node> nodes,
Collection<Link> links,
Node originNode,
Node destinationNode,
Map<Link,Double> linkCostMap)
Obtains the sequence of links representing the (unidirectional) shortest path between two nodes.
|
static List<List<Link>> |
GraphUtils.getTwoLinkDisjointPaths(Collection<Node> nodes,
Collection<Link> links,
Node originNode,
Node destinationNode,
Map<Link,Double> linkCostMap)
Returns the shortest pair of link-disjoint paths, where each item represents a path.
|
static List<List<Link>> |
GraphUtils.getTwoMaximumLinkAndNodeDisjointPaths(Collection<Node> nodes,
Collection<Link> links,
Node originNode,
Node destinationNode,
SortedMap<Link,Double> linkCostMap) |
static List<List<Link>> |
GraphUtils.getTwoNodeDisjointPaths(Collection<Node> nodes,
Collection<Link> links,
Node originNode,
Node destinationNode,
SortedMap<Link,Double> linkCostMap)
Returns the shortest pair of node-disjoint paths, where each item represents a path.
|
static List<List<Link>> |
GraphUtils.JUNGUtils.getTwoNodeDisjointPaths(edu.uci.ics.jung.graph.Graph<Node,Link> graph,
org.apache.commons.collections15.Transformer<Link,Double> nev,
Node originNode,
Node destinationNode)
Returns the shortest pair of node-disjoint paths, where each item represents a path.
|
Modifier and Type | Method and Description |
---|---|
static int |
WDMUtils.getFiberNumFrequencySlots(Link fiber)
Returns the number of frequency slots for the given fiber.
|
static double |
IPUtils.getLinkWeight(Link link)
Returns the weight associated to a given link.
|
static boolean |
WDMUtils.isWDMFormatCorrect(Link fiber)
Returns true if the
Link object representing a fiber is well formed, according to the WDMUtils requirements. |
static void |
WDMUtils.setFiberNumFrequencySlots(Link fiber,
int numFrequencySlots)
Sets the number of frequency slots available on the given fiber.
|
static void |
IPUtils.setLinkWeight(Link link,
double linkWeight)
Sets the weight associated to the link.
|
Modifier and Type | Method and Description |
---|---|
static edu.uci.ics.jung.graph.Graph<Node,Link> |
GraphUtils.JUNGUtils.buildAuxiliaryNodeDisjointGraph(edu.uci.ics.jung.graph.Graph<Node,Link> graph,
Node originNode,
Node destinationNode)
Builds an auxiliary graph for the application of edge-disjoint shortest-path pair algorithms to node-disjoint problems.
|
static Pair<edu.uci.ics.jung.graph.Graph<Node,Link>,org.apache.commons.collections15.Transformer<Link,Double>> |
GraphUtils.JUNGUtils.buildAuxiliaryNodeDisjointGraph(edu.uci.ics.jung.graph.Graph<Node,Link> graph,
org.apache.commons.collections15.Transformer<Link,Double> nev,
Node originNode,
Node destinationNode)
Builds an auxiliary graph for the application of edge-disjoint shortest-path pair algorithms to node-disjoint problems.
|
static Pair<edu.uci.ics.jung.graph.Graph<Node,Link>,org.apache.commons.collections15.Transformer<Link,Double>> |
GraphUtils.JUNGUtils.buildAuxiliaryNodeDisjointGraph(edu.uci.ics.jung.graph.Graph<Node,Link> graph,
org.apache.commons.collections15.Transformer<Link,Double> nev,
Node originNode,
Node destinationNode)
Builds an auxiliary graph for the application of edge-disjoint shortest-path pair algorithms to node-disjoint problems.
|
static void |
GraphUtils.checkRouteContinuity(List<Link> seqLinks,
Constants.CheckRoutingCycleType checkCycles)
Checks for validity of a given path (continuity and, optionally, no loops).
|
static Triple<List<Demand>,List<Link>,List<Double>> |
IPUtils.computeECMPForwardinRules(List<Node> nodes,
List<Link> links,
List<Demand> demands,
DoubleMatrix1D linkWeightVector)
Computes the forwarding rules according to an OSPF/ECMP scheme, for the given demands.
|
static DoubleMatrix2D |
IPUtils.computeECMPRoutingTableMatrix_fte(List<Node> nodes,
List<Link> links,
DoubleMatrix1D linkWeightVector)
Computes the routing table matrix according to an OSPF/ECMP scheme.
|
static Triple<DoubleMatrix2D,Map<Link,Set<Node>>,Map<Node,Set<Link>>> |
WirelessUtils.computeInterferenceMap(List<Node> nodes,
List<Link> links,
boolean simultaneousTxAndRxPossible)
Given a wireless network where a node cannot simultanously receive signals from two different nodes (or a collision would be produced and no signal is correctly received), this function computes the cases in which a node transmission interferes with a link reception,
and returns this information in several structures.
|
static DoubleMatrix2D |
WirelessUtils.computeInterferenceMatrixNaturalUnits(List<Link> links,
double interferenceAttenuationFactor_nu,
double pathLossExponent)
Computes the interference matrix in a network subject to soft interferences: a matrix with as many rows and columns as links, with the gain in natural units of the signal from origin of e1 to destination of e2.
|
static WDMUtils.ModulationFormat |
WDMUtils.computeModulationFormat(List<Link> seqFibers,
Set<WDMUtils.ModulationFormat> availableModulationFormats)
The same as
computeModulationFormat(lengthKm, availableModulationFormats) , where lengthKm is the length in km of the input path. |
static Map<List<Link>,WDMUtils.ModulationFormat> |
WDMUtils.computeModulationFormatPerPath(Map<Pair<Node,Node>,List<List<Link>>> cpl,
Set<WDMUtils.ModulationFormat> availableModulationFormats)
Returns the modulation format with the maximum spectral efficiency, while
the optical reach constraint is fulfilled, for each path in the list of candidate paths (
cpl ) |
static TreeSet<Integer> |
WDMUtils.computePathSlotOccupancy(List<Link> seqFibers,
DoubleMatrix2D frequencySlot2FiberOccupancy_se)
Computes the slot availability vector of a path, represented by a sequence
of fibers, where each position indicates whether or not its corresponding
frequency slot is available along the path.
|
static int[] |
WDMUtils.computeRegeneratorPositions(List<Link> seqFibers,
double maxRegeneratorDistanceInKm)
Returns the list of nodes within the lightpath route containing a regenerator,
only following a distance criterium, assuming no wavelength conversion is required.
|
static int[] |
WDMUtils.computeRegeneratorPositions(List<Link> seqFibers,
DoubleMatrix2D seqFrequencySlots,
double maxRegeneratorDistanceInKm)
Returns the list of nodes within the lightpath route containing a regenerator,
only following a distance criterium.
|
static Quintuple<DoubleMatrix1D,Constants.RoutingCycleType,Double,Double,Double> |
GraphUtils.computeRoutingFundamentalVector(SortedMap<Link,Double> frs,
SortedMap<Node,SortedSet<Link>> outFrs,
Node ingressNode,
Node egressNode)
Computes the row of the fundamental matrix of the absorbing Markov chain in the current hop-by-hop routing, for the
given ingress node.
|
static Quintuple<DoubleMatrix1D,Constants.RoutingCycleType,Double,Double,Double> |
GraphUtils.computeRoutingFundamentalVector(SortedMap<Link,Double> frs,
SortedMap<Node,SortedSet<Link>> outFrs,
Node ingressNode,
Node egressNode)
Computes the row of the fundamental matrix of the absorbing Markov chain in the current hop-by-hop routing, for the
given ingress node.
|
static DoubleMatrix2D |
WirelessUtils.computeSchedulingMatrix(List<Link> links)
Given a wireless network where a node cannot simultanously receive signals from two different nodes (or a collision would be produced and no signal is correctly received),
and cannot transmit and receive at the same time, this function computes the scheduling matrix, with one row per link, and one column for each VALID schedule:
in a valid schedule, all the links active (with a 1 in the associated row) could simultaneously transmit with no collision.
|
static Pair<Double,Double> |
GraphUtils.computeWorstCasePropagationDelayAndLengthInKmMsForLoopLess(SortedMap<Link,Double> frs,
SortedMap<Node,SortedSet<Link>> outFrs,
Node ingressNode,
Node egressNode)
Computes the worst case propagation delay in ms for the given forwarding rules, from the ingress to the
egress node (assuming there is traffic between the end nodes).
|
static Pair<Double,Double> |
GraphUtils.computeWorstCasePropagationDelayAndLengthInKmMsForLoopLess(SortedMap<Link,Double> frs,
SortedMap<Node,SortedSet<Link>> outFrs,
Node ingressNode,
Node egressNode)
Computes the worst case propagation delay in ms for the given forwarding rules, from the ingress to the
egress node (assuming there is traffic between the end nodes).
|
void |
GraphTheoryMetrics.configureLinkCostMap(Map<Link,Double> linkCostMap)
Re-configures link cost setting.
|
static Quadruple<DoubleMatrix2D,DoubleMatrix1D,DoubleMatrix1D,List<Constants.RoutingCycleType>> |
GraphUtils.convert_fde2xde(int numNodes,
List<Link> links,
SortedSet<Demand> demandsToConvert,
DoubleMatrix1D h_d,
DoubleMatrix2D f_de)
Given a forwarding rule mapping (fractions of traffic entering a node from demand 'd', leaving that node through link 'e'), and an offered traffic to the network,
it generates the resulting demand-link routing in the form x_de (amount of traffic from demand d, transmitted through link e).
|
static Quadruple<DoubleMatrix2D,DoubleMatrix1D,DoubleMatrix1D,List<Constants.RoutingCycleType>> |
GraphUtils.convert_fte2xde(int numNodes,
int numDemandsInLayer,
List<Link> links,
SortedSet<Demand> demandsToConvert,
DoubleMatrix2D f_te)
Given a destination-based routing in the form f_te (fractions of traffic in a node, that is forwarded through each of its output links), and an offered traffic to the network, it generates the resulting demand-link routing in the form x_de (amount of traffic from demand d, transmitted through link e).
|
static void |
GraphUtils.convert_fte2xp(List<Node> nodes,
List<Link> links,
int numDemandsInLayer,
SortedSet<Demand> demandsToConvert,
DoubleMatrix1D h_d,
DoubleMatrix2D f_te,
List<Demand> d_p,
List<Double> x_p,
List<List<Link>> pathList)
Given a destination-based routing in the form f_te (fractions of traffic in a node, that is forwarded through each of its
output links), and an offered traffic to the network, it generates the resulting set of paths that are produced.
|
static void |
GraphUtils.convert_fte2xp(List<Node> nodes,
List<Link> links,
int numDemandsInLayer,
SortedSet<Demand> demandsToConvert,
DoubleMatrix1D h_d,
DoubleMatrix2D f_te,
List<Demand> d_p,
List<Double> x_p,
List<List<Link>> pathList)
Given a destination-based routing in the form f_te (fractions of traffic in a node, that is forwarded through each of its
output links), and an offered traffic to the network, it generates the resulting set of paths that are produced.
|
static DoubleMatrix2D |
GraphUtils.convert_fte2xte(List<Node> nodes,
List<Link> links,
SortedSet<Demand> demandsToConsider,
DoubleMatrix2D f_te,
DoubleMatrix1D h_d)
Given a destination-based routing in the form f_te (fractions of traffic in a node, that is forwarded through each of its output links), and an offered traffic to the network, it generates the resulting destination-based routing in the form x_te (amount of traffic targeted to node t, transmitted through link e).
|
static DoubleMatrix2D |
GraphUtils.convert_xde2fde(List<Link> links,
DoubleMatrix2D x_de)
Given a demand-link routing in the form x_de (amount of traffic from demand d, transmitted through link e), returns the equivalent forwarding rule mapping (fractions of traffic entering a node from demand 'd', leaving that node through link 'e').
|
static int |
GraphUtils.convert_xde2xp(List<Node> nodes,
List<Link> links,
Set<Demand> demandsToConvert,
DoubleMatrix2D x_de,
List<Demand> d_p,
List<Double> x_p,
List<List<Link>> pathList)
Converts the routing in the form x_de into a set of loopless routes, just for the indicated demands.
|
static int |
GraphUtils.convert_xde2xp(List<Node> nodes,
List<Link> links,
Set<Demand> demandsToConvert,
DoubleMatrix2D x_de,
List<Demand> d_p,
List<Double> x_p,
List<List<Link>> pathList)
Converts the routing in the form x_de into a set of loopless routes, just for the indicated demands.
|
static DoubleMatrix2D |
GraphUtils.convert_xp2fte(List<Node> nodes,
List<Link> links,
List<Demand> demands,
List<Route> routes)
Given a set of traffic routes and their carried traffic returns a destination-based routing in the form fte (fractions of traffic in a node, that is forwarded through each of its output links).
|
static DoubleMatrix2D |
GraphUtils.convert_xp2xte(List<Node> nodes,
List<Link> links,
List<Demand> demands,
List<Route> routes)
Given a set of traffic routes and their carried traffic returns a destination-based routing in the form x_te (amount of traffic targeted to node t, transmitted through link e).
|
static DoubleMatrix1D |
GraphUtils.convert_xp2ye(List<Link> links,
List<Route> routes)
Returns the carried traffic per link.
|
static DoubleMatrix2D |
GraphUtils.convert_xte2fte(List<Node> nodes,
List<Link> links,
DoubleMatrix2D x_te)
Given a destination-based routing in the form of an array x_te (amount of traffic targeted to node t, transmitted through link e), it returns the associated destination-based routing in the form of fractions f_te (fraction of the traffic targeted to node t that arrives (or is generated in) node a(e) (the initial node of link e), that is forwarded through link e).
|
static double |
GraphUtils.convertPath2PathCost(List<Link> seqLinks,
DoubleMatrix1D linkCostMap)
Returns the total cost for a given path, which is equal to the sum of the cost of each traversed link.
|
static List<Double> |
GraphUtils.convertPathList2PathCost(List<List<Link>> pathList,
DoubleMatrix1D linkCostMap)
Returns the total cost for a given a list of paths.
|
static List<Node> |
GraphUtils.convertSequenceOfLinksToSequenceOfNodes(List<Link> seqLinks)
Converts a given sequence of links to the corresponding sequence of nodes.
|
static SortedSet<SharedRiskGroup> |
SRGUtils.getAffectingSRGs(Collection<Link> links)
Returns a set of SRGs that are affecting the given links.
|
static List<List<Link>> |
GraphUtils.getAllLooplessShortestPaths(List<Node> nodes,
List<Link> links,
Node originNode,
Node destinationNode,
SortedMap<Link,Double> linkCostMap)
Returns all the loopless shortest paths between two nodes.
|
static List<List<Link>> |
GraphUtils.getAllLooplessShortestPaths(List<Node> nodes,
List<Link> links,
Node originNode,
Node destinationNode,
SortedMap<Link,Double> linkCostMap)
Returns all the loopless shortest paths between two nodes.
|
static DoubleMatrix2D |
GraphUtils.getBidirectionalMatrix(List<Node> nodes,
List<Link> linkMap)
Given a map of links representing a bidirectional topology, with the same number of links on each direction for each node pair, it bundles into opposite link pairs and computes the bidirectional matrix.
|
static List<Link> |
GraphUtils.getCapacitatedShortestPath(Collection<Node> nodes,
Collection<Link> links,
Node originNode,
Node destinationNode,
SortedMap<Link,Double> linkCostMap,
SortedMap<Link,Double> linkSpareCapacityMap,
double capacityGoal) |
static List<Link> |
GraphUtils.getCapacitatedShortestPath(Collection<Node> nodes,
Collection<Link> links,
Node originNode,
Node destinationNode,
SortedMap<Link,Double> linkCostMap,
SortedMap<Link,Double> linkSpareCapacityMap,
double capacityGoal) |
static List<Link> |
GraphUtils.getCapacitatedShortestPath(Collection<Node> nodes,
Collection<Link> links,
Node originNode,
Node destinationNode,
SortedMap<Link,Double> linkCostMap,
SortedMap<Link,Double> linkSpareCapacityMap,
double capacityGoal) |
static List<Set<Node>> |
GraphUtils.getConnectedComponents(Collection<Node> nodes,
List<Link> links)
Returns the connected components of the given graph
|
static edu.uci.ics.jung.graph.Graph<Node,Link> |
GraphUtils.JUNGUtils.getGraphFromLinkMap(Collection<Node> nodes,
Collection<Link> links)
Obtains a
JUNG graph from a given set of links. |
static List<List<Link>> |
GraphUtils.getKLooplessShortestPaths(List<Node> nodes,
List<Link> links,
Node originNode,
Node destinationNode,
Map<Link,Double> linkCostMap,
int K,
double maxLengthInKm,
int maxNumHops,
double maxPropDelayInMs,
double maxRouteCost,
double maxRouteCostFactorRespectToShortestPath,
double maxRouteCostRespectToShortestPath)
Returns the K-loopless shortest paths between two nodes, satisfying some user-defined constraints.
|
static List<List<Link>> |
GraphUtils.getKLooplessShortestPaths(List<Node> nodes,
List<Link> links,
Node originNode,
Node destinationNode,
Map<Link,Double> linkCostMap,
int K,
double maxLengthInKm,
int maxNumHops,
double maxPropDelayInMs,
double maxRouteCost,
double maxRouteCostFactorRespectToShortestPath,
double maxRouteCostRespectToShortestPath)
Returns the K-loopless shortest paths between two nodes, satisfying some user-defined constraints.
|
static List<Pair<List<NetworkElement>,Double>> |
GraphUtils.getKMinimumCostServiceChains(List<Link> links,
Node originNode,
Node destinationNode,
List<String> sequenceOfResourceTypesToTraverse,
DoubleMatrix1D linkCost,
Map<Resource,Double> resourceCost,
int K,
double maxCostServiceChain,
double maxLengthInKmPerSubpath,
int maxNumHopsPerSubpath,
double maxPropDelayInMsPerSubpath,
Map<Pair<Node,Node>,List<Pair<List<Link>,Double>>> cacheSubpathLists)
Returns the K minimum cost service chains between two nodes (summing costs of links and resources traversed), traversing a given set of resource types, satisfying some user-defined constraints.
|
static List<Pair<List<NetworkElement>,Double>> |
GraphUtils.getKMinimumCostServiceChains(List<Link> links,
Node originNode,
Node destinationNode,
List<String> sequenceOfResourceTypesToTraverse,
DoubleMatrix1D linkCost,
Map<Resource,Double> resourceCost,
int K,
double maxCostServiceChain,
double maxLengthInKmPerSubpath,
int maxNumHopsPerSubpath,
double maxPropDelayInMsPerSubpath,
Map<Pair<Node,Node>,List<Pair<List<Link>,Double>>> cacheSubpathLists)
Returns the K minimum cost service chains between two nodes (summing costs of links and resources traversed), traversing a given set of resource types, satisfying some user-defined constraints.
|
static Pair<List<NetworkElement>,Double> |
GraphUtils.getMinimumCostServiceChain(List<Link> links,
Node originNode,
Node destinationNode,
List<String> sequenceOfResourceTypesToTraverse,
DoubleMatrix1D linkCost,
Map<Resource,Double> resourceCost,
double maxLengthInKmPerSubpath,
int maxNumHopsPerSubpath,
double maxPropDelayInMsPerSubpath)
Returns the minimum cost service chain between two nodes (summing costs of links and resources traversed), traversing a given set of resource types, satisfying some user-defined constraints.
|
static List<Link> |
GraphUtils.getShortestPath(Collection<Node> nodes,
Collection<Link> links,
Node originNode,
Node destinationNode,
Map<Link,Double> linkCostMap)
Obtains the sequence of links representing the (unidirectional) shortest path between two nodes.
|
static List<Link> |
GraphUtils.getShortestPath(Collection<Node> nodes,
Collection<Link> links,
Node originNode,
Node destinationNode,
Map<Link,Double> linkCostMap)
Obtains the sequence of links representing the (unidirectional) shortest path between two nodes.
|
static TrafficMatrixForecastUtils.TmEstimationResults |
TrafficMatrixForecastUtils.getTmEstimation_minErrorSquares(NetworkLayer layer,
Map<Link,Double> inputMonitInfo_someLinks,
Map<Demand,Double> inputMonitInfo_someDemands,
Map<MulticastDemand,Double> inputMonitInfo_someMDemands,
double coeff_preferFitRouting0PreferFitDemand1) |
static List<List<Link>> |
GraphUtils.getTwoLinkDisjointPaths(Collection<Node> nodes,
Collection<Link> links,
Node originNode,
Node destinationNode,
Map<Link,Double> linkCostMap)
Returns the shortest pair of link-disjoint paths, where each item represents a path.
|
static List<List<Link>> |
GraphUtils.getTwoLinkDisjointPaths(Collection<Node> nodes,
Collection<Link> links,
Node originNode,
Node destinationNode,
Map<Link,Double> linkCostMap)
Returns the shortest pair of link-disjoint paths, where each item represents a path.
|
static List<List<Link>> |
GraphUtils.getTwoMaximumLinkAndNodeDisjointPaths(Collection<Node> nodes,
Collection<Link> links,
Node originNode,
Node destinationNode,
SortedMap<Link,Double> linkCostMap) |
static List<List<Link>> |
GraphUtils.getTwoMaximumLinkAndNodeDisjointPaths(Collection<Node> nodes,
Collection<Link> links,
Node originNode,
Node destinationNode,
SortedMap<Link,Double> linkCostMap) |
static List<List<Link>> |
GraphUtils.getTwoNodeDisjointPaths(Collection<Node> nodes,
Collection<Link> links,
Node originNode,
Node destinationNode,
SortedMap<Link,Double> linkCostMap)
Returns the shortest pair of node-disjoint paths, where each item represents a path.
|
static List<List<Link>> |
GraphUtils.getTwoNodeDisjointPaths(Collection<Node> nodes,
Collection<Link> links,
Node originNode,
Node destinationNode,
SortedMap<Link,Double> linkCostMap)
Returns the shortest pair of node-disjoint paths, where each item represents a path.
|
static List<List<Link>> |
GraphUtils.JUNGUtils.getTwoNodeDisjointPaths(edu.uci.ics.jung.graph.Graph<Node,Link> graph,
org.apache.commons.collections15.Transformer<Link,Double> nev,
Node originNode,
Node destinationNode)
Returns the shortest pair of node-disjoint paths, where each item represents a path.
|
static List<List<Link>> |
GraphUtils.JUNGUtils.getTwoNodeDisjointPaths(edu.uci.ics.jung.graph.Graph<Node,Link> graph,
org.apache.commons.collections15.Transformer<Link,Double> nev,
Node originNode,
Node destinationNode)
Returns the shortest pair of node-disjoint paths, where each item represents a path.
|
static boolean |
GraphUtils.isBidirectional(List<Node> nodes,
List<Link> links)
Checks whether the physical topology has the same number of links between each node pair in both directions (assuming multi-digraphs).
|
static boolean |
GraphUtils.isConnected(List<Node> nodes,
List<Link> links)
Check whether the physical topology is connected, that is, if it is possible to connect every node to each other, but only in a subset of nodes (subgraph).
|
static boolean |
GraphUtils.isSimple(List<Node> nodes,
List<Link> links)
Check whether the physical topology is simple, that is, if it has at most one unidirectional link from a node to each other.
|
static boolean |
SRGUtils.isSRGDisjoint(Collection<Link> path1,
Collection<Link> path2)
Returns true if the two collection of links in path1 and paths (not necessarily a
sequence of contiguous links forming a path), are srg disjoint
|
static boolean |
SRGUtils.isSRGDisjoint(Collection<Link> path1,
Collection<Link> path2)
Returns true if the two collection of links in path1 and paths (not necessarily a
sequence of contiguous links forming a path), are srg disjoint
|
static DoubleMatrix2D |
GraphUtils.removeCyclesFrom_xde(int numNodes,
List<Link> links,
Set<Demand> demandsToConsider,
DoubleMatrix2D x_de,
boolean xdeAsFractionRespecttoDemandOfferedTraffic,
String solverName,
String solverLibraryName,
double maxSolverTimeInSecondsPerDemand)
Removes open or closed cycles from the x_de routing matrix, for the given set of demands.
|
static DoubleMatrix2D |
GraphUtils.removeCyclesFrom_xte(List<Node> nodes,
List<Link> links,
DoubleMatrix2D trafficMatrix,
DoubleMatrix2D x_te,
String solverName,
String solverLibraryName,
double maxSolverTimeInSecondsPerDestination)
Removes open or closed cycles from the x_de routing matrix, for the given set of demands.
|
static String |
IPUtils.routingTableMatrixToString(List<Node> nodes,
List<Link> links,
DoubleMatrix2D f_te)
Outputs a given set of routing tables to a
String . |
static DoubleMatrix1D |
GraphUtils.simplifyLinkMap(List<Link> links,
DoubleMatrix1D linkCostMap)
Given a list of links that may contain multiple links between some node pairs, returns a matrix where appears, for each node pair, the link having the lowest weight (links whose weight is equal to
Double.MAX_VALUE are included). |
static int |
WDMUtils.spectrumAssignment_firstFit(List<Link> seqFibers,
DoubleMatrix2D frequencySlot2FiberOccupancy_se,
int numContiguousSlotsRequired)
Frequency slot assignment algorithm based on a first-fit fashion.
|
static Pair<Integer,Integer> |
WDMUtils.spectrumAssignment_firstFitTwoRoutes(List<Link> seqFibers_1,
List<Link> seqFibers_2,
DoubleMatrix2D frequencySlot2FiberOccupancy_se,
int numContiguousSlotsRequired)
Frequency slot assignment algorithm based on a first-fit fashion for two different paths.
|
static Pair<Integer,Integer> |
WDMUtils.spectrumAssignment_firstFitTwoRoutes(List<Link> seqFibers_1,
List<Link> seqFibers_2,
DoubleMatrix2D frequencySlot2FiberOccupancy_se,
int numContiguousSlotsRequired)
Frequency slot assignment algorithm based on a first-fit fashion for two different paths.
|
static Pair<int[],int[]> |
WDMUtils.wavelengthAssignment_RPP_firstFit(List<Link> seqFibers,
DoubleMatrix2D frequencySlot2FiberOccupancy_se,
DoubleMatrix1D nodeRegeneratorOccupancy,
double maxRegeneratorDistanceInKm)
Wavelength assignment algorithm based on a first-fit fashion assuming
full wavelength conversion and regeneration capabilities.
|
Constructor and Description |
---|
GraphTheoryMetrics(List<Node> nodes,
List<Link> links,
SortedMap<Link,Double> linkCostMap)
Default constructor
|
GraphTheoryMetrics(List<Node> nodes,
List<Link> links,
SortedMap<Link,Double> linkCostMap)
Default constructor
|
RSA(List<Link> seqLinks,
int occupiedSlotId)
Creates a RSA where the same one single slot is occupied in all the traversed links.
|
RSA(List<Link> seqLinks,
int initialSlot,
int numSlots)
Creates a RSA with the same set of contigous slots occupied in all the traversed fibers
|
RSA(List<Link> seqLinks,
int initialSlot,
int numSlots,
int[] seqRegenerators_e)
Creates a RSA with the same set of contigous slots occupied in all the traversed fibers
|
RSA(List<Link> seqLinks,
IntMatrix2D seqFrequencySlots_se)
Equivalent to
RSA (seqLinks , seqFrequencySlot, null) |
RSA(List<Link> seqLinks,
IntMatrix2D seqFrequencySlots_se,
int[] seqRegenerators_e)
Creates a RSA object from the provided information
|
Modifier and Type | Method and Description |
---|---|
Link |
WFiber.getNe() |
Link |
WIpLink.getNe() |
Copyright © 2018. All rights reserved.