Last time I described the reachability problem for reaction networks, which has the nice feature of connecting chemistry, category theory, and computation.
Near the end I raised a question. Luca Cardelli, who works on biology and computation at Microsoft, answered it.
His answer is interesting enough that I thought you should all read it. I imagined an arbitrary chemical reaction network and said:
We could try to use these reactions to build a 'chemical computer'. But how powerful can such a computer be? I don't know the answer.
The answer to that question is known. Stochastic Petri Nets (and equivalently chemical reaction networks) are not Turing-powerful in the strict sense, essentially because of all the decidable properties of Petri Nets. However, they can approximate a Turing machine up to any fixed error bound, so they are 'almost' Turing-complete, or 'Turing-complete-up-to-epsilon'. The error bound can be fixed independently of the length of the computation (which, being a Turing machine, is not going to be known ahead of time); in practice, that means progressively slowing down the computation to make it more accurate over time and to remain below the global error bound.
Note also that polymerization is a chemical operation that goes beyond the power of Stochastic Petri Nets and plain chemical reaction networks: if you can form unbounded polymers (like, e.g., DNA), you can use them as registers or tapes and obtain full Turing completeness, chemically (or, you might say 'biochemically' because that's where the most interesting polymers are found). An unbounded polymer corresponds to an infinite set of reactions (a small set of reactions for each polymer length), i.e. to an 'actually infinite program' in the language of simple reaction networks. Infinite programs of course are no good for any notion of Turing computation, so you need to use a more powerful language for describing polymerization, that is, a language that has the equivalent of molecular binding/unbinding as a primitive. That kind of language can be found in Process Algebra.
So, in addition to theChemical-Reaction-Networks/ Stochastic-Petri-Nets/ Turing-Completeness-Up-To-Epsilon
connection, there is another connection between'Biochemical'-Reaction-Networks/ Stochastic-Process-Algebra/ Full-Turing-Completeness.
And he provided a list of references. The correct answer to my question appeared first here:
• D. Soloveichik, M. Cook, E. Winfree and J. Bruck, Computation with finite stochastic chemical reaction networks, Natural Computing 7 (2008), 615–633.
contradicting an earlier claim here:
• M.O. Magnasco, Chemical kinetics is Turing universal, Phys. Rev. Lett. 78 (1997), 1190–1193.
Further work can be found here:
• Matthew Cook, David Soloveichik, Erik Winfree and Jehoshua Bruck Programmability of chemical reaction networks, in Algorithmic Bioprocesses, ed. Luca Cardelli, Springer, Berlin, 543–584, 2009.
and some of Cardelli's own work is here:
• Gianluigi Zavattaro and Luca Cardelli, Termination problems in chemical kinetics, in CONCUR 2008 - Concurrency Theory, eds. Gianluigi Zavattaro and Luca Cardelli, Lecture Notes in Computer Science 5201, Springer, Berlin, 2008, pp. 477–491.
• Luca Cardelli and Gianluigi Zavattaro, Turing universality of the biochemical ground form, Math. Struct. Comp. Sci. 20 (2010), 45–73.
You can find lots more interesting work on Cardelli's homepage.
You can also read comments on Azimuth, and make your own comments or ask questions there!