Skip to the Main Content

Note:These pages make extensive use of the latest XHTML and CSS Standards. They ought to look great in any standards-compliant modern browser. Unfortunately, they will probably look horrible in older browsers, like Netscape 4.x and IE 4.x. Moreover, many posts use MathML, which is, currently only supported in Mozilla. My best suggestion (and you will thank me when surfing an ever-increasing number of sites on the web which have been crafted to use the new standards) is to upgrade to the latest version of your browser. If that's not possible, consider moving to the Standards-compliant and open-source Mozilla browser.

March 24, 2019

Network Models from Petri Nets with Catalysts

Posted by John Baez

Here’s another paper from the network theory gang:

• John Baez, John Foley and Joe Moeller, Network models from Petri nets with catalysts.

Check it out! And please report typos, mistakes, or anything you have trouble understanding! I’m happy to answer questions here.

Petri nets are a widely studied formalism for describing collections of entities of different types, and how they turn into other entities. Network models are a formalism for designing and tasking networks of agents, which our team invented for this project. Here we combine these ideas! This is worthwhile because while both formalisms involve networks, they serve a different function, and are in some sense complementary.

A Petri net can be drawn as a bipartite directed graph with vertices of two kinds: places, drawn as circles, and transitions drawn as squares:

When we run a Petri net, we start by placing a finite number of dots called tokens in each place:

This is called a marking. Then we repeatedly change the marking using the transitions. For example, the above marking can change to this:

and then this:

Thus, the places represent different types of entity, and the transitions are ways that one collection of entities of specified types can turn into another such collection.

Network models serve a different function than Petri nets: they are a general tool for working with networks of many kinds. Mathematically a network model is a lax symmetric monoidal functor G:S(C)Cat,G \colon \mathsf{S}(C) \to \mathsf{Cat}, where S(C)\mathsf{S}(C) is the free strict symmetric monoidal category on a set C.C. Elements of CC represent different kinds of ‘agents’. Unlike in a Petri net, we do not usually consider processes where these agents turn into other agents. Instead, we wish to study everything that can be done with a fixed collection of agents. Any object xS(C)x \in \mathsf{S}(C) is of the form c 1c nc_1 \otimes \cdots \otimes c_n for some c iC;c_i \in C; thus, it describes a collection of agents of various kinds. The functor GG maps this object to a category G(x)G(x) that describes everything that can be done with this collection of agents.

In many examples considered so far, G(x)G(x) is a category whose morphisms are graphs of some sort whose nodes are agents of types c 1,,c n.c_1, \dots, c_n. Composing these morphisms corresponds to ‘overlaying’ graphs. Network models of this sort let us design networks where the nodes are agents and the edges are communication channels or shared commitments. In our first paper the operation of overlaying graphs was always commutative:

• John Baez, John Foley, Joe Moeller and Blake Pollard, Network models.

Subsequently Joe introduced a more general noncommutative overlay operation:

• Joe Moeller, Noncommutative network models.

This lets us design networks where each agent has a limit on how many communication channels or commitments it can handle; the noncommutativity lets us take a ‘first come, first served’ approach to resolving conflicting commitments.

Here we take a different tack: we instead take G(x)G(x) to be a category whose morphisms are processes that the given collection of agents, x,x, can carry out. Composition of morphisms corresponds to carrying out first one process and then another.

This idea meshes well with Petri net theory, because any Petri net PP determines a symmetric monoidal category FPF P whose morphisms are processes that can be carried out using this Petri net. More precisely, the objects in FPF P are markings of P,P, and the morphisms are sequences of ways to change these markings using transitions, e.g.:

Given a Petri net, then, how do we construct a network model G:S(C)Cat,G \colon \mathsf{S}(C) \to \mathsf{Cat}, and in particular, what is the set CC? In a network model the elements of CC represent different kinds of agents. In the simplest scenario, these agents persist in time. Thus, it is natural to take CC to be some set of ‘catalysts’. In chemistry, a reaction may require a catalyst to proceed, but it neither increases nor decrease the amount of this catalyst present. In everyday life, a door serves as a catalyst: it lets you walk though a wall, and it doesn’t get used up in the process!

