Haven’t read Chapter 4 of A New Kind of Science? Start reading it here.
Systems Based on Numbers
We’ll summarize by going through each of the sections and hitting on the salient points. Note that the summaries are very condensed, and are meant to give a broad picture of what is going on. Later on we’ll get to examples and code.
Summary
The Notion of Numbers [p. 115]
“The main reason that systems based on numbers have been so
popular in traditional science is that so much mathematics has been developed for dealing with them. Indeed, there are certain kinds of systems based on numbers whose behavior has been analyzed almost completely using mathematical methods such as calculus.
“Inevitably, however, when such complete analysis is possible, the final behavior that is found is fairly simple. ” [p. 115]“…if one ignores the need for analysis and instead just looks at the results of computer experiments, then one quickly finds that even rather simple systems based on numbers can lead to highly complex behavior.” [p. 116]
Basic problems with answering the question of what the origin of complexity in simple systems are:
- Numbers are handled very differently in traditional mathematics from the way they are handled in computers and computer programs.
- Mathematics posits numbers are elementary objects differing only in size, while computers must have numbers explicitly represented by a sequence of digits. In a computer numbers are represented in base 2, by a sequence of 0’s and 1’s.
- In mathematics, the details of how operations performed on numbers affects sequences of digits are usually considered fairly irrelevant – but by imagining a sequence of 0’s and 1’s as a sequence of white and black cells, and with the knowledge that simple operations, like those in cellular automata rules, can create complexity, we start understanding wherefrom complexity can arise, hidden in the operations on numbers when represented by a sequence of digits.
However, it isn’t just the digit sequences of numbers that show complexity. Regardless of the base, one can set up examples which show that the growth of the size of the number itself is complex. This can be done with progression of fractional numbers as well as whole numbers.
One difference between the complexity we see in CA’s and that in CA-like progressions of digit sequences based on some function is that CA’s are inherently local in nature: the next step depends on the previous step and neighborhood. However, this isn’t the case for digit progressions, which are nonlocal, and depend on the function.
Recursive Sequences [p. 128]
This section sets out to prove that the threshold of complexity in numerical sequences is met using simple addition and subtraction. This is done by considering recursive sequences.
How does one reach the threshold of complexity with recursive sequences? Instead of subsequent terms necessarily depending on the term before or twice before (locality), the rule for f [n] is that it can also depend on f [n – f [n – 1]], for instance (nonlocality).
Mathematical functions [p. 145]
All standard mathematical functions themselves have fairly simple (essentially repetitive) curves. Combinations of standard functions, however, can yield more complex curves, depending on how they are combined, which usually has an explicit dependence on representations of individual numbers. Some functions which yield complex curves but don’t appear to have any explicit dependence on representations of individual numbers are related to the Riemann zeta function.
Iterated Maps and Chaos Phenomenon [p. 149]
In the iterated maps section, Wolfram uses the example of four different kinds of iterated maps, which generated the four different Wolfram classes of behavior when given the initial condition 1/2, with their base 2 digit sequences then plotted. However, when they are given the initial condition pi/4 (with a seemingly random digit sequence), they exhibit the same classes of behavior. Here it would seem the maps themselves intrinsically generate complexity.
“Indeed, thinking about numbers purely in terms of size, one might imagine that as soon as any two numbers are sufficiently close in size they would inevitably lead to results that are somehow also close. And in fact this is for example the basis for much of the formalism of calculus in traditional mathematics.” [p. 152]
In this section, we encounter the idea (brought forth in the discussion of the shift map) that some randomness is a consequence of the randomness inherent in the initial conditions presented to the system. If the initial conditions (here the digit sequences) aren’t random, randomness disappears. Can such a system truly be called random, as it depends on the randomness in its initial conditions?
But some systems, as we’ve seen above, are independent of their initial conditions, always producing the same behavior (which fits into four different classes).
Continuous Cellular Automata [p. 155]
“The idea is to look at the average gray level of a cell and its immediate neighbors, and then to get the gray level for that cell at the next step by applying a fixed mapping to the result.” [p 156]
Examples:
- simple diffusion (next cell is the average of itself and neighbors)
- a continuous CA that results in class 3 behavior: take the average gray level, multiply by 3/2, and keep the fractional part only if the result is greater than 1
Partial Differential Equations [p. 161]
In this section, Wolfram shows how generalizing continuous CAs in order to wipe out all discreteness results in rules that are the well-known partial differential equations.
The best-studied PDEs all result in simple behavior. By looking extensively, however, one can find examples of PDEs that result in not-so-simple behavior.