Class SolverCTMC
-
- All Implemented Interfaces:
public class SolverCTMC extends NetworkSolver
Solver for Continuous-Time Markov Chain (CTMC) analysis of queueing networks.
SolverCTMC implements exact numerical analysis of queueing networks by constructing and solving the underlying continuous-time Markov chain. This approach provides exact results for steady-state and transient behavior of networks that may not satisfy product-form assumptions.
Key CTMC solver capabilities:
- Exact CTMC state space construction and solution
- Steady-state probability computation
- Transient analysis with time-dependent solutions
- Joint and marginal state probability distributions
- Cache network modeling with exact hit/miss probabilities
- General service and arrival process support
The solver automatically constructs the infinitesimal generator matrix Q and solves the balance equations πQ = 0 for steady-state analysis, or the differential equation dπ/dt = πQ for transient analysis.
- Since:
1.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public classSolverCTMC.StateSpacepublic classSolverCTMC.SupportResultpublic classSolverCTMC.CtmcSsgResultpublic classSolverCTMC.generatorResultpublic classSolverCTMC.SolverCtmcJointResultpublic classSolverCTMC.StochCompResultpublic classSolverCTMC.AnalyzerResultpublic classSolverCTMC.TransientResultpublic classSolverCTMC.SampleResultpublic classSolverCTMC.SampleSysResultpublic classSolverCTMC.EventInfo
-
Field Summary
Fields Modifier and Type Field Description public Networkmodelpublic NetworkStructsnpublic SolverAvgHandlesavgHandlespublic SolverTranHandlestranHandlespublic Modelmodelpublic Stringnamepublic SolverOptionsoptionspublic SolverResultresultpublic booleanenableCheckspublic Randomrandom
-
Constructor Summary
Constructors Constructor Description SolverCTMC(Network model, Array<Object> args)SolverCTMC(Network model, SolverOptions options)
-
Method Summary
-
Methods inherited from class jline.solvers.NetworkSolver
avg, avg, avg, avgArvR, avgArvRChain, avgArvRHandles, avgChain, avgChainTable, avgChainTable, avgChainTable, avgChainTable, avgChainTable, avgChainTable, avgHandles, avgNode, avgNodeArvRChain, avgNodeChain, avgNodeChainTable, avgNodeChainTable, avgNodeChainTable, avgNodeChainTable, avgNodeChainTable, avgNodeChainTable, avgNodeQLenChain, avgNodeResidTChain, avgNodeRespTChain, avgNodeTable, avgNodeTable, avgNodeTable, avgNodeTable, avgNodeTable, avgNodeTable, avgNodeTputChain, avgNodeUtilChain, avgQLen, avgQLenChain, avgQLenHandles, avgResidT, avgResidTChain, avgResidTHandles, avgRespT, avgRespTChain, avgRespTHandles, avgSys, avgSysRespT, avgSysTable, avgSysTable, avgSysTable, avgSysTput, avgTable, avgTable, avgTable, avgTable, avgTable, avgTable, avgTput, avgTputChain, avgTputHandles, avgUtil, avgUtilChain, avgUtilHandles, avgWaitT, cdfPassT, cdfPassT, cdfRespT, cdfRespT, getAllSolvers, getAvg, 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, getAvgTable, getAvgTable, getAvgTable, getAvgTable, getAvgTable, getAvgTable, getAvgTput, getAvgTputChain, getAvgTputHandles, getAvgUtil, getAvgUtilChain, getAvgUtilHandles, getAvgWaitT, getCdfPassT, getCdfPassT, getCdfRespT, getCdfRespT, getModel, getProb, getProbAggr, getProbMarg, getProbMarg, getProbNormConstAggr, getStageTable, getStageTable, getTranAvg, getTranCdfPassT, getTranCdfPassT, getTranCdfRespT, getTranCdfRespT, getTranHandles, hasAvgResults, hasDistribResults, hasTranResults, initHandles, model, print, prob, prob, probAggr, probAggr, probMarg, probMarg, probNormConstAggr, probSys, probSysAggr, runAnalyzerChecks, sample, sampleAggr, setAvgHandles, setAvgResults, setDistribResults, setLang, setModel, setTranAvgResults, setTranHandles, setTranProb, stageTable, tranAvg, tranCdfPassT, tranCdfPassT, tranCdfRespT, tranCdfRespT, tranHandles -
Methods inherited from class jline.solvers.Solver
getName, getOptions, getResults, hasResults, isJavaAvailable, isValidOption, listValidOptions, parseOptions, parseOptions, reset, resetRandomGeneratorSeed, setChecks, setOptions -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-
Constructor Detail
-
SolverCTMC
SolverCTMC(Network model, SolverOptions options)
-
-
Method Detail
-
defaultOptions
static SolverOptions defaultOptions()
-
listValidMethods
List<String> listValidMethods()
-
getFeatureSet
static FeatureSet getFeatureSet()
-
printInfGen
static void printInfGen(SolverCTMC.generatorResult infGen, SolverCTMC.StateSpace stateSpace)
-
printInfGen
static void printInfGen(Matrix Q, Matrix SS)
-
printEventFilt
static void printEventFilt(SolverCTMC.generatorResult infGen, SolverCTMC.StateSpace stateSpace)
-
printEventFilt
static void printEventFilt(MatrixCell eventFilt, Matrix SS)
-
getCdfRespT
Matrix getCdfRespT(Matrix R)
Get the cumulative distribution function of response times using tagged job methodology
- Parameters:
R- Response time matrix or percentile values- Returns:
Matrix containing CDF values
-
getCdfSysRespT
Matrix getCdfSysRespT()
Get the cumulative distribution function of system response times
- Returns:
Matrix containing system-wide CDF values
-
getGenerator
SolverCTMC.generatorResult getGenerator()
-
getGenerator
SolverCTMC.generatorResult getGenerator(SolverOptions options)
-
getMarkedCTMC
MarkedMarkovProcess getMarkedCTMC()
Get the MarkedCTMC representation of the model
- Returns:
MarkedCTMC with generator and event filters
-
getMarkedCTMC
MarkedMarkovProcess getMarkedCTMC(SolverOptions options)
Get the MarkedCTMC representation of the model with specified options
- Parameters:
options- solver options- Returns:
MarkedCTMC with generator and event filters
-
getInfGen
SolverCTMC.generatorResult getInfGen()
-
getInfGen
SolverCTMC.generatorResult getInfGen(SolverOptions options)
-
getProb
Ret.ProbabilityResult getProb(int node, Matrix state)
Returns marginal state probabilities for a specific node and state. This is an abstract method that must be implemented by concrete solver subclasses.
- Parameters:
node- the node index for which to compute probabilitiesstate- the state vector to query (optional, null for all states)- Returns:
result containing marginal state probabilities
-
getProb
Ret.ProbabilityResult getProb(StatefulNode node, Matrix state)
-
getProb
Ret.ProbabilityResult getProb(StatefulNode node)
-
getProbAggr
Ret.ProbabilityResult getProbAggr(int node, Matrix state_a)
Returns aggregated marginal state probabilities for a specific node. This is an abstract method that must be implemented by concrete solver subclasses.
- Parameters:
node- the node index for which to compute probabilitiesstate_a- the aggregated state vector to query (optional, null for all states)- Returns:
result containing aggregated marginal state probabilities
-
getProbAggr
Ret.ProbabilityResult getProbAggr(StatefulNode node, Matrix state_a)
-
getProbAggr
Ret.ProbabilityResult getProbAggr(StatefulNode node)
-
getProbAggr
Ret.ProbabilityResult getProbAggr(Node node, Matrix state_a)
-
getProbAggr
Ret.ProbabilityResult getProbAggr(Node node)
-
getProbSys
Ret.ProbabilityResult getProbSys()
Returns joint state probabilities for the entire system. This is an abstract method that must be implemented by concrete solver subclasses.
- Returns:
result containing joint state probabilities
-
getProbSysAggr
Ret.ProbabilityResult getProbSysAggr()
Returns aggregated joint state probabilities for the entire system. This is an abstract method that must be implemented by concrete solver subclasses.
- Returns:
result containing aggregated joint state probabilities
-
getStateSpace
SolverCTMC.StateSpace getStateSpace()
-
getStateSpace
SolverCTMC.StateSpace getStateSpace(SolverOptions options)
-
getStateSpaceAggr
Matrix getStateSpaceAggr()
-
getStruct
NetworkStruct getStruct(SolverCTMC solverCTMC)
-
getTranProb
Ret.ProbabilityResult getTranProb(StatefulNode node)
-
getTranProbAggr
Ret.ProbabilityResult getTranProbAggr(StatefulNode node)
-
getTranProbSys
Ret.ProbabilityResult getTranProbSys()
-
getTranProbSysAggr
Ret.ProbabilityResult getTranProbSysAggr()
-
runAnalyzer
void runAnalyzer()
Executes the solver algorithm to analyze the model. This abstract method must be implemented by concrete solver classes.
-
sample
SolverCTMC.SampleResult sample(StatefulNode node, int numSamples)
-
sampleSys
Ret.SampleResult sampleSys(int numevents)
Samples joint system state trajectories. This is an abstract method that must be implemented by concrete solver subclasses.
- Returns:
result containing sampled joint system state trajectories
-
supports
boolean supports(Network model)
Checks if this solver supports the given network model. Default implementation returns true; subclasses should override to provide specific feature validation.
- Parameters:
model- the network model to check- Returns:
true if the model is supported, false otherwise
-
sampleAggr
SolverCTMC.SampleResult sampleAggr(StatefulNode node, int numSamples)
-
sampleSysAggr
Ret.SampleResult sampleSysAggr(int numevents)
Samples aggregated joint system state trajectories. This is an abstract method that must be implemented by concrete solver subclasses.
- Returns:
result containing sampled aggregated joint system state trajectories
-
-
-
-