pm4py.objects.petri_net.semantics module#

class pm4py.objects.petri_net.semantics.PetriNetSemantics[source]#

Bases: Generic[N]

classmethod is_enabled(pn: N, transition: T, marking: Counter[P]) bool[source]#

Checks whether a given transition is enabled in a given Petri net and marking

Parameters:
  • param pn: Petri net

  • param transition: transition to check

  • param marking: marking to check

Return type:

return: true if enabled, false otherwise

classmethod fire(pn: N, transition: T, marking: Counter[P]) Counter[P][source]#

Execute a transition For performance reasons, the algorithm method not check if the transition is enabled, i.e., this should be performed by the invoking algorithm (if needed). Hence, markings can become negative.

Parameters:
  • param pn: Petri net

  • param transition: transition to execute

  • param marking: marking to use

Return type:

return: newly reached marking

class pm4py.objects.petri_net.semantics.ClassicSemantics[source]#

Bases: Semantics

is_enabled(t, pn, m, **kwargs)[source]#

Verifies whether a given transition is enabled in a given Petri net and marking

Parameters:
  • param t: transition to check

  • param pn: Petri net

  • param m: marking to check

Return type:

return: true if enabled, false otherwise

execute(t, pn, m, **kwargs)[source]#

Executes a given transition in a given Petri net and Marking

Parameters:
  • param t: transition to execute

  • param pn: Petri net

  • param m: marking to use

Return type:

return: newly reached marking if :param t: is enabled, None otherwise

weak_execute(t, pn, m, **kwargs)[source]#

Execute a transition even if it is not fully enabled

Parameters:
  • param t: transition to execute

  • param pn: Petri net

  • param m: marking to use

Return type:

return: newly reached marking if :param t: is enabled, None otherwise

enabled_transitions(pn, m, **kwargs)[source]#

Returns a set of enabled transitions in a Petri net and given marking

Parameters:
  • param pn: Petri net

  • param m: marking of the pn

Return type:

return: set of enabled transitions

pm4py.objects.petri_net.semantics.is_enabled(t, pn, m)[source]#
pm4py.objects.petri_net.semantics.execute(t, pn, m)[source]#
pm4py.objects.petri_net.semantics.weak_execute(t, m)[source]#
pm4py.objects.petri_net.semantics.enabled_transitions(pn, m)[source]#