#### Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Options

# Petri nets - Syllabus

edited May 25

Here:

Hi, we have seen sufficient interest in Petri nets to start a reading group. In particular @DanielGeisler is interested in working to get this organized - thanks Daniel!

• Options
1.
edited May 21

First thing is let's look for introductory textbooks and exercises to work through. Any kind of exercises that involve simulation would be especially welcome.

All application areas are fine, including chemical reaction networks, predator prey networks, and of course compartmental models of infectious disease (a North Start for Azimuth).

We can use this thread to post bibilographic notes, and then consolidate into a wiki page when a critical mass is reached.

Comment Source:First thing is let's look for introductory textbooks and exercises to work through. Any kind of exercises that involve simulation would be especially welcome. All application areas are fine, including chemical reaction networks, predator prey networks, and of course compartmental models of infectious disease (a North Start for Azimuth). We can use this thread to post bibilographic notes, and then consolidate into a wiki page when a critical mass is reached.
• Options
2.

Here is one reference that is more advanced, but I include it for reference, as it's in my clipboard now:

• John C. Baez and Jacob Biamonte, Quantum techniques for stochastic mechanics, arXiv:1209.3632 [quant-ph]. Text includes treatment from the ground up of Petri nets, both stochastic and deterministic. Example includes SI, SIR and SIRS models.
Comment Source:Here is one reference that is more advanced, but I include it for reference, as it's in my clipboard now: * John C. Baez and Jacob Biamonte, [Quantum techniques for stochastic mechanics](https://arxiv.org/abs/1209.3632), arXiv:1209.3632 [quant-ph]. Text includes treatment from the ground up of Petri nets, both stochastic and deterministic. Example includes SI, SIR and SIRS models.
• Options
3.

A good place to begin is what we've already got on the Azimuth wiki:

Comment Source:A good place to begin is what we've already got on the Azimuth wiki: * [Petri net](https://www.azimuthproject.org/azimuth/show/Petri+net), Azimuth wiki
• Options
4.

I would guess the most prevalent application for the deterministic case is the study of chemical reaction networks and their dynamics. If we could find a good online course, or some labs to work through, especially involving simulation, that would be great.

Comment Source:I would guess the most prevalent application for the deterministic case is the study of chemical reaction networks and their dynamics. If we could find a good online course, or some labs to work through, especially involving simulation, that would be great. 
• Options
5.
edited May 21

Sidenote: online stuff has obvious advantages, but we can of course work with print as well. It just involves a higher level of buy-in, or course, because it must be bought. Regarding copyright, let's err on the side of less rather than more, and not post entire problem sets from books - rather, selected choice problems to work on. This points to another example of online sources.

Comment Source:Sidenote: online stuff has obvious advantages, but we can of course work with print as well. It just involves a higher level of buy-in, or course, because it must be bought. Regarding copyright, let's err on the side of less rather than more, and not post entire problem sets from books - rather, selected choice problems to work on. This points to another example of online sources.
• Options
6.

Thanks for the intro @DavidTanzer. I'm a complete newbie when it comes to Petri nets, but I am retired and can devote plenty of time to learning. I'm also new to the Azimuth Project, so I need to learn how things works here. My question is what would help people make a connection with Petri nets?

Comment Source:Thanks for the intro @DavidTanzer. I'm a complete newbie when it comes to Petri nets, but I am retired and can devote plenty of time to learning. I'm also new to the Azimuth Project, so I need to learn how things works here. My question is what would help people make a connection with Petri nets?
• Options
7.
edited May 23

@DanielGeisler I recommend that we find some specific, simple examples of Petri nets to put on the table -- i.e., to post to the forum to talk about. That's why I suggested in comment #1 above to find references to tutorials, or courses, that have specific exercises. It would be great to find lab exercises which involve simulation. For example, use a simulator to find the equilibrium state for such and such Petri net. So that is my suggestion for how you could help us to get started, to dig around the web for just this, and post references right here.

