pm4py.algo.evaluation.precision.variants.align_etconformance 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.evaluation.precision.variants.align_etconformance.Parameters(*values)[source]#

Bases: Enum

ACTIVITY_KEY = 'pm4py:param:activity_key'#
CASE_ID_KEY = 'pm4py:param:case_id_key'#
TOKEN_REPLAY_VARIANT = 'token_replay_variant'#
CLEANING_TOKEN_FLOOD = 'cleaning_token_flood'#
SHOW_PROGRESS_BAR = 'show_progress_bar'#
MULTIPROCESSING = 'multiprocessing'#
CORES = 'cores'#
pm4py.algo.evaluation.precision.variants.align_etconformance.apply(log: EventLog | EventStream | DataFrame, net: PetriNet, marking: Marking, final_marking: Marking, parameters: Dict[str | Parameters, Any] | None = None) → float[source]#

Get Align-ET Conformance precision

Parameters:
  • log – Trace log

  • net – Petri net

  • marking – Initial marking

  • final_marking – Final marking

  • parameters –

    Parameters of the algorithm, including:

    Parameters.ACTIVITY_KEY -> Activity key

pm4py.algo.evaluation.precision.variants.align_etconformance.transform_markings_from_sync_to_original_net(markings0, net, parameters=None)[source]#

Transform the markings of the sync net (in which alignment stops) into markings of the original net (in order to measure the precision)

Parameters:
  • markings0 – Markings on the sync net (expressed as place name with count)

  • net – Petri net

  • parameters – Parameters of the algorithm

Returns:

Markings of the original model (expressed as place with count)

Return type:

markings

pm4py.algo.evaluation.precision.variants.align_etconformance.align_fake_log_stop_marking(fake_log, net, marking, final_marking, parameters=None)[source]#

Align the ‘fake’ log with all the prefixes in order to get the markings in which the alignment stops

Parameters:
  • fake_log – Fake log

  • net – Petri net

  • marking – Marking

  • final_marking – Final marking

  • parameters – Parameters of the algorithm

Returns:

For each trace in the log, return the marking in which the alignment stops (expressed as place name with count)

Return type:

alignment

pm4py.algo.evaluation.precision.variants.align_etconformance.build_sync_net(trace, petri_net, initial_marking, final_marking, parameters=None)[source]#

Build the sync product net between the Petri net and the trace prefix

Parameters:
  • trace – Trace prefix

  • petri_net – Petri net

  • initial_marking – Initial marking

  • final_marking – Final marking

  • parameters – Possible parameters of the algorithm