pm4py.algo.discovery.inductive.cuts.loop module#
- class pm4py.algo.discovery.inductive.cuts.loop.LoopCut[source]#
Bases:
Cut[T],ABC,Generic[T]- classmethod holds(obj: T, parameters: Dict[str, Any] | None = None) List[Collection[Any]] | None[source]#
This method finds a loop cut in the dfg. Implementation follows function LoopCut on page 190 of “Robust Process Mining with Guarantees” by Sander J.J. Leemans (ISBN: 978-90-386-4257-4)
Basic Steps: 1. merge all start and end activities in one group (‘do’ group) 2. remove start/end activities from the dfg 3. detect connected components in (undirected representative) of the reduced graph 4. check if each component meets the start/end criteria of the loop cut definition (merge with the ‘do’ group if not) 5. return the cut if at least two groups remain
- class pm4py.algo.discovery.inductive.cuts.loop.LoopCutUVCL[source]#
Bases:
LoopCut[IMDataStructureUVCL]- classmethod project(obj: IMDataStructureUVCL, groups: List[Collection[Any]], parameters: Dict[str, Any] | None = None) List[IMDataStructureUVCL][source]#
Projection of the given data object (Generic type T). Returns a corresponding process tree and the projected sub logs according to the identified groups. A precondition of the project function is that it holds on the object for the given Object
- class pm4py.algo.discovery.inductive.cuts.loop.LoopCutDFG[source]#
Bases:
LoopCut[IMDataStructureDFG]- classmethod project(obj: IMDataStructureUVCL, groups: List[Collection[Any]], parameters: Dict[str, Any] | None = None) List[IMDataStructureDFG][source]#
Projection of the given data object (Generic type T). Returns a corresponding process tree and the projected sub logs according to the identified groups. A precondition of the project function is that it holds on the object for the given Object