Comment Source:@DanielGeisler I recommend that we find some specific, simple examples of Petri nets to put on the table -- i.e., to post to the forum to talk about. That's why I suggested in comment #1 above to find references to tutorials, or courses, that have specific exercises. It would be great to find lab exercises which involve simulation. For example, use a simulator to find the equilibrium state for such and such Petri net. So that is my suggestion for how you could help us to get started, to dig around the web for just this, and post references right here.
• Options
8.
edited May 23

You could also search for tutorials, exercises and labs on "reaction networks," which are equivalent to Petri nets. This is fundamental to chemistry, which gives another route to finding such materials.

Comment Source:You could also search for tutorials, exercises and labs on "reaction networks," which are equivalent to Petri nets. This is fundamental to chemistry, which gives another route to finding such materials.
• Options
9.

From my POV, the application roots are in complex robotics software and in OS's involving lots of parallel activities. Most of the fundamental computer science work was done by Dijkstra, Hoare, Dahl, and of course Petri in terms of communicating automata. Between those four you will find the foundation behind just about every fundamental concept in real-time/distributed/object-oriented/structured programming.

aside: I was confused by the idea that Petri nets were first applied to chemical reactions in 1939, because this does not coincide with Carl Petri's work in CompSci. Only now do I find that Petri developed the concept when he was only 13 years old, and he apparently switched over to studying computers when he was 15!

This 2014 thesis from Hoare's alma mater at Eindhoven appears quite comprehensive on first look => Petri nets for modeling robots. This stuff is not for the faint-of-heart -- I spent 20 years developing virtual reality simulations for robotics applications and the complexity is often mind-reeling. Every time I had to simulate a working part, invariably I started with a Petri net sketch describing the handoff synchronization points.

Now the connection of robotics to the behavior of viruses is that the mechanics of how viruses replicate is robotic in terms of all the handoffs necessary. It's very easy to interfere with the operation of a robot by messing with the synchronization points and that's the primary means to fight off a viral infection.

Based on this research => Modelling the Structure and Dynamics of Biological Pathways, this is an intro to how virus modelers are using Signalling Petri Nets

and the tool they are using

Comment Source:From my POV, the application roots are in complex robotics software and in OS's involving lots of parallel activities. Most of the fundamental computer science work was done by [Dijkstra](https://en.wikipedia.org/wiki/Edsger_W._Dijkstra), [Hoare](https://en.wikipedia.org/wiki/Tony_Hoare), [Dahl](https://en.wikipedia.org/wiki/Ole-Johan_Dahl), and of course [Petri](https://en.wikipedia.org/wiki/Carl_Adam_Petri) in terms of communicating automata. Between those four you will find the foundation behind just about every fundamental concept in real-time/distributed/object-oriented/structured programming. > *aside*: I was confused by the idea that Petri nets were first applied to chemical reactions in 1939, because this does not coincide with Carl Petri's work in CompSci. Only now do I find that Petri developed the concept when he was only 13 years old, and he apparently switched over to studying computers when he was 15! This 2014 thesis from Hoare's alma mater at Eindhoven appears quite comprehensive on first look => [Petri nets for modeling robots](https://pure.tue.nl/ws/files/3989333/780942.pdf). This stuff is not for the faint-of-heart -- I spent 20 years developing virtual reality simulations for robotics applications and the complexity is often mind-reeling. Every time I had to simulate a working part, invariably I started with a Petri net sketch describing the handoff synchronization points. Now the connection of robotics to the behavior of viruses is that the mechanics of how viruses replicate is robotic in terms of all the handoffs necessary. It's very easy to interfere with the operation of a robot by messing with the synchronization points and that's the primary means to fight off a viral infection. ![](https://www.researchgate.net/profile/Nanxi_Wang/post/How_to_draw_a_diagram_for_a_biological_pathway/attachment/59d624616cda7b8083a1fac2/AS%3A383165077180417%401468365081946/download/nrmicro3132-f2.jpg) Based on this research => [Modelling the Structure and Dynamics of Biological Pathways](https://europepmc.org/article/med/27509052), this is an intro to how virus modelers are using Signalling Petri Nets https://www.youtube.com/watch?v=1IPOIE0PvQY and the tool they are using https://www.youtube.com/watch?v=51rJ80g1LvA 
• Options
10.

