Class SolverAUTO
-
- All Implemented Interfaces:
public class SolverAUTO extends NetworkSolver
Automatic solver selection for queueing network models.
This solver automatically selects the most appropriate solution method based on model characteristics and requested performance metrics.
-
-
Field Summary
Fields Modifier and Type Field Description public final static intCANDIDATE_CTMCpublic final static intCANDIDATE_DESpublic final static intCANDIDATE_FLUIDpublic final static intCANDIDATE_JMTpublic final static intCANDIDATE_MAMpublic final static intCANDIDATE_MVApublic final static intCANDIDATE_NCpublic final static intCANDIDATE_SSApublic final static StringMETHOD_DEFAULTpublic final static StringMETHOD_HEURISTICpublic final static StringMETHOD_SIMpublic final static StringMETHOD_EXACTpublic final static StringMETHOD_FASTpublic final static StringMETHOD_ACCURATEpublic Networkmodelpublic NetworkStructsnpublic SolverAvgHandlesavgHandlespublic SolverTranHandlestranHandlespublic Modelmodelpublic Stringnamepublic SolverOptionsoptionspublic SolverResultresultpublic booleanenableCheckspublic Randomrandom
-
Constructor Summary
Constructors Constructor Description SolverAUTO(Network model)Constructor with model only SolverAUTO(Network model, String method)Constructor with model and method SolverAUTO(Network model, SolverOptions options)Constructor with model and options SolverAUTO(Network model, Array<Object> varargin)Constructor with model and varargs
-
Method Summary
Modifier and Type Method Description List<String>getCandidateSolverNames()Get list of candidate solver names StringgetSelectedSolverName()Get the name of the selected solver voidrunAnalyzer()Override the main run method to ensure proper delegation booleansupports(Network model)Checks if this solver supports the given network model. NetworkAvgChainTablegetAvgChainTable()Returns a table of average station metrics aggregated by job chains. NetworkAvgSysTablegetAvgSysTable()Returns a table of average system-level metrics. NetworkAvgNodeTablegetAvgNodeTable()Returns a table of average node metrics organized by job classes. NetworkAvgTablegetAvgTable()Returns a table of average station metrics organized by job classes. SolverResultgetAvg()Computes and returns average station metrics at steady-state. SolverResultgetAvgChain()Returns average station metrics aggregated by job chains. voidgetAvgSys()Computes average system-level metrics at steady state. SolverResultgetAvgNode()Computes average performance metrics at steady-state for all nodes. MatrixgetAvgArvRChain()Returns average arrival rates aggregated by job chains. MatrixgetAvgQLenChain()Returns average queue lengths aggregated by job chains. MatrixgetAvgUtilChain()Returns average server utilizations aggregated by job chains. MatrixgetAvgRespTChain()Returns average response times aggregated by job chains. MatrixgetAvgTputChain()Returns average throughputs aggregated by job chains. MatrixgetAvgSysRespT()Returns average system response times at steady state. MatrixgetAvgSysTput()Returns average system throughputs at steady state. voidgetTranAvg()Computes transient average station metrics over the specified time interval. Ret.DistributionResultgetTranCdfPassT()Returns cumulative distribution functions of passage times during transient analysis. Ret.DistributionResultgetTranCdfRespT()Returns cumulative distribution functions of response times during transient analysis. Array<Matrix>getTranProb(Node node)Array<Matrix>getTranProbAggr(Node node)Array<Matrix>getTranProbSys()Array<Matrix>getTranProbSysAggr()Ret.SampleResultsample(Node node, int numSamples)Ret.SampleResultsampleAggr(Node node, int numSamples)Ret.SampleResultsampleSys(int numSamples)Samples joint system state trajectories. Ret.SampleResultsampleSysAggr(int numSamples)Samples aggregated joint system state trajectories. Ret.DistributionResultgetCdfRespT()Returns cumulative distribution functions of response times at steady-state. doublegetProb(Node node, Matrix state)doublegetProbAggr(Node node, Matrix state_a)Ret.ProbabilityResultgetProbSys()Returns joint state probabilities for the entire system. Ret.ProbabilityResultgetProbSysAggr()Returns aggregated joint state probabilities for the entire system. Ret.ProbabilityResultgetProbNormConstAggr()Returns the logarithm of the normalizing constant of state probabilities. MatrixgetAvgQLen()Get average queue lengths at steady-state MatrixgetAvgUtil()Get average utilizations at steady-state MatrixgetAvgRespT()Get average response times at steady-state MatrixgetAvgResidT()Get average residence times at steady-state MatrixgetAvgWaitT()Get average waiting times (queue time excluding service) MatrixgetAvgTput()Get average throughputs at steady-state MatrixgetAvgArvR()Get average arrival rates at steady-state NetworkAvgTablegetAvgQLenTable()Get average queue length table NetworkAvgTablegetAvgUtilTable()Get average utilization table NetworkAvgTablegetAvgRespTTable()Get average response time table NetworkAvgTablegetAvgTputTable()Get average throughput table MatrixgetAvgResidTChain()Get average residence time by chain MatrixgetAvgNodeQLenChain()Get average node queue length by chain MatrixgetAvgNodeUtilChain()Get average node utilization by chain MatrixgetAvgNodeRespTChain()Get average node response time by chain MatrixgetAvgNodeResidTChain()Get average node residence time by chain MatrixgetAvgNodeTputChain()Get average node throughput by chain MatrixgetAvgNodeArvRChain()Get average node arrival rate by chain Ret.DistributionResultgetCdfPassT()Get CDF of passage times at steady-state MatrixgetPerctRespT(Array<double> percentiles)Get response time percentiles doublegetProbMarg(Node node, int jobclass, Matrix state_m)Get marginalized state probability NetworkAvgTableavgTable()Alias for getAvgTable() NetworkAvgSysTableavgSysTable()Alias for getAvgSysTable() NetworkAvgNodeTableavgNodeTable()Alias for getAvgNodeTable() NetworkAvgChainTableavgChainTable()Alias for getAvgChainTable() SolverResultavg()Alias for getAvg() SolverResultavgChain()Alias for getAvgChain() SolverResultavgNode()Alias for getAvgNode() MatrixavgQLen()Alias for getAvgQLen() MatrixavgUtil()Alias for getAvgUtil() MatrixavgRespT()Alias for getAvgRespT() MatrixavgResidT()Alias for getAvgResidT() MatrixavgWaitT()Alias for getAvgWaitT() MatrixavgTput()Alias for getAvgTput() MatrixavgArvR()Alias for getAvgArvR() MatrixavgQLenChain()Alias for getAvgQLenChain() MatrixavgUtilChain()Alias for getAvgUtilChain() MatrixavgRespTChain()Alias for getAvgRespTChain() MatrixavgResidTChain()Alias for getAvgResidTChain() MatrixavgTputChain()Alias for getAvgTputChain() MatrixavgArvRChain()Alias for getAvgArvRChain() MatrixavgSysRespT()Alias for getAvgSysRespT() MatrixavgSysTput()Alias for getAvgSysTput() Ret.DistributionResultcdfRespT()Alias for getCdfRespT() Ret.DistributionResultcdfPassT()Alias for getCdfPassT() MatrixperctRespT(Array<double> percentiles)Alias for getPerctRespT() doubleprob(Node node, Matrix state)Alias for getProb() doubleprobAggr(Node node, Matrix state_a)Alias for getProbAggr() Ret.ProbabilityResultprobSys()Alias for getProbSys() Ret.ProbabilityResultprobSysAggr()Alias for getProbSysAggr() Ret.ProbabilityResultprobNormConstAggr()Alias for getProbNormConstAggr() doubleprobMarg(Node node, int jobclass, Matrix state_m)Alias for getProbMarg() Ret.SampleResultsample(Node node)Alias for sample() Ret.SampleResultsampleSys()Alias for sampleSys() -
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, avgArvRHandles, avgChainT, avgChainT, avgChainT, avgChainT, avgChainT, avgChainT, avgChainTable, avgChainTable, avgChainTable, avgChainTable, avgChainTable, avgHandles, 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, avgNodeTputChain, avgNodeUtilChain, avgQLenHandles, avgResidTHandles, avgRespTHandles, avgSys, avgSysT, avgSysT, avgSysT, avgSysTable, avgSysTable, avgT, avgT, avgT, avgT, avgT, avgT, avgTable, avgTable, avgTable, avgTable, avgTable, avgTputHandles, avgUtilHandles, cdfPassT, cdfRespT, chainAvgT, chainAvgT, chainAvgT, chainAvgT, chainAvgT, chainAvgT, getAllSolvers, getAvg, getAvg, getAvgArvRHandles, getAvgChainTable, getAvgChainTable, getAvgChainTable, getAvgChainTable, getAvgChainTable, getAvgHandles, getAvgNodeChain, getAvgNodeChainTable, getAvgNodeChainTable, getAvgNodeChainTable, getAvgNodeChainTable, getAvgNodeChainTable, getAvgNodeChainTable, getAvgNodeTable, getAvgNodeTable, getAvgNodeTable, getAvgNodeTable, getAvgNodeTable, getAvgQLenHandles, getAvgResidTHandles, getAvgRespTHandles, getAvgSys, getAvgSys, getAvgSysTable, getAvgSysTable, getAvgT, getAvgT, getAvgT, getAvgT, getAvgT, getAvgT, getAvgTable, getAvgTable, getAvgTable, getAvgTable, getAvgTable, getAvgTputHandles, getAvgUtilHandles, getCdfPassT, getCdfRespT, getChainAvgT, getChainAvgT, getChainAvgT, getChainAvgT, getChainAvgT, getChainAvgT, getDeadlineTable, getModel, getNodeAvgT, getNodeAvgT, getNodeAvgT, getNodeAvgT, getNodeAvgT, getNodeAvgT, getNodeChainAvgT, getNodeChainAvgT, getNodeChainAvgT, getNodeChainAvgT, getNodeChainAvgT, getNodeChainAvgT, getProb, getProb, getProbAggr, getProbAggr, getProbMarg, getProbMarg, getSjrnT, getSjrnT, getStageT, getStageT, getStageTable, getStageTable, getSysAvgT, getSysAvgT, getSysAvgT, getTranCdfPassT, getTranCdfRespT, 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, runAnalyzerChecks, sample, sampleAggr, setAvgHandles, setAvgResults, setDistribResults, setLang, setModel, setTranAvgResults, setTranHandles, setTranProb, sjrnT, sjrnT, stageT, stageTable, sysAvgT, sysAvgT, sysAvgT, tranAvg, tranCdfPassT, tranCdfPassT, tranCdfRespT, tranCdfRespT, tranHandles -
Methods inherited from class jline.solvers.Solver
defaultOptions, 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
-
SolverAUTO
SolverAUTO(Network model)
Constructor with model only
-
SolverAUTO
SolverAUTO(Network model, SolverOptions options)
Constructor with model and options
-
-
Method Detail
-
getCandidateSolverNames
List<String> getCandidateSolverNames()
Get list of candidate solver names
-
getSelectedSolverName
String getSelectedSolverName()
Get the name of the selected solver
-
runAnalyzer
void runAnalyzer()
Override the main run method to ensure proper delegation
-
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
-
getAvgChainTable
NetworkAvgChainTable getAvgChainTable()
Returns a table of average station metrics aggregated by job chains.
- Returns:
table containing station metrics organized by chains
-
getAvgSysTable
NetworkAvgSysTable getAvgSysTable()
Returns a table of average system-level metrics.
- Returns:
table containing system response times and throughputs by chain
-
getAvgNodeTable
NetworkAvgNodeTable getAvgNodeTable()
Returns a table of average node metrics organized by job classes.
- Returns:
table containing node-level metrics for each class
-
getAvgTable
NetworkAvgTable getAvgTable()
Returns a table of average station metrics organized by job classes.
- Returns:
table containing station-level metrics for each class
-
getAvg
SolverResult getAvg()
Computes and returns average station metrics at steady-state. This is the main method for obtaining steady-state performance metrics.
- Returns:
solver result containing station-level average metrics
-
getAvgChain
SolverResult getAvgChain()
Returns average station metrics aggregated by job chains.
- Returns:
solver result with metrics aggregated by chains
-
getAvgSys
void getAvgSys()
Computes average system-level metrics at steady state. This includes system response times and throughputs aggregated across all chains.
-
getAvgNode
SolverResult getAvgNode()
Computes average performance metrics at steady-state for all nodes. This method aggregates station-level metrics to node-level metrics.
- Returns:
solver result containing node-level average metrics
-
getAvgArvRChain
Matrix getAvgArvRChain()
Returns average arrival rates aggregated by job chains.
- Returns:
matrix of arrival rates [stations x chains]
-
getAvgQLenChain
Matrix getAvgQLenChain()
Returns average queue lengths aggregated by job chains.
- Returns:
matrix of queue lengths [stations x chains]
-
getAvgUtilChain
Matrix getAvgUtilChain()
Returns average server utilizations aggregated by job chains.
- Returns:
matrix of utilizations [stations x chains]
-
getAvgRespTChain
Matrix getAvgRespTChain()
Returns average response times aggregated by job chains.
- Returns:
matrix of response times [stations x chains]
-
getAvgTputChain
Matrix getAvgTputChain()
Returns average throughputs aggregated by job chains.
- Returns:
matrix of throughputs [stations x chains]
-
getAvgSysRespT
Matrix getAvgSysRespT()
Returns average system response times at steady state.
- Returns:
matrix of system response times by chain
-
getAvgSysTput
Matrix getAvgSysTput()
Returns average system throughputs at steady state.
- Returns:
matrix of system throughputs by chain
-
getTranAvg
void getTranAvg()
Computes transient average station metrics over the specified time interval. The timespan is defined in the solver options.
-
getTranCdfPassT
Ret.DistributionResult getTranCdfPassT()
Returns cumulative distribution functions of passage times during transient analysis. Uses default response time handles.
- Returns:
result containing transient CDFs for passage times
-
getTranCdfRespT
Ret.DistributionResult getTranCdfRespT()
Returns cumulative distribution functions of response times during transient analysis. Uses default response time handles.
- Returns:
result containing transient CDFs for response times
-
getTranProb
Array<Matrix> getTranProb(Node node)
-
getTranProbAggr
Array<Matrix> getTranProbAggr(Node node)
-
getTranProbSys
Array<Matrix> getTranProbSys()
-
getTranProbSysAggr
Array<Matrix> getTranProbSysAggr()
-
sample
Ret.SampleResult sample(Node node, int numSamples)
-
sampleAggr
Ret.SampleResult sampleAggr(Node node, int numSamples)
-
sampleSys
Ret.SampleResult sampleSys(int numSamples)
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
-
sampleSysAggr
Ret.SampleResult sampleSysAggr(int numSamples)
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
-
getCdfRespT
Ret.DistributionResult getCdfRespT()
Returns cumulative distribution functions of response times at steady-state. Uses default response time handles.
- Returns:
result containing CDFs for response times [stations x classes]
-
getProbAggr
double getProbAggr(Node node, Matrix state_a)
-
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
-
getProbNormConstAggr
Ret.ProbabilityResult getProbNormConstAggr()
Returns the logarithm of the normalizing constant of state probabilities. This is an abstract method that must be implemented by concrete solver subclasses.
- Returns:
result containing the log normalizing constant
-
getAvgQLen
Matrix getAvgQLen()
Get average queue lengths at steady-state
-
getAvgUtil
Matrix getAvgUtil()
Get average utilizations at steady-state
-
getAvgRespT
Matrix getAvgRespT()
Get average response times at steady-state
-
getAvgResidT
Matrix getAvgResidT()
Get average residence times at steady-state
-
getAvgWaitT
Matrix getAvgWaitT()
Get average waiting times (queue time excluding service)
-
getAvgTput
Matrix getAvgTput()
Get average throughputs at steady-state
-
getAvgArvR
Matrix getAvgArvR()
Get average arrival rates at steady-state
-
getAvgQLenTable
NetworkAvgTable getAvgQLenTable()
Get average queue length table
-
getAvgUtilTable
NetworkAvgTable getAvgUtilTable()
Get average utilization table
-
getAvgRespTTable
NetworkAvgTable getAvgRespTTable()
Get average response time table
-
getAvgTputTable
NetworkAvgTable getAvgTputTable()
Get average throughput table
-
getAvgResidTChain
Matrix getAvgResidTChain()
Get average residence time by chain
-
getAvgNodeQLenChain
Matrix getAvgNodeQLenChain()
Get average node queue length by chain
-
getAvgNodeUtilChain
Matrix getAvgNodeUtilChain()
Get average node utilization by chain
-
getAvgNodeRespTChain
Matrix getAvgNodeRespTChain()
Get average node response time by chain
-
getAvgNodeResidTChain
Matrix getAvgNodeResidTChain()
Get average node residence time by chain
-
getAvgNodeTputChain
Matrix getAvgNodeTputChain()
Get average node throughput by chain
-
getAvgNodeArvRChain
Matrix getAvgNodeArvRChain()
Get average node arrival rate by chain
-
getCdfPassT
Ret.DistributionResult getCdfPassT()
Get CDF of passage times at steady-state
-
getPerctRespT
Matrix getPerctRespT(Array<double> percentiles)
Get response time percentiles
-
getProbMarg
double getProbMarg(Node node, int jobclass, Matrix state_m)
Get marginalized state probability
-
avgTable
NetworkAvgTable avgTable()
Alias for getAvgTable()
-
avgSysTable
NetworkAvgSysTable avgSysTable()
Alias for getAvgSysTable()
-
avgNodeTable
NetworkAvgNodeTable avgNodeTable()
Alias for getAvgNodeTable()
-
avgChainTable
NetworkAvgChainTable avgChainTable()
Alias for getAvgChainTable()
-
avg
SolverResult avg()
Alias for getAvg()
-
avgChain
SolverResult avgChain()
Alias for getAvgChain()
-
avgNode
SolverResult avgNode()
Alias for getAvgNode()
-
avgQLenChain
Matrix avgQLenChain()
Alias for getAvgQLenChain()
-
avgUtilChain
Matrix avgUtilChain()
Alias for getAvgUtilChain()
-
avgRespTChain
Matrix avgRespTChain()
Alias for getAvgRespTChain()
-
avgResidTChain
Matrix avgResidTChain()
Alias for getAvgResidTChain()
-
avgTputChain
Matrix avgTputChain()
Alias for getAvgTputChain()
-
avgArvRChain
Matrix avgArvRChain()
Alias for getAvgArvRChain()
-
avgSysRespT
Matrix avgSysRespT()
Alias for getAvgSysRespT()
-
avgSysTput
Matrix avgSysTput()
Alias for getAvgSysTput()
-
cdfRespT
Ret.DistributionResult cdfRespT()
Alias for getCdfRespT()
-
cdfPassT
Ret.DistributionResult cdfPassT()
Alias for getCdfPassT()
-
perctRespT
Matrix perctRespT(Array<double> percentiles)
Alias for getPerctRespT()
-
probSys
Ret.ProbabilityResult probSys()
Alias for getProbSys()
-
probSysAggr
Ret.ProbabilityResult probSysAggr()
Alias for getProbSysAggr()
-
probNormConstAggr
Ret.ProbabilityResult probNormConstAggr()
Alias for getProbNormConstAggr()
-
sample
Ret.SampleResult sample(Node node)
Alias for sample()
-
sampleSys
Ret.SampleResult sampleSys()
Alias for sampleSys()
-
-
-
-