pm4py.algo.conformance.alignments.decomposed.variants package#

PM4Py – A Process Mining Library for Python

Copyright (C) 2024 Process Intelligence Solutions UG (haftungsbeschränkt)

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

Submodules#

pm4py.algo.conformance.alignments.decomposed.variants.recompos_maximal module#

PM4Py – A Process Mining Library for Python

Copyright (C) 2024 Process Intelligence Solutions UG (haftungsbeschränkt)

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.conformance.alignments.decomposed.variants.recompos_maximal.Parameters(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Bases: Enum

ACTIVITY_KEY = 'pm4py:param:activity_key'#
BEST_WORST_COST = 'best_worst_cost'#
PARAM_TRACE_COST_FUNCTION = 'trace_cost_function'#
ICACHE = 'icache'#
MCACHE = 'mcache'#
PARAM_THRESHOLD_BORDER_AGREEMENT = 'thresh_border_agreement'#
PARAMETER_VARIANT_DELIMITER = 'variant_delimiter'#
PARAM_MODEL_COST_FUNCTION = 'model_cost_function'#
PARAM_SYNC_COST_FUNCTION = 'sync_cost_function'#
PARAM_TRACE_NET_COSTS = 'trace_net_costs'#
PARAM_MAX_ALIGN_TIME = 'max_align_time'#
PARAM_MAX_ALIGN_TIME_TRACE = 'max_align_time_trace'#
SHOW_PROGRESS_BAR = 'show_progress_bar'#
pm4py.algo.conformance.alignments.decomposed.variants.recompos_maximal.get_best_worst_cost(petri_net, initial_marking, final_marking, parameters=None)[source]#
pm4py.algo.conformance.alignments.decomposed.variants.recompos_maximal.apply_from_variants_list_petri_string(var_list, petri_net_string, parameters=None)[source]#
pm4py.algo.conformance.alignments.decomposed.variants.recompos_maximal.apply_from_variants_list(var_list, petri_net, initial_marking, final_marking, parameters=None)[source]#

Apply the alignments from the specification of a list of variants in the log

Parameters#

var_list

List of variants (for each item, the first entry is the variant itself, the second entry may be the number of cases)

petri_net

Petri net

initial_marking

Initial marking

final_marking

Final marking

parameters

Parameters of the algorithm (same as ‘apply’ method, plus ‘variant_delimiter’ that is , by default)

Returns#

dictio_alignments

Dictionary that assigns to each variant its alignment

pm4py.algo.conformance.alignments.decomposed.variants.recompos_maximal.apply(log: EventLog, net: PetriNet, im: Marking, fm: Marking, parameters: Dict[str | Parameters, Any] | None = None) List[Dict[str, Any]][source]#

Apply the recomposition alignment approach to a log and a Petri net performing decomposition

Parameters#

log

Event log

net

Petri net

im

Initial marking

fm

Final marking

parameters

Parameters of the algorithm

Returns#

aligned_traces

For each trace, return its alignment

pm4py.algo.conformance.alignments.decomposed.variants.recompos_maximal.apply_log(log, list_nets, parameters=None)[source]#

Apply the recomposition alignment approach to a log and a decomposed Petri net

pm4py.algo.conformance.alignments.decomposed.variants.recompos_maximal.get_acache(cons_nets)[source]#

Calculates the A-Cache of the given decomposition

Parameters#

cons_nets

List of considered nets

Returns#

acache

A-Cache

pm4py.algo.conformance.alignments.decomposed.variants.recompos_maximal.get_alres(al)[source]#

Gets a description of the alignment for the border agreement

Parameters#

al

Alignment

Returns#

alres

Description of the alignment

pm4py.algo.conformance.alignments.decomposed.variants.recompos_maximal.order_nodes_second_round(to_visit, G0)[source]#

Orders the second round of nodes to visit to reconstruct the alignment

Optimized version with improved algorithm

pm4py.algo.conformance.alignments.decomposed.variants.recompos_maximal.recompose_alignment(cons_nets, cons_nets_result)[source]#

Alignment recomposition

Optimized version with more efficient graph operations

pm4py.algo.conformance.alignments.decomposed.variants.recompos_maximal.apply_trace(trace, list_nets, parameters=None)[source]#

Align a trace against a decomposition

Optimized version with improved algorithms

pm4py.algo.conformance.alignments.decomposed.variants.recompos_maximal.align(trace, petri_net, initial_marking, final_marking, parameters=None)[source]#

Perform alignment using state_equation_a_star