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 class
SolverNC.SolverNCMargReturn
public class
SolverNC.SolverNCJointReturn
public class
SolverNC.SolverNCReturn
public class
SolverNC.SolverNCLDReturn
public class
SolverNC.NormalizingConstantResult
-
Field Summary
Fields Modifier and Type Field Description public Network
model
public NetworkStruct
sn
public SolverAvgHandles
avgHandles
public SolverTranHandles
tranHandles
public Model
model
public String
name
public SolverOptions
options
public SolverResult
result
public boolean
enableChecks
public Random
random
-
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
-
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
-
-
-
-