Options

Tutorial on Petri nets, and where they can lead

I would like to write a tutorial or experiment for the Azimuth Project, detailing how far you can go starting with a simple Petri net. One goal I have is to tie together Azimuth ideas on Network Theory, Petri nets, and climate change, with my own ideas on modeling, simulation, and hierarchy. The tutorial would be a first step, probably focused on network 1.1 in the Feinberg lectures. It would complement other material at the Azimuth site, and would be largely non-mathematical.

As suggested by John and others, I'm working my way through the Network Theory blogs and the Feinberg lectures on chemical reaction networks (CRN). Gradually incorporating the Petri net and CRN ideas into my own Java software has been a good way for me to learn it. The tutorial would help me firm up what I've learned so far. I'm very happy that I've discovered Petri nets through the Azimuth Project.

By "how far you can go", I mean that a Petri net can be transformed into numerous other formats that are meaningful to different groups of people, people who have probably never heard of Petri nets before. The Petri net itself can be simulated and analyzed by various research tools. A Petri net with mass action kinetics can become a system of differential equations (rate equations). With concrete values for its rate constants it can produce time series charts. It can readily be turned into an Agent Based Model (ABM) where individual place and transition objects move and interact in a rectangular grid. It can be transformed into Systems Biology Graphical Notation (SBGN), Unified Modeling Language (UML) class diagrams, UML composite structure diagrams, UML sequence diagrams, Mind Maps, and numerous other formats. In the tutorial I would demonstrate and/or describe some of these transformations.

All of this suggests that Petri nets are a good base for a "unified network theory", which I see that John Baez and Jacob Biamonte are interested in. I haven't gotten to the master equation stuff yet, but I'd like to get into that, and into the connections with Category theory which might prove to be the most exciting part of it all. And, I'm convinced that Petri nets are a good base for constructing simple climate models.

I've been using my Azimuth page to quickly (and cryptically) jot down some of what I've been doing that I want to write up. And I've included some models whose source code (using an XML-based declarative format) is located at github.

In some of the examples I've done so far, I've included ideas from Membrane Computing (also called P Systems) which can be thought of as a way of adding hierarchy to Petri nets (see: H.C.M Kleijn, et al. (2005) Towards a Petri net semantics for membrane systems). I use hierarchy in two of Feinberg's networks including 2.38 where he talks about the zero complex, and 2.44 that has two cells interacting. P Systems are "a computing model which abstracts from the way the alive cells process chemical compounds in their compartmental structure. In short, in the regions defined by a membrane structure we have objects which evolve according to given rules".

An immediate question is: Where on the Azimuth site can I start writing this tutorial? And of course, I'm looking for ideas from other people.

Ken

Comments

  • 1.

    Sorry to take a while to respond!

    If you just want to experiment with ideas on the Azimuth Wiki, you can just add information to this page:

    Experiments in...

    and change the title, replacing '...' with whatever makes sense.

    We already have lots of 'experiments' pages, which you can see here. The main point of titling a page 'Experiments in X' is so people visiting the wiki can tell the difference between the research we're doing here and the Azimuth Library.

    Personally I'd prefer you to write something people would enjoy reading on the blog! I am very eager for us to have articles presenting different viewpoints on Petri nets. To write a blog article, go to Blog articles in progress and create a new one, following as closely as possible the pattern laid down by the existing ones. You can save me work if you follow the formatting suggestions in How to write a blog entry.

    When you do either of these things, please post an article here in the appropriate category (either 'Experiments' or 'Azimuth Blog'), with the same title as the page you've created, announcing its existence and containing a link. This is how we keep track of everything going on here.

    The most important thing is not to become intimidated by anything I just said. If you have any questions, including tiny questions about how things work on the wiki or blog, don't hesitate to ask here!!!

    Comment Source:Sorry to take a while to respond! If you just want to experiment with ideas on the Azimuth Wiki, you can just add information to this page: [[Experiments in...]] and change the title, replacing '...' with whatever makes sense. We already have lots of 'experiments' pages, which you can see [here](http://www.azimuthproject.org/azimuth/search?_form_key=4d74e9b87619a901ed94179e095cb5ca86fbf796&query=experiments+in). The main point of titling a page 'Experiments in X' is so people visiting the wiki can tell the difference between the research we're doing here and the [[Azimuth Library]]. Personally I'd prefer you to write something people would enjoy reading on the blog! I am very eager for us to have articles presenting different viewpoints on Petri nets. To write a blog article, go to [[Blog articles in progress]] and create a new one, following as closely as possible the pattern laid down by the existing ones. You can save me work if you follow the formatting suggestions in [How to write a blog entry](http://www.azimuthproject.org/azimuth/show/How+to#blog). When you do either of these things, please post an article here in the appropriate [category](http://forum.azimuthproject.org/categories.php) (either 'Experiments' or 'Azimuth Blog'), with the same title as the page you've created, announcing its existence and containing a link. This is how we keep track of everything going on here. The most important thing is not to become intimidated by anything I just said. If you have any questions, including tiny questions about how things work on the wiki or blog, don't hesitate to ask here!!!
Sign In or Register to comment.