A complex world
What is the difference between complex and complicated systems? Language evolution has bothered to invent two separate words, so the difference should be obvious? Well, it is not so obvious - but important, if we want to develop effective strategies to control a system. These strategies have to be different for a complex system or a complicated system. Quite often, this distinction is not made, probably because complex and complicated systems can look similar from the outside. They share one characteristic: they are not simple.
Both words declare that something is difficult to understand. There we go, another two words! What do we mean with »difficult« and »understand« here? Essentially, that when we try to predict some future state for »some thing« (a system), that our success rate will not be very high. If we look at a system very carefully for a while, we will eventually be able to describe it in great detail. Then we know the system, but we wouldn't yet say we understand it. If, however, if we know it and we can predict how the system will »behave« in the future, even under somewhat different conditions, we understand it. The system in the figure below is easy enough to »understand« - that is, we immediately know quite well what will happen, when the wind starts blowing.
OK, now we know (no, we even understand, after all we will be able to transfer this knowledge to other systems!) which systems are either complex or complicated. They are difficult to understand. Most of us know a clock machinery, but only few understand it. We know, that it will show the time, as long it works (the system remains in its default state). But we do not know how to repair it when it is broken (the system is in slightly different conditions). For that, we'd have to understand it: and this is not easy. This system is complicated.
If you now tried very thoroughly to »understand« the systems, find equations and accurate predictions, you'd realize a significant difference. You can now show the hidden parts of the systems to get an idea why this is the case.Show
For the first system, you may realize that each particle interacts with a static environment and that the same starting conditions always lead to the same result. This is not true for the second, complex, system. Each component interacts with all others over a certain set of feedback rules. So the path of an incoming particle depends on the dynamic status of the system. Although the base of interaction rules is quite simple, this has serious consequences on the predictability of the system.
If you want to be able to precisely predict the complicated system, one approach would be careful observation and memorization of the results. You could create a lookup-table which assigns results to every starting condition. The larger your table becomes, the better your predictions will be. This brute force approach can already be quite successful, even though you need to store a lot of information.
|Input dimension a|
|Input dimension b||Result a1,b1||Result a2,b1||Result a3,b1|
|Result a1,b2||Result a2,b2||Result a3,b2|
|Result a1,b3||Result a2,b3||Result a3,b3|
To improve on the volume of information you need for your predictions, you could try to reduce the problem. That is you try to find a mapping rule which you can use for every starting condition. If you have found a small set of mapping rules (formulas) which always predict the correct result, you truly have succeeded in understanding the system!
For systems even more complicated than the one above, there is another typical approach: »divide and conquer«. If a complicated system is composed of many subsystems you divide the whole problem into smaller problems and you first try to understand each subproblem. When finished, you put the insights together again and eventually, step by step, you have a solution for the entire complicated system. This is also a widely used strategy to deal with complicatedness.
The thing about complex systems is, that neither of these strategies work. As the example above shows, their challenge lies within the number of components in the system and their complex interplay. You cannot generate a useful lookup table, because the same input can lead to different results (or the number of dimensions gets unreasonably high). This also makes it difficult to find analytical solutions for these systems. And, even the »divide and conquer« strategy typically fails, because there are too many interdependencies, and understanding a small part (which is in itself often enough easy) does not really help to understand the whole.
This means that if we want to understand complex systems, we need other strategies. Historically, we haven't prepared many. We often tend to ignore the existence of complexity, although it is omnipresent. Many of todays biggest problems are complex. Many important health issues, sustainability goals, the financial industries, global warming, human behavior and human relations in general, all of these ask for our ability to deal with complex systems. One might put it like this:
Everyone loves simplicity. Scientists and engineers love complicatedness. Nature loves complexity.
As the two model examples showed: it typically needs a second look to distinguish complexity from complicatedness. The consequence is, that we often deal with complex systems as if they were complicated. That is we apply the mentioned strategies, which were developed and tested for complicated systems. And the danger is that these strategies do not just work at little less efficiently if applied to complex systems, they do not work at all and even lead to wrong conclusions. If a complex system is forced into a simplified and reduced model, the predictions can be fundamentally wrong, even when the model is complicated. And the shiny complicatedness of the model conceals that it is just one thing: unsuitable.