Package jline.solvers.ldes
Class SolverLDES
java.lang.Object
jline.solvers.Solver
jline.solvers.NetworkSolver
jline.solvers.ldes.SolverLDES
- Direct Known Subclasses:
LDES
-
Field Summary
FieldsModifier and TypeFieldDescriptionThread pool for parallel replication executionFields inherited from class jline.solvers.NetworkSolver
avgHandles, model, sn, tranHandles -
Constructor Summary
ConstructorsConstructorDescriptionSolverLDES(String filename) Load a JMT model file (.jsimg/.jsim/.jsimw/.jmva) and simulate with LDES.SolverLDES(String filename, Object... args) Load a JMT model file (.jsimg/.jsim/.jsimw/.jmva) and simulate with LDES, accepting variable option arguments (e.g., "seed", 23000, "samples", 50000).SolverLDES(LayeredNetwork model) Constructs a SolverLDES with the given LayeredNetwork model using default options.SolverLDES(LayeredNetwork model, Object... args) Constructs a SolverLDES with the given LayeredNetwork model and variable arguments.SolverLDES(LayeredNetwork model, SolverOptions options) Constructs a SolverLDES with the given LayeredNetwork model and options.SolverLDES(Network model) Constructs a SolverLDES with the given model using default options.SolverLDES(Network model, Object... args) Constructs a SolverLDES with the given model and variable arguments.SolverLDES(Network model, String method) Constructs a SolverLDES with the given model and method.SolverLDES(Network model, SolverOptions options) Constructs a SolverLDES with the given model and options. -
Method Summary
Modifier and TypeMethodDescriptionstatic SolverOptionsReturns the default solver options for the LDES solver.getAvg()Computes and returns average station metrics at steady-state.static FeatureSetReturns the feature set supported by the LDES solver.Returns average metrics for a LayeredNetwork model as a table.static FeatureSetReturns the feature set supported by the LDES solver for LayeredNetwork models.Returns the LayeredNetwork model (if solving an LQN).Returns the LayeredNetworkStruct (if solving an LQN).intReturns the number of threads for parallel execution.Estimates state probability using node index.getProb(StatefulNode node) Estimates state probability using current network state.getProb(StatefulNode node, Matrix state) Estimates the steady-state probability of a specific state at a node via LDES simulation.getProbAggr(int nodeIndex, Matrix stateAggr) Estimates aggregated state probability using node index.getProbAggr(StatefulNode node) Estimates aggregated state probability using current network state.getProbAggr(StatefulNode node, Matrix stateAggr) Estimates the steady-state probability of a specific aggregated (per-class) state at a node.Estimates the joint steady-state probability of the entire system state via LDES simulation.Estimates the joint steady-state probability of the entire aggregated system state.Returns the current streaming collector, or null if not streaming.Returns the network structure for this solver.Returns the thread pool for parallel replication execution.voidPerforms a transient analysis of the model using discrete event simulation.Returns cumulative distribution functions of passage times during transient analysis.Returns cumulative distribution functions of passage times during transient analysis.Returns cumulative distribution functions of response times during transient analysis.Returns cumulative distribution functions of response times during transient analysis.getTranProb(StatefulNode node) Computes transient state probabilities at a specific node over time using LDES simulation.getTranProbAggr(StatefulNode node) Computes transient aggregated state probabilities at a specific node over time.Computes transient system-wide state probabilities over time using LDES simulation.Computes transient system-wide aggregated state probabilities over time.Returns the list of valid solution methods for LDES.listValidMethods(Network model) Returns the list of valid solution methods for LDES.voidExecutes the solver algorithm to analyze the model.Run the LDES analyzer with current options including init_sol.sample(StatefulNode node, int numEvents) Generates a sample path (state trajectory) for a specific node using LDES transient simulation.sampleAggr(StatefulNode node, int numEvents) Generates an aggregated sample path for a specific node.sampleSys(int numEvents) Generates a system-wide sample path (state trajectory) for all stateful nodes.sampleSysAggr(int numEvents) Generates an aggregated system-wide sample path for all stateful nodes.voidsetNumThreads(int numThreads) Sets the parallelism level for replication execution.stream(StatefulNode node, int numEvents, StreamingOptions streamingOptions) Generates a sample path with streaming metrics pushed via OTLP.stream(StatefulNode node, StreamingOptions streamingOptions) Generates a sample path with streaming metrics pushed via OTLP.streamAggr(StatefulNode node, int numEvents, StreamingOptions streamingOptions) Generates an aggregated sample path with streaming metrics pushed via OTLP.streamAggr(StatefulNode node, StreamingOptions streamingOptions) Generates an aggregated sample path with streaming metrics pushed via OTLP.booleansupports(LayeredNetwork model) Checks if the solver supports the given LayeredNetwork model.booleanChecks if this solver supports the given network model.Methods inherited from class jline.solvers.NetworkSolver
aCT, aCT, aCT, aCT, aCT, aCT, aNCT, aNCT, aNCT, aNCT, aNCT, aNCT, aNT, aNT, aNT, aNT, aNT, aNT, aST, aST, aST, aT, aT, aT, aT, aT, aT, avg, avg, avg, avgArvR, avgArvRChain, avgArvRHandles, avgChain, avgChainT, avgChainT, avgChainT, avgChainT, avgChainT, avgChainT, avgChainTable, avgChainTable, avgChainTable, avgChainTable, avgChainTable, avgChainTable, avgHandles, avgNode, avgNodeArvRChain, avgNodeChain, avgNodeChainT, avgNodeChainT, avgNodeChainT, avgNodeChainT, avgNodeChainT, avgNodeChainT, avgNodeChainTable, avgNodeChainTable, avgNodeChainTable, avgNodeChainTable, avgNodeChainTable, avgNodeChainTable, avgNodeQLenChain, avgNodeResidTChain, avgNodeRespTChain, avgNodeT, avgNodeT, avgNodeT, avgNodeT, avgNodeT, avgNodeT, avgNodeTable, avgNodeTable, avgNodeTable, avgNodeTable, avgNodeTable, avgNodeTable, avgNodeTputChain, avgNodeUtilChain, avgQLen, avgQLenChain, avgQLenHandles, avgResidT, avgResidTChain, avgResidTHandles, avgRespT, avgRespTChain, avgRespTHandles, avgSys, avgSysRespT, avgSysT, avgSysT, avgSysT, avgSysTable, avgSysTable, avgSysTable, avgSysTput, avgT, avgT, avgT, avgT, avgT, avgT, avgTable, avgTable, avgTable, avgTable, avgTable, avgTable, avgTput, avgTputChain, avgTputHandles, avgUtil, avgUtilChain, avgUtilHandles, avgWaitT, cdfPassT, cdfPassT, cdfRespT, cdfRespT, chainAvgT, chainAvgT, chainAvgT, chainAvgT, chainAvgT, chainAvgT, getAllSolvers, getAvg, getAvg, getAvgArvR, getAvgArvRChain, getAvgArvRHandles, getAvgChain, getAvgChainTable, getAvgChainTable, getAvgChainTable, getAvgChainTable, getAvgChainTable, getAvgChainTable, getAvgHandles, getAvgNode, getAvgNodeArvRChain, getAvgNodeChain, getAvgNodeChainTable, getAvgNodeChainTable, getAvgNodeChainTable, getAvgNodeChainTable, getAvgNodeChainTable, getAvgNodeChainTable, getAvgNodeQLenChain, getAvgNodeResidTChain, getAvgNodeRespTChain, getAvgNodeTable, getAvgNodeTable, getAvgNodeTable, getAvgNodeTable, getAvgNodeTable, getAvgNodeTable, getAvgNodeTputChain, getAvgNodeUtilChain, getAvgQLen, getAvgQLenChain, getAvgQLenHandles, getAvgResidT, getAvgResidTChain, getAvgResidTHandles, getAvgRespT, getAvgRespTChain, getAvgRespTHandles, getAvgSys, getAvgSys, getAvgSys, getAvgSysRespT, getAvgSysTable, getAvgSysTable, getAvgSysTable, getAvgSysTput, getAvgT, getAvgT, getAvgT, getAvgT, getAvgT, getAvgT, getAvgTable, getAvgTable, getAvgTable, getAvgTable, getAvgTable, getAvgTable, getAvgTput, getAvgTputChain, getAvgTputHandles, getAvgUtil, getAvgUtilChain, getAvgUtilHandles, getAvgWaitT, getCdfPassT, getCdfPassT, getCdfRespT, getCdfRespT, getChainAvgT, getChainAvgT, getChainAvgT, getChainAvgT, getChainAvgT, getChainAvgT, getDeadlineTable, getModel, getNodeAvgT, getNodeAvgT, getNodeAvgT, getNodeAvgT, getNodeAvgT, getNodeAvgT, getNodeChainAvgT, getNodeChainAvgT, getNodeChainAvgT, getNodeChainAvgT, getNodeChainAvgT, getNodeChainAvgT, getProb, getProbAggr, getProbMarg, getProbMarg, getProbNormConstAggr, getStageT, getStageT, getStageTable, getStageTable, getSysAvgT, getSysAvgT, getSysAvgT, getTranHandles, hasAvgResults, hasDistribResults, hasTranResults, initHandles, model, nodeAvgT, nodeAvgT, nodeAvgT, nodeAvgT, nodeAvgT, nodeAvgT, nodeChainAvgT, nodeChainAvgT, nodeChainAvgT, nodeChainAvgT, nodeChainAvgT, nodeChainAvgT, print, prob, prob, probAggr, probAggr, probMarg, probMarg, probNormConstAggr, probSys, probSysAggr, runAnalyzerChecks, sample, sampleAggr, setAvgHandles, setAvgResults, setDistribResults, setLang, setModel, setTranAvgResults, setTranHandles, setTranProb, stageT, stageTable, sysAvgT, sysAvgT, sysAvgT, tranAvg, tranCdfPassT, tranCdfPassT, tranCdfRespT, tranCdfRespT, tranHandlesMethods inherited from class jline.solvers.Solver
getName, getOptions, getResults, hasResults, isJavaAvailable, isValidOption, listValidOptions, parseOptions, parseOptions, reset, resetRandomGeneratorSeed, setChecks, setOptions
-
Field Details
-
threadPool
Thread pool for parallel replication execution
-
-
Constructor Details
-
SolverLDES
Constructs a SolverLDES with the given model using default options.- Parameters:
model- the queueing network model to solve
-
SolverLDES
Constructs a SolverLDES with the given LayeredNetwork model using default options.- Parameters:
model- the layered queueing network model to solve
-
SolverLDES
Constructs a SolverLDES with the given LayeredNetwork model and variable arguments.- Parameters:
model- the layered queueing network model to solveargs- variable arguments for solver options
-
SolverLDES
Constructs a SolverLDES with the given LayeredNetwork model and options.- Parameters:
model- the layered queueing network model to solveoptions- solver configuration options
-
SolverLDES
Constructs a SolverLDES with the given model and variable arguments.- Parameters:
model- the queueing network model to solveargs- variable arguments for solver options
-
SolverLDES
Constructs a SolverLDES with the given model and method.- Parameters:
model- the queueing network model to solvemethod- the solution method to use
-
SolverLDES
Constructs a SolverLDES with the given model and options.- Parameters:
model- the queueing network model to solveoptions- solver configuration options
-
SolverLDES
Load a JMT model file (.jsimg/.jsim/.jsimw/.jmva) and simulate with LDES.- Parameters:
filename- path to the JMT model file
-
SolverLDES
Load a JMT model file (.jsimg/.jsim/.jsimw/.jmva) and simulate with LDES, accepting variable option arguments (e.g., "seed", 23000, "samples", 50000).- Parameters:
filename- path to the JMT model fileargs- variable arguments for solver options
-
-
Method Details
-
getThreadPool
Returns the thread pool for parallel replication execution.- Returns:
- the thread pool
-
getNumThreads
public int getNumThreads()Returns the number of threads for parallel execution.- Returns:
- the number of threads
-
setNumThreads
public void setNumThreads(int numThreads) Sets the parallelism level for replication execution.- Parameters:
numThreads- number of parallel threads
-
getFeatureSet
Returns the feature set supported by the LDES solver. Supports multiclass Jackson queueing networks with FCFS queues.- Returns:
- the feature set supported by the LDES solver
-
getStruct
Returns the network structure for this solver.- Returns:
- the network structure
-
getTranAvg
public void getTranAvg()Performs a transient analysis of the model using discrete event simulation. The simulation is run for the time horizon specified in options.timespan. If options.timespan is not specified, it defaults to [0, 30/min_rate]. The number of replications is determined by options.samples.- Overrides:
getTranAvgin classNetworkSolver
-
getAvg
Computes and returns average station metrics at steady-state. For LayeredNetwork models, this delegates to the LN-specific analyzer.- Overrides:
getAvgin classNetworkSolver- Returns:
- solver result containing average metrics
-
listValidMethods
Returns the list of valid solution methods for LDES.- Returns:
- list of valid method names
-
listValidMethods
Returns the list of valid solution methods for LDES.- Parameters:
model- the network model (unused, for interface compatibility)- Returns:
- list of valid method names
-
runAnalyzer
Description copied from class:SolverExecutes the solver algorithm to analyze the model. This abstract method must be implemented by concrete solver classes.- Specified by:
runAnalyzerin classSolver- Throws:
IllegalAccessException- if access to required resources is deniedParserConfigurationException- if XML parsing configuration failsIOException- if I/O operations fail
-
runMethodSpecificAnalyzer
Run the LDES analyzer with current options including init_sol. This method is called by SolverENV for transient analysis with initial conditions.- Returns:
- SolverResult containing transient metrics (QNt, UNt, TNt, t)
-
supports
Description copied from class:SolverChecks if this solver supports the given network model. Default implementation returns true; subclasses should override to provide specific feature validation. -
supports
Checks if the solver supports the given LayeredNetwork model.- Parameters:
model- the LayeredNetwork model to check- Returns:
- true if the model is supported
-
getLNFeatureSet
Returns the feature set supported by the LDES solver for LayeredNetwork models.- Returns:
- the feature set supported for LQN models
-
getLNModel
Returns the LayeredNetwork model (if solving an LQN).- Returns:
- the LayeredNetwork model, or null if solving a regular Network
-
getLNStruct
Returns the LayeredNetworkStruct (if solving an LQN).- Returns:
- the LayeredNetworkStruct, or null if solving a regular Network
-
getLNAvgTable
Returns average metrics for a LayeredNetwork model as a table. This method should be called after getAvg() for LayeredNetwork models.- Returns:
- LayeredNetworkAvgTable containing average metrics per LQN element
- Throws:
RuntimeException- if not solving a LayeredNetwork model or results not available
-
defaultOptions
Returns the default solver options for the LDES solver.- Returns:
- Default solver options with SolverType.LDES
-
sample
Generates a sample path (state trajectory) for a specific node using LDES transient simulation.- Parameters:
node- The stateful node to samplenumEvents- Number of time points to sample- Returns:
- SampleResult containing the state trajectory for the node
-
sampleAggr
Generates an aggregated sample path for a specific node. For LDES, the sample() method already returns per-class queue lengths (nir), so this method simply marks the result as aggregated without additional marginal computation. This differs from SSA which requires toMarginal processing on raw state vectors.- Parameters:
node- The stateful node to samplenumEvents- Number of time points to sample- Returns:
- SampleResult containing the aggregated state trajectory
-
sampleSys
Generates a system-wide sample path (state trajectory) for all stateful nodes.- Overrides:
sampleSysin classNetworkSolver- Parameters:
numEvents- Number of time points to sample- Returns:
- SampleResult containing the state trajectory for all nodes
-
sampleSysAggr
Generates an aggregated system-wide sample path for all stateful nodes.- Overrides:
sampleSysAggrin classNetworkSolver- Parameters:
numEvents- Number of time points to sample- Returns:
- SampleResult containing the aggregated state trajectory for all nodes
-
stream
Generates a sample path with streaming metrics pushed via OTLP.- Parameters:
node- The stateful node to samplestreamingOptions- Configuration for streaming (endpoint, mode, frequency)- Returns:
- SampleResult containing the state trajectory for the node
-
stream
Generates a sample path with streaming metrics pushed via OTLP.- Parameters:
node- The stateful node to samplenumEvents- Number of time points to samplestreamingOptions- Configuration for streaming (endpoint, mode, frequency)- Returns:
- SampleResult containing the state trajectory for the node
-
streamAggr
Generates an aggregated sample path with streaming metrics pushed via OTLP.- Parameters:
node- The stateful node to samplestreamingOptions- Configuration for streaming (endpoint, mode, frequency)- Returns:
- SampleResult containing the aggregated state trajectory
-
streamAggr
public Ret.SampleResult streamAggr(StatefulNode node, int numEvents, StreamingOptions streamingOptions) Generates an aggregated sample path with streaming metrics pushed via OTLP.- Parameters:
node- The stateful node to samplenumEvents- Number of time points to samplestreamingOptions- Configuration for streaming (endpoint, mode, frequency)- Returns:
- SampleResult containing the aggregated state trajectory
-
getStream
Returns the current streaming collector, or null if not streaming.- Returns:
- the streaming collector
-
getProb
Estimates the steady-state probability of a specific state at a node via LDES simulation. This method runs a LDES simulation and estimates state probabilities by computing the fraction of total simulation time spent in each state. The simulation collects state trajectories and weights each state by its dwell time.- Parameters:
node- The stateful node to analyzestate- The state vector to compute probability for. If null, uses current network state.- Returns:
- Estimated probability of the specified state (0 if state not observed)
-
getProb
Estimates state probability using node index.- Overrides:
getProbin classNetworkSolver- Parameters:
nodeIndex- Index of the stateful nodestate- The state vector to compute probability for- Returns:
- Estimated probability of the specified state
-
getProb
Estimates state probability using current network state.- Parameters:
node- The stateful node to analyze- Returns:
- Estimated probability of current network state at the node
-
getProbAggr
Estimates the steady-state probability of a specific aggregated (per-class) state at a node. This method estimates the probability of observing a specific per-class job distribution (e.g., [2 jobs of class 1, 1 job of class 2]) at a station. States are aggregated over service phases - only the number of jobs per class matters.- Parameters:
node- The stateful node to analyzestateAggr- The aggregated state vector (per-class job counts) to compute probability for. If null, uses current network state aggregated over phases.- Returns:
- Estimated probability of the specified aggregated state (0 if state not observed)
-
getProbAggr
Estimates aggregated state probability using node index.- Overrides:
getProbAggrin classNetworkSolver- Parameters:
nodeIndex- Index of the stateful nodestateAggr- The aggregated state vector to compute probability for- Returns:
- Estimated probability of the specified aggregated state
-
getProbAggr
Estimates aggregated state probability using current network state.- Parameters:
node- The stateful node to analyze- Returns:
- Estimated probability of current aggregated network state at the node
-
getProbSys
Estimates the joint steady-state probability of the entire system state via LDES simulation. This method estimates the probability of observing the current system state (combined state across all stateful nodes) using simulation-based estimation. States include phase information from service distributions.- Overrides:
getProbSysin classNetworkSolver- Returns:
- Estimated joint probability of the current system state (0 if state not observed)
-
getProbSysAggr
Estimates the joint steady-state probability of the entire aggregated system state. This method estimates the probability of observing the current system state (combined per-class job counts across all stateful nodes) using simulation. States are aggregated over service phases - only job counts per class matter.- Overrides:
getProbSysAggrin classNetworkSolver- Returns:
- Estimated joint probability of the current aggregated system state (0 if state not observed)
-
getTranCdfRespT
Returns cumulative distribution functions of response times during transient analysis. Uses response time samples collected during LDES simulation to compute empirical CDFs.- Overrides:
getTranCdfRespTin classNetworkSolver- Returns:
- DistributionResult containing empirical CDFs for each station-class pair
-
getTranCdfRespT
Returns cumulative distribution functions of response times during transient analysis.- Overrides:
getTranCdfRespTin classNetworkSolver- Parameters:
R- response time handles specifying which metrics to compute- Returns:
- DistributionResult containing empirical CDFs for each station-class pair
-
getTranCdfPassT
Returns cumulative distribution functions of passage times during transient analysis. For LDES, passage times are equivalent to response times in single-visit networks.- Overrides:
getTranCdfPassTin classNetworkSolver- Returns:
- DistributionResult containing empirical CDFs for passage times
-
getTranCdfPassT
Returns cumulative distribution functions of passage times during transient analysis.- Overrides:
getTranCdfPassTin classNetworkSolver- Parameters:
R- response time handles specifying which metrics to compute- Returns:
- DistributionResult containing empirical CDFs for passage times
-
getTranProb
Computes transient state probabilities at a specific node over time using LDES simulation.- Parameters:
node- the stateful node to analyze- Returns:
- ProbabilityResult containing transient probability data
-
getTranProbAggr
Computes transient aggregated state probabilities at a specific node over time.- Parameters:
node- the stateful node to analyze- Returns:
- ProbabilityResult containing transient aggregated probability data
-
getTranProbSys
Computes transient system-wide state probabilities over time using LDES simulation.- Returns:
- ProbabilityResult containing transient system probability data
-
getTranProbSysAggr
Computes transient system-wide aggregated state probabilities over time.- Returns:
- ProbabilityResult containing transient system aggregated probability data
-