pm4py.objects.dfg.utils package

Submodules

pm4py.objects.dfg.utils.dfg_alignment module

pm4py.objects.dfg.utils.dfg_playout module

pm4py.objects.dfg.utils.dfg_utils module

pm4py.objects.dfg.utils.dfg_utils.add_to_most_probable_component(comps, act2, ingoing, outgoing)[source]

Adds a lost component in parallel cut detection to the most probable component

Parameters
  • comps – Connected components

  • act2 – Activity that has been missed

  • ingoing – Map of ingoing attributes

  • outgoing – Map of outgoing attributes

Returns

Fixed connected components

Return type

comps

pm4py.objects.dfg.utils.dfg_utils.filter_dfg_on_act(dfg, listact)[source]

Filter a DFG graph on a list of attributes (to produce a projected DFG graph)

Parameters
  • dfg – Current DFG graph

  • listact – List of attributes to filter on

pm4py.objects.dfg.utils.dfg_utils.get_activities_direction(dfg, activities)[source]

Calculate activities direction (in a similar way to Heuristics Miner)

Parameters
  • dfg – Directly-follows graph

  • activities – (if provided) activities of the subtree

Returns

Dictionary that contains for each direction a number that goes from -1 (all ingoing edges) to 1 (all outgoing edges)

Return type

direction

pm4py.objects.dfg.utils.dfg_utils.get_activities_dirlist(activities_direction)[source]

Form an ordered list out of a dictionary that contains for each activity the direction (going from -1 if all ingoing edges, to 1 if all outgoing edges)

Parameters

activities_direction – Dictionary that contains for each direction a number that goes from -1 (all ingoing edges) to 1 (all outgoing edges)

Returns

Sorted list of couples of activity plus the direction

Return type

dirlist

pm4py.objects.dfg.utils.dfg_utils.get_activities_from_dfg(dfg)[source]

Get the list of attributes directly from DFG graph

Parameters

dfg – Directly-Follows graph

Returns

List of activities that are present in the DFG graph

Return type

list_activities

pm4py.objects.dfg.utils.dfg_utils.get_activities_self_loop(dfg)[source]

Get attributes that are in self-loop in this subtree

Parameters

dfg – Directly-follows graph

Returns

Activities of the graph that are in subloop

Return type

self_loop_act

pm4py.objects.dfg.utils.dfg_utils.get_all_activities_connected_as_input_to_activity(dfg, activity)[source]

Gets all the activities that are connected as input to a given activity

Parameters
  • dfg – Directly-follows graph

  • activity – Activity

Returns

All activities connected as input to a given activities

Return type

all_activities

pm4py.objects.dfg.utils.dfg_utils.get_all_activities_connected_as_output_to_activity(dfg, activity)[source]

Gets all the activities that are connected as output to a given activity

Parameters
  • dfg – Directly-follows graph

  • activity – Activity

Returns

All activities connected as output to a given activity

Return type

all_activities

pm4py.objects.dfg.utils.dfg_utils.get_alphabet(dfg)[source]
pm4py.objects.dfg.utils.dfg_utils.get_connected_components(ingoing, outgoing, activities, force_insert_missing_acti=True)[source]

Get connected components in the DFG graph

Parameters
  • ingoing – Ingoing attributes

  • outgoing – Outgoing attributes

  • activities – Activities to consider

  • force_insert_missing_acti – Force the insertion of a missing activity

pm4py.objects.dfg.utils.dfg_utils.get_dfg_np_matrix(dfg)[source]

Gets a Numpy matrix describing the DFG graph, along with a dictionary making correspondence between indexes and activities names

Parameters

dfg – Directly-Follows graph

Returns

  • matrix – Matrix describing the DFG

  • index_corresp – Dictionary making correspondence between indexes and activities names

pm4py.objects.dfg.utils.dfg_utils.get_dfg_sa_ea_act_from_variants(variants, parameters=None)[source]

Gets the DFG, the start and end activities, and the activities from the dictionary/set/list of variants in the log

Parameters
  • variants – Dictionary/set/list of variants

  • parameters – Parameters of the algorithm, including: - variants_sep: the delimiter splitting activities in a variant

Returns

  • dfg – DFG

  • list_act – List of different activities

  • start_activities – Start activities

  • end_activities – End activities

pm4py.objects.dfg.utils.dfg_utils.get_ingoing_edges(dfg)[source]

Get ingoing edges of the provided DFG graph

pm4py.objects.dfg.utils.dfg_utils.get_inputs_of_outside_activities_reached_by_end_activities(initial_dfg, dfg, activities)[source]

Get inputs of outside activities going to start activities

Parameters
  • initial_dfg – Initial DFG

  • dfg – Directly-follows graph

  • activities – Activities contained in the DFG

pm4py.objects.dfg.utils.dfg_utils.get_max_activity_count(dfg, act)[source]

Get maximum count of an ingoing/outgoing edge related to an activity

