Package jline.solvers.jmt
Class SolverJMT
java.lang.Object
jline.solvers.Solver
jline.solvers.NetworkSolver
jline.solvers.jmt.SolverJMT
- Direct Known Subclasses:
JMT
Solver interface to the Java Modelling Tools (JMT) simulation engine.
SolverJMT provides integration with the JMT discrete-event simulation toolkit for analyzing queueing networks through simulation. JMT offers powerful simulation capabilities for complex network topologies and general service distributions that may not be analytically tractable.
Key JMT solver capabilities:
- Discrete-event simulation via JMT engine
- Complex network topology support (fork-join, finite capacity, etc.)
- General service and interarrival time distributions
- Statistical analysis with confidence intervals
- Transient and steady-state performance metrics
- Model export to JMT JSIMG format
Requirements: This solver requires JMT.jar to be available in the classpath. The solver can operate with or without the external JMT GUI application installed.
- Since:
- 1.0
- See Also:
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsFields inherited from class jline.solvers.NetworkSolver
avgHandles, model, sn, tranHandles -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic SolverOptionsComputes average performance metrics at steady-state for all nodes.Returns cumulative distribution functions of response times at steady-state.getCdfRespT(AvgHandle RH) Returns cumulative distribution functions of response times at steady-state.static FeatureSetlonglongdoubledoublegetProbAggr(Node node) doublegetProbAggr(Node node, Matrix state_a) Returns the logarithm of the normalizing constant of state probabilities.Gets probability of the current system state in aggregated form.Returns the results from the most recent solver execution.longgetSeed()doubledoublelongvoidComputes transient average station metrics over the specified time interval.Returns cumulative distribution functions of passage times during transient analysis.Returns cumulative distribution functions of passage times during transient analysis.Returns cumulative distribution functions of response times during transient analysis.Returns cumulative distribution functions of response times during transient analysis.getTranProbAggr(Node node) Gets transient probability for a specific node's aggregated state.Matrix[][]Returns transient queue length results from the last getTranAvg() call.Matrix[][]Returns transient throughput results from the last getTranAvg() call.Matrix[][]Returns transient utilization results from the last getTranAvg() call.protected booleanChecks if the solver has computed steady-state average metrics.voidvoidvoidjsimgView(String jmtPath, SolverOptions options) voidjsimgView(SolverOptions options) voidvoidvoidjsimwView(String jmtPath, SolverOptions options) listValidMethods(Network model) doubleWrites queueing network model to JMT JSIMG format.QN2JSIMG(NetworkStruct sn, String outputFileName) Writes queueing network model to JMT JSIMG format.voidExecutes the solver algorithm to analyze the model.sampleAggr(Node node) sampleAggr(Node node, int numEvents) sampleAggr(Node node, int numEvents, boolean markActivePassive) sampleSysAggr(long numEvents) sampleSysAggr(long numEvents, boolean markActivePassive) voidsetFileName(String fileName) voidsetFilePath(String filePath) voidsetJmtJarPath(String path) voidsetMaxEvents(long maxEvents) voidsetMaxSamples(long maxSamples) voidsetMaxSimulatedTime(double maxSimulatedTime) voidsetSeed(int seed) voidsetSimConfInt(double simConfInt) voidsetSimMaxRelErr(double simMaxRelErr) voidsetSimulationTimeoutSeconds(long timeoutSeconds) booleanChecks if this solver supports the given network model.static voidviewModel(String jmtPath, String filename, SolverJMT.ViewMode viewMode) static voidviewModel(String jmtPath, String filename, SolverJMT.ViewMode viewMode, VerboseLevel verboseLevel) static voidviewModel(String filename, SolverJMT.ViewMode viewMode) static StringwriteJMVA(NetworkStruct sn, String outputFileName, SolverOptions options) writeJSIM(NetworkStruct sn, String outputFileName) 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, 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, 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, getProbSys, getStageT, getStageT, getStageTable, getStageTable, getSysAvgT, getSysAvgT, getSysAvgT, getTranHandles, 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, hasResults, isJavaAvailable, isValidOption, listValidOptions, parseOptions, parseOptions, reset, resetRandomGeneratorSeed, setChecks, setOptions
-
Field Details
-
FILE_FORMAT
- See Also:
-
JSIMG_PATH
- See Also:
-
XSI_NO_NAMESPACE_SCHEMA_LOCATION
- See Also:
-
-
Constructor Details
-
SolverJMT
-
SolverJMT
-
SolverJMT
-
SolverJMT
-
SolverJMT
-
-
Method Details
-
defaultOptions
-
getFeatureSet
-
viewModel
-
viewModel
public static void viewModel(String jmtPath, String filename, SolverJMT.ViewMode viewMode, VerboseLevel verboseLevel) -
viewModel
-
writeJMVA
-
getCdfRespT
Description copied from class:NetworkSolverReturns cumulative distribution functions of response times at steady-state. Uses default response time handles.- Overrides:
getCdfRespTin classNetworkSolver- Returns:
- result containing CDFs for response times [stations x classes]
-
getCdfRespT
Description copied from class:NetworkSolverReturns cumulative distribution functions of response times at steady-state. Uses an exponential approximation based on average response times.- Overrides:
getCdfRespTin classNetworkSolver- Parameters:
RH- response time handles (optional)- Returns:
- result containing CDFs for response times [stations x classes]
-
getFileName
-
setFileName
-
getFilePath
-
setFilePath
-
getJMVATempPath
-
getJSIMTempPath
-
getJmtJarPath
-
setJmtJarPath
-
getMaxEvents
public long getMaxEvents() -
setMaxEvents
public void setMaxEvents(long maxEvents) -
getMaxSamples
public long getMaxSamples() -
setMaxSamples
public void setMaxSamples(long maxSamples) -
getMaxSimulatedTime
public double getMaxSimulatedTime() -
setMaxSimulatedTime
public void setMaxSimulatedTime(double maxSimulatedTime) -
getSimulationTimeoutSeconds
public long getSimulationTimeoutSeconds() -
setSimulationTimeoutSeconds
public void setSimulationTimeoutSeconds(long timeoutSeconds) -
getProbAggr
-
getProbAggr
-
getProbNormConstAggr
Description copied from class:NetworkSolverReturns the logarithm of the normalizing constant of state probabilities. This is an abstract method that must be implemented by concrete solver subclasses.- Overrides:
getProbNormConstAggrin classNetworkSolver- Returns:
- result containing the log normalizing constant
-
getResults
Description copied from class:SolverReturns the results from the most recent solver execution.- Overrides:
getResultsin classSolver- Returns:
- the solver results
-
getResultsJMVA
-
getResultsJSIM
-
getAvgNode
Computes average performance metrics at steady-state for all nodes. This method overrides NetworkSolver.getAvgNode() to use JMT simulation values for cache node throughputs and arrival rates instead of computing them from routing probabilities.- Overrides:
getAvgNodein classNetworkSolver- Returns:
- solver result containing node-level average metrics
-
getSeed
public long getSeed() -
setSeed
public void setSeed(int seed) -
getSimConfInt
public double getSimConfInt() -
setSimConfInt
public void setSimConfInt(double simConfInt) -
getSimMaxRelErr
public double getSimMaxRelErr() -
setSimMaxRelErr
public void setSimMaxRelErr(double simMaxRelErr) -
getStruct
-
getTranCdfPassT
Description copied from class:NetworkSolverReturns cumulative distribution functions of passage times during transient analysis. Uses default response time handles.- Overrides:
getTranCdfPassTin classNetworkSolver- Returns:
- result containing transient CDFs for passage times
-
getTranCdfPassT
Description copied from class:NetworkSolverReturns cumulative distribution functions of passage times during transient analysis. This is an abstract method that must be implemented by concrete solver subclasses.- Overrides:
getTranCdfPassTin classNetworkSolver- Parameters:
R- response time handles (optional)- Returns:
- result containing transient CDFs for passage times
-
getTranCdfRespT
Description copied from class:NetworkSolverReturns cumulative distribution functions of response times during transient analysis. Uses default response time handles.- Overrides:
getTranCdfRespTin classNetworkSolver- Returns:
- result containing transient CDFs for response times
-
getTranCdfRespT
Description copied from class:NetworkSolverReturns cumulative distribution functions of response times during transient analysis. This is an abstract method that must be implemented by concrete solver subclasses.- Overrides:
getTranCdfRespTin classNetworkSolver- Parameters:
R- response time handles (optional)- Returns:
- result containing transient CDFs for response times
-
getTranAvg
public void getTranAvg()Computes transient average station metrics over the specified time interval. This method overrides NetworkSolver.getTranAvg() to provide JMT-specific transient analysis.- Overrides:
getTranAvgin classNetworkSolver
-
getTranQLen
Returns transient queue length results from the last getTranAvg() call.- Returns:
- Matrix array with transient queue length data [stations x classes]
-
getTranUtil
Returns transient utilization results from the last getTranAvg() call.- Returns:
- Matrix array with transient utilization data [stations x classes]
-
getTranTput
Returns transient throughput results from the last getTranAvg() call.- Returns:
- Matrix array with transient throughput data [stations x classes]
-
hasAvgResults
protected boolean hasAvgResults()Description copied from class:NetworkSolverChecks if the solver has computed steady-state average metrics.- Overrides:
hasAvgResultsin classNetworkSolver- Returns:
- true if steady-state results are available, false otherwise
-
jsimgView
public void jsimgView() -
jsimgView
-
jsimgView
-
jsimgView
-
jsimwView
-
jsimwView
-
jsimwView
- Throws:
ParserConfigurationException
-
listValidMethods
-
listValidMethods
-
probSysStateAggr
public double probSysStateAggr() -
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:
ParserConfigurationException- if XML parsing configuration fails
-
sampleAggr
public Ret.SampleResult sampleAggr(Node node, int numEvents, boolean markActivePassive) throws IOException - Throws:
IOException
-
sampleAggr
- Throws:
IOException
-
sampleAggr
- Throws:
IOException
-
sampleSysAggr
-
sampleSysAggr
-
sampleSysAggr
-
getTranProbAggr
Gets transient probability for a specific node's aggregated state. Currently not fully implemented - returns empty result.- Parameters:
node- The node of interest- Returns:
- TransientProbabilityResult containing time points and probabilities
-
getProbSysAggr
Gets probability of the current system state in aggregated form. Uses simulation sampling to estimate the probability.- Overrides:
getProbSysAggrin classNetworkSolver- Returns:
- Probability of the current system state
-
supports
Description copied from class:SolverChecks if this solver supports the given network model. Default implementation returns true; subclasses should override to provide specific feature validation. -
writeJSIM
public String writeJSIM(NetworkStruct sn, String outputFileName) throws ParserConfigurationException - Throws:
ParserConfigurationException
-
writeJSIM
- Throws:
ParserConfigurationException
-
QN2JSIMG
Writes queueing network model to JMT JSIMG format. Delegates to the standalone QN2JSIMG class in the io package.- Parameters:
sn- the network structureoutputFileName- the output file name- Returns:
- the path to the JSIM file
- Throws:
ParserConfigurationException- if XML parsing fails
-
QN2JSIMG
Writes queueing network model to JMT JSIMG format. Delegates to the standalone QN2JSIMG class in the io package.- Parameters:
sn- the network structure- Returns:
- the path to the JSIM file
- Throws:
ParserConfigurationException- if XML parsing fails
-