Constructs the synchronous product net of two given Petri nets.

petrinet_synchronous_product(
  pn1,
  im1,
  fm1,
  pn2,
  im2,
  fm2,
  skip = ">>",
  convert = TRUE
)

Arguments

pn1

First Petri net

im1

Initial marking of the first Petri net

fm1

Final marking of the first Petri net

pn2

Second Petri net

im2

Initial marking of the second Petri net

fm2

Final marking of the second Petri net

skip

Symbol to be used as skip

convert

TRUE to automatically convert Python objects to their R equivalent. If you pass FALSE you can do manual conversion using the r-py-conversion function.

Value

A Petri net.

Examples

if (pm4py_available()) { library(eventdataR) data(patients) # As Inductive Miner of PM4PY is not life-cycle aware, keep only `complete` events: patients_completes <- patients[patients$registration_type == "complete", ] net <- discovery_inductive(patients_completes) petrinet_synchronous_product(net$petrinet, net$initial_marking, net$final_marking, net$petrinet, net$initial_marking, net$final_marking) }
#> $petrinet #> Marking: [source, >>] [>>, source] #> Enabled transition #> id #> 1 [1d53ea88-e2b9-47c0-85cc-a7c2ca102a3c, 1d53ea88-e2b9-47c0-85cc-a7c2ca102a3c] #> 2 [1d53ea88-e2b9-47c0-85cc-a7c2ca102a3c, >>] #> 3 [>>, 1d53ea88-e2b9-47c0-85cc-a7c2ca102a3c] #> label enabled #> 1 [Registration, Registration] TRUE #> 2 [Registration, >>] TRUE #> 3 [>>, Registration] TRUE #> #> $initial_marking #> [1] "[source, >>]" "[>>, source]" #> #> $final_marking #> [1] "[sink, >>]" "[>>, sink]" #>