PNML Analyzer Reachability/Coverability Analysis of Petri Nets from PNML files Roger Ruiz-Carrillo.
PNML Analyzer
description
Transcript of PNML Analyzer
PNML AnalyzerReachability/Coverability
Analysis of Petri Nets from PNML files
Roger Ruiz-Carrillo
Presentation Contents
• PNML• Program structure• Algorithm for reachability/coverability graph• Tests and Comparison with PIPE[1]’s output
[1] PIPE, Platform Independent Petri net Editor, software project from Department of Computing, Imperial College London. http://pipe2.sourceforge.net/ (valid in April 2012)
PNML
• Petri Net Markup Language• XML based• PNML.org• No current XSD
Program Structure – Petri NetPetriNet
getMarkings()setMarkings(tuple)
petrinetidplacestransitionsarcs
Arc
arcidweightdirectionplacesourcetarget
Place
placeidtokensincomingArcsoutgoingArcs
Transition
transitionidincomingArcsoutgoingArcs
isEnabled()fire()
0..1 0..1 0..1
11
Program Structure
• PNMLLoader: Unmarshals the petri net from the XML into PetriNet, Place, Arc and Transition objects
• ReachabilityAnalyzer: Creates the reachability/coverability graph and produces the GraphViz output file and XML graph representation.
Algorithm (created from [TM89])build rootNode from initial markingAdd rootNode to nodesToProcessWhile there are nodes in nodesToProcess: node = first node in nodesToProcess; remove node from nodesToProcess for each enabled transition in the net with node’s marking: fire the transition and assign the resulting marking to newMarking for inspectedNode in node and all its parents: if(newMarking dominates inspectedNode’s marking) update newMarking with infinity in the proper places if no node with newMarking already exists: create a newNode with the newMarking, assign node as its parent append newNode to nodesToProcess else newNode = existing node append newNode to node’s children along with the enabled transition
[TM89] Tadao Murata, “Petri Nets: Properties, Analysis and Applications”, in Proceedings of the IEEE, vol. 77, no.4, April 1989
Tests – Simple Petri Net
Tests – Simple Petri Net: PIPE
Tests – Simple Petri Net: PNML Analyzer
Tests – Dining Philosophers (PIPE example)
Tests – Dining Philosophers (PIPE example) - PIPE
Tests – Dining Philosophers (PIPE example) – PNML Analyzer
Tests – Dining Philosophers (PNML.org example)
Tests – Dining Philosphers (PNML.org example) – PNML Analyzer