The Large-Number Limit for Reaction Networks (Part 1)

Waiting for the other shoe to drop.

This is a figure of speech that means ‘waiting for the inevitable consequence of what’s come so far’. Do you know where it comes from? You have to imagine yourself in an apartment on the floor below someone who is taking off their shoes. When you hear one, you know the next is coming.

There’s even an old comedy routine about this:

A guest who checked into an inn one night was warned to be quiet because the guest in the room next to his was a light sleeper. As he undressed for bed, he dropped one shoe, which, sure enough, awakened the other guest. He managed to get the other shoe off in silence, and got into bed. An hour later, he heard a pounding on the wall and a shout: “When are you going to drop the other shoe?”

When we were working on math together, James Dolan liked to say “the other shoe has dropped” whenever an inevitable consequence of some previous realization became clear. There’s also the mostly British phrase the penny has dropped. You say this when someone finally realizes the situation they’re in.

But sometimes one realization comes after another, in a long sequence. Then it feels like it’s raining shoes!

I guess that’s a rather strained metaphor. Perhaps falling like dominoes is better for these long chains of realizations.

This is how I’ve felt in my recent research on the interplay between quantum mechanics, stochastic mechanics, statistical mechanics and extremal principles like the principle of least action. The basics of these subjects should be completely figured out by now, but they aren’t—and a lot of what’s known, nobody bothered to tell most of us.

So, I was surprised to rediscover that the Maxwell relations in thermodynamics are formally identical to Hamilton’s equations in classical mechanics… though in retrospect it’s obvious. Thermodynamics obeys the principle of maximum entropy, while classical mechanics obeys the principle of least action. Wherever there’s an extremal principle, symplectic geometry, and equations like Hamilton’s equations, are sure to follow.

I was surprised to discover (or maybe rediscover, I’m not sure yet) that just as statistical mechanics is governed by the principle of maximum entropy, quantum mechanics is governed by a principle of maximum ‘quantropy’. The analogy between statistical mechanics and quantum mechanics has been known at least since Feynman and Schwinger. But this basic aspect was never explained to me!

I was also surprised to rediscover that simply by replacing amplitudes by probabilities in the formalism of quantum field theory, we get a nice formalism for studying stochastic many-body systems. This formalism happens to perfectly match the ‘stochastic Petri nets’ and ‘reaction networks’ already used in subjects from population biology to epidemiology to chemistry. But now we can systematically borrow tools from quantum field theory! All the tricks that particle physicists like—annihilation and creation operators, coherent states and so on—can be applied to problems like the battle between the AIDS virus and human white blood cells.

And, perhaps because I’m a bit slow on the uptake, I was surprised when yet another shoe came crashing to the floor the other day.

Because quantum field theory has, at least formally, a nice limit where Planck’s constant goes to zero, the same is true for for stochastic Petri nets and reaction networks!

In quantum field theory, we call this the ‘classical limit’. For example, if you have a really huge number of photons all in the same state, quantum effects sometimes become negligible, and we can describe them using the classical equations describing electromagnetism: the classical Maxwell equations. In stochastic situations, it makes more sense to call this limit the ‘large-number limit’: the main point is that there are lots of particles in each state.

In quantum mechanics, different observables don’t commute, so the so-called commutator matters a lot:

[A,B] = AB - BA

These commutators tend to be proportional to Planck’s constant. So in the limit where Planck’s constant \hbar goes to zero, observables commute… but commutators continue to have a ghostly existence, in the form of Poisson bracket:

\displaystyle{ \{A,B\} = \lim_{\hbar \to 0} \; \frac{1}{\hbar} [A,B] }

Poisson brackets are a key part of symplectic geometry—the geometry of classical mechanics. So, this sort of geometry naturally shows up in the study of stochastic Petri nets!

Let me sketch how it works. I’ll start with a section reviewing stuff you should already know if you’ve been following the network theory series.

The stochastic Fock space

