Class NetworkSolver
- Direct Known Subclasses:
SolverAUTO,SolverBA,SolverCTMC,SolverFluid,SolverJMT,SolverLDES,SolverMAM,SolverMVA,SolverNC,SolverQNS,SolverSSA
This class provides the core functionality for analyzing queueing networks using various solution algorithms. It manages performance metrics computation including queue lengths, utilizations, response times, throughputs, and arrival rates at both steady-state and transient conditions.
The solver operates on Network models and produces results through various
table formats for different levels of aggregation (station-level, node-level, chain-level).
- See Also:
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionHandles for steady-state average performance metricsThe queueing network model to be solvedInternal data structure describing the network modelHandles for transient performance metrics -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedNetworkSolver(Network model, String name) Constructs a NetworkSolver with the specified model and name using default options.protectedNetworkSolver(Network model, String name, SolverOptions options) Constructs a NetworkSolver with the specified model, name, and options. -
Method Summary
Modifier and TypeMethodDescriptionaCT()Alias for getAvgChainTable().aCT(boolean keepDisabled) Alias for getAvgChainTable(boolean keepDisabled).Alias for getAvgChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A).aCT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Alias for getAvgChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled).aCT(SolverAvgHandles avgHandles) Alias for getAvgChainTable(SolverAvgHandles avgHandles).aCT(SolverAvgHandles avgHandles, boolean keepDisabled) Alias for getAvgChainTable(SolverAvgHandles avgHandles, boolean keepDisabled).aNCT()Short alias for getAvgNodeChainTable().aNCT(boolean keepDisabled) Short alias for getAvgNodeChainTable(boolean keepDisabled).Short alias for getAvgNodeChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A).aNCT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Short alias for getAvgNodeChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled).aNCT(SolverAvgHandles avgHandles) Short alias for getAvgNodeChainTable(SolverAvgHandles avgHandles).aNCT(SolverAvgHandles avgHandles, boolean keepDisabled) Short alias for getAvgNodeChainTable(SolverAvgHandles avgHandles, boolean keepDisabled).aNT()Alias for getAvgNodeTable().aNT(boolean keepDisabled) Alias for getAvgNodeTable(boolean keepDisabled).Alias for getAvgNodeTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A).aNT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Alias for getAvgNodeTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled).aNT(SolverAvgHandles avgHandles) Alias for getAvgNodeTable(SolverAvgHandles avgHandles).aNT(SolverAvgHandles avgHandles, boolean keepDisabled) Alias for getAvgNodeTable(SolverAvgHandles avgHandles, boolean keepDisabled).aST()Short alias for getAvgSysTable().Short alias for getAvgSysTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A).aST(SolverAvgHandles avgHandles) Short alias for getAvgSysTable(SolverAvgHandles avgHandles).aT()aT(boolean keepDisabled) aT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) aT(SolverAvgHandles avgHandles) aT(SolverAvgHandles avgHandles, boolean keepDisabled) avg()avg(SolverAvgHandles avgHandles) avgArvR()avgChain()avgChainT(boolean keepDisabled) avgChainT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) avgChainT(SolverAvgHandles avgHandles) avgChainT(SolverAvgHandles avgHandles, boolean keepDisabled) avgChainTable(boolean keepDisabled) avgChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) avgChainTable(SolverAvgHandles avgHandles) avgChainTable(SolverAvgHandles avgHandles, boolean keepDisabled) avgNode()avgNodeChainT(boolean keepDisabled) avgNodeChainT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) avgNodeChainT(SolverAvgHandles avgHandles) avgNodeChainT(SolverAvgHandles avgHandles, boolean keepDisabled) avgNodeChainTable(boolean keepDisabled) avgNodeChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) avgNodeChainTable(SolverAvgHandles avgHandles) avgNodeChainTable(SolverAvgHandles avgHandles, boolean keepDisabled) avgNodeT()avgNodeT(boolean keepDisabled) avgNodeT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) avgNodeT(SolverAvgHandles avgHandles) avgNodeT(SolverAvgHandles avgHandles, boolean keepDisabled) avgNodeTable(boolean keepDisabled) avgNodeTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) avgNodeTable(SolverAvgHandles avgHandles) avgNodeTable(SolverAvgHandles avgHandles, boolean keepDisabled) avgQLen()avgRespT()voidavgSys()avgSysT()avgSysT(SolverAvgHandles avgHandles) avgSysTable(SolverAvgHandles avgHandles) avgT()avgT(boolean keepDisabled) avgT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) avgT(SolverAvgHandles avgHandles) avgT(SolverAvgHandles avgHandles, boolean keepDisabled) avgTable()avgTable(boolean keepDisabled) avgTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) avgTable(SolverAvgHandles avgHandles) avgTable(SolverAvgHandles avgHandles, boolean keepDisabled) avgTput()avgUtil()avgWaitT()static StringbindingCapacityReason(Network model, NetworkStruct sn, String solverName) Shared structural gate for finite station capacity (setCapacity) and finite per-class buffers (setClassCap), used by the product-form solvers (MVA, NC).cdfPassT()cdfRespT()Alias for getAvgChainTable().chainAvgT(boolean keepDisabled) Alias for getAvgChainTable(boolean keepDisabled).Alias for getAvgChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A).chainAvgT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Alias for getAvgChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled).chainAvgT(SolverAvgHandles avgHandles) Alias for getAvgChainTable(SolverAvgHandles avgHandles).chainAvgT(SolverAvgHandles avgHandles, boolean keepDisabled) Alias for getAvgChainTable(SolverAvgHandles avgHandles, boolean keepDisabled).static List<NetworkSolver> getAllSolvers(Network model) Returns a list containing instances of all available network solvers for the given model.getAvg()Computes and returns average station metrics at steady-state using individual handles.getAvg(SolverAvgHandles avgHandles) Computes and returns average station metrics at steady-state using specified handles.Computes and returns average arrival rates at steady-state.Returns average arrival rates aggregated by job chains.Returns the average arrival rate metric handles.Returns a table of detailed per-class cache performance metrics for every Cache node: a total row (List=0) per cache+read class plus, where the solver reports per-list hit probabilities and the cache has more than one list, one row per cache list.Returns average station metrics aggregated by job chains.Returns a table of average station metrics aggregated by job chains.getAvgChainTable(boolean keepDisabled) Returns a table of average station metrics aggregated by job chains with keepDisabled option.Returns a table of average station metrics aggregated by job chains using individual handles.getAvgChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Returns a table of average station metrics aggregated by job chains using individual handles and keepDisabled option.getAvgChainTable(SolverAvgHandles avgHandles) Returns a table of average station metrics aggregated by job chains using specified handles.getAvgChainTable(SolverAvgHandles avgHandles, boolean keepDisabled) Returns a table of average station metrics aggregated by job chains using specified handles and keepDisabled option.Returns the steady-state average performance metric handles.Returns a table of item-level cache occupancy: one row per Cache node, item and cache list (level), with the steady-state probability the item resides in that list.Computes average performance metrics at steady-state for all nodes.Returns average node arrival rates aggregated by job chains.Returns average node metrics aggregated by job chains.Returns a table of average node metrics aggregated by chains.getAvgNodeChainTable(boolean keepDisabled) Returns a table of average node metrics aggregated by chains with keepDisabled option.Returns a table of average node metrics aggregated by chains using individual handles.getAvgNodeChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Returns a table of average node metrics aggregated by chains using individual handles and keepDisabled option.getAvgNodeChainTable(SolverAvgHandles avgHandles) Returns a table of average node metrics aggregated by chains using specified handles.getAvgNodeChainTable(SolverAvgHandles avgHandles, boolean keepDisabled) Returns a table of average node metrics aggregated by chains using specified handles and keepDisabled option.Returns average node queue lengths aggregated by job chains.Returns average node residence times aggregated by job chains.Returns average node response times aggregated by job chains.Returns a table of average node metrics organized by job classes.getAvgNodeTable(boolean keepDisabled) Returns a table of average node metrics organized by job classes with keepDisabled option.Returns a table of average node metrics organized by job classes using individual handles.getAvgNodeTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Returns a table of average node metrics organized by job classes using individual handles and keepDisabled option.getAvgNodeTable(SolverAvgHandles avgHandles) Returns a table of average node metrics organized by job classes using specified handles.getAvgNodeTable(SolverAvgHandles avgHandles, boolean keepDisabled) Returns a table of average node metrics organized by job classes using specified handles and keepDisabled option.Returns average node throughputs aggregated by job chains.Returns average node utilizations aggregated by job chains.Computes and returns average queue lengths at steady-state.Returns average queue lengths aggregated by job chains.Returns the average queue length metric handles.Computes and returns average residence times in queue (including service).Returns average residence times aggregated by job chains.Returns the average residence time metric handles.Computes and returns average response times at steady-state.Returns average response times aggregated by job chains.Returns the average response time metric handles.voidComputes average system-level metrics at steady state.voidComputes average system-level metrics at steady state using individual handles.voidgetAvgSys(SolverAvgHandles avgHandles) Computes average system-level metrics at steady state using specified handles.Returns average system response times at steady state.Returns a table of average system-level metrics.Returns a table of average system-level metrics using individual handles.getAvgSysTable(SolverAvgHandles avgHandles) Returns a table of average system-level metrics using specified handles.Returns average system throughputs at steady state.getAvgT()Alias for getAvgTable().getAvgT(boolean keepDisabled) Alias for getAvgTable(boolean keepDisabled).Alias for getAvgTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A).getAvgT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Alias for getAvgTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled).getAvgT(SolverAvgHandles avgHandles) Alias for getAvgTable(SolverAvgHandles avgHandles).getAvgT(SolverAvgHandles avgHandles, boolean keepDisabled) Alias for getAvgTable(SolverAvgHandles avgHandles, boolean keepDisabled).Returns a table of average station metrics organized by job classes.getAvgTable(boolean keepDisabled) Returns a table of average station metrics organized by job classes with keepDisabled option.Returns a table of average station metrics organized by job classes using individual handles.getAvgTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Returns a table of average station metrics organized by job classes using individual handles and keepDisabled option.getAvgTable(SolverAvgHandles avgHandles) Returns a table of average station metrics organized by job classes using specified handles.getAvgTable(SolverAvgHandles avgHandles, boolean keepDisabled) Returns a table of average station metrics organized by job classes using specified handles and keepDisabled option.Computes and returns average throughputs at steady-state.Returns average throughputs aggregated by job chains.Returns the average throughput metric handles.Computes and returns average server utilizations at steady-state.Returns average server utilizations aggregated by job chains.Returns the average utilization metric handles.Computes and returns average waiting times in queue excluding service time.Returns 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.Alias for getAvgChainTable().getChainAvgT(boolean keepDisabled) Alias for getAvgChainTable(boolean keepDisabled).Alias for getAvgChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A).getChainAvgT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Alias for getAvgChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled).getChainAvgT(SolverAvgHandles avgHandles) Alias for getAvgChainTable(SolverAvgHandles avgHandles).getChainAvgT(SolverAvgHandles avgHandles, boolean keepDisabled) Alias for getAvgChainTable(SolverAvgHandles avgHandles, boolean keepDisabled).Returns a table of deadline-related metrics (response time and tardiness) organized by station and job class.getModel()Returns the queueing network model being solved.Higher moments of the per-chain queue length, up to the second moment.getMomentChainTable(int order) Higher moments of the per-chain queue length, up to the given moment order.getMomentChainTable(int[] order) Higher moments of the per-chain queue length.Higher moments of the total queue length, up to the second moment.getMomentStationTable(int order) Higher moments of the total queue length, up to the given moment order.getMomentStationTable(int[] order) Higher moments of the total queue length.Exact higher moments of the per-class performance measures, up to the second moment.getMomentTable(int order) Exact higher moments of the per-class performance measures, up to the given moment order.getMomentTable(int[] order) Exact higher moments of the per-class performance measures.Alias for getAvgNodeTable().getNodeAvgT(boolean keepDisabled) Alias for getAvgNodeTable(boolean keepDisabled).Alias for getAvgNodeTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A).getNodeAvgT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Alias for getAvgNodeTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled).getNodeAvgT(SolverAvgHandles avgHandles) Alias for getAvgNodeTable(SolverAvgHandles avgHandles).getNodeAvgT(SolverAvgHandles avgHandles, boolean keepDisabled) Alias for getAvgNodeTable(SolverAvgHandles avgHandles, boolean keepDisabled).Alias for getAvgNodeChainTable().getNodeChainAvgT(boolean keepDisabled) Alias for getAvgNodeChainTable(boolean keepDisabled).Alias for getAvgNodeChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A).getNodeChainAvgT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Alias for getAvgNodeChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled).getNodeChainAvgT(SolverAvgHandles avgHandles) Alias for getAvgNodeChainTable(SolverAvgHandles avgHandles).getNodeChainAvgT(SolverAvgHandles avgHandles, boolean keepDisabled) Alias for getAvgNodeChainTable(SolverAvgHandles avgHandles, boolean keepDisabled).getProb(int node) Returns marginal state probabilities for a specific node (all states).Returns marginal state probabilities for a specific node and state.getProbAggr(int node) Probability of a SPECIFIC per-class job distribution at a station (current state).getProbAggr(int node, Matrix state_a) Probability of a SPECIFIC per-class job distribution at a station.getProbMarg(int node, int jobclass) Probability distribution for queue length of a SINGLE class at a station (all states).getProbMarg(int node, int jobclass, Matrix state_m) Probability distribution for queue length of a SINGLE class at a station.Returns the logarithm of the normalizing constant of state probabilities.Returns joint state probabilities for the entire system.Returns aggregated joint state probabilities for the entire system.Performance sensitivities with respect to service rates.getSensitivityTable(String method, double step, String scheme) Performance sensitivities with respect to service rates, with an explicit branch, step and difference scheme.getStageT(boolean keepDisabled) Returns a table of average stage metrics organized by job classes.getStageTable(boolean keepDisabled) Returns a table of average stage metrics organized by job classes with keepDisabled option.Alias for getAvgSysTable().Alias for getAvgSysTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A).getSysAvgT(SolverAvgHandles avgHandles) Alias for getAvgSysTable(SolverAvgHandles avgHandles).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.Returns cumulative distribution functions of response times during transient analysis.Returns cumulative distribution functions of response times during transient analysis.Returns the transient performance metric handles.protected booleanChecks if the solver has computed steady-state average metrics.booleanChecks if the solver has computed steady-state distribution metrics.booleanChecks if the solver has computed transient average metrics.initFromSolver(NetworkSolver initSolver) Warm-start the solver from the steady-state solution of an auxiliary solver.protected voidInitializes performance metric handles from the model.model()nodeAvgT()Alias for getAvgNodeTable().nodeAvgT(boolean keepDisabled) Alias for getAvgNodeTable(boolean keepDisabled).Alias for getAvgNodeTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A).nodeAvgT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Alias for getAvgNodeTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled).nodeAvgT(SolverAvgHandles avgHandles) Alias for getAvgNodeTable(SolverAvgHandles avgHandles).nodeAvgT(SolverAvgHandles avgHandles, boolean keepDisabled) Alias for getAvgNodeTable(SolverAvgHandles avgHandles, boolean keepDisabled).Alias for getAvgNodeChainTable().nodeChainAvgT(boolean keepDisabled) Alias for getAvgNodeChainTable(boolean keepDisabled).Alias for getAvgNodeChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A).nodeChainAvgT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Alias for getAvgNodeChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled).nodeChainAvgT(SolverAvgHandles avgHandles) Alias for getAvgNodeChainTable(SolverAvgHandles avgHandles).nodeChainAvgT(SolverAvgHandles avgHandles, boolean keepDisabled) Alias for getAvgNodeChainTable(SolverAvgHandles avgHandles, boolean keepDisabled).options()Returns a fluent configurator for this solver's options, allowing chained calls such assolver.options().method("parallel").samples(20000) .seed(1).build().voidprint()Detailed print function that displays all contents of the NetworkSolver.prob(int node) probAggr(int node) probMarg(int node, int jobclass) probSys()voidrunAnalyzerChecks(SolverOptions options) Validates model compatibility and method support before analysis.sample(int node, int numEvents) Samples state trajectories for a specific node.sampleAggr(int node, int numEvents) Samples aggregated state trajectories for a specific node.sampleSys(int numEvents) Samples joint system state trajectories.sampleSysAggr(int numEvents) Samples aggregated joint system state trajectories.voidsetAvgHandles(SolverAvgHandles handles) Sets the steady-state average performance metric handles.voidsetAvgResults(Matrix Q, Matrix U, Matrix R, Matrix T, Matrix A, Matrix W, Matrix C, Matrix X, double runtime, String method, int iter) Stores computed average metrics at steady-state in the solver result.protected final voidsetDistribResults(Matrix RD, double runtime) Stores distribution metrics at steady-state.protected voidsetLang()Sets the language for solver execution.voidSets the queueing network model to be solved.voidsetTranAvgResults(Matrix[][] Qt, Matrix[][] Ut, Matrix[][] Rt, Matrix[][] Tt, Matrix[][] Ct, Matrix[][] Xt, double runtimet) Stores computed transient average metrics.voidsetTranHandles(SolverTranHandles handles) Sets the transient performance metric handles.protected final voidsetTranProb(Matrix t, Matrix pi_t, Matrix SS, double runtimet) Stores transient probability distributions.stageT()booleanTrue when the solver evaluates a product-form recursion thatgetSensitivityTable()can differentiate analytically.sysAvgT()Alias for getAvgSysTable().Alias for getAvgSysTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A).sysAvgT(SolverAvgHandles avgHandles) Alias for getAvgSysTable(SolverAvgHandles avgHandles).voidtranAvg()Methods inherited from class jline.solvers.Solver
defaultOptions, getMethodFeatureSet, getName, getOptions, getResults, hasResults, isJavaAvailable, isStochastic, isStochasticMethod, isValidOption, listValidOptions, parseOptions, parseOptions, reset, resetRandomGeneratorSeed, resolveMethod, runAnalyzer, selectMethod, setChecks, setOptions, supports, supportsModelMethod, timeExceeded
-
Field Details
-
model
The queueing network model to be solved -
sn
Internal data structure describing the network model -
avgHandles
Handles for steady-state average performance metrics -
tranHandles
Handles for transient performance metrics
-
-
Constructor Details
-
NetworkSolver
Constructs a NetworkSolver with the specified model, name, and options.- Parameters:
model- the queueing network model to solvename- the name identifier for this solver instanceoptions- configuration options for the solver- Throws:
RuntimeException- if the model is empty (has no nodes)
-
NetworkSolver
Constructs a NetworkSolver with the specified model and name using default options.- Parameters:
model- the queueing network model to solvename- the name identifier for this solver instance
-
-
Method Details
-
getAllSolvers
Returns a list containing instances of all available network solvers for the given model.- Parameters:
model- the queueing network model- Returns:
- list of all available solver implementations
-
avg
-
avg
-
avg
-
avgArvR
-
avgArvRChain
-
avgArvRHandles
-
avgChain
-
avgChainTable
-
avgChainTable
-
avgChainTable
-
avgChainTable
-
avgChainTable
-
avgChainTable
-
avgChainT
-
avgChainT
-
avgChainT
-
avgChainT
-
avgChainT
-
avgChainT
-
avgHandles
-
avgNode
-
avgNodeArvRChain
-
avgNodeChain
-
avgNodeChainTable
-
avgNodeChainTable
-
avgNodeChainTable
-
avgNodeChainTable
-
avgNodeChainTable
public NetworkAvgNodeChainTable avgNodeChainTable(SolverAvgHandles avgHandles, boolean keepDisabled) -
avgNodeChainTable
-
avgNodeChainT
-
avgNodeChainT
-
avgNodeChainT
-
avgNodeChainT
-
avgNodeChainT
-
avgNodeChainT
-
avgNodeQLenChain
-
avgNodeResidTChain
-
avgNodeRespTChain
-
avgNodeTable
-
avgNodeTable
-
avgNodeTable
-
avgNodeTable
-
avgNodeTable
-
avgNodeTable
-
avgNodeT
-
avgNodeT
-
avgNodeT
-
avgNodeT
-
avgNodeT
-
avgNodeT
-
avgNodeTputChain
-
avgNodeUtilChain
-
avgQLen
-
avgQLenChain
-
avgQLenHandles
-
avgResidT
-
avgResidTChain
-
avgResidTHandles
-
avgRespT
-
avgRespTChain
-
avgRespTHandles
-
avgSys
public void avgSys() -
avgSysRespT
-
avgSysTable
-
avgSysTable
-
avgSysTable
-
avgSysT
-
avgSysT
-
avgSysT
-
avgSysTput
-
options
Returns a fluent configurator for this solver's options, allowing chained calls such assolver.options().method("parallel").samples(20000) .seed(1).build(). The terminalbuild()returns this solver.- Returns:
- a
NetworkSolver.SolverConfiguratorwrapping this solver
-
avgTable
-
avgTable
-
avgTable
-
avgTable
-
avgTable
-
avgTable
-
avgT
-
avgT
-
avgT
-
avgT
-
avgT
-
avgT
-
aT
-
aT
-
aT
-
aT
-
aT
-
aT
-
avgTput
-
avgTputChain
-
avgTputHandles
-
avgUtil
-
avgUtilChain
-
avgUtilHandles
-
avgWaitT
-
cdfPassT
-
cdfPassT
-
cdfRespT
-
cdfRespT
-
getAvg
-
getAvg
Computes and returns average station metrics at steady-state using specified handles.- Parameters:
avgHandles- custom handles for performance metrics- Returns:
- solver result containing station-level average metrics
- Throws:
RuntimeException- if unable to compute results
-
getAvg
public SolverResult getAvg(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A) Computes and returns average station metrics at steady-state using individual handles.- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handle- Returns:
- solver result containing station-level average metrics
- Throws:
RuntimeException- if unable to compute results
-
getAvgArvR
Computes and returns average arrival rates at steady-state. If results are not available, triggers solver execution.- Returns:
- matrix of average arrival rates [stations x classes]
-
getAvgArvRChain
Returns average arrival rates aggregated by job chains.- Returns:
- matrix of arrival rates [stations x chains]
-
getAvgArvRHandles
Returns the average arrival rate metric handles.- Returns:
- handles for arrival rate metrics
-
getAvgChain
Returns average station metrics aggregated by job chains.- Returns:
- solver result with metrics aggregated by chains
-
getAvgChainTable
Returns a table of average station metrics aggregated by job chains.- Returns:
- table containing station metrics organized by chains
-
getAvgChainTable
Returns a table of average station metrics aggregated by job chains using specified handles.- Parameters:
avgHandles- custom handles for performance metrics- Returns:
- table containing station metrics organized by chains
-
getAvgChainTable
public NetworkAvgChainTable getAvgChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A) Returns a table of average station metrics aggregated by job chains using individual handles.- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handle- Returns:
- table containing station metrics organized by chains
-
getAvgChainTable
Returns a table of average station metrics aggregated by job chains with keepDisabled option.- Parameters:
keepDisabled- whether to include disabled metrics in the table- Returns:
- table containing station metrics organized by chains
-
getAvgChainTable
Returns a table of average station metrics aggregated by job chains using specified handles and keepDisabled option.- Parameters:
avgHandles- custom handles for performance metricskeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing station metrics organized by chains
-
getAvgChainTable
public NetworkAvgChainTable getAvgChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Returns a table of average station metrics aggregated by job chains using individual handles and keepDisabled option.- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handlekeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing station metrics organized by chains
-
getChainAvgT
Alias for getAvgChainTable().- Returns:
- table containing station metrics organized by chains
-
getChainAvgT
Alias for getAvgChainTable(boolean keepDisabled).- Parameters:
keepDisabled- whether to include disabled metrics in the table- Returns:
- table containing station metrics organized by chains
-
getChainAvgT
Alias for getAvgChainTable(SolverAvgHandles avgHandles).- Parameters:
avgHandles- the average handles to use- Returns:
- table containing station metrics organized by chains
-
getChainAvgT
Alias for getAvgChainTable(SolverAvgHandles avgHandles, boolean keepDisabled).- Parameters:
avgHandles- the average handles to usekeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing station metrics organized by chains
-
getChainAvgT
public NetworkAvgChainTable getChainAvgT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A) Alias for getAvgChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A).- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handle- Returns:
- table containing station metrics organized by chains
-
getChainAvgT
public NetworkAvgChainTable getChainAvgT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Alias for getAvgChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled).- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handlekeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing station metrics organized by chains
-
chainAvgT
Alias for getAvgChainTable().- Returns:
- table containing station metrics organized by chains
-
chainAvgT
Alias for getAvgChainTable(boolean keepDisabled).- Parameters:
keepDisabled- whether to include disabled metrics in the table- Returns:
- table containing station metrics organized by chains
-
chainAvgT
Alias for getAvgChainTable(SolverAvgHandles avgHandles).- Parameters:
avgHandles- the average handles to use- Returns:
- table containing station metrics organized by chains
-
chainAvgT
Alias for getAvgChainTable(SolverAvgHandles avgHandles, boolean keepDisabled).- Parameters:
avgHandles- the average handles to usekeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing station metrics organized by chains
-
chainAvgT
public NetworkAvgChainTable chainAvgT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A) Alias for getAvgChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A).- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handle- Returns:
- table containing station metrics organized by chains
-
chainAvgT
public NetworkAvgChainTable chainAvgT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Alias for getAvgChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled).- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handlekeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing station metrics organized by chains
-
aCT
Alias for getAvgChainTable().- Returns:
- table containing station metrics organized by chains
-
aCT
Alias for getAvgChainTable(boolean keepDisabled).- Parameters:
keepDisabled- whether to include disabled metrics in the table- Returns:
- table containing station metrics organized by chains
-
aCT
Alias for getAvgChainTable(SolverAvgHandles avgHandles).- Parameters:
avgHandles- the average handles to use- Returns:
- table containing station metrics organized by chains
-
aCT
Alias for getAvgChainTable(SolverAvgHandles avgHandles, boolean keepDisabled).- Parameters:
avgHandles- the average handles to usekeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing station metrics organized by chains
-
aCT
public NetworkAvgChainTable aCT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A) Alias for getAvgChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A).- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handle- Returns:
- table containing station metrics organized by chains
-
aCT
public NetworkAvgChainTable aCT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Alias for getAvgChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled).- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handlekeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing station metrics organized by chains
-
getAvgHandles
Returns the steady-state average performance metric handles.- Returns:
- the average handles object
-
setAvgHandles
Sets the steady-state average performance metric handles.- Parameters:
handles- the average handles to set
-
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
-
getAvgNodeArvRChain
Returns average node arrival rates aggregated by job chains.- Returns:
- matrix of node arrival rates [nodes x chains]
-
getAvgNodeChain
Returns average node metrics aggregated by job chains.- Returns:
- solver result with node metrics aggregated by chains
-
getAvgNodeChainTable
Returns a table of average node metrics aggregated by chains.- Returns:
- table containing node-level metrics organized by job chains
-
getAvgNodeChainTable
Returns a table of average node metrics aggregated by chains using specified handles.- Parameters:
avgHandles- custom handles for performance metrics- Returns:
- table containing node-level metrics organized by job chains
-
getAvgNodeChainTable
public NetworkAvgNodeChainTable getAvgNodeChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A) Returns a table of average node metrics aggregated by chains using individual handles.- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handle- Returns:
- table containing node-level metrics organized by job chains
-
getAvgNodeChainTable
Returns a table of average node metrics aggregated by chains with keepDisabled option.- Parameters:
keepDisabled- whether to include disabled metrics in the table- Returns:
- table containing node-level metrics organized by job chains
-
getAvgNodeChainTable
public NetworkAvgNodeChainTable getAvgNodeChainTable(SolverAvgHandles avgHandles, boolean keepDisabled) Returns a table of average node metrics aggregated by chains using specified handles and keepDisabled option.- Parameters:
avgHandles- custom handles for performance metricskeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing node-level metrics organized by job chains
-
getAvgNodeChainTable
public NetworkAvgNodeChainTable getAvgNodeChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Returns a table of average node metrics aggregated by chains using individual handles and keepDisabled option.- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handlekeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing node-level metrics organized by job chains
-
getNodeChainAvgT
Alias for getAvgNodeChainTable().- Returns:
- table containing node-level metrics organized by job chains
-
getNodeChainAvgT
Alias for getAvgNodeChainTable(boolean keepDisabled).- Parameters:
keepDisabled- whether to include disabled metrics in the table- Returns:
- table containing node-level metrics organized by job chains
-
getNodeChainAvgT
Alias for getAvgNodeChainTable(SolverAvgHandles avgHandles).- Parameters:
avgHandles- the average handles to use- Returns:
- table containing node-level metrics organized by job chains
-
getNodeChainAvgT
Alias for getAvgNodeChainTable(SolverAvgHandles avgHandles, boolean keepDisabled).- Parameters:
avgHandles- the average handles to usekeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing node-level metrics organized by job chains
-
getNodeChainAvgT
public NetworkAvgNodeChainTable getNodeChainAvgT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A) Alias for getAvgNodeChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A).- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handle- Returns:
- table containing node-level metrics organized by job chains
-
getNodeChainAvgT
public NetworkAvgNodeChainTable getNodeChainAvgT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Alias for getAvgNodeChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled).- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handlekeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing node-level metrics organized by job chains
-
nodeChainAvgT
Alias for getAvgNodeChainTable().- Returns:
- table containing node-level metrics organized by job chains
-
nodeChainAvgT
Alias for getAvgNodeChainTable(boolean keepDisabled).- Parameters:
keepDisabled- whether to include disabled metrics in the table- Returns:
- table containing node-level metrics organized by job chains
-
nodeChainAvgT
Alias for getAvgNodeChainTable(SolverAvgHandles avgHandles).- Parameters:
avgHandles- the average handles to use- Returns:
- table containing node-level metrics organized by job chains
-
nodeChainAvgT
Alias for getAvgNodeChainTable(SolverAvgHandles avgHandles, boolean keepDisabled).- Parameters:
avgHandles- the average handles to usekeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing node-level metrics organized by job chains
-
nodeChainAvgT
public NetworkAvgNodeChainTable nodeChainAvgT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A) Alias for getAvgNodeChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A).- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handle- Returns:
- table containing node-level metrics organized by job chains
-
nodeChainAvgT
public NetworkAvgNodeChainTable nodeChainAvgT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Alias for getAvgNodeChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled).- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handlekeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing node-level metrics organized by job chains
-
aNCT
Short alias for getAvgNodeChainTable().- Returns:
- table containing node-level metrics organized by job chains
-
aNCT
Short alias for getAvgNodeChainTable(boolean keepDisabled).- Parameters:
keepDisabled- whether to include disabled metrics in the table- Returns:
- table containing node-level metrics organized by job chains
-
aNCT
Short alias for getAvgNodeChainTable(SolverAvgHandles avgHandles).- Parameters:
avgHandles- the average handles to use- Returns:
- table containing node-level metrics organized by job chains
-
aNCT
Short alias for getAvgNodeChainTable(SolverAvgHandles avgHandles, boolean keepDisabled).- Parameters:
avgHandles- the average handles to usekeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing node-level metrics organized by job chains
-
aNCT
public NetworkAvgNodeChainTable aNCT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A) Short alias for getAvgNodeChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A).- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handle- Returns:
- table containing node-level metrics organized by job chains
-
aNCT
public NetworkAvgNodeChainTable aNCT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Short alias for getAvgNodeChainTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled).- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handlekeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing node-level metrics organized by job chains
-
getAvgNodeQLenChain
Returns average node queue lengths aggregated by job chains.- Returns:
- matrix of node queue lengths [nodes x chains]
-
getAvgNodeResidTChain
Returns average node residence times aggregated by job chains.- Returns:
- matrix of node residence times [nodes x chains]
-
getAvgNodeRespTChain
Returns average node response times aggregated by job chains.- Returns:
- matrix of node response times [nodes x chains]
-
getAvgNodeTable
Returns a table of average node metrics organized by job classes.- Returns:
- table containing node-level metrics for each class
-
getAvgNodeTable
Returns a table of average node metrics organized by job classes using specified handles.- Parameters:
avgHandles- custom handles for performance metrics- Returns:
- table containing node-level metrics for each class
-
getAvgNodeTable
public NetworkAvgNodeTable getAvgNodeTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A) Returns a table of average node metrics organized by job classes using individual handles.- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handle- Returns:
- table containing node-level metrics for each class
-
getAvgNodeTable
Returns a table of average node metrics organized by job classes with keepDisabled option.- Parameters:
keepDisabled- whether to include disabled metrics in the table- Returns:
- table containing node-level metrics for each class
-
getAvgCacheTable
Returns a table of detailed per-class cache performance metrics for every Cache node: a total row (List=0) per cache+read class plus, where the solver reports per-list hit probabilities and the cache has more than one list, one row per cache list. Port of matlab getAvgCacheTable.m.- Returns:
- cache performance table
-
getAvgItemTable
Returns a table of item-level cache occupancy: one row per Cache node, item and cache list (level), with the steady-state probability the item resides in that list. Populated only where the solver computes a per-item distribution (exact cache algorithms and the delayed-hit retrieval algorithms). Port of matlab getAvgItemTable.m.- Returns:
- item-level cache occupancy table
-
getAvgNodeTable
Returns a table of average node metrics organized by job classes using specified handles and keepDisabled option.- Parameters:
avgHandles- custom handles for performance metricskeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing node-level metrics for each class
-
getAvgNodeTable
public NetworkAvgNodeTable getAvgNodeTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Returns a table of average node metrics organized by job classes using individual handles and keepDisabled option.- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handlekeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing node-level metrics for each class
-
getNodeAvgT
Alias for getAvgNodeTable().- Returns:
- table containing node-level metrics for each class
-
getNodeAvgT
Alias for getAvgNodeTable(boolean keepDisabled).- Parameters:
keepDisabled- whether to include disabled metrics in the table- Returns:
- table containing node-level metrics for each class
-
getNodeAvgT
Alias for getAvgNodeTable(SolverAvgHandles avgHandles).- Parameters:
avgHandles- the average handles to use- Returns:
- table containing node-level metrics for each class
-
getNodeAvgT
Alias for getAvgNodeTable(SolverAvgHandles avgHandles, boolean keepDisabled).- Parameters:
avgHandles- the average handles to usekeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing node-level metrics for each class
-
getNodeAvgT
public NetworkAvgNodeTable getNodeAvgT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A) Alias for getAvgNodeTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A).- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handle- Returns:
- table containing node-level metrics for each class
-
getNodeAvgT
public NetworkAvgNodeTable getNodeAvgT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Alias for getAvgNodeTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled).- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handlekeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing node-level metrics for each class
-
nodeAvgT
Alias for getAvgNodeTable().- Returns:
- table containing node-level metrics for each class
-
nodeAvgT
Alias for getAvgNodeTable(boolean keepDisabled).- Parameters:
keepDisabled- whether to include disabled metrics in the table- Returns:
- table containing node-level metrics for each class
-
nodeAvgT
Alias for getAvgNodeTable(SolverAvgHandles avgHandles).- Parameters:
avgHandles- the average handles to use- Returns:
- table containing node-level metrics for each class
-
nodeAvgT
Alias for getAvgNodeTable(SolverAvgHandles avgHandles, boolean keepDisabled).- Parameters:
avgHandles- the average handles to usekeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing node-level metrics for each class
-
nodeAvgT
public NetworkAvgNodeTable nodeAvgT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A) Alias for getAvgNodeTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A).- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handle- Returns:
- table containing node-level metrics for each class
-
nodeAvgT
public NetworkAvgNodeTable nodeAvgT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Alias for getAvgNodeTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled).- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handlekeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing node-level metrics for each class
-
aNT
Alias for getAvgNodeTable().- Returns:
- table containing node-level metrics for each class
-
aNT
Alias for getAvgNodeTable(boolean keepDisabled).- Parameters:
keepDisabled- whether to include disabled metrics in the table- Returns:
- table containing node-level metrics for each class
-
aNT
Alias for getAvgNodeTable(SolverAvgHandles avgHandles).- Parameters:
avgHandles- the average handles to use- Returns:
- table containing node-level metrics for each class
-
aNT
Alias for getAvgNodeTable(SolverAvgHandles avgHandles, boolean keepDisabled).- Parameters:
avgHandles- the average handles to usekeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing node-level metrics for each class
-
aNT
public NetworkAvgNodeTable aNT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A) Alias for getAvgNodeTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A).- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handle- Returns:
- table containing node-level metrics for each class
-
aNT
public NetworkAvgNodeTable aNT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Alias for getAvgNodeTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled).- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handlekeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing node-level metrics for each class
-
getAvgNodeTputChain
Returns average node throughputs aggregated by job chains.- Returns:
- matrix of node throughputs [nodes x chains]
-
getAvgNodeUtilChain
Returns average node utilizations aggregated by job chains.- Returns:
- matrix of node utilizations [nodes x chains]
-
getAvgQLen
Computes and returns average queue lengths at steady-state. If results are not available, triggers solver execution.- Returns:
- matrix of average queue lengths [stations x classes]
-
getAvgQLenChain
Returns average queue lengths aggregated by job chains.- Returns:
- matrix of queue lengths [stations x chains]
-
getAvgQLenHandles
Returns the average queue length metric handles.- Returns:
- handles for queue length metrics
-
getAvgResidT
Computes and returns average residence times in queue (including service). If results are not available, triggers solver execution.- Returns:
- matrix of average residence times [stations x classes]
-
getAvgResidTChain
Returns average residence times aggregated by job chains.- Returns:
- matrix of residence times [stations x chains]
-
getAvgResidTHandles
Returns the average residence time metric handles.- Returns:
- handles for residence time metrics
-
getAvgRespT
Computes and returns average response times at steady-state. If results are not available, triggers solver execution.- Returns:
- matrix of average response times [stations x classes]
-
getAvgRespTChain
Returns average response times aggregated by job chains.- Returns:
- matrix of response times [stations x chains]
-
getAvgRespTHandles
Returns the average response time metric handles.- Returns:
- handles for response time metrics
-
getAvgSys
public void getAvgSys()Computes average system-level metrics at steady state. This includes system response times and throughputs aggregated across all chains. -
getAvgSys
Computes average system-level metrics at steady state using specified handles. This includes system response times and throughputs aggregated across all chains.- Parameters:
avgHandles- custom handles for performance metrics
-
getAvgSys
Computes average system-level metrics at steady state using individual handles. This includes system response times and throughputs aggregated across all chains.- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handle
-
getAvgSysRespT
Returns average system response times at steady state.- Returns:
- matrix of system response times by chain
-
getAvgSysTable
Returns a table of average system-level metrics.- Returns:
- table containing system response times and throughputs by chain
-
getAvgSysTable
Returns a table of average system-level metrics using specified handles.- Parameters:
avgHandles- custom handles for performance metrics- Returns:
- table containing system response times and throughputs by chain
-
getAvgSysTable
public NetworkAvgSysTable getAvgSysTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A) Returns a table of average system-level metrics using individual handles.- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handle- Returns:
- table containing system response times and throughputs by chain
-
getSysAvgT
Alias for getAvgSysTable().- Returns:
- table containing system response times and throughputs by chain
-
getSysAvgT
Alias for getAvgSysTable(SolverAvgHandles avgHandles).- Parameters:
avgHandles- the average handles to use- Returns:
- table containing system response times and throughputs by chain
-
getSysAvgT
public NetworkAvgSysTable getSysAvgT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A) Alias for getAvgSysTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A).- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handle- Returns:
- table containing system response times and throughputs by chain
-
sysAvgT
Alias for getAvgSysTable().- Returns:
- table containing system response times and throughputs by chain
-
sysAvgT
Alias for getAvgSysTable(SolverAvgHandles avgHandles).- Parameters:
avgHandles- the average handles to use- Returns:
- table containing system response times and throughputs by chain
-
sysAvgT
public NetworkAvgSysTable sysAvgT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A) Alias for getAvgSysTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A).- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handle- Returns:
- table containing system response times and throughputs by chain
-
aST
Short alias for getAvgSysTable().- Returns:
- table containing system response times and throughputs by chain
-
aST
Short alias for getAvgSysTable(SolverAvgHandles avgHandles).- Parameters:
avgHandles- the average handles to use- Returns:
- table containing system response times and throughputs by chain
-
aST
public NetworkAvgSysTable aST(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A) Short alias for getAvgSysTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A).- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handle- Returns:
- table containing system response times and throughputs by chain
-
getAvgSysTput
Returns average system throughputs at steady state.- Returns:
- matrix of system throughputs by chain
-
getAvgTable
Returns a table of average station metrics organized by job classes.- Returns:
- table containing station-level metrics for each class
-
getAvgTable
Returns a table of average station metrics organized by job classes using specified handles.- Parameters:
avgHandles- custom handles for performance metrics- Returns:
- table containing station-level metrics for each class
-
getAvgTable
public NetworkAvgTable getAvgTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A) Returns a table of average station metrics organized by job classes using individual handles.- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handle- Returns:
- table containing station-level metrics for each class
-
getAvgTable
Returns a table of average station metrics organized by job classes with keepDisabled option.- Parameters:
keepDisabled- whether to include disabled metrics in the table- Returns:
- table containing station-level metrics for each class
-
getAvgTable
Returns a table of average station metrics organized by job classes using specified handles and keepDisabled option.- Parameters:
avgHandles- custom handles for performance metricskeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing station-level metrics for each class
-
getAvgTable
public NetworkAvgTable getAvgTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Returns a table of average station metrics organized by job classes using individual handles and keepDisabled option.- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handlekeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing station-level metrics for each class
-
getSensitivityTable
Performance sensitivities with respect to service rates.Returns a table with one row per (Station, JobClass) giving the derivative of that row's mean performance measures with respect to that station-class service RATE: dTput_dRate, dRespT_dRate, dQLen_dRate and dUtil_dRate. Every derivative is with respect to the row's OWN rate, i.e. the diagonal of the full parameter Jacobian.
Two branches produce the derivatives, selected automatically:
"exact": analytic differentiation of a product-form recursion, exact to machine precision and cheaper than a single extra solve. Closed networks use
pfqn_sens(differentiated MVA), open networks the closed-form BCMP sensitivities, their stations being decoupled. Rate derivatives follow the chain rule d(.)/d(rate) = -(L/rate) d(.)/dL, since L(i,r) = visits(i,r)/rate(i,r). Available only on the solvers that evaluate that recursion,SolverMVAandSolverNC, and only for single-server queues plus an optional delay, with mixed (open+closed) models excluded."fd": forward or central finite differences on the CALLING solver's own predictions: the service process at (station,class) is rate-scaled by (1+h), the same solver with the same options is re-run, and the difference quotient is formed. This costs 1+M*R solves (forward) or 2*M*R (central), and it is the only branch that applies to non-product-form models, so it is what every solver other than
SolverMVAandSolverNCuses.The branch actually taken is reported by
NetworkSensitivityTable.getMethod(). The rawpfqn_sensresult, which carries the full Jacobian that this table shows only the diagonal of, is onNetworkSensitivityTable.getSens(); it is the second output that the MATLAB reference returns alongside the table, and is null on the open exact branch and on the finite-difference branch.- Returns:
- table of per-class rate sensitivities
- See Also:
-
getSensitivityTable
Performance sensitivities with respect to service rates, with an explicit branch, step and difference scheme. Counterpart of MATLAB'sgetSensitivityTable(self, 'method', M, 'step', H, 'scheme', S).- Parameters:
method- one of "auto" (exact where available and in scope, finite differences otherwise), "exact", "fd"step- relative step of the rate perturbation; NaN selects the default, 1e-4 for the deterministic solvers and 1e-2 for the simulators, whose Monte Carlo error would otherwise dominate the difference quotientscheme- "forward" or "central"- Returns:
- table of per-class rate sensitivities
- Throws:
RuntimeException- if the arguments are invalid, or if "exact" is asked of a solver or a model that is out of the analytic scope- See Also:
-
supportsExactSensitivity
public boolean supportsExactSensitivity()True when the solver evaluates a product-form recursion thatgetSensitivityTable()can differentiate analytically. False here, so that a solver reaching this base implementation obtains its sensitivities by finite differences on its own predictions. Overridden bySolverMVAandSolverNC.- Returns:
- false
-
getMomentTable
Exact higher moments of the per-class performance measures, up to the second moment.- Returns:
- table of per-class queue-length and response-time moments
- See Also:
-
getMomentTable
Exact higher moments of the per-class performance measures, up to the given moment order.A scalar order k is read as the set 1..k, "everything up to order k", so that
getMomentTable(2)means "up to the second moment" and not "the second moment alone". UsegetMomentTable(int[])to select an explicit set of orders.- Parameters:
order- the highest moment order to report, an integer in 1..3- Returns:
- table of per-class queue-length and response-time moments
- See Also:
-
getMomentTable
Exact higher moments of the per-class performance measures.Returns a table with one row per (Station, JobClass) giving, in addition to the means that
getAvgTable()reports, the higher moments of that row's queue length and response time.orderis a SET of moment orders, taken literally: order 1 contributes QLen and RespT, order 2 contributes QLenVar, QLenSCV, RespTVar and RespTSCV, order 3 contributes QLenSkew and RespTSkew. Sonew int[]{1,2}is the default and is the same as the scalar 2, whilenew int[]{2,3}selects the second moments and the skewness without the means.Order 3 also adds QLenSkew, the skewness of the per-class queue length. That quantity is reachable because the generating parameter need not scale a whole demand column: scaling L(i,r) alone is Theorem 1 of Akyildiz and Strelen with the class subset T = {r}, and it generates the moments of n(i,r) itself. QLenSkew is available only for closed single-server models, which is the scope of
Pfqn_sens_mom; it is NaN otherwise.All of it is exact, not simulated and not approximated. The queue-length moments come from the product-form identity Cov[n(i,r),n(j,s)] = L(j,s) dQ(i,r)/dL(j,s), evaluated by the
Pfqn_sens_*family.RESPONSE-TIME MOMENTS ARE FCFS-ONLY. RespTVar, RespTSCV and RespTSkew are NaN at any station that is not FCFS, and in open or mixed models. This is a limitation of the theory, not of the implementation: the sojourn-time distribution at a processor-sharing or LCFS center is not known in general (Strelen 1990, Section 4), so there is no correct value to report and a wrong one is worse than a blank. The mean RespT is always reported, since it needs no distributional result.
Scope by model type: closed single-server uses
pfqn_sens_mva; closed multiserver and mixed open/closed usepfqn_sens_mvaldmx; purely open single-server uses the exact BCMP closed form; purely open multiserver is not supported.The raw results, including the full covariance matrices that this table shows only the diagonal of, are on
NetworkMomentTable.getMoments().- Parameters:
order- the set of moment orders to report; each must be an integer in 1..3. Null or empty selects the default, up to the second moment.- Returns:
- table of per-class queue-length and response-time moments
- See Also:
-
getMomentStationTable
Higher moments of the total queue length, up to the second moment.- Returns:
- table of per-station total queue-length moments
- See Also:
-
getMomentStationTable
Higher moments of the total queue length, up to the given moment order.- Parameters:
order- the highest moment order to report, an integer in 1..3- Returns:
- table of per-station total queue-length moments
- See Also:
-
getMomentStationTable
Higher moments of the total queue length.Returns a table with one row per Station giving the moments of the TOTAL queue length at that station, Q_i = sum_r n(i,r).
orderis a SET of moment orders, taken literally: order 1 contributes QLen, order 2 contributes QLenVar and QLenSCV, order 3 contributes QLenM3 and QLenSkew. Sonew int[]{1,3}gives the mean and the third moment without the variance.Why this is a separate table from
getMomentTable(int[]). The generating parameter here is x_i, the reciprocal of the capacity of station i, which scales the service times of ALL classes at that station at once, so the moments it produces are those of the station total. The per-class and per-chain groupings of the same recursion are ingetMomentTable(int[])andgetMomentChainTable(int[])respectively; all three are Theorem 1 of Akyildiz and Strelen under different class subsets T, of which Strelen's whole-column x_i is the case T = all classes. The three are consistent: Var[Q_i] here equals the sum of the per-class covariances ofgetMomentTable(int[])at station i over all class pairs.The ALGORITHM is chosen by the solver's method, set at construction, not by an argument here: a method is a property of the solver object, so passing one per call would let a single solver answer with two different algorithms.
new SolverMVA(model)->pfqn_sens_mom, exact, but it walks the whole population lattice at a cost of prod(N+1), so it is unusable once the populations are large.new SolverMVA(model,"method","lin")->pfqn_sens_linearizer, approximate and polynomial-time. The reference reports relative errors below 2.1% on E[Q], 4.1% on E[Q^2] and 6.2% on E[Q^3].
Any Linearizer-family method (
"lin","amva.lin","egflin","gflin") takes the approximate path; every other method takes the exact one.Restricted to closed single-server models. Mixed and open second moments are available per class from
getMomentTable(int[]); the higher moments of the reference are stated for closed load-independent networks only.Reference: J. C. Strelen, "Moment Analysis for Closed Queuing Networks and its Linearizer", Performance Evaluation 11:127-142, 1990, Theorem 3.1 and equation (3.2).
- Parameters:
order- the set of moment orders to report; each must be an integer in 1..3. Null or empty selects the default, up to the second moment.- Returns:
- table of per-station total queue-length moments
- See Also:
-
getMomentChainTable
Higher moments of the per-chain queue length, up to the second moment.- Returns:
- table of per-(Station, Chain) queue-length moments
- See Also:
-
getMomentChainTable
Higher moments of the per-chain queue length, up to the given moment order.- Parameters:
order- the highest moment order to report, an integer in 1..3- Returns:
- table of per-(Station, Chain) queue-length moments
- See Also:
-
getMomentChainTable
Higher moments of the per-chain queue length.Returns a table with one row per (Station, Chain) giving the moments of the queue length of that chain at that station, Q_(i,c) = sum_(r in chain c) n(i,r). This is the chain-level analogue of
getAvgChainTable(), and it sits between the two other moment tables:getMomentTable(int[])is per class,getMomentStationTable(int[])is per station total, and this one is per chain, i.e. per group of classes that circulate together.Unlike the per-class table, order 3 is fully available here. All three tables are the same recursion under different groupings of the classes: the generating parameter scales the service times of a class subset T at a station, and the moments it produces are those of sum_(r in T) n(i,r). T = {r} gives
getMomentTable(int[]), T = chain gives this table, T = all classes givesgetMomentStationTable(int[]). That is Theorem 1 of Akyildiz and Strelen; Strelen's own x_i is the last case.The ALGORITHM is chosen by the solver's method, set at construction, not by an argument here; see
getMomentStationTable(int[]). A Linearizer-family method approximates the per-station totals only, so it cannot express a per-chain grouping and is rejected here unless every class already sits in one chain, in which case the chain IS the station total.Restricted to closed, single-server models, which is the scope of
Pfqn_sens_mom.Reference: I. F. Akyildiz and J. C. Strelen, "Moment Analysis for Load-Dependent Mixed Product Form Queueing Networks", IEEE Trans. Communications 39(6):828-832, 1991, Theorem 1; J. C. Strelen, "Moment Analysis for Closed Queuing Networks and its Linearizer", Performance Evaluation 11:127-142, 1990, equation (3.2).
- Parameters:
order- the set of moment orders to report; each must be an integer in 1..3. Null or empty selects the default, up to the second moment.- Returns:
- table of per-(Station, Chain) queue-length moments
- See Also:
-
getAvgT
Alias for getAvgTable().- Returns:
- table containing station-level metrics for each class
-
getAvgT
Alias for getAvgTable(boolean keepDisabled).- Parameters:
keepDisabled- whether to include disabled metrics in the table- Returns:
- table containing station-level metrics for each class
-
getAvgT
Alias for getAvgTable(SolverAvgHandles avgHandles).- Parameters:
avgHandles- the average handles to use- Returns:
- table containing station-level metrics for each class
-
getAvgT
Alias for getAvgTable(SolverAvgHandles avgHandles, boolean keepDisabled).- Parameters:
avgHandles- the average handles to usekeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing station-level metrics for each class
-
getAvgT
public NetworkAvgTable getAvgT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A) Alias for getAvgTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A).- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handle- Returns:
- table containing station-level metrics for each class
-
getAvgT
public NetworkAvgTable getAvgT(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled) Alias for getAvgTable(AvgHandle Q, AvgHandle U, AvgHandle R, AvgHandle W, AvgHandle T, AvgHandle A, boolean keepDisabled).- Parameters:
Q- queue length handleU- utilization handleR- response time handleW- residence time handleT- throughput handleA- arrival rate handlekeepDisabled- whether to include disabled metrics in the table- Returns:
- table containing station-level metrics for each class
-
getDeadlineTable
Returns a table of deadline-related metrics (response time and tardiness) organized by station and job class.- Returns:
- table containing response time and tardiness metrics, or null if tardiness data is not available
-
getAvgTput
Computes and returns average throughputs at steady-state. If results are not available, triggers solver execution.- Returns:
- matrix of average throughputs [stations x classes]
-
getAvgTputChain
Returns average throughputs aggregated by job chains.- Returns:
- matrix of throughputs [stations x chains]
-
getAvgTputHandles
Returns the average throughput metric handles.- Returns:
- handles for throughput metrics
-
getAvgUtil
Computes and returns average server utilizations at steady-state. If results are not available, triggers solver execution.- Returns:
- matrix of average utilizations [stations x classes]
-
getAvgUtilChain
Returns average server utilizations aggregated by job chains.- Returns:
- matrix of utilizations [stations x chains]
-
getAvgUtilHandles
Returns the average utilization metric handles.- Returns:
- handles for utilization metrics
-
getAvgWaitT
Computes and returns average waiting times in queue excluding service time. Waiting time = Response time - Service time (1/rate)- Returns:
- matrix of average waiting times [stations x classes]
-
getCdfPassT
Returns cumulative distribution functions of passage times at steady-state. This is an abstract method that must be implemented by concrete solver subclasses.- Parameters:
R- response time handles (optional)- Returns:
- result containing CDFs for passage times
- Throws:
RuntimeException- if not implemented by the concrete solver
-
getCdfPassT
Returns cumulative distribution functions of passage times at steady-state. Uses default response time handles.- Returns:
- result containing CDFs for passage times
- Throws:
RuntimeException- if not implemented by the concrete solver
-
getCdfRespT
Returns cumulative distribution functions of response times at steady-state. Uses an exponential approximation based on average response times.- Parameters:
R- response time handles (optional)- Returns:
- result containing CDFs for response times [stations x classes]
-
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]
- Throws:
RuntimeException- if not implemented by the concrete solver
-
getModel
Returns the queueing network model being solved.- Returns:
- the network model
-
initFromSolver
Warm-start the solver from the steady-state solution of an auxiliary solver. The auxiliary solver's steady-state distribution decides an integer job placement (seeWarmStart.warmStartPlacement(jline.solvers.NetworkSolver, jline.lang.NetworkStruct)): with SolverCTMC the mode of the exact aggregate stationary distribution, with any other solver the rounded mean queue lengths conserving each closed-class population. The placement is applied as the model initial state via initFromMarginal, which the state-driven solvers honor: SolverFluid starts the ODE integration from it, SolverSSA starts the simulated trajectory from it, and SolverJMT preloads the stations with it. Note that this modifies the initial state of the model object shared with any other solver instance.- Parameters:
initSolver- auxiliary solver used to compute the steady-state distribution- Returns:
- this solver, for chaining
-
setModel
Sets the queueing network model to be solved.- Parameters:
model- the network model to set
-
getProb
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
- Throws:
RuntimeException- if not implemented by the concrete solver
-
getProb
Returns marginal state probabilities for a specific node (all states). This is an abstract method that must be implemented by concrete solver subclasses.- Parameters:
node- the node index for which to compute probabilities- Returns:
- result containing marginal state probabilities
- Throws:
RuntimeException- if not implemented by the concrete solver
-
getProbAggr
Probability of a SPECIFIC per-class job distribution at a station. Returns P(n1 jobs of class 1, n2 jobs of class 2, ...) for given state.Compare with
getProbMarg(int, int, jline.util.matrix.Matrix): returns queue-length distribution for a single class, i.e., P(n jobs of class r) for n=0,1,...,N(r).- Parameters:
node- the node index for which to compute probabilitiesstate_a- per-class job counts, e.g., [2,1] = 2 class-1, 1 class-2- Returns:
- scalar probability in [0,1]
- Throws:
RuntimeException- if not implemented by the concrete solver
-
getProbAggr
Probability of a SPECIFIC per-class job distribution at a station (current state). Returns P(n1 jobs of class 1, n2 jobs of class 2, ...).Compare with
getProbMarg(int, int, jline.util.matrix.Matrix): returns queue-length distribution for a single class, i.e., P(n jobs of class r) for n=0,1,...,N(r).- Parameters:
node- the node index for which to compute probabilities- Returns:
- scalar probability in [0,1]
- Throws:
RuntimeException- if not implemented by the concrete solver
-
getProbMarg
Probability distribution for queue length of a SINGLE class at a station. Returns P(n jobs of class r) for n=0,1,...,N(r).Compare with
getProbAggr(int, jline.util.matrix.Matrix): returns probability of a specific per-class distribution, e.g., P(2 class-1, 1 class-2) as a scalar.- Parameters:
node- the node index for which to compute probabilitiesjobclass- the job class index for marginalizationstate_m- specific states to query, or null for all- Returns:
- vector where element n+1 = P(n jobs of this class)
- Throws:
RuntimeException- if not implemented by the concrete solver
-
getProbMarg
Probability distribution for queue length of a SINGLE class at a station (all states). Returns P(n jobs of class r) for n=0,1,...,N(r).Compare with
getProbAggr(int, jline.util.matrix.Matrix): returns probability of a specific per-class distribution, e.g., P(2 class-1, 1 class-2) as a scalar.- Parameters:
node- the node index for which to compute probabilitiesjobclass- the job class index for marginalization- Returns:
- vector where element n+1 = P(n jobs of this class)
- Throws:
RuntimeException- if not implemented by the concrete solver
-
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
- Throws:
RuntimeException- if not implemented by the concrete solver
-
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
- Throws:
RuntimeException- if not implemented by the concrete solver
-
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
- Throws:
RuntimeException- if not implemented by the concrete solver
-
getStageTable
Returns a table of average stage metrics organized by job classes. For non-environment models, this returns the same as getAvgTable() since there is only one implicit stage.- Returns:
- table containing stage-level metrics for each class
-
getStageTable
Returns a table of average stage metrics organized by job classes with keepDisabled option. For non-environment models, this returns the same as getAvgTable(keepDisabled) since there is only one implicit stage.- Parameters:
keepDisabled- whether to include disabled metrics in the table- Returns:
- table containing stage-level metrics for each class
-
getTranAvg
public void getTranAvg()Computes transient average station metrics over the specified time interval. The timespan is defined in the solver options. -
getTranCdfPassT
Returns cumulative distribution functions of passage times during transient analysis. This is an abstract method that must be implemented by concrete solver subclasses.- Parameters:
R- response time handles (optional)- Returns:
- result containing transient CDFs for passage times
- Throws:
RuntimeException- if not implemented by the concrete solver
-
getTranCdfPassT
Returns cumulative distribution functions of passage times during transient analysis. Uses default response time handles.- Returns:
- result containing transient CDFs for passage times
- Throws:
RuntimeException- if not implemented by the concrete solver
-
getTranCdfRespT
Returns cumulative distribution functions of response times during transient analysis. This is an abstract method that must be implemented by concrete solver subclasses.- Parameters:
R- response time handles (optional)- Returns:
- result containing transient CDFs for response times
- Throws:
RuntimeException- if not implemented by the concrete solver
-
getTranCdfRespT
Returns cumulative distribution functions of response times during transient analysis. Uses default response time handles.- Returns:
- result containing transient CDFs for response times
- Throws:
RuntimeException- if not implemented by the concrete solver
-
getTranHandles
Returns the transient performance metric handles.- Returns:
- the transient handles object
-
setTranHandles
Sets the transient performance metric handles.- Parameters:
handles- the transient handles to set
-
hasAvgResults
protected boolean hasAvgResults()Checks if the solver has computed steady-state average metrics.- Returns:
- true if steady-state results are available, false otherwise
-
hasDistribResults
public boolean hasDistribResults()Checks if the solver has computed steady-state distribution metrics.- Returns:
- true if distribution results are available
-
hasTranResults
public boolean hasTranResults()Checks if the solver has computed transient average metrics.- Returns:
- true if transient results are available, false otherwise
-
initHandles
protected void initHandles()Initializes performance metric handles from the model. This method retrieves and sets both average and transient handles. -
model
-
print
public void print()Detailed print function that displays all contents of the NetworkSolver. This function prints actual values, not reference addresses, and includes ALL fields from both NetworkSolver and its parent Solver class for comprehensive comparison. -
prob
-
prob
-
probAggr
-
probAggr
-
probMarg
-
probMarg
-
probNormConstAggr
-
probSys
-
probSysAggr
-
runAnalyzerChecks
Validates model compatibility and method support before analysis.- Overrides:
runAnalyzerChecksin classSolver- Parameters:
options- solver options containing method specification- Throws:
RuntimeException- if model contains unsupported features or method is invalid
-
sample
Samples state trajectories for a specific node. This is an abstract method that must be implemented by concrete solver subclasses.- Parameters:
node- the node index to sample fromnumEvents- the number of events to sample- Returns:
- result containing sampled state trajectories
- Throws:
RuntimeException- if not implemented by the concrete solver
-
sampleAggr
Samples aggregated state trajectories for a specific node. This is an abstract method that must be implemented by concrete solver subclasses.- Parameters:
node- the node index to sample fromnumEvents- the number of events to sample- Returns:
- result containing sampled aggregated state trajectories
- Throws:
RuntimeException- if not implemented by the concrete solver
-
sampleSys
Samples joint system state trajectories. This is an abstract method that must be implemented by concrete solver subclasses.- Parameters:
numEvents- the number of events to sample- Returns:
- result containing sampled joint system state trajectories
- Throws:
RuntimeException- if not implemented by the concrete solver
-
sampleSysAggr
Samples aggregated joint system state trajectories. This is an abstract method that must be implemented by concrete solver subclasses.- Parameters:
numEvents- the number of events to sample- Returns:
- result containing sampled aggregated joint system state trajectories
- Throws:
RuntimeException- if not implemented by the concrete solver
-
setAvgResults
public void setAvgResults(Matrix Q, Matrix U, Matrix R, Matrix T, Matrix A, Matrix W, Matrix C, Matrix X, double runtime, String method, int iter) Stores computed average metrics at steady-state in the solver result.- Parameters:
Q- queue length matrix [stations x classes]U- utilization matrix [stations x classes]R- response time matrix [stations x classes]T- throughput matrix [stations x classes]A- arrival rate matrix [stations x classes]W- residence time matrix [stations x classes]C- system response time vector [chains]X- system throughput vector [chains]runtime- computation time in secondsmethod- solution algorithm usediter- number of iterations performed
-
setDistribResults
Stores distribution metrics at steady-state.- Parameters:
RD- distribution data [stations x classes] containing CDFsruntime- computation time for distribution analysis
-
setLang
protected void setLang()Sets the language for solver execution. This method configures the solver to use either MATLAB or Java backend. -
setTranAvgResults
public void setTranAvgResults(Matrix[][] Qt, Matrix[][] Ut, Matrix[][] Rt, Matrix[][] Tt, Matrix[][] Ct, Matrix[][] Xt, double runtimet) Stores computed transient average metrics.- Parameters:
Qt- transient queue length matrices [time][stations x classes]Ut- transient utilization matrices [time][stations x classes]Rt- transient response time matrices [time][stations x classes]Tt- transient throughput matrices [time][stations x classes]Ct- transient system response time matrices [time][chains]Xt- transient system throughput matrices [time][chains]runtimet- computation time for transient analysis
-
setTranProb
Stores transient probability distributions.- Parameters:
t- time points vectorpi_t- transient probability distributionsSS- steady-state distributionruntimet- computation time for transient analysis
-
stageTable
-
stageT
-
getStageT
-
getStageT
-
tranAvg
public void tranAvg() -
tranCdfPassT
-
tranCdfPassT
-
tranCdfRespT
-
tranCdfRespT
-
tranHandles
-
bindingCapacityReason
Shared structural gate for finite station capacity (setCapacity) and finite per-class buffers (setClassCap), used by the product-form solvers (MVA, NC). A product-form solver has no representation of a finite buffer, so without this gate it silently returns the UNCONSTRAINED answer (e.g. QLen=4 instead of the M/M/1/2 value 0.8525). There is no registry feature name for plain capacity, hence the structural test; this mirrors the MATLAB NetworkSolver.checkBindingCapacity and the native-Python check in solvers/solver_mva/solver_mva.py.The test reads the node-level capacity set by the user, NOT sn.cap / sn.classcap: refreshCapacity derives a FINITE sn.classcap (the chain population) for every closed model, so an sn-level test would reject every closed model.
Only a capacity that can actually BIND is rejected. A closed model whose station capacity is at least the total population can never block a job, so the declaration is a no-op and the product-form answer stays exact (a common idiom: setCap(N) on an order-independent station of an N-job closed model). njobs is Inf for an open class, so any finite capacity reachable by an open class binds.
Cache models are exempt: Cache builds retrieval queues that legitimately carry a per-class capacity of 1, and MVA/NC solve those through their dedicated cache/retrieval analyzers rather than as a buffer constraint.
- Parameters:
model- - the network modelsn- - the network structure (for njobs)solverName- - solver name used in the returned message- Returns:
- null if no capacity can bind, otherwise the reason naming the offending station
-