Class GSPNTransient

java.lang.Object
org.oristool.models.gspn.GSPNTransient
All Implemented Interfaces:
Engine<PetriNet,Marking,Pair<Map<Marking,Integer>,double[][]>>

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.

  • 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 to 0.0.

      By default, it is equal to 1e-9.

      Returns:
      the threshold used in comparisons to 0.0
    • stopOn

      public abstract Supplier<StopCriterion> 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

      public abstract AnalysisMonitor 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

      public abstract AnalysisLogger 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

      public static GSPNTransient.Builder builder()
      Creates a builder for analysis configurations (with default values).
      Returns:
      a builder of TimedAnalysis instances.
    • compute

      public Pair<Map<Marking,Integer>,double[][]> compute(PetriNet pn, Marking m)
      Runs this analysis on a given Petri net from an initial marking.
      Specified by:
      compute in interface Engine<PetriNet,Marking,Pair<Map<Marking,Integer>,double[][]>>
      Parameters:
      pn - the input Petri net
      m - 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

      public boolean canAnalyze(PetriNet pn, ValidationMessageCollector c)
      Description copied from interface: Engine
      Checks if the analysis can be applied to the given model.

      Problems are collected in a ValidationMessageCollector.

      Specified by:
      canAnalyze in interface Engine<PetriNet,Marking,Pair<Map<Marking,Integer>,double[][]>>
      Parameters:
      pn - input model (such as a Petri net)
      c - collector of error messages
      Returns:
      true if the analysis can be applied to the given model