pm4py.algo.conformance.alignments.petri_net.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.petri_net.variants.dijkstra_less_memory 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.petri_net.variants.dijkstra_less_memory.Parameters(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]#
Bases:
Enum- PARAM_TRACE_COST_FUNCTION = 'trace_cost_function'#
- PARAM_MODEL_COST_FUNCTION = 'model_cost_function'#
- PARAM_STD_SYNC_COST = 'std_sync_cost'#
- PARAM_MAX_ALIGN_TIME_TRACE = 'max_align_time_trace'#
- PARAM_MAX_ALIGN_TIME = 'max_align_time'#
- PARAMETER_VARIANT_DELIMITER = 'variant_delimiter'#
- PARAM_ALIGNMENT_RESULT_IS_SYNC_PROD_AWARE = 'ret_tuple_as_trans_desc'#
- ACTIVITY_KEY = 'pm4py:param:activity_key'#
- pm4py.algo.conformance.alignments.petri_net.variants.dijkstra_less_memory.get_best_worst_cost(petri_net, initial_marking, final_marking, parameters=None)[source]#
Gets the best worst cost of an alignment
Parameters#
- petri_net
Petri net
- initial_marking
Initial marking
- final_marking
Final marking
Returns#
- best_worst_cost
Best worst cost of alignment
- pm4py.algo.conformance.alignments.petri_net.variants.dijkstra_less_memory.apply_from_variants_list_petri_string(var_list, petri_net_string, parameters=None)[source]#
- pm4py.algo.conformance.alignments.petri_net.variants.dijkstra_less_memory.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.petri_net.variants.dijkstra_less_memory.apply_from_variant(variant, petri_net, initial_marking, final_marking, parameters=None)[source]#
Apply the alignments from the specification of a single variant
Parameters#
- variant
Variant (as string delimited by the “variant_delimiter” parameter)
- 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#
dictionary: dict with keys alignment, cost, visited_states, queued_states
- pm4py.algo.conformance.alignments.petri_net.variants.dijkstra_less_memory.apply(trace: Trace, net: PetriNet, im: Marking, fm: Marking, parameters: Dict[str | Parameters, Any] | None = None) Dict[str, Any][source]#
Performs the basic alignment search, given a trace and a net.
Parameters#
trace:
listinput trace, assumed to be a list of events (i.e. the code will use the activity key to get the attributes) petri_net:pm4py.objects.petri.net.PetriNetthe Petri net to use in the alignment initial_marking:pm4py.objects.petri.net.Markinginitial marking in the Petri net final_marking:pm4py.objects.petri.net.Markingfinal marking in the Petri net parameters:dict(optional) dictionary containing one of the following:Parameters.PARAM_TRACE_COST_FUNCTION:
list(parameter) mapping of each index of the trace to a positive cost value Parameters.PARAM_MODEL_COST_FUNCTION:dict(parameter) mapping of each transition in the model to corresponding model cost Parameters.ACTIVITY_KEY:str(parameter) key to use to identify the activity described by the eventsReturns#
dictionary: dict with keys alignment, cost, visited_states, queued_states and traversed_arcs
pm4py.algo.conformance.alignments.petri_net.variants.dijkstra_no_heuristics 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.petri_net.variants.dijkstra_no_heuristics.Parameters(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]#
Bases:
Enum- PARAM_TRACE_COST_FUNCTION = 'trace_cost_function'#
- PARAM_MODEL_COST_FUNCTION = 'model_cost_function'#
- PARAM_SYNC_COST_FUNCTION = 'sync_cost_function'#
- PARAM_ALIGNMENT_RESULT_IS_SYNC_PROD_AWARE = 'ret_tuple_as_trans_desc'#
- PARAM_TRACE_NET_COSTS = 'trace_net_costs'#
- TRACE_NET_CONSTR_FUNCTION = 'trace_net_constr_function'#
- TRACE_NET_COST_AWARE_CONSTR_FUNCTION = 'trace_net_cost_aware_constr_function'#
- PARAM_MAX_ALIGN_TIME_TRACE = 'max_align_time_trace'#
- PARAM_MAX_ALIGN_TIME = 'max_align_time'#
- PARAMETER_VARIANT_DELIMITER = 'variant_delimiter'#
- ACTIVITY_KEY = 'pm4py:param:activity_key'#
- VARIANTS_IDX = 'variants_idx'#
- pm4py.algo.conformance.alignments.petri_net.variants.dijkstra_no_heuristics.get_best_worst_cost(petri_net, initial_marking, final_marking, parameters=None)[source]#
Gets the best worst cost of an alignment
Parameters#
- petri_net
Petri net
- initial_marking
Initial marking
- final_marking
Final marking
Returns#
- best_worst_cost
Best worst cost of alignment
- pm4py.algo.conformance.alignments.petri_net.variants.dijkstra_no_heuristics.apply(trace: Trace, petri_net: PetriNet, initial_marking: Marking, final_marking: Marking, parameters: Dict[str | Parameters, Any] | None = None) Dict[str, Any][source]#
Performs the basic alignment search, given a trace and a net.
Parameters#
trace:
listinput trace, assumed to be a list of events (i.e. the code will use the activity key to get the attributes) petri_net:pm4py.objects.petri.net.PetriNetthe Petri net to use in the alignment initial_marking:pm4py.objects.petri.net.Markinginitial marking in the Petri net final_marking:pm4py.objects.petri.net.Markingfinal marking in the Petri net parameters:dict(optional) dictionary containing one of the following:Parameters.PARAM_TRACE_COST_FUNCTION:
list(parameter) mapping of each index of the trace to a positive cost value Parameters.PARAM_MODEL_COST_FUNCTION:dict(parameter) mapping of each transition in the model to corresponding model cost Parameters.PARAM_SYNC_COST_FUNCTION:dict(parameter) mapping of each transition in the model to corresponding synchronous costs Parameters.ACTIVITY_KEY:str(parameter) key to use to identify the activity described by the eventsReturns#
dictionary: dict with keys alignment, cost, visited_states, queued_states and traversed_arcs
- pm4py.algo.conformance.alignments.petri_net.variants.dijkstra_no_heuristics.apply_from_variant(variant, petri_net, initial_marking, final_marking, parameters=None)[source]#
Apply the alignments from the specification of a single variant
Parameters#
- variant
Variant (as string delimited by the “variant_delimiter” parameter)
- 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#
dictionary: dict with keys alignment, cost, visited_states, queued_states and traversed_arcs
- pm4py.algo.conformance.alignments.petri_net.variants.dijkstra_no_heuristics.apply_from_variants_dictionary(var_dictio, petri_net, initial_marking, final_marking, parameters=None)[source]#
- pm4py.algo.conformance.alignments.petri_net.variants.dijkstra_no_heuristics.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.petri_net.variants.dijkstra_no_heuristics.apply_from_variants_list_petri_string(var_list, petri_net_string, parameters=None)[source]#
- pm4py.algo.conformance.alignments.petri_net.variants.dijkstra_no_heuristics.apply_from_variants_list_petri_string_mprocessing(mp_output, var_list, petri_net_string, parameters=None)[source]#
- pm4py.algo.conformance.alignments.petri_net.variants.dijkstra_no_heuristics.apply_trace_net(petri_net, initial_marking, final_marking, trace_net, trace_im, trace_fm, parameters=None)[source]#
Performs the basic alignment search, given a trace net and a net.
Parameters#
trace:
listinput trace, assumed to be a list of events (i.e. the code will use the activity key to get the attributes) petri_net:pm4py.objects.petri.net.PetriNetthe Petri net to use in the alignment initial_marking:pm4py.objects.petri.net.Markinginitial marking in the Petri net final_marking:pm4py.objects.petri.net.Markingfinal marking in the Petri net parameters:dict(optional) dictionary containing one of the following:Parameters.PARAM_TRACE_COST_FUNCTION:
list(parameter) mapping of each index of the trace to a positive cost value Parameters.PARAM_MODEL_COST_FUNCTION:dict(parameter) mapping of each transition in the model to corresponding model cost Parameters.PARAM_SYNC_COST_FUNCTION:dict(parameter) mapping of each transition in the model to corresponding synchronous costs Parameters.ACTIVITY_KEY:str(parameter) key to use to identify the activity described by the events Parameters.PARAM_TRACE_NET_COSTS:dict(parameter) mapping between transitions and costsReturns#
dictionary: dict with keys alignment, cost, visited_states, queued_states and traversed_arcs
pm4py.algo.conformance.alignments.petri_net.variants.discounted_a_star 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.petri_net.variants.discounted_a_star.Parameters(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]#
Bases:
Enum- PARAM_TRACE_COST_FUNCTION = 'trace_cost_function'#
- PARAM_MODEL_COST_FUNCTION = 'model_cost_function'#
- PARAM_SYNC_COST_FUNCTION = 'sync_cost_function'#
- PARAM_ALIGNMENT_RESULT_IS_SYNC_PROD_AWARE = 'ret_tuple_as_trans_desc'#
- PARAM_TRACE_NET_COSTS = 'trace_net_costs'#
- TRACE_NET_CONSTR_FUNCTION = 'trace_net_constr_function'#
- TRACE_NET_COST_AWARE_CONSTR_FUNCTION = 'trace_net_cost_aware_constr_function'#
- PARAM_MAX_ALIGN_TIME_TRACE = 'max_align_time_trace'#
- PARAM_MAX_ALIGN_TIME = 'max_align_time'#
- PARAMETER_VARIANT_DELIMITER = 'variant_delimiter'#
- ACTIVITY_KEY = 'pm4py:param:activity_key'#
- VARIANTS_IDX = 'variants_idx'#
- SYNCHRONOUS = 'synchronous_dijkstra'#
- EXPONENT = 'exponent'#
- pm4py.algo.conformance.alignments.petri_net.variants.discounted_a_star.get_best_worst_cost(petri_net, initial_marking, final_marking, parameters=None)[source]#
Gets the best worst cost of an alignment
Parameters#
- petri_net
Petri net
- initial_marking
Initial marking
- final_marking
Final marking
Returns#
- best_worst_cost
Best worst cost of alignment
- pm4py.algo.conformance.alignments.petri_net.variants.discounted_a_star.apply(trace, petri_net, initial_marking, final_marking, parameters=None)[source]#
Performs the basic alignment search, given a trace and a net.
Parameters#
trace:
listinput trace, assumed to be a list of events (i.e. the code will use the activity key to get the attributes) petri_net:pm4py.objects.petri.net.PetriNetthe Petri net to use in the alignment initial_marking:pm4py.objects.petri.net.Markinginitial marking in the Petri net final_marking:pm4py.objects.petri.net.Markingfinal marking in the Petri net parameters:dict(optional) dictionary containing one of the following:Parameters.PARAM_TRACE_COST_FUNCTION:
list(parameter) mapping of each index of the trace to a positive cost value Parameters.PARAM_MODEL_COST_FUNCTION:dict(parameter) mapping of each transition in the model to corresponding model cost Parameters.PARAM_SYNC_COST_FUNCTION:dict(parameter) mapping of each transition in the model to corresponding synchronous costs Parameters.ACTIVITY_KEY:str(parameter) key to use to identify the activity described by the eventsReturns#
dictionary: dict with keys alignment, cost, visited_states, queued_states and traversed_arcs
- pm4py.algo.conformance.alignments.petri_net.variants.discounted_a_star.apply_from_variant(variant, petri_net, initial_marking, final_marking, parameters=None)[source]#
Apply the alignments from the specification of a single variant
Parameters#
- variant
Variant (as string delimited by the “variant_delimiter” parameter)
- 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#
dictionary: dict with keys alignment, cost, visited_states, queued_states and traversed_arcs
- pm4py.algo.conformance.alignments.petri_net.variants.discounted_a_star.apply_from_variants_dictionary(var_dictio, petri_net, initial_marking, final_marking, parameters=None)[source]#
- pm4py.algo.conformance.alignments.petri_net.variants.discounted_a_star.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.petri_net.variants.discounted_a_star.apply_from_variants_list_petri_string(var_list, petri_net_string, parameters=None)[source]#
- pm4py.algo.conformance.alignments.petri_net.variants.discounted_a_star.apply_from_variants_list_petri_string_mprocessing(mp_output, var_list, petri_net_string, parameters=None)[source]#
- pm4py.algo.conformance.alignments.petri_net.variants.discounted_a_star.apply_trace_net(petri_net, initial_marking, final_marking, trace_net, trace_im, trace_fm, parameters=None)[source]#
Performs the basic alignment search, given a trace net and a net.
Parameters#
trace:
listinput trace, assumed to be a list of events (i.e. the code will use the activity key to get the attributes) petri_net:pm4py.objects.petri.net.PetriNetthe Petri net to use in the alignment initial_marking:pm4py.objects.petri.net.Markinginitial marking in the Petri net final_marking:pm4py.objects.petri.net.Markingfinal marking in the Petri net parameters:dict(optional) dictionary containing one of the following:Parameters.PARAM_TRACE_COST_FUNCTION:
list(parameter) mapping of each index of the trace to a positive cost value Parameters.PARAM_MODEL_COST_FUNCTION:dict(parameter) mapping of each transition in the model to corresponding model cost Parameters.PARAM_SYNC_COST_FUNCTION:dict(parameter) mapping of each transition in the model to corresponding synchronous costs Parameters.ACTIVITY_KEY:str(parameter) key to use to identify the activity described by the events Parameters.PARAM_TRACE_NET_COSTS:dict(parameter) mapping between transitions and costsReturns#
dictionary: dict with keys alignment, cost, visited_states, queued_states and traversed_arcs
pm4py.algo.conformance.alignments.petri_net.variants.generator_dijkstra_less_memory 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.petri_net.variants.generator_dijkstra_less_memory.Parameters(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]#
Bases:
Enum- PARAM_TRACE_COST_FUNCTION = 'trace_cost_function'#
- PARAM_MODEL_COST_FUNCTION = 'model_cost_function'#
- PARAM_STD_SYNC_COST = 'std_sync_cost'#
- PARAM_MAX_ALIGN_TIME_TRACE = 'max_align_time_trace'#
- PARAM_MAX_ALIGN_TIME = 'max_align_time'#
- PARAMETER_VARIANT_DELIMITER = 'variant_delimiter'#
- PARAM_ALIGNMENT_RESULT_IS_SYNC_PROD_AWARE = 'ret_tuple_as_trans_desc'#
- ACTIVITY_KEY = 'pm4py:param:activity_key'#
- pm4py.algo.conformance.alignments.petri_net.variants.generator_dijkstra_less_memory.apply(trace: Trace, net: PetriNet, im: Marking, fm: Marking, parameters: Dict[str | Parameters, Any] | None = None) Dict[str, Any][source]#
Performs the basic alignment search, given a trace and a net.
Parameters#
trace:
listinput trace, assumed to be a list of events (i.e. the code will use the activity key to get the attributes) petri_net:pm4py.objects.petri.net.PetriNetthe Petri net to use in the alignment initial_marking:pm4py.objects.petri.net.Markinginitial marking in the Petri net final_marking:pm4py.objects.petri.net.Markingfinal marking in the Petri net parameters:dict(optional) dictionary containing one of the following:Parameters.PARAM_TRACE_COST_FUNCTION:
list(parameter) mapping of each index of the trace to a positive cost value Parameters.PARAM_MODEL_COST_FUNCTION:dict(parameter) mapping of each transition in the model to corresponding model cost Parameters.ACTIVITY_KEY:str(parameter) key to use to identify the activity described by the eventsReturns#
dictionary: dict with keys alignment, cost, visited_states, queued_states and traversed_arcs
pm4py.algo.conformance.alignments.petri_net.variants.generator_dijkstra_no_heuristics 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.petri_net.variants.generator_dijkstra_no_heuristics.Parameters(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]#
Bases:
Enum- PARAM_TRACE_COST_FUNCTION = 'trace_cost_function'#
- PARAM_MODEL_COST_FUNCTION = 'model_cost_function'#
- PARAM_SYNC_COST_FUNCTION = 'sync_cost_function'#
- PARAM_ALIGNMENT_RESULT_IS_SYNC_PROD_AWARE = 'ret_tuple_as_trans_desc'#
- PARAM_TRACE_NET_COSTS = 'trace_net_costs'#
- TRACE_NET_CONSTR_FUNCTION = 'trace_net_constr_function'#
- TRACE_NET_COST_AWARE_CONSTR_FUNCTION = 'trace_net_cost_aware_constr_function'#
- PARAM_MAX_ALIGN_TIME_TRACE = 'max_align_time_trace'#
- PARAM_MAX_ALIGN_TIME = 'max_align_time'#
- PARAMETER_VARIANT_DELIMITER = 'variant_delimiter'#
- ACTIVITY_KEY = 'pm4py:param:activity_key'#
- VARIANTS_IDX = 'variants_idx'#
- pm4py.algo.conformance.alignments.petri_net.variants.generator_dijkstra_no_heuristics.get_best_worst_cost(petri_net, initial_marking, final_marking, parameters=None)[source]#
Gets the best worst cost of an alignment
Parameters#
- petri_net
Petri net
- initial_marking
Initial marking
- final_marking
Final marking
Returns#
- best_worst_cost
Best worst cost of alignment
- pm4py.algo.conformance.alignments.petri_net.variants.generator_dijkstra_no_heuristics.apply(trace: Trace, petri_net: PetriNet, initial_marking: Marking, final_marking: Marking, parameters: Dict[str | Parameters, Any] | None = None) Iterator[Dict[str, Any]][source]#
Performs the basic alignment search, given a trace and a net.
Parameters#
trace:
listinput trace, assumed to be a list of events (i.e. the code will use the activity key to get the attributes) petri_net:pm4py.objects.petri.net.PetriNetthe Petri net to use in the alignment initial_marking:pm4py.objects.petri.net.Markinginitial marking in the Petri net final_marking:pm4py.objects.petri.net.Markingfinal marking in the Petri net parameters:dict(optional) dictionary containing one of the following:Parameters.PARAM_TRACE_COST_FUNCTION:
list(parameter) mapping of each index of the trace to a positive cost value Parameters.PARAM_MODEL_COST_FUNCTION:dict(parameter) mapping of each transition in the model to corresponding model cost Parameters.PARAM_SYNC_COST_FUNCTION:dict(parameter) mapping of each transition in the model to corresponding synchronous costs Parameters.ACTIVITY_KEY:str(parameter) key to use to identify the activity described by the eventsReturns#
dictionary: dict with keys alignment, cost, visited_states, queued_states and traversed_arcs
- pm4py.algo.conformance.alignments.petri_net.variants.generator_dijkstra_no_heuristics.apply_trace_net(petri_net, initial_marking, final_marking, trace_net, trace_im, trace_fm, parameters=None)[source]#
Performs the basic alignment search, given a trace net and a net.
Parameters#
trace:
listinput trace, assumed to be a list of events (i.e. the code will use the activity key to get the attributes) petri_net:pm4py.objects.petri.net.PetriNetthe Petri net to use in the alignment initial_marking:pm4py.objects.petri.net.Markinginitial marking in the Petri net final_marking:pm4py.objects.petri.net.Markingfinal marking in the Petri net parameters:dict(optional) dictionary containing one of the following:Parameters.PARAM_TRACE_COST_FUNCTION:
list(parameter) mapping of each index of the trace to a positive cost value Parameters.PARAM_MODEL_COST_FUNCTION:dict(parameter) mapping of each transition in the model to corresponding model cost Parameters.PARAM_SYNC_COST_FUNCTION:dict(parameter) mapping of each transition in the model to corresponding synchronous costs Parameters.ACTIVITY_KEY:str(parameter) key to use to identify the activity described by the events Parameters.PARAM_TRACE_NET_COSTS:dict(parameter) mapping between transitions and costsReturns#
dictionary: dict with keys alignment, cost, visited_states, queued_states and traversed_arcs
- pm4py.algo.conformance.alignments.petri_net.variants.generator_dijkstra_no_heuristics.apply_sync_prod(sync_prod, initial_marking, final_marking, cost_function, skip, ret_tuple_as_trans_desc=False, max_align_time_trace=9223372036854775807)[source]#
- pm4py.algo.conformance.alignments.petri_net.variants.generator_dijkstra_no_heuristics.check_cycle_in_searchtuple(st: DijkstraSearchTuple) bool[source]#
- pm4py.algo.conformance.alignments.petri_net.variants.generator_dijkstra_no_heuristics.repr_searchtuple(st: DijkstraSearchTuple) str[source]#
- pm4py.algo.conformance.alignments.petri_net.variants.generator_dijkstra_no_heuristics.rec_hub(hub, curr_m) List[List[DijkstraSearchTuple]][source]#
- pm4py.algo.conformance.alignments.petri_net.variants.generator_dijkstra_no_heuristics.reconstruct_alignment_generator(hub, state: DijkstraSearchTuple, ret_tuple_as_trans_desc=False)[source]#
pm4py.algo.conformance.alignments.petri_net.variants.state_equation_a_star 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.petri_net.variants.state_equation_a_star.Parameters(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]#
Bases:
Enum- PARAM_TRACE_COST_FUNCTION = 'trace_cost_function'#
- PARAM_MODEL_COST_FUNCTION = 'model_cost_function'#
- PARAM_SYNC_COST_FUNCTION = 'sync_cost_function'#
- PARAM_ALIGNMENT_RESULT_IS_SYNC_PROD_AWARE = 'ret_tuple_as_trans_desc'#
- PARAM_TRACE_NET_COSTS = 'trace_net_costs'#
- TRACE_NET_CONSTR_FUNCTION = 'trace_net_constr_function'#
- TRACE_NET_COST_AWARE_CONSTR_FUNCTION = 'trace_net_cost_aware_constr_function'#
- PARAM_MAX_ALIGN_TIME_TRACE = 'max_align_time_trace'#
- PARAM_MAX_ALIGN_TIME = 'max_align_time'#
- PARAMETER_VARIANT_DELIMITER = 'variant_delimiter'#
- ACTIVITY_KEY = 'pm4py:param:activity_key'#
- VARIANTS_IDX = 'variants_idx'#
- RETURN_SYNC_COST_FUNCTION = 'return_sync_cost_function'#
- pm4py.algo.conformance.alignments.petri_net.variants.state_equation_a_star.get_best_worst_cost(petri_net, initial_marking, final_marking, parameters=None)[source]#
Gets the best worst cost of an alignment
Parameters#
- petri_net
Petri net
- initial_marking
Initial marking
- final_marking
Final marking
Returns#
- best_worst_cost
Best worst cost of alignment
- pm4py.algo.conformance.alignments.petri_net.variants.state_equation_a_star.apply(trace: Trace, petri_net: PetriNet, initial_marking: Marking, final_marking: Marking, parameters: Dict[str | Parameters, Any] | None = None) Dict[str, Any][source]#
Performs the basic alignment search, given a trace and a net.
Parameters#
trace:
listinput trace, assumed to be a list of events (i.e. the code will use the activity key to get the attributes) petri_net:pm4py.objects.petri.net.PetriNetthe Petri net to use in the alignment initial_marking:pm4py.objects.petri.net.Markinginitial marking in the Petri net final_marking:pm4py.objects.petri.net.Markingfinal marking in the Petri net parameters:dict(optional) dictionary containing one of the following:Parameters.PARAM_TRACE_COST_FUNCTION:
list(parameter) mapping of each index of the trace to a positive cost value Parameters.PARAM_MODEL_COST_FUNCTION:dict(parameter) mapping of each transition in the model to corresponding model cost Parameters.PARAM_SYNC_COST_FUNCTION:dict(parameter) mapping of each transition in the model to corresponding synchronous costs Parameters.ACTIVITY_KEY:str(parameter) key to use to identify the activity described by the eventsReturns#
dictionary: dict with keys alignment, cost, visited_states, queued_states and traversed_arcs
- pm4py.algo.conformance.alignments.petri_net.variants.state_equation_a_star.apply_from_variant(variant, petri_net, initial_marking, final_marking, parameters=None)[source]#
Apply the alignments from the specification of a single variant
Parameters#
- variant
Variant (as string delimited by the “variant_delimiter” parameter)
- 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#
dictionary: dict with keys alignment, cost, visited_states, queued_states and traversed_arcs
- pm4py.algo.conformance.alignments.petri_net.variants.state_equation_a_star.apply_from_variants_dictionary(var_dictio, petri_net, initial_marking, final_marking, parameters=None)[source]#
Apply the alignments from the specification of a variants dictionary
Parameters#
- var_dictio
Dictionary of variants (along possibly with their count, or the list of indexes, or the list of involved 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.petri_net.variants.state_equation_a_star.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.petri_net.variants.state_equation_a_star.apply_from_variants_list_petri_string(var_list, petri_net_string, 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_string
String representing the accepting Petri net
Returns#
- dictio_alignments
Dictionary that assigns to each variant its alignment
- pm4py.algo.conformance.alignments.petri_net.variants.state_equation_a_star.apply_from_variants_list_petri_string_mprocessing(mp_output, var_list, petri_net_string, parameters=None)[source]#
Apply the alignments from the specification of a list of variants in the log
Parameters#
- mp_output
Multiprocessing output
- 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_string
String representing the accepting Petri net
Returns#
- dictio_alignments
Dictionary that assigns to each variant its alignment
- pm4py.algo.conformance.alignments.petri_net.variants.state_equation_a_star.apply_trace_net(petri_net, initial_marking, final_marking, trace_net, trace_im, trace_fm, parameters=None)[source]#
Performs the basic alignment search, given a trace net and a net.
Parameters#
trace:
listinput trace, assumed to be a list of events (i.e. the code will use the activity key to get the attributes) petri_net:pm4py.objects.petri.net.PetriNetthe Petri net to use in the alignment initial_marking:pm4py.objects.petri.net.Markinginitial marking in the Petri net final_marking:pm4py.objects.petri.net.Markingfinal marking in the Petri net parameters:dict(optional) dictionary containing one of the following:Parameters.PARAM_TRACE_COST_FUNCTION:
list(parameter) mapping of each index of the trace to a positive cost value Parameters.PARAM_MODEL_COST_FUNCTION:dict(parameter) mapping of each transition in the model to corresponding model cost Parameters.PARAM_SYNC_COST_FUNCTION:dict(parameter) mapping of each transition in the model to corresponding synchronous costs Parameters.ACTIVITY_KEY:str(parameter) key to use to identify the activity described by the events Parameters.PARAM_TRACE_NET_COSTS:dict(parameter) mapping between transitions and costsReturns#
dictionary: dict with keys alignment, cost, visited_states, queued_states and traversed_arcs
- pm4py.algo.conformance.alignments.petri_net.variants.state_equation_a_star.apply_sync_prod(sync_prod, initial_marking, final_marking, cost_function, skip, ret_tuple_as_trans_desc=False, max_align_time_trace=9223372036854775807)[source]#
Performs the basic alignment search on top of the synchronous product net, given a cost function and skip-symbol
Parameters#
sync_prod:
pm4py.objects.petri.net.PetriNetsynchronous product net initial_marking:pm4py.objects.petri.net.Markinginitial marking in the synchronous product net final_marking:pm4py.objects.petri.net.Markingfinal marking in the synchronous product net cost_function:dictcost function mapping transitions to the synchronous product net skip:Anysymbol to use for skips in the alignmentReturns#
dictionary :
dictwith keys alignment, cost, visited_states, queued_states and traversed_arcs