1 / 14

PNML Analyzer

PNML Analyzer. Reachability/ 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.

pegeen
Download Presentation

PNML Analyzer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PNML Analyzer Reachability/Coverability Analysis of Petri Nets from PNML files Roger Ruiz-Carrillo

  2. 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)

  3. PNML • Petri Net Markup Language • XML based • PNML.org • No current XSD 

  4. Program Structure – Petri Net PetriNet Arc Place Transition petrinetid places transitions arcs placeid tokens incomingArcs outgoingArcs transitionid incomingArcs outgoingArcs arcid weight direction place source target 0..1 0..1 0..1 getMarkings() setMarkings(tuple) 1 1 isEnabled() fire()

  5. 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.

  6. Algorithm (created from [TM89]) build rootNode from initial marking Add rootNodeto nodesToProcess While 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

  7. Tests – Simple Petri Net

  8. Tests – Simple Petri Net: PIPE

  9. Tests – Simple Petri Net: PNML Analyzer

  10. Tests – Dining Philosophers (PIPE example)

  11. Tests – Dining Philosophers (PIPE example) - PIPE

  12. Tests – Dining Philosophers (PIPE example) – PNML Analyzer

  13. Tests – Dining Philosophers (PNML.org example)

  14. Tests – Dining Philosphers (PNML.org example) – PNML Analyzer

More Related