pm4py.objects.petri_net.utils.align_utils module#
- pm4py.objects.petri_net.utils.align_utils.search_path_among_sol(sync_net: PetriNet, ini: Marking, fin: Marking, activated_transitions: List[Transition], skip='>>') Tuple[List[Transition], bool, int][source]#
(Efficient method) Searches a firing sequence among the X vector that is the solution of the (extended) marking equation
- Parameters:
sync_net – Synchronous product net
ini – Initial marking of the net
fin – Final marking of the net
activated_transitions – Transitions that have non-zero occurrences in the X vector
skip – Skip transition
- Returns:
firing_sequence – Firing sequence
reach_fm – Boolean value that tells if the final marking is reached by the firing sequence
explained_events – Number of explained events
- pm4py.objects.petri_net.utils.align_utils.construct_standard_cost_function(synchronous_product_net, skip)[source]#
Returns the standard cost function, which is: * event moves: cost 1000 * model moves: cost 1000 * tau moves: cost 1 * sync moves: cost 0 :param synchronous_product_net: :param skip: :return:
- pm4py.objects.petri_net.utils.align_utils.pretty_print_alignments(alignments)[source]#
- Takes an alignment and prints it to the console, e.g.:
A | B | C | D |
- Returns:
Nothing
- class pm4py.objects.petri_net.utils.align_utils.SearchTuple(f, g, h, m, p, t, x, trust)[source]#
Bases:
object
- class pm4py.objects.petri_net.utils.align_utils.DijkstraSearchTuple(g, m, p, t, l)[source]#
Bases:
object