pm4py.algo.discovery.inductive.variants.im_clean.cuts package
Submodules
pm4py.algo.discovery.inductive.variants.im_clean.cuts.concurrency module
This file is part of PM4Py (More Info: https://pm4py.fit.fraunhofer.de).
PM4Py is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
PM4Py 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 General Public License for more details.
You should have received a copy of the GNU General Public License along with PM4Py. If not, see <https://www.gnu.org/licenses/>.
- pm4py.algo.discovery.inductive.variants.im_clean.cuts.concurrency.detect(dfg, alphabet, start_activities, end_activities, msd=None)[source]
pm4py.algo.discovery.inductive.variants.im_clean.cuts.loop module
This file is part of PM4Py (More Info: https://pm4py.fit.fraunhofer.de).
PM4Py is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
PM4Py 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 General Public License for more details.
You should have received a copy of the GNU General Public License along with PM4Py. If not, see <https://www.gnu.org/licenses/>.
- pm4py.algo.discovery.inductive.variants.im_clean.cuts.loop.detect(dfg: Dict[Tuple[str, str], int], alphabet: Dict[str, int], start_activities: Dict[str, int], end_activities: Dict[str, int]) Optional[List[Set[str]]] [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
- Parameters
dfg – directly follows graph
alphabet – alphabet of the dfg / log
start_activities – multiset of start activities of the dfg / log
end_activities – multiset of end activities of the dfg / log
- Returns
A list of sets of activities, i.e., forming a maximal loop cut
None if no cut is found.
- pm4py.algo.discovery.inductive.variants.im_clean.cuts.loop.project(log: pm4py.objects.log.obj.EventLog, cut: List[Set[str]], activity_key: str) List[pm4py.objects.log.obj.EventLog] [source]
pm4py.algo.discovery.inductive.variants.im_clean.cuts.sequence module
This file is part of PM4Py (More Info: https://pm4py.fit.fraunhofer.de).
PM4Py is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
PM4Py 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 General Public License for more details.
You should have received a copy of the GNU General Public License along with PM4Py. If not, see <https://www.gnu.org/licenses/>.
- pm4py.algo.discovery.inductive.variants.im_clean.cuts.sequence.detect(alphabet, transitive_predecessors, transitive_successors)[source]
This method finds a xor cut in the dfg. Implementation follows function XorCut on page 188 of “Robust Process Mining with Guarantees” by Sander J.J. Leemans (ISBN: 978-90-386-4257-4)
Basic Steps: 1. create a group per activity 2. merge pairwise reachable nodes (based on transitive relations) 3. merge pairwise unreachable nodes (based on transitive relations) 4. sort the groups based on their reachability
- Parameters
alphabet – characters occurring in the dfg
transitive_predecessors – dictionary mapping activities to their (transitive) predecessors, according to the DFG
transitive_successors – dictionary mapping activities to their (transitive) successors, according to the DFG
- Returns
A list of sets of activities, i.e., forming a maximal sequence cut
None if no cut is found.
- pm4py.algo.discovery.inductive.variants.im_clean.cuts.sequence.find_split_point(t, group, start, ignore, activity_key)[source]
- pm4py.algo.discovery.inductive.variants.im_clean.cuts.sequence.project(log, groups, activity_key)[source]
This method projects the log based on a presumed sequence cut and a list of activity groups :Parameters: * log – original log
groups – list of activity sets to be used in projection (activities can only appear in one group)
activity_key – key to use in the event to derive the activity name
- Returns
- Return type
list of corresponding logs according to the sequence cut.
pm4py.algo.discovery.inductive.variants.im_clean.cuts.xor module
This file is part of PM4Py (More Info: https://pm4py.fit.fraunhofer.de).
PM4Py is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
PM4Py 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 General Public License for more details.
You should have received a copy of the GNU General Public License along with PM4Py. If not, see <https://www.gnu.org/licenses/>.
- pm4py.algo.discovery.inductive.variants.im_clean.cuts.xor.detect(dfg: Dict[Tuple[str, str], int], alphabet: Dict[str, int]) Optional[List[Set[str]]] [source]
This method finds a xor cut in the dfg. Implementation follows function XorCut on page 188 of “Robust Process Mining with Guarantees” by Sander J.J. Leemans (ISBN: 978-90-386-4257-4)
Basic Steps: 1.) the dfg is transformed to its undirected equivalent. 2.) we detect the connected components in the graph. 3.) if there are more than one connected components, the cut exists and is non-minimal.
- Parameters
dfg – input directly follows graph
alphabet – alphabet of the dfg
- Returns
A list of sets of activities, i.e., forming a maximal xor cut
None if no cut is found.
Module contents
This file is part of PM4Py (More Info: https://pm4py.fit.fraunhofer.de).
PM4Py is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
PM4Py 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 General Public License for more details.
You should have received a copy of the GNU General Public License along with PM4Py. If not, see <https://www.gnu.org/licenses/>.