Is there a formal definition or algorithm that can take a list of reactions and tell me whether it contains a set of species that can produce itself autocatalytically?

It is clear that the following reaction is autocatalytic: $$\ce{ A + B \to 2 B }$$ B appears on both sides of the equation, so it's a catalysis reaction, and there is an extra B produced on the right, so it catalyses its own production from A.

But the following reaction scheme can also be considered to contain autocatalysis: $$ \ce{B + C \to D + E\\ A + D \to 2C} $$ If this system starts out with plenty of A and B, together with one molecule of C, then the C molecule can react with a B to produce a D, which can then react with an A to produce two C's — whereas, without the initial "seed" molecule, no reactions will take place. (I'm neglecting reverse reactions here of course, but hopefully it gets the point across.) The autocataltic cycle can easily be seen in the following diagram, where circles represent species and boxes represent reactions:

autocatalysis diagram

Another non-obvious example of autocatalysis is a reaction scheme of this form: $$\ce{ A + C \to C + D\\ B + D \to D + C + E} $$ Here, C and D each catalyse the production of one another from the precursors A and B. I'm aware of Kauffman's definition of reflexively autocatalytic sets, which applies to schemes of this form, but would miss an autocatalytic cycle of the kind shown above, since it doesn't consist of single-step catalysis reactions. So I'm looking for a definition of autocatalysis that would include both cases, as well as (hopefully) other, more complex schemes that I haven't yet thought of.

  • 1
    $\begingroup$ Likely not a direct answer to your question but I'll leave it in a comment for the sake of awareness and perhaps discussion (and just popped up on my feed this morning). This paper looks interesting with regards to autocatalysis. arxiv.org/pdf/1205.0584v2.pdf $\endgroup$ May 7, 2012 at 15:57
  • $\begingroup$ @LordStryker thanks! It's based on Kauffman's RAF sets though (Stuart Kauffman is the third author), whose definition relies on all the catalytic reactions being single-step ones. So it doesn't provide what I'm looking for, but it certainly looks interesting. $\endgroup$
    – N. Virgo
    May 7, 2012 at 16:01
  • $\begingroup$ This is a very interesting question. I am nowhere near being up to the challenge of answering it, though I would love to see someone tackle it. $\endgroup$
    – Ben Norris
    May 25, 2012 at 16:36
  • $\begingroup$ Is there a formal distinction between a chain reaction, and an autocatalysed reaction? Both involve the creation of temporary species which are accumulate before being used to create product. $\endgroup$
    – Nick
    Jun 7, 2012 at 13:37
  • $\begingroup$ I don't know if there's a formal difference, but the two concepts are clearly very closely related. I tend to think autotcatalysis is a more technically well-defined thing, since "chain reaction" can also refer to less interesting "chains" of reactions such as $A \to B$ together with $B \to C$. But if there's a good formal definition of a chain reaction in the self-amplifying sense, I'd be very interested to see it. $\endgroup$
    – N. Virgo
    Jun 7, 2012 at 14:27

1 Answer 1


I can't tell if the modifier "formal" applies only to "definition" or to "algorithm" also, in the first sentence of your question's body. In case any algorithm would do: this looks like a pretty standard instance of the cycle-detection problem that one learns in undergraduate computer science.

If you only want to detect the presence of cycles, then the algorithm is essentially just to attempt a topological sorting of the graph; if the attempt fails, you have a cycle, and I guess that would mean that you have some sort of catalysis going on. (I didn't major in chemistry; please yell at me if that's non sequitur.)

Okay, so mere cycles are not enough - it seems you want cycles that have "gain". How about a tortoise and hare and have these multiply a state variable by the ratio of outgoing to incoming edges to reaction nodes (denoted by squares in your diagram)? If the hare catches up to the tortoise, that implies a cycle, hence catalysis; then if you compare their state, if the hare has accumulated a larger "gain" than the tortoise, I would say that that shows the presence of autocatalysis?

I'm not sure how this works if there are multiple, linked cycles. You could have one cycle in your graph that's autocatalytic, and another cycle linked to it that "uses up" its catalyst (something of a contradiction). For example:

B + C -> D + E
A + D + H -> 2C + F
2F + G -> H

Is that still an autocatalytic system?

  • $\begingroup$ It was intended to be parsed as "(formal definition) or (algorithm)" - if an algorithm exists I won't quibble if it's stated informally :) You're right that cycles imply catalysis, but it's distinguishing this from autocatalysis that's the difficult bit. If you remove the double edge in the figure (i.e. change the reaction scheme to $\ce{B + C -> D + E}$ and $\ce{A + D -> C}$) then there's still a cycle, but only catalysis, not autocatalysis. If there's only one cycle in the graph it's easy to distinguish the two, but if there are many then I don't know how to do it. $\endgroup$
    – N. Virgo
    Jul 16, 2012 at 16:44
  • $\begingroup$ I've added some more paragraphs; I think maybe you should pose this as a computer science / programming question on one of the other SO sites. $\endgroup$ Jul 17, 2012 at 0:02
  • $\begingroup$ But the tortoise and hare algorithm is for finding cycles in sequences, not graphs, right? The problem here isn't so much to come up with an algorithm to detect autocatalysis - it's to find a suitably general definition. Once I have that I can probably come up with an algorithm myself (and I'd ask on a CS site if I couldn't). "A single cycle with some 'gain'" is only a special case of what I'm looking for - in general there will be many interlinked cycles - see the 3rd reaction scheme in my OP for an example. $\endgroup$
    – N. Virgo
    Jul 17, 2012 at 20:55
  • $\begingroup$ The example you post contains an autocatalytic cycle but also contains some other stuff - that's OK. I'm looking for a way to find just the bits of the graph (subgraphs) that are autocatalytic. $\endgroup$
    – N. Virgo
    Jul 17, 2012 at 20:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.