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
  • Method Details

    • getCandidateSolverNames

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

      public String getSelectedSolverName()
      Get the name of the selected 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
    • 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. This method 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]
    • getProb

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

      public double getProbAggr(Node node, Matrix state_a)
    • 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
    • getAvgUtilTable

      public NetworkAvgTable getAvgUtilTable()
      Get average utilization table
    • getAvgRespTTable

      public NetworkAvgTable getAvgRespTTable()
      Get average response time table
    • getAvgTputTable

      public NetworkAvgTable getAvgTputTable()
      Get average throughput 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()