Package org.oristool.models.gspn
Class GSPNTransient
java.lang.Object
org.oristool.models.gspn.GSPNTransient
public abstract class GSPNTransient
extends Object
implements Engine<PetriNet,Marking,Pair<Map<Marking,Integer>,double[][]>>
Computes transient probabilities for the underlying CTMC of a GSPN.
Immediate events are removed by solving absorption probabilities of immediate components that may include cycles.
Transient probabilities are computed using uniformization.
-
Nested Class Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic GSPNTransient.Builder
builder()
Creates a builder for analysis configurations (with default values).boolean
Checks if the analysis can be applied to the given model.Runs this analysis on a given Petri net from an initial marking.abstract double
epsilon()
Returns the threshold used to decide whether a probability value should be considered equal to0.0
.abstract double
error()
Returns the allowed error in the computation of Poisson probabilities with Fox-Glynn algorithm (for each time point).abstract AnalysisLogger
logger()
Returns the logger used by this analysis.abstract AnalysisMonitor
monitor()
Returns the monitor used by this analysis.abstract Supplier<StopCriterion>
stopOn()
Returns the supplier of local stop criterion instances used by this analysis.abstract double[]
Returns the time points of transient probabilities.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.oristool.models.Engine
canAnalyze
-
Method Details
-
timePoints
public abstract double[] timePoints()Returns the time points of transient probabilities.- Returns:
- target time points
-
error
public abstract double error()Returns the allowed error in the computation of Poisson probabilities with Fox-Glynn algorithm (for each time point).By default, it is equal to
1e-6
.- Returns:
- allowed error in Poisson probabilities
-
epsilon
public abstract double epsilon()Returns the threshold used to decide whether a probability value should be considered equal to0.0
.By default, it is equal to
1e-9
.- Returns:
- the threshold used in comparisons to
0.0
-
stopOn
Returns the supplier of local stop criterion instances used by this analysis. It can be used to avoid the expansion of some state classes, as if their states were absorbing.A stop criterion instance is generated for each run.
By default, an always-false local stop criterion is used.
- Returns:
- the supplier of local stop criterion
-
monitor
Returns the monitor used by this analysis. It is used to stop the analysis early and to notify messages to the user.By default, an always-false, message-discarding monitor is used.
- Returns:
- the monitor used by this analysis
-
logger
Returns the logger used by this analysis. It is used to print progress information.By default, logs are discarded.
- Returns:
- the logger used by this analysis
-
builder
Creates a builder for analysis configurations (with default values).- Returns:
- a builder of
TimedAnalysis
instances.
-
compute
Runs this analysis on a given Petri net from an initial marking.- Specified by:
compute
in interfaceEngine<PetriNet,
Marking, Pair<Map<Marking, Integer>, double[][]>> - Parameters:
pn
- the input Petri netm
- the initial marking- Returns:
- a probability distribution over markings of the Petri net
- Throws:
IllegalArgumentException
- if the analysis is not applicable to the input Petri net
-
canAnalyze
Description copied from interface:Engine
Checks if the analysis can be applied to the given model.Problems are collected in a
ValidationMessageCollector
.
-