pm4py.algo.discovery.inductive.cuts.loop module#

PM4Py – A Process Mining Library for Python Copyright (C) 2026 Process Intelligence Solutions GmbH

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see this software project’s root or visit <https://www.gnu.org/licenses/>.

Website: https://processintelligence.solutions Contact: info@processintelligence.solutions

class pm4py.algo.discovery.inductive.cuts.loop.LoopCut[source]#

Bases: Cut[T], ABC, Generic[T]

classmethod operator(parameters: Dict[str, Any] | None = None) → ProcessTree[source]#
classmethod holds(obj: T, parameters: Dict[str, Any] | None = None) → List[Collection[Any]] | None[source]#

Finds a loop cut in the DFG and returns exactly two groups: - groups[0]: the ‘do’ group (start ∪ end activities plus merged components as per checks) - groups[1]: a single ‘redo’ group obtained by merging all remaining non-empty groups

If no non-empty redo part remains, returns None.

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]#

Split the (compressed) log into one ‘do’ log and N ‘redo’ logs. Traces are segmented into do/redo slices; redo slices are routed to the redo log whose activity set overlaps most with the slice.

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