Suppose we have some finite set S. We call its elements species, since we think of them as different kinds of things—e.g., kinds of chemicals, or kinds of organisms.

To describe the probability of having any number of things of each kind, we need the stochastic Fock space. This is the space of real formal power series in a bunch of variables, one for each element of S. It won’t hurt to simply say

S = \{1, \dots, k \}

Then the stochastic Fock space is

\mathbb{R}[[z_1, \dots, z_k ]]

this being math jargon for the space of formal power series with real coefficients in some variables z_1, \dots, z_k, one for each element of S.

We write

n = (n_1, \dots, n_k) \in \mathbb{N}^S

and use this abbreviation:

z^n = z_1^{n_1} \cdots z_k^{n_k}

We use z^n to describe a state where we have n_1 things of the first species, n_2 of the second species, and so on.

More generally, a stochastic state is an element \Psi of the stochastic Fock space with

\displaystyle{ \Psi = \sum_{n \in \mathbb{N}^k} \psi_n \, z^n }


\psi_n \ge 0


\displaystyle{ \sum_{n  \in \mathbb{N}^k} \psi_n = 1 }

We use \Psi to describe a state where \psi_n is the probability of having n_1 things of the first species, n_2 of the second species, and so on.

The stochastic Fock space has some important operators on it: the annihilation operators given by

\displaystyle{ a_i \Psi = \frac{\partial}{\partial z_i} \Psi }

and the creation operators given by

\displaystyle{ a_i^\dagger \Psi = z_i \Psi }

From these we can define the number operators:

N_i = a_i^\dagger a_i

Part of the point is that

N_i z^n = n_i z^n

This says the stochastic state z^n is an eigenstate of all the number operators, with eigenvalues saying how many things there are of each species.

The annihilation, creation, and number operators obey some famous commutation relations, which are easy to check for yourself:

[a_i, a_j] = 0

[a_i^\dagger, a_j^\dagger] = 0

[a_i, a_j^\dagger] = \delta_{i j}

[N_i, N_j ] = 0

[N_i , a_j^\dagger] = \delta_{i j} a_j^\dagger

[N_i , a_j] = - \delta_{i j} a_j^\dagger

The last two have easy interpretations. The first of these two implies

N_i a_i^\dagger \Psi = a_i^\dagger (N_i + 1) \Psi

This says that if we start in some state \Psi, create a thing of type i, and then count the things of that type, we get one more than if we counted the number of things before creating one. Similarly,

N_i a_i \Psi = a_i (N_i - 1) \Psi

says that if we annihilate a thing of type i and then count the things of that type, we get one less than if we counted the number of things before annihilating one.

Introducing Planck’s constant

Now let’s introduce an extra parameter into this setup. To indicate the connection to quantum physics, I’ll call it \hbar, which is the usual symbol for Planck’s constant. However, I want to emphasize that we’re not doing quantum physics here! We’ll see that the limit where \hbar \to 0 is very interesting, but it will correspond to a limit where there are many things of each kind.

We’ll start by defining

A_i = \hbar \, a_i


C_i = a_i^\dagger

Here A stands for ‘annihilate’ and C stands for ‘create’. Think of A as a rescaled annihilation operator. Using this we can define a rescaled number operator:

\widetilde{N}_i = C_i A_i

So, we have

\widetilde{N}_i = \hbar N_i

and this explains the meaning of the parameter \hbar. The idea is that instead of counting things one at time, we count them in bunches of size 1/\hbar.

For example, suppose \hbar = 1/12. Then we’re counting things in dozens! If we have a state \Psi with

N_i \Psi = 36 \Psi

then there are 36 things of the ith kind. But this implies

\widetilde{N}_i \Psi = 3 \Psi

so there are 3 dozen things of the ith kind.

Chemists don’t count in dozens; they count things in big bunches called moles. A mole is approximately the number of carbon atoms in 12 grams: Avogadro’s number, 6.02 × 1023. When you count things by moles, you’re taking \hbar to be 1.66 × 10-24, the reciprocal of Avogadro’s number.

