I’ve come to think that there exists an interesting dichotomy between growth and robustness in most systems. For the purposes of this post, growth means receiving a positive return on some investment of energy or resources, robustness refers to the ability of the system to sustain itself in a changing environment.

At any given instant, a system has a fixed amount of resources it can allocate to various tasks. Fundamentally, there are two options for how to use these resources: they can either be allocated into familiar areas that are already demonstrating growth, or they can be allocated into unexplored areas in hopes of finding new sources of growth.

A system that places the majority of its resources into known areas that are already yielding strong growth risks getting stuck on local maxima and additionally makes itself systemically vulnerable to contextual change. For instance, a society that invests most of its resources into developing a single energy source, like oil, stands to grow explosively for awhile but might collapse after this resource is depleted due to the underdevelopment of other energy sources.

On the other hand a system that distributes its resources widely, exploring many uncharted areas, will be stuck with anemic growth. This is because many times the exploratory outlay of resources will yield little or no return on investment at all. The upswing is that when resources are allocated in a highly distributed way the system is extremely robust when local regions fail or begin to yield lower rates of return because the system has many alternative sources of growth.

I’ve attempted to visualize this relationship below with an interactive demonstration:

Refresh the page to reset, click and drag to create regions of high return

In the visualization above, I’ve created a search algorithm that distributes its resources (the little black dots) using a power-law distribution. By clicking and dragging you create regions of high return, the location of which are not known to the algorithm. As the algorithm distributes its resources throughout the search space, inevitably some will randomly fall into the regions of high return (orange dots). The algorithm will begin to dynamically reallocate its resources such that it has a higher probability of creating new dots near ones that have previously yielded a high return. In order to make the environment dynamic, you will see that as more resources are allocated to a region of high return, the size of that region will slowly decrease until it eventually disappears. Crucially the algorithm always maintains a power-law distribution regulating the breadth vs. depth of its search allowing it to dynamically reallocate its resources into new high return areas after explored ones have been depleted.

I find that many of our approaches to problem solving are concerned with optimizing for singular outcomes. In the future, as we attempt to harness the power complex adaptive systems for ourselves, we will become much more concerned about how to distribute resources instead of how to optimize for a single purpose. By carefully understanding the relationship depth and breadth in our resource allocations, we can begin to create dynamic systems that are able to adapt to change while managing our risk profile much more tightly. Hopefully, this can begin to reduce the probability of “black swan” events (like the mortgage crisis) and other existential threats to our society.