Package jline.solvers.nc
Class SolverNC
java.lang.Object
jline.solvers.Solver
jline.solvers.NetworkSolver
jline.solvers.nc.SolverNC
- Direct Known Subclasses:
NC
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
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic classstatic classstatic classstatic class -
Field Summary
Fields inherited from class jline.solvers.NetworkSolver
avgHandles, model, sn, tranHandles -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic SolverOptionsGet cumulative distribution function of response times with default parametersgetCdfRespT(AvgHandle... R) Get cumulative distribution function of response times at FCFS and delay nodesstatic FeatureSetReturns the feature set supported by the NC solverGet the normalizing constant and its logarithmgetProbAggr(Node node) Get aggregated probability for a specific node using current stategetProbAggr(Node node, Matrix state_a) Get aggregated probability for a specific node and stategetProbMarg(Node node) Get marginal queue-length probability distribution at a node.Get the log normalization constant for aggregated probabilitiesGet system-wide joint probabilityGet aggregated system-wide joint probabilityString[]List all valid solution methods for this solvermeOpen()Maximum Entropy algorithm for Open Queueing Networks.meOpen(MeOqnOptions meOptions) Maximum Entropy algorithm for Open Queueing Networks with custom options.voidExecutes the solver algorithm to analyze the model.Sample node state trajectory with default number of samplesSample node state trajectoryvoidbooleanChecks whether the given model is supported by the NC solverstatic booleansupportsModel(Network model) Static method to check whether the given model is supported by the NC solver.Methods inherited from class jline.solvers.NetworkSolver
aCT, aCT, aCT, aCT, aCT, aCT, aNCT, aNCT, aNCT, aNCT, aNCT, aNCT, aNT, aNT, aNT, aNT, aNT, aNT, aST, aST, aST, aT, aT, aT, aT, aT, aT, avg, avg, avg, avgArvR, avgArvRChain, avgArvRHandles, avgChain, avgChainT, avgChainT, avgChainT, avgChainT, avgChainT, avgChainT, avgChainTable, avgChainTable, avgChainTable, avgChainTable, avgChainTable, avgChainTable, avgHandles, avgNode, avgNodeArvRChain, avgNodeChain, avgNodeChainT, avgNodeChainT, avgNodeChainT, avgNodeChainT, avgNodeChainT, avgNodeChainT, avgNodeChainTable, avgNodeChainTable, avgNodeChainTable, avgNodeChainTable, avgNodeChainTable, avgNodeChainTable, avgNodeQLenChain, avgNodeResidTChain, avgNodeRespTChain, avgNodeT, avgNodeT, avgNodeT, avgNodeT, avgNodeT, avgNodeT, avgNodeTable, avgNodeTable, avgNodeTable, avgNodeTable, avgNodeTable, avgNodeTable, avgNodeTputChain, avgNodeUtilChain, avgQLen, avgQLenChain, avgQLenHandles, avgResidT, avgResidTChain, avgResidTHandles, avgRespT, avgRespTChain, avgRespTHandles, avgSys, avgSysRespT, avgSysT, avgSysT, avgSysT, avgSysTable, avgSysTable, avgSysTable, avgSysTput, avgT, avgT, avgT, avgT, avgT, avgT, avgTable, avgTable, avgTable, avgTable, avgTable, avgTable, avgTput, avgTputChain, avgTputHandles, avgUtil, avgUtilChain, avgUtilHandles, avgWaitT, cdfPassT, cdfPassT, cdfRespT, cdfRespT, chainAvgT, chainAvgT, chainAvgT, chainAvgT, chainAvgT, chainAvgT, 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, getAvgT, getAvgT, getAvgT, getAvgT, getAvgT, getAvgT, getAvgTable, getAvgTable, getAvgTable, getAvgTable, getAvgTable, getAvgTable, getAvgTput, getAvgTputChain, getAvgTputHandles, getAvgUtil, getAvgUtilChain, getAvgUtilHandles, getAvgWaitT, getCdfPassT, getCdfPassT, getCdfRespT, getChainAvgT, getChainAvgT, getChainAvgT, getChainAvgT, getChainAvgT, getChainAvgT, getDeadlineTable, getModel, getNodeAvgT, getNodeAvgT, getNodeAvgT, getNodeAvgT, getNodeAvgT, getNodeAvgT, getNodeChainAvgT, getNodeChainAvgT, getNodeChainAvgT, getNodeChainAvgT, getNodeChainAvgT, getNodeChainAvgT, getProb, getProb, getProbAggr, getProbAggr, getProbMarg, getProbMarg, getStageT, getStageT, getStageTable, getStageTable, getSysAvgT, getSysAvgT, getSysAvgT, getTranAvg, getTranCdfPassT, getTranCdfPassT, getTranCdfRespT, getTranCdfRespT, getTranHandles, hasAvgResults, hasDistribResults, hasTranResults, initHandles, model, nodeAvgT, nodeAvgT, nodeAvgT, nodeAvgT, nodeAvgT, nodeAvgT, nodeChainAvgT, nodeChainAvgT, nodeChainAvgT, nodeChainAvgT, nodeChainAvgT, nodeChainAvgT, print, prob, prob, probAggr, probAggr, probMarg, probMarg, probNormConstAggr, probSys, probSysAggr, runAnalyzerChecks, sample, sampleAggr, sampleSys, sampleSysAggr, setAvgHandles, setAvgResults, setDistribResults, setLang, setModel, setTranAvgResults, setTranHandles, setTranProb, stageT, stageTable, sysAvgT, sysAvgT, sysAvgT, tranAvg, tranCdfPassT, tranCdfPassT, tranCdfRespT, tranCdfRespT, tranHandlesMethods inherited from class jline.solvers.Solver
getName, getOptions, getResults, hasResults, isJavaAvailable, isValidOption, listValidOptions, parseOptions, parseOptions, reset, resetRandomGeneratorSeed, setChecks, setOptions
-
Constructor Details
-
SolverNC
-
SolverNC
-
SolverNC
-
SolverNC
-
-
Method Details
-
defaultOptions
-
getFeatureSet
Returns the feature set supported by the NC solver- Returns:
- - the feature set supported by the NC solver
-
getProb
-
getProbAggr
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
Get aggregated probability for a specific node using current state- Parameters:
node- The node to compute probability for- Returns:
- The aggregated probability value
-
getProbMarg
Get marginal queue-length probability distribution at a node. Returns P(n total jobs) for n=0,1,...,N, summing over all class combinations. When method is "comom", uses pfqn_procomom directly for efficiency. Otherwise falls back to enumeration via getProbAggr.- Parameters:
node- The node to compute marginal probability for- Returns:
- Matrix of marginal probabilities where element j = P(j total jobs at node)
-
getProbNormConstAggr
Get the log normalization constant for aggregated probabilities- Overrides:
getProbNormConstAggrin classNetworkSolver- Returns:
- The log normalization constant
- Throws:
IllegalAccessException- if analysis fails
-
getProbSys
Get system-wide joint probability- Overrides:
getProbSysin classNetworkSolver- Returns:
- The joint probability value
-
getProbSysAggr
Get aggregated system-wide joint probability- Overrides:
getProbSysAggrin classNetworkSolver- Returns:
- The aggregated joint probability value
-
getStruct
-
setStruct
-
runAnalyzer
Description copied from class:SolverExecutes the solver algorithm to analyze the model. This abstract method must be implemented by concrete solver classes.- Specified by:
runAnalyzerin classSolver- Throws:
IllegalAccessException- if access to required resources is denied
-
getNormalizingConstant
Get the normalizing constant and its logarithm- Returns:
- NormalizingConstantResult containing the normalizing constant and its logarithm
- Throws:
IllegalAccessException- if analysis fails
-
listValidMethods
List all valid solution methods for this solver- Returns:
- array of valid method names
-
meOpen
Maximum Entropy algorithm for Open Queueing Networks. Applies the ME algorithm from Kouvatsos (1994) to the model. Only supports open queueing networks (no closed classes).- Returns:
- NCResult containing ME algorithm results
-
meOpen
Maximum Entropy algorithm for Open Queueing Networks with custom options. Applies the ME algorithm from Kouvatsos (1994) to the model. Only supports open queueing networks (no closed classes).- Parameters:
meOptions- Options for the ME algorithm- Returns:
- NCResult containing ME algorithm results
-
sample
Sample node state trajectory- Parameters:
node- The node to samplenumEvents- Number of samples to generate- Returns:
- Sample result containing state trajectory
-
sample
Sample node state trajectory with default number of samples- Parameters:
node- The node to sample- Returns:
- Sample result containing state trajectory
-
supports
Checks whether the given model is supported by the NC solver -
supportsModel
Static method to check whether the given model is supported by the NC solver. This allows checking support without creating a solver instance.- Parameters:
model- - the network model- Returns:
- - true if the model is supported, false otherwise
-
getCdfRespT
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
Get cumulative distribution function of response times with default parameters- Overrides:
getCdfRespTin classNetworkSolver- Returns:
- Response time distribution matrix for each node and class
-