Computer Explorations of Fractals, Chaos,Complex Systems, and Adaptation

 · title page · home* · cover artwork · jacket text · table of contents · the author* · ordering information
 Book Contents
 · three themes · part synopses · selected excerpts · all figures from book · quotes from book · glossary from book · bibliography · slide show
 Source Code
 · overview &documentation · FAQ list* · download source code · java applets
 Miscellany
 · news* · reviews & awards · errata · for educators · bibliography (BibTeX format) · other links
 Three Themes: #1

 1. The whole is greater than the sum of the parts By this I mean that the topics of computation, fractals, chaos, complex systems, and adaptation are far more interesting considered together than by themselves. Each of the topics is related to the others in a non-trivial way; moreover, each can be seen as the result of a few simple principles such as recursion, parallelism, and nonlinearity.

Let's examine this idea further. Starting from a computational framework, fractals are special ``programs'' that build self-similar structures.

Computation
 structural self-similarity
Fractals

The program in this case often involves a form of recursion that specifies how one part of a fractal looks like another portion of it (or of the whole fractal). Other times, as in the case of the Mandelbrot set and in Julia sets, structural self-similarity appears almost as a side-effect because the compact rules that describe such objects do not explicitly contain specifications for how things should look.

In either case, when one allows the rules of a fractal to be expressed ad infinitum strange mathematical properties can be found in the structural forms of the fractal. In the most extreme cases, fractals such as the Mandelbrot set can be seen as mathematical statements that are similar in complexity to incomputable problems found in computer science.

Chaotic systems are similar to fractals but contain functional self-similarity that occurs at different scales.

Fractals
 functional self-similarity
Chaos

More specifically, while we could visually confirm that a portion of a fractal is similar to itself, it is also possible to see how a chaotic system is functionally self-similar. Often times, this functional self-similarity shows itself as a characteristic behavior that occurs on multiple time and/or spatial scales. This is why a strange attractor (which is a characterization of a chaotic system's behavior) will usually have a fractal shape to it.

Chaos, which depends on nonlinearity, is usually studied in systems that can be described with only a few equations. However, another type of chaos is found in large collections that operate in parallel. Examples of this latter type include ecosystems, economies, and chemical soups. We refer to such collections as complex systems because even though a single agent in the collection can be understood (e.g., a predator, stock trader, or reactant) the composite behavior of the system is far more complicated.

Chaos
 multiplicity & parallelism
Complex Systems

Hence, by adding multiplicity and parallelism to collections of simple nonlinear agents, it is possible to produce behavior that is not only chaotic, but computationally profound as well.

One of the more interesting facts concerning complex systems is that sophisticated behavior can be found even when the interactions among the system's agents are constrained to be local. Sometimes the details of how the interaction occur can be subtly modified, as in the case when a synapse that connects two neurons is allowed to strengthen or weaken.

Complex Systems
 feedback

Since agents in a complex system are all indirectly coupled to one another, it is possible for a sophisticated form of feedback to occur that allows the agents (and the system as a whole) to adapt in a seemingly intelligent manner. While an obvious form of adaptation through feedback is found in the brain, more subtle forms can be found in market economies, immune systems, and through evolution.

Since adaptation is ultimately a form of modeling (where events external to the adapted system are mirrored internally), adaptive systems that alter their environment are indirectly altering themselves.