pm4py.algo.evaluation.precision.variants.align_etconformance module#

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