The dynamics of complex adaptation involve an intertwining amongst these features, which makes it difficult to draw hard boundaries between them. That said, by focusing on each distinct feature of complexity it becomes easier to disentangle a complex system and understand what drives its behavior.
This site organizes complexity thinking according to these features. They have been selected (see the History page to learn how), because they provide a useful framework for analysis. That said, they are not perfect. Any classification of complexity involves decomposing a system into parts which are intrinsically interwoven. It is thus important to bear in mind that, only by working in tandem do these governing features generate particular kinds of dynamics - ones that we find in natural systems, and ones that may prove useful when applied to human systems.
By looking at how these features operate in many different kinds of systems, and in many different kinds of contexts, it becomes easier to illustrate how complexity can be employed to tackle different kinds of problems spaces and generate solutions.
Typically, complexity is approached through work done via computer models. These models can be very useful, but they should not be seen as the only (or even the preferred) way of approaching complexity. By learning to understand and work through the governing features of a particular complex system it should also be possible to improve that system's operation with respect to achieving a particular goal.
Framed in this way we don't necessarily need models to work with, and benefit from, complexity.
Thinking through a system: no models required
Each governing feature of complexity can be explored separately, but ultimately all need to work together in order to create a complex adaptive system. Before considering each aspect on its own, we can look at the overall system dynamics at play in any complex system.
When looking at any complex system, it is important to identify the kinds of agents that constitute the system. Is it made of humans - actors that are reflective; of ants, that are alive and have some form of volition; or of sand or water molecules that can respond to forces but that have no independent volition? Or are the agents artificial: constructed on computer screens and subject only to the laws coded into their behaviors? Every complex system has agents, and many systems that we don't generally think of as complex might be reframed so as to be comprised of agents. The form these agents take might vary wildly, but it is through the interaction of each system's independent agents that complexity arises: not because the agents are controlled from above, but because their independent actions are able to coalesce into coordinated outcomes.
What do we mean when we say that the actions coalesce? Agents need to have an ability to change behaviors. This change might involve many things: a change of position in space; a change in shape; or a change in behavior. Changes might start of at random but - and this is the important part - the overall direction of change for the global population of agents is one that generates some form of efficiency. Because of this, we can think of this change being adaptive: agents adapt to their context in ways that improves overall system functionality. We might think of this adaptation as corresponding to 'fitness' (which we are familiar from General Darwinism), but another way of considering this is with regards to achieving minimum energy expenditures. In this way, a soap bubble is the most 'fit' shape for a collection of soap molecules that are subject to expansive pressure: it is the shape that maximizes volume and minimizes surface tension. Accordingly, soap molecules don't form emergent 'soap cubes'.
So in a complex system an agent always needs to adjust (and have the ability to adjust, otherwise nothing can change!). But how does an agent know how to adjust? The answer lies in a complex system's ability to process flows of information, energy, or resources that enter into the system. Again, since a system can be composed of many different kinds of agents, the nature of information, flows or resources can take very different forms. For an ant, a driving flow might be food, while for a water molecule it might be differential interactions caused by surface tension. But regardless of system, these flows are a kind of engine for change. They are the source of difference in the system that drives the some system towards certain behaviors over others. No difference, no complex adaptive behavior.
All of this would be fine and well if we could easily predict how agents adapt with respect to flows, but part of what is intriguing about complexity is that the behavior of any given system is extremely difficult to predict. Complexity involves many agents, each responding to local flows and difference, and each adapting to their immediate environment. Accordingly, while the overall behavior of a complex system will ultimately gravitate towards better global regimes, the way in which this occurs is non-linear. Two seemingly identical complex systems, set in motion at the same time may ultimately behave very differently. The systems have a great deal of variability due to feedback loops that can reinforce small variances - making clear regimes of cause and effect messy. Hence, complex systems are very difficult to predict because there are so many distinct global regimes that the system might gravitate towards. Understanding the non-linearity of complex system behaviors is important because it undermines our ability to predict and control these systems. That said, if we trust that there may well be a multiplicity of different ways in which the system can effectively evolve, then we can set as our target better overall system performance, and trust that a self-organizing system will find a plausible way to get there (acknowledging that there may be more then one way).
Complex systems can exhibit non-linear behavior because these systems, while maintaining an internal cohesiveness or boundedness, remain open to their environments, allowing driving flows in. Depending on how these flows fluctuate the system can move differentially. But this also means that the system is never really separate from its context. Instead, it is part of both smaller and larger system flows. Each complex system is made up of agents, but those agents may themselves be the emergent entity formed by another complex system. We therefore think of complex systems as being formed of nested scales - composed of different systems within subsystems that are in constant interaction. Furthermore, within a given system there are scalar regularities that occur: some of which manifest in time, others in space. Understanding the nature of these scalar components can help to clarify what kinds of things really matter. Is something 'big' because it is more important (bigger meaning better), or is it simply a natural outcome of dynamics that lead equally to both big things and small things? Is a website more popular because it is better? Is a stock selling for more because it has more inherent value? It is easy to make mistakes in analysis if you believe that 'big' things are necessarily more important- or if you believe that that things at the 'higher level' exert more control over things at the 'lower level'. Complexity gives us new ways of thinking about these things.
Finally, complexity thinking is intrinsically tied to the concept of emergence: the idea that something can arise that has an identity that is greater then the sum of its interacting parts, and that cannot be reduced to its parts. Again, emergence manifests differently depending on the system. An emergent ant trail is different from a sand dune is different from a soap bubble. But the mechanisms leading to emergence are the same: and if we wish to apply complexity to solving problems by way of emergent solutions, then it is worthwhile to have a better grasp on the nature of these dynamics.
This site will illustrate some principles using thought experiments. These are intended to be speculative, and somewhat playful in nature. The point is not to get too much into the weeds regarding the 'reality' of the examples, but instead to use them as speculations on how problems might be framed in complexity terms without needing to resort to computer models. This flexibility of thought can then be applied to more real world examples.
Imagine you are designer asked to place benches in a park. You have 100 benches. What is the best way to place them?
Typically a designer will take a top-down approach. Based on a variety of criteria - pathways, views, sun orientation, etc. they will do their best to determine where the park benches should be located. They will likely make some good placement decisions. Equally, they will likely place some of the benches poorly. Such is the nature of a complex problem with no clear solution.
Now let's turn the problem into one of a complex adaptive system. Let us assume that some locations are likely inherently more popular then others for sitting, but it is difficult to predict where these might be. Let us also assume that a bench is more 'fit' if it is being occupied. It is fulfilling its role as a bench, whereas when empty it is not functioning as intended. Can we turn the bench problem into a complexity problem? How might the benches maximize their fitness in this uncertain context?
As a first step we will get rid of our designer: the top-down entity. Now we need to frame the components of the problem by looking at the first three governing features of complexity:
the bottom-up agents: considered as park benches;
the adaptive processes: repositioning/reorienting in space;
the information flows: signals that register being sat upon;
In order to make our system work we need to instill our agents with some tech inspired autonomy: they contain sensors, can move in space, and can send basic relays to one another indicating their seating status (vacant or full).
We now have all the ingredients we need for complex adaptation to unfold:
A multiplicity of agents registering inputs within a differential environment: being occupied or not; having occupied neighbors or not.
An ability for agents to adapt their behavior: the capacity to move to a new location;
Information flows propagating through the system: flows of people entering the park;
With these elements in place, a kind of 'swarm' bench behavior would ensue. Highly occupied benches would relay their status to adjacent benches, which, if less occupied, would move closer. Unoccupied benches would scan signal relays from neighboring benches to gauge popularity - either moving closer to busy neighbors or, if the carrying capacity of a given neighborhood of benches is saturated, testing a novel, random location. Overtime, each bench would adjust its location with respect to its own status and that of local neighbors. Agents would continue repositioning until such time as further movements result in any bench's occupancy status diminishing.
Let us look at the outcomes of the system and think about the next series of governing principles:
non-linearity: there is no ability to control or predict specific bench locations. The environment is co-evolving with an extrinsic input (people coming in from the outside that 'fuel' the success of a bench location), and this flow can have differentials that cause the system to evolve differently. That said, the system can adjust to different inputs and still achieve an overall effective organization, finding locations that have a tendency to be popular over time (even if other configurations in space might also serve this function).
nested scales: The park wherein the benches are situated might operate as part of a system of parks within the greater whole of the city, which operates as part of a system of cities. The dynamics that steer the flows of people into this particular park (and thereby onto the benches themselves), might thereby also be contingent upon how effective that park is as an agent within a complex system of parks. It is important to remain mindful that internal system dynamics are often fueled by dynamics governed at a different scale. Further, within the scope of the bench system, we might expect to find certain scalar regularities with regards to the ultimate bench distribution. If the benches are initially placed equidistant apart, over time we might see the emergence of highly popular clusters, moderately popular groups, and a range of isolated bench locations: with each bench nonetheless having a carrying capacity that is fit. We would expect the ultimate spatial distribution of the benches to follow a power-law distribution.
emergence: over time, we expect a globally 'fit' spatial distribution of benches to emerge, with each bench adjusting its location in space until such time as no bench can move without diminishing either its frequency of occupancy, or the frequency of occupancy associated with its neighbors. This emergent outcome may not be perfect - there may be other configurations that are slightly better, but it will be the best that can be arrived at given the information flows present in the system. If the flows shift, a new emergent outcome will manifest. No particular bench controls the system, but together the benches will form seating patterns that are a 'fit' with the inputs of their environmental context.