pm4py.objects.petri_net.utils.synchronous_product module#

pm4py.objects.petri_net.utils.synchronous_product.construct(pn1, im1, fm1, pn2, im2, fm2, skip)[source]#

Constructs the synchronous product net of two given Petri nets.

Parameters:
  • pn1 – Petri net 1

  • im1 – Initial marking of Petri net 1

  • fm1 – Final marking of Petri net 1

  • pn2 – Petri net 2

  • im2 – Initial marking of Petri net 2

  • fm2 – Final marking of Petri net 2

  • skip – Symbol to be used as skip

Return type:

return: Synchronous product net and associated marking labels are of the form (a,>>)

pm4py.objects.petri_net.utils.synchronous_product.construct_cost_aware(pn1, im1, fm1, pn2, im2, fm2, skip, pn1_costs, pn2_costs, sync_costs)[source]#

Constructs the synchronous product net of two given Petri nets.

Parameters:
  • pn1 – Petri net 1

  • im1 – Initial marking of Petri net 1

  • fm1 – Final marking of Petri net 1

  • pn2 – Petri net 2

  • im2 – Initial marking of Petri net 2

  • fm2 – Final marking of Petri net 2

  • skip – Symbol to be used as skip

  • pn1_costs – dictionary mapping transitions of pn1 to corresponding costs

  • pn2_costs – dictionary mapping transitions of pn2 to corresponding costs

  • pn1_costs – dictionary mapping pairs of transitions in pn1 and pn2 to costs

  • sync_costs – Costs of sync moves

Return type:

return: Synchronous product net and associated marking labels are of the form (a,>>)