pm4py.algo.conformance.tokenreplay.variants.backwards module#

class pm4py.algo.conformance.tokenreplay.variants.backwards.Parameters(*values)[source]#

Bases: Enum

CASE_ID_KEY = 'pm4py:param:case_id_key'#
ACTIVITY_KEY = 'pm4py:param:activity_key'#
PARAMETER_VARIANT_DELIMITER = 'variant_delimiter'#
VARIANTS = 'variants'#
PLACES_SHORTEST_PATH_BY_HIDDEN = 'places_shortest_path_by_hidden'#
THREAD_MAX_EX_TIME = 'thread_maximum_ex_time'#
DISABLE_VARIANTS = 'disable_variants'#
CLEANING_TOKEN_FLOOD = 'cleaning_token_flood'#
IS_REDUCTION = 'is_reduction'#
WALK_THROUGH_HIDDEN_TRANS = 'walk_through_hidden_trans'#
RETURN_NAMES = 'return_names'#
STOP_IMMEDIATELY_UNFIT = 'stop_immediately_unfit'#
TRY_TO_REACH_FINAL_MARKING_THROUGH_HIDDEN = 'try_to_reach_final_marking_through_hidden'#
CONSIDER_REMAINING_IN_FITNESS = 'consider_remaining_in_fitness'#
ENABLE_PLTR_FITNESS = 'enable_pltr_fitness'#
pm4py.algo.conformance.tokenreplay.variants.backwards.get_bmap(net, m, bmap)[source]#

Updates the B-map with the invisibles enabling marking m

Parameters:
  • net – Petri net

  • m – Marking

  • bmap – B-map

Returns:

List of invisibles that enable m

Return type:

trans_list

pm4py.algo.conformance.tokenreplay.variants.backwards.diff_mark(m, t)[source]#

Subtract from a marking the postset of t and adds the preset

Parameters:
  • m – Marking

  • t – Transition

Returns:

Difference marking

Return type:

diff_mark

pm4py.algo.conformance.tokenreplay.variants.backwards.explore_backwards(re_list, all_vis, net, m, bmap)[source]#

Do the backwards state space exploration

Parameters:
  • re_list – List of remaining markings to visit using the backwards approach

  • all_vis – Set of visited transitions

  • net – Petri net

  • m – Marking

  • bmap – B-map of the net

Returns:

List of transitions to enable in order to enable a marking (otherwise None)

Return type:

list_tr

pm4py.algo.conformance.tokenreplay.variants.backwards.execute_tr(m, t, tokens_counter)[source]#
pm4py.algo.conformance.tokenreplay.variants.backwards.tr_vlist(vlist, net, im, fm, tmap, bmap, parameters=None)[source]#

Visit a variant using the backwards token basedr eplay

Parameters:
  • vlist – Variants list

  • net – Petri net

  • im – Initial marking

  • tmap – Transition map (labels to list of transitions)

  • bmap – B-map

  • parameters – Possible parameters of the execution

Returns:

  • visited_transitions – List of visited transitions during the replay

  • is_fit – Indicates if the replay was successful or not

pm4py.algo.conformance.tokenreplay.variants.backwards.apply(log: EventLog, net: PetriNet, initial_marking: Marking, final_marking: Marking, parameters: Dict[str | Parameters, Any] | None = None) List[Dict[str, Any]][source]#

Method to apply token-based replay

Parameters:
  • log – Log

  • net – Petri net

  • initial_marking – Initial marking

  • final_marking – Final marking

  • parameters – Parameters of the algorithm

pm4py.algo.conformance.tokenreplay.variants.backwards.get_diagnostics_dataframe(log: EventLog, tbr_output: List[Dict[str, Any]], parameters: Dict[str | Parameters, Any] | None = None) DataFrame[source]#

Gets the results of token-based replay in a dataframe

Parameters:
  • log – Event log

  • tbr_output – Output of the token-based replay technique

Returns:

Diagnostics dataframe

Return type:

dataframe