Class EfficientStochasticNetSemanticsImpl

  • All Implemented Interfaces:
    java.io.Serializable, StochasticNetSemantics, org.processmining.models.semantics.Semantics<org.processmining.models.semantics.petrinet.Marking,​org.processmining.models.graphbased.directed.petrinet.elements.Transition>
    Direct Known Subclasses:
    EfficientDiscreteStochasticNetSemanticsImpl

    public class EfficientStochasticNetSemanticsImpl
    extends java.lang.Object
    implements StochasticNetSemantics
    Hopefully more efficient implementation of the semantics...
    Author:
    Andreas Rogge-Solti
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected short[] currentMarking  
      protected java.util.Map<java.lang.Short,​java.util.Set<java.lang.Short>> dependentTransitions
      Stores for each place (encoded as position in places array) all transitions that depend on the place, are stored in this map
      protected java.util.Map<org.processmining.models.graphbased.directed.petrinet.elements.Place,​java.lang.Short> placePositionInArray  
      protected org.processmining.models.graphbased.directed.petrinet.elements.Place[] places  
      protected java.util.Map<java.lang.Short,​java.util.List<org.processmining.framework.util.Pair<java.lang.Short,​java.lang.Short>>> transitionInputs  
      protected short[][] transitionMatrix  
      protected java.util.Map<java.lang.Short,​java.util.List<org.processmining.framework.util.Pair<java.lang.Short,​java.lang.Short>>> transitionOutputs  
      protected java.util.Map<org.processmining.models.graphbased.directed.petrinet.elements.Transition,​java.lang.Short> transitionPositionInArray  
      protected org.processmining.models.graphbased.directed.petrinet.elements.Transition[] transitions  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object clone()  
      org.processmining.models.semantics.petrinet.PetrinetExecutionInformation executeExecutableTransition​(org.processmining.models.graphbased.directed.petrinet.elements.Transition toExecute)  
      short[] getCurrentInternalState()  
      org.processmining.models.semantics.petrinet.Marking getCurrentState()  
      java.util.Collection<org.processmining.models.graphbased.directed.petrinet.elements.Transition> getEnabledTransitions()
      Gets all transitions, that are still enabled, even though some immediate transitions can fire first.
      protected java.util.List<org.processmining.models.graphbased.directed.petrinet.elements.Transition> getEnabledTransitionsByOnlyLookingAtPossibleCandidates()  
      protected java.util.List<org.processmining.models.graphbased.directed.petrinet.elements.Transition> getEnabledTransitionsBySearchingThroughHashMaps()  
      protected java.util.List<org.processmining.models.graphbased.directed.petrinet.elements.Transition> getEnabledTransitionsBySearchingThroughMatrix()  
      java.util.Collection<org.processmining.models.graphbased.directed.petrinet.elements.Transition> getExecutableTransitions()
      Overrides default semantics, as only one of the transitions with highest priority can fire
      short getPlaceId​(org.processmining.models.graphbased.directed.petrinet.elements.Place p)  
      org.processmining.models.graphbased.directed.petrinet.elements.Transition getTransition​(short tId)  
      protected java.util.Set<java.lang.Short> getTransitionCandidates()  
      short getTransitionId​(org.processmining.models.graphbased.directed.petrinet.elements.Transition t)  
      protected java.util.Collection<org.processmining.models.graphbased.directed.petrinet.elements.Transition> getTransitions()  
      protected java.util.Collection<org.processmining.models.graphbased.directed.petrinet.elements.Transition> getTransitionsOfHighestPriority​(java.util.Collection<org.processmining.models.graphbased.directed.petrinet.elements.Transition> executableTransitions)  
      void initialize​(java.util.Collection<org.processmining.models.graphbased.directed.petrinet.elements.Transition> transitions, org.processmining.models.semantics.petrinet.Marking state)
      Initializes this semantics.
      void setCurrentState​(short[] currentState)  
      void setCurrentState​(org.processmining.models.semantics.petrinet.Marking currentState)  
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • transitionMatrix

        protected short[][] transitionMatrix
      • transitions

        protected org.processmining.models.graphbased.directed.petrinet.elements.Transition[] transitions
      • places

        protected org.processmining.models.graphbased.directed.petrinet.elements.Place[] places
      • placePositionInArray

        protected java.util.Map<org.processmining.models.graphbased.directed.petrinet.elements.Place,​java.lang.Short> placePositionInArray
      • transitionPositionInArray

        protected java.util.Map<org.processmining.models.graphbased.directed.petrinet.elements.Transition,​java.lang.Short> transitionPositionInArray
      • transitionInputs

        protected java.util.Map<java.lang.Short,​java.util.List<org.processmining.framework.util.Pair<java.lang.Short,​java.lang.Short>>> transitionInputs
      • transitionOutputs

        protected java.util.Map<java.lang.Short,​java.util.List<org.processmining.framework.util.Pair<java.lang.Short,​java.lang.Short>>> transitionOutputs
      • currentMarking

        protected short[] currentMarking
      • dependentTransitions

        protected java.util.Map<java.lang.Short,​java.util.Set<java.lang.Short>> dependentTransitions
        Stores for each place (encoded as position in places array) all transitions that depend on the place, are stored in this map
    • Constructor Detail

      • EfficientStochasticNetSemanticsImpl

        public EfficientStochasticNetSemanticsImpl()
    • Method Detail

      • initialize

        public void initialize​(java.util.Collection<org.processmining.models.graphbased.directed.petrinet.elements.Transition> transitions,
                               org.processmining.models.semantics.petrinet.Marking state)
        Description copied from interface: org.processmining.models.semantics.Semantics
        Initializes this semantics. Note that the set of transitions is considered read only, i.e. no changes can be made to it by a Semantics implementation. However, the initial state is not read only.
        Specified by:
        initialize in interface org.processmining.models.semantics.Semantics<org.processmining.models.semantics.petrinet.Marking,​org.processmining.models.graphbased.directed.petrinet.elements.Transition>
      • getExecutableTransitions

        public java.util.Collection<org.processmining.models.graphbased.directed.petrinet.elements.Transition> getExecutableTransitions()
        Overrides default semantics, as only one of the transitions with highest priority can fire
        Specified by:
        getExecutableTransitions in interface org.processmining.models.semantics.Semantics<org.processmining.models.semantics.petrinet.Marking,​org.processmining.models.graphbased.directed.petrinet.elements.Transition>
      • getEnabledTransitions

        public java.util.Collection<org.processmining.models.graphbased.directed.petrinet.elements.Transition> getEnabledTransitions()
        Gets all transitions, that are still enabled, even though some immediate transitions can fire first.
        Returns:
        all enabled transitions (these do not lose progress in the "enabling memory" policy, even though they can not fire in a vanishing marking...)
      • getEnabledTransitionsByOnlyLookingAtPossibleCandidates

        protected java.util.List<org.processmining.models.graphbased.directed.petrinet.elements.Transition> getEnabledTransitionsByOnlyLookingAtPossibleCandidates()
      • getEnabledTransitionsBySearchingThroughHashMaps

        protected java.util.List<org.processmining.models.graphbased.directed.petrinet.elements.Transition> getEnabledTransitionsBySearchingThroughHashMaps()
      • getTransitionCandidates

        protected java.util.Set<java.lang.Short> getTransitionCandidates()
      • getEnabledTransitionsBySearchingThroughMatrix

        protected java.util.List<org.processmining.models.graphbased.directed.petrinet.elements.Transition> getEnabledTransitionsBySearchingThroughMatrix()
      • getTransitionsOfHighestPriority

        protected java.util.Collection<org.processmining.models.graphbased.directed.petrinet.elements.Transition> getTransitionsOfHighestPriority​(java.util.Collection<org.processmining.models.graphbased.directed.petrinet.elements.Transition> executableTransitions)
      • getTransitions

        protected java.util.Collection<org.processmining.models.graphbased.directed.petrinet.elements.Transition> getTransitions()
      • getCurrentState

        public org.processmining.models.semantics.petrinet.Marking getCurrentState()
        Specified by:
        getCurrentState in interface org.processmining.models.semantics.Semantics<org.processmining.models.semantics.petrinet.Marking,​org.processmining.models.graphbased.directed.petrinet.elements.Transition>
      • getCurrentInternalState

        public short[] getCurrentInternalState()
      • setCurrentState

        public void setCurrentState​(org.processmining.models.semantics.petrinet.Marking currentState)
        Specified by:
        setCurrentState in interface org.processmining.models.semantics.Semantics<org.processmining.models.semantics.petrinet.Marking,​org.processmining.models.graphbased.directed.petrinet.elements.Transition>
      • setCurrentState

        public void setCurrentState​(short[] currentState)
      • getPlaceId

        public short getPlaceId​(org.processmining.models.graphbased.directed.petrinet.elements.Place p)
      • getTransitionId

        public short getTransitionId​(org.processmining.models.graphbased.directed.petrinet.elements.Transition t)
      • getTransition

        public org.processmining.models.graphbased.directed.petrinet.elements.Transition getTransition​(short tId)
      • executeExecutableTransition

        public org.processmining.models.semantics.petrinet.PetrinetExecutionInformation executeExecutableTransition​(org.processmining.models.graphbased.directed.petrinet.elements.Transition toExecute)
                                                                                                             throws org.processmining.models.semantics.IllegalTransitionException
        Specified by:
        executeExecutableTransition in interface org.processmining.models.semantics.Semantics<org.processmining.models.semantics.petrinet.Marking,​org.processmining.models.graphbased.directed.petrinet.elements.Transition>
        Throws:
        org.processmining.models.semantics.IllegalTransitionException
      • clone

        public java.lang.Object clone()
        Overrides:
        clone in class java.lang.Object