Module: Pione::PNML::IsolatedElementElimination
- Defined in:
- lib/pione/pnml/isolated-element-elimination.rb
Overview
IsolatedElementElimination
is a net rewriting rule. This rule removes
isolated elememts from nets.
Class Method Summary collapse
-
.find_subjects(net, env) ⇒ Object
Find subjects(an isolated element) by following criteria.
-
.rewrite(net, subjects, env) ⇒ Object
Rewrite the net by eliminating isolated node.
Class Method Details
.find_subjects(net, env) ⇒ Object
Find subjects(an isolated element) by following criteria.
- There is a place or transition.
- It has no arcs.
10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/pione/pnml/isolated-element-elimination.rb', line 10 def self.find_subjects(net, env) (net.places + net.transitions).each do |node| input_arcs = net.find_all_arcs_by_source_id(node.id) output_arcs = net.find_all_arcs_by_target_id(node.id) if input_arcs.empty? and output_arcs.empty? return [node] end end return nil end |
.rewrite(net, subjects, env) ⇒ Object
Rewrite the net by eliminating isolated node.
23 24 25 26 27 28 29 |
# File 'lib/pione/pnml/isolated-element-elimination.rb', line 23 def self.rewrite(net, subjects, env) subjects.each do |node| # eliminate the node net.transitions.delete(node) net.places.delete(node) end end |