public class EfficientStochasticNetSemanticsImpl extends java.lang.Object implements StochasticNetSemantics
Modifier and Type | Field and 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 |
Constructor and Description |
---|
EfficientStochasticNetSemanticsImpl() |
Modifier and Type | Method and 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(org.processmining.models.semantics.petrinet.Marking currentState) |
void |
setCurrentState(short[] currentState) |
protected short[][] transitionMatrix
protected org.processmining.models.graphbased.directed.petrinet.elements.Transition[] transitions
protected org.processmining.models.graphbased.directed.petrinet.elements.Place[] places
protected java.util.Map<org.processmining.models.graphbased.directed.petrinet.elements.Place,java.lang.Short> placePositionInArray
protected java.util.Map<org.processmining.models.graphbased.directed.petrinet.elements.Transition,java.lang.Short> transitionPositionInArray
protected java.util.Map<java.lang.Short,java.util.List<org.processmining.framework.util.Pair<java.lang.Short,java.lang.Short>>> transitionInputs
protected java.util.Map<java.lang.Short,java.util.List<org.processmining.framework.util.Pair<java.lang.Short,java.lang.Short>>> transitionOutputs
protected short[] currentMarking
protected java.util.Map<java.lang.Short,java.util.Set<java.lang.Short>> dependentTransitions
places
array)
all transitions that depend on the place, are stored in this mappublic void initialize(java.util.Collection<org.processmining.models.graphbased.directed.petrinet.elements.Transition> transitions, org.processmining.models.semantics.petrinet.Marking state)
org.processmining.models.semantics.Semantics
initialize
in interface org.processmining.models.semantics.Semantics<org.processmining.models.semantics.petrinet.Marking,org.processmining.models.graphbased.directed.petrinet.elements.Transition>
public java.util.Collection<org.processmining.models.graphbased.directed.petrinet.elements.Transition> getExecutableTransitions()
getExecutableTransitions
in interface org.processmining.models.semantics.Semantics<org.processmining.models.semantics.petrinet.Marking,org.processmining.models.graphbased.directed.petrinet.elements.Transition>
public java.util.Collection<org.processmining.models.graphbased.directed.petrinet.elements.Transition> getEnabledTransitions()
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.Set<java.lang.Short> getTransitionCandidates()
protected java.util.List<org.processmining.models.graphbased.directed.petrinet.elements.Transition> getEnabledTransitionsBySearchingThroughMatrix()
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)
protected java.util.Collection<org.processmining.models.graphbased.directed.petrinet.elements.Transition> getTransitions()
public org.processmining.models.semantics.petrinet.Marking getCurrentState()
getCurrentState
in interface org.processmining.models.semantics.Semantics<org.processmining.models.semantics.petrinet.Marking,org.processmining.models.graphbased.directed.petrinet.elements.Transition>
public short[] getCurrentInternalState()
public void setCurrentState(org.processmining.models.semantics.petrinet.Marking currentState)
setCurrentState
in interface org.processmining.models.semantics.Semantics<org.processmining.models.semantics.petrinet.Marking,org.processmining.models.graphbased.directed.petrinet.elements.Transition>
public void setCurrentState(short[] currentState)
public short getPlaceId(org.processmining.models.graphbased.directed.petrinet.elements.Place p)
public short getTransitionId(org.processmining.models.graphbased.directed.petrinet.elements.Transition t)
public org.processmining.models.graphbased.directed.petrinet.elements.Transition getTransition(short tId)
public org.processmining.models.semantics.petrinet.PetrinetExecutionInformation executeExecutableTransition(org.processmining.models.graphbased.directed.petrinet.elements.Transition toExecute) throws org.processmining.models.semantics.IllegalTransitionException
executeExecutableTransition
in interface org.processmining.models.semantics.Semantics<org.processmining.models.semantics.petrinet.Marking,org.processmining.models.graphbased.directed.petrinet.elements.Transition>
org.processmining.models.semantics.IllegalTransitionException
public java.lang.Object clone()
clone
in class java.lang.Object