For a Petri net, ‘catalysts’ are species that are neither increased nor decreased in number by any transition. For example, in the following Petri net, species aa is a catalyst:

but neither bb nor cc is a catalyst. The transition τ 1\tau_1 requires one token of type aa as input to proceed, but it also outputs one token of this type, so the total number of such tokens is unchanged. Similarly, the transition τ 2\tau_2 requires no tokens of type aa as input to proceed, and it also outputs no tokens of this type, so the total number of such tokens is unchanged.

In Theorem 11 of our paper, we prove that given any Petri net P,P, and any subset CC of the catalysts of P,P, there is a network model

G:S(C)Cat G \colon \mathsf{S}(C) \to \mathsf{Cat}

An object xS(C)x \in \mathsf{S}(C) says how many tokens of each catalyst are present; G(x)G(x) is then the subcategory of FPF P where the objects are markings that have this specified amount of each catalyst, and morphisms are processes going between these.

From the functor G:S(C)CatG \colon \mathsf{S}(C) \to \mathsf{Cat} we can construct a category G\int G by ‘gluing together’ all the categories G(x)G(x) using the Grothendieck construction. Because GG is symmetric monoidal we can use an enhanced version of this construction to make G\int G into a symmetric monoidal category. We already did this in our first paper on network models, but by now the math has been better worked out here:

• Joe Moeller and Christina Vasilakopoulou, Monoidal Grothendieck construction.

The tensor product in G\int G describes doing processes ‘in parallel’. The category G\int G is similar to FP,F P, but it is better suited to applications where agents each have their own ‘individuality’, because FPF P is actually a commutative monoidal category, where permuting agents has no effect at all, while G\int G is not so degenerate. In Theorem 12 of our paper we make this precise by more concretely describing G\int G as a symmetric monoidal category, and clarifying its relation to FP.F P.

There are no morphisms between an object of G(x)G(x) and an object of G(x)G(x') unless xx,x \cong x', since no transitions can change the amount of catalysts present. The category FPF P is thus a ‘disjoint union’, or more precisely a coproduct, of subcategories FP iF P_i where i,i, an element of free commutative monoid on C,C, specifies the amount of each catalyst present.

The tensor product on FPF P has the property that tensoring an object in FP iF P_i with one in FP jF P_j gives an object in FP i+j,F P_{i+j}, and similarly for morphisms. However, in Theorem 14 we show that each subcategory FP iF P_i also has its own tensor product, which describes doing one process after another while reusing catalysts.

This tensor product is a very cool thing. On the one hand it’s quite obvious: for example, if two people want to walk through a door, they can both do it, one at a time, because the door doesn’t get used up when someone walks through it. On the other hand, it’s mathematically interesting: it turns out to give a lot of examples of monoidal categories that can’t be made symmetric or even braided, even though the tensor product of objects is commutative! The proof boils down to this:

Here ii represents the catalysts, and ff and ff' are two processes which we can carry out using these catalysts. We can do either one first, but we get different morphisms as a result.

The paper has lots of pictures like this—many involving jeeps and boats, which serve as catalysts to carry people first from a base to the shore and then from the shore to an island. I think these make it clear that the underlying ideas are quite commonsensical. But they need to be formalized to program them into a computer—and it’s nice that doing this brings in some classic themes in category theory!

For some background on what we’re up to, try these posts on Azimuth:

Part 1. CASCADE: the Complex Adaptive System Composition and Design Environment.

Part 2. Metron’s software for system design.

Part 3. Operads: the basic idea.

Part 4. Network operads: an easy example.

Part 5. Algebras of network operads: some easy examples.

Part 6. Network models.

Part 7. Step-by-step compositional design and tasking using commitment networks.

Part 8. Compositional tasking using category-valued network models.

Part 9 - Network models from Petri nets with catalysts.

Posted at March 24, 2019 7:21 AM UTC

TrackBack URL for this Entry:   https://golem.ph.utexas.edu/cgi-bin/MT-3.0/dxy-tb.fcgi/3099

0 Comments & 0 Trackbacks

Post a New Comment