Class SolverMAM
- Direct Known Subclasses:
MAM
SolverMAM implements matrix-analytic techniques for analyzing queueing networks with Markovian arrival processes (MAP), phase-type service distributions, and other non-exponential characteristics that go beyond product-form assumptions.
Key MAM solver capabilities:
- Markovian Arrival Process (MAP) modeling
- Phase-type (PH) service distribution analysis
- Matrix-geometric solution methods
- Quasi-Birth-Death (QBD) process analysis
- Non-product-form queueing network solutions
- Passage time distribution computation
This solver is particularly useful for networks with correlated arrivals, general service times, and complex dependency structures that cannot be analyzed using traditional product-form methods.
- Since:
- 1.0
- See Also:
-
Field Summary
Fields inherited from class jline.solvers.NetworkSolver
avgHandles, model, sn, tranHandles -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic SolverOptionsReturns cumulative distribution functions of passage times at steady-state.Returns cumulative distribution functions of passage times at steady-state.Returns cumulative distribution functions of response times at steady-state.Returns cumulative distribution functions of response times at steady-state.static FeatureSetReturns the feature set supported by the MAM solverGet response time percentiles using default values [50, 90, 95, 99]getPerctRespT(double[] percentiles) Get response time percentiles from Fork-Join analysisgetProbMarg(int node, int jobclass) Get marginal queue-length probability distribution for a job class (all states).getProbMarg(int node, int jobclass, Matrix state_m) Get marginal queue-length probability distribution for a job class.voidComputes transient average station metrics over the specified time interval.Returns cumulative distribution functions of passage times during transient analysis.Returns cumulative distribution functions of passage times during transient analysis.listValidMethods(Network model) voidExecutes the solver algorithm to analyze the 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, 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, getChainAvgT, getChainAvgT, getChainAvgT, getChainAvgT, getChainAvgT, getChainAvgT, getDeadlineTable, getModel, getNodeAvgT, getNodeAvgT, getNodeAvgT, getNodeAvgT, getNodeAvgT, getNodeAvgT, getNodeChainAvgT, getNodeChainAvgT, getNodeChainAvgT, getNodeChainAvgT, getNodeChainAvgT, getNodeChainAvgT, getProb, getProb, getProbAggr, getProbAggr, getProbNormConstAggr, getProbSys, getProbSysAggr, getStageT, getStageT, getStageTable, getStageTable, getSysAvgT, getSysAvgT, getSysAvgT, getTranCdfRespT, 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, probNormConstAggr, probSys, probSysAggr, runAnalyzerChecks, sample, sampleAggr, sampleSys, sampleSysAggr, 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
-
Constructor Details
-
SolverMAM
-
SolverMAM
-
SolverMAM
-
SolverMAM
-
-
Method Details
-
defaultOptions
-
getFeatureSet
Returns the feature set supported by the MAM solver- Returns:
- - the feature set supported by the MAM solver
-
getStruct
-
listValidMethods
-
listValidMethods
-
getTranAvg
public void getTranAvg()Description copied from class:NetworkSolverComputes transient average station metrics over the specified time interval. The timespan is defined in the solver options.- Overrides:
getTranAvgin classNetworkSolver
-
runAnalyzer
public void 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
-
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. -
getCdfRespT
Returns cumulative distribution functions of response times at steady-state. This method computes response time distributions using matrix-analytic methods.- Overrides:
getCdfRespTin classNetworkSolver- Parameters:
R- response time handles (optional)- Returns:
- result containing CDFs for response times
-
getCdfRespT
Returns cumulative distribution functions of response times at steady-state. Uses default response time handles.- Overrides:
getCdfRespTin classNetworkSolver- Returns:
- result containing CDFs for response times
-
getCdfPassT
Returns cumulative distribution functions of passage times at steady-state.- Overrides:
getCdfPassTin classNetworkSolver- Parameters:
R- response time handles (optional)- Returns:
- result containing CDFs for passage times
-
getCdfPassT
Returns cumulative distribution functions of passage times at steady-state. Uses default response time handles.- Overrides:
getCdfPassTin classNetworkSolver- Returns:
- result containing CDFs for passage times
-
getTranCdfPassT
Returns cumulative distribution functions of passage times during transient analysis.- Overrides:
getTranCdfPassTin classNetworkSolver- Parameters:
R- response time handles (optional)- Returns:
- result containing transient CDFs for passage times
-
getTranCdfPassT
Returns cumulative distribution functions of passage times during transient analysis. Uses default response time handles.- Overrides:
getTranCdfPassTin classNetworkSolver- Returns:
- result containing transient CDFs for passage times
-
getProbMarg
Get marginal queue-length probability distribution for a job class.Computes the probability distribution P(n jobs of class r) for n=0,1,...,N(r) using MMAPPH1FCFS from BUTools.
Current limitations:
- Only supported for single queue models
- Requires Queue station with FCFS scheduling
- Overrides:
getProbMargin classNetworkSolver- Parameters:
node- Station/node index (0-based)jobclass- Job class index (0-based)state_m- Optional state levels to query (null for all states, 0-based indexing)- Returns:
- Probability result containing marginal probabilities
- Throws:
IllegalArgumentException- if station or class index is invalidUnsupportedOperationException- if model structure is not supported
-
getProbMarg
Get marginal queue-length probability distribution for a job class (all states).NOT YET IMPLEMENTED - This method is a stub.
- Overrides:
getProbMargin classNetworkSolver- Parameters:
node- Station/node index (0-based)jobclass- Job class index (0-based)- Returns:
- Probability result - currently throws UnsupportedOperationException
- Throws:
UnsupportedOperationException- Always thrown - method not yet implemented- See Also:
-
getPerctRespT
Get response time percentiles from Fork-Join analysisThis method retrieves percentile values computed by the FJ_codes algorithm for Fork-Join queueing systems. It automatically detects FJ topology and computes percentiles using the algorithm from "Beyond the Mean in Fork-Join Queues" (IFIP Performance 2015).
Requirements:
- Model must have valid Fork-Join topology: Source → Fork → K Queues → Join → Sink
- Solver must have been run first (runAnalyzer() called)
- Homogeneous service distributions across parallel queues
- Parameters:
percentiles- Array of percentile levels (0-100 scale, e.g., {50, 90, 95, 99})- Returns:
- List of FJPercentileResult, one per job class, containing: - jobClass: class index - percentiles: requested percentile levels - values: computed percentile values - K: number of parallel queues - method: algorithm used (e.g., "FJ_NARE")
- Throws:
IllegalStateException- if model is not Fork-Join or solver not run
-
getPerctRespT
Get response time percentiles using default values [50, 90, 95, 99]- Returns:
- List of FJPercentileResult for default percentiles
- Throws:
IllegalStateException- if model is not Fork-Join or solver not run- See Also:
-