Class SolverNC

  • All Implemented Interfaces:

    
    public class SolverNC
    extends NetworkSolver
                        

    Solver for Normalizing Constant (NC) method applied to closed queueing networks.

    SolverNC implements the normalizing constant approach for computing exact performance measures of closed product-form queueing networks. The normalizing constant G(N) represents the partition function that ensures steady-state probabilities sum to one.

    Key NC solver capabilities:

    • Exact normalizing constant computation
    • Convolution algorithm implementation
    • Load-dependent service station support
    • Cache-enabled queueing network analysis
    • Joint and marginal probability computation
    • State probability aggregation methods

    The solver supports various computation methods including standard convolution, tree convolution, and specialized algorithms for cache networks and load-dependent stations. Results include exact performance metrics and state probabilities.

    Since:

    1.0

    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
    • Method Summary

      Modifier and Type Method Description
      static SolverOptions defaultOptions()
      static FeatureSet getFeatureSet() Returns the feature set supported by the NC solver
      Double getProb(Node node, Matrix state)
      Double getProbAggr(Node node, Matrix state_a) Get aggregated probability for a specific node and state
      Double getProbAggr(Node node) Get aggregated probability for a specific node using current state
      Ret.ProbabilityResult getProbNormConstAggr() Get the log normalization constant for aggregated probabilities
      Ret.ProbabilityResult getProbSys() Get system-wide joint probability
      Ret.ProbabilityResult getProbSysAggr() Get aggregated system-wide joint probability
      NetworkStruct getStruct()
      void setStruct(NetworkStruct sn)
      void runAnalyzer() Executes the solver algorithm to analyze the model.
      SolverNC.NormalizingConstantResult getNormalizingConstant() Get the normalizing constant and its logarithm
      Array<String> listValidMethods() List all valid solution methods for this solver
      Object sample(Node node, int numSamples) Sample node state trajectory
      Object sample(Node node) Sample node state trajectory with default number of samples
      boolean supports(Network model) Checks whether the given model is supported by the NC solver
      Matrix getCdfRespT(Array<AvgHandle> R) Get cumulative distribution function of response times at FCFS and delay nodes
      Ret.DistributionResult getCdfRespT() Get cumulative distribution function of response times with default parameters
      • Methods inherited from class jline.solvers.NetworkSolver

        avg, avg, avg, avgArvR, avgArvRChain, avgArvRHandles, avgChain, avgChainTable, avgChainTable, avgChainTable, avgChainTable, avgChainTable, avgChainTable, avgHandles, avgNode, avgNodeArvRChain, avgNodeChain, avgNodeChainTable, avgNodeChainTable, avgNodeChainTable, avgNodeChainTable, avgNodeChainTable, avgNodeChainTable, avgNodeQLenChain, avgNodeResidTChain, avgNodeRespTChain, avgNodeTable, avgNodeTable, avgNodeTable, avgNodeTable, avgNodeTable, avgNodeTable, avgNodeTputChain, avgNodeUtilChain, avgQLen, avgQLenChain, avgQLenHandles, avgResidT, avgResidTChain, avgResidTHandles, avgRespT, avgRespTChain, avgRespTHandles, avgSys, avgSysRespT, avgSysTable, avgSysTable, avgSysTable, avgSysTput, avgTable, avgTable, avgTable, avgTable, avgTable, avgTable, avgTput, avgTputChain, avgTputHandles, avgUtil, avgUtilChain, avgUtilHandles, avgWaitT, cdfPassT, cdfPassT, cdfRespT, cdfRespT, getAllSolvers, getAvg, getAvg, getAvg, getAvgArvR, getAvgArvRChain, getAvgArvRHandles, getAvgChain, getAvgChainTable, getAvgChainTable, getAvgChainTable, getAvgChainTable, getAvgChainTable, getAvgChainTable, getAvgHandles, getAvgNode, getAvgNodeArvRChain, getAvgNodeChain, getAvgNodeChainTable, getAvgNodeChainTable, getAvgNodeChainTable, getAvgNodeChainTable, getAvgNodeChainTable, getAvgNodeChainTable, getAvgNodeQLenChain, getAvgNodeResidTChain, getAvgNodeRespTChain, getAvgNodeTable, getAvgNodeTable, getAvgNodeTable, getAvgNodeTable, getAvgNodeTable, getAvgNodeTable, getAvgNodeTputChain, getAvgNodeUtilChain, getAvgQLen, getAvgQLenChain, getAvgQLenHandles, getAvgResidT, getAvgResidTChain, getAvgResidTHandles, getAvgRespT, getAvgRespTChain, getAvgRespTHandles, getAvgSys, getAvgSys, getAvgSys, getAvgSysRespT, getAvgSysTable, getAvgSysTable, getAvgSysTable, getAvgSysTput, getAvgTable, getAvgTable, getAvgTable, getAvgTable, getAvgTable, getAvgTable, getAvgTput, getAvgTputChain, getAvgTputHandles, getAvgUtil, getAvgUtilChain, getAvgUtilHandles, getAvgWaitT, getCdfPassT, getCdfPassT, getCdfRespT, getModel, getProb, getProb, getProbAggr, getProbAggr, getProbMarg, getProbMarg, getStageTable, getStageTable, getTranAvg, getTranCdfPassT, getTranCdfPassT, getTranCdfRespT, getTranCdfRespT, getTranHandles, hasAvgResults, hasDistribResults, hasTranResults, initHandles, model, print, prob, prob, probAggr, probAggr, probMarg, probMarg, probNormConstAggr, probSys, probSysAggr, runAnalyzerChecks, sample, sampleAggr, sampleSys, sampleSysAggr, setAvgHandles, setAvgResults, setDistribResults, setLang, setModel, setTranAvgResults, setTranHandles, setTranProb, stageTable, tranAvg, tranCdfPassT, tranCdfPassT, tranCdfRespT, tranCdfRespT, tranHandles
      • Methods inherited from class jline.solvers.Solver

        getName, getOptions, getResults, hasResults, isJavaAvailable, isValidOption, listValidOptions, parseOptions, parseOptions, reset, resetRandomGeneratorSeed, setChecks, setOptions
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • getFeatureSet

         static FeatureSet getFeatureSet()

        Returns the feature set supported by the NC solver

        Returns:

        - the feature set supported by the NC solver

      • getProbAggr

         Double getProbAggr(Node node, Matrix state_a)

        Get aggregated probability for a specific node and state

        Parameters:
        node - The node to compute probability for
        state_a - The aggregated state (optional, uses current state if null)
        Returns:

        The aggregated probability value

      • getProbAggr

         Double getProbAggr(Node node)

        Get aggregated probability for a specific node using current state

        Parameters:
        node - The node to compute probability for
        Returns:

        The aggregated probability value

      • runAnalyzer

         void runAnalyzer()

        Executes the solver algorithm to analyze the model. This abstract method must be implemented by concrete solver classes.

      • listValidMethods

         Array<String> listValidMethods()

        List all valid solution methods for this solver

        Returns:

        array of valid method names

      • sample

         Object sample(Node node, int numSamples)

        Sample node state trajectory

        Parameters:
        node - The node to sample
        numSamples - Number of samples to generate
        Returns:

        Sample result containing state trajectory

      • sample

         Object sample(Node node)

        Sample node state trajectory with default number of samples

        Parameters:
        node - The node to sample
        Returns:

        Sample result containing state trajectory

      • supports

         boolean supports(Network model)

        Checks whether the given model is supported by the NC solver

        Parameters:
        model - - the network model
        Returns:

        - true if the model is supported, false otherwise

      • getCdfRespT

         Matrix getCdfRespT(Array<AvgHandle> R)

        Get cumulative distribution function of response times at FCFS and delay nodes

        Parameters:
        R - Optional response time handles (currently unused in this implementation)
        Returns:

        Response time distribution matrix for each node and class

      • getCdfRespT

         Ret.DistributionResult getCdfRespT()

        Get cumulative distribution function of response times with default parameters

        Returns:

        Response time distribution matrix for each node and class