From b762968774cfafda20ceec25c4939e4a922de4f1 Mon Sep 17 00:00:00 2001 From: nwickel Date: Fri, 22 Mar 2024 11:12:41 +0100 Subject: [PATCH] Removed sequential net; adjusted naming from conformative to normative --- code/03_create-petrinet.py | 283 ++++++++++++------------------------- 1 file changed, 87 insertions(+), 196 deletions(-) diff --git a/code/03_create-petrinet.py b/code/03_create-petrinet.py index c83bbfa..57bf689 100644 --- a/code/03_create-petrinet.py +++ b/code/03_create-petrinet.py @@ -1,18 +1,14 @@ # 03_create-petrinet.py # # content: (1) Create places and transitions -# (2) Sequential net -# (3) Concurrent net +# (2) Normative net # # input: -- -# output: results/haum/conformative_petrinet_con.pnml -# results/processmaps/conformative_petrinet_con.png -# results/processmaps/conformative_bpmn_con.png -# results/haum/conformative_petrinet_seq.pnml -# results/processmaps/conformative_petrinet_seq.png -# results/processmaps/conformative_bpmn_seq.png +# output: results/normative_petrinet.pnml +# results/processmaps/normative_petrinet.png +# results/processmaps/normative_bpmn.png # -# last mod: 2024-03-06 +# last mod: 2024-03-22 import pm4py from pm4py.objects.petri_net.obj import PetriNet, Marking @@ -62,93 +58,90 @@ t_16 = PetriNet.Transition("t_16") t_17 = PetriNet.Transition("t_17") t_18 = PetriNet.Transition("t_18") -#--------------- (2) Sequential net --------------- +#--------------- (2) Normative net --------------- -net_seq = PetriNet("new_petri_net") +net = PetriNet("new_petri_net") # Add places -net_seq.places.add(source) -net_seq.places.add(sink) -net_seq.places.add(p_1) -net_seq.places.add(p_2) -net_seq.places.add(p_3) -net_seq.places.add(p_4) -net_seq.places.add(p_5) -net_seq.places.add(p_6) -net_seq.places.add(p_7) -net_seq.places.add(p_8) +net.places.add(source) +net.places.add(sink) +net.places.add(p_1) +net.places.add(p_2) +net.places.add(p_3) +net.places.add(p_4) +net.places.add(p_5) +net.places.add(p_6) +net.places.add(p_7) +net.places.add(p_8) +net.places.add(p_9) +net.places.add(p_10) +net.places.add(p_11) +net.places.add(p_12) # Add transitions -net_seq.transitions.add(mv) -net_seq.transitions.add(fc) -net_seq.transitions.add(ot) -net_seq.transitions.add(op) +net.transitions.add(mv) +net.transitions.add(fc) +net.transitions.add(ot) +net.transitions.add(op) # Add hidden transitions -net_seq.transitions.add(t_1) -net_seq.transitions.add(t_2) -net_seq.transitions.add(t_3) -net_seq.transitions.add(t_4) -net_seq.transitions.add(t_5) -net_seq.transitions.add(t_6) -net_seq.transitions.add(t_7) -net_seq.transitions.add(t_8) -net_seq.transitions.add(t_9) -net_seq.transitions.add(t_10) -net_seq.transitions.add(t_11) -net_seq.transitions.add(t_12) -net_seq.transitions.add(t_13) -net_seq.transitions.add(t_14) -net_seq.transitions.add(t_15) -net_seq.transitions.add(t_16) -net_seq.transitions.add(t_17) -net_seq.transitions.add(t_18) +net.transitions.add(t_1) +net.transitions.add(t_2) +net.transitions.add(t_3) +net.transitions.add(t_4) +net.transitions.add(t_5) +net.transitions.add(t_6) +net.transitions.add(t_7) +net.transitions.add(t_8) +net.transitions.add(t_9) +net.transitions.add(t_10) +net.transitions.add(t_11) +net.transitions.add(t_12) +net.transitions.add(t_13) +net.transitions.add(t_14) +net.transitions.add(t_15) # Add arcs -petri_utils.add_arc_from_to(source, t_1, net_seq) -petri_utils.add_arc_from_to(source, t_2, net_seq) -petri_utils.add_arc_from_to(t_1, p_1, net_seq) -petri_utils.add_arc_from_to(t_2, p_2, net_seq) -petri_utils.add_arc_from_to(p_1, mv, net_seq) -petri_utils.add_arc_from_to(p_2, fc, net_seq) -petri_utils.add_arc_from_to(mv, p_3, net_seq) -petri_utils.add_arc_from_to(p_3, t_3, net_seq) -petri_utils.add_arc_from_to(p_3, t_4, net_seq) -petri_utils.add_arc_from_to(p_3, t_5, net_seq) -petri_utils.add_arc_from_to(p_3, t_6, net_seq) -petri_utils.add_arc_from_to(p_3, t_7, net_seq) -petri_utils.add_arc_from_to(t_7, p_1, net_seq) -petri_utils.add_arc_from_to(fc, p_4, net_seq) -petri_utils.add_arc_from_to(p_4, t_8, net_seq) -petri_utils.add_arc_from_to(p_4, t_9, net_seq) -petri_utils.add_arc_from_to(p_4, t_10, net_seq) -petri_utils.add_arc_from_to(t_9, p_1, net_seq) -petri_utils.add_arc_from_to(t_16, p_5, net_seq) -petri_utils.add_arc_from_to(t_3, p_2, net_seq) -petri_utils.add_arc_from_to(t_5, p_6, net_seq) -petri_utils.add_arc_from_to(t_6, p_5, net_seq) -petri_utils.add_arc_from_to(p_6, ot, net_seq) -petri_utils.add_arc_from_to(p_5, op, net_seq) -petri_utils.add_arc_from_to(ot, p_8, net_seq) -petri_utils.add_arc_from_to(op, p_7, net_seq) -petri_utils.add_arc_from_to(p_8, t_11, net_seq) -petri_utils.add_arc_from_to(p_8, t_12, net_seq) -petri_utils.add_arc_from_to(p_8, t_13, net_seq) -petri_utils.add_arc_from_to(p_8, t_17, net_seq) -petri_utils.add_arc_from_to(t_10, p_6, net_seq) -petri_utils.add_arc_from_to(t_17, p_6, net_seq) -petri_utils.add_arc_from_to(p_7, t_14, net_seq) -petri_utils.add_arc_from_to(p_7, t_15, net_seq) -petri_utils.add_arc_from_to(p_7, t_16, net_seq) -petri_utils.add_arc_from_to(p_7, t_18, net_seq) -petri_utils.add_arc_from_to(t_18, p_6, net_seq) -petri_utils.add_arc_from_to(t_13, p_5, net_seq) -petri_utils.add_arc_from_to(t_15, p_1, net_seq) -petri_utils.add_arc_from_to(t_11, p_1, net_seq) -petri_utils.add_arc_from_to(t_4, sink, net_seq) -petri_utils.add_arc_from_to(t_8, sink, net_seq) -petri_utils.add_arc_from_to(t_12, sink, net_seq) -petri_utils.add_arc_from_to(t_14, sink, net_seq) +petri_utils.add_arc_from_to(source, t_1, net) +petri_utils.add_arc_from_to(t_1, p_1, net) +petri_utils.add_arc_from_to(t_1, p_2, net) +petri_utils.add_arc_from_to(p_1, t_2, net) +petri_utils.add_arc_from_to(p_1, t_3, net) +petri_utils.add_arc_from_to(t_3, p_5, net) +petri_utils.add_arc_from_to(t_2, p_3, net) +petri_utils.add_arc_from_to(p_3, mv, net) +petri_utils.add_arc_from_to(mv, p_4, net) +petri_utils.add_arc_from_to(p_4, t_5, net) +petri_utils.add_arc_from_to(p_4, t_6, net) +petri_utils.add_arc_from_to(t_6, p_3, net) +petri_utils.add_arc_from_to(t_5, p_5, net) +petri_utils.add_arc_from_to(p_5, t_15, net) +petri_utils.add_arc_from_to(t_15, sink, net) +petri_utils.add_arc_from_to(p_2, fc, net) +petri_utils.add_arc_from_to(p_2, t_8, net) +petri_utils.add_arc_from_to(t_8, p_12, net) +petri_utils.add_arc_from_to(p_12, t_15, net) +petri_utils.add_arc_from_to(fc, p_6, net) +petri_utils.add_arc_from_to(p_6, t_9, net) +petri_utils.add_arc_from_to(t_9, p_12, net) +petri_utils.add_arc_from_to(p_6, t_4, net) +petri_utils.add_arc_from_to(t_4, p_7, net) +petri_utils.add_arc_from_to(p_7, ot, net) +petri_utils.add_arc_from_to(ot, p_8, net) +petri_utils.add_arc_from_to(p_8, t_10, net) +petri_utils.add_arc_from_to(t_10, p_11, net) +petri_utils.add_arc_from_to(p_11, t_13, net) +petri_utils.add_arc_from_to(t_13, p_12, net) +petri_utils.add_arc_from_to(p_8, t_7, net) +petri_utils.add_arc_from_to(t_7, p_9, net) +petri_utils.add_arc_from_to(p_9, op, net) +petri_utils.add_arc_from_to(op, p_10, net) +petri_utils.add_arc_from_to(p_10, t_11, net) +petri_utils.add_arc_from_to(p_10, t_12, net) +petri_utils.add_arc_from_to(t_12, p_9, net) +petri_utils.add_arc_from_to(t_11, p_11, net) +petri_utils.add_arc_from_to(p_11, t_14, net) +petri_utils.add_arc_from_to(t_14, p_7, net) # Add tokens initial_marking = Marking() @@ -156,116 +149,14 @@ initial_marking[source] = 1 final_marking = Marking() final_marking[sink] = 1 -pm4py.view_petri_net(net_seq, initial_marking, final_marking) -pm4py.write_pnml(net_seq, initial_marking, final_marking, "results/haum/conformative_petrinet_seq.pnml") +pm4py.view_petri_net(net, initial_marking, final_marking) +pm4py.write_pnml(net, initial_marking, final_marking, + "results/normative_petrinet.pnml") -pm4py.vis.save_vis_petri_net(net_seq, initial_marking, final_marking, - "results/processmaps/conformative_petrinet_seq.png") +pm4py.vis.save_vis_petri_net(net, initial_marking, final_marking, + "results/processmaps/normative_petrinet.png") -bpmn = pm4py.convert.convert_to_bpmn(net_seq, initial_marking, final_marking) +bpmn = pm4py.convert.convert_to_bpmn(net, initial_marking, final_marking) pm4py.view_bpmn(bpmn) -pm4py.vis.save_vis_bpmn(bpmn, "results/processmaps/conformative_bpmn_seq.png") - - -#--------------- (3) Concurrent net --------------- - -net_con = PetriNet("new_petri_net") - -# Add places -net_con.places.add(source) -net_con.places.add(sink) -net_con.places.add(p_1) -net_con.places.add(p_2) -net_con.places.add(p_3) -net_con.places.add(p_4) -net_con.places.add(p_5) -net_con.places.add(p_6) -net_con.places.add(p_7) -net_con.places.add(p_8) -net_con.places.add(p_9) -net_con.places.add(p_10) -net_con.places.add(p_11) -net_con.places.add(p_12) - -# Add transitions -net_con.transitions.add(mv) -net_con.transitions.add(fc) -net_con.transitions.add(ot) -net_con.transitions.add(op) - -# Add hidden transitions -net_con.transitions.add(t_1) -net_con.transitions.add(t_2) -net_con.transitions.add(t_3) -net_con.transitions.add(t_4) -net_con.transitions.add(t_5) -net_con.transitions.add(t_6) -net_con.transitions.add(t_7) -net_con.transitions.add(t_8) -net_con.transitions.add(t_9) -net_con.transitions.add(t_10) -net_con.transitions.add(t_11) -net_con.transitions.add(t_12) -net_con.transitions.add(t_13) -net_con.transitions.add(t_14) -net_con.transitions.add(t_15) - -# Add arcs -petri_utils.add_arc_from_to(source, t_1, net_con) -petri_utils.add_arc_from_to(t_1, p_1, net_con) -petri_utils.add_arc_from_to(t_1, p_2, net_con) -petri_utils.add_arc_from_to(p_1, t_2, net_con) -petri_utils.add_arc_from_to(p_1, t_3, net_con) -petri_utils.add_arc_from_to(t_3, p_5, net_con) -petri_utils.add_arc_from_to(t_2, p_3, net_con) -petri_utils.add_arc_from_to(p_3, mv, net_con) -petri_utils.add_arc_from_to(mv, p_4, net_con) -petri_utils.add_arc_from_to(p_4, t_5, net_con) -petri_utils.add_arc_from_to(p_4, t_6, net_con) -petri_utils.add_arc_from_to(t_6, p_3, net_con) -petri_utils.add_arc_from_to(t_5, p_5, net_con) -petri_utils.add_arc_from_to(p_5, t_15, net_con) -petri_utils.add_arc_from_to(t_15, sink, net_con) -petri_utils.add_arc_from_to(p_2, fc, net_con) -petri_utils.add_arc_from_to(p_2, t_8, net_con) -petri_utils.add_arc_from_to(t_8, p_12, net_con) -petri_utils.add_arc_from_to(p_12, t_15, net_con) -petri_utils.add_arc_from_to(fc, p_6, net_con) -petri_utils.add_arc_from_to(p_6, t_9, net_con) -petri_utils.add_arc_from_to(t_9, p_12, net_con) -petri_utils.add_arc_from_to(p_6, t_4, net_con) -petri_utils.add_arc_from_to(t_4, p_7, net_con) -petri_utils.add_arc_from_to(p_7, ot, net_con) -petri_utils.add_arc_from_to(ot, p_8, net_con) -petri_utils.add_arc_from_to(p_8, t_10, net_con) -petri_utils.add_arc_from_to(t_10, p_11, net_con) -petri_utils.add_arc_from_to(p_11, t_13, net_con) -petri_utils.add_arc_from_to(t_13, p_12, net_con) -petri_utils.add_arc_from_to(p_8, t_7, net_con) -petri_utils.add_arc_from_to(t_7, p_9, net_con) -petri_utils.add_arc_from_to(p_9, op, net_con) -petri_utils.add_arc_from_to(op, p_10, net_con) -petri_utils.add_arc_from_to(p_10, t_11, net_con) -petri_utils.add_arc_from_to(p_10, t_12, net_con) -petri_utils.add_arc_from_to(t_12, p_9, net_con) -petri_utils.add_arc_from_to(t_11, p_11, net_con) -petri_utils.add_arc_from_to(p_11, t_14, net_con) -petri_utils.add_arc_from_to(t_14, p_7, net_con) - -# Add tokens -initial_marking = Marking() -initial_marking[source] = 1 -final_marking = Marking() -final_marking[sink] = 1 - -pm4py.view_petri_net(net_con, initial_marking, final_marking) -pm4py.write_pnml(net_con, initial_marking, final_marking, "results/haum/conformative_petrinet_con.pnml") - -pm4py.vis.save_vis_petri_net(net_con, initial_marking, final_marking, - "results/processmaps/conformative_petrinet_con.png") - -bpmn = pm4py.convert.convert_to_bpmn(net_con, initial_marking, final_marking) -pm4py.view_bpmn(bpmn) - -pm4py.vis.save_vis_bpmn(bpmn, "results/processmaps/conformative_bpmn_con.png") +pm4py.vis.save_vis_bpmn(bpmn, "results/processmaps/normative_bpmn.png")