What does it mean for a system to compute?

David H. Wolpert, Jan Korbel

公開日: 2025/9/19

Abstract

Many real-world dynamic systems, both natural and artificial, are understood to be performing computations. For artificial dynamic systems, explicitly designed to perform computation - such as digital computers - by construction, we can identify which aspects of the dynamic system match the input and output of the computation that it performs, as well as the aspects of the dynamic system that match the intermediate logical variables of that computation. In contrast, in many naturally occurring dynamical systems that we understand to be computers, even though we neither designed nor constructed them - such as the human brain - it is not a priori clear how to identify the computation we presume to be encoded in the dynamic system. Regardless of their origin, dynamical systems capable of computation can, in principle, be mapped onto corresponding abstract computational machines that perform the same operations. In this paper, we begin by surveying a wide range of dynamic systems whose computational properties have been studied. We then introduce a very broadly applicable framework for identifying what computations(s) are emulated by a given dynamic system. After an introduction, we summarize key examples of dynamical systems whose computational properties have been studied. We then introduce a very broadly applicable framework that defines the computation performed by a given dynamical system in terms of maps between that system's evolution and the evolution of an abstract computational machine. We illustrate this framework with several examples from the literature, in particular discussing why some of those examples do not fully fall within the remit of our framework. We also briefly discuss several related issues, such as uncomputability in dynamical systems, and how to quantify the value of computation in naturally occurring computers.