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

- All Categories 2.4K
- Chat 503
- Study Groups 21
- Petri Nets 9
- Epidemiology 4
- Leaf Modeling 2
- Review Sections 9
- MIT 2020: Programming with Categories 51
- MIT 2020: Lectures 20
- MIT 2020: Exercises 25
- Baez ACT 2019: Online Course 339
- Baez ACT 2019: Lectures 79
- Baez ACT 2019: Exercises 149
- Baez ACT 2019: Chat 50
- UCR ACT Seminar 4
- General 75
- Azimuth Code Project 111
- Statistical methods 4
- Drafts 10
- Math Syntax Demos 15
- Wiki - Latest Changes 3
- Strategy 113
- Azimuth Project 1.1K
- - Spam 1
- News and Information 148
- Azimuth Blog 149
- - Conventions and Policies 21
- - Questions 43
- Azimuth Wiki 718

Options

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!

## Comments

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.

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

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

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

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

`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`

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.

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

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.

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

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?

`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?`

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

`@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.`

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.

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

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.

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

https://www.youtube.com/watch?v=1IPOIE0PvQY

and the tool they are using

https://www.youtube.com/watch?v=51rJ80g1LvA

`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`

Good stuff. The robots paper looks challenging.

`Good stuff. The robots paper looks challenging.`

Just created:

`Just created: * [Petri nets - Syllabus](https://www.azimuthproject.org/azimuth/show/Petri+nets+-+Syllabus)`

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.

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

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

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

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

`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`