org.processmining.analysis.conformance
Class StateSpaceExplorationMethod

java.lang.Object
  extended by org.processmining.analysis.conformance.StateSpaceExplorationMethod
All Implemented Interfaces:
AnalysisMethod

public class StateSpaceExplorationMethod
extends java.lang.Object
implements AnalysisMethod


Constructor Summary
StateSpaceExplorationMethod(PetriNet inputPetriNet)
          Creates the state space analysis method object.
 
Method Summary
 AnalysisResult analyse(AnalysisConfiguration analysisOptions)
          Starts the analysis.
protected  void checkForAlternativeDuplicateTasks(java.util.ArrayList<Transition> path, Transition trans)
          Helper method in order to detect non-alternative duplicate tasks and remove them from the set of duplicate tasks (such that in the end only alternative duplicate tasks remain in that list.
protected  void evaluatePath(java.util.ArrayList<Transition> path)
          Builds up the log event relations for the given execution sequence.
 AnalysisMethodEnum getIdentifier()
          Gets the belonging identifier.
protected  void tracePathsInStateSpace(java.util.ArrayList<Transition> currentPath, StateSpace coverabilityGraph, State currentState, java.util.HashSet<ModelGraphEdge> passedEdges, java.util.HashSet<ModelGraphEdge> blockedEdges)
          Recursive helper method for tracing different execution sequences of tasks in the process model (state space).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StateSpaceExplorationMethod

public StateSpaceExplorationMethod(PetriNet inputPetriNet)
Creates the state space analysis method object. Note that this analysis only depends on the model (and the mapping established between the log and the model) but not on the log.

Parameters:
inputPetriNet - the PetriNet passed to the conformance check plugin
Method Detail

getIdentifier

public AnalysisMethodEnum getIdentifier()
Gets the belonging identifier. In order to implement a new analysis method one has to extend the AnalysisMethodEnum class by another nominal value denominating this kind of analysis method.

Specified by:
getIdentifier in interface AnalysisMethod
Returns:
the STATE_SPACE

analyse

public AnalysisResult analyse(AnalysisConfiguration analysisOptions)
Description copied from interface: AnalysisMethod
Starts the analysis.

Specified by:
analyse in interface AnalysisMethod
Parameters:
analysisOptions - the given analysis configuration determining which parts of the analysis have been chosen by the user (can be null if the full analysis should be carried out)
Returns:
the corresponding AnalysisResult object

tracePathsInStateSpace

protected void tracePathsInStateSpace(java.util.ArrayList<Transition> currentPath,
                                      StateSpace coverabilityGraph,
                                      State currentState,
                                      java.util.HashSet<ModelGraphEdge> passedEdges,
                                      java.util.HashSet<ModelGraphEdge> blockedEdges)
                               throws java.lang.Exception
Recursive helper method for tracing different execution sequences of tasks in the process model (state space).
The purpose is an exhaustive exploration of the state space (without being lost in infinite cycles) and Measurement steps can be injected.

Parameters:
currentPath - the firing sequence traced so far
coverabilityGraph - the state space to traverse
currentState - the current state of the traversal
passedEdges - contains the set of edges that were already followed (in order to prevent infinite cycles)
blockedEdges - contains the set of edges that should not be followed anymore because already were followed twice (in order to prevent infinite cycles)
Throws:
if - analysis was aborted by user while traversal
java.lang.Exception

evaluatePath

protected void evaluatePath(java.util.ArrayList<Transition> path)
Builds up the log event relations for the given execution sequence. Also updates the global relations at the analysis result object.

Parameters:
path - the firing sequence derived from the process model

checkForAlternativeDuplicateTasks

protected void checkForAlternativeDuplicateTasks(java.util.ArrayList<Transition> path,
                                                 Transition trans)
Helper method in order to detect non-alternative duplicate tasks and remove them from the set of duplicate tasks (such that in the end only alternative duplicate tasks remain in that list.

Parameters:
path - the whole model execution path
trans - the transition currently being checked