The ARP tool

Important

I stopped working on Petri nets in 1990 and my current research interests are on other subjects. Thus I'm not able to provide support on this tool and will not answer technical questions on it. As this software is provided through a GNU license, you can download and modify it according to your needs.

Description

ARP stands for Analisador de Redes de Petri, the portuguese translation for Petri Net Analyser. It's a software tool for Petri net analysis and simulation developed during my MSc work in the LCMI lab at the Federal University of Santa Catarina - Brazil, between 1988 and 1990. It's written in Turbo Pascal 6 and run in MS-DOS/Windows machines.

The ARP program has been used for teaching and research by several universities in Brazil and outside. Although its simple and old interface, it is reliable and provides well-tested, consistent and useful results.

The ARP tool accepts the following Petri net models:

  • Place/transition nets, with numeric markings and no time information.
  • Timed nets, in which firing intervals [tmin, tmax] are associated to each transition (Merlin's approach).
  • Extended timed nets, in which a probability function is associated to each transition's firing interval.

It offers the following analysis modules:

  • Accessibility analysis: all the net's states (or state classes, in Time nets) are found, and the reachability graph is built. Also, some important properties are verified on the graph, like the presence of deadlocks or livelocks, maximal markings on the places, transitions' firability, and so on.
  • Invariant analysis: provides the place or transition invariant basis and all the minimum positive invariants. Some constraints can be applied in the invariant calculation.
  • Equivalence analysis: verification of the equivalence between the state graph and a user given automata, considering some transitions firings as invisible (internal state changes).
  • Performance evaluation: intensive model simulation, giving several statistical results like average marking of places, average firing delay of transitions, average time to reach a given state, etc.
  • Manual simulation: enables the user to “debug” the Petri net model, firing transitions step-by-step and modifying place markings on-the-fly.

The program contains also some file facilities (simple editor, file browser, etc).

Example

In the ARP tool the Petri net models are described using a very simple language, similar to Pascal. Here is an example of a Petri net modeling the classic mutual exclusion problem:

The file describing the Petri net above should contain the following code:

Net Mutual_exclusion_problem;

{ This Petri net models the concurrency aspects in the
   alocation of a single resource between two tasks. }

Nodes
  { Task A nodes }
  Ta_take, Ta_leave, Ta_reset : transition ;
  Ta_init                     : place (1) ;
  Ta_use, Ta_end              : place ;

  { Task B nodes }
  Tb_take, Tb_leave, Tb_reset : transition ;
  Tb_init                     : place (1) ;
  Tb_use, Tb_end              : place ;

  { Resource }
  Free                        : place (1) ;

Structure
  { describing transitions' inputs and outputs}

  { Task A }
  Ta_take  : (Free, Ta_init) , (Ta_use) ;
  Ta_leave : (Ta_use) , (Free, Ta_end) ;
  Ta_reset : (Ta_end) , (Ta_init) ;

  { Task B }
  Tb_take  : (Free, Tb_init) , (Tb_use) ;
  Tb_leave : (Tb_use) , (Free, Tb_end) ;
  Tb_reset : (Tb_end) , (Tb_init) ;

endNet.

Getting it

The ARP tool is freely distributed under the GPL - GNU Public License. It's no more maintained, but I would appreciate to receive informations about nasty bugs on it.

You can download the 2.4 (final) version of the ARP tool here:

If you find this tool useful and effectively use it, please send me an e-mail (and don't forget to cite it on your publications !). You know, parents always like to know what their children are doing ;-)

Other resources

  • JARP is a good graphical tool that can generate input files for ARP.
  • PetriKit - a Python toolkit for Petri Net analysis: this set of tools were built by Conrado Gouvea for his undergraduate project at PUCPR, in 2007. It implements some of the ARP algorithms in standalone Python components. It understands ARP/PNML formats and performs the reachability and invariant analysis on P-T nets.
Back to top
software/arp_tool.txt (1376 views) · Last modified: 2009/09/14 10:06 by maziero