Definitions of autocatalysis 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:



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.
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 -&gt; D + E
A + D + H -&gt; 2C + F
2F + G -&gt; H


Is that still an autocatalytic system?