Class EfficientStochasticNetSemanticsImpl
- java.lang.Object
-
- org.processmining.models.semantics.petrinet.impl.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[]currentMarkingprotected java.util.Map<java.lang.Short,java.util.Set<java.lang.Short>>dependentTransitionsStores for each place (encoded as position inplacesarray) all transitions that depend on the place, are stored in this mapprotected java.util.Map<org.processmining.models.graphbased.directed.petrinet.elements.Place,java.lang.Short>placePositionInArrayprotected org.processmining.models.graphbased.directed.petrinet.elements.Place[]placesprotected java.util.Map<java.lang.Short,java.util.List<org.processmining.framework.util.Pair<java.lang.Short,java.lang.Short>>>transitionInputsprotected short[][]transitionMatrixprotected java.util.Map<java.lang.Short,java.util.List<org.processmining.framework.util.Pair<java.lang.Short,java.lang.Short>>>transitionOutputsprotected java.util.Map<org.processmining.models.graphbased.directed.petrinet.elements.Transition,java.lang.Short>transitionPositionInArrayprotected org.processmining.models.graphbased.directed.petrinet.elements.Transition[]transitions
-
Constructor Summary
Constructors Constructor Description EfficientStochasticNetSemanticsImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Objectclone()org.processmining.models.semantics.petrinet.PetrinetExecutionInformationexecuteExecutableTransition(org.processmining.models.graphbased.directed.petrinet.elements.Transition toExecute)short[]getCurrentInternalState()org.processmining.models.semantics.petrinet.MarkinggetCurrentState()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 fireshortgetPlaceId(org.processmining.models.graphbased.directed.petrinet.elements.Place p)org.processmining.models.graphbased.directed.petrinet.elements.TransitiongetTransition(short tId)protected java.util.Set<java.lang.Short>getTransitionCandidates()shortgetTransitionId(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)voidinitialize(java.util.Collection<org.processmining.models.graphbased.directed.petrinet.elements.Transition> transitions, org.processmining.models.semantics.petrinet.Marking state)Initializes this semantics.voidsetCurrentState(short[] currentState)voidsetCurrentState(org.processmining.models.semantics.petrinet.Marking currentState)
-
-
-
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 inplacesarray) all transitions that depend on the place, are stored in this map
-
-
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.SemanticsInitializes this semantics. Note that the set of transitions is considered read only, i.e. no changes can be made to it by a Semanticsimplementation. However, the initial state is not read only.- Specified by:
initializein interfaceorg.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:
getExecutableTransitionsin interfaceorg.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:
getCurrentStatein interfaceorg.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:
setCurrentStatein interfaceorg.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:
executeExecutableTransitionin interfaceorg.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:
clonein classjava.lang.Object
-
-