Package jline.lang.nodes
Class Node
java.lang.Object
jline.lang.Element
jline.lang.NetworkElement
jline.lang.nodes.Node
- All Implemented Interfaces:
Serializable,Copyable
- Direct Known Subclasses:
ClassSwitch,Fork,Logger,Sink,StatefulNode
Superclass for a node element within a Network model
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected DropStrategyprotected InputSectionprotected intprotected OutputSectionprotected ServiceSectionprotected Matrixprotected intint -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionGets the attribute object containing additional metadata for this node.doublegetCap()Returns the total capacity limit for this node.doublegetClassCap(JobClass jobClass) Returns the capacity limit for a specific job class at this node.Gets the drop strategy used by this node when capacity limits are exceeded.getInput()Gets the input section that handles incoming jobs to this node.getModel()Returns the network model containing this node.intGets the index of this node in the network's node collection.Gets the output section that handles job routing from this node.Returns the list of output strategies configured for this node.getRoutingStrategy(JobClass jobClass) Returns the routing strategy configured for a specific job class.Gets all sections (input, server, output) that compose this node.Gets the service section that handles job processing at this node.getState()Gets the current state of this node.intGets the index of this node in the network's stateful node collection.intGets the index of this node in the network's station collection.booleanChecks if this node is a reference station.booleanChecks if this node maintains state between job visits.voidPrints a summary of this node's configuration to the console.voidreset()Resets the internal state of this node.voidResets all routing configurations for this node.voidsetKChoicesRouting(JobClass jobClass, int k, boolean withMemory) Configures power-of-K-choices routing for a job class.voidSets the network model containing this node.voidsetNodeIdx(int index) Sets the index of this node in the network's node collection.voidsetProbRouting(JobClass jobClass, Node destination, double probability) Sets probabilistic routing for a job class to a specific destination.voidsetRLRouting(JobClass jobClass, Matrix valueFunction, int[] vfShape, int[] nodesNeedAction, int stateSize) Configures reinforcement-learning routing for a job class.voidsetRouting(JobClass jobClass, RoutingStrategy routingStrategy) Sets the routing strategy for a specific job class.voidsetRouting(JobClass jobClass, RoutingStrategy routingStrategy, Node destination, double probability) Sets the routing strategy with destination and probability for a job class.voidSets the state of this node.voidsetStationIdx(int index) Sets the index of this node in the network's station collection.
-
Field Details
-
model
-
input
-
output
-
server
-
dropStrategy
-
statefulIdx
protected int statefulIdx -
nodeIndex
protected int nodeIndex -
stationIdx
public int stationIdx -
state
-
-
Constructor Details
-
Node
Creates a new node with the specified name. Initializes default routing and service configurations.- Parameters:
nodeName- the name for this node
-
-
Method Details
-
getAttribute
Gets the attribute object containing additional metadata for this node.- Returns:
- the node attribute object
-
getCap
public double getCap()Returns the total capacity limit for this node. Default implementation returns infinite capacity.- Returns:
- the total capacity limit
-
getClassCap
Returns the capacity limit for a specific job class at this node. Default implementation returns infinite capacity.- Parameters:
jobClass- the job class to query- Returns:
- the capacity limit for the job class
-
getDropStrategy
Gets the drop strategy used by this node when capacity limits are exceeded.- Returns:
- the drop strategy
-
getInput
Gets the input section that handles incoming jobs to this node.- Returns:
- the input section
-
getModel
Returns the network model containing this node.- Returns:
- the parent network model
-
setModel
Sets the network model containing this node.- Parameters:
model- the parent network model
-
getNodeIndex
public int getNodeIndex()Gets the index of this node in the network's node collection. The index is lazily computed if not already set.- Returns:
- the node index
-
setNodeIdx
public void setNodeIdx(int index) Sets the index of this node in the network's node collection.- Parameters:
index- the node index to set
-
getOutput
Gets the output section that handles job routing from this node.- Returns:
- the output section
-
getOutputStrategies
Returns the list of output strategies configured for this node.- Returns:
- list of output routing strategies
-
getRoutingStrategy
Returns the routing strategy configured for a specific job class.- Parameters:
jobClass- the job class to query- Returns:
- the routing strategy, or RAND if none specified
-
getSections
Gets all sections (input, server, output) that compose this node.- Returns:
- list containing all node sections
-
getServer
Gets the service section that handles job processing at this node.- Returns:
- the service section
-
getStatefulIdx
public int getStatefulIdx()Gets the index of this node in the network's stateful node collection. Returns -1 if this node is not stateful.- Returns:
- the stateful node index, or -1 if not stateful
-
getStationIdx
public int getStationIdx()Gets the index of this node in the network's station collection. The index is lazily computed if not already set.- Returns:
- the station index
-
setStationIdx
public void setStationIdx(int index) Sets the index of this node in the network's station collection.- Parameters:
index- the station index to set
-
isReferenceStation
public boolean isReferenceStation()Checks if this node is a reference station. Default implementation returns false; override in subclasses as needed.- Returns:
- true if this is a reference station, false otherwise
-
isStateful
public boolean isStateful()Checks if this node maintains state between job visits.- Returns:
- true if this node is stateful, false otherwise
-
setState
Sets the state of this node.- Parameters:
state- the state matrix to set
-
getState
Gets the current state of this node.- Returns:
- the current state matrix
-
printSummary
public void printSummary()Prints a summary of this node's configuration to the console. -
reset
public void reset()Resets the internal state of this node. Called when the network model is reset. Default implementation is no-op; override in subclasses as needed. -
resetRouting
public void resetRouting()Resets all routing configurations for this node. -
setProbRouting
Sets probabilistic routing for a job class to a specific destination.- Parameters:
jobClass- the job class to configure routing fordestination- the destination nodeprobability- the routing probability (0.0 to 1.0)
-
setRouting
Sets the routing strategy for a specific job class.- Parameters:
jobClass- the job class to configure routing forroutingStrategy- the routing strategy to use
-
setKChoicesRouting
Configures power-of-K-choices routing for a job class.- Parameters:
jobClass- the job classk- number of randomly chosen destinations (must be >= 1)withMemory- whether the strategy keeps memory of past selections
-
setRLRouting
public void setRLRouting(JobClass jobClass, Matrix valueFunction, int[] vfShape, int[] nodesNeedAction, int stateSize) Configures reinforcement-learning routing for a job class. Mirrors the MATLAB output strategy fields used bysub_rl.- Parameters:
jobClass- the job classvalueFunction- flat value function (tabular when stateSize=0, coefficient row vector when stateSize>0)vfShape- shape of the tabular value function (per-axis sizes); ignored when stateSize>0nodesNeedAction- node indices that consult the value functionstateSize- 0 = tabular, >0 = linear approximation, <0 = JSQ fallback
-
setRouting
public void setRouting(JobClass jobClass, RoutingStrategy routingStrategy, Node destination, double probability) Sets the routing strategy with destination and probability for a job class.- Parameters:
jobClass- the job class to configure routing forroutingStrategy- the routing strategy to usedestination- the destination nodeprobability- the routing probability to this destination
-