Преглед изворни кода

i seem to have made some changes to the petrinet formalism

Joeri Exelmans пре 8 месеци
родитељ
комит
5633bf17a9

+ 1 - 1
examples/petrinet/metamodels/mm_design.od

@@ -2,7 +2,7 @@
 
 PNConnectable:Class { abstract = True; }
 
-pn_arc:Association (PNConnectable -> PNConnectable)
+arc:Association (PNConnectable -> PNConnectable)
 
 PNPlace:Class
 PNTransition:Class

+ 12 - 12
examples/petrinet/models/m_example_mutex.od

@@ -13,18 +13,18 @@ leaveCritical_1:PNTransition
 enterCritical_2:PNTransition
 leaveCritical_2:PNTransition
 
-:pn_arc (general_1 -> enterCritical_1)
-:pn_arc (semaphore -> enterCritical_1)
-:pn_arc (enterCritical_1 -> critical_1)
+:arc (general_1 -> enterCritical_1)
+:arc (semaphore -> enterCritical_1)
+:arc (enterCritical_1 -> critical_1)
 
-:pn_arc (critical_1 -> leaveCritical_1)
-:pn_arc (leaveCritical_1 -> semaphore)
-:pn_arc (leaveCritical_1 -> general_1)
+:arc (critical_1 -> leaveCritical_1)
+:arc (leaveCritical_1 -> semaphore)
+:arc (leaveCritical_1 -> general_1)
 
-:pn_arc (semaphore -> enterCritical_2)
-:pn_arc (general_2 -> enterCritical_2)
-:pn_arc (enterCritical_2 -> critical_2)
+:arc (semaphore -> enterCritical_2)
+:arc (general_2 -> enterCritical_2)
+:arc (enterCritical_2 -> critical_2)
 
-:pn_arc (leaveCritical_2 -> semaphore)
-:pn_arc (leaveCritical_2 -> general_2)
-:pn_arc (critical_2 -> leaveCritical_2)
+:arc (leaveCritical_2 -> semaphore)
+:arc (leaveCritical_2 -> general_2)
+:arc (critical_2 -> leaveCritical_2)

+ 4 - 4
examples/petrinet/models/m_example_simple.od

@@ -2,9 +2,9 @@ p0:PNPlace
 p1:PNPlace
 
 t0:PNTransition
-:pn_arc (p0 -> t0)
-:pn_arc (t0 -> p1)
+:arc (p0 -> t0)
+:arc (t0 -> p1)
 
 t1:PNTransition
-:pn_arc (p1 -> t1)
-:pn_arc (t1 -> p0)
+:arc (p1 -> t1)
+:arc (t1 -> p0)

+ 1 - 1
examples/petrinet/operational_semantics/r_fire_transition_nac.od

@@ -10,4 +10,4 @@ ps:RAM_PNPlaceState {
 
 t:RAM_PNTransition
 
-:RAM_pn_arc (p -> t)
+:RAM_arc (p -> t)

+ 2 - 2
examples/petrinet/operational_semantics/r_fire_transition_rhs.od

@@ -1,7 +1,7 @@
 t:RAM_PNTransition {
   condition = ```
     # remove 1 token from every place connected with incoming arc
-    for incoming in get_incoming(this, "pn_arc"):
+    for incoming in get_incoming(this, "arc"):
       in_place = get_source(incoming)
       in_place_state = get_source(get_incoming(in_place, "pn_of")[0])
       in_num_tokens = get_slot_value(in_place_state, "numTokens")
@@ -9,7 +9,7 @@ t:RAM_PNTransition {
       print("PNPlace", get_name(in_place_state), "now has", in_num_tokens-1, "tokens")
 
     # add 1 token to every place connected with outgoing arc
-    for outgoing in get_outgoing(this, "pn_arc"):
+    for outgoing in get_outgoing(this, "arc"):
       out_place = get_target(outgoing)
       out_place_state = get_source(get_incoming(out_place, "pn_of")[0])
       out_num_tokens = get_slot_value(out_place_state, "numTokens")

+ 1 - 1
examples/petrinet/renderer.py

@@ -35,7 +35,7 @@ def render_petri_net(od: ODAPI):
     for transition_name, _ in od.get_all_instances("PNTransition"):
         dot += f"  {transition_name} [label=\"{transition_name}\\n\\n\\n­\"];\n"
     dot += "}\n"
-    for _, arc in od.get_all_instances("pn_arc"):
+    for _, arc in od.get_all_instances("arc"):
         src_name = od.get_name(od.get_source(arc))
         tgt_name = od.get_name(od.get_target(arc))
         dot += f"{src_name} -> {tgt_name};"

+ 5 - 5
examples/petrinet/runner.py

@@ -25,10 +25,10 @@ if __name__ == "__main__":
     # Read models from their files
     mm_cs           =         read_file('metamodels/mm_design.od')
     mm_rt_cs        = mm_cs + read_file('metamodels/mm_runtime.od')
-    m_cs            =         read_file('models/m_example_simple.od')
-    m_rt_initial_cs = m_cs +  read_file('models/m_example_simple_rt_initial.od')
-    # m_cs            =         read_file('models/m_example_mutex.od')
-    # m_rt_initial_cs = m_cs +  read_file('models/m_example_mutex_rt_initial.od')
+    # m_cs            =         read_file('models/m_example_simple.od')
+    # m_rt_initial_cs = m_cs +  read_file('models/m_example_simple_rt_initial.od')
+    m_cs            =         read_file('models/m_example_mutex.od')
+    m_rt_initial_cs = m_cs +  read_file('models/m_example_mutex_rt_initial.od')
 
     # Parse them
     mm           = loader.parse_and_check(state, mm_cs,           scd_mmm, "Petri-Net Design meta-model")
@@ -36,7 +36,6 @@ if __name__ == "__main__":
     m            = loader.parse_and_check(state, m_cs,            mm,      "Example model")
     m_rt_initial = loader.parse_and_check(state, m_rt_initial_cs, mm_rt,   "Example model initial state")
 
-
     mm_rt_ramified = ramify(state, mm_rt)
 
     rules = loader.load_rules(state,
@@ -52,6 +51,7 @@ if __name__ == "__main__":
         decision_maker=simulator.InteractiveDecisionMaker(auto_proceed=False),
         # decision_maker=simulator.RandomDecisionMaker(seed=0),
         renderer=lambda od: render_petri_net(od) + render_od(state, od.m, od.mm),
+        # renderer=lambda od: render_od(state, od.m, od.mm),
     )
 
     sim.run(ODAPI(state, m_rt_initial, mm_rt))