Package | Description |
---|---|
com.net2plan.interfaces.networkDesign |
Provides a set of classes and interfaces for the network design tool.
|
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.utils |
General utility static methods.
|
Modifier and Type | Method and Description |
---|---|
Pair<Long,Long> |
NetPlan.addDemandBidirectional(long ingressNodeId,
long egressNodeId,
double offeredTraffic,
Map<String,String> attributes)
Adds a new bidirectional traffic demand, that is, a demand on each direction.
|
Pair<Long,Long> |
NetPlan.addDemandBidirectional(long layerId,
long ingressNodeId,
long egressNodeId,
double offeredTraffic,
Map<String,String> attributes)
Adds a new bidirectional traffic demand, that is, a demand on each direction.
|
Pair<Long,Long> |
NetPlan.addForwardingRule(long demandId,
long linkId,
double splittingRatio,
Map<String,String> attributes)
Adds a new forwarding rule (or override an existing one).
|
Pair<Long,Long> |
NetPlan.addForwardingRule(long layerId,
long demandId,
long linkId,
double splittingRatio,
Map<String,String> attributes)
Adds a new forwarding rule (or override an existing one).
|
Pair<Long,Long> |
NetPlan.addLinkBidirectional(long originNodeId,
long destinationNodeId,
double capacity,
double lengthInKm,
double propagationSpeedInKmPerSecond,
Map<String,String> attributes)
Adds a new bidirectional link, that is, a link on each direction.
|
Pair<Long,Long> |
NetPlan.addLinkBidirectional(long originNodeId,
long destinationNodeId,
double capacity,
double lengthInKm,
Map<String,String> attributes)
Adds a new bidirectional link, that is, a link on each direction.
|
Pair<Long,Long> |
NetPlan.addLinkBidirectional(long layerId,
long originNodeId,
long destinationNodeId,
double capacity,
double lengthInKm,
double propagationSpeedInKmPerSecond,
Map<String,String> attributes)
Adds a new bidirectional link, that is, a link on each direction.
|
Pair<Long,Long> |
NetPlan.addLinkBidirectional(long layerId,
long originNodeId,
long destinationNodeId,
double capacity,
double lengthInKm,
Map<String,String> attributes)
Adds a new bidirectional link, that is, a link on each direction.
|
Pair<Long,Long> |
NetPlan.getDemandCoupledUpperLayerLink(long demandId)
Returns the upper layer link coupled to the demand.
|
Pair<Long,Long> |
NetPlan.getDemandCoupledUpperLayerLink(long layerId,
long demandId)
Returns the upper layer link coupled to the demand.
|
Pair<Long,Long> |
NetPlan.getDemandIngressEgressNodePair(long demandId)
Returns the identifiers of the ingress and egress nodes.
|
Pair<Long,Long> |
NetPlan.getDemandIngressEgressNodePair(long layerId,
long demandId)
Returns the identifiers of the ingress and egress nodes.
|
Pair<Long,Long> |
NetPlan.getLinkCoupledLowerLayerDemand(long linkId)
Returns the lower layer demand coupled to the link.
|
Pair<Long,Long> |
NetPlan.getLinkCoupledLowerLayerDemand(long layerId,
long linkId)
Returns the lower layer demand coupled to the link.
|
Pair<Long,Long> |
NetPlan.getLinkOriginDestinationNodePair(long linkId)
Returns the origin-destination node pair for a given link.
|
Pair<Long,Long> |
NetPlan.getLinkOriginDestinationNodePair(long layerId,
long linkId)
Returns the origin-destination node pair for a given link.
|
Pair<Long,Long> |
NetPlan.getProtectionSegmentOriginDestinationNodePair(long segmentId)
Returns the origin-destination node pair for the given protection segment.
|
Pair<Long,Long> |
NetPlan.getProtectionSegmentOriginDestinationNodePair(long layerId,
long segmentId)
Returns the origin-destination node pair for the given protection segment.
|
Pair<Long,Long> |
NetPlan.getRouteIngressEgressNodePair(long routeId)
Returns the ingress-egress node pair of a route.
|
Pair<Long,Long> |
NetPlan.getRouteIngressEgressNodePair(long layerId,
long routeId)
Returns the ingress-egress node pair of a route.
|
Modifier and Type | Method and Description |
---|---|
Set<Pair<Long,Long>> |
NetPlan.getDemandForwardingRules(long demandId)
Returns the set of forwarding rules associated to a demand.
|
Set<Pair<Long,Long>> |
NetPlan.getDemandForwardingRules(long layerId,
long demandId)
Returns the set of forwarding rules associated to a demand.
|
Map<Pair<Long,Long>,Double> |
NetPlan.getDemandForwardingRuleSplittingRatioMap(long demandId)
Returns the forwarding rules and splitting ratios associated to a given demand.
|
Map<Pair<Long,Long>,Double> |
NetPlan.getDemandForwardingRuleSplittingRatioMap(long layerId,
long demandId)
Returns the forwarding rules and splitting ratios associated to a given demand.
|
Map<Long,Pair<Long,Long>> |
NetPlan.getDemandMap()
Returns the ingress-egress node pair per demand.
|
Map<Long,Pair<Long,Long>> |
NetPlan.getDemandMap(long layerId)
Returns the ingress-egress node pair per demand.
|
Map<Long,Pair<Long,Long>> |
NetPlan.getDemandsCoupledLinkMap()
Returns the upper layer link coupled to each demand (among the coupled ones).
|
Map<Long,Pair<Long,Long>> |
NetPlan.getDemandsCoupledLinkMap(long layerId)
Returns the upper layer link coupled to each demand (among the coupled ones).
|
Map<Pair<Long,Long>,Double> |
NetPlan.getForwardingRuleCarriedTrafficMap()
Returns the carried traffic per forwarding rule.
|
Map<Pair<Long,Long>,Double> |
NetPlan.getForwardingRuleCarriedTrafficMap(long layerId)
Returns the carried traffic per forwarding rule.
|
Set<Pair<Long,Long>> |
NetPlan.getForwardingRules()
Returns the identifiers of active forwarding rules.
|
Set<Pair<Long,Long>> |
NetPlan.getForwardingRules(long layerId)
Returns the identifiers of active forwarding rules.
|
Map<Pair<Long,Long>,String> |
NetPlan.getForwardingRulesAttributeMap(long layerId,
String key)
Returns the value of the same attribute for each forwarding rule.
|
Map<Pair<Long,Long>,String> |
NetPlan.getForwardingRulesAttributeMap(String key)
Returns the value of the same attribute for each forwarding rule.
|
Set<Pair<Long,Long>> |
NetPlan.getForwardingRulesDown()
Returns the set of forwarding rules that are down.
|
Set<Pair<Long,Long>> |
NetPlan.getForwardingRulesDown(long layerId)
Returns the set of forwarding rules that are down.
|
Map<Pair<Long,Long>,Double> |
NetPlan.getForwardingRuleSplittingRatioMap()
Returns the splitting ratio associated to each forwarding rule (fractions of
traffic entering a node from demand 'd', leaving that node through link 'e').
|
Map<Pair<Long,Long>,Double> |
NetPlan.getForwardingRuleSplittingRatioMap(long layerId)
Returns the splitting ratio associated to each forwarding rule (fractions of
traffic entering a node from demand 'd', leaving that node through link 'e').
|
Set<Pair<Long,Long>> |
NetPlan.getLinkForwardingRules(long linkId)
Returns the set of forwarding rules associated to a link.
|
Set<Pair<Long,Long>> |
NetPlan.getLinkForwardingRules(long layerId,
long linkId)
Returns the set of forwarding rules associated to a link.
|
Map<Long,Pair<Long,Long>> |
NetPlan.getLinkMap()
Returns the origin-destination node pair per link.
|
Map<Long,Pair<Long,Long>> |
NetPlan.getLinkMap(long layerId)
Returns the origin-destination node pair per link.
|
Map<Long,Pair<Long,Long>> |
NetPlan.getLinksCoupledDemandMap()
Returns the lower layer demand coupled to each link (among the coupled ones).
|
Map<Long,Pair<Long,Long>> |
NetPlan.getLinksCoupledDemandMap(long layerId)
Returns the lower layer demand coupled to each link (among the coupled ones).
|
Set<Pair<Long,Long>> |
NetPlan.getNodeDemandForwardingRules(long nodeId,
long demandId)
Returns the set of forwarding rules installed in a given node for a given demand.
|
Set<Pair<Long,Long>> |
NetPlan.getNodeDemandForwardingRules(long layerId,
long nodeId,
long demandId)
Returns the set of forwarding rules installed in a given node for a given demand.
|
Set<Pair<Long,Long>> |
NetPlan.getNodeForwardingRules(long nodeId)
Returns the set of forwarding rules installed in a given node.
|
Set<Pair<Long,Long>> |
NetPlan.getNodeForwardingRules(long layerId,
long nodeId)
Returns the set of forwarding rules installed in a given node.
|
Map<Pair<Long,Long>,Double> |
NetPlan.getTrafficMap()
Returns the aggregate traffic between each node pair.
|
Map<Pair<Long,Long>,Double> |
NetPlan.getTrafficMap(long layerId)
Returns the aggregate traffic between each node pair.
|
Modifier and Type | Method and Description |
---|---|
void |
NetPlan.checkForwardingRuleIsActive(long layerId,
Pair<Long,Long> demandLinkPair)
Checks whether a forwarding rule is active.
|
void |
NetPlan.checkForwardingRuleIsActive(Pair<Long,Long> demandLinkPair)
Checks whether a forwarding rule is active.
|
String |
NetPlan.getForwardingRuleAttribute(long layerId,
Pair<Long,Long> demandLinkPair,
String key)
Returns the value of a given attribute for a forwarding rule.
|
String |
NetPlan.getForwardingRuleAttribute(Pair<Long,Long> demandLinkPair,
String key)
Returns the value of a given attribute for a forwarding rule.
|
Map<String,String> |
NetPlan.getForwardingRuleAttributeMap(long layerId,
Pair<Long,Long> demandLinkPair)
Returns the attributes defined for a given forwarding rule.
|
Map<String,String> |
NetPlan.getForwardingRuleAttributeMap(Pair<Long,Long> demandLinkPair)
Returns the attributes defined for a given forwarding rule.
|
double |
NetPlan.getForwardingRuleCarriedTraffic(long layerId,
Pair<Long,Long> demandLinkPair)
Returns the carried traffic using a forwarding rule.
|
double |
NetPlan.getForwardingRuleCarriedTraffic(Pair<Long,Long> demandLinkPair)
Returns the carried traffic using a forwarding rule.
|
double |
NetPlan.getForwardingRuleSplittingRatio(long layerId,
Pair<Long,Long> demandLinkPair)
Returns the splitting ratio associated to a forwarding rule (fractions of
traffic entering a node from demand 'd', leaving that node through link 'e').
|
double |
NetPlan.getForwardingRuleSplittingRatio(Pair<Long,Long> demandLinkPair)
Returns the splitting ratio associated to a forwarding rule (fractions of
traffic entering a node from demand 'd', leaving that node through link 'e').
|
boolean |
NetPlan.isForwardingRuleActive(long layerId,
Pair<Long,Long> demandLinkPair)
Indicates whether or not a forwarding rule is active.
|
boolean |
NetPlan.isForwardingRuleActive(Pair<Long,Long> demandLinkPair)
Indicates whether or not a forwarding rule is active.
|
boolean |
NetPlan.isForwardingRuleDown(long layerId,
Pair<Long,Long> demandLinkPair)
Indicates whether or not a forwarding rule is down.
|
boolean |
NetPlan.isForwardingRuleDown(Pair<Long,Long> demandLinkPair)
Indicates whether or not a forwarding rule is down.
|
void |
NetPlan.removeForwardingRule(long layerId,
Pair<Long,Long> demandLinkPair)
Removes a forwarding rule.
|
void |
NetPlan.removeForwardingRule(Pair<Long,Long> demandLinkPair)
Removes a forwarding rule.
|
void |
NetPlan.removeForwardingRuleAttribute(long layerId,
Pair<Long,Long> demandLinkPair,
String key)
Removes a given attribute from a forwarding rule.
|
void |
NetPlan.removeForwardingRuleAttribute(Pair<Long,Long> demandLinkPair,
String key)
Removes a given attribute from a forwarding rule.
|
void |
NetPlan.setForwardingRuleAttribute(long layerId,
Pair<Long,Long> demandLinkPair,
String key,
String value)
Sets an attribute for a given forwarding rule.
|
void |
NetPlan.setForwardingRuleAttribute(Pair<Long,Long> demandLinkPair,
String key,
String value)
Sets an attribute for a given forwarding rule.
|
void |
NetPlan.setForwardingRuleAttributeMap(long layerId,
Pair<Long,Long> demandLinkPair,
Map<String,String> attributes)
Sets the attributes for a given forwarding rule.
|
void |
NetPlan.setForwardingRuleAttributeMap(Pair<Long,Long> demandLinkPair,
Map<String,String> attributes)
Sets the attributes for a given forwarding rule.
|
void |
NetPlan.setForwardingRuleSplittingRatio(long layerId,
Pair<Long,Long> demandLinkPair,
double splittingRatio)
Sets the splitting ratio (fraction of traffic from demand 'd' entering
to the origin node of link 'e', going through link 'e') of a forwarding rule.
|
void |
NetPlan.setForwardingRuleSplittingRatio(Pair<Long,Long> demandLinkPair,
double splittingRatio)
Sets the splitting ratio (fraction of traffic from demand 'd' entering
to the origin node of link 'e', going through link 'e') of a forwarding rule.
|
Modifier and Type | Method and Description |
---|---|
void |
NetPlan.addForwardingRules(long layerId,
Map<Pair<Long,Long>,Double> splittingRatioMap,
boolean includeUnusedRules)
Adds a set of forwarding rules (or override existing ones).
|
void |
NetPlan.addForwardingRules(Map<Pair<Long,Long>,Double> splittingRatioMap,
boolean includeUnusedRules)
Adds a set of forwarding rules (or override existing ones).
|
void |
NetPlan.removeForwardingRules(long layerId,
Set<Pair<Long,Long>> demandLinkPairs)
Removes a set of forwarding rules.
|
void |
NetPlan.removeForwardingRules(Set<Pair<Long,Long>> demandLinkPairs)
Removes a set of forwarding rules.
|
void |
NetPlan.setForwardingRules(long layerId,
Map<Pair<Long,Long>,Double> splittingRatioMap)
Sets the forwarding rules for the given design.
|
void |
NetPlan.setForwardingRules(Map<Pair<Long,Long>,Double> splittingRatioMap)
Sets the forwarding rules for the given design.
|
Modifier and Type | Method and Description |
---|---|
Pair<Long,Long> |
SimAction.getForwardingRuleAdded_demandLinkPair()
Returns the demand and outgoing link identifiers associated to a
FORWARDING_RULE_ADDED action. |
Pair<Long,Long> |
SimAction.getForwardingRuleModified_demandLinkPair()
Returns the demand and outgoing link identifiers associated to a
FORWARDING_RULE_MODIFIED action. |
Pair<Long,Long> |
SimAction.getForwardingRuleRemoved_demandLinkPair()
Returns the demand and outgoing link identifiers associated to a
FORWARDING_RULE_REMOVED action. |
Modifier and Type | Method and Description |
---|---|
static SimAction |
SimAction.Factory.forwardingRuleAdded(long layerId,
Pair<Long,Long> demandLinkPair)
Creates a
FORWARDING_RULE_ADDED action. |
static SimAction |
SimAction.Factory.forwardingRuleAdded(Pair<Long,Long> demandLinkPair)
Creates a
FORWARDING_RULE_ADDED action. |
static SimAction |
SimAction.Factory.forwardingRuleModified(long layerId,
Pair<Long,Long> demandLinkPair)
Creates a
FORWARDING_RULE_MODIFIED action. |
static SimAction |
SimAction.Factory.forwardingRuleModified(Pair<Long,Long> demandLinkPair)
Creates a
FORWARDING_RULE_MODIFIED action. |
static SimAction |
SimAction.Factory.forwardingRuleRemoved(long layerId,
Pair<Long,Long> demandLinkPair,
double splittingRatio,
Map<String,String> attributes)
Creates a
FORWARDING_RULE_REMOVED action. |
static SimAction |
SimAction.Factory.forwardingRuleRemoved(Pair<Long,Long> demandLinkPair,
double splittingRatio,
Map<String,String> attributes)
Creates a
FORWARDING_RULE_REMOVED action. |
Modifier and Type | Method and Description |
---|---|
static Pair<edu.uci.ics.jung.graph.Graph<Long,Long>,org.apache.commons.collections15.Transformer<Long,Double>> |
GraphUtils.JUNGUtils.buildAuxiliaryNodeDisjointGraph(edu.uci.ics.jung.graph.Graph<Long,Long> graph,
org.apache.commons.collections15.Transformer<Long,Double> nev,
long originNode,
long destinationNode)
Builds an auxiliary graph for the application of edge-disjoint
shortest-path pair algorithms to node-disjoint problems.
|
static Pair<Double,Double> |
SRGUtils.getSRGDisjointnessPercentage(NetPlan netPlan)
Returns the percentage of SRG disjointness of traffic routes and
protection segments.
|
static Pair<Double,Double> |
SRGUtils.getSRGDisjointnessPercentage(NetPlan netPlan,
long layerId)
Returns the percentage of SRG disjointness of traffic routes and
protection segments.
|
static Pair<int[],int[]> |
WDMUtils.WA_RPP_firstFit(Map<Long,Pair<Long,Long>> fiberMap,
List<Long> seqFibers,
Map<Long,Integer> w_f,
List<Set<Long>> wavelengthFiberOccupancy,
Map<Long,Double> l_f,
Map<Long,Integer> nodeRegeneratorOccupancy,
double maxRegeneratorDistanceInKm)
Wavelength assignment algorithm based on a first-fit fashion assuming
full wavelength conversion and regeneration.
|
Modifier and Type | Method and Description |
---|---|
static List<Pair<Integer,Integer>> |
FlexGridUtils.computeAvailableSpectrumVoids(TreeSet<Integer> slotOccupancy,
int totalAvailableSlotsPerFiber)
Computes the list of spectral voids (list of available contiguous slots)
from a slot availability vector of a path.
|
static Quadruple<Map<Pair<Long,Long>,Double>,Map<Pair<Long,Long>,Double>,Map<Long,Double>,Map<Long,Double>> |
IPUtils.computeCarriedTrafficFromIGPWeights(NetPlan netPlan,
long layerId,
Map<Long,Double> linkWeightMap)
Computes the resulting carried traffic according to a link weight setting
and OSPF/ECMP routing.
|
static Quadruple<Map<Pair<Long,Long>,Double>,Map<Pair<Long,Long>,Double>,Map<Long,Double>,Map<Long,Double>> |
IPUtils.computeCarriedTrafficFromIGPWeights(NetPlan netPlan,
long layerId,
Map<Long,Double> linkWeightMap)
Computes the resulting carried traffic according to a link weight setting
and OSPF/ECMP routing.
|
static Quadruple<Map<Pair<Long,Long>,Double>,Map<Pair<Long,Long>,Double>,Map<Long,Double>,Map<Long,Double>> |
IPUtils.computeCarriedTrafficFromIGPWeights(NetPlan netPlan,
Map<Long,Double> linkWeightMap)
Computes the resulting carried traffic according to a link weight setting
and OSPF/ECMP routing.
|
static Quadruple<Map<Pair<Long,Long>,Double>,Map<Pair<Long,Long>,Double>,Map<Long,Double>,Map<Long,Double>> |
IPUtils.computeCarriedTrafficFromIGPWeights(NetPlan netPlan,
Map<Long,Double> linkWeightMap)
Computes the resulting carried traffic according to a link weight setting
and OSPF/ECMP routing.
|
static Map<Pair<Long,Long>,Double> |
IPUtils.computeECMPForwardingRules(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Long,Double> linkWeightMap)
Computes the forwarding rules according to an OSPF/ECMP scheme.
|
static Map<Pair<Long,Long>,Double> |
IPUtils.computeECMPRoutingTableMap(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Double> linkWeightMap)
Computes the routing table matrix according to an OSPF/ECMP scheme.
|
static Quadruple<Map<Pair<Long,Long>,Double>,Double,Map<Long,Double>,Constants.RoutingCycleType> |
GraphUtils.convert_fde2xde(long demandId,
Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Long,Double> h_d,
Map<Pair<Long,Long>,Double> 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),
only for a given demand.
|
static Quadruple<Map<Pair<Long,Long>,Double>,Map<Long,Double>,Map<Long,Double>,List<Constants.RoutingCycleType>> |
GraphUtils.convert_fde2xde(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Long,Double> h_d,
Map<Pair<Long,Long>,Double> 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 Map<Pair<Long,Long>,Double> |
GraphUtils.convert_fte2fde(Map<Long,Pair<Long,Long>> demandMap,
Map<Pair<Long,Long>,Double> 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), it generates
the resulting demand-link routing in the form f_de (fractions of traffic in
a node from demand d, transmitted through link e).
|
static Quadruple<Map<Pair<Long,Long>,Double>,Map<Long,Double>,Map<Long,Double>,List<Constants.RoutingCycleType>> |
GraphUtils.convert_fte2xde(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Long,Double> h_d,
Map<Pair<Long,Long>,Double> 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 Quadruple<Map<Pair<Long,Long>,Double>,Map<Long,Double>,Map<Long,Double>,List<Constants.RoutingCycleType>> |
GraphUtils.convert_fte2xte(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Pair<Long,Long>,Double> f_te,
cern.colt.matrix.tdouble.DoubleMatrix2D trafficMatrix)
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 Map<Pair<Long,Long>,Double> |
GraphUtils.convert_xde2fde(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Set<Long> demandIds,
Map<Pair<Long,Long>,Double> 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 Map<Pair<Long,Long>,Double> |
GraphUtils.convert_xp2xde(Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Long> d_p,
Map<Long,Double> x_p,
Map<Long,List<Long>> pathMap)
Given a path-based routing, returns the amount of traffic for each demand d
traversing each link e.
|
static Map<Long,Pair<Long,Long>> |
GraphUtils.simplifyLinkMap(Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Double> linkCostMap)
Given a link map that may contain multiple links between some node pairs,
returns a new link map where only appears, for each node pair, the link having
the lowest weight (links whose weight is equal to
Double.MAX_VALUE
are excluded). |
Modifier and Type | Method and Description |
---|---|
static void |
WDMUtils.allocateResources(Map<Long,Pair<Long,Long>> fiberMap,
List<Long> seqFibers,
int[] seqWavelengths,
List<Set<Long>> wavelengthFiberOccupancy,
int[] seqRegenerators,
Map<Long,Integer> nodeRegeneratorOccupancy)
Updates
wavelengthFiberOccupancy to consider that a new lightpath is occupying
a wavelength in each fiber. |
static void |
WDMUtils.allocateResources(Map<Long,Pair<Long,Long>> fiberMap,
List<Long> seqFibers,
int wavelengthId,
List<Set<Long>> wavelengthFiberOccupancy,
int[] seqRegenerators,
Map<Long,Integer> nodeRegeneratorOccupancy)
Updates
wavelengthFiberOccupancy to consider that a new lightpath is occupying
a wavelength in each fiber. |
static void |
GraphUtils.checkRouteContinuity(Map<Long,Pair<Long,Long>> linkMap,
List<Long> seqLinks,
Constants.CheckRoutingCycleType checkCycles)
Checks for validity of a given path (continuity and, optionally, no loops).
|
static Map<Pair<Long,Long>,Double> |
IPUtils.computeECMPForwardingRules(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Long,Double> linkWeightMap)
Computes the forwarding rules according to an OSPF/ECMP scheme.
|
static Map<Pair<Long,Long>,Double> |
IPUtils.computeECMPForwardingRules(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Long,Double> linkWeightMap)
Computes the forwarding rules according to an OSPF/ECMP scheme.
|
static Map<Pair<Long,Long>,Double> |
IPUtils.computeECMPRoutingTableMap(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Double> linkWeightMap)
Computes the routing table matrix according to an OSPF/ECMP scheme.
|
static cern.colt.matrix.tdouble.DoubleMatrix2D |
IPUtils.computeECMPRoutingTableMatrix(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Double> linkWeightMap)
Computes the routing table matrix according to an OSPF/ECMP scheme.
|
static int |
FlexGridUtils.computeMaximumRequests(List<Pair<Integer,Integer>> availableSpectrumVoids,
int numSlots)
Computes the maximum number of requests (each one measured in number of slots) which
can be allocated in a set of spectrum voids.
|
static int[] |
WDMUtils.computeRegeneratorPositions(Map<Long,Pair<Long,Long>> fiberMap,
List<Long> seqFibers,
int[] seqWavelengths,
Map<Long,Double> l_f,
double maxRegeneratorDistanceInKm)
Returns the list of nodes within the lightpath route containing a regenerator,
only following a distance criterium, assuming wavelength conversion is required.
|
static int[] |
WDMUtils.computeRegeneratorPositions(Map<Long,Pair<Long,Long>> fiberMap,
List<Long> seqFibers,
Map<Long,Double> l_f,
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 Quadruple<Map<Pair<Long,Long>,Double>,Double,Map<Long,Double>,Constants.RoutingCycleType> |
GraphUtils.convert_fde2xde(long demandId,
Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Long,Double> h_d,
Map<Pair<Long,Long>,Double> 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),
only for a given demand.
|
static Quadruple<Map<Pair<Long,Long>,Double>,Double,Map<Long,Double>,Constants.RoutingCycleType> |
GraphUtils.convert_fde2xde(long demandId,
Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Long,Double> h_d,
Map<Pair<Long,Long>,Double> 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),
only for a given demand.
|
static Quadruple<Map<Pair<Long,Long>,Double>,Double,Map<Long,Double>,Constants.RoutingCycleType> |
GraphUtils.convert_fde2xde(long demandId,
Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Long,Double> h_d,
Map<Pair<Long,Long>,Double> 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),
only for a given demand.
|
static Quadruple<cern.colt.matrix.tdouble.DoubleMatrix2D,double[],double[],Constants.RoutingCycleType[]> |
GraphUtils.convert_fde2xde(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Long,Double> h_d,
cern.colt.matrix.tdouble.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<cern.colt.matrix.tdouble.DoubleMatrix2D,double[],double[],Constants.RoutingCycleType[]> |
GraphUtils.convert_fde2xde(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Long,Double> h_d,
cern.colt.matrix.tdouble.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<Map<Pair<Long,Long>,Double>,Map<Long,Double>,Map<Long,Double>,List<Constants.RoutingCycleType>> |
GraphUtils.convert_fde2xde(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Long,Double> h_d,
Map<Pair<Long,Long>,Double> 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<Map<Pair<Long,Long>,Double>,Map<Long,Double>,Map<Long,Double>,List<Constants.RoutingCycleType>> |
GraphUtils.convert_fde2xde(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Long,Double> h_d,
Map<Pair<Long,Long>,Double> 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<Map<Pair<Long,Long>,Double>,Map<Long,Double>,Map<Long,Double>,List<Constants.RoutingCycleType>> |
GraphUtils.convert_fde2xde(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Long,Double> h_d,
Map<Pair<Long,Long>,Double> 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 Map<Pair<Long,Long>,Double> |
GraphUtils.convert_fte2fde(Map<Long,Pair<Long,Long>> demandMap,
Map<Pair<Long,Long>,Double> 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), it generates
the resulting demand-link routing in the form f_de (fractions of traffic in
a node from demand d, transmitted through link e).
|
static Map<Pair<Long,Long>,Double> |
GraphUtils.convert_fte2fde(Map<Long,Pair<Long,Long>> demandMap,
Map<Pair<Long,Long>,Double> 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), it generates
the resulting demand-link routing in the form f_de (fractions of traffic in
a node from demand d, transmitted through link e).
|
static cern.colt.matrix.tdouble.DoubleMatrix2D |
GraphUtils.convert_fte2fde(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> demandMap,
cern.colt.matrix.tdouble.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), it generates
the resulting demand-link routing in the form f_de (fractions of traffic in
a node from demand d, transmitted through link e).
|
static Quadruple<Map<Pair<Long,Long>,Double>,Map<Long,Double>,Map<Long,Double>,List<Constants.RoutingCycleType>> |
GraphUtils.convert_fte2xde(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Long,Double> h_d,
Map<Pair<Long,Long>,Double> 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 Quadruple<Map<Pair<Long,Long>,Double>,Map<Long,Double>,Map<Long,Double>,List<Constants.RoutingCycleType>> |
GraphUtils.convert_fte2xde(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Long,Double> h_d,
Map<Pair<Long,Long>,Double> 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 Quadruple<Map<Pair<Long,Long>,Double>,Map<Long,Double>,Map<Long,Double>,List<Constants.RoutingCycleType>> |
GraphUtils.convert_fte2xde(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Long,Double> h_d,
Map<Pair<Long,Long>,Double> 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(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Long,Double> h_d,
cern.colt.matrix.tdouble.DoubleMatrix2D f_te,
List<Long> d_p,
List<Double> x_p,
List<List<Long>> 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(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Long,Double> h_d,
cern.colt.matrix.tdouble.DoubleMatrix2D f_te,
List<Long> d_p,
List<Double> x_p,
List<List<Long>> 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(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Long,Double> h_d,
Map<Pair<Long,Long>,Double> f_te,
List<Long> d_p,
List<Double> x_p,
List<List<Long>> 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(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Long,Double> h_d,
Map<Pair<Long,Long>,Double> f_te,
List<Long> d_p,
List<Double> x_p,
List<List<Long>> 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(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Long,Double> h_d,
Map<Pair<Long,Long>,Double> f_te,
List<Long> d_p,
List<Double> x_p,
List<List<Long>> 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 Quadruple<cern.colt.matrix.tdouble.DoubleMatrix2D,double[],double[],Constants.RoutingCycleType[]> |
GraphUtils.convert_fte2xte(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
cern.colt.matrix.tdouble.DoubleMatrix2D f_te,
cern.colt.matrix.tdouble.DoubleMatrix2D trafficMatrix)
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 Quadruple<Map<Pair<Long,Long>,Double>,Map<Long,Double>,Map<Long,Double>,List<Constants.RoutingCycleType>> |
GraphUtils.convert_fte2xte(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Pair<Long,Long>,Double> f_te,
cern.colt.matrix.tdouble.DoubleMatrix2D trafficMatrix)
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 Quadruple<Map<Pair<Long,Long>,Double>,Map<Long,Double>,Map<Long,Double>,List<Constants.RoutingCycleType>> |
GraphUtils.convert_fte2xte(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Pair<Long,Long>,Double> f_te,
cern.colt.matrix.tdouble.DoubleMatrix2D trafficMatrix)
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 Map<Pair<Long,Long>,Double> |
GraphUtils.convert_xde2fde(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Set<Long> demandIds,
Map<Pair<Long,Long>,Double> 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 Map<Pair<Long,Long>,Double> |
GraphUtils.convert_xde2fde(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Set<Long> demandIds,
Map<Pair<Long,Long>,Double> 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(Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
cern.colt.matrix.tdouble.DoubleMatrix2D x_de,
List<Long> d_p,
List<Double> x_p,
List<List<Long>> pathList)
Given the amount of traffic for each demand d and traversing link e, it computes
the equivalent path-based routing.
|
static int |
GraphUtils.convert_xde2xp(Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
cern.colt.matrix.tdouble.DoubleMatrix2D x_de,
List<Long> d_p,
List<Double> x_p,
List<List<Long>> pathList)
Given the amount of traffic for each demand d and traversing link e, it computes
the equivalent path-based routing.
|
static int |
GraphUtils.convert_xde2xp(Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Pair<Long,Long>,Double> x_de,
List<Long> d_p,
List<Double> x_p,
List<List<Long>> pathList)
Given the amount of traffic for each demand d and traversing link e, it computes
the equivalent path-based routing.
|
static int |
GraphUtils.convert_xde2xp(Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Pair<Long,Long>,Double> x_de,
List<Long> d_p,
List<Double> x_p,
List<List<Long>> pathList)
Given the amount of traffic for each demand d and traversing link e, it computes
the equivalent path-based routing.
|
static int |
GraphUtils.convert_xde2xp(Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Pair<Long,Long>,Double> x_de,
List<Long> d_p,
List<Double> x_p,
List<List<Long>> pathList)
Given the amount of traffic for each demand d and traversing link e, it computes
the equivalent path-based routing.
|
static Map<Long,Double> |
GraphUtils.convert_xde2ye(Set<Long> linkIds,
Map<Pair<Long,Long>,Double> x_de)
Returns the carried traffic per link.
|
static cern.colt.matrix.tdouble.DoubleMatrix2D |
GraphUtils.convert_xp2fte(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Long,Long> d_p,
Map<Long,Double> x_p,
Map<Long,List<Long>> pathList)
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 cern.colt.matrix.tdouble.DoubleMatrix2D |
GraphUtils.convert_xp2fte(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Long,Long> d_p,
Map<Long,Double> x_p,
Map<Long,List<Long>> pathList)
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 Map<Pair<Long,Long>,Double> |
GraphUtils.convert_xp2xde(Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Long> d_p,
Map<Long,Double> x_p,
Map<Long,List<Long>> pathMap)
Given a path-based routing, returns the amount of traffic for each demand d
traversing each link e.
|
static cern.colt.matrix.tdouble.DoubleMatrix2D |
GraphUtils.convert_xp2xde(Map<Long,Pair<Long,Long>> linkMap,
Set<Long> demandIds,
Map<Long,Long> d_p,
Map<Long,Double> x_p,
Map<Long,List<Long>> pathMap)
Given a path-based routing, returns the amount of traffic for each demand d
traversing each link e.
|
static cern.colt.matrix.tdouble.DoubleMatrix2D |
GraphUtils.convert_xp2xte(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Long,Long> d_p,
Map<Long,Double> x_p,
Map<Long,List<Long>> pathList)
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 cern.colt.matrix.tdouble.DoubleMatrix2D |
GraphUtils.convert_xp2xte(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Pair<Long,Long>> demandMap,
Map<Long,Long> d_p,
Map<Long,Double> x_p,
Map<Long,List<Long>> pathList)
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 double[] |
GraphUtils.convert_xp2ye(Map<Long,Pair<Long,Long>> linkMap,
double[] x_p,
List<List<Long>> pathList)
Returns the carried traffic per link.
|
static double[] |
GraphUtils.convert_xp2ye(Map<Long,Pair<Long,Long>> linkMap,
List<Double> x_p,
List<List<Long>> pathList)
Returns the carried traffic per link.
|
static cern.colt.matrix.tdouble.DoubleMatrix2D |
GraphUtils.convert_xte2fte(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
cern.colt.matrix.tdouble.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 List<Long> |
GraphUtils.convertSequenceOfLinksToSequenceOfNodes(Map<Long,Pair<Long,Long>> linkMap,
List<Long> seqLinks)
Converts a given sequence of links to the corresponding sequence of nodes.
|
static cern.colt.matrix.tdouble.DoubleMatrix2D |
GraphUtils.getAdjacencyMatrix(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap)
Given a map of links, it computes the adjacency matrix.
|
static List<List<Long>> |
GraphUtils.getAllLooplessShortestPaths(Map<Long,Pair<Long,Long>> linkMap,
long originNodeId,
long destinationNodeId,
Map<Long,Double> linkCostMap)
Returns all the loopless shortest paths between two nodes.
|
static cern.colt.matrix.tdouble.DoubleMatrix2D |
GraphUtils.getBidirectionalMatrix(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> 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<Long> |
GraphUtils.getCapacitatedShortestPath(Map<Long,Pair<Long,Long>> linkMap,
long originNodeId,
long destinationNodeId,
Map<Long,Double> linkCostMap,
Map<Long,Double> linkSpareCapacityMap,
double capacityGoal)
Returns the shortest path that fulfills a given minimum capacity requirement
along its traversed links.
|
static <V,E> edu.uci.ics.jung.graph.Graph<V,E> |
GraphUtils.JUNGUtils.getGraphFromLinkMap(Map<E,Pair<V,V>> linkMap)
Obtains a
JUNG graph from a given link map. |
static org.jgrapht.Graph<Long,Long> |
GraphUtils.JGraphTUtils.getGraphFromLinkMap(Map<Long,Pair<Long,Long>> linkMap)
Obtains a
JGraphT graph from a given link map. |
static org.jgrapht.Graph<Long,Long> |
GraphUtils.JGraphTUtils.getGraphFromLinkMap(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap)
Obtains a
JGraphT graph from a given link map. |
static <V,E> edu.uci.ics.jung.graph.Graph<V,E> |
GraphUtils.JUNGUtils.getGraphFromLinkMap(Set<V> nodeIds,
Map<E,Pair<V,V>> linkMap)
Obtains a
JUNG graph from a given link map. |
static cern.colt.matrix.tdouble.DoubleMatrix2D |
GraphUtils.getIncidenceMatrix(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap)
Given a map of links, it computes the node-link incidence matrix.
|
static cern.colt.matrix.tdouble.DoubleMatrix2D |
GraphUtils.getIncomingIncidenceMatrix(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap)
Given a map of links, it computes the node-link incoming incidence
matrix.
|
static List<List<Long>> |
GraphUtils.getKLooplessShortestPaths(Map<Long,Pair<Long,Long>> linkMap,
long originNodeId,
long destinationNodeId,
int K,
Map<Long,Double> linkCostMap)
Returns the K-loopless shortest paths between two nodes.
|
static Set<Long> |
GraphUtils.getNodeIncomingLinks(Map<Long,Pair<Long,Long>> linkMap,
long nodeId)
Given a link map and a node, it returns the set of links that enter to that node.
|
static Set<Long> |
GraphUtils.getNodeOutgoingLinks(Map<Long,Pair<Long,Long>> linkMap,
long nodeId)
Given a link map and a node, it returns the set of links that leave that node.
|
static cern.colt.matrix.tdouble.DoubleMatrix2D |
GraphUtils.getOutgoingIncidenceMatrix(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap)
Given a map of links, it computes the node-link outgoing incidence matrix.
|
static List<Long> |
GraphUtils.getShortestPath(Map<Long,Pair<Long,Long>> linkMap,
long originNodeId,
long destinationNodeId,
Map<Long,Double> linkCostMap)
Obtains the sequence of links representing the (unidirectional) shortest path between two nodes.
|
static List<List<Long>> |
GraphUtils.getTwoLinkDisjointPaths(Map<Long,Pair<Long,Long>> linkMap,
long originNodeId,
long destinationNodeId,
Map<Long,Double> linkCostMap)
Returns the shortest pair of link-disjoint paths, where each item represents a path.
|
static List<List<Long>> |
GraphUtils.getTwoNodeDisjointPaths(Map<Long,Pair<Long,Long>> linkMap,
long originNodeId,
long destinationNodeId,
Map<Long,Double> linkCostMap)
Returns the shortest pair of node-disjoint paths, where each item represents a path.
|
static boolean |
GraphUtils.isBidirectional(Map<Long,Pair<Long,Long>> linkMap)
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(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap)
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(Map<Long,Pair<Long,Long>> linkMap)
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 |
GraphUtils.isWeightedBidirectional(Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Double> linkCostMap)
Checks whether the physical topology has the same number of links between each node pair in both directions (assuming multi-digraphs) and same weights per direction.
|
static void |
WDMUtils.releaseResources(Map<Long,Pair<Long,Long>> fiberMap,
List<Long> seqFibers,
int[] seqWavelengths,
List<Set<Long>> wavelengthFiberOccupancy,
int[] seqRegenerators,
Map<Long,Integer> nodeRegeneratorOccupancy)
Updates
wavelengthFiberOccupancy to consider that a lightpath is releasing
used wavelengths. |
static void |
WDMUtils.releaseResources(Map<Long,Pair<Long,Long>> fiberMap,
List<Long> seqFibers,
int wavelengthId,
List<Set<Long>> wavelengthFiberOccupancy,
int[] seqRegenerators,
Map<Long,Integer> nodeRegeneratorOccupancy)
Updates
wavelengthFiberOccupancy to consider that a lightpath is releasing
used wavelengths. |
static String |
IPUtils.routingTableMatrixToString(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
double[][] f_te)
Outputs a given set of routing tables to a
String . |
static Map<Long,Pair<Long,Long>> |
GraphUtils.simplifyLinkMap(Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Double> linkCostMap)
Given a link map that may contain multiple links between some node pairs,
returns a new link map where only appears, for each node pair, the link having
the lowest weight (links whose weight is equal to
Double.MAX_VALUE
are excluded). |
static int[] |
WDMUtils.WA_firstFit(Map<Long,Pair<Long,Long>> fiberMap,
List<Long> seqFibers,
Map<Long,Integer> w_f,
List<Set<Long>> wavelengthFiberOccupancy)
Wavelength assignment algorithm based on a first-fit fashion.
|
static Pair<int[],int[]> |
WDMUtils.WA_RPP_firstFit(Map<Long,Pair<Long,Long>> fiberMap,
List<Long> seqFibers,
Map<Long,Integer> w_f,
List<Set<Long>> wavelengthFiberOccupancy,
Map<Long,Double> l_f,
Map<Long,Integer> nodeRegeneratorOccupancy,
double maxRegeneratorDistanceInKm)
Wavelength assignment algorithm based on a first-fit fashion assuming
full wavelength conversion and regeneration.
|
Constructor and Description |
---|
GraphTheoryMetrics(Set<Long> nodeIds,
Map<Long,Pair<Long,Long>> linkMap,
Map<Long,Double> linkCostMap)
Default constructor.
|
Modifier and Type | Method and Description |
---|---|
static Pair<String,String> |
ClassLoaderUtils.getPackageAndClassName(String fullyQualifiedClassName)
Given a fully qualified class name returns the package and class names.
|
static <A,B> Pair<A,B> |
Pair.of(A a,
B b)
This factory allows a pair to be created using inference to obtain the generic types.
|
static <A,B> Pair<A,B> |
Pair.unmodifiableOf(A a,
B b)
This factory allows an unmodifiable pair to be created using inference to obtain the generic types.
|
Modifier and Type | Method and Description |
---|---|
static <A extends Number,B extends Number> |
DoubleUtils.convertMatrix2Map(Set<A> rowIdentifiers,
Set<B> columnIdentifiers,
cern.colt.matrix.tdouble.DoubleMatrix2D matrix)
Returns a map containing the association of each identifier pair with its corresponding
value within the table (in linear order).
|
static <A extends Number,B extends Number> |
BooleanUtils.convertTable2Map(Set<A> rowIdentifiers,
Set<B> columnIdentifiers,
boolean[][] table)
Returns a map containing the association of each identifier pair with its corresponding
value within the table (in linear order).
|
static <A extends Number,B extends Number> |
DoubleUtils.convertTable2Map(Set<A> rowIdentifiers,
Set<B> columnIdentifiers,
double[][] table)
Returns a map containing the association of each identifier pair with its corresponding
value within the table (in linear order).
|
static <A extends Number,B extends Number> |
IntUtils.convertTable2Map(Set<A> rowIdentifiers,
Set<B> columnIdentifiers,
int[][] table)
Returns a map containing the association of each identifier pair with its corresponding
value within the table (in linear order).
|
static <A extends Number,B extends Number> |
LongUtils.convertTable2Map(Set<A> rowIdentifiers,
Set<B> columnIdentifiers,
long[][] table)
Returns a map containing the association of each identifier pair with its corresponding
value within the table (in linear order).
|