Class PNUnfoldedSimulator


  • public class PNUnfoldedSimulator
    extends PNSimulator
    Idea: Use one unfolded model for multiple traces. Same semantics, but different log (we need to treat each "lane" in the model as an instance). The lanes are dependent by resource connections.

    There is only one big run of the model emitting all the traces.

    Author:
    Andreas Rogge-Solti
    • Field Detail

      • RESOURCE_SEPARATOR

        public static final java.lang.String RESOURCE_SEPARATOR
        See Also:
        Constant Field Values
    • Constructor Detail

      • PNUnfoldedSimulator

        public PNUnfoldedSimulator()
    • Method Detail

      • simulate

        public org.deckfour.xes.model.XLog simulate​(org.processmining.contexts.uitopia.UIPluginContext context,
                                                    org.processmining.models.graphbased.directed.petrinet.PetrinetGraph petriNet,
                                                    org.processmining.models.semantics.Semantics<org.processmining.models.semantics.petrinet.Marking,​org.processmining.models.graphbased.directed.petrinet.elements.Transition> semantics,
                                                    PNSimulatorConfig config,
                                                    org.processmining.models.semantics.petrinet.Marking initialMarking,
                                                    org.processmining.models.semantics.petrinet.Marking finalMarking)
        Performs a simulation according to a given configuration PNSimulatorConfig
        Overrides:
        simulate in class PNSimulator
        Parameters:
        context - UIPluginContext ProM plugin context
        petriNet - a petri net (preferable with stochastic timing information
        semantics - a Semantics according to which simulation should be performed
        config - PNSimulatorConfig
        initialMarking -
        finalMarking -
        Returns:
      • createSimulatedEvent

        protected org.deckfour.xes.model.XEvent createSimulatedEvent​(org.processmining.models.graphbased.directed.petrinet.elements.Transition transition,
                                                                     org.processmining.models.graphbased.directed.petrinet.PetrinetGraph petriNet,
                                                                     long firingTime,
                                                                     java.lang.String instance)
        Overrides:
        createSimulatedEvent in class PNSimulator
      • getResourceString

        public static java.lang.String getResourceString​(java.util.Set<java.lang.String> resources)
      • getResources

        public static java.lang.String[] getResources​(java.lang.String resourceString)
      • simulateOneTrace

        public java.lang.Object simulateOneTrace​(org.processmining.models.graphbased.directed.petrinet.PetrinetGraph petriNet,
                                                 org.processmining.models.semantics.Semantics<org.processmining.models.semantics.petrinet.Marking,​org.processmining.models.graphbased.directed.petrinet.elements.Transition> semantics,
                                                 PNSimulatorConfig config,
                                                 org.processmining.models.semantics.petrinet.Marking initialMarking,
                                                 long traceStart,
                                                 long constraint,
                                                 int i,
                                                 boolean useTimeConstraint,
                                                 org.processmining.models.semantics.petrinet.Marking finalMarking)
        Performs a simple simulation of the Petri net (mostly used for StochasticNets, but can also simulate a PN without stochastic annotations) See #simulateTraceEnd(PetrinetGraph, Semantics, PNSimulatorConfig, Marking, Date, int, Map, boolean) for an implementation that does not generate costly XIDs required for XES log files.
        Parameters:
        petriNet - PetrinetGraph the model
        semantics - Semantics the semantics
        config - PNSimulatorConfig the configuration PNSimulatorConfig
        initialMarking - Marking the initial Marking
        traceStart - long the date time to start the trace
        constraint - long the date time that all simulated events should be greater than
        i - int trace id
        useTimeConstraint - boolean stores whether created events are constrained to be later than traceStart
        finalMarking - Marking a final marking can be set to terminate the simulation, when it is reached... ignored, if null
        Returns: