module Pione::PNML::IsolatedElementElimination
‘IsolatedElementElimination` is a net rewriting rule. This rule removes isolated elememts from nets.
Public Class Methods
find_subjects(net, env)
click to toggle source
Find subjects(an isolated element) by following criteria.
-
There is a place or transition.
-
It has no arcs.
# 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)
click to toggle source
Rewrite the net by eliminating isolated node.
# 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