Programming with Ordinary Differential Equations: Some First Steps Towards a Programming Language
Résumé
Various open problems have been recently solved using Ordinary Differential Equation (ODE) programming: basically, ODEs are used to implement various algorithms, including simulation over the continuum of discrete models such as Turing machines, or simulation of discrete time algorithms working over continuous variables. Applications include: Characterization of computability and complexity classes using ODEs [1-4]; Proof of the existence of a universal (in the sense of Rubel) ODE [5]; Proof of the strong Turing completeness of biochemical reactions [6], or more generally various statements about the completeness of reachability problems (e.g. PTIME-completeness of bounded reachability) for ODEs [7]. It is rather pleasant to explain how this ODE programming technology can be used in many contexts, as ODEs are in practice a kind of universal language used by many experimental sciences, and how consequently we got to these various applications. However, when going to say more about proofs, their authors including ourselves, often feel frustrated: Currently, the proofs are mostly based on technical lemmas and constructions done with ODEs, often mixing both the ideas behind these constructions, with numerical analysis considerations about errors and error propagation in the equations. We believe this is one factor hampering a more widespread use of this technology in other contexts. The current article is born from an attempt to popularize this ODE programming technology to a more general public, and in particular master and even undergraduate students. We show how some constructions can be reformulated using some notations, that can be seen as a pseudo programming language. This provides a way to explain in an easier and modular way the main intuitions behind some of the constructions, focusing on the algorithm design part. We focus here, as an example, on how the proof of the universality of polynomial ODEs (a result due to [8], and fully developed in [2]) can be reformulated and presented.
Domaines
Complexité [cs.CC]Origine | Fichiers produits par l'(les) auteur(s) |
---|