So, while in quantum mechanics Planck’s constant is ‘the quantum of action’, a unit of action, here it’s ‘the quantum of quantity’: the amount that corresponds to one thing.

We can easily work out the commutation relations of our new rescaled operators:

[A_i, A_j] = 0

[C_i, C_j] = 0

[A_i, C_j] = \hbar \, \delta_{i j}

[\widetilde{N}_i, \widetilde{N}_j ] = 0

[\widetilde{N}_i , C_j] = \hbar \,  \delta_{i j} C_j

[\widetilde{N}_i , A_j] = - \hbar \, \delta_{i j} A_j

These are just what you see in quantum mechanics! The commutators are all proportional to \hbar.

Again, we can understand what these relations mean if we think a bit. For example, the commutation relation for \widetilde{N}_i and C_i says

N_i C_i \Psi = C_i (N_i + \hbar) \Psi

This says that if we start in some state \Psi, create a thing of type i, and then count the things of that type, we get \hbar more than if we counted the number of things before creating one. This is because we are counting things not one at a time, but in bunches of size 1/\hbar.

You may be wondering why I defined the rescaled annihilation operator to be \hbar times the original annihilation operator:

A_i = \hbar \, a_i

but left the creation operator unchanged:

C_i = a_i^\dagger

I’m wondering that too! I’m not sure I’m doing things the best way yet. I’ve also tried another more symmetrical scheme, taking A_k = \sqrt{\hbar} \, a_k and C_k = \sqrt{\hbar} a_k^\dagger. This gives the same commutation relations, but certain other formulas become more unpleasant. I’ll explain that some other day.

Next, we can take the limit as \hbar \to 0 and define Poisson brackets of operators by

\displaystyle{ \{A,B\} = \lim_{\hbar \to 0} \; \frac{1}{\hbar} [A,B] }

To make this rigorous it’s best to proceed algebraically. For this we treat \hbar as a formal variable rather than a specific number. So, our number system becomes \mathbb{R}[\hbar], the algebra of polynomials in \hbar. We define the Weyl algebra to be the algebra over \mathbb{R}[\hbar] generated by elements A_i and C_i obeying

[A_i, A_j] = 0

[C_i, C_j] = 0

[A_i, C_j] = \hbar \, \delta_{i j}

We can set \hbar = 0 in this formalism; then the Weyl algebra reduces to the algebra of polynomials in the variables A_i and C_i. This algebra is commutative! But we can define a Poisson bracket on this algebra by

\displaystyle{ \{A,B\} = \lim_{\hbar \to 0} \; \frac{1}{\hbar} [A,B] }

It takes a bit of work to explain to algebraists exactly what’s going on in this formula, because it involves an interplay between the algebra of polynomials in A_i and C_i, which is commutative, and the Weyl algebra, which is not. I’ll be glad to explain the details if you want. But if you’re a physicist, you can just follow your nose and figure out what the formula gives. For example:

\begin{array}{ccl}   \{A_i, C_j\} &=& \displaystyle{ \lim_{\hbar \to 0} \; \frac{1}{\hbar} [A_i, C_j] } \\  \\  &=& \displaystyle{ \lim_{\hbar \to 0} \; \frac{1}{\hbar} \, \hbar \, \delta_{i j} }  \\  \\  &=& \delta_{i j} \end{array}

Similarly, we have:

\{ A_i, A_j \} = 0

\{ C_i, C_j \} = 0

\{ A_i, C_j \} = \delta_{i j}

\{ \widetilde{N}_i, \widetilde{N}_j \}  = 0

\{ \widetilde{N}_i , C_j \} = \delta_{i j} C_j

\{ \widetilde{N}_i , A_j \} = - \delta_{i j} A_j

