pm4py.algo.discovery.alpha.variants.plus module#
- class pm4py.algo.discovery.alpha.variants.plus.Parameters(*values)[source]#
Bases:
Enum- ACTIVITY_KEY = 'pm4py:param:activity_key'#
- REMOVE_UNCONNECTED = 'remove_unconnected'#
- pm4py.algo.discovery.alpha.variants.plus.preprocessing(log: EventLog, parameters: Dict[str | Parameters, Any] | None = None) Any[source]#
Preprocessing step for the Aplha+ algorithm. Removing all transitions from the log with a loop of length one.
- Parameters:
log – Event log
parameters – Parameters of the algorithm
- Returns:
log – filtered log and a list of the filtered transitions
loop_one_list – Loop one list
A_filtered – Dictionary: activity before the loop-length-one activity
B_filtered – Dictionary: activity after the loop-length-one activity
loops_in_first_place – Loops in source place
loops_in_last_place – Loops in sink place
- pm4py.algo.discovery.alpha.variants.plus.get_relations(log: EventLog)[source]#
Applying the classic Alpha Algorithm
- Parameters:
log – Filtered log
- Returns:
causal – Causal relations
parallel – Parallel relations
follows – Follows relations
- pm4py.algo.discovery.alpha.variants.plus.processing(log: EventLog, causal: Tuple[str, str], follows: Tuple[str, str])[source]#
Applying the Alpha Miner with the new relations
- Parameters:
log – Filtered log
causal – Pairs that have a causal relation (->)
follows – Pairs that have a follow relation (>)
- Returns:
net – Petri net
im – Initial marking
fm – Final marking
- pm4py.algo.discovery.alpha.variants.plus.get_sharp_relation(follows, instance_one, instance_two)[source]#
Returns true if sharp relations holds
- Parameters:
follows – Follows relations
instance_one – Instance one
instance_two – Instance two
- Returns:
Boolean (sharp relation holds?)
- Return type:
- pm4py.algo.discovery.alpha.variants.plus.get_sharp_relations_for_sets(follows, set_1, set_2)[source]#
Returns sharp relations for sets
- Parameters:
follows – Follows relations
set_1 – First set to consider
set_2 – Second set to consider
- Returns:
Boolean (sharp relation holds?)
- Return type:
- pm4py.algo.discovery.alpha.variants.plus.postprocessing(net: PetriNet, initial_marking: Marking, final_marking: Marking, A, B, pairs, loop_one_list) Tuple[PetriNet, Marking, Marking][source]#
Adding the filtered transitions to the Petri net
- Parameters:
loop_list – List of looped activities
classical_alpha_result – Result after applying the classic alpha algorithm to the filtered log
A – See Paper for definition
B – See Paper for definition
- Returns:
net – Petri net
im – Initial marking
fm – Final marking
- pm4py.algo.discovery.alpha.variants.plus.apply(trace_log: EventLog, parameters: Dict[str | Parameters, Any] | None = None) Tuple[PetriNet, Marking, Marking][source]#
Apply the Alpha Algorithm to a given log
- Parameters:
trace_log – Log
parameters – Possible parameters of the algorithm
- Returns:
net – Petri net
im – Initial marking
fm – Final marking
- pm4py.algo.discovery.alpha.variants.plus.add_source(net, start_activities, label_transition_dict)[source]#
Adding source pe
- pm4py.algo.discovery.alpha.variants.plus.add_sink(net, end_activities, label_transition_dict)[source]#
Adding sink pe
Remove initial hidden transition if possible
- Parameters:
net – Petri net
im – Initial marking
- Returns:
net – Petri net
im – Possibly different initial marking
Remove final hidden transition if possible
- Parameters:
net – Petri net
fm – Final marking
- Returns:
Petri net
- Return type:
net