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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public classSolverNC.SolverNCMargReturnpublic classSolverNC.SolverNCJointReturnpublic classSolverNC.SolverNCReturnpublic classSolverNC.SolverNCLDReturnpublic classSolverNC.NormalizingConstantResult
-
Field Summary
Fields Modifier and Type Field Description public Networkmodelpublic NetworkStructsnpublic SolverAvgHandlesavgHandlespublic SolverTranHandlestranHandlespublic Modelmodelpublic Stringnamepublic SolverOptionsoptionspublic SolverResultresultpublic booleanenableCheckspublic Randomrandom
-
Method Summary
Modifier and Type Method Description static SolverOptionsdefaultOptions()static FeatureSetgetFeatureSet()Returns the feature set supported by the NC solver DoublegetProb(Node node, Matrix state)DoublegetProbAggr(Node node, Matrix state_a)Get aggregated probability for a specific node and state DoublegetProbAggr(Node node)Get aggregated probability for a specific node using current state Ret.ProbabilityResultgetProbNormConstAggr()Get the log normalization constant for aggregated probabilities Ret.ProbabilityResultgetProbSys()Get system-wide joint probability Ret.ProbabilityResultgetProbSysAggr()Get aggregated system-wide joint probability NetworkStructgetStruct()voidsetStruct(NetworkStruct sn)voidrunAnalyzer()Executes the solver algorithm to analyze the model. SolverNC.NormalizingConstantResultgetNormalizingConstant()Get the normalizing constant and its logarithm Array<String>listValidMethods()List all valid solution methods for this solver Objectsample(Node node, int numSamples)Sample node state trajectory Objectsample(Node node)Sample node state trajectory with default number of samples booleansupports(Network model)Checks whether the given model is supported by the NC solver MatrixgetCdfRespT(Array<AvgHandle> R)Get cumulative distribution function of response times at FCFS and delay nodes Ret.DistributionResultgetCdfRespT()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
-
defaultOptions
static SolverOptions defaultOptions()
-
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 forstate_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
-
getProbNormConstAggr
Ret.ProbabilityResult getProbNormConstAggr()
Get the log normalization constant for aggregated probabilities
- Returns:
The log normalization constant
-
getProbSys
Ret.ProbabilityResult getProbSys()
Get system-wide joint probability
- Returns:
The joint probability value
-
getProbSysAggr
Ret.ProbabilityResult getProbSysAggr()
Get aggregated system-wide joint probability
- Returns:
The aggregated joint probability value
-
getStruct
NetworkStruct getStruct()
-
setStruct
void setStruct(NetworkStruct sn)
-
runAnalyzer
void runAnalyzer()
Executes the solver algorithm to analyze the model. This abstract method must be implemented by concrete solver classes.
-
getNormalizingConstant
SolverNC.NormalizingConstantResult getNormalizingConstant()
Get the normalizing constant and its logarithm
- Returns:
NormalizingConstantResult containing the normalizing constant and its logarithm
-
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 samplenumSamples- 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
-
-
-
-