Good stuff. The robots paper looks challenging.

Comment Source:Good stuff. The robots paper looks challenging.
• Options
11.

Just created:

Comment Source:Just created: * [Petri nets - Syllabus](https://www.azimuthproject.org/azimuth/show/Petri+nets+-+Syllabus)
• Options
12.

In the past a lot of work has been done at Azimuth on Petri nets:

Most of the above syllabus consists of consolidated references from the wiki article, plus a couple of links from this thread.

I divided it into three logical sections: Math, Applications, Simulation, plus one called General, which is really general + miscellaneous.

As we go forward, let's post references to this discussion, and then filter them down into the wiki page.

Comment Source:In the past a lot of work has been done at Azimuth on Petri nets: * [[Petri net]], Azimuth wiki. Most of the above syllabus consists of consolidated references from the wiki article, plus a couple of links from this thread. I divided it into three logical sections: Math, Applications, Simulation, plus one called General, which is really general + miscellaneous. As we go forward, let's post references to this discussion, and then filter them down into the wiki page.
• Options
13.

There's still a dearth of concrete, hands-on references, with good homework and simulation problems.

Comment Source:There's still a dearth of concrete, hands-on references, with good homework and simulation problems.
• Options
14.

I have a comprehensive library of software functionality for modeling simulated robotics systems, with all the synchronization primitives supplied. The motivation was essentially building everything in a virtual reality environment before putting it to metal. The library is software engineered and has evolved over many years. This is the first 2 pages of the user's manual, first iteration circa 1997.

This paper was based on a spin-off application. If you read the text and start pondering a bit, you will realize that all of analog electronics and all of digital logic can also be converted to a Petri net formalism. The emitter-base-collector of a BJT used for amplification even looks like a Petri net symbol, while the gated CMOS transistors used in logic are also individual place/bar primitives. My favorite language for logic design, VHDL, essentially provides all the Petri net primitives via source code, so any net can be synthesized, see for example Toward the Formal Verification of HILECOP: Formalization and Implementation of Synchronously Executed Petri Nets.

The bottom-line is that as with AI, which has been completely subsumed by practical applications, the same thing applies to Petri nets in terms of building devices. I don't know if this information helps with finding good homework or simulation problems, but there are still many research ideas percolating about https://www.researchgate.net/publication/335573082_Design_and_Verification_of_Cyber-Physical_Systems_Specified_by_Petri_Nets-A_Case_Study_of_a_Direct_Matrix_Converter

Comment Source:I have a comprehensive library of software functionality for modeling simulated robotics systems, with all the synchronization primitives supplied. The motivation was essentially building everything in a virtual reality environment before putting it to metal. The library is software engineered and has evolved over many years. This is the first 2 pages of the user's manual, first iteration circa 1997. > ![pace](https://imagizer.imageshack.com/img924/50/vJDYrb.png) > [This paper](https://dl.acm.org/doi/pdf/10.1145/1315580.1315592) was based on a spin-off application. If you read the text and start pondering a bit, you will realize that all of analog electronics and all of digital logic can also be converted to a Petri net formalism. The emitter-base-collector of a BJT used for amplification even looks like a Petri net symbol, while the gated CMOS transistors used in logic are also individual place/bar primitives. My favorite language for logic design, VHDL, essentially provides all the Petri net primitives via source code, so any net can be synthesized, see for example [Toward the Formal Verification of HILECOP: Formalization and Implementation of Synchronously Executed Petri Nets](https://hal-lara.archives-ouvertes.fr/lirmm-02611153/). The bottom-line is that as with AI, which has been completely subsumed by practical applications, the same thing applies to Petri nets in terms of building devices. I don't know if this information helps with finding good homework or simulation problems, but there are still many research ideas percolating about https://www.researchgate.net/publication/335573082_Design_and_Verification_of_Cyber-Physical_Systems_Specified_by_Petri_Nets-A_Case_Study_of_a_Direct_Matrix_Converter