Parameters
  • dfg – Directly-Follows graph

  • act – Activity

Returns

Maximum count of ingoing/outgoing edges to attributes

Return type

max_value

pm4py.objects.dfg.utils.dfg_utils.get_outgoing_edges(dfg)[source]

Gets outgoing edges of the provided DFG graph

pm4py.objects.dfg.utils.dfg_utils.get_outputs_of_outside_activities_going_to_start_activities(initial_dfg, dfg, activities)[source]

Get outputs of outside activities going to start activities

Parameters
  • initial_dfg – Initial DFG

  • dfg – Directly-follows graph

  • activities – Activities contained in the DFG

pm4py.objects.dfg.utils.dfg_utils.get_predecessors(dfg, activities_model=None)[source]

Gets the predecessors of any node of the DFG graph

Parameters
  • dfg – DFG

  • activities_model – Activities of the process model (if None, it is inferred from the process model)

Returns

Dictionary associating to each node all the ascendants

Return type

predecessors

pm4py.objects.dfg.utils.dfg_utils.get_successors(dfg, activities_model=None)[source]

Gets the successors of any node of the DFG graph

Parameters
  • dfg – DFG

  • activities_model – Activities of the process model (if None, it is inferred from the process model)

Returns

Dictionary associating to each node all the descendants

Return type

successors

pm4py.objects.dfg.utils.dfg_utils.get_transitive_relations(dfg, alphabet)[source]
Parameters

dfg – directly follows relation (counter describing activity pairs)

Returns

  • tuple with two dicts.

  • first argument maps an activit on all other activities that are able to reach the activity (‘transitive pre set’)

  • second argument maps an activity on all other activities that it can reach (transitively) (‘transitive post set’)

pm4py.objects.dfg.utils.dfg_utils.infer_end_activities(dfg)[source]

Infer end activities from a Directly-Follows Graph

Parameters

dfg – Directly-Follows Graph

Returns

End activities in the log

Return type

end_activities

pm4py.objects.dfg.utils.dfg_utils.infer_end_activities_from_succ_connections_and_current_dfg(initial_dfg, dfg, activities, include_self=True)[source]

Infer the end activities from the previous connections

Parameters
  • initial_dfg – Initial DFG

  • dfg – Directly-follows graph

  • activities – List of the activities contained in DFG

pm4py.objects.dfg.utils.dfg_utils.infer_start_activities(dfg)[source]

Infer start activities from a Directly-Follows Graph

Parameters

dfg – Directly-Follows Graph

Returns

Start activities in the log

Return type

start_activities

pm4py.objects.dfg.utils.dfg_utils.infer_start_activities_from_prev_connections_and_current_dfg(initial_dfg, dfg, activities, include_self=True)[source]

Infer the start activities from the previous connections

Parameters
  • initial_dfg – Initial DFG

  • dfg – Directly-follows graph

  • activities – List of the activities contained in DFG

pm4py.objects.dfg.utils.dfg_utils.max_occ_all_activ(dfg)[source]

Get maximum ingoing/outgoing sum of values related to attributes in DFG graph

pm4py.objects.dfg.utils.dfg_utils.max_occ_among_specif_activ(dfg, activities)[source]

Get maximum ingoing/outgoing sum of values related to attributes in DFG graph (here attributes to consider are specified)

pm4py.objects.dfg.utils.dfg_utils.negate(dfg)[source]

Negate relationship in the DFG graph

Parameters

dfg – Directly-Follows graph

Returns

Negated Directly-Follows graph (for parallel cut detection)

Return type

negated_dfg

pm4py.objects.dfg.utils.dfg_utils.sum_activities_count(dfg, activities, enable_halving=True)[source]

Gets the sum of specified attributes count inside a DFG

Parameters
  • dfg – Directly-Follows graph

  • activities – Activities to sum

  • enable_halving – Halves the sum in specific occurrences

Returns

Return type

Sum of start attributes count

pm4py.objects.dfg.utils.dfg_utils.sum_end_activities_count(dfg)[source]

Gets the sum of end attributes count inside a DFG

Parameters

dfg – Directly-Follows graph

Returns

Return type

Sum of start attributes count

pm4py.objects.dfg.utils.dfg_utils.sum_ingoutg_val_activ(dictio, activity)[source]

Gets the sum of ingoing/outgoing values of an activity

Parameters
  • dictio – Dictionary

  • activity – Current examined activity

Returns

Return type

summ

pm4py.objects.dfg.utils.dfg_utils.sum_start_activities_count(dfg)[source]

Gets the sum of start attributes count inside a DFG

Parameters

dfg – Directly-Follows graph

Returns

Return type

Sum of start attributes count

pm4py.objects.dfg.utils.dfg_utils.transform_dfg_to_directed_nx_graph(dfg, activities=None)[source]

Transform DFG to directed NetworkX graph

Returns

  • G – NetworkX digraph

  • nodes_map – Correspondence between digraph nodes and activities

Module contents