Class PartialOrderUtils
- java.lang.Object
-
- org.processmining.earthmoversstochasticconformancechecking.stochasticlanguage.partialorder.PartialOrderUtils
-
public class PartialOrderUtils extends java.lang.ObjectIdea: store the constraints of a partial order in an int array. [0] number of events (e) [1..e] activity of event [e+1..e+e] start index of list of incoming edges [e+e+1..] incoming edge list: events- Author:
- sander
-
-
Constructor Summary
Constructors Constructor Description PartialOrderUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static int[]addEdgeToLastAddedEvent(int[] partialOrder, int eventIndexFrom)Add an edge to the edge with the highest index.static int[]addEvent(int[] partialOrder, int transitionOrActivity)static int[]emptyPartialOrder()static inteventsLeft(int[] partialOrder, java.util.BitSet state)static intgetActivity(int[] partialOrder, int eventIndex)static int[]getATotalOrder(int[] partialOrder)protected static intgetIncomingEdgesNextStartAt(int[] partialOrder, int eventIndex)static intgetIncomingEdgeSourceEventIndex(int[] partialOrder, int eventIndex, int edgeIndex)protected static intgetIncomingEdgesStartAt(int[] partialOrder, int eventIndex)static java.util.BitSetgetNewState(int[] partialOrder)static intgetNumberOfEvents(int[] partialOrder)static intgetNumberOfIncomingEdges(int[] partialOrder, int eventIndex)static intgetTransition(int[] partialOrder, int eventIndex)static booleanhasBeenExecuted(int[] partialOrder, java.util.BitSet state, int eventIndex)static booleanisEnabled(int[] partialOrder, int eventIndex, java.util.BitSet state)static booleanisFullyConcurrent(int[] partialOrder)static booleanisTotalOrder(int[] partialOrder)static booleanisValid(int[] partialOrder)static voidreset(java.util.BitSet state)static java.util.BitSettakeStep(int[] partialOrder, int eventIndex, java.util.BitSet state)Marks the given event as executed (in place)static java.lang.StringtoGraphVizString(int[] partialOrder)Helper method that creates a GraphViz .dot string for the visualization of the partial orderstatic int[]totalOrder2partialOrder(int[] totalOrder)
-
-
-
Method Detail
-
emptyPartialOrder
public static int[] emptyPartialOrder()
-
addEvent
public static int[] addEvent(int[] partialOrder, int transitionOrActivity)- Parameters:
prefix-transitionOrActivity-- Returns:
- a copy of the partial order with one event added with index length; concurrent with all other events.
-
addEdgeToLastAddedEvent
public static int[] addEdgeToLastAddedEvent(int[] partialOrder, int eventIndexFrom)Add an edge to the edge with the highest index.- Parameters:
prefix-eventIndexP-eventIndexT-- Returns:
-
isValid
public static boolean isValid(int[] partialOrder)
-
getNumberOfEvents
public static int getNumberOfEvents(int[] partialOrder)
-
getActivity
public static int getActivity(int[] partialOrder, int eventIndex)
-
getTransition
public static int getTransition(int[] partialOrder, int eventIndex)
-
getIncomingEdgesStartAt
protected static int getIncomingEdgesStartAt(int[] partialOrder, int eventIndex)- Parameters:
partialOrder-eventIndex-- Returns:
- the index in the array at which the list of incoming edges starts for this event
-
getNumberOfIncomingEdges
public static int getNumberOfIncomingEdges(int[] partialOrder, int eventIndex)
-
getIncomingEdgesNextStartAt
protected static int getIncomingEdgesNextStartAt(int[] partialOrder, int eventIndex)
-
getIncomingEdgeSourceEventIndex
public static int getIncomingEdgeSourceEventIndex(int[] partialOrder, int eventIndex, int edgeIndex)
-
getNewState
public static java.util.BitSet getNewState(int[] partialOrder)
-
takeStep
public static java.util.BitSet takeStep(int[] partialOrder, int eventIndex, java.util.BitSet state)Marks the given event as executed (in place)- Parameters:
partialOrder-eventIndex-
-
reset
public static void reset(java.util.BitSet state)
-
isEnabled
public static boolean isEnabled(int[] partialOrder, int eventIndex, java.util.BitSet state)
-
eventsLeft
public static int eventsLeft(int[] partialOrder, java.util.BitSet state)
-
hasBeenExecuted
public static boolean hasBeenExecuted(int[] partialOrder, java.util.BitSet state, int eventIndex)
-
toGraphVizString
public static java.lang.String toGraphVizString(int[] partialOrder)
Helper method that creates a GraphViz .dot string for the visualization of the partial order- Parameters:
partialOrder- Partial order to be visualized- Returns:
-
isTotalOrder
public static boolean isTotalOrder(int[] partialOrder)
- Parameters:
partialOrder-- Returns:
- whether the partial order is totally ordered.
-
isFullyConcurrent
public static boolean isFullyConcurrent(int[] partialOrder)
-
getATotalOrder
public static int[] getATotalOrder(int[] partialOrder)
- Parameters:
partialOrder-- Returns:
- an arbitrary total order that fits the partial order
-
totalOrder2partialOrder
public static int[] totalOrder2partialOrder(int[] totalOrder)
- Parameters:
totalOrder-- Returns:
- a partial order representation of this total order
-
-