Class SolverAUTO

Direct Known Subclasses:
AUTO, LINE

public class SolverAUTO extends NetworkSolver
Automatic solver selection for queueing network models.

This solver automatically selects the most appropriate solution method based on model characteristics and requested performance metrics.

  • Field Details

  • Constructor Details

    • SolverAUTO

      public SolverAUTO(Network model)
      Constructor with model only
    • SolverAUTO

      public SolverAUTO(Network model, String method)
      Constructor with model and method
    • SolverAUTO

      public SolverAUTO(Network model, SolverOptions options)
      Constructor with model and options
    • SolverAUTO

      public SolverAUTO(Network model, Object... varargin)
      Constructor with model and varargs
    • SolverAUTO

      public SolverAUTO(LayeredNetwork model)
      Automatic selection over a LayeredNetwork: LQNS, then SolverLN over the NC, MVA, MAM and Fluid layers.
    • SolverAUTO

      public SolverAUTO(LayeredNetwork model, String method)
      Automatic selection over a LayeredNetwork with a selection intent or family method name.
    • SolverAUTO

      public SolverAUTO(LayeredNetwork model, SolverOptions options)
      Automatic selection over a LayeredNetwork with options.
    • SolverAUTO

      public SolverAUTO(Environment model)
      Automatic selection over a random Environment: SolverENV over MVA, NC and Fluid stages.
    • SolverAUTO

      public SolverAUTO(Environment model, String method)
      Automatic selection over a random Environment with a selection intent or family method name.
    • SolverAUTO

      public SolverAUTO(Environment model, SolverOptions options)
      Automatic selection over a random Environment with options.
  • Method Details

    • hasPriorParameters

      public static boolean hasPriorParameters(Network model)
      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 and SolverUQ.supports cannot drift apart. Mirrors MATLAB SolverAUTO.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

      public List<String> getCandidateSolverNames()
      Get list of candidate solver names
    • ctmcSolver

      public SolverCTMC 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

      public SolverCTMC.generatorResult getGenerator()
      Infinitesimal generator, always from SolverCTMC.
      Returns:
      the generator, event filtrations and synchronization info
    • getGenerator

      public SolverCTMC.generatorResult getGenerator(SolverOptions options)
      Infinitesimal generator, always from SolverCTMC.
      Parameters:
      options - solver options for the CTMC solve
      Returns:
      the generator, event filtrations and synchronization info
    • getSymbolicGenerator

      public SolverCTMC.symbolicGeneratorResult getSymbolicGenerator()
      Symbolic infinitesimal generator, always from SolverCTMC.
      Returns:
      the symbolic generator decomposition
    • getSymbolicGenerator

      public SolverCTMC.symbolicGeneratorResult getSymbolicGenerator(boolean invertSymbol)
      Symbolic infinitesimal generator, always from SolverCTMC.
      Parameters:
      invertSymbol - divide each event filtration by its symbol instead of multiplying
      Returns:
      the symbolic generator decomposition
    • getStateSpace

      public SolverCTMC.StateSpace getStateSpace()
      State space, always from SolverCTMC.
      Returns:
      the global and per-node state spaces
    • getStateSpace

      public SolverCTMC.StateSpace getStateSpace(SolverOptions options)
      State space, always from SolverCTMC.
      Parameters:
      options - solver options for the state-space generation
      Returns:
      the global and per-node state spaces
    • getStateSpaceAggr

      public Matrix getStateSpaceAggr()
      Aggregated state space, always from SolverCTMC.
      Returns:
      one row per CTMC state, holding the per-station class populations
    • getInfGen

      public SolverCTMC.generatorResult getInfGen()
      Infinitesimal generator under its historical name, always from SolverCTMC.
      Returns:
      the generator, event filtrations and synchronization info
    • getInfGen

      public SolverCTMC.generatorResult getInfGen(SolverOptions options)
      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

      public Matrix getTransMat()
      Embedded transition matrix, always from SolverCTMC.
      Returns:
      the transition matrix of the embedded jump chain
    • getMarkedCTMC

      public MarkedMarkovProcess getMarkedCTMC()
      Marked CTMC, always from SolverCTMC.
      Returns:
      the CTMC with its transitions marked by event
    • getMarkedCTMC

      public MarkedMarkovProcess getMarkedCTMC(SolverOptions options)
      Marked CTMC, always from SolverCTMC.
      Parameters:
      options - solver options for the CTMC solve
      Returns:
      the CTMC with its transitions marked by event
    • getSymbolicSolution

      public SymEngine.CTMCSolution getSymbolicSolution()
      Symbolic stationary solution, always from SolverCTMC.
      Returns:
      the symbolic stationary distribution
    • getSymbolicSolution

      public SymEngine.CTMCSolution getSymbolicSolution(SymEngine engine)
      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 it
      reward - reward rate per state, or null for the distribution alone
      method - "fd" (default) or "symbolic"
      Returns:
      the sensitivity
    • getSensitivity

      Steady-state parameter sensitivity, always from SolverCTMC.
      Parameters:
      param - the parameter and how to set it
      reward - 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 rank
      reward - reward rate per state
      method - "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 rank
      reward - reward rate per state
      Returns:
      the ranked table
    • getCdfFirstPassT

      public SolverCTMC.FirstPassageResult getCdfFirstPassT(Matrix A, Matrix B)
      First-passage-time distribution from state set A to state set B, always from SolverCTMC.
      Parameters:
      A - the starting state set
      B - the target state set
      Returns:
      the first-passage-time distribution
    • getFirstPassTMoments

      public SolverCTMC.FirstPassageMomentsResult getFirstPassTMoments(Matrix A, Matrix B, int nmax)
      First-passage-time moments from state set A to state set B, always from SolverCTMC.
      Parameters:
      A - the starting state set
      B - the target state set
      nmax - the highest moment order
      Returns:
      the first-passage-time moments
    • getFirstPassTMoments

      public SolverCTMC.FirstPassageMomentsResult 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.
      Parameters:
      A - the starting state set
      B - the target state set
      Returns:
      the first-passage-time moments
    • getStruct

      public NetworkStruct getStruct()
      Model structure, as every other solver exposes it.
      Returns:
      the NetworkStruct of the model under analysis
    • listAllMethods

      public String[] 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

      public String[] listValidMethods()
      The method names of listAllMethods() that THIS MODEL can actually run.

      The gate is the one chooseSolverRanked already applies before delegating, asked here of every candidate instead of the first feasible one: a method whose supportsModelMethod refuses the model is not offered, and a family with no method-level gate is judged by its flat feature set through supports(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

      public static String[] metricGroups()
      The measure groups findSolver() 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

      public static String metricGroupOf(String name)
      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

      public static String[] familyMetrics(String family)
      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 family
      method - the unqualified method name
      isStochastic - the solver's own isStochasticMethod verdict
      isProductForm - whether the model has a product-form solution
      isQbdShape - whether the model is one queueing station fed by a Source
      hasCache - whether the model holds a Cache node
      Returns:
      one of the SolverCandidate CLASS_ constants
    • findSolver

      public List<SolverCandidate> 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

      public List<SolverCandidate> findSolver(String metric, boolean showAll)
      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 SolverCandidate for 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 pair
      showAll - 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 model
      metric - a measure group or the accessor that returns it; "" keeps all
      showAll - keep the refused pairs too
      Returns:
      the rows, in family order
    • getFeatureSet

      public static FeatureSet 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

      public String 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:
      isStochastic in class Solver
      Returns:
      true if the (prospective) delegate returns stochastic estimates
    • selectionIntents

      public static String[] selectionIntents()
      Tokens that state what the solution is for, rather than naming an algorithm.
    • familyNames

      public static String[] 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

      public static String[] methodAliasPrefixes(String family)
      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

      public static boolean isMethodAlias(String family, String name, List<String> declared)
      Is name a 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 family
      name - the declared method name under test
      declared - every method name the family declares on this model
      Returns:
      true when the name only respells one of the others
    • familyAlias

      public static String familyAlias(String name)
      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

      public String familyDeclaringMethod(String token)
      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

      public SolverAUTO.AutoToken resolveMethodToken(String token)
      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

      public Object buildFamilySolver(String family, SolverOptions options)
      Instantiate the solver of a method family. options.method already holds the submethod resolved by resolveMethodToken(java.lang.String), so a pinned method reaches the family that runs it.
      Parameters:
      family - the family name
      options - 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:
      runAnalyzer in class Solver
    • supports

      public boolean supports(Network model)
      Description copied from class: Solver
      Checks if this solver supports the given network model. Default implementation returns true; subclasses should override to provide specific feature validation.
      Overrides:
      supports in class Solver
      Parameters:
      model - the network model to check
      Returns:
      true if the model is supported, false otherwise
    • getAvgChainTable

      public NetworkAvgChainTable getAvgChainTable()
      Description copied from class: NetworkSolver
      Returns a table of average station metrics aggregated by job chains.
      Overrides:
      getAvgChainTable in class NetworkSolver
      Returns:
      table containing station metrics organized by chains
    • getAvgSysTable

      public NetworkAvgSysTable getAvgSysTable()
      Description copied from class: NetworkSolver
      Returns a table of average system-level metrics.
      Overrides:
      getAvgSysTable in class NetworkSolver
      Returns:
      table containing system response times and throughputs by chain
    • getAvgNodeTable

      public NetworkAvgNodeTable getAvgNodeTable()
      Description copied from class: NetworkSolver
      Returns a table of average node metrics organized by job classes.
      Overrides:
      getAvgNodeTable in class NetworkSolver
      Returns:
      table containing node-level metrics for each class
    • getAvgTable

      public NetworkAvgTable getAvgTable()
      Description copied from class: NetworkSolver
      Returns a table of average station metrics organized by job classes.
      Overrides:
      getAvgTable in class NetworkSolver
      Returns:
      table containing station-level metrics for each class
    • getAvgFJ

      public FJResult getAvgFJ()
      Fork-join section metrics of the delegate; see NetworkSolver.getAvgFJ.
      Overrides:
      getAvgFJ in class NetworkSolver
      Returns:
      the section metrics; FJResult.isEmpty() when absent
    • getAvgFJTable

      public NetworkAvgFJTable getAvgFJTable()
      Fork-join section table of the delegate; see NetworkSolver.getAvgFJTable.
      Overrides:
      getAvgFJTable in class NetworkSolver
      Returns:
      the fork-join table
    • getAvg

      public SolverResult getAvg()
      Description copied from class: NetworkSolver
      Computes and returns average station metrics at steady-state. This is the main method for obtaining steady-state performance metrics.
      Overrides:
      getAvg in class NetworkSolver
      Returns:
      solver result containing station-level average metrics
    • getAvgChain

      public SolverResult getAvgChain()
      Description copied from class: NetworkSolver
      Returns average station metrics aggregated by job chains.
      Overrides:
      getAvgChain in class NetworkSolver
      Returns:
      solver result with metrics aggregated by chains
    • getAvgSys

      public void getAvgSys()
      Description copied from class: NetworkSolver
      Computes average system-level metrics at steady state. This includes system response times and throughputs aggregated across all chains.
      Overrides:
      getAvgSys in class NetworkSolver
    • getAvgNode

      public SolverResult getAvgNode()
      Description copied from class: NetworkSolver
      Computes average performance metrics at steady-state for all nodes. Aggregates station-level metrics to node-level metrics.
      Overrides:
      getAvgNode in class NetworkSolver
      Returns:
      solver result containing node-level average metrics
    • getAvgArvRChain

      public Matrix getAvgArvRChain()
      Description copied from class: NetworkSolver
      Returns average arrival rates aggregated by job chains.
      Overrides:
      getAvgArvRChain in class NetworkSolver
      Returns:
      matrix of arrival rates [stations x chains]
    • getAvgQLenChain

      public Matrix getAvgQLenChain()
      Description copied from class: NetworkSolver
      Returns average queue lengths aggregated by job chains.
      Overrides:
      getAvgQLenChain in class NetworkSolver
      Returns:
      matrix of queue lengths [stations x chains]
    • getAvgUtilChain

      public Matrix getAvgUtilChain()
      Description copied from class: NetworkSolver
      Returns average server utilizations aggregated by job chains.
      Overrides:
      getAvgUtilChain in class NetworkSolver
      Returns:
      matrix of utilizations [stations x chains]
    • getAvgRespTChain

      public Matrix getAvgRespTChain()
      Description copied from class: NetworkSolver
      Returns average response times aggregated by job chains.
      Overrides:
      getAvgRespTChain in class NetworkSolver
      Returns:
      matrix of response times [stations x chains]
    • getAvgTputChain

      public Matrix getAvgTputChain()
      Description copied from class: NetworkSolver
      Returns average throughputs aggregated by job chains.
      Overrides:
      getAvgTputChain in class NetworkSolver
      Returns:
      matrix of throughputs [stations x chains]
    • getAvgSysRespT

      public Matrix getAvgSysRespT()
      Description copied from class: NetworkSolver
      Returns average system response times at steady state.
      Overrides:
      getAvgSysRespT in class NetworkSolver
      Returns:
      matrix of system response times by chain
    • getAvgSysTput

      public Matrix getAvgSysTput()
      Description copied from class: NetworkSolver
      Returns average system throughputs at steady state.
      Overrides:
      getAvgSysTput in class NetworkSolver
      Returns:
      matrix of system throughputs by chain
    • getTranAvg

      public void getTranAvg()
      Description copied from class: NetworkSolver
      Computes transient average station metrics over the specified time interval. The timespan is defined in the solver options.
      Overrides:
      getTranAvg in class NetworkSolver
    • getTranCdfPassT

      public Ret.DistributionResult getTranCdfPassT()
      Description copied from class: NetworkSolver
      Returns cumulative distribution functions of passage times during transient analysis. Uses default response time handles.
      Overrides:
      getTranCdfPassT in class NetworkSolver
      Returns:
      result containing transient CDFs for passage times
    • getTranCdfRespT

      public Ret.DistributionResult getTranCdfRespT()
      Description copied from class: NetworkSolver
      Returns cumulative distribution functions of response times during transient analysis. Uses default response time handles.
      Overrides:
      getTranCdfRespT in class NetworkSolver
      Returns:
      result containing transient CDFs for response times
    • getTranProb

      public Matrix[] getTranProb(Node node)
    • getTranProbAggr

      public Matrix[] getTranProbAggr(Node node)
    • getTranProbSys

      public Matrix[] getTranProbSys()
    • getTranProbSysAggr

      public Matrix[] getTranProbSysAggr()
    • sample

      public Ret.SampleResult sample(Node node, int numEvents)
    • sampleAggr

      public Ret.SampleResult sampleAggr(Node node, int numEvents)
    • sampleSys

      public Ret.SampleResult sampleSys(int numEvents)
      Description copied from class: NetworkSolver
      Samples joint system state trajectories. This is an abstract method that must be implemented by concrete solver subclasses.
      Overrides:
      sampleSys in class NetworkSolver
      Parameters:
      numEvents - the number of events to sample
      Returns:
      result containing sampled joint system state trajectories
    • sampleSysAggr

      public Ret.SampleResult sampleSysAggr(int numEvents)
      Description copied from class: NetworkSolver
      Samples aggregated joint system state trajectories. This is an abstract method that must be implemented by concrete solver subclasses.
      Overrides:
      sampleSysAggr in class NetworkSolver
      Parameters:
      numEvents - the number of events to sample
      Returns:
      result containing sampled aggregated joint system state trajectories
    • getCdfRespT

      public Ret.DistributionResult getCdfRespT()
      Description copied from class: NetworkSolver
      Returns cumulative distribution functions of response times at steady-state. Uses default response time handles.
      Overrides:
      getCdfRespT in class NetworkSolver
      Returns:
      result containing CDFs for response times [stations x classes]
    • getCdfSysRespT

      public List<Matrix> 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/getCdfSysRespT does.
    • fldSolver

      public SolverFluid fldSolver()
      A SolverFluid over the same model, reusing the fluid candidate when one exists -- the fldSolver() helper of the reference.
    • getCdfPT

      public Ret.DistributionResult getCdfPT()
      Backward-compatible passage-time CDF name, resolved on the fluid family.
    • getCdfAoI

      public Matrix[] getCdfAoI()
      Age-of-Information CDFs, a property of the ODE representation, so fluid-only.
    • getCdfAoI

      public Matrix[] getCdfAoI(Matrix tValues)
      Age-of-Information CDFs on caller-supplied time points, fluid-only.
    • getAvgAoI

      public Map<String,Object> getAvgAoI()
      Mean Age of Information, a property of the ODE representation, so fluid-only.
    • getTranAvgVar

      public Matrix[][] getTranAvgVar()
      Transient queue-length means and variances, fluid-only.
    • getMoments

      public FluidMoments 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

      public List<String> getSymbolicDrift()
      Symbolic drift of the fluid ODEs, fluid-only.
    • getJacobian

      public String[][] getJacobian()
      Symbolic Jacobian of the fluid ODEs, fluid-only.
    • getJacobian

      public SymEngine.FluidODEs getJacobian(boolean equilibria)
      Symbolic Jacobian of the fluid ODEs, fluid-only.
      Parameters:
      equilibria - also solve for the equilibria
      Returns:
      the ODE system with its Jacobian
    • exportODEs

      public String exportODEs()
      Fluid ODE system as LaTeX, fluid-only.
    • exportODEs

      public String exportODEs(String fileName)
      Fluid ODE system as LaTeX written to fileName, fluid-only.
    • exportODEs

      public String exportODEs(String fileName, String notation)
      Fluid ODE system as LaTeX written to fileName in the given notation, fluid-only.
    • ncSolver

      public SolverNC ncSolver()
      The NC candidate, built on demand -- the ncSolver() helper of the reference.
    • getNormalizingConstant

      public SolverNC.NormalizingConstantResult getNormalizingConstant() throws IllegalAccessException
      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 subnetwork
      orders - the busy-period orders
      Returns:
      one mean duration per requested order
    • getAvgBusyPeriod

      public double getAvgBusyPeriod(int[] stations, int order)
      Single-order form of getAvgBusyPeriod(int[], int[]), from the NC family.
    • baSolver

      public SolverBA 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

      public SolverBA.Bounds getBounds()
      Bound interval, from the BA family.
    • getBoundsTable

      public NetworkBoundsTable getBoundsTable()
      Bound interval as a table, from the BA family.
    • getBoundsTable

      public NetworkBoundsTable getBoundsTable(boolean keepDisabled)
      Bound interval as a table, from the BA family.
    • uqSolver

      public SolverUQ uqSolver()
      The UQ delegate over this model: one SolverAUTO per alternative of the Prior, run silently, as the reference's uqSolver() builds it.
    • getPosteriorTable

      public SolverUQ.PosteriorTable getPosteriorTable()
      Posterior table over the uncertain parameters, from the UQ family.
    • getPosteriorDist

      public SolverUQ.EmpiricalCDF getPosteriorDist(String metric, Station station, JobClass jobClass)
      Posterior distribution of one metric at one station and class, from the UQ family.
    • getSelectedSolver

      public Solver 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

      public String 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

      public static String familyOfSolver(Object solver)
      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:
      supportsTransientAnalysis in class Solver
      Returns:
      true if the solver can return transient averages
    • getEnsembleAvg

      public AvgTable getEnsembleAvg()
      Ensemble averages of the LN/ENV delegate.
    • getNumberOfModels

      public int getNumberOfModels()
      Number of submodels (layers or stages) of the decomposing delegate.
    • getSolver

      public NetworkSolver getSolver(int e)
      Solver of submodel e (0-based) of the decomposing delegate.
    • getIteration

      public int getIteration()
      Iterations the decomposing delegate has run.
    • getTranAvgCoupled

      public LNTranAvgResult getTranAvgCoupled()
      Coupled LN transient (all layers co-evolving in model time), from SolverLN.
    • getTranAvgDecoupled

      public LNTranAvgResult 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

      public SolverENV.SamplePathResult getSamplePathTable(List<Object[]> samplePath)
      Transient metrics along a sample path of environment stages, from SolverENV.
    • getStageAvg

      public Object getStageAvg(Object... args)
      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

      public AvgTable getAvgTableLayered()
      The per-element layered table (MATLAB getAvgTableLayered), from the delegate's getLNAvgTable.
    • ensembleAvg

      public AvgTable ensembleAvg()
      Alias for getEnsembleAvg().
    • solver

      public NetworkSolver solver(int e)
      Alias for getSolver(int).
    • iteration

      public int iteration()
      Alias for getIteration().
    • numberOfModels

      public int numberOfModels()
    • avgQLenTable

      public NetworkAvgTable avgQLenTable()
    • avgUtilTable

      public NetworkAvgTable avgUtilTable()
    • avgRespTTable

      public NetworkAvgTable avgRespTTable()
    • avgTputTable

      public NetworkAvgTable avgTputTable()
    • sjrnT

      public Ret.DistributionResult sjrnT()
      Alias for getSjrnT().
    • tranProb

      public Matrix[] tranProb(Node node)
    • tranProbAggr

      public Matrix[] tranProbAggr(Node node)
    • tranProbSys

      public Matrix[] tranProbSys()
      Alias for getTranProbSys().
    • tranProbSysAggr

      public Matrix[] tranProbSysAggr()
    • getAvgReward

      public Map<String,Double> getAvgReward()
      Steady-state rewards, from the first ranked candidate that computes them.
    • getAvgReward

      public double getAvgReward(String rewardName)
      Steady-state value of one reward, from the first ranked candidate that computes it.
    • getTranReward

      public Map<String,double[]> getTranReward()
      Transient rewards, from the first ranked candidate that computes them.
    • getTranReward

      public Map<String,double[]> getTranReward(String rewardName)
      Transient value of one reward, from the first ranked candidate that computes it.
    • getSjrnT

      public Ret.DistributionResult getSjrnT()
      Sojourn-time distribution, from the first ranked candidate that computes it.
    • getSensitivityTable

      public NetworkSensitivityTable getSensitivityTable()
      Sensitivity table, from the ranked candidate rather than computed on AUTO itself.
      Overrides:
      getSensitivityTable in class NetworkSolver
      Returns:
      table of per-class rate sensitivities
      See Also:
    • getSensitivityTable

      public NetworkSensitivityTable getSensitivityTable(String method, double step, String scheme)
      Sensitivity table, from the ranked candidate rather than computed on AUTO itself.
      Overrides:
      getSensitivityTable in class NetworkSolver
      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 quotient
      scheme - "forward" or "central"
      Returns:
      table of per-class rate sensitivities
      See Also:
    • getMomentTable

      public NetworkMomentTable getMomentTable()
      Moment table, from the ranked candidate rather than computed on AUTO itself.
      Overrides:
      getMomentTable in class NetworkSolver
      Returns:
      table of per-class queue-length and response-time moments
      See Also:
    • getMomentTable

      public NetworkMomentTable getMomentTable(int order)
      Moment table, from the ranked candidate rather than computed on AUTO itself.
      Overrides:
      getMomentTable in class NetworkSolver
      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

      public NetworkMomentTable getMomentTable(int[] order)
      Moment table, from the ranked candidate rather than computed on AUTO itself.
      Overrides:
      getMomentTable in class NetworkSolver
      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

      public NetworkMomentTable getMomentTable(int[] order, String method)
      Moment table, from the ranked candidate rather than computed on AUTO itself.
      Overrides:
      getMomentTable in class NetworkSolver
      Parameters:
      order - the set of moment orders to report; each an integer in 1..3
      method - "", "exact" or "momlin"
      Returns:
      table of per-class queue-length and response-time moments
    • getMomentChainTable

      public NetworkMomentChainTable getMomentChainTable()
      Per-chain moment table, from the ranked candidate rather than computed on AUTO itself.
      Overrides:
      getMomentChainTable in class NetworkSolver
      Returns:
      table of per-(Station, Chain) queue-length moments
      See Also:
    • getMomentChainTable

      public NetworkMomentChainTable getMomentChainTable(int order)
      Per-chain moment table, from the ranked candidate rather than computed on AUTO itself.
      Overrides:
      getMomentChainTable in class NetworkSolver
      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

      public NetworkMomentChainTable getMomentChainTable(int[] order)
      Per-chain moment table, from the ranked candidate rather than computed on AUTO itself.
      Overrides:
      getMomentChainTable in class NetworkSolver
      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

      public NetworkMomentStationTable getMomentStationTable()
      Per-station moment table, from the ranked candidate rather than computed on AUTO itself.
      Overrides:
      getMomentStationTable in class NetworkSolver
      Returns:
      table of per-station total queue-length moments
      See Also:
    • getMomentStationTable

      public NetworkMomentStationTable getMomentStationTable(int order)
      Per-station moment table, from the ranked candidate rather than computed on AUTO itself.
      Overrides:
      getMomentStationTable in class NetworkSolver
      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

      public NetworkMomentStationTable getMomentStationTable(int[] order)
      Per-station moment table, from the ranked candidate rather than computed on AUTO itself.
      Overrides:
      getMomentStationTable in class NetworkSolver
      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

      public double getProb(Node node, Matrix state)
    • getProbAggr

      public double getProbAggr(Node node, Matrix state_a)
    • getProb

      public Ret.ProbabilityResult getProb(int node, Matrix state)
      Description copied from class: NetworkSolver
      Returns marginal state probabilities for a specific node and state. This is an abstract method that must be implemented by concrete solver subclasses.
      Overrides:
      getProb in class NetworkSolver
      Parameters:
      node - the node index for which to compute probabilities
      state - the state vector to query (optional, null for all states)
      Returns:
      result containing marginal state probabilities
    • getProb

      public Ret.ProbabilityResult getProb(int node)
      Description copied from class: NetworkSolver
      Returns marginal state probabilities for a specific node (all states). This is an abstract method that must be implemented by concrete solver subclasses.
      Overrides:
      getProb in class NetworkSolver
      Parameters:
      node - the node index for which to compute probabilities
      Returns:
      result containing marginal state probabilities
    • getProbAggr

      public Ret.ProbabilityResult getProbAggr(int node, Matrix state_a)
      Description copied from class: NetworkSolver
      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 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:
      getProbAggr in class NetworkSolver
      Parameters:
      node - the node index for which to compute probabilities
      state_a - per-class job counts, e.g., [2,1] = 2 class-1, 1 class-2
      Returns:
      scalar probability in [0,1]
    • getProbAggr

      public Ret.ProbabilityResult getProbAggr(int node)
      Description copied from class: NetworkSolver
      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 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:
      getProbAggr in class NetworkSolver
      Parameters:
      node - the node index for which to compute probabilities
      Returns:
      scalar probability in [0,1]
    • getProbMarg

      public Ret.ProbabilityResult getProbMarg(int node, int jobclass, Matrix state_m)
      Description copied from class: NetworkSolver
      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 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:
      getProbMarg in class NetworkSolver
      Parameters:
      node - the node index for which to compute probabilities
      jobclass - the job class index for marginalization
      state_m - specific states to query, or null for all
      Returns:
      vector where element n+1 = P(n jobs of this class)
    • getProbMarg

      public Ret.ProbabilityResult getProbMarg(int node, int jobclass)
      Description copied from class: NetworkSolver
      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 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:
      getProbMarg in class NetworkSolver
      Parameters:
      node - the node index for which to compute probabilities
      jobclass - the job class index for marginalization
      Returns:
      vector where element n+1 = P(n jobs of this class)
    • getProbSys

      public Ret.ProbabilityResult getProbSys()
      Description copied from class: NetworkSolver
      Returns joint state probabilities for the entire system. This is an abstract method that must be implemented by concrete solver subclasses.
      Overrides:
      getProbSys in class NetworkSolver
      Returns:
      result containing joint state probabilities
    • getProbSysAggr

      public Ret.ProbabilityResult getProbSysAggr()
      Description copied from class: NetworkSolver
      Returns aggregated joint state probabilities for the entire system. This is an abstract method that must be implemented by concrete solver subclasses.
      Overrides:
      getProbSysAggr in class NetworkSolver
      Returns:
      result containing aggregated joint state probabilities
    • getProbNormConstAggr

      public Ret.ProbabilityResult getProbNormConstAggr()
      Description copied from class: NetworkSolver
      Returns the logarithm of the normalizing constant of state probabilities. This is an abstract method that must be implemented by concrete solver subclasses.
      Overrides:
      getProbNormConstAggr in class NetworkSolver
      Returns:
      result containing the log normalizing constant
    • getAvgQLen

      public Matrix getAvgQLen()
      Get average queue lengths at steady-state
      Overrides:
      getAvgQLen in class NetworkSolver
      Returns:
      matrix of average queue lengths [stations x classes]
    • getAvgUtil

      public Matrix getAvgUtil()
      Get average utilizations at steady-state
      Overrides:
      getAvgUtil in class NetworkSolver
      Returns:
      matrix of average utilizations [stations x classes]
    • getAvgRespT

      public Matrix getAvgRespT()
      Get average response times at steady-state
      Overrides:
      getAvgRespT in class NetworkSolver
      Returns:
      matrix of average response times [stations x classes]
    • getAvgResidT

      public Matrix getAvgResidT()
      Get average residence times at steady-state
      Overrides:
      getAvgResidT in class NetworkSolver
      Returns:
      matrix of average residence times [stations x classes]
    • getAvgWaitT

      public Matrix getAvgWaitT()
      Get average waiting times (queue time excluding service)
      Overrides:
      getAvgWaitT in class NetworkSolver
      Returns:
      matrix of average waiting times [stations x classes]
    • getAvgTput

      public Matrix getAvgTput()
      Get average throughputs at steady-state
      Overrides:
      getAvgTput in class NetworkSolver
      Returns:
      matrix of average throughputs [stations x classes]
    • getAvgArvR

      public Matrix getAvgArvR()
      Get average arrival rates at steady-state
      Overrides:
      getAvgArvR in class NetworkSolver
      Returns:
      matrix of average arrival rates [stations x classes]
    • getAvgQLenTable

      public NetworkAvgTable getAvgQLenTable()
      Get average queue length table
      Overrides:
      getAvgQLenTable in class NetworkSolver
      Returns:
      the per-metric view of the average table
    • getAvgQLenTable

      public NetworkAvgTable getAvgQLenTable(boolean keepDisabled)
      Get average queue length table, keeping all-zero rows when asked
      Overrides:
      getAvgQLenTable in class NetworkSolver
      Parameters:
      keepDisabled - whether to keep the station-class rows with all-zero metrics
      Returns:
      the per-metric view of the average table
    • getAvgUtilTable

      public NetworkAvgTable getAvgUtilTable()
      Get average utilization table
      Overrides:
      getAvgUtilTable in class NetworkSolver
      Returns:
      the per-metric view of the average table
    • getAvgUtilTable

      public NetworkAvgTable getAvgUtilTable(boolean keepDisabled)
      Get average utilization table, keeping all-zero rows when asked
      Overrides:
      getAvgUtilTable in class NetworkSolver
      Parameters:
      keepDisabled - whether to keep the station-class rows with all-zero metrics
      Returns:
      the per-metric view of the average table
    • getAvgRespTTable

      public NetworkAvgTable getAvgRespTTable()
      Get average response time table
      Overrides:
      getAvgRespTTable in class NetworkSolver
      Returns:
      the per-metric view of the average table
    • getAvgRespTTable

      public NetworkAvgTable getAvgRespTTable(boolean keepDisabled)
      Get average response time table, keeping all-zero rows when asked
      Overrides:
      getAvgRespTTable in class NetworkSolver
      Parameters:
      keepDisabled - whether to keep the station-class rows with all-zero metrics
      Returns:
      the per-metric view of the average table
    • getAvgTputTable

      public NetworkAvgTable getAvgTputTable()
      Get average throughput table
      Overrides:
      getAvgTputTable in class NetworkSolver
      Returns:
      the per-metric view of the average table
    • getAvgTputTable

      public NetworkAvgTable getAvgTputTable(boolean keepDisabled)
      Get average throughput table, keeping all-zero rows when asked
      Overrides:
      getAvgTputTable in class NetworkSolver
      Parameters:
      keepDisabled - whether to keep the station-class rows with all-zero metrics
      Returns:
      the per-metric view of the average table
    • getAvgResidTChain

      public Matrix getAvgResidTChain()
      Get average residence time by chain
      Overrides:
      getAvgResidTChain in class NetworkSolver
      Returns:
      matrix of residence times [stations x chains]
    • getAvgNodeQLenChain

      public Matrix getAvgNodeQLenChain()
      Get average node queue length by chain
      Overrides:
      getAvgNodeQLenChain in class NetworkSolver
      Returns:
      matrix of node queue lengths [nodes x chains]
    • getAvgNodeUtilChain

      public Matrix getAvgNodeUtilChain()
      Get average node utilization by chain
      Overrides:
      getAvgNodeUtilChain in class NetworkSolver
      Returns:
      matrix of node utilizations [nodes x chains]
    • getAvgNodeRespTChain

      public Matrix getAvgNodeRespTChain()
      Get average node response time by chain
      Overrides:
      getAvgNodeRespTChain in class NetworkSolver
      Returns:
      matrix of node response times [nodes x chains]
    • getAvgNodeResidTChain

      public Matrix getAvgNodeResidTChain()
      Get average node residence time by chain
      Overrides:
      getAvgNodeResidTChain in class NetworkSolver
      Returns:
      matrix of node residence times [nodes x chains]
    • getAvgNodeTputChain

      public Matrix getAvgNodeTputChain()
      Get average node throughput by chain
      Overrides:
      getAvgNodeTputChain in class NetworkSolver
      Returns:
      matrix of node throughputs [nodes x chains]
    • getAvgNodeArvRChain

      public Matrix getAvgNodeArvRChain()
      Get average node arrival rate by chain
      Overrides:
      getAvgNodeArvRChain in class NetworkSolver
      Returns:
      matrix of node arrival rates [nodes x chains]
    • getCdfPassT

      public Ret.DistributionResult getCdfPassT()
      Get CDF of passage times at steady-state
      Overrides:
      getCdfPassT in class NetworkSolver
      Returns:
      result containing CDFs for passage times
    • getPerctRespT

      public Matrix getPerctRespT(double[] percentiles)
      Get response time percentiles
    • getProbMarg

      public double getProbMarg(Node node, int jobclass, Matrix state_m)
      Get marginalized state probability
    • avgTable

      public NetworkAvgTable avgTable()
      Alias for getAvgTable()
      Overrides:
      avgTable in class NetworkSolver
    • avgSysTable

      public NetworkAvgSysTable avgSysTable()
      Alias for getAvgSysTable()
      Overrides:
      avgSysTable in class NetworkSolver
    • avgNodeTable

      public NetworkAvgNodeTable avgNodeTable()
      Alias for getAvgNodeTable()
      Overrides:
      avgNodeTable in class NetworkSolver
    • avgChainTable

      public NetworkAvgChainTable avgChainTable()
      Alias for getAvgChainTable()
      Overrides:
      avgChainTable in class NetworkSolver
    • avg

      public SolverResult avg()
      Alias for getAvg()
      Overrides:
      avg in class NetworkSolver
    • avgChain

      public SolverResult avgChain()
      Alias for getAvgChain()
      Overrides:
      avgChain in class NetworkSolver
    • avgNode

      public SolverResult avgNode()
      Alias for getAvgNode()
      Overrides:
      avgNode in class NetworkSolver
    • avgQLen

      public Matrix avgQLen()
      Alias for getAvgQLen()
      Overrides:
      avgQLen in class NetworkSolver
    • avgUtil

      public Matrix avgUtil()
      Alias for getAvgUtil()
      Overrides:
      avgUtil in class NetworkSolver
    • avgRespT

      public Matrix avgRespT()
      Alias for getAvgRespT()
      Overrides:
      avgRespT in class NetworkSolver
    • avgResidT

      public Matrix avgResidT()
      Alias for getAvgResidT()
      Overrides:
      avgResidT in class NetworkSolver
    • avgWaitT

      public Matrix avgWaitT()
      Alias for getAvgWaitT()
      Overrides:
      avgWaitT in class NetworkSolver
    • avgTput

      public Matrix avgTput()
      Alias for getAvgTput()
      Overrides:
      avgTput in class NetworkSolver
    • avgArvR

      public Matrix avgArvR()
      Alias for getAvgArvR()
      Overrides:
      avgArvR in class NetworkSolver
    • avgQLenChain

      public Matrix avgQLenChain()
      Alias for getAvgQLenChain()
      Overrides:
      avgQLenChain in class NetworkSolver
    • avgUtilChain

      public Matrix avgUtilChain()
      Alias for getAvgUtilChain()
      Overrides:
      avgUtilChain in class NetworkSolver
    • avgRespTChain

      public Matrix avgRespTChain()
      Alias for getAvgRespTChain()
      Overrides:
      avgRespTChain in class NetworkSolver
    • avgResidTChain

      public Matrix avgResidTChain()
      Alias for getAvgResidTChain()
      Overrides:
      avgResidTChain in class NetworkSolver
    • avgTputChain

      public Matrix avgTputChain()
      Alias for getAvgTputChain()
      Overrides:
      avgTputChain in class NetworkSolver
    • avgArvRChain

      public Matrix avgArvRChain()
      Alias for getAvgArvRChain()
      Overrides:
      avgArvRChain in class NetworkSolver
    • avgSysRespT

      public Matrix avgSysRespT()
      Alias for getAvgSysRespT()
      Overrides:
      avgSysRespT in class NetworkSolver
    • avgSysTput

      public Matrix avgSysTput()
      Alias for getAvgSysTput()
      Overrides:
      avgSysTput in class NetworkSolver
    • cdfRespT

      public Ret.DistributionResult cdfRespT()
      Alias for getCdfRespT()
      Overrides:
      cdfRespT in class NetworkSolver
    • cdfPassT

      public Ret.DistributionResult cdfPassT()
      Alias for getCdfPassT()
      Overrides:
      cdfPassT in class NetworkSolver
    • perctRespT

      public Matrix perctRespT(double[] percentiles)
      Alias for getPerctRespT()
    • prob

      public double prob(Node node, Matrix state)
      Alias for getProb()
    • probAggr

      public double probAggr(Node node, Matrix state_a)
      Alias for getProbAggr()
    • probSys

      public Ret.ProbabilityResult probSys()
      Alias for getProbSys()
      Overrides:
      probSys in class NetworkSolver
    • probSysAggr

      public Ret.ProbabilityResult probSysAggr()
      Alias for getProbSysAggr()
      Overrides:
      probSysAggr in class NetworkSolver
    • probNormConstAggr

      public Ret.ProbabilityResult probNormConstAggr()
      Alias for getProbNormConstAggr()
      Overrides:
      probNormConstAggr in class NetworkSolver
    • probMarg

      public double probMarg(Node node, int jobclass, Matrix state_m)
      Alias for getProbMarg()
    • sample

      public Ret.SampleResult sample(Node node)
      Alias for sample()
    • sampleSys

      public Ret.SampleResult sampleSys()
      Alias for sampleSys()