I should probably use different symbols for A_i, C_i and \widetilde{N}_i after we’ve set \hbar = 0, since they’re really different now, but I don’t have the patience to make up more names for things!

Now, we can think of A_i and C_i as coordinate functions on a 2k-dimensional vector space, and all the polynomials in A_i and C_i as functions on this space. This space is what physicists would call a ‘phase space’: they use this kind of space to describe the position and momentum of a particle, though here we are using it in a different way. Mathematicians would call it a ‘symplectic vector space’, because it’s equipped with a special structure, called a symplectic structure, that lets us define Poisson brackets of smooth functions on this space. We won’t need to get into that now, but it’s important—and it makes me happy to see it here.


There’s a lot more to do, but not today. My main goal is to understand, in a really elegant way, how the master equation for a stochastic Petri net reduces to the rate equation in the large-number limit. What we’ve done so far is start thinking of this as a \hbar \to 0 limit. This should let us borrow ideas about classical limits in quantum mechanics, and apply them to stochastic mechanics.

Stay tuned!

11 Responses to The Large-Number Limit for Reaction Networks (Part 1)

  1. Martino says:

    If I can ask, why are you posing [A,C]=\hbar ? As far as I remember, even in QM, it’s usually 1. \hbar is the commutator of x and p. Of course it’s perhaps just a convention.

    • Martino says:

      Also, your definition of A and C on \psi reminds me more of the use of x and p in QM. In that case, it would be natural to multiply p times \hbar, since it’s how it’s defined in usual QM. However, you lose N = a^*a, which I suppose it was the reason you defined them like that.

    • John Baez says:

      Martino wrote:

      If I can ask, why are you posing [A,C]=\hbar? As far as I remember, even in QM, it’s usually 1.

      I so often set \hbar = 1 in my thinking on quantum mechanics that I don’t know whether the ‘usual’ commutator of annihilation and creation operators is 1 or \hbar.

      But I know that to get Poisson brackets in the classical limit I need a bunch of quantities whose commutators are proportional to \hbar (perhaps plus higher-order corrections).

      We could define quantities p and q as linear combinations of a and a^\dagger, and work with those. However, in the stochastic context I don’t know what those quantities mean! Since the Hamiltonian for the master equation is built using creation and annihilation operators, and my goal is to study the large-number limit of the master equation, I’d rather work with those.

      It’s a bit bizarre that we don’t know what p and q mean in the stochastic context! This is something I should correct sometime… I think I can sense yet another shoe dropping!

      However, at present I have no understanding of these quantities in stochastic mechanics, and I have another goal in mind, so I’ll postpone thinking about them for a while. Thanks for reminding me to do it someday.

  2. Dan says:

    Interesting. Following is some off-the-cuff intuition on why one might want to scale the annihilation operator but not the creation operator. It may be way out there, but I just thought I’d run it by you. Anyway, here goes:

    For pure states, we have that a^{\dagger m} z^\ell = z^{\ell + m} so that the creation operator maps pure states to pure states (i.e., in this case from a state having probability one of having m things to one having probability one of having \ell + m things). However, the annihilation operator satisfies a^m z^\ell =\ell^{\underline{m}} z^{\ell - m} so it typically maps a pure state to a non-normalized state (i.e., the coefficient is typically greater than one). So, it makes sense to rescale the annihilation operator by the inverse of the “expected” maximum “system size.” Then, both operators will typically map pure states to pure states (and hence mixed states to mixed states), as long as the number of things being annihilated at any given time is less than 1/\hbar. If we want the possibility of an infinite “system size,” then we should take the limit \hbar\rightarrow 0.

    At any rate, whether that makes any sense or not, I am looking forward to the next post on this to see where you’re going with it.

    • John Baez says:

      I’m glad you’re enjoying my attempts…

      I have a few reasons for rescaling the annihilation and creation operators the way I did. First, as you mention, it’s nice to retain the property that hitting a normalized state with a creation operator gives a normalized state. Second, the master equation seems to look simpler in terms of rescaled annihilation and creation operators if we do what I did, instead of the more symmetrical-looking

      A_i = \sqrt{\hbar} a_i
      C_i = \sqrt{\hbar} a_i^\dagger

      Third, some things about coherent states seem to work better.

      But I’ll have to keep doing calculations to know for sure what’s the best setup.

  3. domenico says:

    It is all elegant, beautiful and thorough.

    I don’t like only the loss of the symmetry in the A_i and C_i operator definition.

    I am thinking that the classical limit can be obtained using a product of creation, or annihilation:
    A_i = (a{\dagger}_i)^n
    C_i = (a_i)^n
    in the limit of great n, could be possible that is obtained the classical limit? Or the Poisson bracket?
    The operator number is:
    N_i = (a^{\dagger}_i)^n (a_i)^n
    but the commutation rules are very complex.

    • John Baez says:

      If we want to keep the symmetry we can use

      A_i = \sqrt{\hbar} a_i
      C_i = \sqrt{\hbar} a_i^\dagger

      If I were wanting to build self-adjoint Hamiltonians I would probably want to do this, since then C_i = A_i^\dagger and it’s easy to tell which combinations of A_i and C_i are self-adjoint.

      But in stochastic mechanics we want infinitesimal stochastic Hamiltonians, with

      \langle H \Psi \rangle  = 0

      for all \Psi, using my usual definition of the angle bracket:

      \displaystyle{\langle \Phi \rangle = \sum_{\ell \in \mathbb{N}^k} \phi_\ell }


      \displaystyle{ \Phi = \sum_{\ell \in \mathbb{N}^k} \phi_\ell z^\ell }

      In this situation it’s very nice that the creation operators obey a simple rule:

      \langle a_i^\dagger \Psi \rangle = \langle \Psi \rangle

      which implies

      \langle a_i \Psi \rangle = \langle N_i \Psi \rangle

      I have chosen my rescaled annihilation, creation and number operators

      A_i = \hbar a_i
      C_i =  a_i^\dagger
      \widetilde{N}_i = C_i A_i

      so they still obey these rules:

      \langle C_i \Psi \rangle = \langle \Psi \rangle

      which implies

      \langle A_i \Psi \rangle = \langle \widetilde{N}_i \Psi \rangle

      along with simple commutation relations.

      Using powers of annihilation and creation operators makes things very complicated, and I don’t think it fits the idea of ‘rescaling’ that’s built into the classical limit.

  4. domenico says:

    It is a little more complex, for two particles:

    [a a, a^{\dagger}a^{\dagger}]= 2+4 a^{\dagger} a = 2+4 N_1

    where N_1 is the number operator for a single particle, and
    so on.
    A dead end.

  5. domenico says:

    There is a simple result:
    [\sum_n w_n a^n, a^{\dagger}]=\sum_n n w_n a^{n-1}
    so that (quantum mechanic analogy with [x,p]):
    [f(a),a^{\dagger}]=\frac{d f}{d a}
    [a,f(a^{\dagger})]=\frac{d f}{d a^{\dagger}}
    to obtain higher degree derivative
    [[f(a),a^{\dagger}],a^{\dagger}]=\frac{d^2 f}{d a^2}
    is it possible with these commutators to obtain annihilation of N particles?

  6. I’ve been telling you a lot about stochastic mechanics, which is like quantum mechanics but with probabilities replacing amplitudes. In Part 1 of this mini-series I started telling you about the ‘large-number limit’ in stochastic mechanics. Now let’s see how coherent states get into the act.

  7. Now we have most of the concepts and tools in place, and we can tackle the large-number limit using quantum techniques. You can review the details here:

    The large-number limit for reaction networks (part 1).

    The large-number limit for reaction networks (part 2) .

You can use Markdown or HTML in your comments. You can also use LaTeX, like this: $latex E = m c^2 $. The word 'latex' comes right after the first dollar sign, with a space after it.

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.