It’s a reasonable question. If I tell you that I work at the Institute for Complex Systems Simulation, then you may ask what is a complex system. I don’t think there is a definitive answer (so it’s pretty mean of us to ask PhD candidates this in their interview). I would say it’s a perspective or an approach to systems that traditionally have been hard to understand. Here, let me show you what I mean (this really works well full screen and with the sound up):
That is a complex system in which the interaction of individuals (birds) that follow three simple rules (try not to get too far away from your neighbours, but don’t get too close and try to go in the same general direction) can produce emergent behaviour that would not be predicted by analysing those simple rules alone. It also happens to be incredibly beautiful and captures a central element of what we can find so awe inspiring about nature. Much like biological evolution, a complex system seems to be able to continually generate complicated, interacting, dynamical patterns. In fact, the evolution of life on Earth, the process that produced hummingbirds and whales, worms and giant redwoods may be understood as a planetary scale complex system.
Where did all this complexity come from? One approach to that question is to attempt to understand the operation of the universe at the very lowest levels. The perhaps best example of this is the quest for a Theory of Everything (TOE) in theoretical physics that would join together the spectacularly successful but hitherto unconnected models of quantum mechanics and general relativity. Another way is to look at the phenomena themselves, or rather not make the assumption that they can be understood in terms of rules and laws operating at lower levels. Think about the starlings. What you saw were many thousands of individual birds all behaving in relatively simple ways. But that’s not all it was. The flock was a ‘thing’. It was a or structure or entity that was importantly different from ‘just a bunch of individual birds’. It’s hard to see how you could understand this thing by looking at the rules alone. In focussing on the individual birds we may be looking in the wrong place. I’ll give you another example, this one non-biological:
That is an example of a Belousov-Zhabotinsky reaction. As well as having a pretty cool name it’s pretty cool example of a chemical oscillator. The elements in this system aren’t birds but atoms that switch between two different molecular states dependent on their surrounding conditions. Just like a flock of starlings it’s very hard to predict what patterns will emerge and when or even if any patterns would emerge at all. But, if you know (or suspect) what the rules are, you may be able to simulate it. Back in 1986 Chris Reynolds had a hunch that contrary to some theories about ‘leader birds’ coordinating flocks, every bird was behaving the same way and it was the interaction of many birds that produced the flock. He then tried these rules out in a computer simulation that he calle Biods. This is a recent reproduction of his original simulation:
You see a virtual murmuration around the 1:30 mark. Often, the only way we can get insights into a complex system is to simulate it. That doesn’t mean reproduce it. Nor does it mean that the output of the simulation is a prediction of what the real-world version of the system would do. Also, there doesn’t have to be anything particularly fancy about the simulation. Yes, some are very complex mathematical models that run on supercomputers and produce gigabytes of data. But simulations can be simple, both mathematically and conceptually. It’s not the complexity of the model or rules but the interactions between the (sometimes very simple) elements of the system that produces the complex behaviour.
As computers have become faster and faster (much as Moore predicted) we have been able to run larger and larger simulations. Today in a few minutes I can run a program on my laptop that would take many hours to complete on my 6 year old desktop. But this increase in the amount of computation that machines can do doesn’t translate into an increase in the amount of information we have about a simulation or a real-world system. Data isn’t knowledge. But that’s another issue.