Class SolverAUTO
This solver automatically selects the most appropriate solution method based on model characteristics and requested performance metrics.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classA method name split into a selection intent, or a family plus its submethod.Nested classes/interfaces inherited from class jline.solvers.NetworkSolver
NetworkSolver.SolverConfiguratorNested classes/interfaces inherited from class jline.solvers.Solver
Solver.ResolvedVerdict -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intPopulation at or below which an exact solver is preferred over an approximation, when one is available.static final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final StringFields inherited from class jline.solvers.NetworkSolver
avgHandles, lastPerctMethod, lastPermEngine, model, sn, tranHandles -
Constructor Summary
ConstructorsConstructorDescriptionSolverAUTO(Environment model) Automatic selection over a random Environment: SolverENV over MVA, NC and Fluid stages.SolverAUTO(Environment model, String method) Automatic selection over a random Environment with a selection intent or family method name.SolverAUTO(Environment model, SolverOptions options) Automatic selection over a random Environment with options.SolverAUTO(LayeredNetwork model) Automatic selection over a LayeredNetwork: LQNS, then SolverLN over the NC, MVA, MAM and Fluid layers.SolverAUTO(LayeredNetwork model, String method) Automatic selection over a LayeredNetwork with a selection intent or family method name.SolverAUTO(LayeredNetwork model, SolverOptions options) Automatic selection over a LayeredNetwork with options.SolverAUTO(Network model) Constructor with model onlySolverAUTO(Network model, Object... varargin) Constructor with model and varargsSolverAUTO(Network model, String method) Constructor with model and methodSolverAUTO(Network model, SolverOptions options) Constructor with model and options -
Method Summary
Modifier and TypeMethodDescriptionavg()Alias for getAvg()avgArvR()Alias for getAvgArvR()Alias for getAvgArvRChain()avgChain()Alias for getAvgChain()Alias for getAvgChainTable()avgNode()Alias for getAvgNode()Alias for getAvgNodeTable()avgQLen()Alias for getAvgQLen()Alias for getAvgQLenChain()Alias forgetAvgQLenTable().Alias for getAvgResidT()Alias for getAvgResidTChain()avgRespT()Alias for getAvgRespT()Alias for getAvgRespTChain()Alias forgetAvgRespTTable().Alias for getAvgSysRespT()Alias for getAvgSysTable()Alias for getAvgSysTput()avgTable()Alias for getAvgTable()avgTput()Alias for getAvgTput()Alias for getAvgTputChain()Alias forgetAvgTputTable().avgUtil()Alias for getAvgUtil()Alias for getAvgUtilChain()Alias forgetAvgUtilTable().avgWaitT()Alias for getAvgWaitT()baSolver()The bound-analysis delegate.buildFamilySolver(String family, SolverOptions options) Instantiate the solver of a method family.cdfPassT()Alias for getCdfPassT()cdfRespT()Alias for getCdfRespT()doublecomputeSojournCdf(int e, double t) Sojourn-time CDF of environment stage e (0-based) at time t, from SolverENV.The CTMC candidate, built on demand.Alias forgetEnsembleAvg().Fluid ODE system as LaTeX, fluid-only.exportODEs(String fileName) Fluid ODE system as LaTeX written to fileName, fluid-only.exportODEs(String fileName, String notation) Fluid ODE system as LaTeX written to fileName in the given notation, fluid-only.static StringfamilyAlias(String name) Canonical family of a method name, or "" when the method name names none.familyDeclaringMethod(String token) Find the family that declares an unqualified algorithm name, by asking each family for its own method list.static String[]familyMetrics(String family) The measure groups a method family can answer.static String[]Method families, in the order in which an unqualified method name is looked up.static StringfamilyOfSolver(Object solver) The method family a solver instance belongs to; mirrors MATLAB SolverAUTO.familyOfSolver.Which solvers and solver methods can analyze this model: the runnable pairs, for every measure.findSolver(String metric, boolean showAll) Which solvers and solver methods can analyze this model, and for the ones that cannot, why not.static List<SolverCandidate>findSolverLayered(LayeredNetwork model, String metric, boolean showAll) findSolver for a LayeredNetwork, which this class does not otherwise solve: its constructor takes a Network, and buildFamilySolver says so.A SolverFluid over the same model, reusing the fluid candidate when one exists -- thefldSolver()helper of the reference.getAvg()Computes and returns average station metrics at steady-state.Mean Age of Information, a property of the ODE representation, so fluid-only.Get average arrival rates at steady-stateReturns average arrival rates aggregated by job chains.doublegetAvgBusyPeriod(int[] stations, int order) Single-order form ofgetAvgBusyPeriod(int[], int[]), from the NC family.double[]getAvgBusyPeriod(int[] stations, int[] orders) Mean busy periods of a subnetwork, from the NC family.Returns average station metrics aggregated by job chains.Returns a table of average station metrics aggregated by job chains.getAvgFJ()Fork-join section metrics of the delegate; see NetworkSolver.getAvgFJ.Fork-join section table of the delegate; see NetworkSolver.getAvgFJTable.Computes average performance metrics at steady-state for all nodes.Get average node arrival rate by chainGet average node queue length by chainGet average node residence time by chainGet average node response time by chainReturns a table of average node metrics organized by job classes.Get average node throughput by chainGet average node utilization by chainGet average queue lengths at steady-stateReturns average queue lengths aggregated by job chains.Get average queue length tablegetAvgQLenTable(boolean keepDisabled) Get average queue length table, keeping all-zero rows when askedGet average residence times at steady-stateGet average residence time by chainGet average response times at steady-stateReturns average response times aggregated by job chains.Get average response time tablegetAvgRespTTable(boolean keepDisabled) Get average response time table, keeping all-zero rows when askedSteady-state rewards, from the first ranked candidate that computes them.doublegetAvgReward(String rewardName) Steady-state value of one reward, from the first ranked candidate that computes it.voidComputes average system-level metrics at steady state.Returns average system response times at steady state.Returns a table of average system-level metrics.Returns average system throughputs at steady state.Returns a table of average station metrics organized by job classes.The per-element layered table (MATLAB getAvgTableLayered), from the delegate's getLNAvgTable.Get average throughputs at steady-stateReturns average throughputs aggregated by job chains.Get average throughput tablegetAvgTputTable(boolean keepDisabled) Get average throughput table, keeping all-zero rows when askedGet average utilizations at steady-stateReturns average server utilizations aggregated by job chains.Get average utilization tablegetAvgUtilTable(boolean keepDisabled) Get average utilization table, keeping all-zero rows when askedGet average waiting times (queue time excluding service)Bound interval, from the BA family.Bound interval as a table, from the BA family.getBoundsTable(boolean keepDisabled) Bound interval as a table, from the BA family.Get list of candidate solver namesMatrix[]Age-of-Information CDFs, a property of the ODE representation, so fluid-only.Matrix[]Age-of-Information CDFs on caller-supplied time points, fluid-only.getCdfFirstPassT(Matrix A, Matrix B) First-passage-time distribution from state set A to state set B, always from SolverCTMC.Get CDF of passage times at steady-stategetCdfPT()Backward-compatible passage-time CDF name, resolved on the fluid family.Returns cumulative distribution functions of response times at steady-state.System response time CDF per chain, always from SolverCTMC -- like the state-space accessors, it is a property of the CTMC representation, so it resolves on the CTMC candidate rather than the ranked selection, as the reference@SolverAUTO/getCdfSysRespTdoes.Ensemble averages of the LN/ENV delegate.static FeatureSetUnion of the feature sets of every solver AUTO can delegate to: a model AUTO can analyze is one that at least one candidate supports.getFirstPassTMoments(Matrix A, Matrix B) First-passage-time moments from state set A to state set B, always from SolverCTMC, at the CTMC default moment order.getFirstPassTMoments(Matrix A, Matrix B, int nmax) First-passage-time moments from state set A to state set B, always from SolverCTMC.Infinitesimal generator, always from SolverCTMC.getGenerator(SolverOptions options) Infinitesimal generator, always from SolverCTMC.Infinitesimal generator under its historical name, always from SolverCTMC.getInfGen(SolverOptions options) Infinitesimal generator under its historical name, always from SolverCTMC.intIterations the decomposing delegate has run.String[][]Symbolic Jacobian of the fluid ODEs, fluid-only.getJacobian(boolean equilibria) Symbolic Jacobian of the fluid ODEs, fluid-only.Marked CTMC, always from SolverCTMC.getMarkedCTMC(SolverOptions options) Marked CTMC, always from SolverCTMC.Per-chain moment table, from the ranked candidate rather than computed on AUTO itself.getMomentChainTable(int order) Per-chain moment table, from the ranked candidate rather than computed on AUTO itself.getMomentChainTable(int[] order) Per-chain moment table, from the ranked candidate rather than computed on AUTO itself.Second-order results of the fluid moment-closure methods, fluid-only: null unless the fluid delegate ran a closure method ('minnormal', 'refined' on a cache model, 'dae').Per-station moment table, from the ranked candidate rather than computed on AUTO itself.getMomentStationTable(int order) Per-station moment table, from the ranked candidate rather than computed on AUTO itself.getMomentStationTable(int[] order) Per-station moment table, from the ranked candidate rather than computed on AUTO itself.Moment table, from the ranked candidate rather than computed on AUTO itself.getMomentTable(int order) Moment table, from the ranked candidate rather than computed on AUTO itself.getMomentTable(int[] order) Moment table, from the ranked candidate rather than computed on AUTO itself.getMomentTable(int[] order, String method) Moment table, from the ranked candidate rather than computed on AUTO itself.Normalizing constant, from the NC family.intNumber of submodels (layers or stages) of the decomposing delegate.getPerctRespT(double[] percentiles) Get response time percentilesgetPosteriorDist(String metric, Station station, JobClass jobClass) Posterior distribution of one metric at one station and class, from the UQ family.Posterior table over the uncertain parameters, from the UQ family.getProb(int node) Returns marginal state probabilities for a specific node (all states).Returns marginal state probabilities for a specific node and state.doublegetProbAggr(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.doublegetProbAggr(Node node, Matrix state_a) 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.doublegetProbMarg(Node node, int jobclass, Matrix state_m) Get marginalized state probabilityReturns 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.getSamplePathTable(List<Object[]> samplePath) Transient metrics along a sample path of environment stages, from SolverENV.Name of the method family that answered the last request (or would answer the mean metrics), as MATLAB getSelectedMethod's first output; "" when no delegate is feasible.The delegate that holds results, or the one the selection rule would use for the mean metrics.Get the name of the selected solvergetSensitivity(SolverCTMC.SensitivityParameter param, Matrix reward) Steady-state parameter sensitivity, always from SolverCTMC.getSensitivity(SolverCTMC.SensitivityParameter param, Matrix reward, String method) Steady-state parameter sensitivity, always from SolverCTMC.getSensitivityRanking(List<SolverCTMC.SensitivityParameter> params, Matrix reward) Parameters ranked by their influence on a steady-state reward, always from SolverCTMC.getSensitivityRanking(List<SolverCTMC.SensitivityParameter> params, Matrix reward, String method) Parameters ranked by their influence on a steady-state reward, always from SolverCTMC.Sensitivity table, from the ranked candidate rather than computed on AUTO itself.getSensitivityTable(String method, double step, String scheme) Sensitivity table, from the ranked candidate rather than computed on AUTO itself.getSjrnT()Sojourn-time distribution, from the first ranked candidate that computes it.getSolver(int e) Solver of submodel e (0-based) of the decomposing delegate.getStageAvg(Object... args) Per-stage averages, resolved on the delegate as in MATLAB.State space, always from SolverCTMC.getStateSpace(SolverOptions options) State space, always from SolverCTMC.Aggregated state space, always from SolverCTMC.Model structure, as every other solver exposes it.Symbolic drift of the fluid ODEs, fluid-only.Symbolic infinitesimal generator, always from SolverCTMC.getSymbolicGenerator(boolean invertSymbol) Symbolic infinitesimal generator, always from SolverCTMC.Symbolic stationary solution, always from SolverCTMC.getSymbolicSolution(SymEngine engine) Symbolic stationary solution, always from SolverCTMC.voidComputes transient average station metrics over the specified time interval.Coupled LN transient (all layers co-evolving in model time), from SolverLN.Decoupled LN transient (inter-layer demands frozen at steady state), from SolverLN.Matrix[][]Transient queue-length means and variances, fluid-only.Returns cumulative distribution functions of passage times during transient analysis.Returns cumulative distribution functions of response times during transient analysis.Matrix[]getTranProb(Node node) Matrix[]getTranProbAggr(Node node) Matrix[]Matrix[]Transient rewards, from the first ranked candidate that computes them.getTranReward(String rewardName) Transient value of one reward, from the first ranked candidate that computes it.Embedded transition matrix, always from SolverCTMC.static booleanhasPriorParameters(Network model) True when the model carries uncertain parameters, which expand into one model instance per alternative.booleanTrue when this AUTO holds a LayeredNetwork or an Environment rather than a Network.static booleanisMethodAlias(String family, String name, List<String> declared) Isnamea second spelling of another method this family declares?booleanIf a delegate solver has been selected, classify by it (once run, it knows the method it resolved at runtime).intAlias forgetIteration().String[]Every token the CONSTRUCTOR accepts, INDEPENDENT of the model: the selection intents, the method families, and every family method in its QUALIFIED form.String[]The method names oflistAllMethods()that THIS MODEL can actually run.static String[]methodAliasPrefixes(String family) The prefixes under which a family advertises a SECOND SPELLING of a method it already declares plainly.static StringmethodClass(String family, String method, boolean isStochastic, boolean isProductForm, boolean isQbdShape, boolean hasCache) What KIND of answer a method returns: exact, approx, bound or simulation.static StringmetricGroupOf(String name) The measure group an accessor belongs to, "" when the name is none.static String[]The measure groupsfindSolver()reports on, in report order.ncSolver()The NC candidate, built on demand -- thencSolver()helper of the reference.intAlias forgetNumberOfModels().perctRespT(double[] percentiles) Alias for getPerctRespT()doubleAlias for getProb()doubleAlias for getProbAggr()doubleAlias for getProbMarg()Alias for getProbNormConstAggr()probSys()Alias for getProbSys()Alias for getProbSysAggr()resolveMethodToken(String token) Split a method name into a selection intent, or into a family and the submethod handed to it.voidOverride the main run method to ensure proper delegationAlias for sample()sampleAggr(Node node, int numEvents) Alias for sampleSys()sampleSys(int numEvents) Samples joint system state trajectories.sampleSysAggr(int numEvents) Samples aggregated joint system state trajectories.static String[]Tokens that state what the solution is for, rather than naming an algorithm.sjrnT()Alias forgetSjrnT().solver(int e) Alias forgetSolver(int).booleanChecks if this solver supports the given network model.booleanTrue when the delegate that a transient request would reach can run one: the single delegate when the method name pinned one, otherwise any feasible candidate.Matrix[]Alias forgetTranProb(Node).Matrix[]tranProbAggr(Node node) Alias forgetTranProbAggr(Node).Matrix[]Alias forgetTranProbSys().Matrix[]Alias forgetTranProbSysAggr().uqSolver()The UQ delegate over this model: one SolverAUTO per alternative of the Prior, run silently, as the reference'suqSolver()builds it.Methods inherited from class jline.solvers.NetworkSolver
aCaT, aCT, aCT, aCT, aCT, aCT, aCT, aFJT, aIT, aLT, aNCT, aNCT, aNCT, aNCT, aNCT, aNCT, aNT, aNT, aNT, aNT, aNT, aNT, aOT, applyCacheResults, aRLT, aST, aST, aST, aT, aT, aT, aT, aT, aT, avg, avg, avgArvRHandles, avgChainT, avgChainT, avgChainT, avgChainT, avgChainT, avgChainT, avgChainTable, avgChainTable, avgChainTable, avgChainTable, avgChainTable, avgHandles, avgNodeArvRChain, avgNodeChain, avgNodeChainT, avgNodeChainT, avgNodeChainT, avgNodeChainT, avgNodeChainT, avgNodeChainT, avgNodeChainTable, avgNodeChainTable, avgNodeChainTable, avgNodeChainTable, avgNodeChainTable, avgNodeChainTable, avgNodeQLenChain, avgNodeResidTChain, avgNodeRespTChain, avgNodeT, avgNodeT, avgNodeT, avgNodeT, avgNodeT, avgNodeT, avgNodeTable, avgNodeTable, avgNodeTable, avgNodeTable, avgNodeTable, avgNodeTputChain, avgNodeUtilChain, avgQLenHandles, avgResidTHandles, avgRespTHandles, avgSys, avgSysT, avgSysT, avgSysT, avgSysTable, avgSysTable, avgT, avgT, avgT, avgT, avgT, avgT, avgTable, avgTable, avgTable, avgTable, avgTable, avgTputHandles, avgUtilHandles, bindingCapacityReason, cacheAvgT, cdfPassT, cdfRespT, chainAvgT, chainAvgT, chainAvgT, chainAvgT, chainAvgT, chainAvgT, checkDeclaredMethod, citations, declaredAllMethods, declaredAllMethods, declaredValidMethods, declaredValidMethods, fjAvgT, getAllSolvers, getAvg, getAvg, getAvgArvRHandles, getAvgCacheT, getAvgCacheTable, getAvgCacheTableImpl, getAvgChainTable, getAvgChainTable, getAvgChainTable, getAvgChainTable, getAvgChainTable, getAvgChainTableImpl, getAvgChainTableImpl, getAvgFJT, getAvgFJTableImpl, getAvgHandles, getAvgItemT, getAvgItemTable, getAvgItemTableImpl, getAvgLossT, getAvgLossTable, getAvgNodeChain, getAvgNodeChainTable, getAvgNodeChainTable, getAvgNodeChainTable, getAvgNodeChainTable, getAvgNodeChainTable, getAvgNodeChainTable, getAvgNodeChainTableImpl, getAvgNodeChainTableImpl, getAvgNodeTable, getAvgNodeTable, getAvgNodeTable, getAvgNodeTable, getAvgNodeTable, getAvgNodeTableImpl, getAvgNodeTableImpl, getAvgOrbit, getAvgOrbitT, getAvgOrbitTable, getAvgOrbitTableImpl, getAvgQLenHandles, getAvgRegionLossT, getAvgRegionLossTable, getAvgResidTHandles, getAvgRespTHandles, getAvgSys, getAvgSys, getAvgSysTable, getAvgSysTable, getAvgSysTableImpl, getAvgT, getAvgT, getAvgT, getAvgT, getAvgT, getAvgT, getAvgTable, getAvgTable, getAvgTable, getAvgTable, getAvgTable, getAvgTableImpl, getAvgTableImpl, getAvgTard, getAvgTputHandles, getAvgUtilHandles, getCdfPassT, getCdfRespT, getChainAvgT, getChainAvgT, getChainAvgT, getChainAvgT, getChainAvgT, getChainAvgT, getDeadlineTable, getLibrariesUsed, getModel, getMomentChainT, getMomentChainT, getMomentChainT, getMomentStationT, getMomentStationT, getMomentStationT, getMomentT, getMomentT, getMomentT, getNodeAvgT, getNodeAvgT, getNodeAvgT, getNodeAvgT, getNodeAvgT, getNodeAvgT, getNodeChainAvgT, getNodeChainAvgT, getNodeChainAvgT, getNodeChainAvgT, getNodeChainAvgT, getNodeChainAvgT, getPerctRespT, getProbSysMarg, getProbSysMarg, getSensitivityT, getSensitivityT, getStageT, getStageT, getStageTable, getStageTable, getSysAvgT, getSysAvgT, getSysAvgT, getTranCdfPassT, getTranCdfRespT, getTranHandles, hasAvgResults, hasBoundedBuffer, hasDistribResults, hasReneging, hasTranResults, initFromSolver, initHandles, itemAvgT, libraries, lossAvgT, mapEnvApprox, mCT, mCT, mCT, model, momentChainT, momentChainT, momentChainT, momentStationT, momentStationT, momentStationT, momentT, momentT, momentT, mST, mST, mST, mT, mT, mT, needsMapEnv, nodeAvgT, nodeAvgT, nodeAvgT, nodeAvgT, nodeAvgT, nodeAvgT, nodeChainAvgT, nodeChainAvgT, nodeChainAvgT, nodeChainAvgT, nodeChainAvgT, nodeChainAvgT, options, orbitAvgT, print, prob, prob, probAggr, probAggr, probMarg, probMarg, regionLossAvgT, runAnalyzerChecks, sample, sampleAggr, sensitivityT, sensitivityT, setAvgHandles, setAvgResults, setDistribResults, setLang, setModel, setTranAvgResults, setTranHandles, setTranProb, showLibraryAttribution, sT, sT, stageT, stageTable, storeAvgResults, supportsExactSensitivity, sysAvgT, sysAvgT, sysAvgT, tranAvg, tranCdfPassT, tranCdfPassT, tranCdfRespT, tranCdfRespT, tranHandles, unsupportedMethodReasonMethods inherited from class jline.solvers.Solver
armTimeout, defaultOptions, flagTimeout, getMethodFeatureSet, getName, getOptions, getResults, hasResults, isJavaAvailable, isStochasticMethod, isValidOption, listValidOptions, parseOptions, parseOptions, reset, resetRandomGeneratorSeed, resolveMethod, selectMethod, setChecks, setOptions, supportsModelMethod, supportsResolvedMethod, supportsTransientVariance, timeExceeded, unsupportedRefusalId
-
Field Details
-
CANDIDATE_CTMC
public static final int CANDIDATE_CTMC- See Also:
-
CANDIDATE_LDES
public static final int CANDIDATE_LDES- See Also:
-
CANDIDATE_FLUID
public static final int CANDIDATE_FLUID- See Also:
-
CANDIDATE_MAM
public static final int CANDIDATE_MAM- See Also:
-
CANDIDATE_MVA
public static final int CANDIDATE_MVA- See Also:
-
CANDIDATE_NC
public static final int CANDIDATE_NC- See Also:
-
CANDIDATE_SSA
public static final int CANDIDATE_SSA- See Also:
-
METHOD_DEFAULT
- See Also:
-
METHOD_HEURISTIC
- See Also:
-
METHOD_SIM
- See Also:
-
METHOD_EXACT
- See Also:
-
METHOD_FAST
- See Also:
-
METHOD_ACCURATE
- See Also:
-
METHOD_BOUND
- See Also:
-
EXACT_POPULATION_MAX
public static final int EXACT_POPULATION_MAXPopulation at or below which an exact solver is preferred over an approximation, when one is available.- See Also:
-
CANDIDATE_LQNS
public static final int CANDIDATE_LQNS- See Also:
-
CANDIDATE_LN_NC
public static final int CANDIDATE_LN_NC- See Also:
-
CANDIDATE_LN_MVA
public static final int CANDIDATE_LN_MVA- See Also:
-
CANDIDATE_LN_MAM
public static final int CANDIDATE_LN_MAM- See Also:
-
CANDIDATE_LN_FLUID
public static final int CANDIDATE_LN_FLUID- See Also:
-
CANDIDATE_ENV_MVA
public static final int CANDIDATE_ENV_MVA- See Also:
-
CANDIDATE_ENV_NC
public static final int CANDIDATE_ENV_NC- See Also:
-
CANDIDATE_ENV_FLUID
public static final int CANDIDATE_ENV_FLUID- See Also:
-
-
Constructor Details
-
SolverAUTO
Constructor with model only -
SolverAUTO
Constructor with model and method -
SolverAUTO
Constructor with model and options -
SolverAUTO
Constructor with model and varargs -
SolverAUTO
Automatic selection over a LayeredNetwork: LQNS, then SolverLN over the NC, MVA, MAM and Fluid layers. -
SolverAUTO
Automatic selection over a LayeredNetwork with a selection intent or family method name. -
SolverAUTO
Automatic selection over a LayeredNetwork with options. -
SolverAUTO
Automatic selection over a random Environment: SolverENV over MVA, NC and Fluid stages. -
SolverAUTO
Automatic selection over a random Environment with a selection intent or family method name. -
SolverAUTO
Automatic selection over a random Environment with options.
-
-
Method Details
-
hasPriorParameters
True when the model carries uncertain parameters, which expand into one model instance per alternative. Asked of SolverUQ, which owns the question, so this routing andSolverUQ.supportscannot drift apart. Mirrors MATLABSolverAUTO.hasPriorParameters.- Parameters:
model- the network model- Returns:
- whether a service or arrival process of the model is a Prior
-
isComposite
public boolean isComposite()True when this AUTO holds a LayeredNetwork or an Environment rather than a Network. -
getCandidateSolverNames
Get list of candidate solver names -
ctmcSolver
The CTMC candidate, built on demand. State-space and generator accessors are CTMC-only concepts, so they resolve here rather than through the ranked selection.- Returns:
- a SolverCTMC over the same model
-
getGenerator
Infinitesimal generator, always from SolverCTMC.- Returns:
- the generator, event filtrations and synchronization info
-
getGenerator
Infinitesimal generator, always from SolverCTMC.- Parameters:
options- solver options for the CTMC solve- Returns:
- the generator, event filtrations and synchronization info
-
getSymbolicGenerator
Symbolic infinitesimal generator, always from SolverCTMC.- Returns:
- the symbolic generator decomposition
-
getSymbolicGenerator
Symbolic infinitesimal generator, always from SolverCTMC.- Parameters:
invertSymbol- divide each event filtration by its symbol instead of multiplying- Returns:
- the symbolic generator decomposition
-
getStateSpace
State space, always from SolverCTMC.- Returns:
- the global and per-node state spaces
-
getStateSpace
State space, always from SolverCTMC.- Parameters:
options- solver options for the state-space generation- Returns:
- the global and per-node state spaces
-
getStateSpaceAggr
Aggregated state space, always from SolverCTMC.- Returns:
- one row per CTMC state, holding the per-station class populations
-
getInfGen
Infinitesimal generator under its historical name, always from SolverCTMC.- Returns:
- the generator, event filtrations and synchronization info
-
getInfGen
Infinitesimal generator under its historical name, always from SolverCTMC.- Parameters:
options- solver options for the CTMC solve- Returns:
- the generator, event filtrations and synchronization info
-
getTransMat
Embedded transition matrix, always from SolverCTMC.- Returns:
- the transition matrix of the embedded jump chain
-
getMarkedCTMC
Marked CTMC, always from SolverCTMC.- Returns:
- the CTMC with its transitions marked by event
-
getMarkedCTMC
Marked CTMC, always from SolverCTMC.- Parameters:
options- solver options for the CTMC solve- Returns:
- the CTMC with its transitions marked by event
-
getSymbolicSolution
Symbolic stationary solution, always from SolverCTMC.- Returns:
- the symbolic stationary distribution
-
getSymbolicSolution
Symbolic stationary solution, always from SolverCTMC.- Parameters:
engine- the symbolic engine to solve with- Returns:
- the symbolic stationary distribution
-
getSensitivity
public SolverCTMC.sensitivityResult getSensitivity(SolverCTMC.SensitivityParameter param, Matrix reward, String method) Steady-state parameter sensitivity, always from SolverCTMC.- Parameters:
param- the parameter and how to set itreward- reward rate per state, or null for the distribution alonemethod- "fd" (default) or "symbolic"- Returns:
- the sensitivity
-
getSensitivity
public SolverCTMC.sensitivityResult getSensitivity(SolverCTMC.SensitivityParameter param, Matrix reward) Steady-state parameter sensitivity, always from SolverCTMC.- Parameters:
param- the parameter and how to set itreward- reward rate per state, or null for the distribution alone- Returns:
- the sensitivity
-
getSensitivityRanking
public SolverCTMC.SensitivityRankingTable getSensitivityRanking(List<SolverCTMC.SensitivityParameter> params, Matrix reward, String method) Parameters ranked by their influence on a steady-state reward, always from SolverCTMC.- Parameters:
params- the parameters to rankreward- reward rate per statemethod- "fd" (default) or "symbolic"- Returns:
- the ranked table
-
getSensitivityRanking
public SolverCTMC.SensitivityRankingTable getSensitivityRanking(List<SolverCTMC.SensitivityParameter> params, Matrix reward) Parameters ranked by their influence on a steady-state reward, always from SolverCTMC.- Parameters:
params- the parameters to rankreward- reward rate per state- Returns:
- the ranked table
-
getCdfFirstPassT
First-passage-time distribution from state set A to state set B, always from SolverCTMC.- Parameters:
A- the starting state setB- the target state set- Returns:
- the first-passage-time distribution
-
getFirstPassTMoments
First-passage-time moments from state set A to state set B, always from SolverCTMC.- Parameters:
A- the starting state setB- the target state setnmax- the highest moment order- Returns:
- the first-passage-time moments
-
getFirstPassTMoments
First-passage-time moments from state set A to state set B, always from SolverCTMC, at the CTMC default moment order.- Parameters:
A- the starting state setB- the target state set- Returns:
- the first-passage-time moments
-
getStruct
Model structure, as every other solver exposes it.- Returns:
- the NetworkStruct of the model under analysis
-
listAllMethods
Every token the CONSTRUCTOR accepts, INDEPENDENT of the model: the selection intents, the method families, and every family method in its QUALIFIED form. The unqualified form is accepted too (resolveMethodToken looks it up) and is left out here to keep the list unambiguous.THIS is the list a method-NAME check must gate on.
listValidMethods()narrows it to the model in hand, and gating a name check on that would replace a rejection the delegate would have EXPLAINED with a flat "the method is unsupported by this solver" -- the same distinction SolverBA draws between its own listAllMethods and listValidMethods.- Returns:
- every AUTO token, regardless of the model
-
listValidMethods
The method names oflistAllMethods()that THIS MODEL can actually run.The gate is the one
chooseSolverRankedalready applies before delegating, asked here of every candidate instead of the first feasible one: a method whosesupportsModelMethodrefuses the model is not offered, and a family with no method-level gate is judged by its flat feature set throughsupports(model). The method-level gate is where the rules a feature set cannot express live (product form for "exact", a binding finite buffer, NC "mem" applicability).Without it this would return every method name regardless of the model, inviting a caller enumerating the list to ask for an analysis no candidate would perform.
A family whose every method is refused loses its bare method name too: "nc" alone delegates to SolverNC, which is exactly the rejection the per-method gate just returned.
- Returns:
- the AUTO tokens this model can run
-
metricGroups
The measure groupsfindSolver()reports on, in report order.A group is a family of accessors that stand or fall together: a solver that returns getCdfRespT returns getCdfPassT and getPerctRespT as well, because all three read the same passage time, so listing the three separately would say nothing extra.
- Returns:
- the group names
-
metricGroupOf
The measure group an accessor belongs to, "" when the name is none.A group name maps to itself, so findSolver("cdf") and findSolver("getCdfRespT") ask the same question.
THIS IS NOT chooseSolverHeur's TABLE, although both are keyed by accessor name. That one maps an accessor to a RANKING, i.e. which candidate should be preferred; this one maps it to a CAPABILITY question, i.e. which candidates can answer it at all. The two differ wherever a family can serve a measure but is never the one AUTO would pick for it.
- Parameters:
name- an accessor name or a group name- Returns:
- the group, or "" when the name belongs to none
-
familyMetrics
The measure groups a method family can answer.Every family answers "avg", which is what a solver is for; the rest is the capability declaration this class owns.
SOURCES, so that a claim here can be checked rather than trusted: "tran" is supportsTransientAnalysis, which FLD, CTMC, LDES and JMT override to true and no one else does. "cdf", "prob", "tranprob" and "sample" are the families that carry an implementation of the corresponding accessor rather than inheriting the base refusal. The remaining five groups are computed by NetworkSolver from a solver's own results, so no per-solver method marks them: their lists are chooseSolverHeur's rankings for the same accessors, which is where AUTO already records who can serve them.
A family that gains or loses a measure must be edited here in the same change, the way a solver that gains a feature is edited into its feature set: an omission here does not fail, it silently hides the family from a caller asking for that measure.
- Parameters:
family- the method family- Returns:
- its measure groups
-
methodClass
public static String methodClass(String family, String method, boolean isStochastic, boolean isProductForm, boolean isQbdShape, boolean hasCache) What KIND of answer a method returns: exact, approx, bound or simulation."simulation" is not decided here: isStochastic is the solver's own isStochasticMethod, which already tokenizes qualified and runtime-resolved names and is the only place that knowledge lives.
"exact" IS CLAIMED ONLY WHERE IT IS TRUE OF THIS MODEL, never of the algorithm in the abstract. Exactness of a normalizing constant or of mean value analysis is a property of the product-form model it is computed on, and of the QBD shape for the matrix analytic methods, so both conditions are passed in and a method that needs one reports "approx" without it. The bias is deliberate: an under-claimed "approx" costs a user a better method they could have had, an over-claimed "exact" costs them a wrong number they trusted.
A CACHE IS THE THIRD CONDITION, and it is the over-claim the bias above exists to prevent. snHasProductForm answers about the QUEUEING network and knows nothing of a cache: the hit/miss split is a class switch whose probabilities are not routing data but the output of a cache model, so a network holding one reads as product form and "mva.exact" would be labelled exact on it, although exact MVA is then off by double-digit percentages at the hit station. The analytic families are conditioned on it; SolverCTMC is NOT, because its state space carries the cache contents and it is exact there.
- Parameters:
family- the method familymethod- the unqualified method nameisStochastic- the solver's own isStochasticMethod verdictisProductForm- whether the model has a product-form solutionisQbdShape- whether the model is one queueing station fed by a SourcehasCache- whether the model holds a Cache node- Returns:
- one of the SolverCandidate CLASS_ constants
-
findSolver
Which solvers and solver methods can analyze this model: the runnable pairs, for every measure.- Returns:
- one row per runnable (family, method) pair
-
findSolver
Which solvers and solver methods can analyze this model, and for the ones that cannot, why not.One row per (family, method) pair AUTO can be asked for; see
SolverCandidatefor the columns.THE GATE IS NOT A SECOND ONE. It is the gate chooseSolverRanked applies before delegating, asked of every candidate instead of of the first feasible one;
listValidMethods()is the method column of the runnable rows, so the two cannot disagree. The REASON the gate produced is kept rather than discarded, and the answer carries the two facts a caller needs in order to choose among the survivors: whether the method is exact on this model, and which measures it can report.WHY A REASON HAS TO BE RECONSTRUCTED for some rows. The base supportsModelMethod returns a reason that names no feature when the solver does not diverge per method, since it then falls back to supports(model), which answers with a bare boolean. That is enough for a gate, which only has to stop the run, and not enough for a report, whose whole content is the explanation. So a refused row is re-asked against the solver's own feature set, which is where the offending feature names are.
- Parameters:
metric- a measure group ("cdf") or the accessor that returns it ("getCdfRespT"); "" or "any" keeps every pairshowAll- keep the refused pairs too, with the reason each was refused- Returns:
- the rows, in family order
-
findSolverLayered
public static List<SolverCandidate> findSolverLayered(LayeredNetwork model, String metric, boolean showAll) findSolver for a LayeredNetwork, which this class does not otherwise solve: its constructor takes a Network, and buildFamilySolver says so.THE FAMILY SET IS THE ONE THAT CAN BE BUILT OVER A LayeredNetwork, and not a shorter hand-picked list. MATLAB's familyAcceptsModelClass admits every family for a layered model and lets the ones that cannot be constructed drop out, which is how "ldes" stays in -- it analyzes an LQN natively -- while mva, nc, ctmc and the rest fall away because their constructors take a Network. Naming only "ln" and "lqns" here would have hidden the LDES row that MATLAB and native python both report.
- Parameters:
model- the layered modelmetric- a measure group or the accessor that returns it; "" keeps allshowAll- keep the refused pairs too- Returns:
- the rows, in family order
-
getFeatureSet
Union of the feature sets of every solver AUTO can delegate to: a model AUTO can analyze is one that at least one candidate supports.- Returns:
- the union feature set over all candidate solvers
-
getSelectedSolverName
Get the name of the selected solver -
isStochastic
public boolean isStochastic()If a delegate solver has been selected, classify by it (once run, it knows the method it resolved at runtime). Before selection, the delegate choice is unknown, so classify conservatively: true if any candidate is stochastic.- Overrides:
isStochasticin classSolver- Returns:
- true if the (prospective) delegate returns stochastic estimates
-
selectionIntents
Tokens that state what the solution is for, rather than naming an algorithm. -
familyNames
Method families, in the order in which an unqualified method name is looked up."ag" SITS AFTER "mam", whose RCAT names it took over, and is a family for the METHOD NAME and REPORT tables only: LINE(model, "ag.inap") and model.help() reach SolverAG through it. It is deliberately NOT a candidate of the automatic ranking (initializeCandidates builds that list by hand) and NOT in the feature-set union of getFeatureSet, so a G-network is still refused by "default" and has to be asked for by name; see _kb/06-solver-catalog.md, "SolverAG owns the RCAT methods".
-
methodAliasPrefixes
The prefixes under which a family advertises a SECOND SPELLING of a method it already declares plainly.THIS IS A DECLARATION, not a derivation, and belongs beside familyMetrics and methodClass for the same reason: the knowledge lives in the solver's own dispatch (SolverMVA strips a leading "amva." before selecting an algorithm) and no accessor exposes it, so a family that gains or loses an alias spelling must be edited into all four copies in the SAME change. An omission does not fail; it puts the same algorithm in the report twice.
- Parameters:
family- the method family- Returns:
- the alias prefixes, empty when the family advertises none
-
isMethodAlias
Isnamea second spelling of another method this family declares?The remainder has to be declared too, which is what keeps the rule from eating a genuine method that merely starts with the prefix: it is an alias only when the thing it aliases is there beside it.
- Parameters:
family- the method familyname- the declared method name under testdeclared- every method name the family declares on this model- Returns:
- true when the name only respells one of the others
-
familyAlias
Canonical family of a method name, or "" when the method name names none.- Parameters:
name- the token to classify- Returns:
- the family name, or "" when the method name names no family
-
familyDeclaringMethod
Find the family that declares an unqualified algorithm name, by asking each family for its own method list. Keeping the question there avoids a second copy of the name table here, which would drift.- Parameters:
token- the unqualified algorithm name- Returns:
- the family that declares it, or "" when none does
-
resolveMethodToken
Split a method name into a selection intent, or into a family and the submethod handed to it. A qualified method name "family.submethod" KEEPS its submethod: dropping it would silently downgrade a pinned method to the family default.- Parameters:
token- the requested method name, may be null- Returns:
- the resolved token
- Throws:
RuntimeException- when no family owns the method name
-
buildFamilySolver
Instantiate the solver of a method family.options.methodalready holds the submethod resolved byresolveMethodToken(java.lang.String), so a pinned method reaches the family that runs it.- Parameters:
family- the family nameoptions- the options, carrying the resolved submethod- Returns:
- the family's solver
-
runAnalyzer
public void runAnalyzer()Override the main run method to ensure proper delegation- 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. -
getAvgChainTable
Description copied from class:NetworkSolverReturns a table of average station metrics aggregated by job chains.- Overrides:
getAvgChainTablein classNetworkSolver- Returns:
- table containing station metrics organized by chains
-
getAvgSysTable
Description copied from class:NetworkSolverReturns a table of average system-level metrics.- Overrides:
getAvgSysTablein classNetworkSolver- Returns:
- table containing system response times and throughputs by chain
-
getAvgNodeTable
Description copied from class:NetworkSolverReturns a table of average node metrics organized by job classes.- Overrides:
getAvgNodeTablein classNetworkSolver- Returns:
- table containing node-level metrics for each class
-
getAvgTable
Description copied from class:NetworkSolverReturns a table of average station metrics organized by job classes.- Overrides:
getAvgTablein classNetworkSolver- Returns:
- table containing station-level metrics for each class
-
getAvgFJ
Fork-join section metrics of the delegate; see NetworkSolver.getAvgFJ.- Overrides:
getAvgFJin classNetworkSolver- Returns:
- the section metrics;
FJResult.isEmpty()when absent
-
getAvgFJTable
Fork-join section table of the delegate; see NetworkSolver.getAvgFJTable.- Overrides:
getAvgFJTablein classNetworkSolver- Returns:
- the fork-join table
-
getAvg
Description copied from class:NetworkSolverComputes and returns average station metrics at steady-state. This is the main method for obtaining steady-state performance metrics.- Overrides:
getAvgin classNetworkSolver- Returns:
- solver result containing station-level average metrics
-
getAvgChain
Description copied from class:NetworkSolverReturns average station metrics aggregated by job chains.- Overrides:
getAvgChainin classNetworkSolver- Returns:
- solver result with metrics aggregated by chains
-
getAvgSys
public void getAvgSys()Description copied from class:NetworkSolverComputes average system-level metrics at steady state. This includes system response times and throughputs aggregated across all chains.- Overrides:
getAvgSysin classNetworkSolver
-
getAvgNode
Description copied from class:NetworkSolverComputes average performance metrics at steady-state for all nodes. Aggregates station-level metrics to node-level metrics.- Overrides:
getAvgNodein classNetworkSolver- Returns:
- solver result containing node-level average metrics
-
getAvgArvRChain
Description copied from class:NetworkSolverReturns average arrival rates aggregated by job chains.- Overrides:
getAvgArvRChainin classNetworkSolver- Returns:
- matrix of arrival rates [stations x chains]
-
getAvgQLenChain
Description copied from class:NetworkSolverReturns average queue lengths aggregated by job chains.- Overrides:
getAvgQLenChainin classNetworkSolver- Returns:
- matrix of queue lengths [stations x chains]
-
getAvgUtilChain
Description copied from class:NetworkSolverReturns average server utilizations aggregated by job chains.- Overrides:
getAvgUtilChainin classNetworkSolver- Returns:
- matrix of utilizations [stations x chains]
-
getAvgRespTChain
Description copied from class:NetworkSolverReturns average response times aggregated by job chains.- Overrides:
getAvgRespTChainin classNetworkSolver- Returns:
- matrix of response times [stations x chains]
-
getAvgTputChain
Description copied from class:NetworkSolverReturns average throughputs aggregated by job chains.- Overrides:
getAvgTputChainin classNetworkSolver- Returns:
- matrix of throughputs [stations x chains]
-
getAvgSysRespT
Description copied from class:NetworkSolverReturns average system response times at steady state.- Overrides:
getAvgSysRespTin classNetworkSolver- Returns:
- matrix of system response times by chain
-
getAvgSysTput
Description copied from class:NetworkSolverReturns average system throughputs at steady state.- Overrides:
getAvgSysTputin classNetworkSolver- Returns:
- matrix of system throughputs by chain
-
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
-
getTranCdfPassT
Description copied from class:NetworkSolverReturns 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
-
getTranCdfRespT
Description copied from class:NetworkSolverReturns cumulative distribution functions of response times during transient analysis. Uses default response time handles.- Overrides:
getTranCdfRespTin classNetworkSolver- Returns:
- result containing transient CDFs for response times
-
getTranProb
-
getTranProbAggr
-
getTranProbSys
-
getTranProbSysAggr
-
sample
-
sampleAggr
-
sampleSys
Description copied from class:NetworkSolverSamples joint system state trajectories. This is an abstract method that must be implemented by concrete solver subclasses.- Overrides:
sampleSysin classNetworkSolver- Parameters:
numEvents- the number of events to sample- Returns:
- result containing sampled joint system state trajectories
-
sampleSysAggr
Description copied from class:NetworkSolverSamples aggregated joint system state trajectories. This is an abstract method that must be implemented by concrete solver subclasses.- Overrides:
sampleSysAggrin classNetworkSolver- Parameters:
numEvents- the number of events to sample- Returns:
- result containing sampled aggregated joint system state trajectories
-
getCdfRespT
Description copied from class:NetworkSolverReturns cumulative distribution functions of response times at steady-state. Uses default response time handles.- Overrides:
getCdfRespTin classNetworkSolver- Returns:
- result containing CDFs for response times [stations x classes]
-
getCdfSysRespT
System response time CDF per chain, always from SolverCTMC -- like the state-space accessors, it is a property of the CTMC representation, so it resolves on the CTMC candidate rather than the ranked selection, as the reference@SolverAUTO/getCdfSysRespTdoes. -
fldSolver
A SolverFluid over the same model, reusing the fluid candidate when one exists -- thefldSolver()helper of the reference. -
getCdfPT
Backward-compatible passage-time CDF name, resolved on the fluid family. -
getCdfAoI
Age-of-Information CDFs, a property of the ODE representation, so fluid-only. -
getCdfAoI
Age-of-Information CDFs on caller-supplied time points, fluid-only. -
getAvgAoI
Mean Age of Information, a property of the ODE representation, so fluid-only. -
getTranAvgVar
Transient queue-length means and variances, fluid-only. -
getMoments
Second-order results of the fluid moment-closure methods, fluid-only: null unless the fluid delegate ran a closure method ('minnormal', 'refined' on a cache model, 'dae'). -
getSymbolicDrift
Symbolic drift of the fluid ODEs, fluid-only. -
getJacobian
Symbolic Jacobian of the fluid ODEs, fluid-only. -
getJacobian
Symbolic Jacobian of the fluid ODEs, fluid-only.- Parameters:
equilibria- also solve for the equilibria- Returns:
- the ODE system with its Jacobian
-
exportODEs
Fluid ODE system as LaTeX, fluid-only. -
exportODEs
Fluid ODE system as LaTeX written to fileName, fluid-only. -
exportODEs
Fluid ODE system as LaTeX written to fileName in the given notation, fluid-only. -
ncSolver
The NC candidate, built on demand -- thencSolver()helper of the reference. -
getNormalizingConstant
Normalizing constant, from the NC family.- Throws:
IllegalAccessException
-
getAvgBusyPeriod
public double[] getAvgBusyPeriod(int[] stations, int[] orders) Mean busy periods of a subnetwork, from the NC family. Daduna (J. ACM 35(3), 1988) is a normalizing-constant transform, so the NC family owns it here; SolverLDES measures the same quantity on a sample path and is reached by naming that solver.- Parameters:
stations- the 0-based stations forming the subnetworkorders- the busy-period orders- Returns:
- one mean duration per requested order
-
getAvgBusyPeriod
public double getAvgBusyPeriod(int[] stations, int order) Single-order form ofgetAvgBusyPeriod(int[], int[]), from the NC family. -
baSolver
The bound-analysis delegate. Bounds are never in the ranked candidate list, since they return an interval rather than a point estimate: a pinned 'ba.*' method is honoured, otherwise SolverBA runs its own 'auto' family. -
getBounds
Bound interval, from the BA family. -
getBoundsTable
Bound interval as a table, from the BA family. -
getBoundsTable
Bound interval as a table, from the BA family. -
uqSolver
The UQ delegate over this model: one SolverAUTO per alternative of the Prior, run silently, as the reference'suqSolver()builds it. -
getPosteriorTable
Posterior table over the uncertain parameters, from the UQ family. -
getPosteriorDist
Posterior distribution of one metric at one station and class, from the UQ family. -
getSelectedSolver
The delegate that holds results, or the one the selection rule would use for the mean metrics. Mirrors MATLAB getSelectedSolver: a single (pinned, bound or prior) delegate is returned as is, then the first candidate with results in slot order, then the getAvg choice; null when nothing is feasible.- Returns:
- the delegate solver, or null
-
getSelectedMethod
Name of the method family that answered the last request (or would answer the mean metrics), as MATLAB getSelectedMethod's first output; "" when no delegate is feasible.- Returns:
- the family name, e.g. "mva", "ln", "env", "lqns"
-
familyOfSolver
The method family a solver instance belongs to; mirrors MATLAB SolverAUTO.familyOfSolver.- Parameters:
solver- a solver, may be null- Returns:
- the family name, "" for null, the lower-cased class name for an unknown solver
-
supportsTransientAnalysis
public boolean supportsTransientAnalysis()True when the delegate that a transient request would reach can run one: the single delegate when the method name pinned one, otherwise any feasible candidate. Mirrors MATLAB supportsTransientAnalysis.- Overrides:
supportsTransientAnalysisin classSolver- Returns:
- true if the solver can return transient averages
-
getEnsembleAvg
Ensemble averages of the LN/ENV delegate. -
getNumberOfModels
public int getNumberOfModels()Number of submodels (layers or stages) of the decomposing delegate. -
getSolver
Solver of submodel e (0-based) of the decomposing delegate. -
getIteration
public int getIteration()Iterations the decomposing delegate has run. -
getTranAvgCoupled
Coupled LN transient (all layers co-evolving in model time), from SolverLN. -
getTranAvgDecoupled
Decoupled LN transient (inter-layer demands frozen at steady state), from SolverLN. -
computeSojournCdf
public double computeSojournCdf(int e, double t) Sojourn-time CDF of environment stage e (0-based) at time t, from SolverENV. -
getSamplePathTable
Transient metrics along a sample path of environment stages, from SolverENV. -
getStageAvg
Per-stage averages, resolved on the delegate as in MATLAB. No solver in any codebase implements getStageAvg (MATLAB's SolverLN body is commented out), so this reports that no candidate provides it. -
getAvgTableLayered
The per-element layered table (MATLAB getAvgTableLayered), from the delegate's getLNAvgTable. -
ensembleAvg
Alias forgetEnsembleAvg(). -
solver
Alias forgetSolver(int). -
iteration
public int iteration()Alias forgetIteration(). -
numberOfModels
public int numberOfModels()Alias forgetNumberOfModels(). -
avgQLenTable
Alias forgetAvgQLenTable(). -
avgUtilTable
Alias forgetAvgUtilTable(). -
avgRespTTable
Alias forgetAvgRespTTable(). -
avgTputTable
Alias forgetAvgTputTable(). -
sjrnT
Alias forgetSjrnT(). -
tranProb
Alias forgetTranProb(Node). -
tranProbAggr
Alias forgetTranProbAggr(Node). -
tranProbSys
Alias forgetTranProbSys(). -
tranProbSysAggr
Alias forgetTranProbSysAggr(). -
getAvgReward
Steady-state rewards, from the first ranked candidate that computes them. -
getAvgReward
Steady-state value of one reward, from the first ranked candidate that computes it. -
getTranReward
Transient rewards, from the first ranked candidate that computes them. -
getTranReward
Transient value of one reward, from the first ranked candidate that computes it. -
getSjrnT
Sojourn-time distribution, from the first ranked candidate that computes it. -
getSensitivityTable
Sensitivity table, from the ranked candidate rather than computed on AUTO itself.- Overrides:
getSensitivityTablein classNetworkSolver- Returns:
- table of per-class rate sensitivities
- See Also:
-
getSensitivityTable
Sensitivity table, from the ranked candidate rather than computed on AUTO itself.- Overrides:
getSensitivityTablein classNetworkSolver- 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
- See Also:
-
getMomentTable
Moment table, from the ranked candidate rather than computed on AUTO itself.- Overrides:
getMomentTablein classNetworkSolver- Returns:
- table of per-class queue-length and response-time moments
- See Also:
-
getMomentTable
Moment table, from the ranked candidate rather than computed on AUTO itself.- Overrides:
getMomentTablein classNetworkSolver- 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
Moment table, from the ranked candidate rather than computed on AUTO itself.- Overrides:
getMomentTablein classNetworkSolver- 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:
-
getMomentTable
Moment table, from the ranked candidate rather than computed on AUTO itself.- Overrides:
getMomentTablein classNetworkSolver- Parameters:
order- the set of moment orders to report; each an integer in 1..3method- "", "exact" or "momlin"- Returns:
- table of per-class queue-length and response-time moments
-
getMomentChainTable
Per-chain moment table, from the ranked candidate rather than computed on AUTO itself.- Overrides:
getMomentChainTablein classNetworkSolver- Returns:
- table of per-(Station, Chain) queue-length moments
- See Also:
-
getMomentChainTable
Per-chain moment table, from the ranked candidate rather than computed on AUTO itself.- Overrides:
getMomentChainTablein classNetworkSolver- 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
Per-chain moment table, from the ranked candidate rather than computed on AUTO itself.- Overrides:
getMomentChainTablein classNetworkSolver- 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:
-
getMomentStationTable
Per-station moment table, from the ranked candidate rather than computed on AUTO itself.- Overrides:
getMomentStationTablein classNetworkSolver- Returns:
- table of per-station total queue-length moments
- See Also:
-
getMomentStationTable
Per-station moment table, from the ranked candidate rather than computed on AUTO itself.- Overrides:
getMomentStationTablein classNetworkSolver- 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
Per-station moment table, from the ranked candidate rather than computed on AUTO itself.- Overrides:
getMomentStationTablein classNetworkSolver- 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:
-
getProb
-
getProbAggr
-
getProb
Description copied from class:NetworkSolverReturns marginal state probabilities for a specific node and state. This is an abstract method that must be implemented by concrete solver subclasses.- Overrides:
getProbin classNetworkSolver- Parameters:
node- the node index for which to compute probabilitiesstate- the state vector to query (optional, null for all states)- Returns:
- result containing marginal state probabilities
-
getProb
Description copied from class:NetworkSolverReturns marginal state probabilities for a specific node (all states). This is an abstract method that must be implemented by concrete solver subclasses.- Overrides:
getProbin classNetworkSolver- Parameters:
node- the node index for which to compute probabilities- Returns:
- result containing marginal state probabilities
-
getProbAggr
Description copied from class:NetworkSolverProbability 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
NetworkSolver.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).- Overrides:
getProbAggrin classNetworkSolver- 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]
-
getProbAggr
Description copied from class:NetworkSolverProbability 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
NetworkSolver.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).- Overrides:
getProbAggrin classNetworkSolver- Parameters:
node- the node index for which to compute probabilities- Returns:
- scalar probability in [0,1]
-
getProbMarg
Description copied from class:NetworkSolverProbability 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
NetworkSolver.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.- Overrides:
getProbMargin classNetworkSolver- 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)
-
getProbMarg
Description copied from class:NetworkSolverProbability 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
NetworkSolver.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.- Overrides:
getProbMargin classNetworkSolver- 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)
-
getProbSys
Description copied from class:NetworkSolverReturns joint state probabilities for the entire system. This is an abstract method that must be implemented by concrete solver subclasses.- Overrides:
getProbSysin classNetworkSolver- Returns:
- result containing joint state probabilities
-
getProbSysAggr
Description copied from class:NetworkSolverReturns aggregated joint state probabilities for the entire system. This is an abstract method that must be implemented by concrete solver subclasses.- Overrides:
getProbSysAggrin classNetworkSolver- Returns:
- result containing aggregated joint state probabilities
-
getProbNormConstAggr
Description copied from class:NetworkSolverReturns the logarithm of the normalizing constant of state probabilities. This is an abstract method that must be implemented by concrete solver subclasses.- Overrides:
getProbNormConstAggrin classNetworkSolver- Returns:
- result containing the log normalizing constant
-
getAvgQLen
Get average queue lengths at steady-state- Overrides:
getAvgQLenin classNetworkSolver- Returns:
- matrix of average queue lengths [stations x classes]
-
getAvgUtil
Get average utilizations at steady-state- Overrides:
getAvgUtilin classNetworkSolver- Returns:
- matrix of average utilizations [stations x classes]
-
getAvgRespT
Get average response times at steady-state- Overrides:
getAvgRespTin classNetworkSolver- Returns:
- matrix of average response times [stations x classes]
-
getAvgResidT
Get average residence times at steady-state- Overrides:
getAvgResidTin classNetworkSolver- Returns:
- matrix of average residence times [stations x classes]
-
getAvgWaitT
Get average waiting times (queue time excluding service)- Overrides:
getAvgWaitTin classNetworkSolver- Returns:
- matrix of average waiting times [stations x classes]
-
getAvgTput
Get average throughputs at steady-state- Overrides:
getAvgTputin classNetworkSolver- Returns:
- matrix of average throughputs [stations x classes]
-
getAvgArvR
Get average arrival rates at steady-state- Overrides:
getAvgArvRin classNetworkSolver- Returns:
- matrix of average arrival rates [stations x classes]
-
getAvgQLenTable
Get average queue length table- Overrides:
getAvgQLenTablein classNetworkSolver- Returns:
- the per-metric view of the average table
-
getAvgQLenTable
Get average queue length table, keeping all-zero rows when asked- Overrides:
getAvgQLenTablein classNetworkSolver- Parameters:
keepDisabled- whether to keep the station-class rows with all-zero metrics- Returns:
- the per-metric view of the average table
-
getAvgUtilTable
Get average utilization table- Overrides:
getAvgUtilTablein classNetworkSolver- Returns:
- the per-metric view of the average table
-
getAvgUtilTable
Get average utilization table, keeping all-zero rows when asked- Overrides:
getAvgUtilTablein classNetworkSolver- Parameters:
keepDisabled- whether to keep the station-class rows with all-zero metrics- Returns:
- the per-metric view of the average table
-
getAvgRespTTable
Get average response time table- Overrides:
getAvgRespTTablein classNetworkSolver- Returns:
- the per-metric view of the average table
-
getAvgRespTTable
Get average response time table, keeping all-zero rows when asked- Overrides:
getAvgRespTTablein classNetworkSolver- Parameters:
keepDisabled- whether to keep the station-class rows with all-zero metrics- Returns:
- the per-metric view of the average table
-
getAvgTputTable
Get average throughput table- Overrides:
getAvgTputTablein classNetworkSolver- Returns:
- the per-metric view of the average table
-
getAvgTputTable
Get average throughput table, keeping all-zero rows when asked- Overrides:
getAvgTputTablein classNetworkSolver- Parameters:
keepDisabled- whether to keep the station-class rows with all-zero metrics- Returns:
- the per-metric view of the average table
-
getAvgResidTChain
Get average residence time by chain- Overrides:
getAvgResidTChainin classNetworkSolver- Returns:
- matrix of residence times [stations x chains]
-
getAvgNodeQLenChain
Get average node queue length by chain- Overrides:
getAvgNodeQLenChainin classNetworkSolver- Returns:
- matrix of node queue lengths [nodes x chains]
-
getAvgNodeUtilChain
Get average node utilization by chain- Overrides:
getAvgNodeUtilChainin classNetworkSolver- Returns:
- matrix of node utilizations [nodes x chains]
-
getAvgNodeRespTChain
Get average node response time by chain- Overrides:
getAvgNodeRespTChainin classNetworkSolver- Returns:
- matrix of node response times [nodes x chains]
-
getAvgNodeResidTChain
Get average node residence time by chain- Overrides:
getAvgNodeResidTChainin classNetworkSolver- Returns:
- matrix of node residence times [nodes x chains]
-
getAvgNodeTputChain
Get average node throughput by chain- Overrides:
getAvgNodeTputChainin classNetworkSolver- Returns:
- matrix of node throughputs [nodes x chains]
-
getAvgNodeArvRChain
Get average node arrival rate by chain- Overrides:
getAvgNodeArvRChainin classNetworkSolver- Returns:
- matrix of node arrival rates [nodes x chains]
-
getCdfPassT
Get CDF of passage times at steady-state- Overrides:
getCdfPassTin classNetworkSolver- Returns:
- result containing CDFs for passage times
-
getPerctRespT
Get response time percentiles -
getProbMarg
Get marginalized state probability -
avgTable
Alias for getAvgTable()- Overrides:
avgTablein classNetworkSolver
-
avgSysTable
Alias for getAvgSysTable()- Overrides:
avgSysTablein classNetworkSolver
-
avgNodeTable
Alias for getAvgNodeTable()- Overrides:
avgNodeTablein classNetworkSolver
-
avgChainTable
Alias for getAvgChainTable()- Overrides:
avgChainTablein classNetworkSolver
-
avg
Alias for getAvg()- Overrides:
avgin classNetworkSolver
-
avgChain
Alias for getAvgChain()- Overrides:
avgChainin classNetworkSolver
-
avgNode
Alias for getAvgNode()- Overrides:
avgNodein classNetworkSolver
-
avgQLen
Alias for getAvgQLen()- Overrides:
avgQLenin classNetworkSolver
-
avgUtil
Alias for getAvgUtil()- Overrides:
avgUtilin classNetworkSolver
-
avgRespT
Alias for getAvgRespT()- Overrides:
avgRespTin classNetworkSolver
-
avgResidT
Alias for getAvgResidT()- Overrides:
avgResidTin classNetworkSolver
-
avgWaitT
Alias for getAvgWaitT()- Overrides:
avgWaitTin classNetworkSolver
-
avgTput
Alias for getAvgTput()- Overrides:
avgTputin classNetworkSolver
-
avgArvR
Alias for getAvgArvR()- Overrides:
avgArvRin classNetworkSolver
-
avgQLenChain
Alias for getAvgQLenChain()- Overrides:
avgQLenChainin classNetworkSolver
-
avgUtilChain
Alias for getAvgUtilChain()- Overrides:
avgUtilChainin classNetworkSolver
-
avgRespTChain
Alias for getAvgRespTChain()- Overrides:
avgRespTChainin classNetworkSolver
-
avgResidTChain
Alias for getAvgResidTChain()- Overrides:
avgResidTChainin classNetworkSolver
-
avgTputChain
Alias for getAvgTputChain()- Overrides:
avgTputChainin classNetworkSolver
-
avgArvRChain
Alias for getAvgArvRChain()- Overrides:
avgArvRChainin classNetworkSolver
-
avgSysRespT
Alias for getAvgSysRespT()- Overrides:
avgSysRespTin classNetworkSolver
-
avgSysTput
Alias for getAvgSysTput()- Overrides:
avgSysTputin classNetworkSolver
-
cdfRespT
Alias for getCdfRespT()- Overrides:
cdfRespTin classNetworkSolver
-
cdfPassT
Alias for getCdfPassT()- Overrides:
cdfPassTin classNetworkSolver
-
perctRespT
Alias for getPerctRespT() -
prob
Alias for getProb() -
probAggr
Alias for getProbAggr() -
probSys
Alias for getProbSys()- Overrides:
probSysin classNetworkSolver
-
probSysAggr
Alias for getProbSysAggr()- Overrides:
probSysAggrin classNetworkSolver
-
probNormConstAggr
Alias for getProbNormConstAggr()- Overrides:
probNormConstAggrin classNetworkSolver
-
probMarg
Alias for getProbMarg() -
sample
Alias for sample() -
sampleSys
Alias for sampleSys()
-