org.processmining.converting
Class PetriNetReduction

java.lang.Object
  extended by org.processmining.converting.PetriNetReduction
All Implemented Interfaces:
ConvertingPlugin, Plugin

public class PetriNetReduction
extends java.lang.Object
implements ConvertingPlugin

Title: Liveness and boundedness preserving reduction for Petri nets

Description: Reduces a Petri net given a well-known set of liveness and boundedness preserving rules.

T. Murata. Petri nets: Properties, analysis and applications. Proceedings of the IEEE, 77(4):541-580, April 1989.

Copyright: Copyright (c) 2004

Company:

Version:
1.0
Author:
Eric Verbeek

Constructor Summary
PetriNetReduction()
           
 
Method Summary
 boolean accepts(ProvidedObject object)
          Determines whether this pluging accepts the given objects as input.
 MiningResult convert(ProvidedObject object)
          Reduces the first Petri net among the given objects.
 java.lang.String getHtmlDescription()
          Gets a description of this plugin in HTML.
 java.lang.String getName()
          Gets the name of this plugin.
 PetriNet reduce(PetriNet providedPN)
          Apply the liveness and boundedness preserving reduction rules on the given Petri net as long as reductions can be applied.
 PetriNet reduceOnce(PetriNet providedPN)
          Apply the liveness and boundedness preserving reduction rules on the given Petri net in one pass.
 void setNonReducableNodes(java.util.ArrayList nodes)
          Specify which nodes in the Petri net should not be reduced.
 void setNonReducableNodes(java.util.HashSet nodes)
          Specify which nodes in the Petri net should not be reduced.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PetriNetReduction

public PetriNetReduction()
Method Detail

getName

public java.lang.String getName()
Description copied from interface: Plugin
Gets the name of this plugin. Implementing classes should use this method to return their own name.

Specified by:
getName in interface Plugin
Returns:
the name of this plugin

getHtmlDescription

public java.lang.String getHtmlDescription()
Description copied from interface: Plugin
Gets a description of this plugin in HTML. The string returned by this method should only contain the contents of the body of the html page, so the html, head and body tags should not be used. This HTML page is displayed in the help system or as context sensitive help. The HTML body can be stored in an external file in the /lib/documentation/ sub folder and in this case it can be obtained by calling PluginDocumentationLoader.load(this)

Specified by:
getHtmlDescription in interface Plugin
Returns:
a description of this plugin in HTML

convert

public MiningResult convert(ProvidedObject object)
Reduces the first Petri net among the given objects.

Specified by:
convert in interface ConvertingPlugin
Parameters:
object - The given objects.
Returns:
The reduced Petri net (the original Petri net if no reductions could be applied!)

accepts

public boolean accepts(ProvidedObject object)
Determines whether this pluging accepts the given objects as input.

Specified by:
accepts in interface ConvertingPlugin
Parameters:
object - The given objects.
Returns:
Whether this plugin accepts the given objects.

setNonReducableNodes

public void setNonReducableNodes(java.util.ArrayList nodes)
Specify which nodes in the Petri net should not be reduced.

Parameters:
nodes - The set of nodes not to reduce.

setNonReducableNodes

public void setNonReducableNodes(java.util.HashSet nodes)
Specify which nodes in the Petri net should not be reduced.

Parameters:
nodes - The set of nodes not to reduce.

reduce

public PetriNet reduce(PetriNet providedPN)
Apply the liveness and boundedness preserving reduction rules on the given Petri net as long as reductions can be applied.

Parameters:
providedPN - The given Petri net.
Returns:
If any reduction could be applied, a fully reduced Petri net. Otherwise, the given Petri net.

reduceOnce

public PetriNet reduceOnce(PetriNet providedPN)
Apply the liveness and boundedness preserving reduction rules on the given Petri net in one pass.

Parameters:
providedPN - The given Petri net.
Returns:
If any reduction could be applied, a reduced Petri net. Otherwise, the given Petri net.