Package jline.lang
Class Environment
java.lang.Object
jline.lang.Model
jline.lang.Ensemble
jline.lang.Environment
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
Env
An environment model defined by a collection of network sub-models coupled with an environment transition rule
that selects the active sub-model.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfacestatic interface -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddNodeBreakdown(Network baseModel, String nodeName, Markovian breakdownDist, Markovian downServiceDist) Adds a breakdown stage for a specific node in the network.voidaddNodeBreakdown(Network baseModel, String nodeName, Markovian breakdownDist, Markovian downServiceDist, Environment.ResetQueueLengthsFunction resetFun) Adds a breakdown stage for a specific node with a custom reset policy.voidaddNodeBreakdown(Network baseModel, Node node, Markovian breakdownDist, Markovian downServiceDist) Adds a breakdown stage for a specific node in the network.voidaddNodeBreakdown(Network baseModel, Node node, Markovian breakdownDist, Markovian downServiceDist, Environment.ResetQueueLengthsFunction resetFun) Adds a breakdown stage for a specific node with a custom reset policy.voidaddNodeFailureRepair(Network baseModel, String nodeName, Markovian breakdownDist, Markovian repairDist, Markovian downServiceDist) Convenience method to add both breakdown and repair for a node.voidaddNodeFailureRepair(Network baseModel, String nodeName, Markovian breakdownDist, Markovian repairDist, Markovian downServiceDist, Environment.ResetQueueLengthsFunction resetBreakdown, Environment.ResetQueueLengthsFunction resetRepair) Adds both breakdown and repair for a node with custom reset policies.voidaddNodeFailureRepair(Network baseModel, Node node, Markovian breakdownDist, Markovian repairDist, Markovian downServiceDist) Convenience method to add both breakdown and repair for a node.voidaddNodeFailureRepair(Network baseModel, Node node, Markovian breakdownDist, Markovian repairDist, Markovian downServiceDist, Environment.ResetQueueLengthsFunction resetBreakdown, Environment.ResetQueueLengthsFunction resetRepair) Adds both breakdown and repair for a node with custom reset policies.voidaddNodeRepair(String nodeName, Markovian repairDist) Adds a repair transition from DOWN to UP stage for a previously added breakdown.voidaddNodeRepair(String nodeName, Markovian repairDist, Environment.ResetQueueLengthsFunction resetFun) Adds a repair transition with a custom reset policy.voidaddNodeRepair(Node node, Markovian repairDist) Adds a repair transition from DOWN to UP stage for a previously added breakdown.voidaddNodeRepair(Node node, Markovian repairDist, Environment.ResetQueueLengthsFunction resetFun) Adds a repair transition with a custom reset policy.voidAdds a network model to a specific stage of the environment.voidaddTransition(int fromStageIdx, int toStageIdx, Markovian distrib) Adds a transition between two stages with default reset function (identity).voidaddTransition(int fromStageIdx, int toStageIdx, Markovian distrib, Environment.ResetQueueLengthsFunction resetFun) Adds a transition between two stages with a custom reset function.voidaddTransition(int fromStageIdx, int toStageIdx, Markovian distrib, Environment.ResetQueueLengthsFunction resetFun, Environment.ResetEnvRatesFunction resetEnvRatesFun) Adds a transition between two stages with custom reset functions for both queue lengths and environment rates.intfindStageByName(String stageName) Finds the stage index by name.intGets the number of stages in this environment.Computes system-wide reliability metrics (MTTF, MTTR, MTBF, Availability).getRelT()Short alias for getReliabilityTable.Short alias for getReliabilityTable.getStageName(int stageIdx) Gets the name of the stage at the given index.Short alias for getStageTable.Returns a table of stage information for this environment.voidinit()voidPrints a formatted table showing all stages, their properties, and transitions.relT()Short alias for getReliabilityTable.relTable()Short alias for getReliabilityTable.voidsetBreakdownResetPolicy(String nodeName, Environment.ResetQueueLengthsFunction resetFun) Sets the reset policy for queue lengths when a node breaks down.voidsetBreakdownResetPolicy(Node node, Environment.ResetQueueLengthsFunction resetFun) Sets the reset policy for queue lengths when a node breaks down.voidsetRepairResetPolicy(String nodeName, Environment.ResetQueueLengthsFunction resetFun) Sets the reset policy for queue lengths when a node is repaired.voidsetRepairResetPolicy(Node node, Environment.ResetQueueLengthsFunction resetFun) Sets the reset policy for queue lengths when a node is repaired.Methods inherited from class jline.lang.Ensemble
getEnsemble, getModel, merge, merge, setEnsemble, size, toNetworkMethods inherited from class jline.lang.Model
getName, getVersion, setName, setVersion
-
Field Details
-
env
-
proc
-
holdTime
-
probEnv
-
probOrig
-
resetQLFun
-
resetEnvRatesFun
-
-
Constructor Details
-
Environment
-
Environment
-
-
Method Details
-
addStage
Adds a network model to a specific stage of the environment. All stages must have networks with the same number of stateful nodes.- Parameters:
stageIdx- the index of the stage (0-based)name- the name of this stagetype- the type classification for this stagemodel- the network model to associate with this stage- Throws:
RuntimeException- if the model has a different number of stateful nodes than other stages
-
addTransition
Adds a transition between two stages with default reset function (identity).- Parameters:
fromStageIdx- the source stage indextoStageIdx- the destination stage indexdistrib- the Markovian distribution governing this transition
-
addTransition
public void addTransition(int fromStageIdx, int toStageIdx, Markovian distrib, Environment.ResetQueueLengthsFunction resetFun) Adds a transition between two stages with a custom reset function.- Parameters:
fromStageIdx- the source stage indextoStageIdx- the destination stage indexdistrib- the Markovian distribution governing this transitionresetFun- function to apply when transitioning to reset queue lengths
-
addTransition
public void addTransition(int fromStageIdx, int toStageIdx, Markovian distrib, Environment.ResetQueueLengthsFunction resetFun, Environment.ResetEnvRatesFunction resetEnvRatesFun) Adds a transition between two stages with custom reset functions for both queue lengths and environment rates.- Parameters:
fromStageIdx- the source stage indextoStageIdx- the destination stage indexdistrib- the Markovian distribution governing this transitionresetFun- function to apply when transitioning to reset queue lengthsresetEnvRatesFun- function to apply when transitioning to reset environment rates
-
init
public void init() -
printStageTable
public void printStageTable()Prints a formatted table showing all stages, their properties, and transitions. Displays stage names, types, associated networks, and transition rates. -
findStageByName
Finds the stage index by name.- Parameters:
stageName- the name of the stage to find- Returns:
- the index of the stage, or -1 if not found
-
getStageName
Gets the name of the stage at the given index.- Parameters:
stageIdx- the index of the stage (0-based)- Returns:
- the name of the stage
- Throws:
ArrayIndexOutOfBoundsException- if stageIdx is out of range
-
getNumberOfStages
public int getNumberOfStages()Gets the number of stages in this environment.- Returns:
- the number of stages
-
addNodeBreakdown
public void addNodeBreakdown(Network baseModel, String nodeName, Markovian breakdownDist, Markovian downServiceDist) Adds a breakdown stage for a specific node in the network. This creates an UP stage (if not already present) and a DOWN stage where the specified node has a reduced service rate. A transition from UP to DOWN is added with the given breakdown distribution.- Parameters:
baseModel- the base network model with normal (UP) service ratesnodeName- the name of the node that can break downbreakdownDist- the distribution for time until breakdown (UP->DOWN transition)downServiceDist- the service distribution when the node is down- Throws:
RuntimeException- if the node is not found in the base model
-
addNodeBreakdown
public void addNodeBreakdown(Network baseModel, Node node, Markovian breakdownDist, Markovian downServiceDist) Adds a breakdown stage for a specific node in the network. Overload that accepts a Node object instead of a node name.- Parameters:
baseModel- the base network model with normal (UP) service ratesnode- the node that can break downbreakdownDist- the distribution for time until breakdown (UP->DOWN transition)downServiceDist- the service distribution when the node is down
-
addNodeBreakdown
public void addNodeBreakdown(Network baseModel, String nodeName, Markovian breakdownDist, Markovian downServiceDist, Environment.ResetQueueLengthsFunction resetFun) Adds a breakdown stage for a specific node with a custom reset policy.- Parameters:
baseModel- the base network model with normal (UP) service ratesnodeName- the name of the node that can break downbreakdownDist- the distribution for time until breakdowndownServiceDist- the service distribution when the node is downresetFun- function to reset queue lengths on breakdown
-
addNodeBreakdown
public void addNodeBreakdown(Network baseModel, Node node, Markovian breakdownDist, Markovian downServiceDist, Environment.ResetQueueLengthsFunction resetFun) Adds a breakdown stage for a specific node with a custom reset policy. Overload that accepts a Node object instead of a node name.- Parameters:
baseModel- the base network model with normal (UP) service ratesnode- the node that can break downbreakdownDist- the distribution for time until breakdowndownServiceDist- the service distribution when the node is downresetFun- function to reset queue lengths on breakdown
-
addNodeRepair
Adds a repair transition from DOWN to UP stage for a previously added breakdown.- Parameters:
nodeName- the name of the node that can be repairedrepairDist- the distribution for repair time (DOWN->UP transition)- Throws:
RuntimeException- if the DOWN stage for this node is not found
-
addNodeRepair
Adds a repair transition from DOWN to UP stage for a previously added breakdown. Overload that accepts a Node object instead of a node name.- Parameters:
node- the node that can be repairedrepairDist- the distribution for repair time (DOWN->UP transition)
-
addNodeRepair
public void addNodeRepair(String nodeName, Markovian repairDist, Environment.ResetQueueLengthsFunction resetFun) Adds a repair transition with a custom reset policy.- Parameters:
nodeName- the name of the node that can be repairedrepairDist- the distribution for repair timeresetFun- function to reset queue lengths on repair
-
addNodeRepair
public void addNodeRepair(Node node, Markovian repairDist, Environment.ResetQueueLengthsFunction resetFun) Adds a repair transition with a custom reset policy. Overload that accepts a Node object instead of a node name.- Parameters:
node- the node that can be repairedrepairDist- the distribution for repair timeresetFun- function to reset queue lengths on repair
-
addNodeFailureRepair
public void addNodeFailureRepair(Network baseModel, String nodeName, Markovian breakdownDist, Markovian repairDist, Markovian downServiceDist) Convenience method to add both breakdown and repair for a node. This is the most common use case where a node can fail and be repaired.- Parameters:
baseModel- the base network model with normal (UP) service ratesnodeName- the name of the node that can break down and repairbreakdownDist- the distribution for time until breakdownrepairDist- the distribution for repair timedownServiceDist- the service distribution when the node is down
-
addNodeFailureRepair
public void addNodeFailureRepair(Network baseModel, Node node, Markovian breakdownDist, Markovian repairDist, Markovian downServiceDist) Convenience method to add both breakdown and repair for a node. Overload that accepts a Node object instead of a node name.- Parameters:
baseModel- the base network model with normal (UP) service ratesnode- the node that can break down and repairbreakdownDist- the distribution for time until breakdownrepairDist- the distribution for repair timedownServiceDist- the service distribution when the node is down
-
addNodeFailureRepair
public void addNodeFailureRepair(Network baseModel, String nodeName, Markovian breakdownDist, Markovian repairDist, Markovian downServiceDist, Environment.ResetQueueLengthsFunction resetBreakdown, Environment.ResetQueueLengthsFunction resetRepair) Adds both breakdown and repair for a node with custom reset policies.- Parameters:
baseModel- the base network model with normal (UP) service ratesnodeName- the name of the node that can break down and repairbreakdownDist- the distribution for time until breakdownrepairDist- the distribution for repair timedownServiceDist- the service distribution when the node is downresetBreakdown- reset function for breakdown transitionresetRepair- reset function for repair transition
-
addNodeFailureRepair
public void addNodeFailureRepair(Network baseModel, Node node, Markovian breakdownDist, Markovian repairDist, Markovian downServiceDist, Environment.ResetQueueLengthsFunction resetBreakdown, Environment.ResetQueueLengthsFunction resetRepair) Adds both breakdown and repair for a node with custom reset policies. Overload that accepts a Node object instead of a node name.- Parameters:
baseModel- the base network model with normal (UP) service ratesnode- the node that can break down and repairbreakdownDist- the distribution for time until breakdownrepairDist- the distribution for repair timedownServiceDist- the service distribution when the node is downresetBreakdown- reset function for breakdown transitionresetRepair- reset function for repair transition
-
setBreakdownResetPolicy
public void setBreakdownResetPolicy(String nodeName, Environment.ResetQueueLengthsFunction resetFun) Sets the reset policy for queue lengths when a node breaks down.- Parameters:
nodeName- the name of the noderesetFun- function to reset queue lengths: resetFun(q) -> q_new Common policies: - input -> input (keep all jobs, default) - input -> input.mult(0, null) (clear all queues)- Throws:
RuntimeException- if the breakdown transition is not found
-
setBreakdownResetPolicy
Sets the reset policy for queue lengths when a node breaks down. Overload that accepts a Node object instead of a node name.- Parameters:
node- the noderesetFun- function to reset queue lengths: resetFun(q) -> q_new
-
setRepairResetPolicy
Sets the reset policy for queue lengths when a node is repaired.- Parameters:
nodeName- the name of the noderesetFun- function to reset queue lengths: resetFun(q) -> q_new- Throws:
RuntimeException- if the repair transition is not found
-
setRepairResetPolicy
Sets the reset policy for queue lengths when a node is repaired. Overload that accepts a Node object instead of a node name.- Parameters:
node- the noderesetFun- function to reset queue lengths: resetFun(q) -> q_new
-
getReliabilityTable
Computes system-wide reliability metrics (MTTF, MTTR, MTBF, Availability). This method analyzes the breakdown/repair transitions configured using addNodeBreakdown() and addNodeRepair() to compute reliability metrics.- Returns:
- a Map containing reliability metrics with keys: "MTTF" - Mean Time To Failure (time from UP to DOWN) "MTTR" - Mean Time To Repair (time from DOWN to UP) "MTBF" - Mean Time Between Failures (MTTF + MTTR) "Availability" - Steady-state probability of being in UP state
- Throws:
RuntimeException- if the environment has not been initialized or if no breakdown/repair transitions are configured
-
relT
Short alias for getReliabilityTable.- Returns:
- a Map containing reliability metrics (MTTF, MTTR, MTBF, Availability)
- See Also:
-
getRelT
Short alias for getReliabilityTable.- Returns:
- a Map containing reliability metrics (MTTF, MTTR, MTBF, Availability)
- See Also:
-
relTable
Short alias for getReliabilityTable.- Returns:
- a Map containing reliability metrics (MTTF, MTTR, MTBF, Availability)
- See Also:
-
getRelTable
Short alias for getReliabilityTable.- Returns:
- a Map containing reliability metrics (MTTF, MTTR, MTBF, Availability)
- See Also:
-
getStageTable
Returns a table of stage information for this environment. Matches MATLAB Environment.getStageTable() which returns a Table with columns: Stage, Name, Type, Prob, HoldT, Model.- Returns:
- a formatted string table of stage information
-
getStageT
Short alias for getStageTable.- Returns:
- a formatted string table of stage information
- See Also:
-