From Signals and Boundaries, MIT Press: when a system is capable of reprogramming itself in response to outside signals, it can be modeled as an adaptive agent.

  • Agents are enclosed within a boundary.
  • Agents filter outside signals through boundaries.
  • Agents are turing-complete. They may accept some signals and ignore others (if/else). Signals may be recursive (feedback loops). Boundaries are places where a feedback loop can be halted. They provide a "breakpoint" in the loop.
  • Within the boundary, agents carry histories, or "state" — the result of their individual reactions to signals over time.
  • Multiple agents can form conglomerates — higher levels of organization. Conglomerates can also be seen as agents.
  • Agents reprogram themselves in response to outside signals - this means both adapting behavior to signals (if/else), and changing the structure of the "programs" that generate the behavior in the first place.

In machine learning, fitness pressure for evolution is often provided by a fitness function that produces a reward for agents that move closer toward some desired goal.

In a complex adaptive system, this doesn't cut it. The behavior of a CAS is too complex to be easily expressed as a fitness function. In a real sense, complex adaptive systems don't have a singular "goal". They are autotelic. To model these systems in a way that will produce realistic evolution:

  • Agents are situated within a landscape. This landscape contains resources (e.g. food). Resources are heterogenous and distributed unevenly.
  • Agents reproduce by collecting resources.

A challenge for modeling complex adaptive systems: finding a generative grammar that can produce both the signals and the boundaries of the system.

The actor model expresses computer programs as networks of adaptive agents.